diff --git a/build/generate/generateModifyVars.ts b/build/generate/generateModifyVars.ts index 6357763d..b27d33d6 100644 --- a/build/generate/generateModifyVars.ts +++ b/build/generate/generateModifyVars.ts @@ -1,36 +1,18 @@ import { resolve } from 'node:path' -import { getThemeVariables } from 'ant-design-vue/dist/theme' import { generateAntColors, primaryColor } from '../config/themeConfig' /** * less global variable */ -export function generateModifyVars(dark = false) { +export function generateModifyVars() { const palettes = generateAntColors(primaryColor) - const primary = palettes[5] const primaryColorObj: Record = {} for (let index = 0; index < 10; index++) primaryColorObj[`primary-${index + 1}`] = palettes[index] - const modifyVars = getThemeVariables({ dark }) return { - ...modifyVars, - // Used for global import to avoid the need to import each style file separately - // reference: Avoid repeated references - 'hack': `${modifyVars.hack} @import (reference) "${resolve('src/design/config.less')}";`, - 'primary-color': primary, - ...primaryColorObj, - 'info-color': primary, - 'processing-color': primary, - 'success-color': '#55D187', // Success color - 'error-color': '#ED6F6F', // False color - 'warning-color': '#EFBD47', // Warning color - // 'border-color-base': '#EEEEEE', - 'font-size-base': '14px', // Main font size - 'border-radius-base': '2px', // Component/float fillet - 'link-color': primary, // Link color - 'app-content-background': '#fafafa', // Link color + hack: `true; @import (reference) "${resolve('src/design/config.less')}";`, } } diff --git a/build/vite/plugin/index.ts b/build/vite/plugin/index.ts index 6f68764f..ebcfa24d 100644 --- a/build/vite/plugin/index.ts +++ b/build/vite/plugin/index.ts @@ -9,9 +9,7 @@ import { presetTypography, presetUno } from 'unocss' import { configPwaConfig } from './pwa' import { configHtmlPlugin } from './html' import { configCompressPlugin } from './compress' -import { configStyleImportPlugin } from './styleImport' import { configVisualizerConfig } from './visualizer' -import { configThemePlugin } from './theme' import { configSvgIconsPlugin } from './svgSprite' export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) { @@ -45,13 +43,8 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) { // rollup-plugin-visualizer vitePlugins.push(configVisualizerConfig()) - // vite-plugin-vben-theme - vitePlugins.push(configThemePlugin(isBuild)) - // The following plugins only work in the production environment if (isBuild) { - // vite-plugin-style-import - vitePlugins.push(configStyleImportPlugin(isBuild)) // rollup-plugin-gzip vitePlugins.push(configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE)) diff --git a/build/vite/plugin/styleImport.ts b/build/vite/plugin/styleImport.ts deleted file mode 100644 index ca2d39ec..00000000 --- a/build/vite/plugin/styleImport.ts +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Introduces component library styles on demand. - * https://github.com/xingyuv/vite-plugin-style-import - */ -import { createStyleImportPlugin } from 'vite-plugin-style-import' - -export function configStyleImportPlugin(_isBuild: boolean) { - if (!_isBuild) - return [] - - const styleImportPlugin = createStyleImportPlugin({ - libs: [ - { - libraryName: 'ant-design-vue', - esModule: true, - resolveStyle: (name) => { - // 这里是无需额外引入样式文件的“子组件”列表 - const ignoreList = [ - 'anchor-link', - 'sub-menu', - 'menu-item', - 'menu-divider', - 'menu-item-group', - 'breadcrumb-item', - 'breadcrumb-separator', - 'form-item', - 'step', - 'select-option', - 'select-opt-group', - 'card-grid', - 'card-meta', - 'collapse-panel', - 'descriptions-item', - 'list-item', - 'list-item-meta', - 'table-column', - 'table-column-group', - 'tab-pane', - 'tab-content', - 'timeline-item', - 'tree-node', - 'skeleton-input', - 'skeleton-avatar', - 'skeleton-title', - 'skeleton-paragraph', - 'skeleton-image', - 'skeleton-button', - ] - // 这里是需要额外引入样式的子组件列表 - // 单独引入子组件时需引入组件样式,否则会在打包后导致子组件样式丢失 - const replaceList = { - 'textarea': 'input', - 'typography-text': 'typography', - 'typography-title': 'typography', - 'typography-paragraph': 'typography', - 'typography-link': 'typography', - 'dropdown-button': 'dropdown', - 'input-password': 'input', - 'input-search': 'input', - 'input-group': 'input', - 'radio-group': 'radio', - 'checkbox-group': 'checkbox', - 'layout-sider': 'layout', - 'layout-content': 'layout', - 'layout-footer': 'layout', - 'layout-header': 'layout', - 'month-picker': 'date-picker', - 'range-picker': 'date-picker', - 'image-preview-group': 'image', - } - - return ignoreList.includes(name) - ? '' - : replaceList.hasOwnProperty(name) - ? `ant-design-vue/es/${replaceList[name]}/style/index` - : `ant-design-vue/es/${name}/style/index` - }, - }, - ], - }) - return styleImportPlugin -} diff --git a/build/vite/plugin/theme.ts b/build/vite/plugin/theme.ts deleted file mode 100644 index 9eef9fb7..00000000 --- a/build/vite/plugin/theme.ts +++ /dev/null @@ -1,83 +0,0 @@ -/** - * Vite plugin for website theme color switching - * https://github.com/xingyuv/vite-vue-plugin-theme - */ -import path from 'node:path' -import type { PluginOption } from 'vite' -import { antdDarkThemePlugin, mixDarken, mixLighten, tinycolor, viteThemePlugin } from 'vite-vue-plugin-theme' -import { generateColors, getThemeColors } from '../../config/themeConfig' -import { generateModifyVars } from '../../generate/generateModifyVars' - -export function configThemePlugin(isBuild: boolean): PluginOption[] { - const colors = generateColors({ - mixDarken, - mixLighten, - tinycolor, - }) - const plugin = [ - viteThemePlugin({ - resolveSelector: (s) => { - s = s.trim() - switch (s) { - case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': - return '.ant-steps-item-icon > .ant-steps-icon' - case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)': - case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover': - case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active': - return s - case '.ant-steps-item-icon > .ant-steps-icon': - return s - case '.ant-select-item-option-selected:not(.ant-select-item-option-disabled)': - return s - default: - if (s.indexOf('.ant-btn') >= -1) { - // 按钮被重新定制过,需要过滤掉class防止覆盖 - return s - } - } - return s.startsWith('[data-theme') ? s : `[data-theme] ${s}` - }, - colorVariables: [...getThemeColors(), ...colors], - }), - antdDarkThemePlugin({ - preloadFiles: [ - path.resolve(process.cwd(), 'node_modules/ant-design-vue/dist/antd.less'), - // path.resolve(process.cwd(), 'node_modules/ant-design-vue/dist/antd.dark.less'), - path.resolve(process.cwd(), 'src/design/index.less'), - ], - filter: id => (isBuild ? !id.endsWith('antd.less') : true), - // extractCss: false, - darkModifyVars: { - ...generateModifyVars(true), - 'text-color': '#c9d1d9', - 'primary-1': 'rgb(255 255 255 / 8%)', - 'text-color-base': '#c9d1d9', - 'component-background': '#151515', - 'heading-color': 'rgb(255 255 255 / 65%)', - // black: '#0e1117', - // #8b949e - 'text-color-secondary': '#8b949e', - 'border-color-base': '#303030', - // 'border-color-split': '#30363d', - 'item-active-bg': '#111b26', - 'app-content-background': '#1e1e1e', - 'tree-node-selected-bg': '#11263c', - - 'alert-success-border-color': '#274916', - 'alert-success-bg-color': '#162312', - 'alert-success-icon-color': '#49aa19', - 'alert-info-border-color': '#153450', - 'alert-info-bg-color': '#111b26', - 'alert-info-icon-color': '#177ddc', - 'alert-warning-border-color': '#594214', - 'alert-warning-bg-color': '#2b2111', - 'alert-warning-icon-color': '#d89614', - 'alert-error-border-color': '#58181c', - 'alert-error-bg-color': '#2a1215', - 'alert-error-icon-color': '#a61d24', - }, - }), - ] - - return plugin as unknown as PluginOption[] -} diff --git a/package.json b/package.json index 0b918f56..9b4b6a70 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@vue/runtime-core": "^3.3.4", "@vueuse/core": "^10.2.1", "@zxcvbn-ts/core": "^3.0.3", - "ant-design-vue": "^3.2.20", + "ant-design-vue": "^4.0.0", "axios": "^1.4.0", "codemirror": "^5.65.3", "cron-parser": "^4.8.1", @@ -135,10 +135,8 @@ "vite-plugin-progress": "^0.0.7", "vite-plugin-purge-icons": "^0.9.2", "vite-plugin-pwa": "^0.16.4", - "vite-plugin-style-import": "^2.0.0", "vite-plugin-svg-icons": "^2.0.1", "vite-vue-plugin-html": "^1.0.2", - "vite-vue-plugin-theme": "^1.0.2", "vue-eslint-parser": "^9.3.1", "vue-tsc": "^1.8.8" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 84f7961d..277614c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ dependencies: specifier: ^3.0.3 version: 3.0.3 ant-design-vue: - specifier: ^3.2.20 - version: 3.2.20(vue@3.3.4) + specifier: ^4.0.0 + version: 4.0.0(vue@3.3.4) axios: specifier: ^1.4.0 version: 1.4.0(debug@4.3.4) @@ -268,18 +268,12 @@ devDependencies: vite-plugin-pwa: specifier: ^0.16.4 version: 0.16.4(vite@4.4.7)(workbox-build@7.0.0)(workbox-window@7.0.0) - vite-plugin-style-import: - specifier: ^2.0.0 - version: 2.0.0(vite@4.4.7) vite-plugin-svg-icons: specifier: ^2.0.1 version: 2.0.1(vite@4.4.7) vite-vue-plugin-html: specifier: ^1.0.2 version: 1.0.2(rollup@3.27.0)(vite@4.4.7) - vite-vue-plugin-theme: - specifier: ^1.0.2 - version: 1.0.2(vite@4.4.7) vue-eslint-parser: specifier: ^9.3.1 version: 9.3.1(eslint@8.46.0) @@ -1845,6 +1839,14 @@ packages: engines: {node: '>=10'} dev: false + /@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + dev: false + + /@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + dev: false + /@esbuild-kit/cjs-loader@2.4.2: resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} dependencies: @@ -2691,14 +2693,6 @@ packages: rollup: 2.79.1 dev: true - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@rollup/pluginutils@5.0.2(rollup@3.27.0): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} @@ -2871,10 +2865,6 @@ packages: '@types/node': 20.4.5 dev: true - /@types/tinycolor2@1.4.3: - resolution: {integrity: sha512-Kf1w9NE5HEgGxCRyIcRXR/ZYtDv0V8FVPtYHwLxl0O+maGX0erE77pQlD0gpP+/KByMZ87mOA79SjifhSB3PjQ==} - dev: true - /@types/trusted-types@2.0.3: resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} dev: true @@ -3574,8 +3564,8 @@ packages: engines: {node: '>=12'} dev: true - /ant-design-vue@3.2.20(vue@3.3.4): - resolution: {integrity: sha512-YWpMfGaGoRastIXEYfCoJiaRiDHk4chqtYhlKQM5GqPt6NfvrM1Vg2e60yHtjxlZjed91wCMm0rAmyUr7Hwzdg==} + /ant-design-vue@4.0.0(vue@3.3.4): + resolution: {integrity: sha512-6V8DxHPv3HJYDdv48W/KFOUjeZDsYJhFlk13HFSKCJSR2MQs4YnPIAC+rWie9vYcVEKbO+cQDqiOM3cBoHMNUQ==} engines: {node: '>=12.22.0'} peerDependencies: vue: '>=3.2.0' @@ -3584,9 +3574,12 @@ packages: '@ant-design/icons-vue': 6.1.0(vue@3.3.4) '@babel/runtime': 7.21.0 '@ctrl/tinycolor': 3.6.0 + '@emotion/hash': 0.9.1 + '@emotion/unitless': 0.8.1 '@simonwep/pickr': 1.8.2 array-tree-filter: 2.1.0 async-validator: 4.2.5 + csstype: 3.1.2 dayjs: 1.11.9 dom-align: 1.12.4 dom-scroll-into-view: 2.0.1 @@ -3595,6 +3588,8 @@ packages: resize-observer-polyfill: 1.5.1 scroll-into-view-if-needed: 2.2.31 shallow-equal: 1.2.1 + stylis: 4.3.0 + throttle-debounce: 5.0.0 vue: 3.3.4 vue-types: 3.0.2(vue@3.3.4) warning: 4.0.3 @@ -3946,14 +3941,6 @@ packages: resolution: {integrity: sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg==} dev: true - /capital-case@1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.0 - upper-case-first: 2.0.2 - dev: true - /cfb@1.2.2: resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} engines: {node: '>=0.8'} @@ -4000,23 +3987,6 @@ packages: engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true - /change-case@4.1.2: - resolution: {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.5.0 - dev: true - /character-entities-legacy@1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} dev: true @@ -4244,18 +4214,6 @@ packages: engines: {node: ^14.18.0 || >=16.10.0} dev: true - /console@0.7.2: - resolution: {integrity: sha512-+JSDwGunA4MTEgAV/4VBKwUHonP8CzJ/6GIuwPi6acKFqFfHUdSGCm89ZxZ5FfGWdZfkdgAroy5bJ5FSeN/t4g==} - dev: true - - /constant-case@3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.0 - upper-case: 2.0.2 - dev: true - /conventional-changelog-angular@5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} @@ -4859,10 +4817,6 @@ packages: which-typed-array: 1.1.9 dev: true - /es-module-lexer@0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - dev: true - /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -4881,10 +4835,6 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-plugin-alias@0.2.1: - resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} - dev: true - /esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} @@ -5936,13 +5886,6 @@ packages: hasBin: true dev: true - /header-case@2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - dependencies: - capital-case: 1.0.4 - tslib: 2.6.0 - dev: true - /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -7476,13 +7419,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /path-case@3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.6.0 - dev: true - /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -8209,14 +8145,6 @@ packages: lru-cache: 6.0.0 dev: true - /sentence-case@3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.0 - upper-case-first: 2.0.2 - dev: true - /serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} dependencies: @@ -8309,13 +8237,6 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.6.0 - dev: true - /snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} engines: {node: '>=0.10.0'} @@ -8726,6 +8647,10 @@ packages: - supports-color dev: true + /stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} + dev: false + /supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} engines: {node: '>=0.8.0'} @@ -8849,6 +8774,11 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} + engines: {node: '>=12.22'} + dev: false + /through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: @@ -8859,10 +8789,6 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - dev: true - /tinymce@5.10.7: resolution: {integrity: sha512-9UUjaO0R7FxcFo0oxnd1lMs7H+D0Eh+dDVo5hKbVe1a+VB0nit97vOqlinj+YwgoBDt6/DSCUoWqAYlLI8BLYA==} dev: false @@ -9207,18 +9133,6 @@ packages: picocolors: 1.0.0 dev: true - /upper-case-first@2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} - dependencies: - tslib: 2.6.0 - dev: true - - /upper-case@2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} - dependencies: - tslib: 2.6.0 - dev: true - /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -9335,21 +9249,6 @@ packages: - supports-color dev: true - /vite-plugin-style-import@2.0.0(vite@4.4.7): - resolution: {integrity: sha512-qtoHQae5dSUQPo/rYz/8p190VU5y19rtBaeV7ryLa/AYAU/e9CG89NrN/3+k7MR8mJy/GPIu91iJ3zk9foUOSA==} - peerDependencies: - vite: '>=2.0.0' - dependencies: - '@rollup/pluginutils': 4.2.1 - change-case: 4.1.2 - console: 0.7.2 - es-module-lexer: 0.9.3 - fs-extra: 10.1.0 - magic-string: 0.25.9 - pathe: 0.2.0 - vite: 4.4.7(@types/node@20.4.5)(less@4.1.3)(terser@5.19.2) - dev: true - /vite-plugin-svg-icons@2.0.1(vite@4.4.7): resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} peerDependencies: @@ -9390,24 +9289,6 @@ packages: - rollup dev: true - /vite-vue-plugin-theme@1.0.2(vite@4.4.7): - resolution: {integrity: sha512-zaB0hfdz1VyFncNoJ/6Y8PqThqBm4zhCidc/qdV5/XgsGCm/6HMNRFmnjvHHkBL7VK687bFQSaxEB+cXerfKwA==} - peerDependencies: - vite: '>=4.3.0' - dependencies: - '@types/node': 20.4.5 - '@types/tinycolor2': 1.4.3 - clean-css: 5.3.2 - debug: 4.3.4 - esbuild: 0.17.19 - esbuild-plugin-alias: 0.2.1 - picocolors: 1.0.0 - tinycolor2: 1.6.0 - vite: 4.4.7(@types/node@20.4.5)(less@4.1.3)(terser@5.19.2) - transitivePeerDependencies: - - supports-color - dev: true - /vite@4.4.7(@types/node@20.4.5)(less@4.1.3)(terser@5.19.2): resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} engines: {node: ^14.18.0 || >=16.0.0} diff --git a/src/App.vue b/src/App.vue index e9c1d841..7fb1ec10 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,26 +1,24 @@