Jelajahi Sumber

chore(config): 添加 antdv 配置

wangcong 3 bulan lalu
induk
melakukan
6706fafcaa
6 mengubah file dengan 468 tambahan dan 22 penghapusan
  1. 1 0
      package.json
  2. 186 7
      pnpm-lock.yaml
  3. 0 13
      src/App.vue
  4. 1 0
      src/main.ts
  5. 273 0
      src/types/ant-components.d.ts
  6. 7 2
      vite.config.ts

+ 1 - 0
package.json

@@ -19,6 +19,7 @@
     "prepare": "husky"
   },
   "dependencies": {
+    "ant-design-vue": "^4.2.6",
     "element-plus": "^2.9.3",
     "pinia": "^2.3.0",
     "vue": "^3.5.13",

+ 186 - 7
pnpm-lock.yaml

@@ -8,6 +8,9 @@ importers:
 
   .:
     dependencies:
+      ant-design-vue:
+        specifier: ^4.2.6
+        version: 4.2.6(vue@3.5.13(typescript@5.6.3))
       element-plus:
         specifier: ^2.9.3
         version: 2.9.3(vue@3.5.13(typescript@5.6.3))
@@ -163,6 +166,17 @@ packages:
     resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
     engines: {node: '>=6.0.0'}
 
+  '@ant-design/colors@6.0.0':
+    resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==}
+
+  '@ant-design/icons-svg@4.4.2':
+    resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==}
+
+  '@ant-design/icons-vue@7.0.1':
+    resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==}
+    peerDependencies:
+      vue: '>=3.0.3'
+
   '@antfu/install-pkg@0.4.1':
     resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==}
 
@@ -293,6 +307,10 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
+  '@babel/runtime@7.26.7':
+    resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==}
+    engines: {node: '>=6.9.0'}
+
   '@babel/template@7.25.9':
     resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
     engines: {node: '>=6.9.0'}
@@ -420,6 +438,12 @@ packages:
     peerDependencies:
       vue: ^3.2.0
 
+  '@emotion/hash@0.9.2':
+    resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
+
+  '@emotion/unitless@0.8.1':
+    resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
+
   '@esbuild/aix-ppc64@0.21.5':
     resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
     engines: {node: '>=12'}
@@ -962,8 +986,8 @@ packages:
     resolution: {integrity: sha512-lH164+aDDptHZ3dBDbIhRa1dOPQUp+83iugpc+1upTOWCnwyC1PVis6rSWNMMJ8VQxvtHQB9JMib48K55y0PvQ==}
     engines: {node: '>= 16'}
 
-  '@intlify/shared@11.1.0':
-    resolution: {integrity: sha512-DvpNSxiMrFqYMaGSRDDnQgO/L0MqNH4KWw9CUx8LRHHIdWp08En9DpmSRNpauUOxKpHAhyJJxx92BHZk9J84EQ==}
+  '@intlify/shared@11.1.1':
+    resolution: {integrity: sha512-2kGiWoXaeV8HZlhU/Nml12oTbhv7j2ufsJ5vQaa0VTjzUmZVdd/nmKFRAOJ/FtjO90Qba5AnZDwsrY7ZND5udA==}
     engines: {node: '>= 16'}
 
   '@intlify/unplugin-vue-i18n@6.0.3':
@@ -1262,6 +1286,9 @@ packages:
   '@sideway/pinpoint@2.0.0':
     resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
 
+  '@simonwep/pickr@1.8.2':
+    resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
+
   '@sindresorhus/merge-streams@4.0.0':
     resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
     engines: {node: '>=18'}
@@ -1684,6 +1711,12 @@ packages:
     resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
     engines: {node: '>=12'}
 
+  ant-design-vue@4.2.6:
+    resolution: {integrity: sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==}
+    engines: {node: '>=12.22.0'}
+    peerDependencies:
+      vue: '>=3.2.0'
+
   anymatch@3.1.3:
     resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
     engines: {node: '>= 8'}
@@ -1708,6 +1741,9 @@ packages:
     resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
     engines: {node: '>= 0.4'}
 
+  array-tree-filter@2.1.0:
+    resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==}
+
   array-union@2.1.0:
     resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
     engines: {node: '>=8'}
@@ -1954,6 +1990,9 @@ packages:
   compare-func@2.0.0:
     resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
 
+  compute-scroll-into-view@1.0.20:
+    resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
+
   concat-map@0.0.1:
     resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
 
@@ -1987,6 +2026,9 @@ packages:
     resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
     engines: {node: '>=12.13'}
 
+  core-js@3.40.0:
+    resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==}
+
   core-util-is@1.0.2:
     resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
 
@@ -2144,6 +2186,12 @@ packages:
     resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
     engines: {node: '>=0.10.0'}
 
+  dom-align@1.12.4:
+    resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
+
+  dom-scroll-into-view@2.0.1:
+    resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==}
+
   dom-serializer@2.0.0:
     resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
 
@@ -2987,6 +3035,10 @@ packages:
     resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
     engines: {node: '>=12'}
 
+  is-plain-object@3.0.1:
+    resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==}
+    engines: {node: '>=0.10.0'}
+
   is-plain-object@5.0.0:
     resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
     engines: {node: '>=0.10.0'}
@@ -3297,6 +3349,10 @@ packages:
     resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
     engines: {node: '>=18'}
 
+  loose-envify@1.4.0:
+    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+    hasBin: true
+
   loupe@3.1.2:
     resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
 
@@ -3423,6 +3479,9 @@ packages:
     engines: {node: ^18 || >=20}
     hasBin: true
 
+  nanopop@2.4.2:
+    resolution: {integrity: sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==}
+
   natural-compare@1.4.0:
     resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
 
@@ -3786,6 +3845,9 @@ packages:
     resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
     engines: {node: '>= 0.4'}
 
+  regenerator-runtime@0.14.1:
+    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+
   regexp.prototype.flags@1.5.4:
     resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
     engines: {node: '>= 0.4'}
@@ -3801,6 +3863,9 @@ packages:
     resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
     engines: {node: '>=0.10.0'}
 
+  resize-observer-polyfill@1.5.1:
+    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
+
   resolve-from@4.0.0:
     resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
     engines: {node: '>=4'}
@@ -3882,6 +3947,9 @@ packages:
     resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
     engines: {node: '>=v12.22.7'}
 
+  scroll-into-view-if-needed@2.2.31:
+    resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
+
   scule@1.3.0:
     resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
 
@@ -3906,6 +3974,9 @@ packages:
     resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
     engines: {node: '>= 0.4'}
 
+  shallow-equal@1.2.1:
+    resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
+
   shebang-command@2.0.0:
     resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
     engines: {node: '>=8'}
@@ -4146,6 +4217,9 @@ packages:
     engines: {node: '>=18.12.0'}
     hasBin: true
 
+  stylis@4.3.6:
+    resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
+
   superjson@2.2.2:
     resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==}
     engines: {node: '>=16'}
@@ -4188,6 +4262,10 @@ packages:
     resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
     engines: {node: '>=8'}
 
+  throttle-debounce@5.0.2:
+    resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
+    engines: {node: '>=12.22'}
+
   throttleit@1.0.1:
     resolution: {integrity: sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==}
 
@@ -4579,6 +4657,12 @@ packages:
     peerDependencies:
       typescript: '>=5.0.0'
 
+  vue-types@3.0.2:
+    resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==}
+    engines: {node: '>=10.15.0'}
+    peerDependencies:
+      vue: ^3.0.0
+
   vue@3.5.13:
     resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
     peerDependencies:
@@ -4596,6 +4680,9 @@ packages:
     engines: {node: '>=12.0.0'}
     hasBin: true
 
+  warning@4.0.3:
+    resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
+
   webidl-conversions@7.0.0:
     resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
     engines: {node: '>=12'}
@@ -4746,6 +4833,18 @@ snapshots:
       '@jridgewell/gen-mapping': 0.3.8
       '@jridgewell/trace-mapping': 0.3.25
 
+  '@ant-design/colors@6.0.0':
+    dependencies:
+      '@ctrl/tinycolor': 3.6.1
+
+  '@ant-design/icons-svg@4.4.2': {}
+
+  '@ant-design/icons-vue@7.0.1(vue@3.5.13(typescript@5.6.3))':
+    dependencies:
+      '@ant-design/colors': 6.0.0
+      '@ant-design/icons-svg': 4.4.2
+      vue: 3.5.13(typescript@5.6.3)
+
   '@antfu/install-pkg@0.4.1':
     dependencies:
       package-manager-detector: 0.2.8
@@ -4919,6 +5018,10 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  '@babel/runtime@7.26.7':
+    dependencies:
+      regenerator-runtime: 0.14.1
+
   '@babel/template@7.25.9':
     dependencies:
       '@babel/code-frame': 7.26.2
@@ -5106,6 +5209,10 @@ snapshots:
     dependencies:
       vue: 3.5.13(typescript@5.6.3)
 
+  '@emotion/hash@0.9.2': {}
+
+  '@emotion/unitless@0.8.1': {}
+
   '@esbuild/aix-ppc64@0.21.5':
     optional: true
 
@@ -5445,14 +5552,14 @@ snapshots:
 
   '@intlify/shared@11.0.1': {}
 
-  '@intlify/shared@11.1.0': {}
+  '@intlify/shared@11.1.1': {}
 
   '@intlify/unplugin-vue-i18n@6.0.3(@vue/compiler-dom@3.5.13)(eslint@9.17.0(jiti@2.4.2))(rollup@4.29.1)(typescript@5.6.3)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))':
     dependencies:
       '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0(jiti@2.4.2))
       '@intlify/bundle-utils': 10.0.0(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))
-      '@intlify/shared': 11.1.0
-      '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.0)(@vue/compiler-dom@3.5.13)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))
+      '@intlify/shared': 11.1.1
+      '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.1)(@vue/compiler-dom@3.5.13)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))
       '@rollup/pluginutils': 5.1.4(rollup@4.29.1)
       '@typescript-eslint/scope-manager': 8.19.0
       '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.6.3)
@@ -5474,11 +5581,11 @@ snapshots:
       - supports-color
       - typescript
 
-  '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.0)(@vue/compiler-dom@3.5.13)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))':
+  '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.1)(@vue/compiler-dom@3.5.13)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))':
     dependencies:
       '@babel/parser': 7.26.3
     optionalDependencies:
-      '@intlify/shared': 11.1.0
+      '@intlify/shared': 11.1.1
       '@vue/compiler-dom': 3.5.13
       vue: 3.5.13(typescript@5.6.3)
       vue-i18n: 11.0.1(vue@3.5.13(typescript@5.6.3))
@@ -5668,6 +5775,11 @@ snapshots:
 
   '@sideway/pinpoint@2.0.0': {}
 
+  '@simonwep/pickr@1.8.2':
+    dependencies:
+      core-js: 3.40.0
+      nanopop: 2.4.2
+
   '@sindresorhus/merge-streams@4.0.0': {}
 
   '@sxzz/popperjs-es@2.11.7': {}
@@ -6273,6 +6385,32 @@ snapshots:
 
   ansi-styles@6.2.1: {}
 
+  ant-design-vue@4.2.6(vue@3.5.13(typescript@5.6.3)):
+    dependencies:
+      '@ant-design/colors': 6.0.0
+      '@ant-design/icons-vue': 7.0.1(vue@3.5.13(typescript@5.6.3))
+      '@babel/runtime': 7.26.7
+      '@ctrl/tinycolor': 3.6.1
+      '@emotion/hash': 0.9.2
+      '@emotion/unitless': 0.8.1
+      '@simonwep/pickr': 1.8.2
+      array-tree-filter: 2.1.0
+      async-validator: 4.2.5
+      csstype: 3.1.3
+      dayjs: 1.11.13
+      dom-align: 1.12.4
+      dom-scroll-into-view: 2.0.1
+      lodash: 4.17.21
+      lodash-es: 4.17.21
+      resize-observer-polyfill: 1.5.1
+      scroll-into-view-if-needed: 2.2.31
+      shallow-equal: 1.2.1
+      stylis: 4.3.6
+      throttle-debounce: 5.0.2
+      vue: 3.5.13(typescript@5.6.3)
+      vue-types: 3.0.2(vue@3.5.13(typescript@5.6.3))
+      warning: 4.0.3
+
   anymatch@3.1.3:
     dependencies:
       normalize-path: 3.0.0
@@ -6300,6 +6438,8 @@ snapshots:
       get-intrinsic: 1.2.7
       is-string: 1.1.1
 
+  array-tree-filter@2.1.0: {}
+
   array-union@2.1.0: {}
 
   array.prototype.findlastindex@1.2.5:
@@ -6548,6 +6688,8 @@ snapshots:
       array-ify: 1.0.0
       dot-prop: 5.3.0
 
+  compute-scroll-into-view@1.0.20: {}
+
   concat-map@0.0.1: {}
 
   confbox@0.1.8: {}
@@ -6580,6 +6722,8 @@ snapshots:
     dependencies:
       is-what: 4.1.16
 
+  core-js@3.40.0: {}
+
   core-util-is@1.0.2: {}
 
   cosmiconfig-typescript-loader@6.1.0(@types/node@22.10.4)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3):
@@ -6758,6 +6902,10 @@ snapshots:
     dependencies:
       esutils: 2.0.3
 
+  dom-align@1.12.4: {}
+
+  dom-scroll-into-view@2.0.1: {}
+
   dom-serializer@2.0.0:
     dependencies:
       domelementtype: 2.3.0
@@ -7803,6 +7951,8 @@ snapshots:
 
   is-plain-obj@4.1.0: {}
 
+  is-plain-object@3.0.1: {}
+
   is-plain-object@5.0.0: {}
 
   is-potential-custom-element-name@1.0.1: {}
@@ -8115,6 +8265,10 @@ snapshots:
       strip-ansi: 7.1.0
       wrap-ansi: 9.0.0
 
+  loose-envify@1.4.0:
+    dependencies:
+      js-tokens: 4.0.0
+
   loupe@3.1.2: {}
 
   lru-cache@10.4.3: {}
@@ -8207,6 +8361,8 @@ snapshots:
 
   nanoid@5.0.9: {}
 
+  nanopop@2.4.2: {}
+
   natural-compare@1.4.0: {}
 
   node-addon-api@7.1.1:
@@ -8555,6 +8711,8 @@ snapshots:
       get-proto: 1.0.1
       which-builtin-type: 1.2.1
 
+  regenerator-runtime@0.14.1: {}
+
   regexp.prototype.flags@1.5.4:
     dependencies:
       call-bind: 1.0.8
@@ -8572,6 +8730,8 @@ snapshots:
 
   require-from-string@2.0.2: {}
 
+  resize-observer-polyfill@1.5.1: {}
+
   resolve-from@4.0.0: {}
 
   resolve-from@5.0.0: {}
@@ -8675,6 +8835,10 @@ snapshots:
     dependencies:
       xmlchars: 2.2.0
 
+  scroll-into-view-if-needed@2.2.31:
+    dependencies:
+      compute-scroll-into-view: 1.0.20
+
   scule@1.3.0: {}
 
   semver@6.3.1: {}
@@ -8703,6 +8867,8 @@ snapshots:
       es-errors: 1.3.0
       es-object-atoms: 1.0.0
 
+  shallow-equal@1.2.1: {}
+
   shebang-command@2.0.0:
     dependencies:
       shebang-regex: 3.0.0
@@ -9013,6 +9179,8 @@ snapshots:
       - supports-color
       - typescript
 
+  stylis@4.3.6: {}
+
   superjson@2.2.2:
     dependencies:
       copy-anything: 3.0.5
@@ -9055,6 +9223,8 @@ snapshots:
 
   text-extensions@2.4.0: {}
 
+  throttle-debounce@5.0.2: {}
+
   throttleit@1.0.1: {}
 
   through@2.3.8: {}
@@ -9484,6 +9654,11 @@ snapshots:
       '@vue/language-core': 2.2.0(typescript@5.6.3)
       typescript: 5.6.3
 
+  vue-types@3.0.2(vue@3.5.13(typescript@5.6.3)):
+    dependencies:
+      is-plain-object: 3.0.1
+      vue: 3.5.13(typescript@5.6.3)
+
   vue@3.5.13(typescript@5.6.3):
     dependencies:
       '@vue/compiler-dom': 3.5.13
@@ -9508,6 +9683,10 @@ snapshots:
     transitivePeerDependencies:
       - debug
 
+  warning@4.0.3:
+    dependencies:
+      loose-envify: 1.4.0
+
   webidl-conversions@7.0.0: {}
 
   webpack-virtual-modules@0.6.2: {}

+ 0 - 13
src/App.vue

@@ -17,14 +17,7 @@ import ElementConfig from './components/ElementConfig.vue';
 </template>
 
 <style lang="scss">
-html {
-  box-sizing: border-box;
-  height: 100%;
-}
-
 body {
-  height: 100%;
-  margin: 0;
   -moz-osx-font-smoothing: grayscale;
   -webkit-font-smoothing: antialiased;
   text-rendering: optimizelegibility;
@@ -34,10 +27,4 @@ body {
 #app {
   height: 100%;
 }
-
-*,
-*::before,
-*::after {
-  box-sizing: inherit;
-}
 </style>

+ 1 - 0
src/main.ts

@@ -5,6 +5,7 @@ import App from './App.vue';
 import i18n from './i18n';
 import router from './router';
 
+import 'ant-design-vue/dist/reset.css';
 import './styles/element.scss';
 import 'virtual:uno.css';
 

+ 273 - 0
src/types/ant-components.d.ts

@@ -0,0 +1,273 @@
+declare module 'vue' {
+  export interface GlobalComponents {
+    AAffix: (typeof import('ant-design-vue'))['Affix'];
+
+    AAlert: (typeof import('ant-design-vue'))['Alert'];
+
+    AAnchor: (typeof import('ant-design-vue'))['Anchor'];
+
+    AAnchorLink: (typeof import('ant-design-vue'))['AnchorLink'];
+
+    AAutoComplete: (typeof import('ant-design-vue'))['AutoComplete'];
+
+    AAutoCompleteOptGroup: (typeof import('ant-design-vue'))['AutoCompleteOptGroup'];
+
+    AAutoCompleteOption: (typeof import('ant-design-vue'))['AutoCompleteOption'];
+
+    AAvatar: (typeof import('ant-design-vue'))['Avatar'];
+
+    AAvatarGroup: (typeof import('ant-design-vue'))['AvatarGroup'];
+
+    ABadge: (typeof import('ant-design-vue'))['Badge'];
+
+    ABadgeRibbon: (typeof import('ant-design-vue'))['BadgeRibbon'];
+
+    ABreadcrumb: (typeof import('ant-design-vue'))['Breadcrumb'];
+
+    ABreadcrumbItem: (typeof import('ant-design-vue'))['BreadcrumbItem'];
+
+    ABreadcrumbSeparator: (typeof import('ant-design-vue'))['BreadcrumbSeparator'];
+
+    AButton: (typeof import('ant-design-vue'))['Button'];
+
+    AButtonGroup: (typeof import('ant-design-vue'))['ButtonGroup'];
+
+    ACalendar: (typeof import('ant-design-vue'))['Calendar'];
+
+    ACard: (typeof import('ant-design-vue'))['Card'];
+
+    ACardGrid: (typeof import('ant-design-vue'))['CardGrid'];
+
+    ACardMeta: (typeof import('ant-design-vue'))['CardMeta'];
+
+    ACarousel: (typeof import('ant-design-vue'))['Carousel'];
+
+    ACascader: (typeof import('ant-design-vue'))['Cascader'];
+
+    ACheckableTag: (typeof import('ant-design-vue'))['CheckableTag'];
+
+    ACheckbox: (typeof import('ant-design-vue'))['Checkbox'];
+
+    ACheckboxGroup: (typeof import('ant-design-vue'))['CheckboxGroup'];
+
+    ACol: (typeof import('ant-design-vue'))['Col'];
+
+    ACollapse: (typeof import('ant-design-vue'))['Collapse'];
+
+    ACollapsePanel: (typeof import('ant-design-vue'))['CollapsePanel'];
+
+    AComment: (typeof import('ant-design-vue'))['Comment'];
+
+    AConfigProvider: (typeof import('ant-design-vue'))['ConfigProvider'];
+
+    AStyleProvider: (typeof import('ant-design-vue'))['StyleProvider'];
+
+    ADatePicker: (typeof import('ant-design-vue'))['DatePicker'];
+
+    ADescriptions: (typeof import('ant-design-vue'))['Descriptions'];
+
+    ADescriptionsItem: (typeof import('ant-design-vue'))['DescriptionsItem'];
+
+    ADirectoryTree: (typeof import('ant-design-vue'))['DirectoryTree'];
+
+    ADivider: (typeof import('ant-design-vue'))['Divider'];
+
+    ADrawer: (typeof import('ant-design-vue'))['Drawer'];
+
+    ADropdown: (typeof import('ant-design-vue'))['Dropdown'];
+
+    ADropdownButton: (typeof import('ant-design-vue'))['DropdownButton'];
+
+    AEmpty: (typeof import('ant-design-vue'))['Empty'];
+
+    AForm: (typeof import('ant-design-vue'))['Form'];
+
+    AFormItem: (typeof import('ant-design-vue'))['FormItem'];
+
+    AFormItemRest: (typeof import('ant-design-vue'))['FormItemRest'];
+
+    AImage: (typeof import('ant-design-vue'))['Image'];
+
+    AImagePreviewGroup: (typeof import('ant-design-vue'))['ImagePreviewGroup'];
+
+    AInput: (typeof import('ant-design-vue'))['Input'];
+
+    AInputGroup: (typeof import('ant-design-vue'))['InputGroup'];
+
+    AInputNumber: (typeof import('ant-design-vue'))['InputNumber'];
+
+    AInputPassword: (typeof import('ant-design-vue'))['InputPassword'];
+
+    AInputSearch: (typeof import('ant-design-vue'))['InputSearch'];
+
+    ALayout: (typeof import('ant-design-vue'))['Layout'];
+
+    ALayoutContent: (typeof import('ant-design-vue'))['LayoutContent'];
+
+    ALayoutFooter: (typeof import('ant-design-vue'))['LayoutFooter'];
+
+    ALayoutHeader: (typeof import('ant-design-vue'))['LayoutHeader'];
+
+    ALayoutSider: (typeof import('ant-design-vue'))['LayoutSider'];
+
+    AList: (typeof import('ant-design-vue'))['List'];
+
+    AListItem: (typeof import('ant-design-vue'))['ListItem'];
+
+    AListItemMeta: (typeof import('ant-design-vue'))['ListItemMeta'];
+
+    ALocaleProvider: (typeof import('ant-design-vue'))['LocaleProvider'];
+
+    AMentions: (typeof import('ant-design-vue'))['Mentions'];
+
+    AMentionsOption: (typeof import('ant-design-vue'))['MentionsOption'];
+
+    AMenu: (typeof import('ant-design-vue'))['Menu'];
+
+    AMenuDivider: (typeof import('ant-design-vue'))['MenuDivider'];
+
+    AMenuItem: (typeof import('ant-design-vue'))['MenuItem'];
+
+    AMenuItemGroup: (typeof import('ant-design-vue'))['MenuItemGroup'];
+
+    AModal: (typeof import('ant-design-vue'))['Modal'];
+
+    AMonthPicker: (typeof import('ant-design-vue'))['MonthPicker'];
+
+    APageHeader: (typeof import('ant-design-vue'))['PageHeader'];
+
+    APagination: (typeof import('ant-design-vue'))['Pagination'];
+
+    APopconfirm: (typeof import('ant-design-vue'))['Popconfirm'];
+
+    APopover: (typeof import('ant-design-vue'))['Popover'];
+
+    AProgress: (typeof import('ant-design-vue'))['Progress'];
+
+    AQuarterPicker: (typeof import('ant-design-vue'))['QuarterPicker'];
+
+    ARadio: (typeof import('ant-design-vue'))['Radio'];
+
+    ARadioButton: (typeof import('ant-design-vue'))['RadioButton'];
+
+    ARadioGroup: (typeof import('ant-design-vue'))['RadioGroup'];
+
+    ARangePicker: (typeof import('ant-design-vue'))['RangePicker'];
+
+    ARate: (typeof import('ant-design-vue'))['Rate'];
+
+    AResult: (typeof import('ant-design-vue'))['Result'];
+
+    ARow: (typeof import('ant-design-vue'))['Row'];
+
+    ASelect: (typeof import('ant-design-vue'))['Select'];
+
+    ASegmented: (typeof import('ant-design-vue'))['Segmented'];
+
+    ASelectOptGroup: (typeof import('ant-design-vue'))['SelectOptGroup'];
+
+    ASelectOption: (typeof import('ant-design-vue'))['SelectOption'];
+
+    ASkeleton: (typeof import('ant-design-vue'))['Skeleton'];
+
+    ASkeletonAvatar: (typeof import('ant-design-vue'))['SkeletonAvatar'];
+
+    ASkeletonButton: (typeof import('ant-design-vue'))['SkeletonButton'];
+
+    ASkeletonImage: (typeof import('ant-design-vue'))['SkeletonImage'];
+
+    ASkeletonInput: (typeof import('ant-design-vue'))['SkeletonInput'];
+
+    ASlider: (typeof import('ant-design-vue'))['Slider'];
+
+    ASpace: (typeof import('ant-design-vue'))['Space'];
+
+    ASpaceCompact: (typeof import('ant-design-vue'))['Compact'];
+
+    ASpin: (typeof import('ant-design-vue'))['Spin'];
+
+    AStatistic: (typeof import('ant-design-vue'))['Statistic'];
+
+    AStatisticCountdown: (typeof import('ant-design-vue'))['StatisticCountdown'];
+
+    AStep: (typeof import('ant-design-vue'))['Step'];
+
+    ASteps: (typeof import('ant-design-vue'))['Steps'];
+
+    ASubMenu: (typeof import('ant-design-vue'))['SubMenu'];
+
+    ASwitch: (typeof import('ant-design-vue'))['Switch'];
+
+    ATabPane: (typeof import('ant-design-vue'))['TabPane'];
+
+    ATable: (typeof import('ant-design-vue'))['Table'];
+
+    ATableColumn: (typeof import('ant-design-vue'))['TableColumn'];
+
+    ATableColumnGroup: (typeof import('ant-design-vue'))['TableColumnGroup'];
+
+    ATableSummary: (typeof import('ant-design-vue'))['TableSummary'];
+
+    ATableSummaryCell: (typeof import('ant-design-vue'))['TableSummaryCell'];
+
+    ATableSummaryRow: (typeof import('ant-design-vue'))['TableSummaryRow'];
+
+    ATabs: (typeof import('ant-design-vue'))['Tabs'];
+
+    ATag: (typeof import('ant-design-vue'))['Tag'];
+
+    ATextarea: (typeof import('ant-design-vue'))['Textarea'];
+
+    ATimePicker: (typeof import('ant-design-vue'))['TimePicker'];
+
+    ATimeRangePicker: (typeof import('ant-design-vue'))['TimeRangePicker'];
+
+    ATimeline: (typeof import('ant-design-vue'))['Timeline'];
+
+    ATimelineItem: (typeof import('ant-design-vue'))['TimelineItem'];
+
+    ATooltip: (typeof import('ant-design-vue'))['Tooltip'];
+
+    ATransfer: (typeof import('ant-design-vue'))['Transfer'];
+
+    ATree: (typeof import('ant-design-vue'))['Tree'];
+
+    ATreeNode: (typeof import('ant-design-vue'))['TreeNode'];
+
+    ATreeSelect: (typeof import('ant-design-vue'))['TreeSelect'];
+
+    ATreeSelectNode: (typeof import('ant-design-vue'))['TreeSelectNode'];
+
+    ATypography: (typeof import('ant-design-vue'))['Typography'];
+
+    ATypographyLink: (typeof import('ant-design-vue'))['TypographyLink'];
+
+    ATypographyParagraph: (typeof import('ant-design-vue'))['TypographyParagraph'];
+
+    ATypographyText: (typeof import('ant-design-vue'))['TypographyText'];
+
+    ATypographyTitle: (typeof import('ant-design-vue'))['TypographyTitle'];
+
+    AUpload: (typeof import('ant-design-vue'))['Upload'];
+
+    AUploadDragger: (typeof import('ant-design-vue'))['UploadDragger'];
+
+    AWeekPicker: (typeof import('ant-design-vue'))['WeekPicker'];
+
+    AQrCode: (typeof import('ant-design-vue'))['QRCode'];
+
+    ATour: (typeof import('ant-design-vue'))['Tour'];
+
+    AFloatButton: (typeof import('ant-design-vue'))['FloatButton'];
+
+    AFloatButtonGroup: (typeof import('ant-design-vue'))['FloatButtonGroup'];
+
+    ABackTop: (typeof import('ant-design-vue'))['BackTop'];
+
+    AWatermark: (typeof import('ant-design-vue'))['Watermark'];
+
+    AFlex: (typeof import('ant-design-vue'))['Flex'];
+  }
+}
+
+export {};

+ 7 - 2
vite.config.ts

@@ -5,7 +5,7 @@ import VueDevTools from 'vite-plugin-vue-devtools';
 import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite';
 import UnoCSS from 'unocss/vite';
 import AutoImport from 'unplugin-auto-import/vite';
-import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
+import { AntDesignVueResolver, ElementPlusResolver } from 'unplugin-vue-components/resolvers';
 import Components from 'unplugin-vue-components/vite';
 
 import path from 'node:path';
@@ -33,7 +33,12 @@ export default defineConfig({
     }),
     Components({
       dts: false,
-      resolvers: [ElementPlusResolver()],
+      resolvers: [
+        ElementPlusResolver(),
+        AntDesignVueResolver({
+          importStyle: false, // css in js
+        }),
+      ],
     }),
     UnoCSS(),
   ],