From c3a197a7dd52d338d2bb7544152d3263d659b676 Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Thu, 12 May 2022 17:37:14 +0200 Subject: [PATCH 01/16] feat: add themes management --- .github/workflows/themes-weekly-pull.yml | 45 +++++ .gitignore | 4 + .../browser/arduino-ide-frontend-module.ts | 9 +- .../src/browser/data/dark.color-theme.json | 146 ++++++++++++++ .../src/browser/data/default.color-theme.json | 146 ++++++++++++++ package.json | 6 +- scripts/themes/theme-generator.js | 112 +++++++++++ scripts/themes/theme-tokens-pull.js | 28 +++ yarn.lock | 189 +++++++++++++++++- 9 files changed, 681 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/themes-weekly-pull.yml create mode 100644 arduino-ide-extension/src/browser/data/dark.color-theme.json create mode 100644 arduino-ide-extension/src/browser/data/default.color-theme.json create mode 100644 scripts/themes/theme-generator.js create mode 100644 scripts/themes/theme-tokens-pull.js diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml new file mode 100644 index 000000000..3e9832520 --- /dev/null +++ b/.github/workflows/themes-weekly-pull.yml @@ -0,0 +1,45 @@ +name: themes-weekly-pull + +on: + schedule: + # run every monday at 2AM + - cron: '0 2 * * 1' + +jobs: + pull-from-jsonbin: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install Node.js 14.x + uses: actions/setup-node@v2 + with: + node-version: '14.x' + registry-url: 'https://registry.npmjs.org' + + - name: Install dependencies + run: yarn + + - name: Run themes:pull script + run: yarn run themes:pull + env: + MASTER_KEY: ${{ secrets.MASTER_KEY }} + BIN_ID: ${{ secrets.BIN_ID }} + + - name: Generate dark tokens + run: npx token-transformer scripts/themes/tokens/arduino-tokens.json scripts/themes/tokens/dark.json core,ide-default,ide-dark,theia core,ide-default,ide-dark + + - name: Generate default tokens + run: npx token-transformer scripts/themes/tokens/arduino-tokens.json scripts/themes/tokens/default.json core,ide-default,theia core,ide-default + + - name: Run themes:generate script + run: yarn run themes:generate + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + with: + commit-message: Updated themes + title: Update themes + branch: themes/themes-update + author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> diff --git a/.gitignore b/.gitignore index fdab6fb0e..c462d8b07 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,7 @@ yarn*.log plugins # the config files for the CLI arduino-ide-extension/data/cli/config +# the tokens folder for the themes +scripts/themes/tokens +# environment variables +.env \ No newline at end of file diff --git a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts index 1f70245cb..80a4e0775 100644 --- a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts +++ b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts @@ -284,7 +284,14 @@ MonacoThemingService.register({ id: 'arduino-theme', label: 'Light (Arduino)', uiTheme: 'vs', - json: require('../../src/browser/data/arduino.color-theme.json'), + json: require('../../src/browser/data/default.color-theme.json'), +}); + +MonacoThemingService.register({ + id: 'arduino-theme-dark', + label: 'Dark (Arduino)', + uiTheme: 'vs-dark', + json: require('../../src/browser/data/dark.color-theme.json'), }); export default new ContainerModule((bind, unbind, isBound, rebind) => { diff --git a/arduino-ide-extension/src/browser/data/dark.color-theme.json b/arduino-ide-extension/src/browser/data/dark.color-theme.json new file mode 100644 index 000000000..009723466 --- /dev/null +++ b/arduino-ide-extension/src/browser/data/dark.color-theme.json @@ -0,0 +1,146 @@ +{ + "name": "Arduino dark", + "type": "dark", + "colors": { + "list.highlightForeground": "#171e21", + "list.activeSelectionForeground": "#424242", + "list.activeSelectionBackground": "#DAE3E3", + "list.inactiveSelectionForeground": "#424242", + "list.inactiveSelectionBackground": "#DAE3E3", + "list.hoverBackground": "#ECF1F1", + "progressBar.background": "#005c5f", + "editor.background": "#1f272a", + "editor.foreground": "#dae3e3", + "editor.lineHighlightBackground": "#434f5410", + "editor.selectionBackground": "#f1c40f", + "editorCursor.foreground": "#434f54", + "editorWhitespace.foreground": "#bfbfbf", + "editorWidget.background": "#F7F9F9", + "focusBorder": "#dae3e3", + "menubar.selectionBackground": "#ffffff", + "menubar.selectionForeground": "#212121", + "menu.selectionBackground": "#dae3e3", + "menu.selectionForeground": "#212121", + "editorGroupHeader.tabsBackground": "#171e21", + "button.background": "#0ca1a6", + "titleBar.activeBackground": "#171e21", + "titleBar.activeForeground": "#dae3e3", + "terminal.background": "#000000", + "terminal.foreground": "#e0e0e0", + "dropdown.border": "#ececec", + "dropdown.background": "#ececec", + "activityBar.background": "#101618", + "activityBar.foreground": "#dae3e3", + "activityBar.inactiveForeground": "#4e5b61", + "activityBar.activeBorder": "#0ca1a6", + "statusBar.background": "#171e21", + "secondaryButton.background": "#b5c8c9", + "secondaryButton.foreground": "#ececec", + "secondaryButton.hoverBackground": "#dae3e3", + "arduino.branding.primary": "#0ca1a6", + "arduino.branding.secondary": "#b5c8c9", + "arduino.foreground": "#edf1f1", + "arduino.output.foreground": "#ffffff", + "arduino.output.background": "#000000", + "sideBar.background": "#101618", + "input.background": "#000000", + "foreground": "#dae3e3", + "settings.headerForeground": "#dae3e3", + "tree.indentGuidesStroke": "#374146", + "tab.unfocusedActiveForeground": "#dae3e3" + }, + "tokenColors": [ + { + "name": "", + "settings": { + "foreground": "#dae3e3" + } + }, + { + "name": "Comments", + "scope": "comment", + "settings": { + "foreground": "#7f8c8d" + } + }, + { + "name": "Keywords Attributes", + "scope": [ + "storage", + "support", + "string.quoted.single.c" + ], + "settings": { + "foreground": "#0ca1a6" + } + }, + { + "name": "literal", + "scope": [ + "meta.function.c", + "entity.name.function", + "meta.function-call.c", + "variable.other" + ], + "settings": { + "foreground": "#F39C12" + } + }, + { + "name": "punctuation", + "scope": [ + "punctuation.section", + "meta.function-call.c", + "meta.block.c", + "meta.function.c", + "variable", + "variable.name" + ], + "settings": { + "foreground": "#434f54" + } + }, + { + "name": "function preprocessor", + "scope": [ + "entity.name.function.preprocessor.c", + "meta.preprocessor.macro.c" + ], + "settings": { + "foreground": "#569CD6" + } + }, + { + "name": "constants", + "scope": [ + "string.quoted.double", + "string.quoted.other.lt-gt", + "constant" + ], + "settings": { + "foreground": "#7fcbcd" + } + }, + { + "name": "meta keywords", + "scope": [ + "keyword.control", + "meta.preprocessor.c" + ], + "settings": { + "foreground": "#C586C0" + } + }, + { + "name": "numeric preprocessor", + "scope": [ + "meta.preprocessor.macro.c", + "constant.numeric.preprocessor.c", + "meta.preprocessor.c" + ], + "settings": { + "foreground": "#434f54" + } + } + ] +} \ No newline at end of file diff --git a/arduino-ide-extension/src/browser/data/default.color-theme.json b/arduino-ide-extension/src/browser/data/default.color-theme.json new file mode 100644 index 000000000..fbdbaccda --- /dev/null +++ b/arduino-ide-extension/src/browser/data/default.color-theme.json @@ -0,0 +1,146 @@ +{ + "name": "Arduino default", + "type": "default", + "colors": { + "list.highlightForeground": "#006d70", + "list.activeSelectionForeground": "#424242", + "list.activeSelectionBackground": "#DAE3E3", + "list.inactiveSelectionForeground": "#424242", + "list.inactiveSelectionBackground": "#DAE3E3", + "list.hoverBackground": "#ECF1F1", + "progressBar.background": "#005c5f", + "editor.background": "#ffffff", + "editor.foreground": "#4e5b61", + "editor.lineHighlightBackground": "#434f5410", + "editor.selectionBackground": "#f1c40f", + "editorCursor.foreground": "#434f54", + "editorWhitespace.foreground": "#bfbfbf", + "editorWidget.background": "#F7F9F9", + "focusBorder": "#7fcbcd", + "menubar.selectionBackground": "#ffffff", + "menubar.selectionForeground": "#212121", + "menu.selectionBackground": "#dae3e3", + "menu.selectionForeground": "#212121", + "editorGroupHeader.tabsBackground": "#ecf1f1", + "button.background": "#7fcbcd", + "titleBar.activeBackground": "#006d70", + "titleBar.activeForeground": "#f7f9f9", + "terminal.background": "#000000", + "terminal.foreground": "#e0e0e0", + "dropdown.border": "#ececec", + "dropdown.background": "#ececec", + "activityBar.background": "#ecf1f1", + "activityBar.foreground": "#4e5b61", + "activityBar.inactiveForeground": "#bdc7c7", + "activityBar.activeBorder": "#008184", + "statusBar.background": "#006d70", + "secondaryButton.background": "#b5c8c9", + "secondaryButton.foreground": "#ececec", + "secondaryButton.hoverBackground": "#dae3e3", + "arduino.branding.primary": "#008184", + "arduino.branding.secondary": "#b5c8c9", + "arduino.foreground": "#edf1f1", + "arduino.output.foreground": "#ffffff", + "arduino.output.background": "#000000", + "sideBar.background": "#f7f9f9", + "input.background": "#ffffff", + "foreground": "#4e5b61", + "settings.headerForeground": "#4e5b61", + "tree.indentGuidesStroke": "#dae3e3", + "tab.unfocusedActiveForeground": "#4e5b61" + }, + "tokenColors": [ + { + "name": "", + "settings": { + "foreground": "#434f54" + } + }, + { + "name": "Comments", + "scope": "comment", + "settings": { + "foreground": "#95a5a6cc" + } + }, + { + "name": "Keywords Attributes", + "scope": [ + "storage", + "support", + "string.quoted.single.c" + ], + "settings": { + "foreground": "#00979D" + } + }, + { + "name": "literal", + "scope": [ + "meta.function.c", + "entity.name.function", + "meta.function-call.c", + "variable.other" + ], + "settings": { + "foreground": "#D35400" + } + }, + { + "name": "punctuation", + "scope": [ + "punctuation.section", + "meta.function-call.c", + "meta.block.c", + "meta.function.c", + "variable", + "variable.name" + ], + "settings": { + "foreground": "#434f54" + } + }, + { + "name": "function preprocessor", + "scope": [ + "entity.name.function.preprocessor.c", + "meta.preprocessor.macro.c" + ], + "settings": { + "foreground": "#9e846d" + } + }, + { + "name": "constants", + "scope": [ + "string.quoted.double", + "string.quoted.other.lt-gt", + "constant" + ], + "settings": { + "foreground": "#005C5F" + } + }, + { + "name": "meta keywords", + "scope": [ + "keyword.control", + "meta.preprocessor.c" + ], + "settings": { + "foreground": "#728E00" + } + }, + { + "name": "numeric preprocessor", + "scope": [ + "meta.preprocessor.macro.c", + "constant.numeric.preprocessor.c", + "meta.preprocessor.c" + ], + "settings": { + "foreground": "#434f54" + } + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index 71534a9c9..f51038496 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,9 @@ "rimraf": "^2.6.1", "semver": "^7.3.2", "typescript": "~4.5.5", - "jsdom": "^11.5.1" + "jsdom": "^11.5.1", + "style-dictionary": "^3.7.0", + "xhr2": "^0.2.1" }, "resolutions": { "find-git-exec": "0.0.4", @@ -53,6 +55,8 @@ "i18n:check": "yarn i18n:generate && git add -N ./i18n && git diff --exit-code ./i18n", "i18n:push": "node ./scripts/i18n/transifex-push.js ./i18n/en.json", "i18n:pull": "node ./scripts/i18n/transifex-pull.js ./i18n/", + "themes:pull": "node ./scripts/themes/theme-tokens-pull.js", + "themes:generate": "node ./scripts/themes/theme-generator.js", "compose-changelog": "yarn --cwd ./arduino-ide-extension compose-changelog" }, "lint-staged": { diff --git a/scripts/themes/theme-generator.js b/scripts/themes/theme-generator.js new file mode 100644 index 000000000..801180582 --- /dev/null +++ b/scripts/themes/theme-generator.js @@ -0,0 +1,112 @@ +const StyleDictionaryPackage = require('style-dictionary'); + +StyleDictionaryPackage.registerTransform({ + name: 'vsCodeName', + type: 'name', + transformer: (token) => { + // syntax tokens we remove the first part of the object path + if (token.path[0] === 'colors') { + return token.path.slice(1).join('.'); + } + + if (token.path[0] === 'syntax') { + // This allows you to have tokens at multiple levels + // like `comment` and `comment.line` + if (token.name === '*') { + // removes the first and last parts of the path + return token.path.slice(1, -1).join('.'); + } else { + // removes the first part of the path which would be 'syntax' + return token.path.slice(1).join('.'); + } + } + }, +}); + +// Add a custom format that will generate the VSCode theme JSON +StyleDictionaryPackage.registerFormat({ + name: 'vsCodeTheme', + formatter: (dictionary, config) => { + // VSCode theme JSON files have this structure + const theme = { + name: `Arduino ${config.themeType}`, + type: config.themeType, + colors: {}, + }; + + // Filter out the design tokens we don't want to add to the + // 'colors' object. This includes core colors defined in tokens/core.json5 + // and syntax tokens defined in tokens/syntax + dictionary.allProperties + .filter((token) => { + return !['color', 'syntax'].includes(token.path[0]); + }) + .forEach((token) => { + // Add each token to the colors object, the name is generated by the custom + // transform defined above + theme.colors[token.name] = token.value; + }); + + // Map the syntax styles + theme.tokenColors = dictionary.allProperties + .filter((token) => { + return token.path[0] === 'syntax'; + }) + .map((token) => ({ + name: token.name, + scope: token.scope, + settings: { + foreground: token.value, + fontStyle: token.fontStyle, + }, + })); + + // Style Dictionary formats expect a string that will be then written to a file + return JSON.stringify(theme, null, 2); + }, +}); + +function getStyleDictionaryConfig(theme) { + return { + source: [`./scripts/themes/tokens/${theme}.json`], + platforms: { + vscode: { + // Directory to build files to + buildPath: `./arduino-ide-extension/src/browser/data/`, + themeType: `${theme}`, + // The name of the custom transform we defined above + transforms: ['vsCodeName'], + files: [ + { + // The path the file will be created at. Make sure this matches + // the file paths defined in the package.json + destination: `${theme}.color-theme.json`, + // The name of the custom format defined above + format: 'vsCodeTheme', + selector: `${theme}-theme`, + }, + ], + }, + }, + }; +} + +console.log('Build started...'); + +// PROCESS THE DESIGN TOKENS FOR THE DIFFEREN BRANDS AND PLATFORMS + +['default', 'dark'].map(function (theme) { + console.log('\n=============================================='); + console.log(`\nProcessing: [${theme}]`); + + const StyleDictionary = StyleDictionaryPackage.extend( + getStyleDictionaryConfig(theme) + ); + + StyleDictionary.buildPlatform('vscode'); + + console.log('\nEnd processing'); +}); + +console.log('\n=============================================='); +console.log('\nBuild completed!'); diff --git a/scripts/themes/theme-tokens-pull.js b/scripts/themes/theme-tokens-pull.js new file mode 100644 index 000000000..c2c2b2403 --- /dev/null +++ b/scripts/themes/theme-tokens-pull.js @@ -0,0 +1,28 @@ +const XMLHttpRequest = require('xhr2'); +const fs = require('fs'); + +const JSONBIN_MASTER_KEY = process.env.JSONBIN_MASTER_KEY; +const JSONBIN_ID = process.env.JSONBIN_ID; + +let req = new XMLHttpRequest(); + +req.open('GET', 'https://api.jsonbin.io/v3/b/'+ JSONBIN_ID +'/latest', true); +req.setRequestHeader('X-Master-Key', JSONBIN_MASTER_KEY); +req.send(); + +req.onreadystatechange = () => { + if (req.readyState == XMLHttpRequest.DONE) { + const tokens = JSON.parse(req.responseText).record.values; + fs.writeFile( + './scripts/themes/tokens/arduino-tokens.json', + JSON.stringify(tokens), + (err) => { + if (err) { + console.error(err); + return; + } + console.log('Arduino tokens file saved!'); + } + ); + } +}; diff --git a/yarn.lock b/yarn.lock index 1ca796316..35a2901a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5143,6 +5143,14 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -5189,6 +5197,15 @@ caniuse-lite@^1.0.30001332: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz#59590c8ffa8b5939cf4161f00827b8873ad72498" integrity sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA== +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -5254,6 +5271,42 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + +changes-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/changes-stream/-/changes-stream-2.2.0.tgz#9cf2bdbc2173c29c634aec9948e5d23b24d37c18" + integrity sha1-nPK9vCFzwpxjSuyZSOXSOyTTfBg= + dependencies: + back "~0.1.5" + debug "~0.8.0" + http-https "~1.0.0" + readable-stream "1.0.x" + character-entities@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" @@ -5550,7 +5603,7 @@ commander@^7.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^8.2.0: +commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== @@ -5659,8 +5712,15 @@ content-disposition@0.5.4, content-disposition@^0.5.2: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== dependencies: - safe-buffer "5.2.1" + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" content-type@~1.0.4: version "1.0.4" @@ -6404,6 +6464,14 @@ dompurify@^2.2.9: resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.8.tgz#224fe9ae57d7ebd9a1ae1ac18c1c1ca3f532226f" integrity sha512-eVhaWoVibIzqdGYjwsBWodIQIaXFSB+cKDf4cfxLMsK0xiud6SE+/WCVx/Xw/UwQsa4cS3T2eITcdtmTg2UKcw== +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dot-prop@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" @@ -8358,6 +8426,14 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + helper-date@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/helper-date/-/helper-date-1.0.1.tgz#12fedea3ad8e44a7ca4c4efb0ff4104a5120cffb" @@ -9418,11 +9494,21 @@ json5@^2.1.2, json5@^2.2.1: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== +json5@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + jsonc-parser@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== +jsonc-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" + integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -9943,6 +10029,13 @@ loupe@^2.3.1: dependencies: get-func-name "^2.0.0" +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + lowercase-keys@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" @@ -10992,6 +11085,18 @@ node-abi@*, node-abi@^3.0.0, node-abi@^3.3.0: version "3.15.0" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.15.0.tgz#cd9ac8c58328129b49998cc6fa16aa5506152716" integrity sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA== +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@*: + version "3.5.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.5.0.tgz#26e8b7b251c3260a5ac5ba5aef3b4345a0229248" + integrity sha512-LtHvNIBgOy5mO8mPEUtkCW/YCRWYEKshIvqhe1GHHyXEHEB5mgICyYnAcl4qan3uFeRROErKGzatFHPf6kDxWw== dependencies: semver "^7.3.5" @@ -11753,6 +11858,14 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -11830,6 +11943,14 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -11840,6 +11961,14 @@ path-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -13339,6 +13468,15 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + serialize-error@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" @@ -13555,6 +13693,14 @@ smart-buffer@^4.1.0, smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -14132,6 +14278,21 @@ strong-log-transformer@^2.0.0: minimist "^1.2.0" through "^2.3.4" +style-dictionary@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/style-dictionary/-/style-dictionary-3.7.0.tgz#02f4b17232cbb1142a3fdc09a17dfb08aafde3b0" + integrity sha512-BL4AQS5kNDBXbFHWJhlCve6+ojnHgHkiwhf2nNByU698elXWdyK5b27OprphT4q0/tJ52zB+lodhqxIxbNOajQ== + dependencies: + chalk "^4.0.0" + change-case "^4.1.2" + commander "^8.3.0" + fs-extra "^10.0.0" + glob "^7.2.0" + json5 "^2.2.0" + jsonc-parser "^3.0.0" + lodash "^4.17.15" + tinycolor2 "^1.4.1" + style-loader@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" @@ -14407,6 +14568,11 @@ timed-out@^4.0.1: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= +tinycolor2@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + tippy.js@^6.3.1: version "6.3.7" resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" @@ -14952,6 +15118,20 @@ upath@^2.0.1: resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -15533,6 +15713,11 @@ xdg-trashdir@^2.1.1: user-home "^2.0.0" xdg-basedir "^2.0.0" +xhr2@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.2.1.tgz#4e73adc4f9cfec9cbd2157f73efdce3a5f108a93" + integrity sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" From 79761a2d4193ab2a2363b56bca8fbc03bdf58ae4 Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Fri, 13 May 2022 17:15:18 +0200 Subject: [PATCH 02/16] add base entry to themes-weekly-pull.yml --- .github/workflows/themes-weekly-pull.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 3e9832520..407f26a41 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -2,8 +2,8 @@ name: themes-weekly-pull on: schedule: - # run every monday at 2AM - - cron: '0 2 * * 1' + # run every friday at 5AM + - cron: '0 5 * * 5' jobs: pull-from-jsonbin: @@ -43,3 +43,4 @@ jobs: title: Update themes branch: themes/themes-update author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> + base: ${{ github.head_ref }} From db963690551c247ad15e685d9e2367f0c89b64f6 Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Thu, 12 May 2022 17:37:14 +0200 Subject: [PATCH 03/16] feat: add themes management --- .github/workflows/themes-weekly-pull.yml | 5 ++- yarn.lock | 39 ++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 407f26a41..3e9832520 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -2,8 +2,8 @@ name: themes-weekly-pull on: schedule: - # run every friday at 5AM - - cron: '0 5 * * 5' + # run every monday at 2AM + - cron: '0 2 * * 1' jobs: pull-from-jsonbin: @@ -43,4 +43,3 @@ jobs: title: Update themes branch: themes/themes-update author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> - base: ${{ github.head_ref }} diff --git a/yarn.lock b/yarn.lock index 35a2901a5..08bab7fb9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5206,6 +5206,15 @@ capital-case@^1.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -6472,6 +6481,14 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dot-prop@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" @@ -9499,6 +9516,11 @@ json5@^2.2.0: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== +json5@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + jsonc-parser@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" @@ -13477,6 +13499,15 @@ sentence-case@^3.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + serialize-error@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" @@ -13701,6 +13732,14 @@ snake-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" From 1a8e5eab020fb148f105fc243b4764fc1105054a Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Fri, 13 May 2022 17:15:18 +0200 Subject: [PATCH 04/16] add base entry to themes-weekly-pull.yml --- .github/workflows/themes-weekly-pull.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 3e9832520..407f26a41 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -2,8 +2,8 @@ name: themes-weekly-pull on: schedule: - # run every monday at 2AM - - cron: '0 2 * * 1' + # run every friday at 5AM + - cron: '0 5 * * 5' jobs: pull-from-jsonbin: @@ -43,3 +43,4 @@ jobs: title: Update themes branch: themes/themes-update author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> + base: ${{ github.head_ref }} From cb6101ca19d4972f87bf75c3fae83cc3c33c3f36 Mon Sep 17 00:00:00 2001 From: Francesco Spissu <94986937+francescospissu@users.noreply.github.com> Date: Tue, 17 May 2022 09:25:30 +0200 Subject: [PATCH 05/16] Update actions/checkout to v3 in themes-weekly-pull.yml Co-authored-by: per1234 --- .github/workflows/themes-weekly-pull.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 407f26a41..15d3cbb4d 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Node.js 14.x uses: actions/setup-node@v2 From eb963fb2e0ce23375820aba0640a758031d8031f Mon Sep 17 00:00:00 2001 From: Francesco Spissu <94986937+francescospissu@users.noreply.github.com> Date: Tue, 17 May 2022 09:26:04 +0200 Subject: [PATCH 06/16] Update actions/setup-node to v3 in themes-weekly-pull.yml Co-authored-by: per1234 --- .github/workflows/themes-weekly-pull.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 15d3cbb4d..98c182df5 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -13,7 +13,7 @@ jobs: uses: actions/checkout@v3 - name: Install Node.js 14.x - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: '14.x' registry-url: 'https://registry.npmjs.org' From 0202dd02eddb49c0a064870f5ebd8dbb394a4349 Mon Sep 17 00:00:00 2001 From: Francesco Spissu <94986937+francescospissu@users.noreply.github.com> Date: Tue, 17 May 2022 09:26:59 +0200 Subject: [PATCH 07/16] Update create-pull-request to v4 in themes-weekly-pull.yml Co-authored-by: per1234 --- .github/workflows/themes-weekly-pull.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 98c182df5..1911c1aba 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -37,7 +37,7 @@ jobs: run: yarn run themes:generate - name: Create Pull Request - uses: peter-evans/create-pull-request@v3 + uses: peter-evans/create-pull-request@v4 with: commit-message: Updated themes title: Update themes From d2727a52598ed0d382d9d386648f530defca3c81 Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Tue, 17 May 2022 10:10:41 +0200 Subject: [PATCH 08/16] define node version as env variable --- .github/workflows/themes-weekly-pull.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 1911c1aba..1b1e3b0c9 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -5,6 +5,9 @@ on: # run every friday at 5AM - cron: '0 5 * * 5' +env: + NODE_VERSION: 14.x + jobs: pull-from-jsonbin: runs-on: ubuntu-latest @@ -12,10 +15,10 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Install Node.js 14.x + - name: Install Node.js uses: actions/setup-node@v3 with: - node-version: '14.x' + node-version: ${{ env.NODE_VERSION }} registry-url: 'https://registry.npmjs.org' - name: Install dependencies From 7b562b9443bd215904d93de6d4ed739cddabc961 Mon Sep 17 00:00:00 2001 From: Francesco Spissu <94986937+francescospissu@users.noreply.github.com> Date: Tue, 17 May 2022 10:24:13 +0200 Subject: [PATCH 09/16] add workflow_dispatch event in themes-weekly-pull.yml Co-authored-by: per1234 --- .github/workflows/themes-weekly-pull.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 1b1e3b0c9..c4d81ba8d 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -4,6 +4,7 @@ on: schedule: # run every friday at 5AM - cron: '0 5 * * 5' + workflow_dispatch: env: NODE_VERSION: 14.x From e545dbcb4100e446e6dfab13830ed72efe07b0bf Mon Sep 17 00:00:00 2001 From: Francesco Spissu <94986937+francescospissu@users.noreply.github.com> Date: Tue, 17 May 2022 10:46:34 +0200 Subject: [PATCH 10/16] remove base from create pull request in themes-weekly-pull.yml Co-authored-by: per1234 --- .github/workflows/themes-weekly-pull.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index c4d81ba8d..125239206 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -47,4 +47,3 @@ jobs: title: Update themes branch: themes/themes-update author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> - base: ${{ github.head_ref }} From ed6f6ed7fcab86485a892612302f3e9fcc4f7cce Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Tue, 17 May 2022 11:29:42 +0200 Subject: [PATCH 11/16] rename MASTER_KEY and BIN_ID env variables --- .github/workflows/themes-weekly-pull.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 125239206..8eb579674 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -28,8 +28,8 @@ jobs: - name: Run themes:pull script run: yarn run themes:pull env: - MASTER_KEY: ${{ secrets.MASTER_KEY }} - BIN_ID: ${{ secrets.BIN_ID }} + JSONBIN_MASTER_KEY: ${{ secrets.JSONBIN_MASTER_KEY }} + JSONBIN_ID: ${{ secrets.JSONBIN_ID }} - name: Generate dark tokens run: npx token-transformer scripts/themes/tokens/arduino-tokens.json scripts/themes/tokens/dark.json core,ide-default,ide-dark,theia core,ide-default,ide-dark From ab1a2d06980829165a87974d160624acb6655c2b Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Tue, 17 May 2022 12:19:01 +0200 Subject: [PATCH 12/16] create tokens folder if it doesn't exist --- scripts/themes/theme-tokens-pull.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/themes/theme-tokens-pull.js b/scripts/themes/theme-tokens-pull.js index c2c2b2403..b0e9238cc 100644 --- a/scripts/themes/theme-tokens-pull.js +++ b/scripts/themes/theme-tokens-pull.js @@ -4,6 +4,12 @@ const fs = require('fs'); const JSONBIN_MASTER_KEY = process.env.JSONBIN_MASTER_KEY; const JSONBIN_ID = process.env.JSONBIN_ID; +const destFolder = './scripts/themes/tokens'; + +if (!fs.existsSync(destFolder)){ + fs.mkdirSync(destFolder); +} + let req = new XMLHttpRequest(); req.open('GET', 'https://api.jsonbin.io/v3/b/'+ JSONBIN_ID +'/latest', true); @@ -14,7 +20,7 @@ req.onreadystatechange = () => { if (req.readyState == XMLHttpRequest.DONE) { const tokens = JSON.parse(req.responseText).record.values; fs.writeFile( - './scripts/themes/tokens/arduino-tokens.json', + destFolder + '/arduino-tokens.json', JSON.stringify(tokens), (err) => { if (err) { From 28f5dcec5b85990fb9d38bff8e0f9c76ec8f2da1 Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Tue, 24 May 2022 17:22:40 +0200 Subject: [PATCH 13/16] update themes --- .../src/browser/data/dark.color-theme.json | 33 ++++++++++--------- .../src/browser/data/default.color-theme.json | 27 ++++++++------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/arduino-ide-extension/src/browser/data/dark.color-theme.json b/arduino-ide-extension/src/browser/data/dark.color-theme.json index 009723466..8a31cebcc 100644 --- a/arduino-ide-extension/src/browser/data/dark.color-theme.json +++ b/arduino-ide-extension/src/browser/data/dark.color-theme.json @@ -2,12 +2,12 @@ "name": "Arduino dark", "type": "dark", "colors": { - "list.highlightForeground": "#171e21", - "list.activeSelectionForeground": "#424242", - "list.activeSelectionBackground": "#DAE3E3", - "list.inactiveSelectionForeground": "#424242", - "list.inactiveSelectionBackground": "#DAE3E3", - "list.hoverBackground": "#ECF1F1", + "list.highlightForeground": "#0ca1a6", + "list.activeSelectionForeground": "#dae3e3", + "list.activeSelectionBackground": "#434f54", + "list.inactiveSelectionForeground": "#dae3e3", + "list.inactiveSelectionBackground": "#434f54", + "list.hoverBackground": "#1f272a", "progressBar.background": "#005c5f", "editor.background": "#1f272a", "editor.foreground": "#dae3e3", @@ -15,7 +15,7 @@ "editor.selectionBackground": "#f1c40f", "editorCursor.foreground": "#434f54", "editorWhitespace.foreground": "#bfbfbf", - "editorWidget.background": "#F7F9F9", + "editorWidget.background": "#171e21", "focusBorder": "#dae3e3", "menubar.selectionBackground": "#ffffff", "menubar.selectionForeground": "#212121", @@ -27,27 +27,30 @@ "titleBar.activeForeground": "#dae3e3", "terminal.background": "#000000", "terminal.foreground": "#e0e0e0", - "dropdown.border": "#ececec", - "dropdown.background": "#ececec", - "activityBar.background": "#101618", + "dropdown.border": "#7fcbcd", + "dropdown.background": "#2c353a", + "dropdown.foreground": "#dae3e3", + "activityBar.background": "#171e21", "activityBar.foreground": "#dae3e3", "activityBar.inactiveForeground": "#4e5b61", "activityBar.activeBorder": "#0ca1a6", "statusBar.background": "#171e21", - "secondaryButton.background": "#b5c8c9", - "secondaryButton.foreground": "#ececec", - "secondaryButton.hoverBackground": "#dae3e3", + "secondaryButton.background": "#ff000000", + "secondaryButton.foreground": "#dae3e3", + "secondaryButton.hoverBackground": "#434f54", "arduino.branding.primary": "#0ca1a6", "arduino.branding.secondary": "#b5c8c9", "arduino.foreground": "#edf1f1", "arduino.output.foreground": "#ffffff", "arduino.output.background": "#000000", + "arduino.toolbar.hoverBackground": "#dae3e3", "sideBar.background": "#101618", "input.background": "#000000", "foreground": "#dae3e3", "settings.headerForeground": "#dae3e3", "tree.indentGuidesStroke": "#374146", - "tab.unfocusedActiveForeground": "#dae3e3" + "tab.unfocusedActiveForeground": "#dae3e3", + "tab.inactiveBackground": "#171e21" }, "tokenColors": [ { @@ -97,7 +100,7 @@ "variable.name" ], "settings": { - "foreground": "#434f54" + "foreground": "#dae3e3" } }, { diff --git a/arduino-ide-extension/src/browser/data/default.color-theme.json b/arduino-ide-extension/src/browser/data/default.color-theme.json index fbdbaccda..1da6d85f4 100644 --- a/arduino-ide-extension/src/browser/data/default.color-theme.json +++ b/arduino-ide-extension/src/browser/data/default.color-theme.json @@ -2,12 +2,12 @@ "name": "Arduino default", "type": "default", "colors": { - "list.highlightForeground": "#006d70", - "list.activeSelectionForeground": "#424242", - "list.activeSelectionBackground": "#DAE3E3", - "list.inactiveSelectionForeground": "#424242", - "list.inactiveSelectionBackground": "#DAE3E3", - "list.hoverBackground": "#ECF1F1", + "list.highlightForeground": "#008184", + "list.activeSelectionForeground": "#4e5b61", + "list.activeSelectionBackground": "#dae3e3", + "list.inactiveSelectionForeground": "#4e5b61", + "list.inactiveSelectionBackground": "#dae3e3", + "list.hoverBackground": "#ecf1f1", "progressBar.background": "#005c5f", "editor.background": "#ffffff", "editor.foreground": "#4e5b61", @@ -15,7 +15,7 @@ "editor.selectionBackground": "#f1c40f", "editorCursor.foreground": "#434f54", "editorWhitespace.foreground": "#bfbfbf", - "editorWidget.background": "#F7F9F9", + "editorWidget.background": "#f7f9f9", "focusBorder": "#7fcbcd", "menubar.selectionBackground": "#ffffff", "menubar.selectionForeground": "#212121", @@ -27,27 +27,30 @@ "titleBar.activeForeground": "#f7f9f9", "terminal.background": "#000000", "terminal.foreground": "#e0e0e0", - "dropdown.border": "#ececec", - "dropdown.background": "#ececec", + "dropdown.border": "#f7f9f9", + "dropdown.background": "#ffffff", + "dropdown.foreground": "#4e5b61", "activityBar.background": "#ecf1f1", "activityBar.foreground": "#4e5b61", "activityBar.inactiveForeground": "#bdc7c7", "activityBar.activeBorder": "#008184", "statusBar.background": "#006d70", - "secondaryButton.background": "#b5c8c9", - "secondaryButton.foreground": "#ececec", + "secondaryButton.background": "#ff000000", + "secondaryButton.foreground": "#008184", "secondaryButton.hoverBackground": "#dae3e3", "arduino.branding.primary": "#008184", "arduino.branding.secondary": "#b5c8c9", "arduino.foreground": "#edf1f1", "arduino.output.foreground": "#ffffff", "arduino.output.background": "#000000", + "arduino.toolbar.hoverBackground": "#f7f9f9", "sideBar.background": "#f7f9f9", "input.background": "#ffffff", "foreground": "#4e5b61", "settings.headerForeground": "#4e5b61", "tree.indentGuidesStroke": "#dae3e3", - "tab.unfocusedActiveForeground": "#4e5b61" + "tab.unfocusedActiveForeground": "#4e5b61", + "tab.inactiveBackground": "#ecf1f1" }, "tokenColors": [ { From d3d63f4b3873ebf4d8d8714ecf5147ffb2d3b994 Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Wed, 25 May 2022 12:09:24 +0200 Subject: [PATCH 14/16] set insertFinalNewline true --- .gitignore | 2 +- arduino-ide-extension/src/browser/data/dark.color-theme.json | 2 +- arduino-ide-extension/src/browser/data/default.color-theme.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index c462d8b07..858ecbdea 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,4 @@ arduino-ide-extension/data/cli/config # the tokens folder for the themes scripts/themes/tokens # environment variables -.env \ No newline at end of file +.env diff --git a/arduino-ide-extension/src/browser/data/dark.color-theme.json b/arduino-ide-extension/src/browser/data/dark.color-theme.json index 8a31cebcc..072e9a300 100644 --- a/arduino-ide-extension/src/browser/data/dark.color-theme.json +++ b/arduino-ide-extension/src/browser/data/dark.color-theme.json @@ -146,4 +146,4 @@ } } ] -} \ No newline at end of file +} diff --git a/arduino-ide-extension/src/browser/data/default.color-theme.json b/arduino-ide-extension/src/browser/data/default.color-theme.json index 1da6d85f4..2f4660652 100644 --- a/arduino-ide-extension/src/browser/data/default.color-theme.json +++ b/arduino-ide-extension/src/browser/data/default.color-theme.json @@ -146,4 +146,4 @@ } } ] -} \ No newline at end of file +} From ca88443024158ffe1cfef9d0220666a144399b84 Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Thu, 26 May 2022 12:40:17 +0200 Subject: [PATCH 15/16] themes workflow test --- .github/workflows/themes-weekly-pull.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 8eb579674..8db5144af 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -2,8 +2,8 @@ name: themes-weekly-pull on: schedule: - # run every friday at 5AM - - cron: '0 5 * * 5' + # test + - cron: '42 12 * * *' workflow_dispatch: env: From 1b1a9ed2b85925436665dda725b346af42b2a3f4 Mon Sep 17 00:00:00 2001 From: Francesco Spissu Date: Thu, 26 May 2022 12:57:25 +0200 Subject: [PATCH 16/16] revert themes workflow --- .github/workflows/themes-weekly-pull.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 8db5144af..8eb579674 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -2,8 +2,8 @@ name: themes-weekly-pull on: schedule: - # test - - cron: '42 12 * * *' + # run every friday at 5AM + - cron: '0 5 * * 5' workflow_dispatch: env: