diff --git a/package-lock.json b/package-lock.json index b5f0b90..b0cefcf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@codemirror/language": "6.2.1", "@codemirror/lint": "6.0.0", "@codemirror/state": "6.1.1", - "@codemirror/view": "6.2.3", + "@codemirror/view": "6.2.4", "@dnd-kit/core": "6.0.5", "@dnd-kit/modifiers": "6.0.0", "@dnd-kit/sortable": "7.0.1", @@ -28,7 +28,7 @@ "@improbable-eng/grpc-web-node-http-transport": "0.15.0", "@lezer/highlight": "1.0.0", "@nextui-org/react": "1.0.0-beta.10", - "@uiw/react-codemirror": "4.12.2", + "@uiw/react-codemirror": "4.12.3", "chroma-js": "2.4.2", "electron-squirrel-startup": "1.0.0", "electron-store": "8.1.0", @@ -68,7 +68,7 @@ "@storybook/react": "6.5.12", "@storybook/testing-library": "0.0.13", "@types/chroma-js": "2.1.4", - "@types/jest": "29.0.2", + "@types/jest": "29.0.3", "@types/lodash": "4.14.185", "@types/react": "18.0.20", "@types/react-color": "3.0.6", @@ -95,7 +95,7 @@ "jest": "29.0.3", "node-loader": "2.0.0", "prettier": "2.7.1", - "release-it": "15.4.1", + "release-it": "15.4.2", "style-loader": "3.3.1", "ts-jest": "29.0.1", "ts-loader": "9.3.1", @@ -2237,9 +2237,9 @@ } }, "node_modules/@codemirror/view": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.2.3.tgz", - "integrity": "sha512-cgN9gWS9+kv9+eOgVJWMrGUk4EwYKBZpuFYvxIlu4CmMye3+U+gMzuZhBgtPDOCbCp30hxFIOO0MENhGfnaC/g==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.2.4.tgz", + "integrity": "sha512-Zc5qDv+CD2ubWs6ShGJL0tf4y2w5vObdg7Eus0ouhg9g5lrvsAnwO9PvavDZdK4bpH6O+cnNDRhFlvDuieXo/g==", "dependencies": { "@codemirror/state": "^6.0.0", "style-mod": "^4.0.0", @@ -13777,9 +13777,9 @@ } }, "node_modules/@types/jest": { - "version": "29.0.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.0.2.tgz", - "integrity": "sha512-TaklkwSEtvwJpleiKBHgEBySIQlcZ08gYP/s5wdtdLnjz9uxjnDd7U+Y0JWACebkqBc+jtbol2PEtEW0wQV2zQ==", + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.0.3.tgz", + "integrity": "sha512-F6ukyCTwbfsEX5F2YmVYmM5TcTHy1q9P5rWlRbrk56KyMh3v9xRGUO3aa8+SkvMi0SHXtASJv1283enXimC0Og==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -14599,9 +14599,9 @@ } }, "node_modules/@uiw/codemirror-extensions-basic-setup": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.12.2.tgz", - "integrity": "sha512-XVBgPPTlSHlZmRGm1UpBxlEXe1hzFSuCtd+aC14FeNPSOjibzbwM3bQB2Jw4+CmZhvifyKdUtZOg6XP7FuCLng==", + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.12.3.tgz", + "integrity": "sha512-Z6TXwX6IkNqXYdfMNo20lFN03tp8eLlUHlcuTCq/z5GpENbEt+l/bvnLj8RtHKZ0Ys75a/8rXamyZtHjJ8KgrA==", "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/commands": "^6.0.0", @@ -14622,15 +14622,15 @@ } }, "node_modules/@uiw/react-codemirror": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.12.2.tgz", - "integrity": "sha512-wTEz1Gje1WxCwOZIMspcOe4Edke2jxTUgDF7Vv+YS/U0GyWXIoyylO8y2MY+5RsgFdYqY4ADt6u6Kj5X4y2d2w==", + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.12.3.tgz", + "integrity": "sha512-Uk6/OdA3lkld0/BTGf+06UOw/HaHnCyUO51Fus9JOFOICRZ9doZU8J1Mja9QnDdH2ibFvCHPVWSqLlSA7FA/wg==", "dependencies": { "@babel/runtime": "^7.18.6", "@codemirror/commands": "^6.1.0", "@codemirror/state": "^6.1.1", "@codemirror/theme-one-dark": "^6.0.0", - "@uiw/codemirror-extensions-basic-setup": "4.12.2", + "@uiw/codemirror-extensions-basic-setup": "4.12.3", "codemirror": "^6.0.0" }, "peerDependencies": { @@ -23546,9 +23546,9 @@ } }, "node_modules/form-data-encoder": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.0.1.tgz", - "integrity": "sha512-Oy+P9w5mnO4TWXVgUiQvggNKPI9/ummcSt5usuIV6HkaLKigwzPpoenhEqmGmx3zHqm6ZLJ+CR/99N8JLinaEw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.2.tgz", + "integrity": "sha512-FCaIOVTRA9E0siY6FeXid7D5yrCqpsErplUkE2a1BEiKj1BE9z6FbKB4ntDTwC4NVLie9p+4E9nX4mWwEOT05A==", "dev": true, "engines": { "node": ">= 14.17" @@ -32943,9 +32943,9 @@ } }, "node_modules/release-it": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/release-it/-/release-it-15.4.1.tgz", - "integrity": "sha512-w6adXfE+bN/fdcG1KehgS7gYcTfZLYIPml4jPOUEtYQ6NJyaiCtCF/ks032w1jf6EUgvGgWruRP+2TyyyDDBgA==", + "version": "15.4.2", + "resolved": "https://registry.npmjs.org/release-it/-/release-it-15.4.2.tgz", + "integrity": "sha512-8UszvMbV/+aNZ03TRIpPiKOyO7s6fWkSHZ0Bz08qUBpO8F+o2j6o4+TEygPygJznW8UcfO1SDldagqBMIfOh5Q==", "dev": true, "dependencies": { "@iarna/toml": "2.2.5", @@ -32957,8 +32957,8 @@ "form-data": "4.0.0", "git-url-parse": "13.0.0", "globby": "13.1.2", - "got": "12.3.1", - "inquirer": "9.1.0", + "got": "12.4.1", + "inquirer": "9.1.1", "is-ci": "3.0.1", "lodash": "4.17.21", "mime-types": "2.1.35", @@ -33205,9 +33205,9 @@ } }, "node_modules/release-it/node_modules/ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.1.tgz", + "integrity": "sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==", "dev": true, "engines": { "node": ">=12" @@ -33302,6 +33302,18 @@ "node": ">=8" } }, + "node_modules/release-it/node_modules/cacheable-request/node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/release-it/node_modules/chalk": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", @@ -33429,16 +33441,16 @@ } }, "node_modules/release-it/node_modules/figures": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", - "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" }, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -33490,24 +33502,23 @@ } }, "node_modules/release-it/node_modules/got": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.3.1.tgz", - "integrity": "sha512-tS6+JMhBh4iXMSXF6KkIsRxmloPln31QHDlcb6Ec3bzxjjFJFr/8aXdpyuLmVc9I4i2HyBHYw1QU5K1ruUdpkw==", + "version": "12.4.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.4.1.tgz", + "integrity": "sha512-Sz1ojLt4zGNkcftIyJKnulZT/yEDvifhUjccHA8QzOuTgPs/+njXYNMFE3jR4/2OODQSSbH8SdnoLCkbh41ieA==", "dev": true, "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", "cacheable-lookup": "^6.0.4", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", - "form-data-encoder": "^2.0.1", + "form-data-encoder": "^2.1.0", "get-stream": "^6.0.1", "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" + "responselike": "^3.0.0" }, "engines": { "node": ">=14.16" @@ -33539,9 +33550,9 @@ } }, "node_modules/release-it/node_modules/inquirer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.0.tgz", - "integrity": "sha512-eukdjrBljg9t55ZnvJjvGi1OyYEzVBFsO/8o5d2MV3mc28u3x4X2kS4eJ/+9U10KiREfPkEBSeCrU/S2G/uRtw==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.1.tgz", + "integrity": "sha512-hfS9EJ1pVkGNbYKqzdGwMj0Dqosd36Qvxd5pFy4657QT23gmtFTSqoYBisZR75DReeSMWPNa8J0Lf6TQCz8PvA==", "dev": true, "dependencies": { "ansi-escapes": "^5.0.0", @@ -33549,7 +33560,7 @@ "cli-cursor": "^4.0.0", "cli-width": "^4.0.0", "external-editor": "^3.0.3", - "figures": "^4.0.1", + "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", "ora": "^6.1.2", @@ -33610,9 +33621,9 @@ } }, "node_modules/release-it/node_modules/is-unicode-supported": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz", - "integrity": "sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, "engines": { "node": ">=12" @@ -33628,12 +33639,11 @@ "dev": true }, "node_modules/release-it/node_modules/keyv": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.3.tgz", - "integrity": "sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz", + "integrity": "sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==", "dev": true, "dependencies": { - "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -33794,26 +33804,20 @@ } }, "node_modules/release-it/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, "dependencies": { - "lowercase-keys": "^2.0.0" + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/release-it/node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/release-it/node_modules/restore-cursor": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", @@ -40734,9 +40738,9 @@ } }, "@codemirror/view": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.2.3.tgz", - "integrity": "sha512-cgN9gWS9+kv9+eOgVJWMrGUk4EwYKBZpuFYvxIlu4CmMye3+U+gMzuZhBgtPDOCbCp30hxFIOO0MENhGfnaC/g==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.2.4.tgz", + "integrity": "sha512-Zc5qDv+CD2ubWs6ShGJL0tf4y2w5vObdg7Eus0ouhg9g5lrvsAnwO9PvavDZdK4bpH6O+cnNDRhFlvDuieXo/g==", "requires": { "@codemirror/state": "^6.0.0", "style-mod": "^4.0.0", @@ -49824,9 +49828,9 @@ } }, "@types/jest": { - "version": "29.0.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.0.2.tgz", - "integrity": "sha512-TaklkwSEtvwJpleiKBHgEBySIQlcZ08gYP/s5wdtdLnjz9uxjnDd7U+Y0JWACebkqBc+jtbol2PEtEW0wQV2zQ==", + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.0.3.tgz", + "integrity": "sha512-F6ukyCTwbfsEX5F2YmVYmM5TcTHy1q9P5rWlRbrk56KyMh3v9xRGUO3aa8+SkvMi0SHXtASJv1283enXimC0Og==", "dev": true, "requires": { "expect": "^29.0.0", @@ -50433,9 +50437,9 @@ } }, "@uiw/codemirror-extensions-basic-setup": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.12.2.tgz", - "integrity": "sha512-XVBgPPTlSHlZmRGm1UpBxlEXe1hzFSuCtd+aC14FeNPSOjibzbwM3bQB2Jw4+CmZhvifyKdUtZOg6XP7FuCLng==", + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.12.3.tgz", + "integrity": "sha512-Z6TXwX6IkNqXYdfMNo20lFN03tp8eLlUHlcuTCq/z5GpENbEt+l/bvnLj8RtHKZ0Ys75a/8rXamyZtHjJ8KgrA==", "requires": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/commands": "^6.0.0", @@ -50447,15 +50451,15 @@ } }, "@uiw/react-codemirror": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.12.2.tgz", - "integrity": "sha512-wTEz1Gje1WxCwOZIMspcOe4Edke2jxTUgDF7Vv+YS/U0GyWXIoyylO8y2MY+5RsgFdYqY4ADt6u6Kj5X4y2d2w==", + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.12.3.tgz", + "integrity": "sha512-Uk6/OdA3lkld0/BTGf+06UOw/HaHnCyUO51Fus9JOFOICRZ9doZU8J1Mja9QnDdH2ibFvCHPVWSqLlSA7FA/wg==", "requires": { "@babel/runtime": "^7.18.6", "@codemirror/commands": "^6.1.0", "@codemirror/state": "^6.1.1", "@codemirror/theme-one-dark": "^6.0.0", - "@uiw/codemirror-extensions-basic-setup": "4.12.2", + "@uiw/codemirror-extensions-basic-setup": "4.12.3", "codemirror": "^6.0.0" } }, @@ -57488,9 +57492,9 @@ } }, "form-data-encoder": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.0.1.tgz", - "integrity": "sha512-Oy+P9w5mnO4TWXVgUiQvggNKPI9/ummcSt5usuIV6HkaLKigwzPpoenhEqmGmx3zHqm6ZLJ+CR/99N8JLinaEw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.2.tgz", + "integrity": "sha512-FCaIOVTRA9E0siY6FeXid7D5yrCqpsErplUkE2a1BEiKj1BE9z6FbKB4ntDTwC4NVLie9p+4E9nX4mWwEOT05A==", "dev": true }, "formdata-polyfill": { @@ -64754,9 +64758,9 @@ "dev": true }, "release-it": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/release-it/-/release-it-15.4.1.tgz", - "integrity": "sha512-w6adXfE+bN/fdcG1KehgS7gYcTfZLYIPml4jPOUEtYQ6NJyaiCtCF/ks032w1jf6EUgvGgWruRP+2TyyyDDBgA==", + "version": "15.4.2", + "resolved": "https://registry.npmjs.org/release-it/-/release-it-15.4.2.tgz", + "integrity": "sha512-8UszvMbV/+aNZ03TRIpPiKOyO7s6fWkSHZ0Bz08qUBpO8F+o2j6o4+TEygPygJznW8UcfO1SDldagqBMIfOh5Q==", "dev": true, "requires": { "@iarna/toml": "2.2.5", @@ -64768,8 +64772,8 @@ "form-data": "4.0.0", "git-url-parse": "13.0.0", "globby": "13.1.2", - "got": "12.3.1", - "inquirer": "9.1.0", + "got": "12.4.1", + "inquirer": "9.1.1", "is-ci": "3.0.1", "lodash": "4.17.21", "mime-types": "2.1.35", @@ -64947,9 +64951,9 @@ "dev": true }, "ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.1.tgz", + "integrity": "sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==", "dev": true }, "bl": { @@ -65008,6 +65012,15 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + } } } }, @@ -65096,9 +65109,9 @@ } }, "figures": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", - "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, "requires": { "escape-string-regexp": "^5.0.0", @@ -65136,24 +65149,23 @@ } }, "got": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.3.1.tgz", - "integrity": "sha512-tS6+JMhBh4iXMSXF6KkIsRxmloPln31QHDlcb6Ec3bzxjjFJFr/8aXdpyuLmVc9I4i2HyBHYw1QU5K1ruUdpkw==", + "version": "12.4.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.4.1.tgz", + "integrity": "sha512-Sz1ojLt4zGNkcftIyJKnulZT/yEDvifhUjccHA8QzOuTgPs/+njXYNMFE3jR4/2OODQSSbH8SdnoLCkbh41ieA==", "dev": true, "requires": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", "cacheable-lookup": "^6.0.4", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", - "form-data-encoder": "^2.0.1", + "form-data-encoder": "^2.1.0", "get-stream": "^6.0.1", "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" + "responselike": "^3.0.0" } }, "http2-wrapper": { @@ -65173,9 +65185,9 @@ "dev": true }, "inquirer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.0.tgz", - "integrity": "sha512-eukdjrBljg9t55ZnvJjvGi1OyYEzVBFsO/8o5d2MV3mc28u3x4X2kS4eJ/+9U10KiREfPkEBSeCrU/S2G/uRtw==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.1.tgz", + "integrity": "sha512-hfS9EJ1pVkGNbYKqzdGwMj0Dqosd36Qvxd5pFy4657QT23gmtFTSqoYBisZR75DReeSMWPNa8J0Lf6TQCz8PvA==", "dev": true, "requires": { "ansi-escapes": "^5.0.0", @@ -65183,7 +65195,7 @@ "cli-cursor": "^4.0.0", "cli-width": "^4.0.0", "external-editor": "^3.0.3", - "figures": "^4.0.1", + "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", "ora": "^6.1.2", @@ -65223,9 +65235,9 @@ "dev": true }, "is-unicode-supported": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz", - "integrity": "sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true }, "json-buffer": { @@ -65235,12 +65247,11 @@ "dev": true }, "keyv": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.3.tgz", - "integrity": "sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz", + "integrity": "sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==", "dev": true, "requires": { - "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -65337,20 +65348,12 @@ "dev": true }, "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } + "lowercase-keys": "^3.0.0" } }, "restore-cursor": { diff --git a/package.json b/package.json index 050d667..191e35b 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@codemirror/language": "6.2.1", "@codemirror/lint": "6.0.0", "@codemirror/state": "6.1.1", - "@codemirror/view": "6.2.3", + "@codemirror/view": "6.2.4", "@dnd-kit/core": "6.0.5", "@dnd-kit/modifiers": "6.0.0", "@dnd-kit/sortable": "7.0.1", @@ -43,7 +43,7 @@ "@improbable-eng/grpc-web-node-http-transport": "0.15.0", "@lezer/highlight": "1.0.0", "@nextui-org/react": "1.0.0-beta.10", - "@uiw/react-codemirror": "4.12.2", + "@uiw/react-codemirror": "4.12.3", "chroma-js": "2.4.2", "electron-squirrel-startup": "1.0.0", "electron-store": "8.1.0", @@ -83,7 +83,7 @@ "@storybook/react": "6.5.12", "@storybook/testing-library": "0.0.13", "@types/chroma-js": "2.1.4", - "@types/jest": "29.0.2", + "@types/jest": "29.0.3", "@types/lodash": "4.14.185", "@types/react": "18.0.20", "@types/react-color": "3.0.6", @@ -110,7 +110,7 @@ "jest": "29.0.3", "node-loader": "2.0.0", "prettier": "2.7.1", - "release-it": "15.4.1", + "release-it": "15.4.2", "style-loader": "3.3.1", "ts-jest": "29.0.1", "ts-loader": "9.3.1", diff --git a/src/app/components/buttons/ezy.button.tsx b/src/app/components/buttons/ezy.button.tsx new file mode 100644 index 0000000..f2012dc --- /dev/null +++ b/src/app/components/buttons/ezy.button.tsx @@ -0,0 +1,20 @@ +import { Button, ButtonProps } from '@nextui-org/react'; +import React from 'react'; + +export const EzyButton: React.FC = ({ css, children, ...props }) => ( + +); diff --git a/src/app/components/buttons/index.ts b/src/app/components/buttons/index.ts new file mode 100644 index 0000000..74f7fc3 --- /dev/null +++ b/src/app/components/buttons/index.ts @@ -0,0 +1 @@ +export * from './ezy.button'; diff --git a/src/app/components/icons/ezy.icon.tsx b/src/app/components/icons/ezy.icon.tsx new file mode 100644 index 0000000..eb52903 --- /dev/null +++ b/src/app/components/icons/ezy.icon.tsx @@ -0,0 +1,27 @@ +import { CSS, styled } from '@nextui-org/react'; +import React from 'react'; + +export interface Props { + className?: string; + css?: CSS; +} + +const StyledSvg = styled('svg', { + stroke: 'CurrentColor', +}); + +export const EzyIcon: React.FC = () => ( + + + +); diff --git a/src/app/components/icons/index.ts b/src/app/components/icons/index.ts index d9556a8..c8bcbfc 100644 --- a/src/app/components/icons/index.ts +++ b/src/app/components/icons/index.ts @@ -1,2 +1,3 @@ export * from './horizontal-layout.icon'; export * from './vertical-layout.icon'; +export * from './ezy.icon'; diff --git a/src/app/components/index.ts b/src/app/components/index.ts index b160691..9bc1faa 100644 --- a/src/app/components/index.ts +++ b/src/app/components/index.ts @@ -11,3 +11,5 @@ export * from './file-input'; export * from './notification'; export * from './info-label'; export * from './kbar'; +export * from './menu'; +export * from './buttons'; diff --git a/src/app/components/menu/index.ts b/src/app/components/menu/index.ts new file mode 100644 index 0000000..2971cc3 --- /dev/null +++ b/src/app/components/menu/index.ts @@ -0,0 +1,2 @@ +export * from './menu'; +export * from './menu-item'; diff --git a/src/app/components/menu/menu-item.tsx b/src/app/components/menu/menu-item.tsx new file mode 100644 index 0000000..4c43005 --- /dev/null +++ b/src/app/components/menu/menu-item.tsx @@ -0,0 +1,65 @@ +import { styled, VariantProps } from '@nextui-org/react'; +import React from 'react'; + +const StyledMenuItem = styled('div', { + display: 'flex', + justifyContent: 'center', + padding: 10, + + '&:hover': { + color: '$ezy', + }, + + variants: { + active: { + true: { + color: '$ezy', + }, + false: { + color: '$accents5', + }, + }, + }, +}); + +const IconWrapper = styled('div', { + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + + width: 30, + height: 30, + + variants: { + active: { + true: { + transition: 'all 0.2s ease', + bs: '$xs', + br: '$squared', + backgroundColor: '$accents1', + }, + false: { + backgroundColor: 'transparent', + }, + }, + }, +}); + +export type MenuItemData = { + key: string; + + icon: React.ReactElement; + + // eslint-disable-next-line react/no-unused-prop-types + submenu?: React.ReactElement; +}; + +export type MenuItemProps = MenuItemData & { + onClick?: () => void; +} & VariantProps; + +export const MenuItem: React.FC = ({ key, icon, active = false, onClick }) => ( + + {icon} + +); diff --git a/src/app/components/menu/menu.tsx b/src/app/components/menu/menu.tsx new file mode 100644 index 0000000..6954683 --- /dev/null +++ b/src/app/components/menu/menu.tsx @@ -0,0 +1,99 @@ +import { styled } from '@nextui-org/react'; +import React from 'react'; + +import { MenuItem, MenuItemData } from './menu-item'; + +const StyledMenu = styled('div', { + display: 'flex', + flexDirection: 'column', + flex: 1, + + width: 50, + maxWidth: 50, + + backgroundColor: '$background', + + borderRight: 'solid 0.1px $border', +}); + +const SubMenu = styled('div', { + display: 'flex', + flexWrap: 'nowrap', + transition: 'all 0.2s ease', + + borderRight: 'solid 0.1px $border', + + variants: { + isCollapsed: { + true: { + width: 250, + }, + false: { + '& div': { + display: 'none', + }, + width: 0, + }, + }, + }, +}); + +const TopContainer = styled('div', { + borderBottom: 'solid 0.1px $border', +}); + +const BottomContainer = styled('div', { + marginTop: 'auto', +}); + +export interface MenuProps { + items: MenuItemData[]; + + top?: React.ReactNode; + + bottom?: React.ReactNode; + + isCollapsed?: boolean; + + onCollapseChange?: (isCollapsed: boolean) => void; +} + +export const Menu: React.FC = ({ + items, + bottom, + top, + isCollapsed = false, + onCollapseChange, +}) => { + // const [isCollapsed, setIsCollapsed] = React.useState(true); + const [activeItem, setActiveItem] = React.useState(items[0].key); + + const handleMenuItemClick = (index: string) => { + if (index === activeItem && onCollapseChange) { + onCollapseChange(!isCollapsed); + } else { + setActiveItem(index); + } + }; + + const submenu = items.find((item) => item.key === activeItem)?.submenu; + + return ( + <> + + {top} + {items.map((item) => ( + { + handleMenuItemClick(item.key); + }} + /> + ))} + {bottom} + + {!!submenu && submenu} + + ); +}; diff --git a/src/app/pages/context/app.context.ts b/src/app/context/app.context.ts similarity index 94% rename from src/app/pages/context/app.context.ts rename to src/app/context/app.context.ts index d18aafa..e12eb67 100644 --- a/src/app/pages/context/app.context.ts +++ b/src/app/context/app.context.ts @@ -26,7 +26,7 @@ export function useAppContextProvider() { }); }); - const value: IAppContext = { + const appContext: IAppContext = { platform: { os, setOs, @@ -38,7 +38,7 @@ export function useAppContextProvider() { }; return { - value, + appContext, AppProvider, }; } diff --git a/src/app/pages/context/index.ts b/src/app/context/index.ts similarity index 100% rename from src/app/pages/context/index.ts rename to src/app/context/index.ts diff --git a/src/app/pages/main.tsx b/src/app/pages/main.tsx index 68aa517..73890e3 100644 --- a/src/app/pages/main.tsx +++ b/src/app/pages/main.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { useEffectOnce } from 'react-use'; +import { useAppContextProvider } from '../context'; import { DefaultLayout } from '../layouts'; import { useCollectionsStore } from '../storage'; -import { useAppContextProvider } from './context'; import { Shortcuts } from './shortcuts'; import { SideBar } from './side-bar'; import { StatusBar } from './status-bar'; @@ -11,7 +11,7 @@ import { TabsContainer } from './tabs-container'; export const Main = (): JSX.Element => { const { collections, updateCollection } = useCollectionsStore((store) => store); - const { value, AppProvider } = useAppContextProvider(); + const { appContext, AppProvider } = useAppContextProvider(); useEffectOnce(() => { collections.forEach((collection) => { @@ -20,7 +20,7 @@ export const Main = (): JSX.Element => { }); return ( - + } bottom={}> diff --git a/src/app/pages/settings/forms/settings.form.tsx b/src/app/pages/settings/forms/settings.form.tsx index ded9e66..46c1671 100644 --- a/src/app/pages/settings/forms/settings.form.tsx +++ b/src/app/pages/settings/forms/settings.form.tsx @@ -32,7 +32,12 @@ export const SettingsForm: React.FC = ({ borderWeight="light" animated={false} color="gradient" - css={{ tt: 'capitalize' }} + css={{ + tt: 'capitalize', + '.nextui-drip .nextui-drip-filler': { + fill: '$ezy', + }, + }} > {field.value} Theme diff --git a/src/app/pages/shortcuts/shortcuts.tsx b/src/app/pages/shortcuts/shortcuts.tsx index e21a890..48b74b5 100644 --- a/src/app/pages/shortcuts/shortcuts.tsx +++ b/src/app/pages/shortcuts/shortcuts.tsx @@ -4,8 +4,8 @@ import { createAction, KBarProvider } from 'kbar'; import React, { PropsWithChildren } from 'react'; import { KBar } from '../../components'; +import { AppContext } from '../../context'; import { useCollectionsStore, useTabsStore } from '../../storage'; -import { AppContext } from '../context'; import { useEnvironmentActions, useGrpcMethodActions, useThemeActions } from './hooks'; interface ActionsProviderProps { diff --git a/src/app/pages/side-bar/header.tsx b/src/app/pages/side-bar/header.tsx deleted file mode 100644 index 2311d7a..0000000 --- a/src/app/pages/side-bar/header.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { faCog, faSquarePlus } from '@fortawesome/free-solid-svg-icons'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { Button, Container } from '@nextui-org/react'; -import React from 'react'; - -import { CreateCollectionModal } from '../collections'; -import { AppContext } from '../context'; -import { UpdateSettingsModal } from '../settings'; - -export const Header: React.FC = () => { - const context = React.useContext(AppContext); - - const [updateSettingsModalVisible, setUpdateSettingsModalVisible] = React.useState(false); - - return ( - - -