diff --git a/cypress/e2e/17-workflow-tags.cy.ts b/cypress/e2e/17-workflow-tags.cy.ts index dea45d1a9a..cede363006 100644 --- a/cypress/e2e/17-workflow-tags.cy.ts +++ b/cypress/e2e/17-workflow-tags.cy.ts @@ -79,6 +79,7 @@ describe('Workflow tags', () => { wf.getters.nthTagPill(1).click(); wf.getters.tagsDropdown().find('.el-tag__close').first().click(); cy.get('body').click(0, 0); + wf.getters.workflowTags().click(); wf.getters.tagPills().should('have.length', TEST_TAGS.length - 1); }); @@ -88,6 +89,7 @@ describe('Workflow tags', () => { wf.getters.nthTagPill(1).click(); wf.getters.tagsInDropdown().filter('.selected').first().click(); cy.get('body').click(0, 0); + wf.getters.workflowTags().click(); wf.getters.tagPills().should('have.length', TEST_TAGS.length - 1); }); }); diff --git a/cypress/e2e/26-resource-locator.cy.ts b/cypress/e2e/26-resource-locator.cy.ts index 9cea4e25a3..bc6baa4de9 100644 --- a/cypress/e2e/26-resource-locator.cy.ts +++ b/cypress/e2e/26-resource-locator.cy.ts @@ -75,7 +75,7 @@ describe('Resource Locator', () => { ndv.actions.setInvalidExpression({ fieldName: 'fieldId' }); - ndv.getters.nodeParameters().click(); // remove focus from input, hide expression preview + ndv.getters.inputDataContainer().click(); // remove focus from input, hide expression preview ndv.getters.resourceLocatorInput('rlc').click(); diff --git a/cypress/e2e/5-ndv.cy.ts b/cypress/e2e/5-ndv.cy.ts index 6103dbbc03..715052c9a8 100644 --- a/cypress/e2e/5-ndv.cy.ts +++ b/cypress/e2e/5-ndv.cy.ts @@ -325,7 +325,7 @@ describe('NDV', () => { ndv.actions.setInvalidExpression({ fieldName: 'fieldId', delay: 200 }); - ndv.getters.nodeParameters().click(); // remove focus from input, hide expression preview + ndv.getters.inputDataContainer().click(); // remove focus from input, hide expression preview ndv.getters.parameterInput('remoteOptions').click(); diff --git a/cypress/pages/workflow.ts b/cypress/pages/workflow.ts index a3443c81b5..e5546f17b9 100644 --- a/cypress/pages/workflow.ts +++ b/cypress/pages/workflow.ts @@ -145,7 +145,7 @@ export class WorkflowPage extends BasePage { }, addInitialNodeToCanvas: ( nodeDisplayName: string, - opts?: { keepNdvOpen?: boolean; action?: string, isTrigger?: boolean}, + opts?: { keepNdvOpen?: boolean; action?: string; isTrigger?: boolean }, ) => { this.getters.canvasPlusButton().click(); this.getters.nodeCreatorSearchBar().type(nodeDisplayName); @@ -318,7 +318,6 @@ export class WorkflowPage extends BasePage { this.getters.workflowTagsInput().type(tag); this.getters.workflowTagsInput().type('{enter}'); }); - cy.realPress('Tab'); // For a brief moment the Element UI tag component shows the tags as(+X) string // so we need to wait for it to disappear this.getters.workflowTagsContainer().should('not.contain', `+${tags.length}`); diff --git a/packages/@n8n/storybook/main.ts b/packages/@n8n/storybook/main.ts index 79521753be..e8f1844834 100644 --- a/packages/@n8n/storybook/main.ts +++ b/packages/@n8n/storybook/main.ts @@ -8,6 +8,7 @@ export const sharedConfig: StorybookConfig = { '@storybook/addon-essentials', '@storybook/addon-interactions', '@storybook/addon-links', + '@storybook/addon-themes', ], staticDirs: ['../public'], framework: { diff --git a/packages/@n8n/storybook/package.json b/packages/@n8n/storybook/package.json index 231b1aacc9..f090c1f000 100644 --- a/packages/@n8n/storybook/package.json +++ b/packages/@n8n/storybook/package.json @@ -10,6 +10,7 @@ "@storybook/addon-essentials": "^8.0.0", "@storybook/addon-interactions": "^8.0.0", "@storybook/addon-links": "^8.0.0", + "@storybook/addon-themes": "^8.0.0", "@storybook/blocks": "^8.0.0", "@storybook/test": "^8.0.0", "@storybook/vue3": "^8.0.0", diff --git a/packages/design-system/.storybook/preview.js b/packages/design-system/.storybook/preview.js index 2e057df316..991dcdccfb 100644 --- a/packages/design-system/.storybook/preview.js +++ b/packages/design-system/.storybook/preview.js @@ -1,6 +1,8 @@ import { setup } from '@storybook/vue3'; +import { withThemeByDataAttribute } from '@storybook/addon-themes'; import './storybook.scss'; +import '../src/css/tailwind/index.css'; import { library } from '@fortawesome/fontawesome-svg-core'; import { fas } from '@fortawesome/free-solid-svg-icons'; @@ -59,7 +61,25 @@ export const parameters = { }, options: { storySort: { - order: ['Docs', 'Styleguide', ['Colors Primitives', 'Colors Tokens', 'Font', 'Spacing', 'Border'], 'Atoms', 'Modules'], + order: [ + 'Docs', + 'Styleguide', + ['Colors Primitives', 'Colors Tokens', 'Font', 'Spacing', 'Border'], + 'Atoms', + 'Modules', + ], }, }, }; + +export const decorators = [ + withThemeByDataAttribute({ + themes: { + light: 'light', + dark: 'dark', + }, + defaultTheme: 'light', + attributeName: 'data-theme', + parentSelector: 'body', + }), +]; diff --git a/packages/design-system/package.json b/packages/design-system/package.json index a2ddb8ab00..3aa3ee8fe3 100644 --- a/packages/design-system/package.json +++ b/packages/design-system/package.json @@ -41,11 +41,13 @@ "@vitejs/plugin-vue": "^5.0.4", "@vue/test-utils": "^2.4.3", "@vue/tsconfig": "^0.5.1", - "autoprefixer": "^10.4.14", + "autoprefixer": "^10.4.19", "core-js": "^3.31.0", "jsdom": "^23.0.1", + "postcss": "^8.4.38", "sass": "^1.64.1", - "sass-loader": "^13.3.2" + "sass-loader": "^13.3.2", + "tailwindcss": "^3.4.3" }, "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.36", diff --git a/packages/design-system/postcss.config.js b/packages/design-system/postcss.config.js index 38e0dc85ce..e873f1a4f2 100644 --- a/packages/design-system/postcss.config.js +++ b/packages/design-system/postcss.config.js @@ -1,5 +1,6 @@ module.exports = { plugins: { + tailwindcss: {}, autoprefixer: {}, }, }; diff --git a/packages/design-system/src/css/tailwind/index.css b/packages/design-system/src/css/tailwind/index.css new file mode 100644 index 0000000000..b5c61c9567 --- /dev/null +++ b/packages/design-system/src/css/tailwind/index.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/packages/design-system/tailwind.config.js b/packages/design-system/tailwind.config.js new file mode 100644 index 0000000000..ea86f82181 --- /dev/null +++ b/packages/design-system/tailwind.config.js @@ -0,0 +1,8 @@ +module.exports = { + content: ['./src/**/*.{vue,js,ts}'], + darkMode: ['selector', '[data-theme="dark"]'], + theme: { + extend: {}, + }, + plugins: [], +}; diff --git a/packages/editor-ui/postcss.config.js b/packages/editor-ui/postcss.config.js index 38e0dc85ce..e873f1a4f2 100644 --- a/packages/editor-ui/postcss.config.js +++ b/packages/editor-ui/postcss.config.js @@ -1,5 +1,6 @@ module.exports = { plugins: { + tailwindcss: {}, autoprefixer: {}, }, }; diff --git a/packages/editor-ui/src/main.ts b/packages/editor-ui/src/main.ts index 33cf110c2a..9169e4ee8a 100644 --- a/packages/editor-ui/src/main.ts +++ b/packages/editor-ui/src/main.ts @@ -3,6 +3,7 @@ import { createApp } from 'vue'; import 'vue-json-pretty/lib/styles.css'; import '@jsplumb/browser-ui/css/jsplumbtoolkit.css'; import 'n8n-design-system/css/index.scss'; +import 'n8n-design-system/css/tailwind/index.css'; import './n8n-theme.scss'; diff --git a/packages/editor-ui/tailwind.config.js b/packages/editor-ui/tailwind.config.js new file mode 100644 index 0000000000..a5fbd925d9 --- /dev/null +++ b/packages/editor-ui/tailwind.config.js @@ -0,0 +1,8 @@ +module.exports = { + content: ['./index.html', './src/**/*.{vue,js,ts}'], + darkMode: ['selector', '[data-theme="dark"]'], + theme: { + extend: {}, + }, + plugins: [], +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1226f304cf..21082a89ed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -402,6 +402,9 @@ importers: '@storybook/addon-links': specifier: ^8.0.0 version: 8.0.0(react@18.2.0) + '@storybook/addon-themes': + specifier: ^8.0.0 + version: 8.0.10 '@storybook/blocks': specifier: ^8.0.0 version: 8.0.0(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) @@ -1027,20 +1030,26 @@ importers: specifier: ^0.5.1 version: 0.5.1 autoprefixer: - specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.35) + specifier: ^10.4.19 + version: 10.4.19(postcss@8.4.38) core-js: specifier: ^3.31.0 version: 3.31.0 jsdom: specifier: ^23.0.1 version: 23.0.1 + postcss: + specifier: ^8.4.38 + version: 8.4.38 sass: specifier: ^1.64.1 version: 1.64.1 sass-loader: specifier: ^13.3.2 version: 13.3.2(sass@1.64.1)(webpack@5.75.0) + tailwindcss: + specifier: ^3.4.3 + version: 3.4.3 packages/editor-ui: dependencies: @@ -1671,6 +1680,11 @@ packages: resolution: {integrity: sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==} dev: true + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -3100,7 +3114,7 @@ packages: '@babel/compat-data': 7.22.9 '@babel/core': 7.22.9 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 7.6.0 @@ -5539,7 +5553,7 @@ packages: jest-regex-util: 29.4.3 jest-util: 29.6.2 micromatch: 4.0.5 - pirates: 4.0.5 + pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: @@ -8645,6 +8659,12 @@ packages: ts-dedent: 2.2.0 dev: true + /@storybook/addon-themes@8.0.10: + resolution: {integrity: sha512-1aRpUmTjxYMZhlQVIFHYtC5oVgrKZXRB2yQlIp39LzNwZLlH+M7EgqMDiz7/BTGAHeEQV14Yj5aPVnOKgpaKnA==} + dependencies: + ts-dedent: 2.2.0 + dev: true + /@storybook/addon-toolbars@8.0.0: resolution: {integrity: sha512-+nNe52DAs42VIJxJnsg3d3BAVf+svR9lvaf3dD/HgS9vBWtp2wIumDM6b05umnVuR/dXviSpdpy+gm/cCdIQGQ==} dev: true @@ -10573,7 +10593,7 @@ packages: '@vue/shared': 3.4.21 estree-walker: 2.0.2 magic-string: 0.30.8 - postcss: 8.4.35 + postcss: 8.4.38 source-map-js: 1.0.2 /@vue/compiler-ssr@3.4.21: @@ -11139,6 +11159,10 @@ packages: resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} dev: false + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -11414,35 +11438,19 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /autoprefixer@10.4.14(postcss@8.4.32): - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.9 - caniuse-lite: 1.0.30001517 - fraction.js: 4.2.0 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001617 + fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.32 - postcss-value-parser: 4.2.0 - dev: true - - /autoprefixer@10.4.14(postcss@8.4.35): - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.21.9 - caniuse-lite: 1.0.30001517 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true @@ -11810,16 +11818,6 @@ packages: pako: 0.2.9 dev: true - /browserslist@4.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001517 - electron-to-chromium: 1.4.475 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.9) - /browserslist@4.23.0: resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -11829,7 +11827,6 @@ packages: electron-to-chromium: 1.4.703 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - dev: true /bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} @@ -12018,6 +12015,11 @@ packages: pascal-case: 3.1.2 tslib: 2.6.2 + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -12034,16 +12036,16 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001517 + caniuse-lite: 1.0.30001597 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001517: - resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} - /caniuse-lite@1.0.30001597: resolution: {integrity: sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==} + + /caniuse-lite@1.0.30001617: + resolution: {integrity: sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==} dev: true /capital-case@1.0.4: @@ -12502,6 +12504,11 @@ packages: /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -12812,13 +12819,13 @@ packages: engines: {node: '>=4'} dev: true - /css-declaration-sorter@7.1.1(postcss@8.4.32): + /css-declaration-sorter@7.1.1(postcss@8.4.38): resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 dev: true /css-select@4.3.0: @@ -12883,62 +12890,62 @@ packages: resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} dev: false - /cssnano-preset-default@6.0.2(postcss@8.4.32): + /cssnano-preset-default@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-VnZybFeZ63AiVqIUNlxqMxpj9VU8B5j0oKgP7WyVt/7mkyf97KsYkNzsPTV/RVmy54Pg7cBhOK4WATbdCB44gw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - css-declaration-sorter: 7.1.1(postcss@8.4.32) - cssnano-utils: 4.0.1(postcss@8.4.32) - postcss: 8.4.32 - postcss-calc: 9.0.1(postcss@8.4.32) - postcss-colormin: 6.0.1(postcss@8.4.32) - postcss-convert-values: 6.0.1(postcss@8.4.32) - postcss-discard-comments: 6.0.1(postcss@8.4.32) - postcss-discard-duplicates: 6.0.1(postcss@8.4.32) - postcss-discard-empty: 6.0.1(postcss@8.4.32) - postcss-discard-overridden: 6.0.1(postcss@8.4.32) - postcss-merge-longhand: 6.0.1(postcss@8.4.32) - postcss-merge-rules: 6.0.2(postcss@8.4.32) - postcss-minify-font-values: 6.0.1(postcss@8.4.32) - postcss-minify-gradients: 6.0.1(postcss@8.4.32) - postcss-minify-params: 6.0.1(postcss@8.4.32) - postcss-minify-selectors: 6.0.1(postcss@8.4.32) - postcss-normalize-charset: 6.0.1(postcss@8.4.32) - postcss-normalize-display-values: 6.0.1(postcss@8.4.32) - postcss-normalize-positions: 6.0.1(postcss@8.4.32) - postcss-normalize-repeat-style: 6.0.1(postcss@8.4.32) - postcss-normalize-string: 6.0.1(postcss@8.4.32) - postcss-normalize-timing-functions: 6.0.1(postcss@8.4.32) - postcss-normalize-unicode: 6.0.1(postcss@8.4.32) - postcss-normalize-url: 6.0.1(postcss@8.4.32) - postcss-normalize-whitespace: 6.0.1(postcss@8.4.32) - postcss-ordered-values: 6.0.1(postcss@8.4.32) - postcss-reduce-initial: 6.0.1(postcss@8.4.32) - postcss-reduce-transforms: 6.0.1(postcss@8.4.32) - postcss-svgo: 6.0.1(postcss@8.4.32) - postcss-unique-selectors: 6.0.1(postcss@8.4.32) + css-declaration-sorter: 7.1.1(postcss@8.4.38) + cssnano-utils: 4.0.1(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 9.0.1(postcss@8.4.38) + postcss-colormin: 6.0.1(postcss@8.4.38) + postcss-convert-values: 6.0.1(postcss@8.4.38) + postcss-discard-comments: 6.0.1(postcss@8.4.38) + postcss-discard-duplicates: 6.0.1(postcss@8.4.38) + postcss-discard-empty: 6.0.1(postcss@8.4.38) + postcss-discard-overridden: 6.0.1(postcss@8.4.38) + postcss-merge-longhand: 6.0.1(postcss@8.4.38) + postcss-merge-rules: 6.0.2(postcss@8.4.38) + postcss-minify-font-values: 6.0.1(postcss@8.4.38) + postcss-minify-gradients: 6.0.1(postcss@8.4.38) + postcss-minify-params: 6.0.1(postcss@8.4.38) + postcss-minify-selectors: 6.0.1(postcss@8.4.38) + postcss-normalize-charset: 6.0.1(postcss@8.4.38) + postcss-normalize-display-values: 6.0.1(postcss@8.4.38) + postcss-normalize-positions: 6.0.1(postcss@8.4.38) + postcss-normalize-repeat-style: 6.0.1(postcss@8.4.38) + postcss-normalize-string: 6.0.1(postcss@8.4.38) + postcss-normalize-timing-functions: 6.0.1(postcss@8.4.38) + postcss-normalize-unicode: 6.0.1(postcss@8.4.38) + postcss-normalize-url: 6.0.1(postcss@8.4.38) + postcss-normalize-whitespace: 6.0.1(postcss@8.4.38) + postcss-ordered-values: 6.0.1(postcss@8.4.38) + postcss-reduce-initial: 6.0.1(postcss@8.4.38) + postcss-reduce-transforms: 6.0.1(postcss@8.4.38) + postcss-svgo: 6.0.1(postcss@8.4.38) + postcss-unique-selectors: 6.0.1(postcss@8.4.38) dev: true - /cssnano-utils@4.0.1(postcss@8.4.32): + /cssnano-utils@4.0.1(postcss@8.4.38): resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 dev: true - /cssnano@6.0.2(postcss@8.4.32): + /cssnano@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-Tu9wv8UdN6CoiQnIVkCNvi+0rw/BwFWOJBlg2bVfEyKaadSuE3Gq/DD8tniVvggTJGwK88UjqZp7zL5sv6t1aA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-preset-default: 6.0.2(postcss@8.4.32) + cssnano-preset-default: 6.0.2(postcss@8.4.38) lilconfig: 3.0.0 - postcss: 8.4.32 + postcss: 8.4.38 dev: true /csso@5.0.5: @@ -13391,6 +13398,10 @@ packages: asap: 2.0.6 wrappy: 1.0.2 + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -13412,6 +13423,10 @@ packages: dependencies: path-type: 4.0.0 + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -13592,12 +13607,8 @@ packages: dependencies: jake: 10.8.5 - /electron-to-chromium@1.4.475: - resolution: {integrity: sha512-mTye5u5P98kSJO2n7zYALhpJDmoSQejIGya0iR01GpoRady8eK3bw7YHHnjA1Rfi4ZSLdpuzlAC7Zw+1Zu7Z6A==} - /electron-to-chromium@1.4.703: resolution: {integrity: sha512-094ZZC4nHXPKl/OwPinSMtLN9+hoFkdfQGKnvXbY+3WEAYtVDpz9UhJIViiY6Zb8agvqxiaJzNG9M+pRZWvSZw==} - dev: true /element-plus@2.3.6(vue@3.4.21): resolution: {integrity: sha512-GLz0pXUYI2zRfIgyI6W7SWmHk6dSEikP9yR++hsQUyy63+WjutoiGpA3SZD4cGPSXUzRFeKfVr8CnYhK5LqXZw==} @@ -15022,8 +15033,8 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - /fraction.js@4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true /fresh@0.5.2: @@ -15316,7 +15327,7 @@ packages: hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.2 + jackspeak: 2.3.6 minimatch: 9.0.3 minipass: 7.0.2 path-scurry: 1.10.1 @@ -16433,15 +16444,6 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /jackspeak@2.2.2: - resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -18026,6 +18028,11 @@ packages: immediate: 3.0.6 dev: false + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + /lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} @@ -18788,9 +18795,9 @@ packages: typescript: optional: true dependencies: - autoprefixer: 10.4.14(postcss@8.4.32) + autoprefixer: 10.4.19(postcss@8.4.38) citty: 0.1.5 - cssnano: 6.0.2(postcss@8.4.32) + cssnano: 6.0.2(postcss@8.4.38) defu: 6.1.3 esbuild: 0.19.8 fs-extra: 11.1.1 @@ -18799,8 +18806,8 @@ packages: mlly: 1.4.2 mri: 1.2.0 pathe: 1.1.1 - postcss: 8.4.32 - postcss-nested: 6.0.1(postcss@8.4.32) + postcss: 8.4.38 + postcss-nested: 6.0.1(postcss@8.4.38) typescript: 5.4.2 dev: true @@ -19067,6 +19074,14 @@ packages: sqlstring: 2.3.3 dev: false + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + /named-placeholders@1.1.3: resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} engines: {node: '>=12.0.0'} @@ -19272,12 +19287,8 @@ packages: es6-promise: 3.3.1 dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: true /node-rsa@1.1.1: resolution: {integrity: sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==} @@ -19489,7 +19500,6 @@ packages: /object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - dev: false /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} @@ -20153,14 +20163,9 @@ packages: vue: 3.4.21(typescript@5.4.2) vue-demi: 0.14.5(vue@3.4.21) - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - dev: true /pkce-challenge@3.0.0(patch_hash=dypouzb3lve7vncq25i5fuanki): resolution: {integrity: sha512-sQ8sJJJuLhA5pFnoxayMCrFnBMNj7DDpa+TWxOXl4B24oXHlVSADi/3Bowm66QuzWkBuF6DhmaelCdlC2JKwsg==} @@ -20219,18 +20224,18 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - /postcss-calc@9.0.1(postcss@8.4.32): + /postcss-calc@9.0.1(postcss@8.4.38): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.13 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@6.0.1(postcss@8.4.32): + /postcss-colormin@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-Tb9aR2wCJCzKuNjIeMzVNd0nXjQy25HDgFmmaRsHnP0eP/k8uQWE4S8voX5S2coO5CeKrp+USFs1Ayv9Tpxx6w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -20239,69 +20244,108 @@ packages: browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@6.0.1(postcss@8.4.32): + /postcss-convert-values@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-zTd4Vh0HxGkhg5aHtfCogcRHzGkvblfdWlQ53lIh1cJhYcGyIxh2hgtKoVh40AMktRERet+JKdB04nNG19kjmA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-discard-comments@6.0.1(postcss@8.4.32): + /postcss-discard-comments@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 dev: true - /postcss-discard-duplicates@6.0.1(postcss@8.4.32): + /postcss-discard-duplicates@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 dev: true - /postcss-discard-empty@6.0.1(postcss@8.4.32): + /postcss-discard-empty@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 dev: true - /postcss-discard-overridden@6.0.1(postcss@8.4.32): + /postcss-discard-overridden@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 dev: true - /postcss-merge-longhand@6.0.1(postcss@8.4.32): + /postcss-import@15.1.0(postcss@8.4.38): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.38): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.38 + dev: true + + /postcss-load-config@4.0.2(postcss@8.4.38): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.0.0 + postcss: 8.4.38 + yaml: 2.3.4 + dev: true + + /postcss-merge-longhand@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-vmr/HZQzaPXc45FRvSctqFTF05UaDnTn5ABX+UtQPJznDWT/QaFbVc/pJ5C2YPxx2J2XcfmWowlKwtCDwiQ5hA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - stylehacks: 6.0.1(postcss@8.4.32) + stylehacks: 6.0.1(postcss@8.4.38) dev: true - /postcss-merge-rules@6.0.2(postcss@8.4.32): + /postcss-merge-rules@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-6lm8bl0UfriSfxI+F/cezrebqqP8w702UC6SjZlUlBYwuRVNbmgcJuQU7yePIvD4MNT53r/acQCUAyulrpgmeQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -20309,167 +20353,167 @@ packages: dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 - cssnano-utils: 4.0.1(postcss@8.4.32) - postcss: 8.4.32 - postcss-selector-parser: 6.0.13 + cssnano-utils: 4.0.1(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-minify-font-values@6.0.1(postcss@8.4.32): + /postcss-minify-font-values@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@6.0.1(postcss@8.4.32): + /postcss-minify-gradients@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.1(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 4.0.1(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@6.0.1(postcss@8.4.32): + /postcss-minify-params@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-eFvGWArqh4khPIgPDu6SZNcaLctx97nO7c59OXnRtGntAp5/VS4gjMhhW9qUFsK6mQ27pEZGt2kR+mPizI+Z9g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 - cssnano-utils: 4.0.1(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 4.0.1(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors@6.0.1(postcss@8.4.32): + /postcss-minify-selectors@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-mfReq5wrS6vkunxvJp6GDuOk+Ak6JV7134gp8L+ANRnV9VwqzTvBtX6lpohooVU750AR0D3pVx2Zn6uCCwOAfQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.13 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-nested@6.0.1(postcss@8.4.32): + /postcss-nested@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.13 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-normalize-charset@6.0.1(postcss@8.4.32): + /postcss-normalize-charset@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 dev: true - /postcss-normalize-display-values@6.0.1(postcss@8.4.32): + /postcss-normalize-display-values@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@6.0.1(postcss@8.4.32): + /postcss-normalize-positions@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@6.0.1(postcss@8.4.32): + /postcss-normalize-repeat-style@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@6.0.1(postcss@8.4.32): + /postcss-normalize-string@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@6.0.1(postcss@8.4.32): + /postcss-normalize-timing-functions@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@6.0.1(postcss@8.4.32): + /postcss-normalize-unicode@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-ok9DsI94nEF79MkvmLfHfn8ddnKXA7w+8YuUoz5m7b6TOdoaRCpvu/QMHXQs9+DwUbvp+ytzz04J55CPy77PuQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@6.0.1(postcss@8.4.32): + /postcss-normalize-url@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@6.0.1(postcss@8.4.32): + /postcss-normalize-whitespace@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@6.0.1(postcss@8.4.32): + /postcss-ordered-values@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-utils: 4.0.1(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 4.0.1(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-initial@6.0.1(postcss@8.4.32): + /postcss-reduce-initial@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-cgzsI2ThG1PMSdSyM9A+bVxiiVgPIVz9f5c6H+TqEv0CA89iCOO81mwLWRWLgOKFtQkKob9nNpnkxG/1RlgFcA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -20477,27 +20521,19 @@ packages: dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 - postcss: 8.4.32 + postcss: 8.4.38 dev: true - /postcss-reduce-transforms@6.0.1(postcss@8.4.32): + /postcss-reduce-transforms@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - /postcss-selector-parser@6.0.16: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} @@ -20506,25 +20542,25 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-svgo@6.0.1(postcss@8.4.32): + /postcss-svgo@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-eWV4Rrqa06LzTgqirOv5Ln6WTGyU7Pbeqj9WEyKo9tpnWixNATVJMeaEcOHOW1ZYyjcG8wSJwX/28DvU3oy3HA==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.38 postcss-value-parser: 4.2.0 svgo: 3.1.0 dev: true - /postcss-unique-selectors@6.0.1(postcss@8.4.32): + /postcss-unique-selectors@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-/KCCEpNNR7oXVJ38/Id7GC9Nt0zxO1T3zVbhVaq6F6LSG+3gU3B7+QuTHfD0v8NPEHlzewAout29S0InmB78EQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.13 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true /postcss-value-parser@4.2.0: @@ -20540,22 +20576,13 @@ packages: source-map-js: 1.0.2 dev: true - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.2.0 /postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} @@ -21169,6 +21196,12 @@ packages: loose-envify: 1.4.0 dev: true + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -21814,7 +21847,7 @@ packages: htmlparser2: 8.0.2 is-plain-object: 5.0.0 parse-srcset: 1.0.2 - postcss: 8.4.35 + postcss: 8.4.38 dev: false /sass-loader@13.3.2(sass@1.64.1)(webpack@5.75.0): @@ -22267,6 +22300,10 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + /source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: @@ -22726,21 +22763,35 @@ packages: tslib: 2.6.2 dev: true - /stylehacks@6.0.1(postcss@8.4.32): + /stylehacks@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-jTqG2aIoX2fYg0YsGvqE4ooE/e75WmaEjnNiP6Ag7irLtHxML8NJRxRxS0HyDpde8DRGuEXTFVHVfR5Tmbxqzg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 - postcss: 8.4.32 - postcss-selector-parser: 6.0.13 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true /stylis@4.3.1: resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} dev: true + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + commander: 4.1.1 + glob: 10.3.10 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + /superagent@8.1.2: resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} engines: {node: '>=6.4.0 <13 || >=14'} @@ -22862,6 +22913,37 @@ packages: resolution: {integrity: sha512-c3qKw8JzCuHt0mwrzKQr8eqOc3RB28HgOpFuwGMO3GLscVpfR+0ECevWLZq/yIJTbx3WTb3QXBFVpTFtKAPDrw==} dev: false + /tailwindcss@3.4.3: + resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.2 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-nested: 6.0.1(postcss@8.4.38) + postcss-selector-parser: 6.0.16 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + dev: true + /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -23027,6 +23109,19 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /thirty-two@1.0.2: resolution: {integrity: sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==} engines: {node: '>=0.2.6'} @@ -23228,6 +23323,10 @@ packages: zod: 3.22.4 dev: false + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + /ts-jest@29.1.1(@babel/core@7.24.0)(jest@29.6.2)(typescript@5.4.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -23815,16 +23914,6 @@ packages: - supports-color dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.9): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.9 - escalade: 3.1.1 - picocolors: 1.0.0 - /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -23834,7 +23923,6 @@ packages: browserslist: 4.23.0 escalade: 3.1.1 picocolors: 1.0.0 - dev: true /upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} @@ -24096,7 +24184,7 @@ packages: optional: true dependencies: esbuild: 0.19.8 - postcss: 8.4.35 + postcss: 8.4.38 rollup: 4.6.0 sass: 1.64.1 optionalDependencies: @@ -24915,7 +25003,6 @@ packages: /yaml@2.3.4: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} - dev: false /yamljs@0.3.0: resolution: {integrity: sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==}