From f8d69f35f0313d1ec4bdc530947ff45e5836a8ec Mon Sep 17 00:00:00 2001 From: Hooray Hu <304327508@qq.com> Date: Fri, 22 Dec 2023 16:44:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0stylelint=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .lintstagedrc | 4 +- .stylelintignore | 4 - .stylelintrc | 45 -- package.json | 19 +- pnpm-lock.yaml | 491 +++++++----------- public/browser_upgrade/index.css | 16 +- public/loading.css | 30 +- src/assets/styles/globals.scss | 8 +- src/assets/styles/nprogress.scss | 16 +- src/assets/styles/resources/utils.scss | 4 +- src/components/ImagePreview/index.vue | 8 +- src/components/ImageUpload/index.vue | 18 +- src/components/ImagesUpload/index.vue | 18 +- src/layouts/components/BuyIt/index.vue | 20 +- src/layouts/components/Header/index.vue | 22 +- src/layouts/components/MainSidebar/index.vue | 4 +- src/layouts/components/SubSidebar/index.vue | 6 +- .../components/Topbar/Toolbar/index.vue | 2 +- src/layouts/components/Topbar/index.vue | 2 +- src/layouts/components/views/link.vue | 4 +- src/layouts/index.vue | 26 +- .../components/icon.vue | 2 +- .../feature_example/table.autoheight.vue | 8 +- src/views/icon_example/iconify.vue | 2 +- src/views/index.vue | 4 +- src/views/login.vue | 30 +- src/views/personal/setting.vue | 2 +- src/views/plugin_example/splitpanes.vue | 4 +- src/views/plugin_example/swiper.vue | 8 +- src/views/plugin_example/tinymce.vue | 2 +- stylelint.config.js | 118 +++++ 31 files changed, 447 insertions(+), 500 deletions(-) delete mode 100755 .stylelintignore delete mode 100755 .stylelintrc create mode 100644 stylelint.config.js diff --git a/.lintstagedrc b/.lintstagedrc index 66075ec9..f256a765 100755 --- a/.lintstagedrc +++ b/.lintstagedrc @@ -1,4 +1,4 @@ { - "*.{ts,tsx,vue}": "eslint . --cache --fix", - "*.{css,scss,vue}": "stylelint src/**/*.{css,scss,vue} --cache --fix --allow-empty-input" + "*.{ts,tsx,vue}": "eslint --cache --fix", + "*.{css,scss,vue}": "stylelint --cache --fix" } diff --git a/.stylelintignore b/.stylelintignore deleted file mode 100755 index 138aa4c0..00000000 --- a/.stylelintignore +++ /dev/null @@ -1,4 +0,0 @@ -dist -node_modules -src/assets/sprites -public/tinymce diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100755 index 5fd0012a..00000000 --- a/.stylelintrc +++ /dev/null @@ -1,45 +0,0 @@ -{ - "extends": [ - "stylelint-stylistic/config", - "stylelint-config-standard-scss", - "stylelint-config-standard-vue/scss" - ], - "plugins": [ - "stylelint-scss" - ], - "rules": { - "stylistic/max-line-length": null, - "stylistic/block-closing-brace-newline-after": [ - "always", - { - "ignoreAtRules": ["if", "else"] - } - ], - "at-rule-no-unknown": null, - "no-descending-specificity": null, - "property-no-unknown": null, - "font-family-no-missing-generic-family-keyword": null, - "selector-class-pattern": null, - "function-no-unknown": [ - true, - { - "ignoreFunctions": [ - "v-bind", - "map-get", - "lighten", - "darken" - ] - } - ], - "selector-pseudo-element-no-unknown": [ - true, - { - "ignorePseudoElements": [ - "/^view-transition/" - ] - } - ], - "scss/double-slash-comment-empty-line-before": null, - "scss/no-global-function-names": null - } -} diff --git a/package.json b/package.json index 0fdb7b76..b4072b94 100755 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "lint": "npm-run-all -s lint:tsc lint:eslint lint:stylelint", "lint:tsc": "vue-tsc", "lint:eslint": "eslint . --cache --fix", - "lint:stylelint": "stylelint src/**/*.{css,scss,vue} --cache --fix --allow-empty-input", + "lint:stylelint": "stylelint \"src/**/*.{css,scss,vue}\" --cache --fix", "postinstall": "simple-git-hooks", "preinstall": "npx only-allow pnpm" }, @@ -54,18 +54,19 @@ "vue-m-message": "^4.0.2", "vue-router": "^4.2.5", "vue3-count-to": "^1.1.2", - "vxe-table": "^4.5.15", + "vxe-table": "^4.5.16", "xe-utils": "^3.5.14" }, "devDependencies": { "@antfu/eslint-config": "2.4.6", - "@iconify/json": "^2.2.160", + "@iconify/json": "^2.2.161", "@iconify/vue": "^4.1.1", + "@stylistic/stylelint-plugin": "^2.0.0", "@types/lodash-es": "^4.17.12", "@types/nprogress": "^0.2.3", "@types/path-browserify": "^1.0.2", "@types/qrcode": "^1.5.5", - "@types/qs": "^6.9.10", + "@types/qs": "^6.9.11", "@types/splitpanes": "^2.2.6", "@unocss/eslint-plugin": "^0.58.0", "@vitejs/plugin-legacy": "^5.2.0", @@ -82,11 +83,11 @@ "plop": "^4.0.0", "sass": "^1.69.5", "simple-git-hooks": "^2.9.0", - "stylelint": "^15.11.0", - "stylelint-config-standard-scss": "^11.1.0", + "stylelint": "^16.0.2", + "stylelint-config-recess-order": "^4.4.0", + "stylelint-config-standard-scss": "^12.0.0", "stylelint-config-standard-vue": "^1.0.0", - "stylelint-scss": "^5.3.1", - "stylelint-stylistic": "^0.4.3", + "stylelint-scss": "^6.0.0", "svgo": "^3.1.0", "terser": "^5.26.0", "typescript": "^5.3.3", @@ -101,7 +102,7 @@ "vite-plugin-svg-icons": "^2.0.1", "vite-plugin-vue-inspector": "^4.0.2", "vite-plugin-vue-meta-layouts": "^0.3.4", - "vue-tsc": "^1.8.25" + "vue-tsc": "^1.8.26" }, "simple-git-hooks": { "pre-commit": "pnpm lint-staged", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f3cab90f..c5f750dd 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -123,8 +123,8 @@ dependencies: specifier: ^1.1.2 version: 1.1.2(vue@3.3.13) vxe-table: - specifier: ^4.5.15 - version: 4.5.15(vue@3.3.13)(xe-utils@3.5.14) + specifier: ^4.5.16 + version: 4.5.16(vue@3.3.13)(xe-utils@3.5.14) xe-utils: specifier: ^3.5.14 version: 3.5.14 @@ -134,11 +134,14 @@ devDependencies: specifier: 2.4.6 version: 2.4.6(@unocss/eslint-plugin@0.58.0)(@vue/compiler-sfc@3.3.13)(eslint@8.56.0)(typescript@5.3.3) '@iconify/json': - specifier: ^2.2.160 - version: 2.2.160 + specifier: ^2.2.161 + version: 2.2.161 '@iconify/vue': specifier: ^4.1.1 version: 4.1.1(vue@3.3.13) + '@stylistic/stylelint-plugin': + specifier: ^2.0.0 + version: 2.0.0(stylelint@16.0.2) '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 @@ -152,8 +155,8 @@ devDependencies: specifier: ^1.5.5 version: 1.5.5 '@types/qs': - specifier: ^6.9.10 - version: 6.9.10 + specifier: ^6.9.11 + version: 6.9.11 '@types/splitpanes': specifier: ^2.2.6 version: 2.2.6 @@ -203,20 +206,20 @@ devDependencies: specifier: ^2.9.0 version: 2.9.0 stylelint: - specifier: ^15.11.0 - version: 15.11.0(typescript@5.3.3) + specifier: ^16.0.2 + version: 16.0.2(typescript@5.3.3) + stylelint-config-recess-order: + specifier: ^4.4.0 + version: 4.4.0(stylelint@16.0.2) stylelint-config-standard-scss: - specifier: ^11.1.0 - version: 11.1.0(postcss@8.4.32)(stylelint@15.11.0) + specifier: ^12.0.0 + version: 12.0.0(postcss@8.4.32)(stylelint@16.0.2) stylelint-config-standard-vue: specifier: ^1.0.0 - version: 1.0.0(postcss-html@1.5.0)(stylelint@15.11.0) + version: 1.0.0(postcss-html@1.5.0)(stylelint@16.0.2) stylelint-scss: - specifier: ^5.3.1 - version: 5.3.1(stylelint@15.11.0) - stylelint-stylistic: - specifier: ^0.4.3 - version: 0.4.3(stylelint@15.11.0) + specifier: ^6.0.0 + version: 6.0.0(stylelint@16.0.2) svgo: specifier: ^3.1.0 version: 3.1.0 @@ -260,8 +263,8 @@ devDependencies: specifier: ^0.3.4 version: 0.3.4(vite@5.0.10)(vue-router@4.2.5) vue-tsc: - specifier: ^1.8.25 - version: 1.8.25(typescript@5.3.3) + specifier: ^1.8.26 + version: 1.8.26(typescript@5.3.3) packages: @@ -2178,33 +2181,33 @@ packages: - supports-color dev: false - /@csstools/css-parser-algorithms@2.3.2(@csstools/css-tokenizer@2.2.1): - resolution: {integrity: sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==} + /@csstools/css-parser-algorithms@2.4.0(@csstools/css-tokenizer@2.2.2): + resolution: {integrity: sha512-/PPLr2g5PAUCKAPEbfyk6/baZA+WJHQtUhPkoCQMpyRE8I0lXrG1QFRN8e5s3ZYxM8d/g5BZc6lH3s8Op7/VEg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.2.1 + '@csstools/css-tokenizer': ^2.2.2 dependencies: - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-tokenizer': 2.2.2 dev: true - /@csstools/css-tokenizer@2.2.1: - resolution: {integrity: sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==} + /@csstools/css-tokenizer@2.2.2: + resolution: {integrity: sha512-wCDUe/MAw7npAHFLyW3QjSyLA66S5QFaV1jIXlNQvdJ8RzXDSgALa49eWcUO6P55ARQaz0TsDdAgdRgkXFYY8g==} engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/media-query-list-parser@2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): - resolution: {integrity: sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==} + /@csstools/media-query-list-parser@2.1.6(@csstools/css-parser-algorithms@2.4.0)(@csstools/css-tokenizer@2.2.2): + resolution: {integrity: sha512-R6AKl9vaU0It7D7TR2lQn0pre5aQfdeqHRePlaRCY8rHL3l9eVlNRpsEVDKFi/zAjzv68CxH2M5kqbhPFPKjvw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.3.2 - '@csstools/css-tokenizer': ^2.2.1 + '@csstools/css-parser-algorithms': ^2.4.0 + '@csstools/css-tokenizer': ^2.2.2 dependencies: - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 + '@csstools/css-parser-algorithms': 2.4.0(@csstools/css-tokenizer@2.2.2) + '@csstools/css-tokenizer': 2.2.2 dev: true - /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13): - resolution: {integrity: sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==} + /@csstools/selector-specificity@3.0.1(postcss-selector-parser@6.0.13): + resolution: {integrity: sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 @@ -2744,8 +2747,8 @@ packages: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true - /@iconify/json@2.2.160: - resolution: {integrity: sha512-mjVikrD2ohux47NDrG22qzVBIf0BGS3W4HUZO3d+dnk7Sk3AYrmWVsGiMW6aoSGrBMIKAXpkLqCqgu57eu1oIw==} + /@iconify/json@2.2.161: + resolution: {integrity: sha512-yxkCLeZdzHFjfhH1BRmyMU5DEUnbTsiuSpgcd/DxKM8eMzUab/CbfxAVSqiNIrSeXhe4RUsws767wfTKhblTSw==} dependencies: '@iconify/types': 2.0.0 pathe: 1.1.1 @@ -3057,6 +3060,22 @@ packages: - typescript dev: true + /@stylistic/stylelint-plugin@2.0.0(stylelint@16.0.2): + resolution: {integrity: sha512-dHKuT6PGd1WGZLOTuozAM7GdQzdmlmnFXYzvV1jYJXXpcCpV/OJ3+n8TXpMkoOeKHpJydY43EOoZTO1W/FOA4Q==} + engines: {node: ^18.12 || >=20.9} + peerDependencies: + stylelint: ^16.0.2 + dependencies: + '@csstools/css-parser-algorithms': 2.4.0(@csstools/css-tokenizer@2.2.2) + '@csstools/css-tokenizer': 2.2.2 + '@csstools/media-query-list-parser': 2.1.6(@csstools/css-parser-algorithms@2.4.0)(@csstools/css-tokenizer@2.2.2) + is-plain-object: 5.0.0 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + style-search: 0.1.0 + stylelint: 16.0.2(typescript@5.3.3) + dev: true + /@sxzz/popperjs-es@2.11.7: resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} dev: false @@ -3153,10 +3172,6 @@ packages: '@types/unist': 2.0.10 dev: true - /@types/minimist@1.2.4: - resolution: {integrity: sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==} - dev: true - /@types/mockjs@1.0.7: resolution: {integrity: sha512-OCxXz6hEaJOVpRwuJMiVY5a6LtJcih+br9gwB/Q8ooOBikvk5FpBQ31OlNimXo3EqKha1Z7PFBni+q9m+8NCWg==} dev: true @@ -3183,10 +3198,6 @@ packages: undici-types: 5.26.5 dev: true - /@types/normalize-package-data@2.4.3: - resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} - dev: true - /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true @@ -3209,8 +3220,8 @@ packages: '@types/node': 20.9.0 dev: true - /@types/qs@6.9.10: - resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} + /@types/qs@6.9.11: + resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} dev: true /@types/semver@7.5.6: @@ -3857,8 +3868,8 @@ packages: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} dev: false - /@vue/language-core@1.8.25(typescript@5.3.3): - resolution: {integrity: sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==} + /@vue/language-core@1.8.26(typescript@5.3.3): + resolution: {integrity: sha512-9cmza/Y2YTiOnKZ0Mi9zsNn7Irw+aKirP+5LLWVSNaL3fjKJjW1cD3HGBckasY2RuVh4YycvdA9/Q6EBpVd/7Q==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3867,8 +3878,8 @@ packages: dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.3.10 - '@vue/shared': 3.3.10 + '@vue/compiler-dom': 3.3.13 + '@vue/shared': 3.3.13 computeds: 0.0.1 minimatch: 9.0.3 muggle-string: 0.3.1 @@ -4184,11 +4195,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true - /assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} @@ -4532,16 +4538,6 @@ packages: tslib: 2.6.2 dev: true - /camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} - dependencies: - camelcase: 6.3.0 - map-obj: 4.3.0 - quick-lru: 5.1.1 - type-fest: 1.4.0 - dev: true - /camelcase@1.2.1: resolution: {integrity: sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==} engines: {node: '>=0.10.0'} @@ -4943,8 +4939,8 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /cosmiconfig@8.3.6(typescript@5.3.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + /cosmiconfig@9.0.0(typescript@5.3.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -4952,10 +4948,10 @@ packages: typescript: optional: true dependencies: + env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - path-type: 4.0.0 typescript: 5.3.3 dev: true @@ -5128,22 +5124,10 @@ packages: dependencies: ms: 2.1.2 - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - - /decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - dev: true + dev: false /decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -5527,6 +5511,11 @@ packages: engines: {node: '>=0.12'} dev: true + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: true + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -6596,11 +6585,11 @@ packages: flat-cache: 3.2.0 dev: true - /file-entry-cache@7.0.1: - resolution: {integrity: sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==} + /file-entry-cache@7.0.2: + resolution: {integrity: sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==} engines: {node: '>=12.0.0'} dependencies: - flat-cache: 3.1.1 + flat-cache: 3.2.0 dev: true /fill-range@4.0.0: @@ -6676,15 +6665,6 @@ packages: engines: {node: '>= 10.13.0'} dev: true - /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} - dependencies: - flatted: 3.2.9 - keyv: 4.5.4 - rimraf: 3.0.2 - dev: true - /flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -7028,11 +7008,6 @@ packages: uglify-js: 3.17.4 dev: true - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - /has-ansi@2.0.0: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} @@ -7230,13 +7205,6 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - /hotkeys-js@3.13.3: resolution: {integrity: sha512-IEiMBNRJZMhWyNDsvww8LYC8vZYyj2/w2GgXPg0ljq/K3SYvOJH6NRMqzF7z2Fwaq2AzKSvmvECREzFleKSeow==} dev: false @@ -7372,11 +7340,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: true - /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -8235,16 +8198,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true - /map-visit@1.0.0: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} @@ -8447,22 +8400,9 @@ packages: engines: {node: '>= 0.10.0'} dev: true - /meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - '@types/minimist': 1.2.4 - camelcase-keys: 7.0.2 - decamelize: 5.0.1 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 8.0.0 - redent: 4.0.0 - trim-newlines: 4.1.1 - type-fest: 1.4.0 - yargs-parser: 20.2.9 + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} dev: true /merge-options@1.0.1: @@ -8813,15 +8753,6 @@ packages: brace-expansion: 2.0.1 dev: true - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - /minimist@1.2.7: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} dev: true @@ -8903,12 +8834,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -8992,16 +8917,6 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -9557,15 +9472,6 @@ packages: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 - dependencies: - postcss: 8.4.31 - dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.32): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} @@ -9575,6 +9481,15 @@ packages: postcss: 8.4.32 dev: true + /postcss-safe-parser@7.0.0(postcss@8.4.32): + resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.32 + dev: true + /postcss-scss@4.0.9(postcss@8.4.32): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} @@ -9592,6 +9507,14 @@ packages: util-deprecate: 1.0.2 dev: true + /postcss-sorting@8.0.2(postcss@8.4.32): + resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} + peerDependencies: + postcss: ^8.4.20 + dependencies: + postcss: 8.4.32 + dev: true + /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true @@ -9606,24 +9529,6 @@ packages: supports-color: 3.2.3 dev: true - /postcss@8.4.26: - resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /postcss@8.4.32: resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} @@ -9726,11 +9631,6 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -9740,15 +9640,6 @@ packages: type-fest: 0.8.1 dev: true - /read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} - dependencies: - find-up: 5.0.0 - read-pkg: 6.0.0 - type-fest: 1.4.0 - dev: true - /read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} @@ -9768,16 +9659,6 @@ packages: type-fest: 0.6.0 dev: true - /read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} - dependencies: - '@types/normalize-package-data': 2.4.3 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 1.4.0 - dev: true - /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -9801,14 +9682,6 @@ packages: resolve: 1.22.6 dev: true - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} - dependencies: - indent-string: 5.0.0 - strip-indent: 4.0.0 - dev: true - /regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} @@ -10642,13 +10515,6 @@ packages: min-indent: 1.0.1 dev: true - /strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} - dependencies: - min-indent: 1.0.1 - dev: true - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -10664,7 +10530,7 @@ packages: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} dev: true - /stylelint-config-html@1.1.0(postcss-html@1.5.0)(stylelint@15.11.0): + /stylelint-config-html@1.1.0(postcss-html@1.5.0)(stylelint@16.0.2): resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} engines: {node: ^12 || >=14} peerDependencies: @@ -10672,26 +10538,36 @@ packages: stylelint: '>=14.0.0' dependencies: postcss-html: 1.5.0 - stylelint: 15.11.0(typescript@5.3.3) + stylelint: 16.0.2(typescript@5.3.3) dev: true - /stylelint-config-recommended-scss@13.1.0(postcss@8.4.32)(stylelint@15.11.0): - resolution: {integrity: sha512-8L5nDfd+YH6AOoBGKmhH8pLWF1dpfY816JtGMePcBqqSsLU+Ysawx44fQSlMOJ2xTfI9yTGpup5JU77c17w1Ww==} + /stylelint-config-recess-order@4.4.0(stylelint@16.0.2): + resolution: {integrity: sha512-Q99kvZyIM/aoPEV4dRDkzD3fZLzH0LXi+pawCf1r700uUeF/PHQ5PZXjwFUuGrWhOzd1N+cuVm+OUGsY2fRN5A==} + peerDependencies: + stylelint: '>=15' + dependencies: + stylelint: 16.0.2(typescript@5.3.3) + stylelint-order: 6.0.4(stylelint@16.0.2) + dev: true + + /stylelint-config-recommended-scss@14.0.0(postcss@8.4.32)(stylelint@16.0.2): + resolution: {integrity: sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw==} + engines: {node: '>=18.12.0'} peerDependencies: postcss: ^8.3.3 - stylelint: ^15.10.0 + stylelint: ^16.0.2 peerDependenciesMeta: postcss: optional: true dependencies: postcss: 8.4.32 postcss-scss: 4.0.9(postcss@8.4.32) - stylelint: 15.11.0(typescript@5.3.3) - stylelint-config-recommended: 13.0.0(stylelint@15.11.0) - stylelint-scss: 5.3.1(stylelint@15.11.0) + stylelint: 16.0.2(typescript@5.3.3) + stylelint-config-recommended: 14.0.0(stylelint@16.0.2) + stylelint-scss: 6.0.0(stylelint@16.0.2) dev: true - /stylelint-config-recommended-vue@1.4.0(postcss-html@1.5.0)(stylelint@15.11.0): + /stylelint-config-recommended-vue@1.4.0(postcss-html@1.5.0)(stylelint@16.0.2): resolution: {integrity: sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==} engines: {node: ^12 || >=14} peerDependencies: @@ -10700,36 +10576,46 @@ packages: dependencies: postcss-html: 1.5.0 semver: 7.5.4 - stylelint: 15.11.0(typescript@5.3.3) - stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@15.11.0) - stylelint-config-recommended: 13.0.0(stylelint@15.11.0) + stylelint: 16.0.2(typescript@5.3.3) + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@16.0.2) + stylelint-config-recommended: 13.0.0(stylelint@16.0.2) dev: true - /stylelint-config-recommended@13.0.0(stylelint@15.11.0): + /stylelint-config-recommended@13.0.0(stylelint@16.0.2): resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==} engines: {node: ^14.13.1 || >=16.0.0} peerDependencies: stylelint: ^15.10.0 dependencies: - stylelint: 15.11.0(typescript@5.3.3) + stylelint: 16.0.2(typescript@5.3.3) dev: true - /stylelint-config-standard-scss@11.1.0(postcss@8.4.32)(stylelint@15.11.0): - resolution: {integrity: sha512-5gnBgeNTgRVdchMwiFQPuBOtj9QefYtfXiddrOMJA2pI22zxt6ddI2s+e5Oh7/6QYl7QLJujGnaUR5YyGq72ow==} + /stylelint-config-recommended@14.0.0(stylelint@16.0.2): + resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.0 + dependencies: + stylelint: 16.0.2(typescript@5.3.3) + dev: true + + /stylelint-config-standard-scss@12.0.0(postcss@8.4.32)(stylelint@16.0.2): + resolution: {integrity: sha512-ATh3EcEOLZq0iwlFaBdIsSavrla0lNtJ7mO7hdE7DgVT6imozRggFSqd4cFcjzVnOLKv/uJT63MmqA1acIflbw==} + engines: {node: '>=18.12.0'} peerDependencies: postcss: ^8.3.3 - stylelint: ^15.10.0 + stylelint: ^16.0.2 peerDependenciesMeta: postcss: optional: true dependencies: postcss: 8.4.32 - stylelint: 15.11.0(typescript@5.3.3) - stylelint-config-recommended-scss: 13.1.0(postcss@8.4.32)(stylelint@15.11.0) - stylelint-config-standard: 34.0.0(stylelint@15.11.0) + stylelint: 16.0.2(typescript@5.3.3) + stylelint-config-recommended-scss: 14.0.0(postcss@8.4.32)(stylelint@16.0.2) + stylelint-config-standard: 35.0.0(stylelint@16.0.2) dev: true - /stylelint-config-standard-vue@1.0.0(postcss-html@1.5.0)(stylelint@15.11.0): + /stylelint-config-standard-vue@1.0.0(postcss-html@1.5.0)(stylelint@16.0.2): resolution: {integrity: sha512-wAzU7p6DSlo04pWfCbOcaMq09Nojt0FEsbdxhCBTdC7IguD9ZVl7FP/bvyA0HAHjZGC4JkW7m6WiQaoVMDSuFw==} engines: {node: ^12 || >=14} peerDependencies: @@ -10737,89 +10623,95 @@ packages: stylelint: '>=14.0.0' dependencies: postcss-html: 1.5.0 - stylelint: 15.11.0(typescript@5.3.3) - stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@15.11.0) - stylelint-config-recommended-vue: 1.4.0(postcss-html@1.5.0)(stylelint@15.11.0) - stylelint-config-standard: 34.0.0(stylelint@15.11.0) + stylelint: 16.0.2(typescript@5.3.3) + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@16.0.2) + stylelint-config-recommended-vue: 1.4.0(postcss-html@1.5.0)(stylelint@16.0.2) + stylelint-config-standard: 34.0.0(stylelint@16.0.2) dev: true - /stylelint-config-standard@34.0.0(stylelint@15.11.0): + /stylelint-config-standard@34.0.0(stylelint@16.0.2): resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==} engines: {node: ^14.13.1 || >=16.0.0} peerDependencies: stylelint: ^15.10.0 dependencies: - stylelint: 15.11.0(typescript@5.3.3) - stylelint-config-recommended: 13.0.0(stylelint@15.11.0) + stylelint: 16.0.2(typescript@5.3.3) + stylelint-config-recommended: 13.0.0(stylelint@16.0.2) dev: true - /stylelint-scss@5.3.1(stylelint@15.11.0): - resolution: {integrity: sha512-5I9ZDIm77BZrjOccma5WyW2nJEKjXDd4Ca8Kk+oBapSO4pewSlno3n+OyimcyVJJujQZkBN2D+xuMkIamSc6hA==} + /stylelint-config-standard@35.0.0(stylelint@16.0.2): + resolution: {integrity: sha512-JyQrNZk2BZwVKFauGGxW2U6RuhIfQ4XoHHo+rBzMHcAkLnwI/knpszwXjzxiMgSfcxbZBckM7Vq4LHoANTR85g==} + engines: {node: '>=18.12.0'} peerDependencies: - stylelint: ^14.5.1 || ^15.0.0 + stylelint: ^16.0.0 + dependencies: + stylelint: 16.0.2(typescript@5.3.3) + stylelint-config-recommended: 14.0.0(stylelint@16.0.2) + dev: true + + /stylelint-order@6.0.4(stylelint@16.0.2): + resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} + peerDependencies: + stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 + dependencies: + postcss: 8.4.32 + postcss-sorting: 8.0.2(postcss@8.4.32) + stylelint: 16.0.2(typescript@5.3.3) + dev: true + + /stylelint-scss@6.0.0(stylelint@16.0.2): + resolution: {integrity: sha512-N1xV/Ef5PNRQQt9E45unzGvBUN1KZxCI8B4FgN/pMfmyRYbZGVN4y9qWlvOMdScU17c8VVCnjIHTVn38Bb6qSA==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.2 dependencies: known-css-properties: 0.29.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 - stylelint: 15.11.0(typescript@5.3.3) + stylelint: 16.0.2(typescript@5.3.3) dev: true - /stylelint-stylistic@0.4.3(stylelint@15.11.0): - resolution: {integrity: sha512-WphmneK3MRrm5ixvRPWy7+c9+EQUh0FPvNMXW/N9VD85vyqtpxUejpD+mxubVVht0fRgidcqBxtW3s3tU2Ujhw==} - peerDependencies: - stylelint: ^15.0.0 - dependencies: - is-plain-object: 5.0.0 - postcss: 8.4.26 - postcss-media-query-parser: 0.2.3 - postcss-value-parser: 4.2.0 - style-search: 0.1.0 - stylelint: 15.11.0(typescript@5.3.3) - dev: true - - /stylelint@15.11.0(typescript@5.3.3): - resolution: {integrity: sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==} - engines: {node: ^14.13.1 || >=16.0.0} + /stylelint@16.0.2(typescript@5.3.3): + resolution: {integrity: sha512-SxA/rg3VWxdoHZlW0nmVueWO1E7TAKW4W6mmA3iTxxEF9bIeQdFZu2oiBlQYyNe1pGnOamOqo2XYnI7cs5Bgow==} + engines: {node: '>=18.12.0'} hasBin: true dependencies: - '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) - '@csstools/css-tokenizer': 2.2.1 - '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) + '@csstools/css-parser-algorithms': 2.4.0(@csstools/css-tokenizer@2.2.2) + '@csstools/css-tokenizer': 2.2.2 + '@csstools/media-query-list-parser': 2.1.6(@csstools/css-parser-algorithms@2.4.0)(@csstools/css-tokenizer@2.2.2) + '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.13) balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig: 9.0.0(typescript@5.3.3) css-functions-list: 3.2.1 css-tree: 2.3.1 debug: 4.3.4 - fast-glob: 3.3.1 + fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 - file-entry-cache: 7.0.1 + file-entry-cache: 7.0.2 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 5.2.4 - import-lazy: 4.0.0 + ignore: 5.3.0 imurmurhash: 0.1.4 is-plain-object: 5.0.0 known-css-properties: 0.29.0 mathml-tag-names: 2.1.3 - meow: 10.1.5 + meow: 12.1.1 micromatch: 4.0.5 normalize-path: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.31 + postcss: 8.4.32 postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 6.0.0(postcss@8.4.31) + postcss-safe-parser: 7.0.0(postcss@8.4.32) postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 - strip-ansi: 6.0.1 - style-search: 0.1.0 + strip-ansi: 7.1.0 supports-hyperlinks: 3.0.0 svg-tags: 1.0.0 table: 6.8.1 @@ -11070,11 +10962,6 @@ packages: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} dev: false - /trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - dev: true - /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false @@ -11142,11 +11029,6 @@ packages: engines: {node: '>=8'} dev: true - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true - /type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} @@ -11806,14 +11688,14 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.25(typescript@5.3.3): - resolution: {integrity: sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==} + /vue-tsc@1.8.26(typescript@5.3.3): + resolution: {integrity: sha512-jMEJ4aqU/l1hdgmeExH5h1TFoN+hbho0A2ZAhHy53/947DGm7Qj/bpB85VpECOCwV00h7JYNVnvoD2ceOorB4Q==} hasBin: true peerDependencies: typescript: '*' dependencies: '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.25(typescript@5.3.3) + '@vue/language-core': 1.8.26(typescript@5.3.3) semver: 7.5.4 typescript: 5.3.3 dev: true @@ -11849,8 +11731,8 @@ packages: '@vue/shared': 3.3.13 typescript: 5.3.3 - /vxe-table@4.5.15(vue@3.3.13)(xe-utils@3.5.14): - resolution: {integrity: sha512-1QuM27wjTZConQX55u2YbyIA69u9/ny83x1cqyrmkoK622GKrY324wuOO/nsjfnbxXV5C+IDzL/MfdrvKQbznQ==} + /vxe-table@4.5.16(vue@3.3.13)(xe-utils@3.5.14): + resolution: {integrity: sha512-+7t8EJk6LQN+9FNEFnTWpFk2yjEFJoh2uUE6G6bg3RRB13i2wibo5f8EFuhqHdStDveUN2QTX77T1Xb8BOmOdg==} peerDependencies: vue: ^3.2.28 xe-utils: ^3.5.0 @@ -12048,11 +11930,6 @@ packages: decamelize: 1.2.0 dev: false - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} diff --git a/public/browser_upgrade/index.css b/public/browser_upgrade/index.css index c1c70261..576e442e 100755 --- a/public/browser_upgrade/index.css +++ b/public/browser_upgrade/index.css @@ -1,20 +1,20 @@ #browser-upgrade { position: absolute; - z-index: 10001; top: 0; left: 0; - height: 100%; - width: 100%; + z-index: 10001; display: none; - user-select: none; + width: 100%; + height: 100%; color: #736477; + user-select: none; background-color: snow; } #browser-upgrade .title { margin: 40px 0; - text-align: center; font-size: 24px; + text-align: center; } #browser-upgrade .browsers { @@ -24,8 +24,8 @@ #browser-upgrade .browsers .browser { display: inline-block; margin: 0 20px; - cursor: pointer; text-decoration: none; + cursor: pointer; } #browser-upgrade .browsers .browser .browser-icon { @@ -37,10 +37,10 @@ } #browser-upgrade .browsers .browser .browser-name { - text-align: center; - margin-top: 10px; padding-bottom: 2px; + margin-top: 10px; color: #736477; + text-align: center; border-bottom: 1px solid transparent; } diff --git a/public/loading.css b/public/loading.css index 1fe770c9..f9a8a12c 100755 --- a/public/loading.css +++ b/public/loading.css @@ -4,43 +4,43 @@ .fantastic-admin-home { position: absolute; - z-index: 10000; top: 0; left: 0; - height: 100%; - width: 100%; + z-index: 10000; display: flex; + flex-direction: column; align-items: center; justify-content: center; - flex-direction: column; - user-select: none; + width: 100%; + height: 100%; color: #736477; + user-select: none; background-color: snow; } .fantastic-admin-home .loading { - height: 40px; - width: 40px; display: flex; + flex-wrap: wrap; align-items: center; justify-content: center; - flex-wrap: wrap; + width: 40px; + height: 40px; } .fantastic-admin-home .loading .square { display: flex; align-items: center; justify-content: center; - height: 20px; width: 20px; + height: 20px; } .fantastic-admin-home .loading .square::before { - content: ""; width: 10px; height: 10px; - border-radius: 15%; + content: ""; border: 3px solid #8c858f; + border-radius: 15%; animation: square-to-dot-animation 2s linear infinite; } @@ -63,30 +63,30 @@ @keyframes square-to-dot-animation { 15%, 25% { - border-radius: 100%; width: 0; height: 0; margin: 5px; border-width: 5px; + border-radius: 100%; } 40% { - border-radius: 15%; width: 10px; height: 10px; margin: initial; border-width: 3px; + border-radius: 15%; } } .fantastic-admin-home .text { position: relative; - font-size: 24px; margin-top: 20px; + font-size: 24px; } .fantastic-admin-home .text::after { - content: "…"; position: absolute; padding-left: 5px; + content: "…"; } diff --git a/src/assets/styles/globals.scss b/src/assets/styles/globals.scss index acc186e0..9523d070 100755 --- a/src/assets/styles/globals.scss +++ b/src/assets/styles/globals.scss @@ -17,8 +17,8 @@ :root { &::view-transition-old(root), &::view-transition-new(root) { - animation: none; mix-blend-mode: normal; + animation: none; } &::view-transition-old(root) { @@ -70,10 +70,10 @@ body { } body { - margin: 0; - background-color: var(--g-container-bg); box-sizing: border-box; + margin: 0; font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif; + background-color: var(--g-container-bg); -webkit-tap-highlight-color: transparent; &.overflow-hidden { @@ -88,8 +88,8 @@ body { // 右侧内容区针对fixed元素,有横向铺满的需求,可在fixed元素上设置 [data-fixed-calc-width] [data-fixed-calc-width] { position: fixed; - left: 50%; right: 0; + left: 50%; width: calc(100% - var(--g-main-sidebar-actual-width) - var(--g-sub-sidebar-actual-width)); transform: translateX(-50%) translateX(calc(var(--g-main-sidebar-actual-width) / 2)) translateX(calc(var(--g-sub-sidebar-actual-width) / 2)); } diff --git a/src/assets/styles/nprogress.scss b/src/assets/styles/nprogress.scss index a63e3cf6..c5ab78e1 100755 --- a/src/assets/styles/nprogress.scss +++ b/src/assets/styles/nprogress.scss @@ -3,48 +3,48 @@ .bar { position: fixed; - z-index: 1031; top: 0; left: 0; + z-index: 1031; width: 100%; height: 2px; background: rgb(var(--ui-primary)); } .peg { - display: block; position: absolute; right: 0; + display: block; width: 100px; height: 100%; + box-shadow: 0 0 10px rgb(var(--ui-primary)), 0 0 5px rgb(var(--ui-primary)); opacity: 1; transform: rotate(3deg) translate(0, -4px); - box-shadow: 0 0 10px rgb(var(--ui-primary)), 0 0 5px rgb(var(--ui-primary)); } .spinner { - display: block; position: fixed; - z-index: 1031; top: 11px; right: 14px; + z-index: 1031; + display: block; .spinner-icon { + box-sizing: border-box; width: 18px; height: 18px; - box-sizing: border-box; border: solid 2px transparent; - border-radius: 50%; border-top-color: rgb(var(--ui-primary)); border-left-color: rgb(var(--ui-primary)); + border-radius: 50%; animation: nprogress-spinner 400ms linear infinite; } } } .nprogress-custom-parent { - overflow: hidden; position: relative; + overflow: hidden; #nprogress .spinner, #nprogress .bar { diff --git a/src/assets/styles/resources/utils.scss b/src/assets/styles/resources/utils.scss index 270747c9..e1ae9afb 100755 --- a/src/assets/styles/resources/utils.scss +++ b/src/assets/styles/resources/utils.scss @@ -28,8 +28,8 @@ } @if $type == xy { - left: 50%; top: 50%; + left: 50%; transform: translateX(-50%) translateY(-50%); } } @@ -46,8 +46,8 @@ &::before, &::after { - content: ""; display: block; clear: both; + content: ""; } } diff --git a/src/components/ImagePreview/index.vue b/src/components/ImagePreview/index.vue index 083f2a56..b61e5bef 100755 --- a/src/components/ImagePreview/index.vue +++ b/src/components/ImagePreview/index.vue @@ -36,14 +36,14 @@ const realHeight = computed(() => { diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue index 9df0a1c2..2d39816e 100755 --- a/src/components/ImageUpload/index.vue +++ b/src/components/ImageUpload/index.vue @@ -146,33 +146,33 @@ const onSuccess: UploadProps['onSuccess'] = (res) => { .image { position: relative; - border-radius: 6px; overflow: hidden; + border-radius: 6px; .mask { - opacity: 0; position: absolute; top: 0; width: 100%; height: 100%; background-color: var(--el-overlay-color-lighter); + opacity: 0; transition: opacity 0.3s; .actions { - width: 100px; - height: 100px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; + width: 100px; + height: 100px; @include position-center(xy); span { width: 50%; + color: var(--el-color-white); text-align: center; cursor: pointer; - color: var(--el-color-white); transition: color 0.1s, transform 0.1s; &:hover { @@ -207,8 +207,8 @@ const onSuccess: UploadProps['onSuccess'] = (res) => { .image-slot { display: flex; - justify-content: center; align-items: center; + justify-content: center; width: 100%; height: 100%; color: var(--el-text-color-placeholder); @@ -224,12 +224,12 @@ const onSuccess: UploadProps['onSuccess'] = (res) => { top: 0; &::after { - content: ""; position: absolute; + top: 0; + left: 0; width: 100%; height: 100%; - left: 0; - top: 0; + content: ""; background-color: var(--el-overlay-color-lighter); } diff --git a/src/components/ImagesUpload/index.vue b/src/components/ImagesUpload/index.vue index af452663..1260a9d5 100755 --- a/src/components/ImagesUpload/index.vue +++ b/src/components/ImagesUpload/index.vue @@ -169,34 +169,34 @@ const onSuccess: UploadProps['onSuccess'] = (res) => { position: relative; display: inline-block; margin-right: 10px; + overflow: hidden; border: 1px dashed var(--el-border-color); border-radius: 6px; - overflow: hidden; .mask { - opacity: 0; position: absolute; top: 0; width: 100%; height: 100%; background-color: var(--el-overlay-color-lighter); + opacity: 0; transition: opacity 0.3s; .actions { - width: 100px; - height: 100px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; + width: 100px; + height: 100px; @include position-center(xy); span { width: 50%; + color: var(--el-color-white); text-align: center; cursor: pointer; - color: var(--el-color-white); transition: color 0.1s, transform 0.1s; &.disabled { @@ -236,8 +236,8 @@ const onSuccess: UploadProps['onSuccess'] = (res) => { .image-slot { display: flex; - justify-content: center; align-items: center; + justify-content: center; width: 100%; height: 100%; color: var(--el-text-color-placeholder); @@ -253,12 +253,12 @@ const onSuccess: UploadProps['onSuccess'] = (res) => { top: 0; &::after { - content: ""; position: absolute; + top: 0; + left: 0; width: 100%; height: 100%; - left: 0; - top: 0; + content: ""; background-color: var(--el-overlay-color-lighter); } diff --git a/src/layouts/components/BuyIt/index.vue b/src/layouts/components/BuyIt/index.vue index 20399b26..b3493bb4 100755 --- a/src/layouts/components/BuyIt/index.vue +++ b/src/layouts/components/BuyIt/index.vue @@ -97,14 +97,14 @@ onUnmounted(() => { diff --git a/src/layouts/index.vue b/src/layouts/index.vue index 9d6b783c..dcbfcc3c 100755 --- a/src/layouts/index.vue +++ b/src/layouts/index.vue @@ -154,9 +154,9 @@ const enableAppSetting = import.meta.env.VITE_APP_SETTING === 'true' .sidebar-container { position: fixed; - z-index: 1010; top: 0; bottom: 0; + z-index: 1010; display: flex; width: calc(var(--g-main-sidebar-actual-width) + var(--g-sub-sidebar-actual-width)); box-shadow: -1px 0 0 0 var(--g-border-color), 1px 0 0 0 var(--g-border-color); @@ -165,21 +165,21 @@ const enableAppSetting = import.meta.env.VITE_APP_SETTING === 'true' .sidebar-mask { position: fixed; - z-index: 1000; top: 0; left: 0; + z-index: 1000; width: 100%; height: 100%; + visibility: hidden; background-image: radial-gradient(transparent 1px, rgb(0 0 0 / 30%) 1px); background-size: 4px 4px; backdrop-filter: saturate(50%) blur(4px); - transition: all 0.2s; opacity: 0; - visibility: hidden; + transition: all 0.2s; &.show { - opacity: 1; visibility: visible; + opacity: 1; } } @@ -197,9 +197,9 @@ const enableAppSetting = import.meta.env.VITE_APP_SETTING === 'true' transition: margin-left 0.3s, background-color 0.3s, box-shadow 0.3s; .main { - height: 100%; - flex: auto; position: relative; + flex: auto; + height: 100%; overflow: hidden; transition: 0.3s; } @@ -236,18 +236,18 @@ header:not(.header-leave-active) + .wrapper { --at-apply: text-white dark:text-dark bg-ui-primary; position: fixed; - z-index: 10; - right: 0; top: calc(50% + 250px); + right: 0; + z-index: 10; display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; font-size: 24px; cursor: pointer; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; .icon { animation: rotate 5s linear infinite; @@ -274,12 +274,12 @@ header:not(.header-leave-active) + .wrapper { } .slide-right-enter-from { - opacity: 0; margin-left: -20px; + opacity: 0; } .slide-right-leave-to { - opacity: 0; margin-left: 20px; + opacity: 0; } diff --git a/src/views/component_basic_example/components/icon.vue b/src/views/component_basic_example/components/icon.vue index b44ee437..cdd0f010 100755 --- a/src/views/component_basic_example/components/icon.vue +++ b/src/views/component_basic_example/components/icon.vue @@ -31,9 +31,9 @@ const icon = icons.filter(item => item.prefix === 'ep')[0] diff --git a/src/views/personal/setting.vue b/src/views/personal/setting.vue index ba776a0b..dd1041bc 100755 --- a/src/views/personal/setting.vue +++ b/src/views/personal/setting.vue @@ -137,8 +137,8 @@ function editPassword() { } .el-tabs__item { - text-align: left; padding-right: 100px; + text-align: left; } } diff --git a/src/views/plugin_example/splitpanes.vue b/src/views/plugin_example/splitpanes.vue index 4f8fcd53..dfe89b0a 100755 --- a/src/views/plugin_example/splitpanes.vue +++ b/src/views/plugin_example/splitpanes.vue @@ -52,11 +52,11 @@ function open(url: string) { diff --git a/src/views/plugin_example/swiper.vue b/src/views/plugin_example/swiper.vue index 7311599f..7f2a062f 100755 --- a/src/views/plugin_example/swiper.vue +++ b/src/views/plugin_example/swiper.vue @@ -146,16 +146,16 @@ function open(url: string) { diff --git a/stylelint.config.js b/stylelint.config.js new file mode 100644 index 00000000..3b4c8f40 --- /dev/null +++ b/stylelint.config.js @@ -0,0 +1,118 @@ +export default { + extends: [ + 'stylelint-config-standard-scss', + 'stylelint-config-standard-vue/scss', + 'stylelint-config-recess-order', + ], + plugins: [ + 'stylelint-scss', + '@stylistic/stylelint-plugin', + ], + rules: { + 'at-rule-no-unknown': null, + 'no-descending-specificity': null, + 'property-no-unknown': null, + 'font-family-no-missing-generic-family-keyword': null, + 'selector-class-pattern': null, + 'function-no-unknown': [ + true, + { + ignoreFunctions: [ + 'v-bind', + 'map-get', + 'lighten', + 'darken', + ], + }, + ], + 'selector-pseudo-element-no-unknown': [ + true, + { + ignorePseudoElements: [ + '/^view-transition/', + ], + }, + ], + 'scss/double-slash-comment-empty-line-before': null, + 'scss/no-global-function-names': null, + // 提取自 https://github.com/elirasza/stylelint-stylistic/blob/main/config/index.js + '@stylistic/at-rule-name-case': 'lower', + '@stylistic/at-rule-name-space-after': 'always-single-line', + '@stylistic/at-rule-semicolon-newline-after': 'always', + '@stylistic/block-closing-brace-empty-line-before': 'never', + '@stylistic/block-closing-brace-newline-after': 'always', + '@stylistic/block-closing-brace-newline-before': 'always-multi-line', + '@stylistic/block-closing-brace-space-before': 'always-single-line', + '@stylistic/block-opening-brace-newline-after': 'always-multi-line', + '@stylistic/block-opening-brace-space-after': 'always-single-line', + '@stylistic/block-opening-brace-space-before': 'always', + '@stylistic/color-hex-case': 'lower', + '@stylistic/declaration-bang-space-after': 'never', + '@stylistic/declaration-bang-space-before': 'always', + '@stylistic/declaration-block-semicolon-newline-after': 'always-multi-line', + '@stylistic/declaration-block-semicolon-space-after': 'always-single-line', + '@stylistic/declaration-block-semicolon-space-before': 'never', + '@stylistic/declaration-block-trailing-semicolon': 'always', + '@stylistic/declaration-colon-newline-after': 'always-multi-line', + '@stylistic/declaration-colon-space-after': 'always-single-line', + '@stylistic/declaration-colon-space-before': 'never', + '@stylistic/function-comma-newline-after': 'always-multi-line', + '@stylistic/function-comma-space-after': 'always-single-line', + '@stylistic/function-comma-space-before': 'never', + '@stylistic/function-max-empty-lines': 0, + '@stylistic/function-parentheses-newline-inside': 'always-multi-line', + '@stylistic/function-parentheses-space-inside': 'never-single-line', + '@stylistic/function-whitespace-after': 'always', + '@stylistic/indentation': 2, + '@stylistic/max-empty-lines': 1, + '@stylistic/max-line-length': 120, + '@stylistic/media-feature-colon-space-after': 'always', + '@stylistic/media-feature-colon-space-before': 'never', + '@stylistic/media-feature-name-case': 'lower', + '@stylistic/media-feature-parentheses-space-inside': 'never', + '@stylistic/media-feature-range-operator-space-after': 'always', + '@stylistic/media-feature-range-operator-space-before': 'always', + '@stylistic/media-query-list-comma-newline-after': 'always-multi-line', + '@stylistic/media-query-list-comma-space-after': 'always-single-line', + '@stylistic/media-query-list-comma-space-before': 'never', + '@stylistic/no-empty-first-line': true, + '@stylistic/no-eol-whitespace': true, + '@stylistic/no-extra-semicolons': true, + '@stylistic/no-missing-end-of-source-newline': true, + '@stylistic/number-leading-zero': 'always', + '@stylistic/number-no-trailing-zeros': true, + '@stylistic/property-case': 'lower', + '@stylistic/selector-attribute-brackets-space-inside': 'never', + '@stylistic/selector-attribute-operator-space-after': 'never', + '@stylistic/selector-attribute-operator-space-before': 'never', + '@stylistic/selector-combinator-space-after': 'always', + '@stylistic/selector-combinator-space-before': 'always', + '@stylistic/selector-descendant-combinator-no-non-space': true, + '@stylistic/selector-list-comma-newline-after': 'always', + '@stylistic/selector-list-comma-space-before': 'never', + '@stylistic/selector-max-empty-lines': 0, + '@stylistic/selector-pseudo-class-case': 'lower', + '@stylistic/selector-pseudo-class-parentheses-space-inside': 'never', + '@stylistic/selector-pseudo-element-case': 'lower', + '@stylistic/string-quotes': 'double', + '@stylistic/unit-case': 'lower', + '@stylistic/value-list-comma-newline-after': 'always-multi-line', + '@stylistic/value-list-comma-space-after': 'always-single-line', + '@stylistic/value-list-comma-space-before': 'never', + '@stylistic/value-list-max-empty-lines': 0, + // 根据需要覆盖部分规则 + '@stylistic/max-line-length': null, + '@stylistic/block-closing-brace-newline-after': [ + 'always', + { + ignoreAtRules: ['if', 'else'], + }, + ], + }, + allowEmptyInput: true, + ignoreFiles: [ + 'node_modules/**/*', + 'dist*/**/*', + 'public/tinymce/**/*', + ], +}