diff --git a/.github/workflows/sync-gitee.yml b/.github/workflows/sync-gitee.yml index e6e7a9007d..69db81efdb 100644 --- a/.github/workflows/sync-gitee.yml +++ b/.github/workflows/sync-gitee.yml @@ -1,8 +1,9 @@ name: Sync to Gitee on: - push: - branches: [v4] + workflow_dispatch: + schedule: + - cron: '0 1 * * *' jobs: deploy-site-sync-gitee: diff --git a/.github/workflows/sync-h5.yml b/.github/workflows/sync-h5.yml index b8acc2e86a..e5d57fd81d 100644 --- a/.github/workflows/sync-h5.yml +++ b/.github/workflows/sync-h5.yml @@ -7,6 +7,7 @@ on: paths: - '.github/workflows/**' - 'src/**' + - 'package.json' jobs: copy: @@ -29,7 +30,7 @@ jobs: run: pnpm copy:h5 - name: Sync - uses: JamesIves/github-pages-deploy-action@v4.4.3 + uses: JamesIves/github-pages-deploy-action@v4.5.0 with: branch: new-site # action 应该部署到的分支 。 folder: site_docs #操作应该部署的文件夹 。 diff --git a/.github/workflows/sync-pkg.yml b/.github/workflows/sync-pkg.yml new file mode 100644 index 0000000000..00686ab83a --- /dev/null +++ b/.github/workflows/sync-pkg.yml @@ -0,0 +1,42 @@ +name: sync to pkg branch + +permissions: + contents: write + +on: + push: + branches: + - v4 # default branch + +jobs: + copy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install pnpm + run: corepack enable + + - uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install + + - name: Build @nutui/nutui + run: pnpm build + + - name: Build @nutui/nutui-taro + run: pnpm build:taro + + - name: Sync + uses: JamesIves/github-pages-deploy-action@v4.5.0 + with: + branch: pkg # action 应该部署到的分支 。 + folder: publish #操作应该部署的文件夹 。 + clean: true + target-folder: publish + git-config-name: github-actions + git-config-email: action@github.com diff --git a/.github/workflows/sync-taro.yml b/.github/workflows/sync-taro.yml index 72ee037564..0713819539 100644 --- a/.github/workflows/sync-taro.yml +++ b/.github/workflows/sync-taro.yml @@ -7,6 +7,7 @@ on: paths: - '.github/workflows/**' - 'src/**' + - 'package.json' jobs: copy: @@ -29,7 +30,7 @@ jobs: run: pnpm copy:taro - name: Sync - uses: JamesIves/github-pages-deploy-action@v4.4.3 + uses: JamesIves/github-pages-deploy-action@v4.5.0 with: branch: new-site # action 应该部署到的分支 。 folder: site_docs #操作应该部署的文件夹 。 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0230b4d17b..513907d1ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +## v4.2.3 + +`2023-11-30` + +Bug Fixes + +- ellipsis: 修复 taro 组件导出问题 @eiinu +- number-keyboard: 修复标题栏完成按钮样式丢失的问题 (#2696) @Moonofweisheng + +Other Changes + +- refactor: 优化组件间 provide & inject (#2681) @eiinu +- deps: bump vite to v5 (#2689) @eiinu + ## v4.2.2 `2023-11-24` diff --git a/package.json b/package.json index e81b35a7d5..1dd905a98e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@nutui/nutui", - "version": "4.2.2", + "version": "4.2.3", "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)", "main": "dist/nutui.umd.js", "module": "dist/nutui.es.js", @@ -85,8 +85,8 @@ "@types/node": "^18.18.5", "@vitejs/plugin-vue": "^4.5.0", "@vitejs/plugin-vue-jsx": "^3.1.0", - "@vitest/coverage-v8": "^0.34.6", - "@vitest/ui": "^0.34.6", + "@vitest/coverage-v8": "^1.0.1", + "@vitest/ui": "^1.0.1", "@vue/test-utils": "^2.4.1", "autoprefixer": "^10.4.16", "codesandbox": "^2.2.3", @@ -100,13 +100,13 @@ "prettier": "^3.0.3", "rimraf": "^5.0.5", "typescript": "^5.2.2", - "unplugin-vue-components": "^0.25.2", + "unplugin-vue-components": "^0.26.0", "vite": "^5.0.2", - "vitest": "^0.34.6", + "vitest": "^1.0.1", "vitest-canvas-mock": "^0.3.3", "vue": "^3.3.4", "vue-tsc": "^1.8.22", - "vite-plugin-inspect": "^0.7.42" + "vite-plugin-inspect": "^0.8.0" }, "engines": { "pnpm": ">= 8.0.0" diff --git a/packages/nutui-playground/package.json b/packages/nutui-playground/package.json index 1fb1acb95e..85dbdcfb48 100644 --- a/packages/nutui-playground/package.json +++ b/packages/nutui-playground/package.json @@ -2,6 +2,7 @@ "name": "@nutui/playground", "version": "1.0.0", "private": true, + "type": "module", "description": "NutUI Vue SFC Playground", "keywords": [ "nutui", @@ -15,13 +16,13 @@ }, "devDependencies": { "@types/node": "^18.18.5", - "@vitejs/plugin-vue": "^4.5.0", + "@vitejs/plugin-vue": "^4.5.1", "rimraf": "^5.0.5", - "vite": "^5.0.2", - "vue": "^3.3.4" + "vite": "^5.0.4", + "vue": "^3.3.9" }, "dependencies": { - "@vue/repl": "^2.5.8", + "@vue/repl": "^3.0.0", "file-saver": "^2.0.5", "jszip": "^3.10.1" } diff --git a/packages/nutui-playground/src/download/template/package.json b/packages/nutui-playground/src/download/template/package.json index 20791a4b72..8303a7d0c6 100644 --- a/packages/nutui-playground/src/download/template/package.json +++ b/packages/nutui-playground/src/download/template/package.json @@ -14,6 +14,6 @@ "devDependencies": { "@vitejs/plugin-vue": "^4.5.0", "vite": "^5.0.2", - "unplugin-vue-components": "^0.25.2" + "unplugin-vue-components": "^0.26.0" } } diff --git a/packages/nutui-playground/src/main.ts b/packages/nutui-playground/src/main.ts index c029e441d3..ada1ad1696 100644 --- a/packages/nutui-playground/src/main.ts +++ b/packages/nutui-playground/src/main.ts @@ -1,6 +1,5 @@ import { createApp } from 'vue'; import App from './App.vue'; -import '@vue/repl/style.css'; import './style.css'; // @ts-expect-error Custom window property diff --git a/packages/nutui-taro-demo/src/dentry/pages/form/index.vue b/packages/nutui-taro-demo/src/dentry/pages/form/index.vue index f11c15f9d5..7e3c9bb470 100644 --- a/packages/nutui-taro-demo/src/dentry/pages/form/index.vue +++ b/packages/nutui-taro-demo/src/dentry/pages/form/index.vue @@ -162,6 +162,18 @@ > +

自定义labe位置

+ + + + + + + + + + + diff --git a/packages/nutui-taro-demo/src/dentry/pages/textarea/index.vue b/packages/nutui-taro-demo/src/dentry/pages/textarea/index.vue index 3fa62c2385..9295be489a 100644 --- a/packages/nutui-taro-demo/src/dentry/pages/textarea/index.vue +++ b/packages/nutui-taro-demo/src/dentry/pages/textarea/index.vue @@ -18,16 +18,3 @@ const value = ref(''); const value2 = ref(''); const value3 = ref(''); - - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dff4a4f7bb..c6c57761d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,11 +52,11 @@ importers: specifier: ^3.1.0 version: 3.1.0(vite@5.0.2)(vue@3.3.4) '@vitest/coverage-v8': - specifier: ^0.34.6 - version: 0.34.6(vitest@0.34.6) + specifier: ^1.0.1 + version: 1.0.1(vitest@1.0.1) '@vitest/ui': - specifier: ^0.34.6 - version: 0.34.6(vitest@0.34.6) + specifier: ^1.0.1 + version: 1.0.1(vitest@1.0.1) '@vue/test-utils': specifier: ^2.4.1 version: 2.4.1(vue@3.3.4) @@ -97,20 +97,20 @@ importers: specifier: ^5.2.2 version: 5.2.2 unplugin-vue-components: - specifier: ^0.25.2 - version: 0.25.2(vue@3.3.4) + specifier: ^0.26.0 + version: 0.26.0(vue@3.3.4) vite: specifier: ^5.0.2 version: 5.0.2(@types/node@18.18.5)(sass@1.69.3) vite-plugin-inspect: - specifier: ^0.7.42 - version: 0.7.42(vite@5.0.2) + specifier: ^0.8.0 + version: 0.8.1(vite@5.0.2) vitest: - specifier: ^0.34.6 - version: 0.34.6(@vitest/ui@0.34.6)(sass@1.69.3) + specifier: ^1.0.1 + version: 1.0.1(@types/node@18.18.5)(@vitest/ui@1.0.1)(sass@1.69.3) vitest-canvas-mock: specifier: ^0.3.3 - version: 0.3.3(vitest@0.34.6) + version: 0.3.3(vitest@1.0.1) vue: specifier: ^3.3.4 version: 3.3.4 @@ -155,8 +155,8 @@ importers: packages/nutui-playground: dependencies: '@vue/repl': - specifier: ^2.5.8 - version: 2.5.8 + specifier: ^3.0.0 + version: 3.0.0 file-saver: specifier: ^2.0.5 version: 2.0.5 @@ -168,17 +168,17 @@ importers: specifier: ^18.18.5 version: 18.18.5 '@vitejs/plugin-vue': - specifier: ^4.5.0 - version: 4.5.0(vite@5.0.2)(vue@3.3.4) + specifier: ^4.5.1 + version: 4.5.1(vite@5.0.4)(vue@3.3.9) rimraf: specifier: ^5.0.5 version: 5.0.5 vite: - specifier: ^5.0.2 - version: 5.0.2(@types/node@18.18.5)(sass@1.69.3) + specifier: ^5.0.4 + version: 5.0.4(@types/node@18.18.5)(sass@1.69.3) vue: - specifier: ^3.3.4 - version: 3.3.4 + specifier: ^3.3.9 + version: 3.3.9(typescript@5.2.2) packages/nutui-prettier-plugin: devDependencies: @@ -304,7 +304,7 @@ importers: version: 3.0.0 unplugin-vue-markdown: specifier: ^0.25.2 - version: 0.25.2(vite@5.0.2) + version: 0.25.2(vite@5.0.4) devDependencies: '@types/fs-extra': specifier: ^11.0.4 @@ -470,13 +470,13 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} @@ -557,7 +557,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} @@ -569,13 +569,13 @@ packages: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} @@ -608,7 +608,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} @@ -658,13 +658,13 @@ packages: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} @@ -688,7 +688,7 @@ packages: dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 /@babel/helpers@7.23.2: resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} @@ -722,7 +722,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 dev: true /@babel/parser@7.23.0: @@ -738,7 +738,6 @@ packages: hasBin: true dependencies: '@babel/types': 7.23.4 - dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} @@ -1529,7 +1528,7 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 dev: true /@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.23.2): @@ -1769,7 +1768,7 @@ packages: '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.2) '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.2) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.2) - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.2) babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.2) babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.2) @@ -1785,7 +1784,7 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 esutils: 2.0.3 /@babel/preset-react@7.22.15(@babel/core@7.23.2): @@ -1851,7 +1850,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 + '@babel/parser': 7.23.4 '@babel/types': 7.23.0 /@babel/traverse@7.22.5: @@ -1864,8 +1863,8 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -1882,8 +1881,8 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -3584,16 +3583,6 @@ packages: '@types/node': 18.18.5 dev: true - /@types/chai-subset@1.3.3: - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} - dependencies: - '@types/chai': 4.3.8 - dev: true - - /@types/chai@4.3.8: - resolution: {integrity: sha512-yW/qTM4mRBBcsA9Xw9FbcImYtFPY7sgr+G/O5RDYVmxiy9a+pE5FyoFUi8JYCZY5nicj8atrr1pcfPiYpeNGOA==} - dev: true - /@types/connect-history-api-fallback@1.5.1: resolution: {integrity: sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==} dependencies: @@ -4118,74 +4107,87 @@ packages: vue: 3.3.4 dev: true - /@vitest/coverage-v8@0.34.6(vitest@0.34.6): - resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==} + /@vitejs/plugin-vue@4.5.1(vite@5.0.4)(vue@3.3.9): + resolution: {integrity: sha512-DaUzYFr+2UGDG7VSSdShKa9sIWYBa1LL8KC0MNOf2H5LjcTPjob0x8LbkqXWmAtbANJCkpiQTj66UVcQkN2s3g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 5.0.4(@types/node@18.18.5)(sass@1.69.3) + vue: 3.3.9(typescript@5.2.2) + dev: true + + /@vitest/coverage-v8@1.0.1(vitest@1.0.1): + resolution: {integrity: sha512-Z4a7ig4VjUCT/P+LRB3IZrBRXb9xWRUM8rSBH9cKgfrU1Oe01/K2WJKtGshOnQwXZoSfQtwCGpbnHmB/qJwjcw==} peerDependencies: - vitest: '>=0.32.0 <1' + vitest: ^1.0.0 dependencies: '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 - istanbul-lib-coverage: 3.2.0 + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.6 magic-string: 0.30.5 + magicast: 0.3.2 picocolors: 1.0.0 - std-env: 3.4.3 + std-env: 3.6.0 test-exclude: 6.0.0 - v8-to-istanbul: 9.1.3 - vitest: 0.34.6(@vitest/ui@0.34.6)(sass@1.69.3) + v8-to-istanbul: 9.2.0 + vitest: 1.0.1(@types/node@18.18.5)(@vitest/ui@1.0.1)(sass@1.69.3) transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@0.34.6: - resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} + /@vitest/expect@1.0.1: + resolution: {integrity: sha512-3cdrb/eKD/0tygDX75YscuHEHMUJ70u3UoLSq2eqhWks57AyzvsDQbyn53IhZ0tBN7gA8Jj2VhXiOV2lef7thw==} dependencies: - '@vitest/spy': 0.34.6 - '@vitest/utils': 0.34.6 + '@vitest/spy': 1.0.1 + '@vitest/utils': 1.0.1 chai: 4.3.10 dev: true - /@vitest/runner@0.34.6: - resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + /@vitest/runner@1.0.1: + resolution: {integrity: sha512-/+z0vhJ0MfRPT3AyTvAK6m57rzlew/ct8B2a4LMv7NhpPaiI2QLGyOBMB3lcioWdJHjRuLi9aYppfOv0B5aRQA==} dependencies: - '@vitest/utils': 0.34.6 - p-limit: 4.0.0 + '@vitest/utils': 1.0.1 + p-limit: 5.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@0.34.6: - resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + /@vitest/snapshot@1.0.1: + resolution: {integrity: sha512-wIPtPDGSxEZ+DpNMc94AsybX6LV6uN6sosf5TojyP1m2QbKwiRuLV/5RSsjt1oWViHsTj8mlcwrQQ1zHGO0fMw==} dependencies: magic-string: 0.30.5 pathe: 1.1.1 pretty-format: 29.7.0 dev: true - /@vitest/spy@0.34.6: - resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + /@vitest/spy@1.0.1: + resolution: {integrity: sha512-yXwm1uKhBVr/5MhVeSmtNqK+0q2RXIchJt8kokEKdrWLtkPeDgdbZ6SjR1VQGZuNdWL6sSBnLayIyVvcS0qLfA==} dependencies: tinyspy: 2.2.0 dev: true - /@vitest/ui@0.34.6(vitest@0.34.6): - resolution: {integrity: sha512-/fxnCwGC0Txmr3tF3BwAbo3v6U2SkBTGR9UB8zo0Ztlx0BTOXHucE0gDHY7SjwEktCOHatiGmli9kZD6gYSoWQ==} + /@vitest/ui@1.0.1(vitest@1.0.1): + resolution: {integrity: sha512-3hFMgy/RExKi7UlYEqqnZ65QALdkgXyW1k7Zn7PykVmVBcKe/aI4ZpZ006WeTWvnUWeR+37lbpUD0JhnmKn72A==} peerDependencies: - vitest: '>=0.30.1 <1' + vitest: ^1.0.0 dependencies: - '@vitest/utils': 0.34.6 - fast-glob: 3.3.1 + '@vitest/utils': 1.0.1 + fast-glob: 3.3.2 fflate: 0.8.1 flatted: 3.2.9 pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - vitest: 0.34.6(@vitest/ui@0.34.6)(sass@1.69.3) + vitest: 1.0.1(@types/node@18.18.5)(@vitest/ui@1.0.1)(sass@1.69.3) dev: true - /@vitest/utils@0.34.6: - resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + /@vitest/utils@1.0.1: + resolution: {integrity: sha512-MGPCHkzXbbAyscrhwGzh8uP1HPrTYLWaj1WTDtWSGrpe2yJWLRN9mF9ooKawr6NMOg9vTBtg2JqWLfuLC7Dknw==} dependencies: diff-sequences: 29.6.3 loupe: 2.3.7 @@ -4264,7 +4266,7 @@ packages: '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.3) '@babel/template': 7.22.15 '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/types': 7.23.4 '@vue/babel-helper-vue-transform-on': 1.1.5 camelcase: 6.3.0 html-tags: 3.3.1 @@ -4276,21 +4278,37 @@ packages: /@vue/compiler-core@3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: - '@babel/parser': 7.23.0 + '@babel/parser': 7.23.4 '@vue/shared': 3.3.4 estree-walker: 2.0.2 source-map-js: 1.0.2 + /@vue/compiler-core@3.3.9: + resolution: {integrity: sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==} + dependencies: + '@babel/parser': 7.23.4 + '@vue/shared': 3.3.9 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + /@vue/compiler-dom@3.3.4: resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 + /@vue/compiler-dom@3.3.9: + resolution: {integrity: sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg==} + dependencies: + '@vue/compiler-core': 3.3.9 + '@vue/shared': 3.3.9 + dev: true + /@vue/compiler-sfc@3.3.4: resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} dependencies: - '@babel/parser': 7.23.0 + '@babel/parser': 7.23.4 '@vue/compiler-core': 3.3.4 '@vue/compiler-dom': 3.3.4 '@vue/compiler-ssr': 3.3.4 @@ -4301,12 +4319,34 @@ packages: postcss: 8.4.31 source-map-js: 1.0.2 + /@vue/compiler-sfc@3.3.9: + resolution: {integrity: sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A==} + dependencies: + '@babel/parser': 7.23.4 + '@vue/compiler-core': 3.3.9 + '@vue/compiler-dom': 3.3.9 + '@vue/compiler-ssr': 3.3.9 + '@vue/reactivity-transform': 3.3.9 + '@vue/shared': 3.3.9 + estree-walker: 2.0.2 + magic-string: 0.30.5 + postcss: 8.4.31 + source-map-js: 1.0.2 + dev: true + /@vue/compiler-ssr@3.3.4: resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} dependencies: '@vue/compiler-dom': 3.3.4 '@vue/shared': 3.3.4 + /@vue/compiler-ssr@3.3.9: + resolution: {integrity: sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g==} + dependencies: + '@vue/compiler-dom': 3.3.9 + '@vue/shared': 3.3.9 + dev: true + /@vue/component-compiler-utils@3.3.0(lodash@4.17.21): resolution: {integrity: sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==} dependencies: @@ -4402,19 +4442,35 @@ packages: /@vue/reactivity-transform@3.3.4: resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} dependencies: - '@babel/parser': 7.23.0 + '@babel/parser': 7.23.4 '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 estree-walker: 2.0.2 magic-string: 0.30.5 + /@vue/reactivity-transform@3.3.9: + resolution: {integrity: sha512-HnUFm7Ry6dFa4Lp63DAxTixUp8opMtQr6RxQCpDI1vlh12rkGIeYqMvJtK+IKyEfEOa2I9oCkD1mmsPdaGpdVg==} + dependencies: + '@babel/parser': 7.23.4 + '@vue/compiler-core': 3.3.9 + '@vue/shared': 3.3.9 + estree-walker: 2.0.2 + magic-string: 0.30.5 + dev: true + /@vue/reactivity@3.3.4: resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} dependencies: '@vue/shared': 3.3.4 - /@vue/repl@2.5.8: - resolution: {integrity: sha512-IvOlNhka4VKDQZS9FIceFFWyPibzqAUHyjHOoe8cMZmeP7H3H7mfMqvzQ0l1wjMAqqeEcgpFhSzMWsTEL4XZeA==} + /@vue/reactivity@3.3.9: + resolution: {integrity: sha512-VmpIqlNp+aYDg2X0xQhJqHx9YguOmz2UxuUJDckBdQCNkipJvfk9yA75woLWElCa0Jtyec3lAAt49GO0izsphw==} + dependencies: + '@vue/shared': 3.3.9 + dev: true + + /@vue/repl@3.0.0: + resolution: {integrity: sha512-tGYibiftMo5yEuIKPWVsNuuNDejjJk0JQmvKtTm12KNLFqtGD7fWoGv1qUzcN9EAxwVeDgnT9ljRgqGVgZkyEg==} dev: false /@vue/runtime-core@3.3.4: @@ -4423,6 +4479,13 @@ packages: '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 + /@vue/runtime-core@3.3.9: + resolution: {integrity: sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w==} + dependencies: + '@vue/reactivity': 3.3.9 + '@vue/shared': 3.3.9 + dev: true + /@vue/runtime-dom@3.3.4: resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} dependencies: @@ -4430,6 +4493,14 @@ packages: '@vue/shared': 3.3.4 csstype: 3.1.2 + /@vue/runtime-dom@3.3.9: + resolution: {integrity: sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ==} + dependencies: + '@vue/runtime-core': 3.3.9 + '@vue/shared': 3.3.9 + csstype: 3.1.2 + dev: true + /@vue/server-renderer@3.3.4(vue@3.3.4): resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} peerDependencies: @@ -4439,9 +4510,23 @@ packages: '@vue/shared': 3.3.4 vue: 3.3.4 + /@vue/server-renderer@3.3.9(vue@3.3.9): + resolution: {integrity: sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A==} + peerDependencies: + vue: 3.3.9 + dependencies: + '@vue/compiler-ssr': 3.3.9 + '@vue/shared': 3.3.9 + vue: 3.3.9(typescript@5.2.2) + dev: true + /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + /@vue/shared@3.3.9: + resolution: {integrity: sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==} + dev: true + /@vue/test-utils@2.4.1(vue@3.3.4): resolution: {integrity: sha512-VO8nragneNzUZUah6kOjiFmD/gwRjUauG9DROh6oaOeFwX1cZRUNHhdeogE8635cISigXFTtGLUQWx5KCb0xeg==} peerDependencies: @@ -4676,6 +4761,11 @@ packages: engines: {node: '>=0.4.0'} dev: true + /acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} @@ -8074,6 +8164,17 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -9796,8 +9897,8 @@ packages: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true @@ -9805,7 +9906,7 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 dev: true @@ -9815,7 +9916,7 @@ packages: engines: {node: '>=10'} dependencies: debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -10428,6 +10529,14 @@ packages: engines: {node: '>=14'} dev: true + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 + dev: true + /locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -10619,6 +10728,14 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /magicast@0.3.2: + resolution: {integrity: sha512-Fjwkl6a0syt9TFN0JSYpOybxiMCkYNEeOTnOTNRbjphirLakznZXAqrXgj/7GG3D1dvETONNwrBfinvAbpunDg==} + dependencies: + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + source-map-js: 1.0.2 + dev: true + /make-dir@1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} engines: {node: '>=4'} @@ -11692,6 +11809,13 @@ packages: yocto-queue: 1.0.0 dev: true + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} @@ -13879,6 +14003,10 @@ packages: resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} dev: true + /std-env@3.6.0: + resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} + dev: true + /stream-each@1.2.3: resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} dependencies: @@ -14474,8 +14602,8 @@ packages: resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} dev: true - /tinypool@0.7.0: - resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + /tinypool@0.8.1: + resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} engines: {node: '>=14.0.0'} dev: true @@ -14905,8 +15033,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /unplugin-vue-components@0.25.2(vue@3.3.4): - resolution: {integrity: sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==} + /unplugin-vue-components@0.26.0(vue@3.3.4): + resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==} engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 @@ -14934,7 +15062,7 @@ packages: - supports-color dev: true - /unplugin-vue-markdown@0.25.2(vite@5.0.2): + /unplugin-vue-markdown@0.25.2(vite@5.0.4): resolution: {integrity: sha512-bDDWqtK1PUkWK/+kczOk33hqO5WulOUx5ZxfbCZuVArcUSwY7aB2vf4e2K+qdrlxalxkpjIA64z/liOrC/cjiQ==} peerDependencies: vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 @@ -14946,7 +15074,7 @@ packages: '@types/markdown-it': 13.0.6 markdown-it: 13.0.2 unplugin: 1.5.0 - vite: 5.0.2(@types/node@18.18.5)(sass@1.69.3) + vite: 5.0.4(@types/node@18.18.5)(sass@1.69.3) transitivePeerDependencies: - rollup dev: false @@ -15136,8 +15264,8 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.19 @@ -15202,17 +15330,16 @@ packages: replace-ext: 1.0.1 dev: true - /vite-node@0.34.6(@types/node@18.18.5)(sass@1.69.3): - resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} - engines: {node: '>=v14.18.0'} + /vite-node@1.0.1(@types/node@18.18.5)(sass@1.69.3): + resolution: {integrity: sha512-Y2Jnz4cr2azsOMMYuVPrQkp3KMnS/0WV8ezZjCy4hU7O5mUHCAVOnFmoEvs1nvix/4mYm74Len8bYRWZJMNP6g==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.0.2(@types/node@18.18.5)(sass@1.69.3) + vite: 5.0.4(@types/node@18.18.5)(sass@1.69.3) transitivePeerDependencies: - '@types/node' - less @@ -15224,8 +15351,8 @@ packages: - terser dev: true - /vite-plugin-inspect@0.7.42(vite@5.0.2): - resolution: {integrity: sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw==} + /vite-plugin-inspect@0.8.1(vite@5.0.2): + resolution: {integrity: sha512-oPBPVGp6tBd5KdY/qY6lrbLXqrbHRG0hZLvEaJfiZ/GQfDB+szRuLHblQh1oi1Hhh8GeLit/50l4xfs2SA+TCA==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' @@ -15283,32 +15410,69 @@ packages: sass: 1.69.3 optionalDependencies: fsevents: 2.3.3 + dev: true + + /vite@5.0.4(@types/node@18.18.5)(sass@1.69.3): + resolution: {integrity: sha512-RzAr8LSvM8lmhB4tQ5OPcBhpjOZRZjuxv9zO5UcxeoY2bd3kP3Ticd40Qma9/BqZ8JS96Ll/jeBX9u+LJZrhVg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.18.5 + esbuild: 0.19.6 + postcss: 8.4.31 + rollup: 4.5.0 + sass: 1.69.3 + optionalDependencies: + fsevents: 2.3.3 - /vitest-canvas-mock@0.3.3(vitest@0.34.6): + /vitest-canvas-mock@0.3.3(vitest@1.0.1): resolution: {integrity: sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==} peerDependencies: vitest: '*' dependencies: jest-canvas-mock: 2.5.2 - vitest: 0.34.6(@vitest/ui@0.34.6)(sass@1.69.3) + vitest: 1.0.1(@types/node@18.18.5)(@vitest/ui@1.0.1)(sass@1.69.3) dev: true - /vitest@0.34.6(@vitest/ui@0.34.6)(sass@1.69.3): - resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} - engines: {node: '>=v14.18.0'} + /vitest@1.0.1(@types/node@18.18.5)(@vitest/ui@1.0.1)(sass@1.69.3): + resolution: {integrity: sha512-MHsOj079S28hDsvdDvyD1pRj4dcS51EC5Vbe0xvOYX+WryP8soiK2dm8oULi+oA/8Xa/h6GoJEMTmcmBy5YM+Q==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 happy-dom: '*' jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/node': + optional: true '@vitest/browser': optional: true '@vitest/ui': @@ -15317,37 +15481,29 @@ packages: optional: true jsdom: optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true dependencies: - '@types/chai': 4.3.8 - '@types/chai-subset': 1.3.3 '@types/node': 18.18.5 - '@vitest/expect': 0.34.6 - '@vitest/runner': 0.34.6 - '@vitest/snapshot': 0.34.6 - '@vitest/spy': 0.34.6 - '@vitest/ui': 0.34.6(vitest@0.34.6) - '@vitest/utils': 0.34.6 - acorn: 8.10.0 - acorn-walk: 8.2.0 + '@vitest/expect': 1.0.1 + '@vitest/runner': 1.0.1 + '@vitest/snapshot': 1.0.1 + '@vitest/spy': 1.0.1 + '@vitest/ui': 1.0.1(vitest@1.0.1) + '@vitest/utils': 1.0.1 + acorn-walk: 8.3.0 cac: 6.7.14 chai: 4.3.10 debug: 4.3.4 - local-pkg: 0.4.3 + execa: 8.0.1 + local-pkg: 0.5.0 magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.4.3 + std-env: 3.6.0 strip-literal: 1.3.0 tinybench: 2.5.1 - tinypool: 0.7.0 - vite: 5.0.2(@types/node@18.18.5)(sass@1.69.3) - vite-node: 0.34.6(@types/node@18.18.5)(sass@1.69.3) + tinypool: 0.8.1 + vite: 5.0.4(@types/node@18.18.5)(sass@1.69.3) + vite-node: 1.0.1(@types/node@18.18.5)(sass@1.69.3) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -15545,6 +15701,22 @@ packages: '@vue/server-renderer': 3.3.4(vue@3.3.4) '@vue/shared': 3.3.4 + /vue@3.3.9(typescript@5.2.2): + resolution: {integrity: sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.3.9 + '@vue/compiler-sfc': 3.3.9 + '@vue/runtime-dom': 3.3.9 + '@vue/server-renderer': 3.3.9(vue@3.3.9) + '@vue/shared': 3.3.9 + typescript: 5.2.2 + dev: true + /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} diff --git a/publish/nutui-taro/CHANGELOG.md b/publish/nutui-taro/CHANGELOG.md index 0230b4d17b..513907d1ba 100644 --- a/publish/nutui-taro/CHANGELOG.md +++ b/publish/nutui-taro/CHANGELOG.md @@ -1,3 +1,17 @@ +## v4.2.3 + +`2023-11-30` + +Bug Fixes + +- ellipsis: 修复 taro 组件导出问题 @eiinu +- number-keyboard: 修复标题栏完成按钮样式丢失的问题 (#2696) @Moonofweisheng + +Other Changes + +- refactor: 优化组件间 provide & inject (#2681) @eiinu +- deps: bump vite to v5 (#2689) @eiinu + ## v4.2.2 `2023-11-24` diff --git a/publish/nutui-taro/README.md b/publish/nutui-taro/README.md index 8b09b2bde2..72c3a927f5 100644 --- a/publish/nutui-taro/README.md +++ b/publish/nutui-taro/README.md @@ -1,30 +1,46 @@

- logo + logo

京东风格的轻量级 Vue 组件库,支持移动端 H5 和 小程序开发

- + PRs Welcome + coverage + + license - + + - - + + - +

+ GitHub contributors + + GitHub commit activity + + GitHub closed issues + + GitHub commits since latest release (by date) + + GitHub Release Date + + jsdelivr +

@@ -71,15 +87,16 @@ 由 NutUI 官方团队维护的项目如下: -| 项目 | 描述 | -| --- | --- | -| [@nutui/nutui](https://github.com/jdf2e/nutui) | NutUI 移动端 H5 版本 | -| [@nutui/nutui-taro](https://github.com/jdf2e/nutui) | NutUI Taro 多端版本 | -| [@nutui/icons-vue](https://github.com/jdf2e/nutui-icons) | `@nutui/nutui` 使用的图标库 | -| [@nutui/icons-vue-taro](https://github.com/jdf2e/nutui-icons) | `@nutui/nutui-taro` 使用的图标库 | -| [@nutui/touch-emulator](https://github.com/jdf2e/nutui/tree/v4/packages/nutui-touch-emulator) | 在桌面端使用 NutUI 的辅助库 | -| [@nutui/playground](https://github.com/jdf2e/nutui/tree/v4/packages/nutui-playground) | NutUI 在线 Playground | -| [nutui-demo](https://github.com/jdf2e/nutui-demo) | NutUI 官方示例合集 | +| 项目 | 描述 | 版本 | +| --- | --- | --- | +| [@nutui/nutui](https://github.com/jdf2e/nutui) | NutUI 移动端 H5 版本 | ![nutui](https://img.shields.io/npm/v/@nutui/nutui.svg?label=%20) | +| [@nutui/nutui-taro](https://github.com/jdf2e/nutui) | NutUI Taro 多端版本 | ![nutui](https://img.shields.io/npm/v/@nutui/nutui-taro.svg?label=%20) | +| [@nutui/icons-vue](https://github.com/jdf2e/nutui-icons) | `@nutui/nutui` 使用的图标库 | ![nutui](https://img.shields.io/npm/v/@nutui/icons-vue.svg?label=%20) | +| [@nutui/icons-vue-taro](https://github.com/jdf2e/nutui-icons) | `@nutui/nutui-taro` 使用的图标库 | ![nutui](https://img.shields.io/npm/v/@nutui/icons-vue-taro.svg?label=%20) | +| [@nutui/touch-emulator](packages/nutui-touch-emulator) | 在桌面端使用 NutUI 的辅助库 | ![nutui](https://img.shields.io/npm/v/@nutui/touch-emulator.svg?label=%20) | +| [@nutui/auto-import-resolver](packages/nutui-auto-import-resolver) | `unplugin-auto-import` 插件的 reolver 配置 | ![nutui](https://img.shields.io/npm/v/@nutui/auto-import-resolver.svg?label=%20) | +| [@nutui/playground](packages/nutui-playground) | NutUI 在线 Playground | - | +| [nutui-demo](https://github.com/jdf2e/nutui-demo) | NutUI 官方示例合集 | - | ### 社区生态 @@ -142,13 +159,9 @@ NutUI 的共建方向主要分为:解决 issue、修复 bug、新增组件、 查阅 [Release](https://github.com/jdf2e/nutui/releases)。 -## Star - -[![Stargazers repo roster for @jdf2e/nutui](https://reporoster.com/stars/jdf2e/nutui)](https://github.com/jdf2e/nutui/stargazers) - -## Fork +## License -[![Forkers repo roster for @jdf2e/nutui](https://reporoster.com/forks/jdf2e/nutui)](https://github.com/jdf2e/nutui/network/members) +[MIT](https://github.com/jdf2e/nutui/blob/v4/LICENSE) ## GitHub Stargazaers diff --git a/publish/nutui-taro/package.json b/publish/nutui-taro/package.json index d4461b161d..0be2acad93 100644 --- a/publish/nutui-taro/package.json +++ b/publish/nutui-taro/package.json @@ -1,6 +1,6 @@ { "name": "@nutui/nutui-taro", - "version": "4.2.2", + "version": "4.2.3", "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)", "main": "dist/nutui.umd.js", "module": "dist/nutui.es.js", diff --git a/publish/nutui/CHANGELOG.md b/publish/nutui/CHANGELOG.md index 0230b4d17b..513907d1ba 100644 --- a/publish/nutui/CHANGELOG.md +++ b/publish/nutui/CHANGELOG.md @@ -1,3 +1,17 @@ +## v4.2.3 + +`2023-11-30` + +Bug Fixes + +- ellipsis: 修复 taro 组件导出问题 @eiinu +- number-keyboard: 修复标题栏完成按钮样式丢失的问题 (#2696) @Moonofweisheng + +Other Changes + +- refactor: 优化组件间 provide & inject (#2681) @eiinu +- deps: bump vite to v5 (#2689) @eiinu + ## v4.2.2 `2023-11-24` diff --git a/publish/nutui/README.md b/publish/nutui/README.md index 8b09b2bde2..72c3a927f5 100644 --- a/publish/nutui/README.md +++ b/publish/nutui/README.md @@ -1,30 +1,46 @@

- logo + logo

京东风格的轻量级 Vue 组件库,支持移动端 H5 和 小程序开发

- + PRs Welcome + coverage + + license - + + - - + + - +

+ GitHub contributors + + GitHub commit activity + + GitHub closed issues + + GitHub commits since latest release (by date) + + GitHub Release Date + + jsdelivr +

@@ -71,15 +87,16 @@ 由 NutUI 官方团队维护的项目如下: -| 项目 | 描述 | -| --- | --- | -| [@nutui/nutui](https://github.com/jdf2e/nutui) | NutUI 移动端 H5 版本 | -| [@nutui/nutui-taro](https://github.com/jdf2e/nutui) | NutUI Taro 多端版本 | -| [@nutui/icons-vue](https://github.com/jdf2e/nutui-icons) | `@nutui/nutui` 使用的图标库 | -| [@nutui/icons-vue-taro](https://github.com/jdf2e/nutui-icons) | `@nutui/nutui-taro` 使用的图标库 | -| [@nutui/touch-emulator](https://github.com/jdf2e/nutui/tree/v4/packages/nutui-touch-emulator) | 在桌面端使用 NutUI 的辅助库 | -| [@nutui/playground](https://github.com/jdf2e/nutui/tree/v4/packages/nutui-playground) | NutUI 在线 Playground | -| [nutui-demo](https://github.com/jdf2e/nutui-demo) | NutUI 官方示例合集 | +| 项目 | 描述 | 版本 | +| --- | --- | --- | +| [@nutui/nutui](https://github.com/jdf2e/nutui) | NutUI 移动端 H5 版本 | ![nutui](https://img.shields.io/npm/v/@nutui/nutui.svg?label=%20) | +| [@nutui/nutui-taro](https://github.com/jdf2e/nutui) | NutUI Taro 多端版本 | ![nutui](https://img.shields.io/npm/v/@nutui/nutui-taro.svg?label=%20) | +| [@nutui/icons-vue](https://github.com/jdf2e/nutui-icons) | `@nutui/nutui` 使用的图标库 | ![nutui](https://img.shields.io/npm/v/@nutui/icons-vue.svg?label=%20) | +| [@nutui/icons-vue-taro](https://github.com/jdf2e/nutui-icons) | `@nutui/nutui-taro` 使用的图标库 | ![nutui](https://img.shields.io/npm/v/@nutui/icons-vue-taro.svg?label=%20) | +| [@nutui/touch-emulator](packages/nutui-touch-emulator) | 在桌面端使用 NutUI 的辅助库 | ![nutui](https://img.shields.io/npm/v/@nutui/touch-emulator.svg?label=%20) | +| [@nutui/auto-import-resolver](packages/nutui-auto-import-resolver) | `unplugin-auto-import` 插件的 reolver 配置 | ![nutui](https://img.shields.io/npm/v/@nutui/auto-import-resolver.svg?label=%20) | +| [@nutui/playground](packages/nutui-playground) | NutUI 在线 Playground | - | +| [nutui-demo](https://github.com/jdf2e/nutui-demo) | NutUI 官方示例合集 | - | ### 社区生态 @@ -142,13 +159,9 @@ NutUI 的共建方向主要分为:解决 issue、修复 bug、新增组件、 查阅 [Release](https://github.com/jdf2e/nutui/releases)。 -## Star - -[![Stargazers repo roster for @jdf2e/nutui](https://reporoster.com/stars/jdf2e/nutui)](https://github.com/jdf2e/nutui/stargazers) - -## Fork +## License -[![Forkers repo roster for @jdf2e/nutui](https://reporoster.com/forks/jdf2e/nutui)](https://github.com/jdf2e/nutui/network/members) +[MIT](https://github.com/jdf2e/nutui/blob/v4/LICENSE) ## GitHub Stargazaers diff --git a/publish/nutui/package.json b/publish/nutui/package.json index b47eb4ac11..e20365c874 100644 --- a/publish/nutui/package.json +++ b/publish/nutui/package.json @@ -1,6 +1,6 @@ { "name": "@nutui/nutui", - "version": "4.2.2", + "version": "4.2.3", "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)", "main": "dist/nutui.umd.js", "module": "dist/nutui.es.js", diff --git a/scripts/generate-unplugin-deps.cjs b/scripts/generate-unplugin-deps.cjs index 4e8e67790e..1cd7be33cf 100644 --- a/scripts/generate-unplugin-deps.cjs +++ b/scripts/generate-unplugin-deps.cjs @@ -32,12 +32,12 @@ export { ${element.name}, show${element.name}, ${element.name} as default };`; outputMjs = `import ${element.name} from './${element.name}.js'; export { ${element.name}, ${element.name} as default };`; } + let folderName = element.name.toLowerCase(); tasks.push( - fs.outputFile(path.resolve(__dirname, `../dist/packages/${element.name}/index.mjs`), outputMjs, 'utf8', () => { + fs.outputFile(path.resolve(__dirname, `../dist/packages/${folderName}/index.mjs`), outputMjs, 'utf8', () => { // console.log('') }) ); - let folderName = element.name.toLowerCase(); outputFileEntry += `export * from "./packages/${folderName}/index.mjs";\n`; components.push(element.name); } diff --git a/src/packages/__VUE/actionsheet/__tests__/__snapshots__/index.spec.ts.snap b/src/packages/__VUE/actionsheet/__tests__/__snapshots__/index.spec.ts.snap index 296940b4e2..51e21701ea 100644 --- a/src/packages/__VUE/actionsheet/__tests__/__snapshots__/index.spec.ts.snap +++ b/src/packages/__VUE/actionsheet/__tests__/__snapshots__/index.spec.ts.snap @@ -2,19 +2,19 @@ exports[`should render sure actionsheet when use custom props 1`] = ` " - - + + - - - + + + - - + + 选项一 - 描述信息 + 描述信息 diff --git a/src/packages/__VUE/actionsheet/demo.vue b/src/packages/__VUE/actionsheet/demo.vue index 3ccc232559..94187f76aa 100644 --- a/src/packages/__VUE/actionsheet/demo.vue +++ b/src/packages/__VUE/actionsheet/demo.vue @@ -56,8 +56,6 @@ diff --git a/src/packages/__VUE/divider/demo/basic.vue b/src/packages/__VUE/divider/demo/basic.vue new file mode 100644 index 0000000000..d2b4f9635a --- /dev/null +++ b/src/packages/__VUE/divider/demo/basic.vue @@ -0,0 +1,3 @@ + diff --git a/src/packages/__VUE/divider/demo/custom.vue b/src/packages/__VUE/divider/demo/custom.vue new file mode 100644 index 0000000000..48594270cb --- /dev/null +++ b/src/packages/__VUE/divider/demo/custom.vue @@ -0,0 +1,3 @@ + diff --git a/src/packages/__VUE/divider/demo/dashed.vue b/src/packages/__VUE/divider/demo/dashed.vue new file mode 100644 index 0000000000..0e45d81f88 --- /dev/null +++ b/src/packages/__VUE/divider/demo/dashed.vue @@ -0,0 +1,3 @@ + diff --git a/src/packages/__VUE/divider/demo/position.vue b/src/packages/__VUE/divider/demo/position.vue new file mode 100644 index 0000000000..404a3b2c6c --- /dev/null +++ b/src/packages/__VUE/divider/demo/position.vue @@ -0,0 +1,5 @@ + diff --git a/src/packages/__VUE/divider/demo/text.vue b/src/packages/__VUE/divider/demo/text.vue new file mode 100644 index 0000000000..7b2b831bdb --- /dev/null +++ b/src/packages/__VUE/divider/demo/text.vue @@ -0,0 +1,3 @@ + diff --git a/src/packages/__VUE/divider/demo/vertical.vue b/src/packages/__VUE/divider/demo/vertical.vue new file mode 100644 index 0000000000..2978aa7201 --- /dev/null +++ b/src/packages/__VUE/divider/demo/vertical.vue @@ -0,0 +1,9 @@ + diff --git a/src/packages/__VUE/divider/doc.en-US.md b/src/packages/__VUE/divider/doc.en-US.md index 33b788dcbe..51ae46846e 100644 --- a/src/packages/__VUE/divider/doc.en-US.md +++ b/src/packages/__VUE/divider/doc.en-US.md @@ -18,106 +18,51 @@ app.use(Divider); Default render one horizontal divider line. -:::demo - -```vue - -``` - -::: +> demo: divider basic ### With Text Insert text into divider with default slot. -:::demo - -```vue - -``` - -::: +> demo: divider text ### Content Position Set Content Position with content-position attribute. -:::demo - -```vue - -``` - -::: +> demo: divider position ### Dashed Render dashed divider line with dashed attribute. -:::demo - -```vue - -``` - -::: +> demo: divider dashed ### Custom Style User can custom divider style with style attribute. -:::demo - -```vue - -``` - -::: +> demo: divider custom ### Vertical Divider -:::demo - -```vue - -``` - -::: +> demo: divider vertical ## API ### Props -| Attribute | Description | Type | Default | -| ---------------- | -------------------------------------------------- | ------- | ------------ | -| dashed | Whether to use dashed border | boolean | `false` | -| hairline | Whether to use hairline | boolean | `true` | -| content-position | Content position, can be set to `left` or `right` | string | `center` | -| direction | The direction of divider, can to set to `vertical` | string | `horizontal` | +| Attribute | Description | Type | Default | +| --- | --- | --- | --- | +| dashed | Whether to use dashed border | boolean | `false` | +| hairline | Whether to use hairline | boolean | `true` | +| content-position | Content position, can be set to `left` or `right` | string | `center` | +| direction | The direction of divider, can to set to `vertical` | string | `horizontal` | ### Slots -| Name | Description | -| ------- | --------------------------------------------- | +| Name | Description | +| --- | --- | | default | Default slot, when `direction` = `horizontal` | ## Theming @@ -126,15 +71,15 @@ User can custom divider style with style attribute. The component provides the following CSS variables, which can be used to customize styles. Please refer to [ConfigProvider component](#/en-US/component/configprovider). -| Name | Default Value | -| ---------------------------------- | ------------------------ | -| --nut-divider-margin | _16px 0_ | -| --nut-divider-text-font-size | _var(--nut-font-size-2)_ | -| --nut-divider-text-color | _#909ca4_ | -| --nut-divider-line-height | _2px_ | -| --nut-divider-before-margin-right | _16px_ | -| --nut-divider-after-margin-left | _16px_ | -| --nut-divider-vertical-height | _12px_ | -| --nut-divider-vertical-top | _2px_ | -| --nut-divider-vertical-border-left | _rgba(0, 0, 0, 0.06)_ | -| --nut-divider-vertical-margin | _0 8px_ | +| Name | Default Value | +| --- | --- | +| --nut-divider-margin | _16px 0_ | +| --nut-divider-text-font-size | _var(--nut-font-size-2)_ | +| --nut-divider-text-color | _#909ca4_ | +| --nut-divider-line-height | _2px_ | +| --nut-divider-before-margin-right | _16px_ | +| --nut-divider-after-margin-left | _16px_ | +| --nut-divider-vertical-height | _12px_ | +| --nut-divider-vertical-top | _2px_ | +| --nut-divider-vertical-border-left | _rgba(0, 0, 0, 0.06)_ | +| --nut-divider-vertical-margin | _0 8px_ | diff --git a/src/packages/__VUE/divider/doc.md b/src/packages/__VUE/divider/doc.md index f9bc76d892..2f5d8af006 100644 --- a/src/packages/__VUE/divider/doc.md +++ b/src/packages/__VUE/divider/doc.md @@ -18,106 +18,51 @@ app.use(Divider); 默认渲染一条水平分割线。 -:::demo - -```vue - -``` - -::: +> demo: divider basic ### 展示文本 通过插槽可以在分割线中间插入内容。 -:::demo - -```vue - -``` - -::: +> demo: divider text ### 内容位置 通过 content-position 指定内容所在位置。 -:::demo - -```vue - -``` - -::: +> demo: divider position ### 虚线 添加 dashed 属性使分割线渲染为虚线。 -:::demo - -```vue - -``` - -::: +> demo: divider dashed ### 自定义样式 可以直接通过 style 属性设置分割线的样式。 -:::demo - -```vue - -``` - -::: +> demo: divider custom ### 垂直分割线 -:::demo - -```vue - -``` - -::: +> demo: divider vertical ## API ### Props -| 参数 | 说明 | 类型 | 默认值 | -| ---------------- | ----------------------------------- | ------- | ------------ | -| dashed | 是否使用虚线 | boolean | `false` | -| hairline | 是否使用 `0.5px` 线 | boolean | `true` | -| content-position | 内容位置,可选值为 `left`、`right` | string | `center` | -| direction | 水平还是垂直类型,可选值 `vertical` | string | `horizontal` | +| 参数 | 说明 | 类型 | 默认值 | +| --- | --- | --- | --- | +| dashed | 是否使用虚线 | boolean | `false` | +| hairline | 是否使用 `0.5px` 线 | boolean | `true` | +| content-position | 内容位置,可选值为 `left`、`right` | string | `center` | +| direction | 水平还是垂直类型,可选值 `vertical` | string | `horizontal` | ### Slots -| 名称 | 说明 | -| ------- | --------------------------------------------- | +| 名称 | 说明 | +| --- | --- | | default | 内容,仅在 `direction` 为 `horizontal` 时生效 | ## 主题定制 @@ -126,15 +71,15 @@ app.use(Divider); 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](#/zh-CN/component/configprovider)。 -| 名称 | 默认值 | -| ---------------------------------- | ------------------------ | -| --nut-divider-margin | _16px 0_ | -| --nut-divider-text-font-size | _var(--nut-font-size-2)_ | -| --nut-divider-text-color | _#909ca4_ | -| --nut-divider-line-height | _2px_ | -| --nut-divider-before-margin-right | _16px_ | -| --nut-divider-after-margin-left | _16px_ | -| --nut-divider-vertical-height | _12px_ | -| --nut-divider-vertical-top | _2px_ | -| --nut-divider-vertical-border-left | _rgba(0, 0, 0, 0.06)_ | -| --nut-divider-vertical-margin | _0 8px_ | +| 名称 | 默认值 | +| --- | --- | +| --nut-divider-margin | _16px 0_ | +| --nut-divider-text-font-size | _var(--nut-font-size-2)_ | +| --nut-divider-text-color | _#909ca4_ | +| --nut-divider-line-height | _2px_ | +| --nut-divider-before-margin-right | _16px_ | +| --nut-divider-after-margin-left | _16px_ | +| --nut-divider-vertical-height | _12px_ | +| --nut-divider-vertical-top | _2px_ | +| --nut-divider-vertical-border-left | _rgba(0, 0, 0, 0.06)_ | +| --nut-divider-vertical-margin | _0 8px_ | diff --git a/src/packages/__VUE/divider/index.taro.vue b/src/packages/__VUE/divider/index.taro.vue index c601962716..fb25ac45f0 100644 --- a/src/packages/__VUE/divider/index.taro.vue +++ b/src/packages/__VUE/divider/index.taro.vue @@ -7,7 +7,7 @@ import { PropType, computed } from 'vue'; import { createComponent } from '@/packages/utils/create'; import { DividerDirection, DividerPosition } from './types'; -const { componentName, create } = createComponent('divider'); +const { create } = createComponent('divider'); export default create({ props: { @@ -30,7 +30,7 @@ export default create({ }, setup(props, context) { const classes = computed(() => { - const prefixCls = componentName; + const prefixCls = 'nut-divider'; if (props.direction === 'horizontal') { return { [prefixCls]: true, diff --git a/src/packages/__VUE/divider/index.vue b/src/packages/__VUE/divider/index.vue index c601962716..fb25ac45f0 100644 --- a/src/packages/__VUE/divider/index.vue +++ b/src/packages/__VUE/divider/index.vue @@ -7,7 +7,7 @@ import { PropType, computed } from 'vue'; import { createComponent } from '@/packages/utils/create'; import { DividerDirection, DividerPosition } from './types'; -const { componentName, create } = createComponent('divider'); +const { create } = createComponent('divider'); export default create({ props: { @@ -30,7 +30,7 @@ export default create({ }, setup(props, context) { const classes = computed(() => { - const prefixCls = componentName; + const prefixCls = 'nut-divider'; if (props.direction === 'horizontal') { return { [prefixCls]: true, diff --git a/src/packages/__VUE/drag/__tests__/__snapshots__/index.spec.ts.snap b/src/packages/__VUE/drag/__tests__/__snapshots__/index.spec.ts.snap index 452a2df3ed..18de7b80b7 100644 --- a/src/packages/__VUE/drag/__tests__/__snapshots__/index.spec.ts.snap +++ b/src/packages/__VUE/drag/__tests__/__snapshots__/index.spec.ts.snap @@ -1,3 +1,3 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`should render default slot correctly 1`] = `"Custom Message"`; +exports[`should render default slot correctly 1`] = `"Custom Message"`; diff --git a/src/packages/__VUE/drag/demo.vue b/src/packages/__VUE/drag/demo.vue index b006c6dcac..183f519a00 100644 --- a/src/packages/__VUE/drag/demo.vue +++ b/src/packages/__VUE/drag/demo.vue @@ -27,8 +27,6 @@ +``` + +::: + ## API ### Form Props @@ -424,6 +453,8 @@ const addressModule = reactive({ | --- | --- | --- | --- | | model-value | Form data object (required when using form verification) | object | | | rules | Unified configuration FormItem attr rules | { prop: FormItemRule[] } | `{}` | +| label-position`v4.2.4` | The location of the form item label | `top` \| `left` \| `right` | `left` | +| star-position`v4.2.4` | The red star position of the single label is required | `left` \| `right` | `left` | ### Form Events @@ -444,6 +475,8 @@ const addressModule = reactive({ | error-message-align | Error prompt text alignment. The optional values are `center` and `right` | string | `left` | | show-error-line | Whether to mark the input box in red when the verification fails | boolean | `true` | | show-error-message | Whether to display the error prompt under the input box when the verification fails | boolean | `true` | +| label-position`v4.2.4` | The location of the form item label, The priority is higher than that in form label-position | `top` \| `left` \| `right` | `left` | +| star-position`v4.2.4` | The red star position of the single label is required, The priority is higher than that in form star-position | `left` \| `right` | `left` | ### FormItemRule data structure diff --git a/src/packages/__VUE/form/doc.md b/src/packages/__VUE/form/doc.md index 1c5fca35dc..1c0d38a81a 100644 --- a/src/packages/__VUE/form/doc.md +++ b/src/packages/__VUE/form/doc.md @@ -411,6 +411,35 @@ const addressModule = reactive({ ::: +### 自定义 Label & Star 位置 v4.2.4 + +:::demo + +```vue + + +``` + +::: + ## API ### Form Props @@ -419,6 +448,8 @@ const addressModule = reactive({ | --- | --- | --- | --- | | model-value | 表单数据对象(使用表单校验时,_必填_) | object | | | rules | 统一配置每个 `FormItem` 的 `rules` | { prop: FormItemRule[] } | `{}` | +| label-position`v4.2.4` | 表单项 label 的位置 | `top` \| `left` \| `right` | `left` | +| star-position`v4.2.4` | 必填表单项 label 的红色星标位置 | `left` \| `right` | `left` | ### Form Events @@ -439,6 +470,8 @@ const addressModule = reactive({ | error-message-align | 错误提示文案对齐方式,可选值为 `center` `right` | string | `left` | | show-error-line | 是否在校验不通过时标红输入框 | boolean | `true` | | show-error-message | 是否在校验不通过时在输入框下方展示错误提示 | boolean | `true` | +| label-position`v4.2.4` | 表单项 label 的位置,优先级高于 form 中的 label-position | `top` \| `left` \| `right` | `left` | +| star-position`v4.2.4` | 必填表单项 label 的红色星标位置,优先级高于 form 中的 star-position | `left` \| `right` | `left` | ### FormItemRule 数据结构 diff --git a/src/packages/__VUE/form/doc.taro.md b/src/packages/__VUE/form/doc.taro.md index d32318e5e6..ac98784ba3 100644 --- a/src/packages/__VUE/form/doc.taro.md +++ b/src/packages/__VUE/form/doc.taro.md @@ -411,6 +411,35 @@ const addressModule = reactive({ ::: +### 自定义 Label & Star 位置 v4.2.4 + +:::demo + +```vue + + +``` + +::: + ## API ### Form Props @@ -419,6 +448,8 @@ const addressModule = reactive({ | --- | --- | --- | --- | | model-value | 表单数据对象(使用表单校验时,_必填_) | object | | | rules | 统一配置每个 `FormItem` 的 `rules` | { prop: FormItemRule[] } | `{}` | +| label-position`v4.2.4` | 表单项 label 的位置 | `top` \| `left` \| `right` | `left` | +| star-position`v4.2.4` | 必填表单项 label 的红色星标位置 | `left` \| `right` | `left` | ### Form Events @@ -439,6 +470,8 @@ const addressModule = reactive({ | error-message-align | 错误提示文案对齐方式,可选值为 `center` `right` | string | `left` | | show-error-line | 是否在校验不通过时标红输入框 | boolean | `true` | | show-error-message | 是否在校验不通过时在输入框下方展示错误提示 | boolean | `true` | +| label-position`v4.2.4` | 表单项 label 的位置,优先级高于 form 中的 label-position | `top` \| `left` \| `right` | `left` | +| star-position`v4.2.4` | 必填表单项 label 的红色星标位置,优先级高于 form 中的 star-position | `left` \| `right` | `left` | ### FormItemRule 数据结构 diff --git a/src/packages/__VUE/form/types.ts b/src/packages/__VUE/form/types.ts index 014e6a65f0..53c3194572 100644 --- a/src/packages/__VUE/form/types.ts +++ b/src/packages/__VUE/form/types.ts @@ -1,4 +1,4 @@ -import { FormItemRule } from '../formitem/types'; +import { FormItemRule, FormItemLabelPosition, FormItemStarPosition } from '../formitem/types'; export const FORM_KEY = Symbol('nut-form'); @@ -15,3 +15,6 @@ export type ErrorMessage = { prop: string; message: string; }; + +export type FormLabelPosition = FormItemLabelPosition; +export type FormStarPosition = FormItemStarPosition; diff --git a/src/packages/__VUE/formitem/index.scss b/src/packages/__VUE/formitem/index.scss index 3759a36753..d44003b5f5 100644 --- a/src/packages/__VUE/formitem/index.scss +++ b/src/packages/__VUE/formitem/index.scss @@ -51,6 +51,16 @@ color: $form-item-required-color; margin-right: $form-item-required-margin-right; } + &.nut-form-item__star-right { + &::before { + content: none; + } + &::after { + content: '*'; + color: $form-item-required-color; + margin-left: $form-item-required-margin-right; + } + } } } &__body { @@ -87,4 +97,19 @@ color: $form-item-error-message-color; } } + + &__right { + --nut-form-item-label-text-align: right; + } + + &__top { + flex-direction: column; + .nut-form-item__label { + padding-bottom: 5px; + width: 100%; + box-sizing: border-box; + display: block; + padding-right: 24px; + } + } } diff --git a/src/packages/__VUE/formitem/index.taro.vue b/src/packages/__VUE/formitem/index.taro.vue index 3950299724..e8cd17d13f 100644 --- a/src/packages/__VUE/formitem/index.taro.vue +++ b/src/packages/__VUE/formitem/index.taro.vue @@ -1,14 +1,14 @@