mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-04-19 12:57:17 +00:00
chore: format resources 💄
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
This commit is contained in:
parent
5939b65511
commit
8a5dee9307
124
.eslintrc.js
124
.eslintrc.js
@ -1,66 +1,66 @@
|
||||
module.exports = {
|
||||
parser: '@typescript-eslint/parser', // Specifies the ESLint parser
|
||||
parserOptions: {
|
||||
ecmaVersion: 2020, // Allows for the parsing of modern ECMAScript features
|
||||
sourceType: 'module', // Allows for the use of imports
|
||||
ecmaFeatures: {
|
||||
jsx: true, // Allows for the parsing of JSX
|
||||
},
|
||||
parser: '@typescript-eslint/parser', // Specifies the ESLint parser
|
||||
parserOptions: {
|
||||
ecmaVersion: 2020, // Allows for the parsing of modern ECMAScript features
|
||||
sourceType: 'module', // Allows for the use of imports
|
||||
ecmaFeatures: {
|
||||
jsx: true, // Allows for the parsing of JSX
|
||||
},
|
||||
ignorePatterns: [
|
||||
'node_modules/*',
|
||||
'**/node_modules/*',
|
||||
'.node_modules/*',
|
||||
'.github/*',
|
||||
'.browser_modules/*',
|
||||
'docs/*',
|
||||
'scripts/*',
|
||||
'electron-app/lib/*',
|
||||
'electron-app/src-gen/*',
|
||||
'electron-app/gen-webpack*.js',
|
||||
'!electron-app/webpack.config.js',
|
||||
'plugins/*',
|
||||
'arduino-ide-extension/src/node/cli-protocol',
|
||||
},
|
||||
ignorePatterns: [
|
||||
'node_modules/*',
|
||||
'**/node_modules/*',
|
||||
'.node_modules/*',
|
||||
'.github/*',
|
||||
'.browser_modules/*',
|
||||
'docs/*',
|
||||
'scripts/*',
|
||||
'electron-app/lib/*',
|
||||
'electron-app/src-gen/*',
|
||||
'electron-app/gen-webpack*.js',
|
||||
'!electron-app/webpack.config.js',
|
||||
'plugins/*',
|
||||
'arduino-ide-extension/src/node/cli-protocol',
|
||||
],
|
||||
settings: {
|
||||
react: {
|
||||
version: 'detect', // Tells eslint-plugin-react to automatically detect the version of React to use
|
||||
},
|
||||
},
|
||||
extends: [
|
||||
'plugin:@typescript-eslint/recommended', // Uses the recommended rules from the @typescript-eslint/eslint-plugin
|
||||
'plugin:react/recommended', // Uses the recommended rules from @eslint-plugin-react
|
||||
'plugin:react-hooks/recommended', // Uses recommended rules from react hooks
|
||||
'plugin:prettier/recommended',
|
||||
'prettier', // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier
|
||||
],
|
||||
plugins: ['prettier', 'unused-imports'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unused-expressions': 'off',
|
||||
'@typescript-eslint/no-namespace': 'off',
|
||||
'@typescript-eslint/no-var-requires': 'off',
|
||||
'@typescript-eslint/no-empty-function': 'warn',
|
||||
'@typescript-eslint/no-empty-interface': 'warn',
|
||||
'no-unused-vars': 'off',
|
||||
'unused-imports/no-unused-imports': 'error',
|
||||
'unused-imports/no-unused-vars': [
|
||||
'warn',
|
||||
{
|
||||
vars: 'all',
|
||||
varsIgnorePattern: '^_',
|
||||
args: 'after-used',
|
||||
argsIgnorePattern: '^_',
|
||||
},
|
||||
],
|
||||
settings: {
|
||||
react: {
|
||||
version: 'detect', // Tells eslint-plugin-react to automatically detect the version of React to use
|
||||
},
|
||||
},
|
||||
extends: [
|
||||
'plugin:@typescript-eslint/recommended', // Uses the recommended rules from the @typescript-eslint/eslint-plugin
|
||||
'plugin:react/recommended', // Uses the recommended rules from @eslint-plugin-react
|
||||
'plugin:react-hooks/recommended', // Uses recommended rules from react hooks
|
||||
'plugin:prettier/recommended',
|
||||
'prettier', // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier
|
||||
],
|
||||
plugins: ['prettier', 'unused-imports'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unused-expressions': 'off',
|
||||
'@typescript-eslint/no-namespace': 'off',
|
||||
'@typescript-eslint/no-var-requires': 'off',
|
||||
'@typescript-eslint/no-empty-function': 'warn',
|
||||
'@typescript-eslint/no-empty-interface': 'warn',
|
||||
'no-unused-vars': 'off',
|
||||
'unused-imports/no-unused-imports': 'error',
|
||||
'unused-imports/no-unused-vars': [
|
||||
'warn',
|
||||
{
|
||||
vars: 'all',
|
||||
varsIgnorePattern: '^_',
|
||||
args: 'after-used',
|
||||
argsIgnorePattern: '^_',
|
||||
},
|
||||
],
|
||||
'react/display-name': 'warn',
|
||||
eqeqeq: ['error', 'smart'],
|
||||
'guard-for-in': 'off',
|
||||
'id-blacklist': 'off',
|
||||
'id-match': 'off',
|
||||
'no-underscore-dangle': 'off',
|
||||
'no-unused-expressions': 'off',
|
||||
'no-var': 'error',
|
||||
radix: 'error',
|
||||
'prettier/prettier': 'warn',
|
||||
},
|
||||
'react/display-name': 'warn',
|
||||
eqeqeq: ['error', 'smart'],
|
||||
'guard-for-in': 'off',
|
||||
'id-blacklist': 'off',
|
||||
'id-match': 'off',
|
||||
'no-underscore-dangle': 'off',
|
||||
'no-unused-expressions': 'off',
|
||||
'no-var': 'error',
|
||||
radix: 'error',
|
||||
'prettier/prettier': 'warn',
|
||||
},
|
||||
};
|
||||
|
2
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
@ -1,7 +1,7 @@
|
||||
name: Bug report
|
||||
description: Report a problem with the code or documentation in this repository.
|
||||
labels:
|
||||
- "type: imperfection"
|
||||
- 'type: imperfection'
|
||||
body:
|
||||
- type: textarea
|
||||
id: description
|
||||
|
2
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
2
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
@ -1,7 +1,7 @@
|
||||
name: Feature request
|
||||
description: Suggest an enhancement to this project.
|
||||
labels:
|
||||
- "type: enhancement"
|
||||
- 'type: enhancement'
|
||||
body:
|
||||
- type: textarea
|
||||
id: description
|
||||
|
11
.github/PULL_REQUEST_TEMPLATE.md
vendored
11
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,15 +1,18 @@
|
||||
### Motivation
|
||||
|
||||
<!-- Why this pull request? -->
|
||||
|
||||
### Change description
|
||||
|
||||
<!-- What does your code do? -->
|
||||
|
||||
### Other information
|
||||
|
||||
<!-- Any additional information that could help the review process -->
|
||||
|
||||
### Reviewer checklist
|
||||
|
||||
* [ ] PR addresses a single concern.
|
||||
* [ ] The PR has no duplicates (please search among the [Pull Requests](https://github.com/arduino/arduino-ide/pulls) before creating one)
|
||||
* [ ] PR title and description are properly filled.
|
||||
* [ ] Docs have been added / updated (for bug fixes / features)
|
||||
- [ ] PR addresses a single concern.
|
||||
- [ ] The PR has no duplicates (please search among the [Pull Requests](https://github.com/arduino/arduino-ide/pulls) before creating one)
|
||||
- [ ] PR title and description are properly filled.
|
||||
- [ ] Docs have been added / updated (for bug fixes / features)
|
||||
|
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
@ -12,4 +12,4 @@ updates:
|
||||
schedule:
|
||||
interval: daily
|
||||
labels:
|
||||
- "topic: infrastructure"
|
||||
- 'topic: infrastructure'
|
||||
|
32
.github/label-configuration-files/labels.yml
vendored
32
.github/label-configuration-files/labels.yml
vendored
@ -1,27 +1,27 @@
|
||||
# Used by the "Sync Labels" workflow
|
||||
# See: https://github.com/Financial-Times/github-label-sync#label-config-file
|
||||
|
||||
- name: "topic: accessibility"
|
||||
color: "00ffff"
|
||||
- name: 'topic: accessibility'
|
||||
color: '00ffff'
|
||||
description: Enabling the use of the software by everyone
|
||||
- name: "topic: CLI"
|
||||
color: "00ffff"
|
||||
- name: 'topic: CLI'
|
||||
color: '00ffff'
|
||||
description: Related to Arduino CLI
|
||||
- name: "topic: cloud"
|
||||
color: "00ffff"
|
||||
- name: 'topic: cloud'
|
||||
color: '00ffff'
|
||||
description: Related to Arduino Cloud and cloud sketches
|
||||
- name: "topic: debugger"
|
||||
color: "00ffff"
|
||||
- name: 'topic: debugger'
|
||||
color: '00ffff'
|
||||
description: Related to the integrated debugger
|
||||
- name: "topic: language server"
|
||||
color: "00ffff"
|
||||
- name: 'topic: language server'
|
||||
color: '00ffff'
|
||||
description: Related to the Arduino Language Server
|
||||
- name: "topic: serial monitor"
|
||||
color: "00ffff"
|
||||
- name: 'topic: serial monitor'
|
||||
color: '00ffff'
|
||||
description: Related to the Serial Monitor
|
||||
- name: "topic: theia"
|
||||
color: "00ffff"
|
||||
- name: 'topic: theia'
|
||||
color: '00ffff'
|
||||
description: Related to the Theia IDE framework
|
||||
- name: "topic: theme"
|
||||
color: "00ffff"
|
||||
- name: 'topic: theme'
|
||||
color: '00ffff'
|
||||
description: Related to GUI theming
|
||||
|
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -31,7 +31,7 @@ on:
|
||||
|
||||
env:
|
||||
# See vars.GO_VERSION field of https://github.com/arduino/arduino-cli/blob/master/DistTasks.yml
|
||||
GO_VERSION: "1.19"
|
||||
GO_VERSION: '1.19'
|
||||
JOB_TRANSFER_ARTIFACT: build-artifacts
|
||||
CHANGELOG_ARTIFACTS: changelog
|
||||
|
||||
|
2
.github/workflows/check-i18n-task.yml
vendored
2
.github/workflows/check-i18n-task.yml
vendored
@ -2,7 +2,7 @@ name: Check Internationalization
|
||||
|
||||
env:
|
||||
# See vars.GO_VERSION field of https://github.com/arduino/arduino-cli/blob/master/DistTasks.yml
|
||||
GO_VERSION: "1.19"
|
||||
GO_VERSION: '1.19'
|
||||
|
||||
# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows
|
||||
on:
|
||||
|
2
.github/workflows/i18n-nightly-push.yml
vendored
2
.github/workflows/i18n-nightly-push.yml
vendored
@ -2,7 +2,7 @@ name: i18n-nightly-push
|
||||
|
||||
env:
|
||||
# See vars.GO_VERSION field of https://github.com/arduino/arduino-cli/blob/master/DistTasks.yml
|
||||
GO_VERSION: "1.19"
|
||||
GO_VERSION: '1.19'
|
||||
|
||||
on:
|
||||
schedule:
|
||||
|
2
.github/workflows/i18n-weekly-pull.yml
vendored
2
.github/workflows/i18n-weekly-pull.yml
vendored
@ -2,7 +2,7 @@ name: i18n-weekly-pull
|
||||
|
||||
env:
|
||||
# See vars.GO_VERSION field of https://github.com/arduino/arduino-cli/blob/master/DistTasks.yml
|
||||
GO_VERSION: "1.19"
|
||||
GO_VERSION: '1.19'
|
||||
|
||||
on:
|
||||
schedule:
|
||||
|
10
.github/workflows/sync-labels.yml
vendored
10
.github/workflows/sync-labels.yml
vendored
@ -5,15 +5,15 @@ name: Sync Labels
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- ".github/workflows/sync-labels.ya?ml"
|
||||
- ".github/label-configuration-files/*.ya?ml"
|
||||
- '.github/workflows/sync-labels.ya?ml'
|
||||
- '.github/label-configuration-files/*.ya?ml'
|
||||
pull_request:
|
||||
paths:
|
||||
- ".github/workflows/sync-labels.ya?ml"
|
||||
- ".github/label-configuration-files/*.ya?ml"
|
||||
- '.github/workflows/sync-labels.ya?ml'
|
||||
- '.github/label-configuration-files/*.ya?ml'
|
||||
schedule:
|
||||
# Run daily at 8 AM UTC to sync with changes to shared label configurations.
|
||||
- cron: "0 8 * * *"
|
||||
- cron: '0 8 * * *'
|
||||
workflow_dispatch:
|
||||
repository_dispatch:
|
||||
|
||||
|
4
.github/workflows/themes-weekly-pull.yml
vendored
4
.github/workflows/themes-weekly-pull.yml
vendored
@ -8,8 +8,8 @@ on:
|
||||
|
||||
env:
|
||||
# See vars.GO_VERSION field of https://github.com/arduino/arduino-cli/blob/master/DistTasks.yml
|
||||
GO_VERSION: "1.19"
|
||||
NODE_VERSION: 16.x
|
||||
GO_VERSION: '1.19'
|
||||
NODE_VERSION: '18.17'
|
||||
|
||||
jobs:
|
||||
pull-from-jsonbin:
|
||||
|
15
.vscode/launch.json
vendored
15
.vscode/launch.json
vendored
@ -7,7 +7,7 @@
|
||||
"name": "App",
|
||||
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd",
|
||||
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
|
||||
},
|
||||
"cwd": "${workspaceFolder}/electron-app",
|
||||
"args": [
|
||||
@ -19,7 +19,7 @@
|
||||
"--no-app-auto-install",
|
||||
"--plugins=local-dir:./plugins",
|
||||
"--hosted-plugin-inspect=9339",
|
||||
"--no-ping-timeout",
|
||||
"--no-ping-timeout"
|
||||
],
|
||||
"env": {
|
||||
"NODE_ENV": "development"
|
||||
@ -42,7 +42,7 @@
|
||||
"name": "App [Dev]",
|
||||
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd",
|
||||
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
|
||||
},
|
||||
"cwd": "${workspaceFolder}/electron-app",
|
||||
"args": [
|
||||
@ -56,7 +56,7 @@
|
||||
"--hosted-plugin-inspect=9339",
|
||||
"--content-trace",
|
||||
"--open-devtools",
|
||||
"--no-ping-timeout",
|
||||
"--no-ping-timeout"
|
||||
],
|
||||
"env": {
|
||||
"NODE_ENV": "development"
|
||||
@ -115,15 +115,12 @@
|
||||
"request": "attach",
|
||||
"name": "Attach by Process ID",
|
||||
"processId": "${command:PickProcess}"
|
||||
},
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Launch Electron Backend & Frontend",
|
||||
"configurations": [
|
||||
"App",
|
||||
"Attach to Electron Frontend"
|
||||
]
|
||||
"configurations": ["App", "Attach to Electron Frontend"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -8,5 +8,5 @@
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true
|
||||
},
|
||||
}
|
||||
}
|
||||
|
5
.vscode/tasks.json
vendored
5
.vscode/tasks.json
vendored
@ -40,10 +40,7 @@
|
||||
{
|
||||
"label": "Watch All",
|
||||
"type": "shell",
|
||||
"dependsOn": [
|
||||
"Watch Extension",
|
||||
"Watch App"
|
||||
]
|
||||
"dependsOn": ["Watch Extension", "Watch App"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -55,12 +55,14 @@ The Config Service knows about your system, like for example the default sketch
|
||||
- checking whether a file is in a data or sketch directory
|
||||
|
||||
### `"arduino"` configuration in the `package.json`:
|
||||
- `"cli"`:
|
||||
- `"version"` type `string` | `{ owner: string, repo: string, commitish?: string }`: if the type is a `string` and is a valid semver, it will get the corresponding [released](https://github.com/arduino/arduino-cli/releases) CLI. If the type is `string` and is a [date in `YYYYMMDD`](https://arduino.github.io/arduino-cli/latest/installation/#nightly-builds) format, it will get a nightly CLI. If the type is an object, a CLI, build from the sources in the `owner/repo` will be used. If `commitish` is not defined, the HEAD of the default branch will be used. In any other cases an error is thrown.
|
||||
|
||||
- `"cli"`:
|
||||
- `"version"` type `string` | `{ owner: string, repo: string, commitish?: string }`: if the type is a `string` and is a valid semver, it will get the corresponding [released](https://github.com/arduino/arduino-cli/releases) CLI. If the type is `string` and is a [date in `YYYYMMDD`](https://arduino.github.io/arduino-cli/latest/installation/#nightly-builds) format, it will get a nightly CLI. If the type is an object, a CLI, build from the sources in the `owner/repo` will be used. If `commitish` is not defined, the HEAD of the default branch will be used. In any other cases an error is thrown.
|
||||
|
||||
#### Rebuild gRPC protocol interfaces
|
||||
- Some CLI updates can bring changes to the gRPC interfaces, as the API might change. gRPC interfaces can be updated running the command
|
||||
`yarn --cwd arduino-ide-extension generate-protocol`
|
||||
|
||||
- Some CLI updates can bring changes to the gRPC interfaces, as the API might change. gRPC interfaces can be updated running the command
|
||||
`yarn --cwd arduino-ide-extension generate-protocol`
|
||||
|
||||
### Update **clangd** and **ClangFormat**
|
||||
|
||||
@ -72,11 +74,13 @@ The [**clangd** C++ language server](https://clangd.llvm.org/) and the [**ClangF
|
||||
1. Submit a pull request in [the `arduino/tooling-project-assets` repository](https://github.com/arduino/tooling-project-assets) to update the version in the `vars.DEFAULT_CLANG_FORMAT_VERSION` field of [`Taskfile.yml`](https://github.com/arduino/tooling-project-assets/blob/main/Taskfile.yml).
|
||||
|
||||
### Customize Icons
|
||||
|
||||
ArduinoIde uses a customized version of FontAwesome.
|
||||
In order to update/replace icons follow the following steps:
|
||||
- import the file `arduino-icons.json` in [Icomoon](https://icomoon.io/app/#/projects)
|
||||
- load it
|
||||
- edit the icons as needed
|
||||
- !! download the **new** `arduino-icons.json` file and put it in this repo
|
||||
- Click on "Generate Font" in Icomoon, then download
|
||||
- place the updated fonts in the `src/style/fonts` directory
|
||||
|
||||
- import the file `arduino-icons.json` in [Icomoon](https://icomoon.io/app/#/projects)
|
||||
- load it
|
||||
- edit the icons as needed
|
||||
- !! download the **new** `arduino-icons.json` file and put it in this repo
|
||||
- Click on "Generate Font" in Icomoon, then download
|
||||
- place the updated fonts in the `src/style/fonts` directory
|
||||
|
@ -58,7 +58,9 @@ type StrictPreferenceSchemaProperties<T extends object> = {
|
||||
[p in keyof T]: PreferenceSchemaProperty;
|
||||
};
|
||||
type ArduinoPreferenceSchemaProperties =
|
||||
StrictPreferenceSchemaProperties<ArduinoConfiguration> & { 'arduino.window.zoomLevel': PreferenceSchemaProperty };
|
||||
StrictPreferenceSchemaProperties<ArduinoConfiguration> & {
|
||||
'arduino.window.zoomLevel': PreferenceSchemaProperty;
|
||||
};
|
||||
|
||||
const properties: ArduinoPreferenceSchemaProperties = {
|
||||
'arduino.language.log': {
|
||||
|
@ -45,10 +45,7 @@ export namespace UploadFirmware {
|
||||
export namespace Commands {
|
||||
export const OPEN: Command = {
|
||||
id: 'arduino-upload-firmware-open',
|
||||
label: nls.localize(
|
||||
'arduino/firmware/updater',
|
||||
'Firmware Updater'
|
||||
),
|
||||
label: nls.localize('arduino/firmware/updater', 'Firmware Updater'),
|
||||
category: 'Arduino',
|
||||
};
|
||||
}
|
||||
|
@ -38,7 +38,9 @@
|
||||
.arduino-select__control.arduino-select__control--menu-is-open {
|
||||
border: 1px solid !important;
|
||||
border-color: var(--theia-focusBorder) !important;
|
||||
border-bottom-color: var(--theia-sideBar-background) !important; /* if the bottom border color has the same color as the background of the control, we make the border "invisible" */
|
||||
border-bottom-color: var(
|
||||
--theia-sideBar-background
|
||||
) !important; /* if the bottom border color has the same color as the background of the control, we make the border "invisible" */
|
||||
}
|
||||
|
||||
.arduino-select__value-container .arduino-select__single-value {
|
||||
|
@ -1,324 +1,324 @@
|
||||
#select-board-dialog-container > .dialogBlock {
|
||||
width: 640px;
|
||||
height: 500px;
|
||||
width: 640px;
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
div#select-board-dialog {
|
||||
margin: 5px;
|
||||
height: 100%;
|
||||
margin: 5px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div#select-board-dialog .selectBoardContainer {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
overflow: hidden;
|
||||
max-height: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
overflow: hidden;
|
||||
max-height: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.select-board-dialog .head {
|
||||
margin: 5px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.dialogContent.select-board-dialog {
|
||||
height: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.dialogContent.select-board-dialog > div.head .title {
|
||||
font-weight: 400;
|
||||
letter-spacing: 0.02em;
|
||||
font-size: 1.2em;
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
margin-bottom: 10px;
|
||||
font-weight: 400;
|
||||
letter-spacing: 0.02em;
|
||||
font-size: 1.2em;
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
div#select-board-dialog .selectBoardContainer .list .item.selected {
|
||||
background: var(--theia-secondaryButton-hoverBackground);
|
||||
background: var(--theia-secondaryButton-hoverBackground);
|
||||
}
|
||||
|
||||
div#select-board-dialog .selectBoardContainer .list .item.selected i {
|
||||
color: var(--theia-arduino-branding-primary);
|
||||
color: var(--theia-arduino-branding-primary);
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .search,
|
||||
#select-board-dialog .selectBoardContainer .search input,
|
||||
#select-board-dialog .selectBoardContainer .list,
|
||||
#select-board-dialog .selectBoardContainer .list {
|
||||
background: var(--theia-editor-background);
|
||||
background: var(--theia-editor-background);
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .search input {
|
||||
border: none;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
max-height: 37px;
|
||||
padding: 10px 5px 10px 10px;
|
||||
margin: 0;
|
||||
vertical-align: top;
|
||||
display: flex;
|
||||
color: var(--theia-input-foreground);
|
||||
border: none;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
max-height: 37px;
|
||||
padding: 10px 5px 10px 10px;
|
||||
margin: 0;
|
||||
vertical-align: top;
|
||||
display: flex;
|
||||
color: var(--theia-input-foreground);
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .search input:focus {
|
||||
box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .container {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
max-height: 100%;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .container .content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
max-height: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
max-height: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .left.container .content {
|
||||
margin: 0 5px 0 0;
|
||||
margin: 0 5px 0 0;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .right.container .content {
|
||||
margin: 0 0 0 5px;
|
||||
margin: 0 0 0 5px;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .container .content .title {
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
padding: 0px 0px 10px 0px;
|
||||
text-transform: uppercase;
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
padding: 0px 0px 10px 0px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .container .content .footer {
|
||||
padding: 10px 5px 10px 0px;
|
||||
padding: 10px 5px 10px 0px;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .container .content .loading {
|
||||
font-size: var(--theia-ui-font-size1);
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
padding: 10px 5px 10px 10px;
|
||||
text-transform: uppercase;
|
||||
/* The max, min-height comes from `.list` 200px + 47px top padding - 2 * 10px top padding */
|
||||
max-height: 227px;
|
||||
min-height: 227px;
|
||||
font-size: var(--theia-ui-font-size1);
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
padding: 10px 5px 10px 10px;
|
||||
text-transform: uppercase;
|
||||
/* The max, min-height comes from `.list` 200px + 47px top padding - 2 * 10px top padding */
|
||||
max-height: 227px;
|
||||
min-height: 227px;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .list .item {
|
||||
padding: 10px 5px 10px 10px;
|
||||
display: flex;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
flex: 1 0;
|
||||
padding: 10px 5px 10px 10px;
|
||||
display: flex;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
flex: 1 0;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .list .item .selected-icon {
|
||||
margin-left: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .list .item .details {
|
||||
font-size: var(--theia-ui-font-size1);
|
||||
opacity: var(--theia-mod-disabled-opacity);
|
||||
width: 155px; /* used heuristics for the calculation */
|
||||
white-space: pre;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-size: var(--theia-ui-font-size1);
|
||||
opacity: var(--theia-mod-disabled-opacity);
|
||||
width: 155px; /* used heuristics for the calculation */
|
||||
white-space: pre;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .list .item.missing {
|
||||
opacity: var(--theia-mod-disabled-opacity);
|
||||
opacity: var(--theia-mod-disabled-opacity);
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .list .item:hover {
|
||||
background: var(--theia-secondaryButton-hoverBackground);
|
||||
background: var(--theia-secondaryButton-hoverBackground);
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .list .label {
|
||||
white-space: pre;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: pre;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .list {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
flex: 1;
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .ports.list {
|
||||
margin: 47px 0px 0px 0px; /* 47 is 37 as input height for the `Boards`, plus 10 margin bottom. */
|
||||
margin: 47px 0px 0px 0px; /* 47 is 37 as input height for the `Boards`, plus 10 margin bottom. */
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .search {
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-right: 5px;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.arduino-boards-toolbar-item-container {
|
||||
align-items: center;
|
||||
background: var(--theia-arduino-toolbar-dropdown-background);
|
||||
border-radius: 1px;
|
||||
color: var(--theia-arduino-toolbar-dropdown-label);
|
||||
border: 1px solid var(--theia-arduino-toolbar-dropdown-border);
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
height: var(--arduino-button-height);
|
||||
margin: 0 4px;
|
||||
overflow: hidden;
|
||||
padding: 0 10px;
|
||||
width: 210px;
|
||||
align-items: center;
|
||||
background: var(--theia-arduino-toolbar-dropdown-background);
|
||||
border-radius: 1px;
|
||||
color: var(--theia-arduino-toolbar-dropdown-label);
|
||||
border: 1px solid var(--theia-arduino-toolbar-dropdown-border);
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
height: var(--arduino-button-height);
|
||||
margin: 0 4px;
|
||||
overflow: hidden;
|
||||
padding: 0 10px;
|
||||
width: 210px;
|
||||
}
|
||||
|
||||
.arduino-boards-toolbar-item--protocol,
|
||||
.arduino-boards-dropdown-item--protocol {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-size: 16px;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.arduino-boards-toolbar-item--protocol,
|
||||
.arduino-boards-dropdown-item--protocol {
|
||||
color: var(--theia-arduino-toolbar-dropdown-label);
|
||||
color: var(--theia-arduino-toolbar-dropdown-label);
|
||||
}
|
||||
|
||||
.arduino-boards-toolbar-item-container .arduino-boards-toolbar-item {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.arduino-boards-toolbar-item--label {
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.arduino-boards-toolbar-item--label-connected {
|
||||
font-family: 'Open Sans Bold';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
font-family: "Open Sans Bold";
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.arduino-boards-toolbar-item-container .caret {
|
||||
width: 10px;
|
||||
margin-right: 5px;
|
||||
width: 10px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-list {
|
||||
margin: -1px;
|
||||
z-index: 1;
|
||||
border: 1px solid var(--theia-arduino-toolbar-dropdown-border);
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
margin: -1px;
|
||||
z-index: 1;
|
||||
border: 1px solid var(--theia-arduino-toolbar-dropdown-border);
|
||||
font-family: "Open Sans";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-list:focus {
|
||||
border: 1px solid var(--theia-arduino-toolbar-dropdown-borderActive);
|
||||
border: 1px solid var(--theia-arduino-toolbar-dropdown-borderActive);
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-list--items-container {
|
||||
overflow: auto;
|
||||
max-height: 404px;
|
||||
background: var(--theia-arduino-toolbar-dropdown-background);
|
||||
overflow: auto;
|
||||
max-height: 404px;
|
||||
background: var(--theia-arduino-toolbar-dropdown-background);
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-list--items-container::-webkit-scrollbar {
|
||||
background: var(--theia-arduino-toolbar-dropdown-background);
|
||||
background: var(--theia-arduino-toolbar-dropdown-background);
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item {
|
||||
background: var(--theia-arduino-toolbar-dropdown-background);
|
||||
color: var(--theia-arduino-toolbar-dropdown-label);
|
||||
cursor: default;
|
||||
display: flex;
|
||||
font-size: var(--theia-ui-font-size1);
|
||||
justify-content: space-between;
|
||||
padding: 10px;
|
||||
background: var(--theia-arduino-toolbar-dropdown-background);
|
||||
color: var(--theia-arduino-toolbar-dropdown-label);
|
||||
cursor: default;
|
||||
display: flex;
|
||||
font-size: var(--theia-ui-font-size1);
|
||||
justify-content: space-between;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item--board-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item--label {
|
||||
overflow: hidden;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* Redefine default codicon size https://github.com/microsoft/vscode/commit/38cd0a377b7abef34fb07fe770fc633e68819ba6 */
|
||||
.arduino-boards-dropdown-item .codicon[class*='codicon-'] {
|
||||
font-size: 14px;
|
||||
.arduino-boards-dropdown-item .codicon[class*="codicon-"] {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item .p-TabBar-toolbar {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
flex-direction: column;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item .p-TabBar-toolbar .item {
|
||||
margin: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item .p-TabBar-toolbar .item .action-label {
|
||||
padding: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item--board-label {
|
||||
font-size: 14px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item .arduino-boards-dropdown-item--protocol {
|
||||
margin-right: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item--port-label {
|
||||
font-size: 12px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item:hover {
|
||||
background: var(--theia-arduino-toolbar-dropdown-option-backgroundHover);
|
||||
background: var(--theia-arduino-toolbar-dropdown-option-backgroundHover);
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item--selected,
|
||||
.arduino-boards-dropdown-item--selected:hover {
|
||||
background: var(--theia-arduino-toolbar-dropdown-option-backgroundSelected);
|
||||
border: 1px solid var(--theia-arduino-toolbar-dropdown-option-backgroundSelected);
|
||||
background: var(--theia-arduino-toolbar-dropdown-option-backgroundSelected);
|
||||
border: 1px solid
|
||||
var(--theia-arduino-toolbar-dropdown-option-backgroundSelected);
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item--selected
|
||||
.arduino-boards-dropdown-item--port-label {
|
||||
color: var(--theia-arduino-toolbar-dropdown-label);
|
||||
.arduino-boards-dropdown-item--port-label {
|
||||
color: var(--theia-arduino-toolbar-dropdown-label);
|
||||
}
|
||||
|
||||
.arduino-boards-dropdown-item--selected .fa {
|
||||
color: var(--theia-arduino-toolbar-dropdown-iconSelected);
|
||||
color: var(--theia-arduino-toolbar-dropdown-iconSelected);
|
||||
}
|
||||
|
||||
.arduino-board-dropdown-footer {
|
||||
color: var(--theia-secondaryButton-foreground);
|
||||
border-top: 1px solid var(--theia-dropdown-border);
|
||||
color: var(--theia-secondaryButton-foreground);
|
||||
border-top: 1px solid var(--theia-dropdown-border);
|
||||
}
|
||||
|
||||
@media only screen and (max-height: 400px) {
|
||||
div.dialogContent.select-board-dialog > div.head {
|
||||
display: none;
|
||||
}
|
||||
div.dialogContent.select-board-dialog > div.head {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#select-board-dialog .selectBoardContainer .container .content .title {
|
||||
display: none;
|
||||
}
|
||||
#select-board-dialog .selectBoardContainer .container .content .title {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#select-board-dialog .no-result {
|
||||
text-transform: uppercase;
|
||||
height: 100%;
|
||||
user-select: none;
|
||||
padding: 10px 5px;
|
||||
overflow-wrap: break-word;
|
||||
text-transform: uppercase;
|
||||
height: 100%;
|
||||
user-select: none;
|
||||
padding: 10px 5px;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
@ -1,76 +1,75 @@
|
||||
#certificate-uploader-dialog-container > .dialogBlock {
|
||||
width: 600px;
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
.certificate-uploader-dialog .theia-select {
|
||||
border: none !important;
|
||||
border: none !important;
|
||||
}
|
||||
.certificate-uploader-dialog .arduino-select__control {
|
||||
height: 31px;
|
||||
background: var(--theia-dropdown-background) !important;
|
||||
height: 31px;
|
||||
background: var(--theia-dropdown-background) !important;
|
||||
}
|
||||
|
||||
.certificate-uploader-dialog .dialogRow > button{
|
||||
margin-right: 3px;
|
||||
.certificate-uploader-dialog .dialogRow > button {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.certificate-uploader-dialog .certificate-list {
|
||||
border: 1px solid var(--theia-editorWidget-border);
|
||||
border-radius: 2px;;
|
||||
color: var(--theia-editor-foreground);
|
||||
background-color: var(--theia-editor-background);
|
||||
overflow: auto;
|
||||
height: 120px;
|
||||
flex: 1;
|
||||
border: 1px solid var(--theia-editorWidget-border);
|
||||
border-radius: 2px;
|
||||
color: var(--theia-editor-foreground);
|
||||
background-color: var(--theia-editor-background);
|
||||
overflow: auto;
|
||||
height: 120px;
|
||||
flex: 1;
|
||||
}
|
||||
.certificate-uploader-dialog .certificate-list .certificate-row {
|
||||
display: flex;
|
||||
padding: 6px 10px 5px 10px
|
||||
display: flex;
|
||||
padding: 6px 10px 5px 10px;
|
||||
}
|
||||
.certificate-uploader-dialog .certificate-list .certificate-row:hover {
|
||||
background-color: var(--theia-list-activeSelectionBackground);
|
||||
background-color: var(--theia-list-activeSelectionBackground);
|
||||
}
|
||||
|
||||
.certificate-uploader-dialog .upload-status {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
}
|
||||
.certificate-uploader-dialog .success {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #1DA086;
|
||||
.certificate-uploader-dialog .success {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #1da086;
|
||||
}
|
||||
|
||||
.certificate-uploader-dialog .warn {
|
||||
color: #C11F09;
|
||||
.certificate-uploader-dialog .warn {
|
||||
color: #c11f09;
|
||||
}
|
||||
|
||||
.certificate-uploader-dialog .status-icon {
|
||||
margin-right: 10px;
|
||||
.certificate-uploader-dialog .status-icon {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.certificate-uploader-dialog .add-cert-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.certificate-uploader-dialog .add-cert-btn .caret {
|
||||
margin-left: 6px;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.certificate-add {
|
||||
padding: 16px;
|
||||
border-radius: 3px;
|
||||
border: 1px solid var(--theia-editorWidget-border);
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
background-color: var(--theia-editorWidget-background);
|
||||
padding: 16px;
|
||||
border-radius: 3px;
|
||||
border: 1px solid var(--theia-editorWidget-border);
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
background-color: var(--theia-editorWidget-background);
|
||||
}
|
||||
|
||||
.certificate-add input {
|
||||
margin-top: 12px;
|
||||
padding: 0 12px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
|
||||
margin-top: 12px;
|
||||
padding: 0 12px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
@ -23,8 +23,7 @@
|
||||
-webkit-mask-size: 100%;
|
||||
}
|
||||
|
||||
.p-mod-current
|
||||
.cloud-sketchbook-tree-icon {
|
||||
.p-mod-current .cloud-sketchbook-tree-icon {
|
||||
background-color: var(--theia-foreground);
|
||||
-webkit-mask: url(../icons/arduino-cloud-filled.svg);
|
||||
-webkit-mask-position: center;
|
||||
@ -33,49 +32,49 @@
|
||||
}
|
||||
|
||||
.sketchbook-trees-container
|
||||
.p-TabBar[data-orientation="horizontal"]
|
||||
> .p-TabBar-content {
|
||||
.p-TabBar[data-orientation="horizontal"]
|
||||
> .p-TabBar-content {
|
||||
justify-content: center;
|
||||
border-bottom: 1px solid var(--theia-tree-indentGuidesStroke);
|
||||
}
|
||||
|
||||
.sketchbook-trees-container
|
||||
.p-Widget.p-TabBar.p-DockPanel-tabBar
|
||||
> ul
|
||||
> li.p-TabBar-tab
|
||||
> div.p-TabBar-tabLabel {
|
||||
.p-Widget.p-TabBar.p-DockPanel-tabBar
|
||||
> ul
|
||||
> li.p-TabBar-tab
|
||||
> div.p-TabBar-tabLabel {
|
||||
display: none;
|
||||
width: 0px;
|
||||
max-width: 0px;
|
||||
}
|
||||
|
||||
.sketchbook-trees-container
|
||||
.p-Widget.p-TabBar.p-DockPanel-tabBar
|
||||
> ul
|
||||
> li.p-TabBar-tab
|
||||
> div.p-TabBar-tabCloseIcon {
|
||||
.p-Widget.p-TabBar.p-DockPanel-tabBar
|
||||
> ul
|
||||
> li.p-TabBar-tab
|
||||
> div.p-TabBar-tabCloseIcon {
|
||||
display: none;
|
||||
width: 0px;
|
||||
max-width: 0px;
|
||||
}
|
||||
|
||||
.sketchbook-trees-container
|
||||
.p-TabBar[data-orientation="horizontal"]
|
||||
.p-TabBar-tab {
|
||||
.p-TabBar[data-orientation="horizontal"]
|
||||
.p-TabBar-tab {
|
||||
min-width: 55px;
|
||||
}
|
||||
|
||||
.sketchbook-trees-container
|
||||
.p-Widget.p-TabBar.p-DockPanel-tabBar
|
||||
> ul
|
||||
> li.p-TabBar-tab {
|
||||
.p-Widget.p-TabBar.p-DockPanel-tabBar
|
||||
> ul
|
||||
> li.p-TabBar-tab {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.sketchbook-trees-container
|
||||
.p-Widget.p-TabBar.p-DockPanel-tabBar
|
||||
> ul
|
||||
> li.p-TabBar-tab.p-mod-current {
|
||||
.p-Widget.p-TabBar.p-DockPanel-tabBar
|
||||
> ul
|
||||
> li.p-TabBar-tab.p-mod-current {
|
||||
border-bottom: 2px solid var(--theia-activityBar-activeBorder);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
.codicon-debug-alt:before {
|
||||
font-family: 'FontAwesome' !important;
|
||||
content: "\e905" !important
|
||||
font-family: "FontAwesome" !important;
|
||||
content: "\e905" !important;
|
||||
}
|
@ -56,14 +56,23 @@
|
||||
}
|
||||
|
||||
.p-Widget.dialogOverlay .dialogControl .spinner,
|
||||
.p-Widget.dialogOverlay .dialogBlock .dialogContent .dialogSection .dialogRow .spinner {
|
||||
.p-Widget.dialogOverlay
|
||||
.dialogBlock
|
||||
.dialogContent
|
||||
.dialogSection
|
||||
.dialogRow
|
||||
.spinner {
|
||||
background: var(--theia-icon-loading) center center no-repeat;
|
||||
animation: theia-spin 1.25s linear infinite;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.p-Widget.dialogOverlay .dialogBlock .dialogContent .dialogSection .dialogRow:first-child {
|
||||
.p-Widget.dialogOverlay
|
||||
.dialogBlock
|
||||
.dialogContent
|
||||
.dialogSection
|
||||
.dialogRow:first-child {
|
||||
margin-top: 0px;
|
||||
height: 32px;
|
||||
}
|
||||
@ -78,7 +87,7 @@
|
||||
}
|
||||
|
||||
.fa.disabled {
|
||||
opacity: .4;
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
@media only screen and (max-height: 560px) {
|
||||
|
@ -1,7 +1,9 @@
|
||||
/* Show the dirty indicator on unclosable widgets. On hover, it should still show the dot instead of the X. */
|
||||
/* https://github.com/arduino/arduino-pro-ide/issues/380 */
|
||||
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable.a-mod-uncloseable.theia-mod-dirty > .p-TabBar-tabCloseIcon:before {
|
||||
content: "\ea71";
|
||||
.p-TabBar.theia-app-centers
|
||||
.p-TabBar-tab.p-mod-closable.a-mod-uncloseable.theia-mod-dirty
|
||||
> .p-TabBar-tabCloseIcon:before {
|
||||
content: "\ea71";
|
||||
}
|
||||
|
||||
.monaco-list-row.show-file-icons.focused {
|
||||
|
@ -1,31 +1,31 @@
|
||||
#firmware-uploader-dialog-container > .dialogBlock {
|
||||
width: 600px;
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
.firmware-uploader-dialog .theia-select {
|
||||
border: none !important;
|
||||
border: none !important;
|
||||
}
|
||||
.firmware-uploader-dialog .arduino-select__control {
|
||||
height: 31px;
|
||||
background: var(--theia-input-background) !important;
|
||||
height: 31px;
|
||||
background: var(--theia-input-background) !important;
|
||||
}
|
||||
|
||||
.firmware-uploader-dialog .dialogRow > button{
|
||||
margin-right: 3px;
|
||||
.firmware-uploader-dialog .dialogRow > button {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.firmware-uploader-dialog #firmware-select {
|
||||
flex: unset;
|
||||
flex: unset;
|
||||
}
|
||||
|
||||
.firmware-uploader-dialog .success {
|
||||
color: #1DA086;
|
||||
.firmware-uploader-dialog .success {
|
||||
color: #1da086;
|
||||
}
|
||||
|
||||
.firmware-uploader-dialog .warn {
|
||||
color: #C11F09;
|
||||
.firmware-uploader-dialog .warn {
|
||||
color: #c11f09;
|
||||
}
|
||||
|
||||
.firmware-uploader-dialog .status-icon {
|
||||
margin-right: 10px;
|
||||
.firmware-uploader-dialog .status-icon {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
@ -1,699 +1,698 @@
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url('fonts/OpenSans-Regular-webfont.woff') format('woff');
|
||||
font-family: "Open Sans";
|
||||
src: url("fonts/OpenSans-Regular-webfont.woff") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans Bold';
|
||||
src: url('fonts/OpenSans-Bold-webfont.woff') format('woff');
|
||||
font-family: "Open Sans Bold";
|
||||
src: url("fonts/OpenSans-Bold-webfont.woff") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
src:
|
||||
url('fonts/FontAwesome.ttf?h959em') format('truetype'),
|
||||
url('fonts/FontAwesome.woff?h959em') format('woff'),
|
||||
url('fonts/FontAwesome.svg?h959em#FontAwesome') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: block;
|
||||
font-family: "FontAwesome";
|
||||
src: url("fonts/FontAwesome.ttf?h959em") format("truetype"),
|
||||
url("fonts/FontAwesome.woff?h959em") format("woff"),
|
||||
url("fonts/FontAwesome.svg?h959em#FontAwesome") format("svg");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: block;
|
||||
}
|
||||
|
||||
.fa {
|
||||
/* use !important to prevent issues with browser extensions that change fonts */
|
||||
font-family: 'FontAwesome' !important;
|
||||
speak: never;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
/* use !important to prevent issues with browser extensions that change fonts */
|
||||
font-family: "FontAwesome" !important;
|
||||
speak: never;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
|
||||
/* Better Font Rendering =========== */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
/* Better Font Rendering =========== */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.fa-arduino-verify:before {
|
||||
content: "\e90b";
|
||||
content: "\e90b";
|
||||
}
|
||||
.fa-arduino-upload:before {
|
||||
content: "\e90c";
|
||||
content: "\e90c";
|
||||
}
|
||||
.fa-arduino-monitor:before {
|
||||
content: "\e90d";
|
||||
content: "\e90d";
|
||||
}
|
||||
.fa-arduino-sketch-tabs-menu:before {
|
||||
content: "\e90e";
|
||||
content: "\e90e";
|
||||
}
|
||||
.fa-arduino-plotter:before {
|
||||
content: "\e90f";
|
||||
content: "\e90f";
|
||||
}
|
||||
.fa-fa-check:before {
|
||||
content: "\e90a";
|
||||
content: "\e90a";
|
||||
}
|
||||
.fa-arduino-technology-3dimensionscube:before {
|
||||
content: "\e906";
|
||||
content: "\e906";
|
||||
}
|
||||
.fa-arduino-technology-usb:before {
|
||||
content: "\e907";
|
||||
content: "\e907";
|
||||
}
|
||||
.fa-arduino-technology-connection:before {
|
||||
content: "\e908";
|
||||
content: "\e908";
|
||||
}
|
||||
.fa-arduino-technology-bluetooth:before {
|
||||
content: "\e909";
|
||||
content: "\e909";
|
||||
}
|
||||
.fa-arduino-debugger:before {
|
||||
content: "\e905";
|
||||
content: "\e905";
|
||||
}
|
||||
.fa-arduino-search:before {
|
||||
content: "\e901";
|
||||
content: "\e901";
|
||||
}
|
||||
.fa-arduino-boards:before {
|
||||
content: "\e902";
|
||||
content: "\e902";
|
||||
}
|
||||
.fa-arduino-library:before {
|
||||
content: "\e903";
|
||||
content: "\e903";
|
||||
}
|
||||
.fa-arduino-folder:before {
|
||||
content: "\e904";
|
||||
content: "\e904";
|
||||
}
|
||||
.fa-reload:before {
|
||||
content: "\e900";
|
||||
content: "\e900";
|
||||
}
|
||||
.fa-asterisk:before {
|
||||
content: "\f069";
|
||||
content: "\f069";
|
||||
}
|
||||
.fa-plus:before {
|
||||
content: "\f067";
|
||||
content: "\f067";
|
||||
}
|
||||
.fa-question:before {
|
||||
content: "\f128";
|
||||
content: "\f128";
|
||||
}
|
||||
.fa-minus:before {
|
||||
content: "\f068";
|
||||
content: "\f068";
|
||||
}
|
||||
.fa-music:before {
|
||||
content: "\f001";
|
||||
content: "\f001";
|
||||
}
|
||||
.fa-search:before {
|
||||
content: "\f002";
|
||||
content: "\f002";
|
||||
}
|
||||
.fa-envelope-o:before {
|
||||
content: "\f003";
|
||||
content: "\f003";
|
||||
}
|
||||
.fa-heart:before {
|
||||
content: "\f004";
|
||||
content: "\f004";
|
||||
}
|
||||
.fa-star:before {
|
||||
content: "\f005";
|
||||
content: "\f005";
|
||||
}
|
||||
.fa-star-o:before {
|
||||
content: "\f006";
|
||||
content: "\f006";
|
||||
}
|
||||
.fa-user:before {
|
||||
content: "\f007";
|
||||
content: "\f007";
|
||||
}
|
||||
.fa-film:before {
|
||||
content: "\f008";
|
||||
content: "\f008";
|
||||
}
|
||||
.fa-th-large:before {
|
||||
content: "\f009";
|
||||
content: "\f009";
|
||||
}
|
||||
.fa-th:before {
|
||||
content: "\f00a";
|
||||
content: "\f00a";
|
||||
}
|
||||
.fa-th-list:before {
|
||||
content: "\f00b";
|
||||
content: "\f00b";
|
||||
}
|
||||
.fa-close:before {
|
||||
content: "\f00d";
|
||||
content: "\f00d";
|
||||
}
|
||||
.fa-remove:before {
|
||||
content: "\f00d";
|
||||
content: "\f00d";
|
||||
}
|
||||
.fa-times:before {
|
||||
content: "\f00d";
|
||||
content: "\f00d";
|
||||
}
|
||||
.fa-search-plus:before {
|
||||
content: "\f00e";
|
||||
content: "\f00e";
|
||||
}
|
||||
.fa-search-minus:before {
|
||||
content: "\f010";
|
||||
content: "\f010";
|
||||
}
|
||||
.fa-power-off:before {
|
||||
content: "\f011";
|
||||
content: "\f011";
|
||||
}
|
||||
.fa-signal:before {
|
||||
content: "\f012";
|
||||
content: "\f012";
|
||||
}
|
||||
.fa-cog:before {
|
||||
content: "\f013";
|
||||
content: "\f013";
|
||||
}
|
||||
.fa-gear:before {
|
||||
content: "\f013";
|
||||
content: "\f013";
|
||||
}
|
||||
.fa-trash-o:before {
|
||||
content: "\f014";
|
||||
content: "\f014";
|
||||
}
|
||||
.fa-home:before {
|
||||
content: "\f015";
|
||||
content: "\f015";
|
||||
}
|
||||
.fa-file-o:before {
|
||||
content: "\f016";
|
||||
content: "\f016";
|
||||
}
|
||||
.fa-clock-o:before {
|
||||
content: "\f017";
|
||||
content: "\f017";
|
||||
}
|
||||
.fa-download:before {
|
||||
content: "\f019";
|
||||
content: "\f019";
|
||||
}
|
||||
.fa-arrow-circle-o-down:before {
|
||||
content: "\f01a";
|
||||
content: "\f01a";
|
||||
}
|
||||
.fa-arrow-circle-o-up:before {
|
||||
content: "\f01b";
|
||||
content: "\f01b";
|
||||
}
|
||||
.fa-inbox:before {
|
||||
content: "\f01c";
|
||||
content: "\f01c";
|
||||
}
|
||||
.fa-play-circle-o:before {
|
||||
content: "\f01d";
|
||||
content: "\f01d";
|
||||
}
|
||||
.fa-repeat:before {
|
||||
content: "\f01e";
|
||||
content: "\f01e";
|
||||
}
|
||||
.fa-rotate-right:before {
|
||||
content: "\f01e";
|
||||
content: "\f01e";
|
||||
}
|
||||
.fa-refresh:before {
|
||||
content: "\f021";
|
||||
content: "\f021";
|
||||
}
|
||||
.fa-list-alt:before {
|
||||
content: "\f022";
|
||||
content: "\f022";
|
||||
}
|
||||
.fa-lock:before {
|
||||
content: "\f023";
|
||||
content: "\f023";
|
||||
}
|
||||
.fa-volume-off:before {
|
||||
content: "\f026";
|
||||
content: "\f026";
|
||||
}
|
||||
.fa-volume-down:before {
|
||||
content: "\f027";
|
||||
content: "\f027";
|
||||
}
|
||||
.fa-volume-up:before {
|
||||
content: "\f028";
|
||||
content: "\f028";
|
||||
}
|
||||
.fa-qrcode:before {
|
||||
content: "\f029";
|
||||
content: "\f029";
|
||||
}
|
||||
.fa-tag:before {
|
||||
content: "\f02b";
|
||||
content: "\f02b";
|
||||
}
|
||||
.fa-tags:before {
|
||||
content: "\f02c";
|
||||
content: "\f02c";
|
||||
}
|
||||
.fa-book:before {
|
||||
content: "\f02d";
|
||||
content: "\f02d";
|
||||
}
|
||||
.fa-print:before {
|
||||
content: "\f02f";
|
||||
content: "\f02f";
|
||||
}
|
||||
.fa-text-height:before {
|
||||
content: "\f034";
|
||||
content: "\f034";
|
||||
}
|
||||
.fa-text-width:before {
|
||||
content: "\f035";
|
||||
content: "\f035";
|
||||
}
|
||||
.fa-align-left:before {
|
||||
content: "\f036";
|
||||
content: "\f036";
|
||||
}
|
||||
.fa-align-center:before {
|
||||
content: "\f037";
|
||||
content: "\f037";
|
||||
}
|
||||
.fa-align-right:before {
|
||||
content: "\f038";
|
||||
content: "\f038";
|
||||
}
|
||||
.fa-align-justify:before {
|
||||
content: "\f039";
|
||||
content: "\f039";
|
||||
}
|
||||
.fa-list:before {
|
||||
content: "\f03a";
|
||||
content: "\f03a";
|
||||
}
|
||||
.fa-dedent:before {
|
||||
content: "\f03b";
|
||||
content: "\f03b";
|
||||
}
|
||||
.fa-outdent:before {
|
||||
content: "\f03b";
|
||||
content: "\f03b";
|
||||
}
|
||||
.fa-indent:before {
|
||||
content: "\f03c";
|
||||
content: "\f03c";
|
||||
}
|
||||
.fa-pencil:before {
|
||||
content: "\f040";
|
||||
content: "\f040";
|
||||
}
|
||||
.fa-adjust:before {
|
||||
content: "\f042";
|
||||
content: "\f042";
|
||||
}
|
||||
.fa-edit:before {
|
||||
content: "\f044";
|
||||
content: "\f044";
|
||||
}
|
||||
.fa-pencil-square-o:before {
|
||||
content: "\f044";
|
||||
content: "\f044";
|
||||
}
|
||||
.fa-share-square-o:before {
|
||||
content: "\f045";
|
||||
content: "\f045";
|
||||
}
|
||||
.fa-check-square-o:before {
|
||||
content: "\f046";
|
||||
content: "\f046";
|
||||
}
|
||||
.fa-arrows:before {
|
||||
content: "\f047";
|
||||
content: "\f047";
|
||||
}
|
||||
.fa-step-backward:before {
|
||||
content: "\f048";
|
||||
content: "\f048";
|
||||
}
|
||||
.fa-fast-backward:before {
|
||||
content: "\f049";
|
||||
content: "\f049";
|
||||
}
|
||||
.fa-backward:before {
|
||||
content: "\f04a";
|
||||
content: "\f04a";
|
||||
}
|
||||
.fa-play:before {
|
||||
content: "\f04b";
|
||||
content: "\f04b";
|
||||
}
|
||||
.fa-pause:before {
|
||||
content: "\f04c";
|
||||
content: "\f04c";
|
||||
}
|
||||
.fa-stop:before {
|
||||
content: "\f04d";
|
||||
content: "\f04d";
|
||||
}
|
||||
.fa-forward:before {
|
||||
content: "\f04e";
|
||||
content: "\f04e";
|
||||
}
|
||||
.fa-fast-forward:before {
|
||||
content: "\f050";
|
||||
content: "\f050";
|
||||
}
|
||||
.fa-step-forward:before {
|
||||
content: "\f051";
|
||||
content: "\f051";
|
||||
}
|
||||
.fa-eject:before {
|
||||
content: "\f052";
|
||||
content: "\f052";
|
||||
}
|
||||
.fa-chevron-left:before {
|
||||
content: "\f053";
|
||||
content: "\f053";
|
||||
}
|
||||
.fa-chevron-right:before {
|
||||
content: "\f054";
|
||||
content: "\f054";
|
||||
}
|
||||
.fa-plus-circle:before {
|
||||
content: "\f055";
|
||||
content: "\f055";
|
||||
}
|
||||
.fa-minus-circle:before {
|
||||
content: "\f056";
|
||||
content: "\f056";
|
||||
}
|
||||
.fa-times-circle:before {
|
||||
content: "\f057";
|
||||
content: "\f057";
|
||||
}
|
||||
.fa-check-circle:before {
|
||||
content: "\f058";
|
||||
content: "\f058";
|
||||
}
|
||||
.fa-question-circle:before {
|
||||
content: "\f059";
|
||||
content: "\f059";
|
||||
}
|
||||
.fa-info-circle:before {
|
||||
content: "\f05a";
|
||||
content: "\f05a";
|
||||
}
|
||||
.fa-crosshairs:before {
|
||||
content: "\f05b";
|
||||
content: "\f05b";
|
||||
}
|
||||
.fa-times-circle-o:before {
|
||||
content: "\f05c";
|
||||
content: "\f05c";
|
||||
}
|
||||
.fa-check-circle-o:before {
|
||||
content: "\f05d";
|
||||
content: "\f05d";
|
||||
}
|
||||
.fa-ban:before {
|
||||
content: "\f05e";
|
||||
content: "\f05e";
|
||||
}
|
||||
.fa-arrow-left:before {
|
||||
content: "\f060";
|
||||
content: "\f060";
|
||||
}
|
||||
.fa-arrow-right:before {
|
||||
content: "\f061";
|
||||
content: "\f061";
|
||||
}
|
||||
.fa-arrow-up:before {
|
||||
content: "\f062";
|
||||
content: "\f062";
|
||||
}
|
||||
.fa-arrow-down:before {
|
||||
content: "\f063";
|
||||
content: "\f063";
|
||||
}
|
||||
.fa-mail-forward:before {
|
||||
content: "\f064";
|
||||
content: "\f064";
|
||||
}
|
||||
.fa-share:before {
|
||||
content: "\f064";
|
||||
content: "\f064";
|
||||
}
|
||||
.fa-expand:before {
|
||||
content: "\f065";
|
||||
content: "\f065";
|
||||
}
|
||||
.fa-compress:before {
|
||||
content: "\f066";
|
||||
content: "\f066";
|
||||
}
|
||||
.fa-exclamation-circle:before {
|
||||
content: "\f06a";
|
||||
content: "\f06a";
|
||||
}
|
||||
.fa-eye:before {
|
||||
content: "\f06e";
|
||||
content: "\f06e";
|
||||
}
|
||||
.fa-eye-slash:before {
|
||||
content: "\f070";
|
||||
content: "\f070";
|
||||
}
|
||||
.fa-exclamation-triangle:before {
|
||||
content: "\f071";
|
||||
content: "\f071";
|
||||
}
|
||||
.fa-warning:before {
|
||||
content: "\f071";
|
||||
content: "\f071";
|
||||
}
|
||||
.fa-calendar:before {
|
||||
content: "\f073";
|
||||
content: "\f073";
|
||||
}
|
||||
.fa-random:before {
|
||||
content: "\f074";
|
||||
content: "\f074";
|
||||
}
|
||||
.fa-comment:before {
|
||||
content: "\f075";
|
||||
content: "\f075";
|
||||
}
|
||||
.fa-chevron-up:before {
|
||||
content: "\f077";
|
||||
content: "\f077";
|
||||
}
|
||||
.fa-chevron-down:before {
|
||||
content: "\f078";
|
||||
content: "\f078";
|
||||
}
|
||||
.fa-retweet:before {
|
||||
content: "\f079";
|
||||
content: "\f079";
|
||||
}
|
||||
.fa-folder:before {
|
||||
content: "\f07b";
|
||||
content: "\f07b";
|
||||
}
|
||||
.fa-folder-open:before {
|
||||
content: "\f07c";
|
||||
content: "\f07c";
|
||||
}
|
||||
.fa-arrows-v:before {
|
||||
content: "\f07d";
|
||||
content: "\f07d";
|
||||
}
|
||||
.fa-arrows-h:before {
|
||||
content: "\f07e";
|
||||
content: "\f07e";
|
||||
}
|
||||
.fa-cogs:before {
|
||||
content: "\f085";
|
||||
content: "\f085";
|
||||
}
|
||||
.fa-gears:before {
|
||||
content: "\f085";
|
||||
content: "\f085";
|
||||
}
|
||||
.fa-star-half:before {
|
||||
content: "\f089";
|
||||
content: "\f089";
|
||||
}
|
||||
.fa-heart-o:before {
|
||||
content: "\f08a";
|
||||
content: "\f08a";
|
||||
}
|
||||
.fa-sign-out:before {
|
||||
content: "\f08b";
|
||||
content: "\f08b";
|
||||
}
|
||||
.fa-thumb-tack:before {
|
||||
content: "\f08d";
|
||||
content: "\f08d";
|
||||
}
|
||||
.fa-external-link:before {
|
||||
content: "\f08e";
|
||||
content: "\f08e";
|
||||
}
|
||||
.fa-sign-in:before {
|
||||
content: "\f090";
|
||||
content: "\f090";
|
||||
}
|
||||
.fa-upload:before {
|
||||
content: "\f093";
|
||||
content: "\f093";
|
||||
}
|
||||
.fa-square-o:before {
|
||||
content: "\f096";
|
||||
content: "\f096";
|
||||
}
|
||||
.fa-bookmark-o:before {
|
||||
content: "\f097";
|
||||
content: "\f097";
|
||||
}
|
||||
.fa-hdd-o:before {
|
||||
content: "\f0a0";
|
||||
content: "\f0a0";
|
||||
}
|
||||
.fa-bell-o:before {
|
||||
content: "\f0a2";
|
||||
content: "\f0a2";
|
||||
}
|
||||
.fa-certificate:before {
|
||||
content: "\f0a3";
|
||||
content: "\f0a3";
|
||||
}
|
||||
.fa-arrow-circle-left:before {
|
||||
content: "\f0a8";
|
||||
content: "\f0a8";
|
||||
}
|
||||
.fa-arrow-circle-right:before {
|
||||
content: "\f0a9";
|
||||
content: "\f0a9";
|
||||
}
|
||||
.fa-arrow-circle-up:before {
|
||||
content: "\f0aa";
|
||||
content: "\f0aa";
|
||||
}
|
||||
.fa-arrow-circle-down:before {
|
||||
content: "\f0ab";
|
||||
content: "\f0ab";
|
||||
}
|
||||
.fa-wrench:before {
|
||||
content: "\f0ad";
|
||||
content: "\f0ad";
|
||||
}
|
||||
.fa-tasks:before {
|
||||
content: "\f0ae";
|
||||
content: "\f0ae";
|
||||
}
|
||||
.fa-filter:before {
|
||||
content: "\f0b0";
|
||||
content: "\f0b0";
|
||||
}
|
||||
.fa-briefcase:before {
|
||||
content: "\f0b1";
|
||||
content: "\f0b1";
|
||||
}
|
||||
.fa-arrows-alt:before {
|
||||
content: "\f0b2";
|
||||
content: "\f0b2";
|
||||
}
|
||||
.fa-cloud:before {
|
||||
content: "\f0c2";
|
||||
content: "\f0c2";
|
||||
}
|
||||
.fa-copy:before {
|
||||
content: "\f0c5";
|
||||
content: "\f0c5";
|
||||
}
|
||||
.fa-files-o:before {
|
||||
content: "\f0c5";
|
||||
content: "\f0c5";
|
||||
}
|
||||
.fa-floppy-o:before {
|
||||
content: "\f0c7";
|
||||
content: "\f0c7";
|
||||
}
|
||||
.fa-save:before {
|
||||
content: "\f0c7";
|
||||
content: "\f0c7";
|
||||
}
|
||||
.fa-square:before {
|
||||
content: "\f0c8";
|
||||
content: "\f0c8";
|
||||
}
|
||||
.fa-bars:before {
|
||||
content: "\f0c9";
|
||||
content: "\f0c9";
|
||||
}
|
||||
.fa-navicon:before {
|
||||
content: "\f0c9";
|
||||
content: "\f0c9";
|
||||
}
|
||||
.fa-reorder:before {
|
||||
content: "\f0c9";
|
||||
content: "\f0c9";
|
||||
}
|
||||
.fa-list-ul:before {
|
||||
content: "\f0ca";
|
||||
content: "\f0ca";
|
||||
}
|
||||
.fa-list-ol:before {
|
||||
content: "\f0cb";
|
||||
content: "\f0cb";
|
||||
}
|
||||
.fa-table:before {
|
||||
content: "\f0ce";
|
||||
content: "\f0ce";
|
||||
}
|
||||
.fa-caret-down:before {
|
||||
content: "\f0d7";
|
||||
content: "\f0d7";
|
||||
}
|
||||
.fa-caret-up:before {
|
||||
content: "\f0d8";
|
||||
content: "\f0d8";
|
||||
}
|
||||
.fa-caret-left:before {
|
||||
content: "\f0d9";
|
||||
content: "\f0d9";
|
||||
}
|
||||
.fa-caret-right:before {
|
||||
content: "\f0da";
|
||||
content: "\f0da";
|
||||
}
|
||||
.fa-columns:before {
|
||||
content: "\f0db";
|
||||
content: "\f0db";
|
||||
}
|
||||
.fa-sort:before {
|
||||
content: "\f0dc";
|
||||
content: "\f0dc";
|
||||
}
|
||||
.fa-unsorted:before {
|
||||
content: "\f0dc";
|
||||
content: "\f0dc";
|
||||
}
|
||||
.fa-sort-desc:before {
|
||||
content: "\f0dd";
|
||||
content: "\f0dd";
|
||||
}
|
||||
.fa-sort-down:before {
|
||||
content: "\f0dd";
|
||||
content: "\f0dd";
|
||||
}
|
||||
.fa-sort-asc:before {
|
||||
content: "\f0de";
|
||||
content: "\f0de";
|
||||
}
|
||||
.fa-sort-up:before {
|
||||
content: "\f0de";
|
||||
content: "\f0de";
|
||||
}
|
||||
.fa-rotate-left:before {
|
||||
content: "\f0e2";
|
||||
content: "\f0e2";
|
||||
}
|
||||
.fa-undo:before {
|
||||
content: "\f0e2";
|
||||
content: "\f0e2";
|
||||
}
|
||||
.fa-file-text-o:before {
|
||||
content: "\f0f6";
|
||||
content: "\f0f6";
|
||||
}
|
||||
.fa-plus-square:before {
|
||||
content: "\f0fe";
|
||||
content: "\f0fe";
|
||||
}
|
||||
.fa-angle-double-left:before {
|
||||
content: "\f100";
|
||||
content: "\f100";
|
||||
}
|
||||
.fa-angle-double-right:before {
|
||||
content: "\f101";
|
||||
content: "\f101";
|
||||
}
|
||||
.fa-angle-double-up:before {
|
||||
content: "\f102";
|
||||
content: "\f102";
|
||||
}
|
||||
.fa-angle-double-down:before {
|
||||
content: "\f103";
|
||||
content: "\f103";
|
||||
}
|
||||
.fa-angle-left:before {
|
||||
content: "\f104";
|
||||
content: "\f104";
|
||||
}
|
||||
.fa-angle-right:before {
|
||||
content: "\f105";
|
||||
content: "\f105";
|
||||
}
|
||||
.fa-angle-up:before {
|
||||
content: "\f106";
|
||||
content: "\f106";
|
||||
}
|
||||
.fa-angle-down:before {
|
||||
content: "\f107";
|
||||
content: "\f107";
|
||||
}
|
||||
.fa-circle-o:before {
|
||||
content: "\f10c";
|
||||
content: "\f10c";
|
||||
}
|
||||
.fa-spinner:before {
|
||||
content: "\f110";
|
||||
content: "\f110";
|
||||
}
|
||||
.fa-circle:before {
|
||||
content: "\f111";
|
||||
content: "\f111";
|
||||
}
|
||||
.fa-mail-reply:before {
|
||||
content: "\f112";
|
||||
content: "\f112";
|
||||
}
|
||||
.fa-reply:before {
|
||||
content: "\f112";
|
||||
content: "\f112";
|
||||
}
|
||||
.fa-folder-o:before {
|
||||
content: "\f114";
|
||||
content: "\f114";
|
||||
}
|
||||
.fa-folder-open-o:before {
|
||||
content: "\f115";
|
||||
content: "\f115";
|
||||
}
|
||||
.fa-keyboard-o:before {
|
||||
content: "\f11c";
|
||||
content: "\f11c";
|
||||
}
|
||||
.fa-terminal:before {
|
||||
content: "\f120";
|
||||
content: "\f120";
|
||||
}
|
||||
.fa-code:before {
|
||||
content: "\f121";
|
||||
content: "\f121";
|
||||
}
|
||||
.fa-mail-reply-all:before {
|
||||
content: "\f122";
|
||||
content: "\f122";
|
||||
}
|
||||
.fa-reply-all:before {
|
||||
content: "\f122";
|
||||
content: "\f122";
|
||||
}
|
||||
.fa-star-half-empty:before {
|
||||
content: "\f123";
|
||||
content: "\f123";
|
||||
}
|
||||
.fa-star-half-full:before {
|
||||
content: "\f123";
|
||||
content: "\f123";
|
||||
}
|
||||
.fa-star-half-o:before {
|
||||
content: "\f123";
|
||||
content: "\f123";
|
||||
}
|
||||
.fa-crop:before {
|
||||
content: "\f125";
|
||||
content: "\f125";
|
||||
}
|
||||
.fa-code-fork:before {
|
||||
content: "\f126";
|
||||
content: "\f126";
|
||||
}
|
||||
.fa-chain-broken:before {
|
||||
content: "\f127";
|
||||
content: "\f127";
|
||||
}
|
||||
.fa-unlink:before {
|
||||
content: "\f127";
|
||||
content: "\f127";
|
||||
}
|
||||
.fa-info:before {
|
||||
content: "\f129";
|
||||
content: "\f129";
|
||||
}
|
||||
.fa-exclamation:before {
|
||||
content: "\f12a";
|
||||
content: "\f12a";
|
||||
}
|
||||
.fa-rocket:before {
|
||||
content: "\f135";
|
||||
content: "\f135";
|
||||
}
|
||||
.fa-maxcdn:before {
|
||||
content: "\f136";
|
||||
content: "\f136";
|
||||
}
|
||||
.fa-chevron-circle-left:before {
|
||||
content: "\f137";
|
||||
content: "\f137";
|
||||
}
|
||||
.fa-chevron-circle-right:before {
|
||||
content: "\f138";
|
||||
content: "\f138";
|
||||
}
|
||||
.fa-chevron-circle-up:before {
|
||||
content: "\f139";
|
||||
content: "\f139";
|
||||
}
|
||||
.fa-chevron-circle-down:before {
|
||||
content: "\f13a";
|
||||
content: "\f13a";
|
||||
}
|
||||
.fa-ellipsis-h:before {
|
||||
content: "\f141";
|
||||
content: "\f141";
|
||||
}
|
||||
.fa-long-arrow-down:before {
|
||||
content: "\f175";
|
||||
content: "\f175";
|
||||
}
|
||||
.fa-long-arrow-up:before {
|
||||
content: "\f176";
|
||||
content: "\f176";
|
||||
}
|
||||
.fa-long-arrow-left:before {
|
||||
content: "\f177";
|
||||
content: "\f177";
|
||||
}
|
||||
.fa-long-arrow-right:before {
|
||||
content: "\f178";
|
||||
content: "\f178";
|
||||
}
|
||||
.fa-microchip:before {
|
||||
content: "\f2db";
|
||||
content: "\f2db";
|
||||
}
|
||||
.fa-arduino-cloud-download:before {
|
||||
content: "\e910";
|
||||
content: "\e910";
|
||||
}
|
||||
.fa-arduino-cloud-upload:before {
|
||||
content: "\e914";
|
||||
content: "\e914";
|
||||
}
|
||||
.fa-arduino-cloud:before {
|
||||
content: "\e915";
|
||||
content: "\e915";
|
||||
}
|
||||
.fa-arduino-cloud-filled:before {
|
||||
content: "\e912";
|
||||
content: "\e912";
|
||||
}
|
||||
.fa-arduino-cloud-offline:before {
|
||||
content: "\e913";
|
||||
content: "\e913";
|
||||
}
|
||||
.fa-arduino-cloud-filled-offline:before {
|
||||
content: "\e911";
|
||||
content: "\e911";
|
||||
}
|
||||
|
@ -1,124 +1,124 @@
|
||||
#ide-updater-dialog-container > .dialogBlock {
|
||||
width: 546px;
|
||||
width: 546px;
|
||||
}
|
||||
|
||||
.ide-updater-dialog .bold {
|
||||
font-weight: bold;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ide-updater-dialog--pre-download {
|
||||
display: flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.ide-updater-dialog--downloading {
|
||||
flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.ide-updater-dialog--logo-container {
|
||||
margin-right: var(--arduino-button-height);
|
||||
margin-right: var(--arduino-button-height);
|
||||
}
|
||||
|
||||
.ide-updater-dialog--logo {
|
||||
background: url('./ide-logo.png') round;
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
background: url("./ide-logo.png") round;
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
}
|
||||
|
||||
.dialogContent.ide-updater-dialog
|
||||
.ide-updater-dialog--content
|
||||
.ide-updater-dialog--new-version-text.dialogSection {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
margin-top: 0;
|
||||
min-width: 0;
|
||||
.ide-updater-dialog--content
|
||||
.ide-updater-dialog--new-version-text.dialogSection {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
margin-top: 0;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.ide-updater-dialog .changelog {
|
||||
color: var(--theia-editor-foreground);
|
||||
background-color: var(--theia-editor-background);
|
||||
font-size: 12px;
|
||||
overflow: auto;
|
||||
padding: 0 12px;
|
||||
cursor: text;
|
||||
width: 100%;
|
||||
color: var(--theia-editor-foreground);
|
||||
background-color: var(--theia-editor-background);
|
||||
font-size: 12px;
|
||||
overflow: auto;
|
||||
padding: 0 12px;
|
||||
cursor: text;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ide-updater-dialog .changelog .fallback {
|
||||
min-height: 180px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
min-height: 180px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.ide-updater-dialog .changelog .fallback .spinner {
|
||||
align-self: center;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.dialogContent.ide-updater-dialog
|
||||
.ide-updater-dialog--content
|
||||
.ide-updater-dialog--new-version-text
|
||||
.dialogRow.changelog-container {
|
||||
align-items: flex-start;
|
||||
border: 1px solid var(--theia-editorWidget-border);
|
||||
border-radius: 2px;
|
||||
overflow: auto;
|
||||
max-height: 180px;
|
||||
.ide-updater-dialog--content
|
||||
.ide-updater-dialog--new-version-text
|
||||
.dialogRow.changelog-container {
|
||||
align-items: flex-start;
|
||||
border: 1px solid var(--theia-editorWidget-border);
|
||||
border-radius: 2px;
|
||||
overflow: auto;
|
||||
max-height: 180px;
|
||||
}
|
||||
|
||||
.ide-updater-dialog .changelog a {
|
||||
color: var(--theia-textLink-foreground);
|
||||
color: var(--theia-textLink-foreground);
|
||||
}
|
||||
|
||||
.ide-updater-dialog .changelog a:hover {
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ide-updater-dialog .changelog code {
|
||||
background: var(--theia-textBlockQuote-background);
|
||||
border-radius: 2px;
|
||||
padding: 0 2px;
|
||||
background: var(--theia-textBlockQuote-background);
|
||||
border-radius: 2px;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.ide-updater-dialog .changelog a code {
|
||||
color: var(--theia-textLink-foreground);
|
||||
color: var(--theia-textLink-foreground);
|
||||
}
|
||||
|
||||
.ide-updater-dialog .buttons-container {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-top: var(--arduino-button-height);
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-top: var(--arduino-button-height);
|
||||
}
|
||||
|
||||
.ide-updater-dialog .buttons-container a.theia-button {
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.ide-updater-dialog .buttons-container a.theia-button:hover {
|
||||
color: var(--theia-button-foreground);
|
||||
color: var(--theia-button-foreground);
|
||||
}
|
||||
|
||||
.ide-updater-dialog .buttons-container .push {
|
||||
margin-right: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.ide-updater-dialog--content {
|
||||
max-height: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
max-height: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#ide-updater-dialog-container .skip-version-button {
|
||||
margin-left: 79px;
|
||||
margin-right: auto;
|
||||
margin-left: 79px;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* https://github.com/arduino/arduino-ide/pull/2027#issuecomment-1533174638 */
|
||||
/* https://github.com/eclipse-theia/theia/commit/1b5ff9ee459df14cedc0e8266dd02dae93fcd1bf#diff-d8d45a890507a01141c010ad4a6891edf2ae727cfa6dfe604cebbd667812cccbR68 */
|
||||
/* Use normal whitespace handling for the changelog content in the update dialog. */
|
||||
.p-Widget.dialogOverlay .dialogContent.ide-updater-dialog {
|
||||
white-space: normal;
|
||||
white-space: normal;
|
||||
}
|
||||
|
@ -1,175 +1,177 @@
|
||||
@import './list-widget.css';
|
||||
@import './boards-config-dialog.css';
|
||||
@import './main.css';
|
||||
@import './dialogs.css';
|
||||
@import './monitor.css';
|
||||
@import './arduino-select.css';
|
||||
@import './status-bar.css';
|
||||
@import './terminal.css';
|
||||
@import './editor.css';
|
||||
@import './settings-dialog.css';
|
||||
@import './firmware-uploader-dialog.css';
|
||||
@import './ide-updater-dialog.css';
|
||||
@import './certificate-uploader-dialog.css';
|
||||
@import './user-fields-dialog.css';
|
||||
@import './debug.css';
|
||||
@import './sketchbook.css';
|
||||
@import './cloud-sketchbook.css';
|
||||
@import './fonts.css';
|
||||
@import './custom-codicon.css';
|
||||
@import './progress-bar.css';
|
||||
@import './settings-step-input.css';
|
||||
@import "./list-widget.css";
|
||||
@import "./boards-config-dialog.css";
|
||||
@import "./main.css";
|
||||
@import "./dialogs.css";
|
||||
@import "./monitor.css";
|
||||
@import "./arduino-select.css";
|
||||
@import "./status-bar.css";
|
||||
@import "./terminal.css";
|
||||
@import "./editor.css";
|
||||
@import "./settings-dialog.css";
|
||||
@import "./firmware-uploader-dialog.css";
|
||||
@import "./ide-updater-dialog.css";
|
||||
@import "./certificate-uploader-dialog.css";
|
||||
@import "./user-fields-dialog.css";
|
||||
@import "./debug.css";
|
||||
@import "./sketchbook.css";
|
||||
@import "./cloud-sketchbook.css";
|
||||
@import "./fonts.css";
|
||||
@import "./custom-codicon.css";
|
||||
@import "./progress-bar.css";
|
||||
@import "./settings-step-input.css";
|
||||
|
||||
:root {
|
||||
--arduino-button-height: 28px;
|
||||
--arduino-button-height: 28px;
|
||||
}
|
||||
|
||||
/* Revive of the `--theia-icon-loading`. The variable has been removed from Theia while IDE2 still uses is. */
|
||||
/* The SVG icons are still part of Theia (1.31.1) */
|
||||
/* https://github.com/arduino/arduino-ide/pull/1662#issuecomment-1324997134 */
|
||||
body {
|
||||
--theia-icon-loading: url(../icons/loading-light.svg);
|
||||
--theia-icon-loading-warning: url(../icons/loading-dark.svg);
|
||||
--theia-icon-loading: url(../icons/loading-light.svg);
|
||||
--theia-icon-loading-warning: url(../icons/loading-dark.svg);
|
||||
}
|
||||
body.theia-dark {
|
||||
--theia-icon-loading: url(../icons/loading-dark.svg);
|
||||
--theia-icon-loading-warning: url(../icons/loading-light.svg);
|
||||
--theia-icon-loading: url(../icons/loading-dark.svg);
|
||||
--theia-icon-loading-warning: url(../icons/loading-light.svg);
|
||||
}
|
||||
|
||||
.theia-input.warning:focus {
|
||||
outline-width: 1px;
|
||||
outline-style: solid;
|
||||
outline-offset: -1px;
|
||||
opacity: 1 !important;
|
||||
color: var(--theia-warningForeground);
|
||||
background-color: var(--theia-warningBackground);
|
||||
outline-width: 1px;
|
||||
outline-style: solid;
|
||||
outline-offset: -1px;
|
||||
opacity: 1 !important;
|
||||
color: var(--theia-warningForeground);
|
||||
background-color: var(--theia-warningBackground);
|
||||
}
|
||||
|
||||
.theia-input.warning {
|
||||
background-color: var(--theia-warningBackground);
|
||||
background-color: var(--theia-warningBackground);
|
||||
}
|
||||
|
||||
.theia-input.warning::placeholder {
|
||||
color: var(--theia-warningForeground);
|
||||
background-color: var(--theia-warningBackground);
|
||||
color: var(--theia-warningForeground);
|
||||
background-color: var(--theia-warningBackground);
|
||||
}
|
||||
|
||||
.theia-input.error:focus {
|
||||
outline-width: 1px;
|
||||
outline-style: solid;
|
||||
outline-offset: -1px;
|
||||
opacity: 1 !important;
|
||||
color: var(--theia-errorForeground);
|
||||
background-color: var(--theia-errorBackground);
|
||||
outline-width: 1px;
|
||||
outline-style: solid;
|
||||
outline-offset: -1px;
|
||||
opacity: 1 !important;
|
||||
color: var(--theia-errorForeground);
|
||||
background-color: var(--theia-errorBackground);
|
||||
}
|
||||
|
||||
.theia-input.error {
|
||||
background-color: var(--theia-errorBackground);
|
||||
background-color: var(--theia-errorBackground);
|
||||
}
|
||||
|
||||
.theia-input.error::placeholder {
|
||||
color: var(--theia-errorForeground);
|
||||
background-color: var(--theia-errorBackground);
|
||||
color: var(--theia-errorForeground);
|
||||
background-color: var(--theia-errorBackground);
|
||||
}
|
||||
|
||||
/* Makes the sidepanel a bit wider when opening the widget */
|
||||
.p-DockPanel-widget {
|
||||
min-width: 220px;
|
||||
min-height: 20px;
|
||||
height: 220px;
|
||||
min-width: 220px;
|
||||
min-height: 20px;
|
||||
height: 220px;
|
||||
}
|
||||
|
||||
/* Overrule the default Theia CSS button styles. */
|
||||
button.theia-button,
|
||||
.theia-button {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-family: 'Open Sans Bold',sans-serif;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
letter-spacing: .01em;
|
||||
line-height: 24px;
|
||||
outline: none;
|
||||
padding: 0 16px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
border-width: 2px;
|
||||
border-radius: 32px;
|
||||
text-transform: uppercase;
|
||||
transition: none;
|
||||
box-shadow: none;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-family: "Open Sans Bold", sans-serif;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
letter-spacing: 0.01em;
|
||||
line-height: 24px;
|
||||
outline: none;
|
||||
padding: 0 16px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
border-width: 2px;
|
||||
border-radius: 32px;
|
||||
text-transform: uppercase;
|
||||
transition: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
button.theia-button {
|
||||
height: var(--arduino-button-height);
|
||||
max-width: none;
|
||||
height: var(--arduino-button-height);
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
.theia-button:active,
|
||||
.theia-button:focus {
|
||||
box-shadow: 0 0 0 2px var(--theia-focusBorder);
|
||||
box-shadow: 0 0 0 2px var(--theia-focusBorder);
|
||||
}
|
||||
|
||||
button.theia-button.secondary {
|
||||
border: 2px solid var(--theia-secondaryButton-foreground);
|
||||
border: 2px solid var(--theia-secondaryButton-foreground);
|
||||
}
|
||||
|
||||
button.theia-button[disabled], .theia-button[disabled] {
|
||||
opacity: 0.5;
|
||||
color: var(--theia-button-foreground);
|
||||
background-color: var(--theia-button-background);
|
||||
button.theia-button[disabled],
|
||||
.theia-button[disabled] {
|
||||
opacity: 0.5;
|
||||
color: var(--theia-button-foreground);
|
||||
background-color: var(--theia-button-background);
|
||||
}
|
||||
|
||||
button.secondary[disabled], .theia-button.secondary[disabled] {
|
||||
color: var(--theia-secondaryButton-foreground);
|
||||
background-color: var(--theia-secondaryButton-background);
|
||||
button.secondary[disabled],
|
||||
.theia-button.secondary[disabled] {
|
||||
color: var(--theia-secondaryButton-foreground);
|
||||
background-color: var(--theia-secondaryButton-background);
|
||||
}
|
||||
|
||||
button.theia-button.message-box-dialog-button {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* To make the progress-bar slightly thicker, and use the color from the status bar */
|
||||
.theia-progress-bar-container {
|
||||
width: 100%;
|
||||
height: 4px;
|
||||
width: 100%;
|
||||
height: 4px;
|
||||
}
|
||||
|
||||
.theia-progress-bar {
|
||||
height: 4px;
|
||||
width: 3%;
|
||||
animation: progress-animation 1.3s 0s infinite
|
||||
cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
height: 4px;
|
||||
width: 3%;
|
||||
animation: progress-animation 1.3s 0s infinite
|
||||
cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
}
|
||||
|
||||
.theia-notification-item-progressbar {
|
||||
height: 4px;
|
||||
width: 66%;
|
||||
height: 4px;
|
||||
width: 66%;
|
||||
}
|
||||
|
||||
.flex-line {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fa-reload {
|
||||
font-size: 14px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.debug-toolbar .debug-action>div {
|
||||
font-family: var(--theia-ui-font-family);
|
||||
font-size: var(--theia-ui-font-size0);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-self: center;
|
||||
justify-content: center;
|
||||
min-height: inherit;
|
||||
.debug-toolbar .debug-action > div {
|
||||
font-family: var(--theia-ui-font-family);
|
||||
font-size: var(--theia-ui-font-size0);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-self: center;
|
||||
justify-content: center;
|
||||
min-height: inherit;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
.library-tab-icon {
|
||||
-webkit-mask: url('../icons/library-tab-icon.svg');
|
||||
mask: url('../icons/library-tab-icon.svg');
|
||||
-webkit-mask: url("../icons/library-tab-icon.svg");
|
||||
mask: url("../icons/library-tab-icon.svg");
|
||||
}
|
||||
|
||||
.arduino-list-widget {
|
||||
@ -82,7 +82,7 @@
|
||||
}
|
||||
|
||||
.component-list-item .header .title .name {
|
||||
font-family: 'Open Sans Bold';
|
||||
font-family: "Open Sans Bold";
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
@ -112,7 +112,9 @@
|
||||
display: inline-block;
|
||||
justify-self: end;
|
||||
text-align: center;
|
||||
background-color: var(--theia-arduino-toolbar-dropdown-option-backgroundHover);
|
||||
background-color: var(
|
||||
--theia-arduino-toolbar-dropdown-option-backgroundHover
|
||||
);
|
||||
padding: 2px 4px 2px 4px;
|
||||
font-size: 12px;
|
||||
max-height: calc(1em + 4px);
|
||||
@ -131,7 +133,7 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding-top: 4px;
|
||||
font-family: 'Open Sans';
|
||||
font-family: "Open Sans";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
@ -175,8 +177,20 @@
|
||||
max-width: 8px;
|
||||
}
|
||||
|
||||
div.filterable-list-container > div > div > div > div:nth-child(1) > div.separator :first-child,
|
||||
div.filterable-list-container > div > div > div > div:nth-child(1) > div.separator :last-child {
|
||||
div.filterable-list-container
|
||||
> div
|
||||
> div
|
||||
> div
|
||||
> div:nth-child(1)
|
||||
> div.separator
|
||||
:first-child,
|
||||
div.filterable-list-container
|
||||
> div
|
||||
> div
|
||||
> div
|
||||
> div:nth-child(1)
|
||||
> div.separator
|
||||
:last-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@ -202,11 +216,11 @@ div.filterable-list-container > div > div > div > div:nth-child(1) > div.separat
|
||||
}
|
||||
|
||||
.component-list-item .theia-button.secondary.no-border {
|
||||
border: 2px solid var(--theia-button-foreground)
|
||||
border: 2px solid var(--theia-button-foreground);
|
||||
}
|
||||
|
||||
.component-list-item .theia-button.secondary.no-border:hover {
|
||||
border: 2px solid var(--theia-secondaryButton-foreground)
|
||||
border: 2px solid var(--theia-secondaryButton-foreground);
|
||||
}
|
||||
|
||||
.component-list-item .theia-button {
|
||||
|
@ -1,11 +1,12 @@
|
||||
#theia-bottom-content-panel .p-TabBar[data-orientation='horizontal'].theia-app-bottom {
|
||||
#theia-bottom-content-panel
|
||||
.p-TabBar[data-orientation="horizontal"].theia-app-bottom {
|
||||
background: var(--theia-editorGroupHeader-tabsBackground);
|
||||
}
|
||||
|
||||
/* Avoid the Intellisense widget may be cover by the bottom panel partially.
|
||||
TODO: This issue may be resolved after monaco-editor upgrade */
|
||||
#theia-main-content-panel {
|
||||
z-index: auto
|
||||
z-index: auto;
|
||||
}
|
||||
|
||||
#theia-main-content-panel div[id^="code-editor-opener"] {
|
||||
@ -23,7 +24,6 @@
|
||||
border-radius: 1px;
|
||||
}
|
||||
|
||||
|
||||
.p-TabBar-toolbar .item.arduino-tool-item > div {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
@ -42,9 +42,15 @@
|
||||
background: var(--theia-arduino-toolbar-button-hoverBackground);
|
||||
}
|
||||
|
||||
.p-TabBar-toolbar .item.arduino-tool-item.enabled:hover > div.toggle-serial-monitor,
|
||||
.p-TabBar-toolbar .item.arduino-tool-item.enabled:hover > div.toggle-serial-plotter {
|
||||
background-color: var(--theia-arduino-toolbar-button-secondary-hoverBackground);
|
||||
.p-TabBar-toolbar
|
||||
.item.arduino-tool-item.enabled:hover
|
||||
> div.toggle-serial-monitor,
|
||||
.p-TabBar-toolbar
|
||||
.item.arduino-tool-item.enabled:hover
|
||||
> div.toggle-serial-plotter {
|
||||
background-color: var(
|
||||
--theia-arduino-toolbar-button-secondary-hoverBackground
|
||||
);
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
@ -55,14 +61,14 @@
|
||||
}
|
||||
|
||||
.item.arduino-tool-item.toggled {
|
||||
background-color: unset;
|
||||
opacity: 1;
|
||||
border: none;
|
||||
background-color: unset;
|
||||
opacity: 1;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.item.arduino-tool-item.toggled .arduino-verify-sketch--toolbar,
|
||||
.item.arduino-tool-item.toggled .arduino-upload-sketch--toolbar {
|
||||
background-color: var(--theia-arduino-toolbar-toggleBackground) !important;
|
||||
background-color: var(--theia-arduino-toolbar-toggleBackground) !important;
|
||||
}
|
||||
|
||||
.arduino-tool-icon {
|
||||
@ -91,7 +97,7 @@
|
||||
}
|
||||
|
||||
.arduino-start-debug-icon {
|
||||
-webkit-mask: url('../icons/debug-dark.svg') 50% 60%;
|
||||
-webkit-mask: url("../icons/debug-dark.svg") 50% 60%;
|
||||
-webkit-mask-size: 70%;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
display: flex;
|
||||
@ -175,7 +181,12 @@
|
||||
background-color: var(--theia-terminal-background);
|
||||
}
|
||||
|
||||
.theia-output .monaco-editor .lines-content.monaco-editor-background .view-lines .view-line .mtk1:not(.theia-output-error):not(.theia-output-warning) {
|
||||
.theia-output
|
||||
.monaco-editor
|
||||
.lines-content.monaco-editor-background
|
||||
.view-lines
|
||||
.view-line
|
||||
.mtk1:not(.theia-output-error):not(.theia-output-warning) {
|
||||
color: var(--theia-terminal-foreground);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
.monitor-tab-icon {
|
||||
-webkit-mask: url('../icons/monitor-tab-icon.svg');
|
||||
mask: url('../icons/monitor-tab-icon.svg');
|
||||
-webkit-mask: url("../icons/monitor-tab-icon.svg");
|
||||
mask: url("../icons/monitor-tab-icon.svg");
|
||||
}
|
||||
|
||||
.serial-monitor {
|
||||
@ -10,8 +10,8 @@
|
||||
}
|
||||
|
||||
.serial-monitor-messages {
|
||||
white-space: 'pre';
|
||||
font-family: monospace
|
||||
white-space: "pre";
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.serial-monitor-messages pre {
|
||||
|
@ -1,32 +1,32 @@
|
||||
.progress-bar {
|
||||
margin-top: 20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.progress-bar--outer {
|
||||
background: var(--theia-editorWidget-background);
|
||||
border-radius: 11px;
|
||||
height: 6px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: var(--theia-editorWidget-background);
|
||||
border-radius: 11px;
|
||||
height: 6px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.progress-bar--inner {
|
||||
transition: width 1s;
|
||||
height: 100%;
|
||||
background: var(--theia-progressBar-background);
|
||||
border-radius: 11px;
|
||||
transition: width 1s;
|
||||
height: 100%;
|
||||
background: var(--theia-progressBar-background);
|
||||
border-radius: 11px;
|
||||
}
|
||||
|
||||
.progress-bar--percentage {
|
||||
align-items: flex-end;
|
||||
display: flex;
|
||||
height: 40px;
|
||||
justify-content: center;
|
||||
margin-top: 10px;
|
||||
width: 100%;
|
||||
align-items: flex-end;
|
||||
display: flex;
|
||||
height: 40px;
|
||||
justify-content: center;
|
||||
margin-top: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.progress-bar--percentage-text {
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
#arduino-settings-dialog-container > .dialogBlock {
|
||||
height: 531px;;
|
||||
height: 531px;
|
||||
max-width: 740px !important;
|
||||
width: calc(100% - 96px);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
.settings-step-input-container {
|
||||
position: relative
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.settings-step-input-element::-webkit-inner-spin-button,
|
||||
@ -25,7 +25,7 @@
|
||||
right: 14px;
|
||||
}
|
||||
|
||||
.settings-step-input-container:hover>.settings-step-input-buttons-container {
|
||||
.settings-step-input-container:hover > .settings-step-input-buttons-container {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
|
@ -1,37 +1,36 @@
|
||||
.sketchbook-tab-icon {
|
||||
-webkit-mask: url('./sketchbook.svg');
|
||||
mask: url('./sketchbook.svg');
|
||||
-webkit-mask: url("./sketchbook.svg");
|
||||
mask: url("./sketchbook.svg");
|
||||
}
|
||||
|
||||
.p-TabBar-tabIcon.sketchbook-tree-icon {
|
||||
background-color: var(--theia-foreground);
|
||||
-webkit-mask: url(./sketchbook-tree-icon.svg);
|
||||
-webkit-mask-position: center;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
width: 19px !important;
|
||||
height: var(--theia-icon-size);
|
||||
-webkit-mask-size: 100%;
|
||||
background-color: var(--theia-foreground);
|
||||
-webkit-mask: url(./sketchbook-tree-icon.svg);
|
||||
-webkit-mask-position: center;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
width: 19px !important;
|
||||
height: var(--theia-icon-size);
|
||||
-webkit-mask-size: 100%;
|
||||
}
|
||||
|
||||
.p-mod-current
|
||||
.sketchbook-tree-icon {
|
||||
background-color: var(--theia-foreground);
|
||||
-webkit-mask: url(./sketchbook-tree-icon-filled.svg);
|
||||
-webkit-mask-position: center;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
.p-mod-current .sketchbook-tree-icon {
|
||||
background-color: var(--theia-foreground);
|
||||
-webkit-mask: url(./sketchbook-tree-icon-filled.svg);
|
||||
-webkit-mask-position: center;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
}
|
||||
|
||||
.sketchbook-trees-container {
|
||||
height: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.sketchbook-trees-container .create-new {
|
||||
min-height: 58px;
|
||||
height: 58px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 58px;
|
||||
height: 58px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
/*
|
||||
By default, theia-button has a left-margin. IDE2 does not need the left margin
|
||||
@ -39,44 +38,43 @@ for the _New Remote? Sketch_. Otherwise, the button does not fit the default
|
||||
widget width.
|
||||
*/
|
||||
.sketchbook-trees-container .create-new .theia-button {
|
||||
margin-left: unset;
|
||||
margin-left: unset;
|
||||
}
|
||||
|
||||
.sketchbook-tree__opts {
|
||||
background-color: var(--theia-foreground);
|
||||
-webkit-mask: url(./sketchbook-opts-icon.svg);
|
||||
-webkit-mask-position: center;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
width: var(--theia-icon-size);
|
||||
height: var(--theia-icon-size);
|
||||
background-color: var(--theia-foreground);
|
||||
-webkit-mask: url(./sketchbook-opts-icon.svg);
|
||||
-webkit-mask-position: center;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
width: var(--theia-icon-size);
|
||||
height: var(--theia-icon-size);
|
||||
}
|
||||
|
||||
.active-sketch {
|
||||
font-weight: 500;
|
||||
background-color: var(--theia-list-activeSelectionBackground) !important;
|
||||
color: var(--theia-list-activeSelectionForeground) !important;
|
||||
|
||||
font-weight: 500;
|
||||
background-color: var(--theia-list-activeSelectionBackground) !important;
|
||||
color: var(--theia-list-activeSelectionForeground) !important;
|
||||
}
|
||||
|
||||
#arduino-sketchbook-tree-widget .theia-TreeNode {
|
||||
line-height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
#arduino-sketchbook-tree-widget .theia-TreeNodeSegmentGrow {
|
||||
flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.theia-TreeNode .sketchbook-commands-icons {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.theia-TreeNode:hover .sketchbook-commands-icons,
|
||||
.theia-TreeNode.theia-mod-selected .sketchbook-commands-icons {
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.theia-Tree:focus .theia-TreeNode.theia-mod-selected,
|
||||
.theia-Tree .ReactVirtualized__List:focus .theia-TreeNode.theia-mod-selected {
|
||||
background: var(--theia-list-inactiveSelectionBackground);
|
||||
color: var(--theia-list-inactiveSelectionForeground) !important;
|
||||
background: var(--theia-list-inactiveSelectionBackground);
|
||||
color: var(--theia-list-inactiveSelectionForeground) !important;
|
||||
}
|
||||
|
@ -1,32 +1,32 @@
|
||||
.user-fields-container {
|
||||
max-height: 332px;
|
||||
overflow: auto;
|
||||
padding: 2px;
|
||||
max-height: 332px;
|
||||
overflow: auto;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.user-fields-list {
|
||||
margin: 16px 0;
|
||||
margin: 16px 0;
|
||||
}
|
||||
|
||||
.user-fields-dialog-content {
|
||||
width: 408px;
|
||||
max-height: 491px;
|
||||
width: 408px;
|
||||
max-height: 491px;
|
||||
}
|
||||
|
||||
.user-fields-dialog-content .field-label {
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 21px;
|
||||
letter-spacing: 0.01em;
|
||||
text-align: left;
|
||||
color: var(--theia-editorWidget-foreground);
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 21px;
|
||||
letter-spacing: 0.01em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.user-fields-dialog-content .theia-input {
|
||||
flex-grow: 1;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.user-fields-dialog-content .button-container {
|
||||
justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
@ -1,4 +1,8 @@
|
||||
import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
|
||||
import {
|
||||
inject,
|
||||
injectable,
|
||||
postConstruct,
|
||||
} from '@theia/core/shared/inversify';
|
||||
import URI from '@theia/core/lib/common/uri';
|
||||
import { Title, Widget } from '@theia/core/shared/@phosphor/widgets';
|
||||
import { EditorWidget } from '@theia/editor/lib/browser';
|
||||
|
@ -4,13 +4,15 @@ import {
|
||||
Disposable,
|
||||
DisposableCollection,
|
||||
} from '@theia/core/lib/common/disposable';
|
||||
import { EditorServiceOverrides, MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
|
||||
import {
|
||||
EditorServiceOverrides,
|
||||
MonacoEditor,
|
||||
} from '@theia/monaco/lib/browser/monaco-editor';
|
||||
import { MonacoEditorProvider as TheiaMonacoEditorProvider } from '@theia/monaco/lib/browser/monaco-editor-provider';
|
||||
import { SketchesServiceClientImpl } from '../../sketches-service-client-impl';
|
||||
import * as monaco from '@theia/monaco-editor-core';
|
||||
import type { ReferencesModel } from '@theia/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel';
|
||||
|
||||
|
||||
type CancelablePromise = Promise<ReferencesModel> & {
|
||||
cancel: () => void;
|
||||
};
|
||||
@ -39,7 +41,9 @@ export class MonacoEditorProvider extends TheiaMonacoEditorProvider {
|
||||
|
||||
private installCustomReferencesController(editor: MonacoEditor): Disposable {
|
||||
const control = editor.getControl();
|
||||
const referencesController: any = control.getContribution('editor.contrib.referencesController');
|
||||
const referencesController: any = control.getContribution(
|
||||
'editor.contrib.referencesController'
|
||||
);
|
||||
const originalToggleWidget = referencesController.toggleWidget;
|
||||
const toDispose = new DisposableCollection();
|
||||
const toDisposeBeforeToggleWidget = new DisposableCollection();
|
||||
|
@ -14,7 +14,8 @@ export class FileNavigatorContribution extends TheiaFileNavigatorContribution {
|
||||
constructor(
|
||||
@inject(FileNavigatorPreferences)
|
||||
protected override readonly fileNavigatorPreferences: FileNavigatorPreferences,
|
||||
@inject(OpenerService) protected override readonly openerService: OpenerService,
|
||||
@inject(OpenerService)
|
||||
protected override readonly openerService: OpenerService,
|
||||
@inject(FileNavigatorFilter)
|
||||
protected override readonly fileNavigatorFilter: FileNavigatorFilter,
|
||||
@inject(WorkspaceService)
|
||||
|
@ -8,7 +8,9 @@ import { OutputToolbarContribution as TheiaOutputToolbarContribution } from '@th
|
||||
|
||||
@injectable()
|
||||
export class OutputToolbarContribution extends TheiaOutputToolbarContribution {
|
||||
override async registerToolbarItems(registry: TabBarToolbarRegistry): Promise<void> {
|
||||
override async registerToolbarItems(
|
||||
registry: TabBarToolbarRegistry
|
||||
): Promise<void> {
|
||||
await super.registerToolbarItems(registry); // Why is it async?
|
||||
// It's a hack. Currently, it's not possible to unregister a toolbar contribution via API.
|
||||
(
|
||||
|
@ -8,7 +8,10 @@ export class ScmContribution extends TheiaScmContribution {
|
||||
// NOOP
|
||||
}
|
||||
|
||||
protected override setStatusBarEntry(id: string, entry: StatusBarEntry): void {
|
||||
protected override setStatusBarEntry(
|
||||
id: string,
|
||||
entry: StatusBarEntry
|
||||
): void {
|
||||
// NOOP
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,8 @@
|
||||
import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
|
||||
import {
|
||||
inject,
|
||||
injectable,
|
||||
postConstruct,
|
||||
} from '@theia/core/shared/inversify';
|
||||
import { CloudSketchbookCompositeWidget } from './cloud-sketchbook-composite-widget';
|
||||
import { SketchbookWidget } from '../sketchbook/sketchbook-widget';
|
||||
import { ArduinoPreferences } from '../../arduino-preferences';
|
||||
|
@ -67,7 +67,7 @@ export namespace LibrarySearch {
|
||||
'Contributed',
|
||||
'Retired',
|
||||
] as const;
|
||||
export type Type = typeof TypeLiterals[number];
|
||||
export type Type = (typeof TypeLiterals)[number];
|
||||
export namespace Type {
|
||||
export function is(arg: unknown): arg is Type {
|
||||
return typeof arg === 'string' && TypeLiterals.includes(arg as Type);
|
||||
@ -96,7 +96,7 @@ export namespace LibrarySearch {
|
||||
'Timing',
|
||||
'Uncategorized',
|
||||
] as const;
|
||||
export type Topic = typeof TopicLiterals[number];
|
||||
export type Topic = (typeof TopicLiterals)[number];
|
||||
export namespace Topic {
|
||||
export function is(arg: unknown): arg is Topic {
|
||||
return typeof arg === 'string' && TopicLiterals.includes(arg as Topic);
|
||||
|
@ -14,18 +14,11 @@
|
||||
"resolveJsonModule": true,
|
||||
"target": "ES2017",
|
||||
"outDir": "lib",
|
||||
"lib": [
|
||||
"ES2017",
|
||||
"dom"
|
||||
],
|
||||
"lib": ["ES2017", "dom"],
|
||||
"jsx": "react",
|
||||
"sourceMap": true,
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"include": [
|
||||
"src"
|
||||
],
|
||||
"files": [
|
||||
"../node_modules/nsfw/index.d.ts"
|
||||
]
|
||||
"include": ["src"],
|
||||
"files": ["../node_modules/nsfw/index.d.ts"]
|
||||
}
|
||||
|
@ -3,41 +3,45 @@
|
||||
Arduino IDE provides a Cloud Sketchbook feature that can be used to upload sketches to Arduino Cloud.
|
||||

|
||||
|
||||
|
||||
|
||||
In order to use this feature, a user must be registered on [Arduino Cloud](https://store.arduino.cc/digital/create) and logged in.
|
||||
This feature is completely optional and can be disabled in the IDE via the _"File > Advanced > Hide Cloud Sketchbook"_ menu item.
|
||||
|
||||
## Developer guide
|
||||
|
||||
A developer could use the content of this repo to create a customized version of this feature and implement a different remote storage as follows:
|
||||
|
||||
### 1. Changing remote connection parameters in the Preferences panel (be careful while editing the Preferences panel!)
|
||||
|
||||
Here a screenshot of the Preferences panel
|
||||

|
||||
|
||||
- The settings under _Arduino > Auth_ should be edited to match the OAuth2 configuration of your custom cloud sketchbook storage
|
||||
- The setting under _Arduino > Sketch Sync Endpoint_ should be edited to point to your custom cloud sketchbook storage service
|
||||
|
||||
### 2. Implementing the Arduino Cloud Store APIs for your custom cloud sketchbook storage
|
||||
|
||||
Following the API Reference below:
|
||||
|
||||
| API Call | OpenAPI documentation |
|
||||
| ------------- | ------------- |
|
||||
| DELETE create/v2/files/d/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_deletedir |
|
||||
| DELETE create/v2/files/f/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_deletefile |
|
||||
| GET create/v2/files/d/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_list |
|
||||
| GET create/v2/files/f/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_read |
|
||||
| GET create/v2/sketches | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_search |
|
||||
| GET create/v2/sketches/byID/{id} | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_byID |
|
||||
| GET create/v2/sketches/byPath{path} | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_byPath |
|
||||
| POST create/v2/files/d/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_mkdir |
|
||||
| POST create/v2/files/f/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_write |
|
||||
| POST create/v2/sketches/{sketch.id} | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_edit |
|
||||
| POST create/v3/files/cp | https://api2.arduino.cc/create/docs#!/files95v3/files_v3_copy |
|
||||
| POST create/v3/files/mv | https://api2.arduino.cc/create/docs#!/files95v3/files_v3_move |
|
||||
| PUT create/v2/sketches | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_create |
|
||||
| API Call | OpenAPI documentation |
|
||||
| ----------------------------------------------------- | --------------------------------------------------------------------- |
|
||||
| DELETE create/v2/files/d/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_deletedir |
|
||||
| DELETE create/v2/files/f/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_deletefile |
|
||||
| GET create/v2/files/d/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_list |
|
||||
| GET create/v2/files/f/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_read |
|
||||
| GET create/v2/sketches | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_search |
|
||||
| GET create/v2/sketches/byID/{id} | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_byID |
|
||||
| GET create/v2/sketches/byPath{path} | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_byPath |
|
||||
| POST create/v2/files/d/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_mkdir |
|
||||
| POST create/v2/files/f/$HOME/sketches_v2{posixPath} | https://api2.arduino.cc/create/docs#!/files95v2/files_v2_write |
|
||||
| POST create/v2/sketches/{sketch.id} | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_edit |
|
||||
| POST create/v3/files/cp | https://api2.arduino.cc/create/docs#!/files95v3/files_v3_copy |
|
||||
| POST create/v3/files/mv | https://api2.arduino.cc/create/docs#!/files95v3/files_v3_move |
|
||||
| PUT create/v2/sketches | https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_create |
|
||||
|
||||
## Build the Arduino IDE with this extension
|
||||
|
||||
To build the Arduino IDE with this extension, run the following in a terminal. On Windows, use _Git Bash_.
|
||||
|
||||
```sh
|
||||
./bootstrap.sh
|
||||
```
|
@ -3,56 +3,69 @@
|
||||
Building the Pro IDE on Linux `armv7l` (aka `armhf`) and `aarch64` (aka `arm64`):
|
||||
|
||||
1. Install Node.js 16.x with [nvm](https://github.com/nvm-sh/nvm#install--update-script):
|
||||
```
|
||||
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
|
||||
```
|
||||
Restart your shell then:
|
||||
```
|
||||
nvm install 16
|
||||
nvm use 16
|
||||
```
|
||||
Verify:
|
||||
```
|
||||
node -v
|
||||
```
|
||||
|
||||
```
|
||||
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
|
||||
```
|
||||
|
||||
Restart your shell then:
|
||||
|
||||
```
|
||||
nvm install 16
|
||||
nvm use 16
|
||||
```
|
||||
|
||||
Verify:
|
||||
|
||||
```
|
||||
node -v
|
||||
```
|
||||
|
||||
2. Install [Yarn](https://classic.yarnpkg.com/en/docs/install/#debian-stable):
|
||||
|
||||
Configure the Debian package repository; otherwise, you will pull a different `yarn`.
|
||||
```
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
```
|
||||
Install:
|
||||
```
|
||||
sudo apt update && sudo apt install --no-install-recommends yarn
|
||||
```
|
||||
Verify:
|
||||
```
|
||||
yarn -v
|
||||
1.22.4
|
||||
```
|
||||
Configure the Debian package repository; otherwise, you will pull a different `yarn`.
|
||||
|
||||
```
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
```
|
||||
|
||||
Install:
|
||||
|
||||
```
|
||||
sudo apt update && sudo apt install --no-install-recommends yarn
|
||||
```
|
||||
|
||||
Verify:
|
||||
|
||||
```
|
||||
yarn -v
|
||||
1.22.4
|
||||
```
|
||||
|
||||
3. Other native [dependencies](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites):
|
||||
- `make`,
|
||||
- `gcc`,
|
||||
- `pkg-config`,
|
||||
- `build-essential`,
|
||||
- `libx11-dev`, and
|
||||
- `libxkbfile-dev`
|
||||
|
||||
- `make`,
|
||||
- `gcc`,
|
||||
- `pkg-config`,
|
||||
- `build-essential`,
|
||||
- `libx11-dev`, and
|
||||
- `libxkbfile-dev`
|
||||
|
||||
4. [Build it](../development.md#build-from-source) from the source:
|
||||
```
|
||||
git clone https://github.com/arduino/arduino-ide.git \
|
||||
&& cd arduino-ide \
|
||||
&& yarn \
|
||||
&& yarn rebuild:electron \
|
||||
&& yarn --cwd ./electron-app start
|
||||
```
|
||||
|
||||
```
|
||||
git clone https://github.com/arduino/arduino-ide.git \
|
||||
&& cd arduino-ide \
|
||||
&& yarn \
|
||||
&& yarn rebuild:electron \
|
||||
&& yarn --cwd ./electron-app start
|
||||
```
|
||||
|
||||
5. Troubleshoot
|
||||
|
||||
If you see [`ENOSPC` errors](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#linux) at runtime, increase the default `inotify` watches:
|
||||
```
|
||||
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
|
||||
```
|
||||
If you see [`ENOSPC` errors](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#linux) at runtime, increase the default `inotify` watches:
|
||||
|
||||
```
|
||||
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
|
||||
```
|
||||
|
@ -57,7 +57,7 @@
|
||||
|
||||
@keyframes preload-spinner {
|
||||
0% {
|
||||
transform: scale(1.0);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
@ -65,48 +65,127 @@
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1.0);
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='spinner-container'>
|
||||
<div class='custom-spinner'>
|
||||
<svg id="spinner" xmlns="http://www.w3.org/2000/svg" width="2499" height="2500"
|
||||
viewBox="0 0 1372.201 1372.684">
|
||||
<path fill="#00979D" stroke="#81C9CB" stroke-width=".932" stroke-miterlimit="10"
|
||||
d="M1371.701 686.024c0 378.658-306.972 685.605-685.549 685.605C307.451 1371.629.5 1064.682.5 686.024.5 307.455 307.451.483 686.152.483c378.594.001 685.549 306.972 685.549 685.541z" />
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.3" y1="16.071" x2="1354.901" y2="16.071"
|
||||
gradientTransform="matrix(1 0 0 -1 16.8 702.696)">
|
||||
<div class="spinner-container">
|
||||
<div class="custom-spinner">
|
||||
<svg
|
||||
id="spinner"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="2499"
|
||||
height="2500"
|
||||
viewBox="0 0 1372.201 1372.684"
|
||||
>
|
||||
<path
|
||||
fill="#00979D"
|
||||
stroke="#81C9CB"
|
||||
stroke-width=".932"
|
||||
stroke-miterlimit="10"
|
||||
d="M1371.701 686.024c0 378.658-306.972 685.605-685.549 685.605C307.451 1371.629.5 1064.682.5 686.024.5 307.455 307.451.483 686.152.483c378.594.001 685.549 306.972 685.549 685.541z"
|
||||
/>
|
||||
<linearGradient
|
||||
id="a"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-16.3"
|
||||
y1="16.071"
|
||||
x2="1354.901"
|
||||
y2="16.071"
|
||||
gradientTransform="matrix(1 0 0 -1 16.8 702.696)"
|
||||
>
|
||||
<stop offset=".117" stop-color="#fff" stop-opacity="0" />
|
||||
<stop offset=".252" stop-color="#c0d1d3" stop-opacity=".153" />
|
||||
<stop offset=".387" stop-color="#91b3b7" stop-opacity=".306" />
|
||||
<stop offset=".52" stop-color="#6d9fa3" stop-opacity=".457" />
|
||||
<stop offset=".65" stop-color="#4d9195" stop-opacity=".604" />
|
||||
<stop offset=".776" stop-color="#30888b" stop-opacity=".746" />
|
||||
<stop offset=".895" stop-color="#148386" stop-opacity=".881" />
|
||||
<stop
|
||||
offset=".252"
|
||||
stop-color="#c0d1d3"
|
||||
stop-opacity=".153"
|
||||
/>
|
||||
<stop
|
||||
offset=".387"
|
||||
stop-color="#91b3b7"
|
||||
stop-opacity=".306"
|
||||
/>
|
||||
<stop
|
||||
offset=".52"
|
||||
stop-color="#6d9fa3"
|
||||
stop-opacity=".457"
|
||||
/>
|
||||
<stop
|
||||
offset=".65"
|
||||
stop-color="#4d9195"
|
||||
stop-opacity=".604"
|
||||
/>
|
||||
<stop
|
||||
offset=".776"
|
||||
stop-color="#30888b"
|
||||
stop-opacity=".746"
|
||||
/>
|
||||
<stop
|
||||
offset=".895"
|
||||
stop-color="#148386"
|
||||
stop-opacity=".881"
|
||||
/>
|
||||
<stop offset="1" stop-color="#008184" />
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse" x1="-16.8" y1="16.071" x2="1355.401" y2="16.071"
|
||||
gradientTransform="matrix(1 0 0 -1 16.8 702.696)">
|
||||
<linearGradient
|
||||
id="b"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-16.8"
|
||||
y1="16.071"
|
||||
x2="1355.401"
|
||||
y2="16.071"
|
||||
gradientTransform="matrix(1 0 0 -1 16.8 702.696)"
|
||||
>
|
||||
<stop offset="0" stop-color="#fff" stop-opacity="0" />
|
||||
<stop offset=".153" stop-color="#c0d1d3" stop-opacity=".153" />
|
||||
<stop offset=".306" stop-color="#91b3b7" stop-opacity=".306" />
|
||||
<stop offset=".457" stop-color="#6d9fa3" stop-opacity=".457" />
|
||||
<stop offset=".604" stop-color="#4d9195" stop-opacity=".604" />
|
||||
<stop offset=".746" stop-color="#30888b" stop-opacity=".746" />
|
||||
<stop offset=".881" stop-color="#148386" stop-opacity=".881" />
|
||||
<stop
|
||||
offset=".153"
|
||||
stop-color="#c0d1d3"
|
||||
stop-opacity=".153"
|
||||
/>
|
||||
<stop
|
||||
offset=".306"
|
||||
stop-color="#91b3b7"
|
||||
stop-opacity=".306"
|
||||
/>
|
||||
<stop
|
||||
offset=".457"
|
||||
stop-color="#6d9fa3"
|
||||
stop-opacity=".457"
|
||||
/>
|
||||
<stop
|
||||
offset=".604"
|
||||
stop-color="#4d9195"
|
||||
stop-opacity=".604"
|
||||
/>
|
||||
<stop
|
||||
offset=".746"
|
||||
stop-color="#30888b"
|
||||
stop-opacity=".746"
|
||||
/>
|
||||
<stop
|
||||
offset=".881"
|
||||
stop-color="#148386"
|
||||
stop-opacity=".881"
|
||||
/>
|
||||
<stop offset="1" stop-color="#008184" />
|
||||
</linearGradient>
|
||||
<path opacity=".5" fill="url(#a)" stroke="url(#b)" stroke-miterlimit="10"
|
||||
d="M1371.701 686.595c0 378.65-306.972 685.606-685.549 685.606C307.451 1372.201.5 1065.23.5 686.595.5 308.019 307.451 1.048 686.152 1.048c378.594.016 685.549 306.97 685.549 685.547z" />
|
||||
<path
|
||||
opacity=".5"
|
||||
fill="url(#a)"
|
||||
stroke="url(#b)"
|
||||
stroke-miterlimit="10"
|
||||
d="M1371.701 686.595c0 378.65-306.972 685.606-685.549 685.606C307.451 1372.201.5 1065.23.5 686.595.5 308.019 307.451 1.048 686.152 1.048c378.594.016 685.549 306.97 685.549 685.547z"
|
||||
/>
|
||||
<g fill="#FFF">
|
||||
<path
|
||||
d="M947.959 931.196c-12.909 0-26.127-.929-39.127-2.864-108.978-15.554-181.848-93.822-222.665-153.989-40.946 60.166-113.811 138.512-222.74 154.045a275.864 275.864 0 0 1-39.133 2.785c-67.753 0-131.358-25.217-179.201-71.003-48.299-46.165-74.951-108.114-74.951-174.171 0-66.14 26.651-128.004 75.021-174.253 47.797-45.793 111.449-70.936 179.231-70.936 12.918 0 26.067.928 39.023 2.783 108.932 15.535 181.794 93.813 222.743 153.99 40.825-60.177 113.689-138.432 222.658-153.99 13-1.863 26.148-2.783 39.066-2.783 67.753 0 131.401 25.208 179.197 70.936 48.345 46.249 74.937 108.113 74.937 174.253 0 66.057-26.524 128.006-74.868 174.171-47.881 45.785-111.434 71.026-179.191 71.026M734.42 686.024c21.283 40.534 84.067 141.676 186.692 156.375 8.984 1.236 18.028 1.923 26.839 1.923 92.185 0 167.225-71.002 167.225-158.322s-75.023-158.321-167.291-158.321c-8.812 0-17.853.629-26.753 1.921-102.644 14.664-165.428 115.806-186.712 156.424M424.393 527.702c-92.308 0-167.36 70.998-167.36 158.321 0 87.305 75.021 158.322 167.245 158.322 8.852 0 17.897-.688 26.879-1.922 102.629-14.697 165.394-115.783 186.689-156.375-21.237-40.535-84.061-141.761-186.689-156.376-8.877-1.341-17.945-1.97-26.764-1.97" />
|
||||
d="M947.959 931.196c-12.909 0-26.127-.929-39.127-2.864-108.978-15.554-181.848-93.822-222.665-153.989-40.946 60.166-113.811 138.512-222.74 154.045a275.864 275.864 0 0 1-39.133 2.785c-67.753 0-131.358-25.217-179.201-71.003-48.299-46.165-74.951-108.114-74.951-174.171 0-66.14 26.651-128.004 75.021-174.253 47.797-45.793 111.449-70.936 179.231-70.936 12.918 0 26.067.928 39.023 2.783 108.932 15.535 181.794 93.813 222.743 153.99 40.825-60.177 113.689-138.432 222.658-153.99 13-1.863 26.148-2.783 39.066-2.783 67.753 0 131.401 25.208 179.197 70.936 48.345 46.249 74.937 108.113 74.937 174.253 0 66.057-26.524 128.006-74.868 174.171-47.881 45.785-111.434 71.026-179.191 71.026M734.42 686.024c21.283 40.534 84.067 141.676 186.692 156.375 8.984 1.236 18.028 1.923 26.839 1.923 92.185 0 167.225-71.002 167.225-158.322s-75.023-158.321-167.291-158.321c-8.812 0-17.853.629-26.753 1.921-102.644 14.664-165.428 115.806-186.712 156.424M424.393 527.702c-92.308 0-167.36 70.998-167.36 158.321 0 87.305 75.021 158.322 167.245 158.322 8.852 0 17.897-.688 26.879-1.922 102.629-14.697 165.394-115.783 186.689-156.375-21.237-40.535-84.061-141.761-186.689-156.376-8.877-1.341-17.945-1.97-26.764-1.97"
|
||||
/>
|
||||
<path
|
||||
d="M354.37 662.051h152.625v49.181H354.37zM1016.484 662.051h-51.671v-51.747h-49.348v51.747h-51.648v49.181h51.648v51.737h49.348v-51.737h51.671z" />
|
||||
d="M354.37 662.051h152.625v49.181H354.37zM1016.484 662.051h-51.671v-51.747h-49.348v51.747h-51.648v49.181h51.648v51.737h49.348v-51.737h51.671z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
|
@ -6,13 +6,13 @@ const JSONBIN_ID = process.env.JSONBIN_ID;
|
||||
|
||||
const destFolder = './scripts/themes/tokens';
|
||||
|
||||
if (!fs.existsSync(destFolder)){
|
||||
if (!fs.existsSync(destFolder)) {
|
||||
fs.mkdirSync(destFolder);
|
||||
}
|
||||
|
||||
let req = new XMLHttpRequest();
|
||||
|
||||
req.open('GET', 'https://api.jsonbin.io/v3/b/'+ JSONBIN_ID +'/latest', true);
|
||||
req.open('GET', 'https://api.jsonbin.io/v3/b/' + JSONBIN_ID + '/latest', true);
|
||||
req.setRequestHeader('X-Master-Key', JSONBIN_MASTER_KEY);
|
||||
req.send();
|
||||
|
||||
|
@ -6,41 +6,54 @@ const semver = require('semver');
|
||||
|
||||
const targetVersion = process.argv.slice(2).shift();
|
||||
const repoRootPath = path.join(__dirname, '..');
|
||||
const { version: currentVersion } = require(path.join(repoRootPath, 'package.json'));
|
||||
const { version: currentVersion } = require(path.join(
|
||||
repoRootPath,
|
||||
'package.json'
|
||||
));
|
||||
|
||||
if (!targetVersion) {
|
||||
console.error('Target version was not specified. Target version must be a valid semver. Use: `yarn update:version x.y.z` to update the versions.');
|
||||
process.exit(1);
|
||||
console.error(
|
||||
'Target version was not specified. Target version must be a valid semver. Use: `yarn update:version x.y.z` to update the versions.'
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!semver.valid(targetVersion)) {
|
||||
console.error(`Target version '${targetVersion}' is not a valid semver. Use: \`yarn update:version x.y.z\` to update the versions.`);
|
||||
process.exit(1);
|
||||
console.error(
|
||||
`Target version '${targetVersion}' is not a valid semver. Use: \`yarn update:version x.y.z\` to update the versions.`
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!semver.gt(targetVersion, currentVersion)) {
|
||||
console.error(`Target version '${targetVersion}' must be greater than the current version '${currentVersion}'.`);
|
||||
process.exit(1);
|
||||
console.error(
|
||||
`Target version '${targetVersion}' must be greater than the current version '${currentVersion}'.`
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`🛠️ Updating current version from '${currentVersion}' to '${targetVersion}':`);
|
||||
console.log(
|
||||
`🛠️ Updating current version from '${currentVersion}' to '${targetVersion}':`
|
||||
);
|
||||
for (const toUpdate of [
|
||||
path.join(repoRootPath, 'package.json'),
|
||||
path.join(repoRootPath, 'electron-app', 'package.json'),
|
||||
path.join(repoRootPath, 'arduino-ide-extension', 'package.json')
|
||||
path.join(repoRootPath, 'package.json'),
|
||||
path.join(repoRootPath, 'electron-app', 'package.json'),
|
||||
path.join(repoRootPath, 'arduino-ide-extension', 'package.json'),
|
||||
]) {
|
||||
process.stdout.write(` Updating ${toUpdate}'...`);
|
||||
const pkg = require(toUpdate);
|
||||
pkg.version = targetVersion;
|
||||
if ('dependencies' in pkg) {
|
||||
for (const dep of Object.keys(pkg['dependencies'])) {
|
||||
if (dep.startsWith('arduino-ide-')) {
|
||||
pkg['dependencies'][dep] = targetVersion;
|
||||
}
|
||||
}
|
||||
process.stdout.write(` Updating ${toUpdate}'...`);
|
||||
const pkg = require(toUpdate);
|
||||
pkg.version = targetVersion;
|
||||
if ('dependencies' in pkg) {
|
||||
for (const dep of Object.keys(pkg['dependencies'])) {
|
||||
if (dep.startsWith('arduino-ide-')) {
|
||||
pkg['dependencies'][dep] = targetVersion;
|
||||
}
|
||||
}
|
||||
fs.writeFileSync(toUpdate, JSON.stringify(pkg, null, 2) + '\n');
|
||||
process.stdout.write(` ✅ Done.\n`);
|
||||
}
|
||||
fs.writeFileSync(toUpdate, JSON.stringify(pkg, null, 2) + '\n');
|
||||
process.stdout.write(` ✅ Done.\n`);
|
||||
}
|
||||
|
||||
console.log(`Done. The new version is '${targetVersion}' now. Commit your changes and tag the code for the release. 🚢`);
|
||||
console.log(
|
||||
`Done. The new version is '${targetVersion}' now. Commit your changes and tag the code for the release. 🚢`
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user