Commit ecbc18b2 authored by tyyin lan's avatar tyyin lan

feat(首页): 输入框编辑器prompt制订

parent 4ed028c3
......@@ -8,7 +8,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_4711453_f6b3gmjqw8q.css" />
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_4711453_4rkp9lj7gda.css" />
<link
rel="preload"
href="https://gsst-poe-sit.gz.bcebos.com/front/SourceHanSansCN-Medium.otf"
......
......@@ -19,7 +19,7 @@
"@icon-park/vue-next": "^1.4.2",
"@iconify/vue": "^4.1.2",
"@microsoft/fetch-event-source": "^2.0.1",
"@unocss/reset": "^0.61.9",
"@unocss/reset": "^66.1.1",
"@vueuse/core": "^10.11.1",
"axios": "^1.7.7",
"bowser": "^2.11.0",
......@@ -40,6 +40,7 @@
"nanoid": "^5.0.7",
"pinia": "^2.2.2",
"qs": "^6.14.0",
"quill": "^2.0.3",
"spark-md5": "^3.0.2",
"type-fest": "^4.26.1",
"validator": "^13.12.0",
......@@ -63,9 +64,9 @@
"@types/spark-md5": "^3.0.4",
"@types/validator": "^13.12.2",
"@typescript-eslint/parser": "^7.18.0",
"@unocss/eslint-config": "^0.61.9",
"@unocss/postcss": "66.1.0-beta.10",
"@unocss/transformer-directives": "66.1.0-beta.10",
"@unocss/eslint-config": "^66.1.1",
"@unocss/postcss": "66.1.1",
"@unocss/transformer-directives": "66.1.1",
"@vitejs/plugin-vue": "^4.6.2",
"@vitejs/plugin-vue-jsx": "^4.0.1",
"autoprefixer": "^10.4.20",
......@@ -95,7 +96,7 @@
"tinymce": "^7.7.1",
"typescript": "^5.6.2",
"typescript-eslint": "^7.18.0",
"unocss": "^0.61.9",
"unocss": "^66.1.1",
"unplugin-auto-import": "^0.17.8",
"unplugin-vue-components": "^0.26.0",
"vite": "^5.4.6",
......
......@@ -18,8 +18,8 @@ importers:
specifier: ^2.0.1
version: 2.0.1
'@unocss/reset':
specifier: ^0.61.9
version: 0.61.9
specifier: ^66.1.1
version: 66.1.1
'@vueuse/core':
specifier: ^10.11.1
version: 10.11.1(vue@3.5.13(typescript@5.6.2))
......@@ -80,6 +80,9 @@ importers:
qs:
specifier: ^6.14.0
version: 6.14.0
quill:
specifier: ^2.0.3
version: 2.0.3
spark-md5:
specifier: ^3.0.2
version: 3.0.2
......@@ -145,14 +148,14 @@ importers:
specifier: ^7.18.0
version: 7.18.0(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)
'@unocss/eslint-config':
specifier: ^0.61.9
version: 0.61.9(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)
specifier: ^66.1.1
version: 66.1.1(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)
'@unocss/postcss':
specifier: 66.1.0-beta.10
version: 66.1.0-beta.10(postcss@8.4.47)
specifier: 66.1.1
version: 66.1.1(postcss@8.4.47)
'@unocss/transformer-directives':
specifier: 66.1.0-beta.10
version: 66.1.0-beta.10
specifier: 66.1.1
version: 66.1.1
'@vitejs/plugin-vue':
specifier: ^4.6.2
version: 4.6.2(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue@3.5.13(typescript@5.6.2))
......@@ -241,8 +244,8 @@ importers:
specifier: ^7.18.0
version: 7.18.0(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)
unocss:
specifier: ^0.61.9
version: 0.61.9(postcss@8.4.47)(rollup@4.21.3)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))
specifier: ^66.1.1
version: 66.1.1(postcss@8.4.47)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue@3.5.13(typescript@5.6.2))
unplugin-auto-import:
specifier: ^0.17.8
version: 0.17.8(@vueuse/core@10.11.1(vue@3.5.13(typescript@5.6.2)))(rollup@4.21.3)(webpack-sources@3.2.3)
......@@ -254,7 +257,7 @@ importers:
version: 5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0)
vite-plugin-checker:
specifier: ^0.7.2
version: 0.7.2(eslint@9.10.0(jiti@2.4.2))(meow@13.2.0)(optionator@0.9.4)(stylelint@16.9.0(typescript@5.6.2))(typescript@5.6.2)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue-tsc@2.0.29(typescript@5.6.2))
version: 0.7.2(eslint@9.10.0(jiti@2.4.2))(optionator@0.9.4)(stylelint@16.9.0(typescript@5.6.2))(typescript@5.6.2)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue-tsc@2.0.29(typescript@5.6.2))
vite-svg-loader:
specifier: ^5.1.0
version: 5.1.0(vue@3.5.13(typescript@5.6.2))
......@@ -271,12 +274,15 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
'@antfu/install-pkg@0.4.1':
resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==}
'@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
'@antfu/utils@0.7.10':
resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
'@antfu/utils@8.1.1':
resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==}
'@babel/code-frame@7.24.7':
resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
engines: {node: '>=6.9.0'}
......@@ -347,10 +353,18 @@ packages:
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
'@babel/helper-string-parser@7.27.1':
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.25.9':
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.27.1':
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.24.8':
resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==}
engines: {node: '>=6.9.0'}
......@@ -395,24 +409,12 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/plugin-transform-modules-commonjs@7.24.8':
resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/plugin-transform-typescript@7.25.2':
resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/preset-typescript@7.24.7':
resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/runtime@7.25.6':
resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==}
engines: {node: '>=6.9.0'}
......@@ -433,8 +435,8 @@ packages:
resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
engines: {node: '>=6.9.0'}
'@babel/types@7.26.9':
resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
'@babel/types@7.27.1':
resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==}
engines: {node: '>=6.9.0'}
'@commitlint/cli@19.5.0':
......@@ -551,288 +553,150 @@ packages:
cpu: [ppc64]
os: [aix]
'@esbuild/aix-ppc64@0.23.1':
resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
'@esbuild/android-arm64@0.21.5':
resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm64@0.23.1':
resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm@0.21.5':
resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
'@esbuild/android-arm@0.23.1':
resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
'@esbuild/android-x64@0.21.5':
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
'@esbuild/android-x64@0.23.1':
resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
'@esbuild/darwin-arm64@0.21.5':
resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-arm64@0.23.1':
resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-x64@0.21.5':
resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
'@esbuild/darwin-x64@0.23.1':
resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
'@esbuild/freebsd-arm64@0.21.5':
resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-arm64@0.23.1':
resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-x64@0.21.5':
resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
'@esbuild/freebsd-x64@0.23.1':
resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
'@esbuild/linux-arm64@0.21.5':
resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm64@0.23.1':
resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm@0.21.5':
resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
'@esbuild/linux-arm@0.23.1':
resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
'@esbuild/linux-ia32@0.21.5':
resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-ia32@0.23.1':
resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-loong64@0.21.5':
resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-loong64@0.23.1':
resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-mips64el@0.21.5':
resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-mips64el@0.23.1':
resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-ppc64@0.21.5':
resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-ppc64@0.23.1':
resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-riscv64@0.21.5':
resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-riscv64@0.23.1':
resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-s390x@0.21.5':
resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-s390x@0.23.1':
resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-x64@0.21.5':
resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
'@esbuild/linux-x64@0.23.1':
resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
'@esbuild/netbsd-x64@0.21.5':
resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
'@esbuild/netbsd-x64@0.23.1':
resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
'@esbuild/openbsd-arm64@0.23.1':
resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
'@esbuild/openbsd-x64@0.21.5':
resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
'@esbuild/openbsd-x64@0.23.1':
resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
'@esbuild/sunos-x64@0.21.5':
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
'@esbuild/sunos-x64@0.23.1':
resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
'@esbuild/win32-arm64@0.21.5':
resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-arm64@0.23.1':
resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-ia32@0.21.5':
resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-ia32@0.23.1':
resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-x64@0.21.5':
resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
'@esbuild/win32-x64@0.23.1':
resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
'@eslint-community/eslint-utils@4.4.0':
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
'@eslint-community/eslint-utils@4.7.0':
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
'@eslint-community/regexpp@4.11.1':
resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
......@@ -878,8 +742,8 @@ packages:
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
'@iconify/utils@2.1.33':
resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==}
'@iconify/utils@2.3.0':
resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==}
'@iconify/vue@4.1.2':
resolution: {integrity: sha512-CQnYqLiQD5LOAaXhBrmj1mdL2/NCJvwcC4jtW2Z8ukhThiFkLDkutarTOV2trfc9EXqUqRs0KqXOL9pZ/IyysA==}
......@@ -929,6 +793,10 @@ packages:
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
......@@ -968,11 +836,15 @@ packages:
resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
'@polka/url@1.0.0-next.25':
resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
'@pkgr/core@0.1.2':
resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
'@polka/url@1.0.0-next.29':
resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
'@quansync/fs@0.1.2':
resolution: {integrity: sha512-ezIadUb1aFhwJLd++WVqVpi9rnlX8vnd4ju7saPhwLHJN1mJgOv0puePTGV+FbtSnWtwoHDT8lAm4kagDZmpCg==}
'@quansync/fs@0.1.3':
resolution: {integrity: sha512-G0OnZbMWEs5LhDyqy2UL17vGhSVHkQIfVojMtEWVenvj0V5S84VBgy86kJIuNsGDp2p7sTKlpSIpBUWdC35OKg==}
engines: {node: '>=20.0.0'}
'@rollup/pluginutils@5.1.0':
......@@ -1138,6 +1010,10 @@ packages:
resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/scope-manager@8.32.1':
resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/type-utils@7.18.0':
resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==}
engines: {node: ^18.18.0 || >=20.0.0}
......@@ -1152,6 +1028,10 @@ packages:
resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/types@8.32.1':
resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@7.18.0':
resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
engines: {node: ^18.18.0 || >=20.0.0}
......@@ -1161,129 +1041,126 @@ packages:
typescript:
optional: true
'@typescript-eslint/typescript-estree@8.32.1':
resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
'@typescript-eslint/utils@7.18.0':
resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
'@typescript-eslint/utils@8.32.1':
resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
'@typescript-eslint/visitor-keys@7.18.0':
resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
engines: {node: ^18.18.0 || >=20.0.0}
'@unocss/astro@0.61.9':
resolution: {integrity: sha512-adOXz4itYHxqhvQgJHlEU58EHDTtY2qrcEPVmQVk4qI1W+ezQV6nQMQvti8mS/HbFw3MOJhIY1MlJoZK36/cyw==}
'@typescript-eslint/visitor-keys@8.32.1':
resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@unocss/astro@66.1.1':
resolution: {integrity: sha512-/wteVem8orDq5B4xhAol81WcK1eEwg6FCeWZhtWnP5u/1e0zI5h1rLTbyzb+qqXVNcGgqUo/jSYLLJ+dNQa99g==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
peerDependenciesMeta:
vite:
optional: true
'@unocss/cli@0.61.9':
resolution: {integrity: sha512-W5pN2cOKAOkeKKXMqsGD/J7dpEAmxODtOH2Afjk41qsjqUlzGlUbmgG9PjAz7TDHrAmvuf3nvmMeeT3fii2UFg==}
'@unocss/cli@66.1.1':
resolution: {integrity: sha512-1bZ+iQJNt21bkBK+kmZymqSLt2W3zpawlx3w9SvQPuOy4xK8B6HkKaUcBnr9Wy3MymrI5Qwccr5f4vXweBkAxQ==}
engines: {node: '>=14'}
hasBin: true
'@unocss/config@0.61.9':
resolution: {integrity: sha512-ATvZEFMQiW3/oUaaplVMBYuagEELtnLbHSYH4pUGbJ5MALAfV98mZRyk4FkKkYoMYqWLGdCylzpgMPFDOuFQlQ==}
engines: {node: '>=14'}
'@unocss/config@66.1.0-beta.10':
resolution: {integrity: sha512-+qx4zlVA9f1cCifoVXYmiHTI1y1rIxHgpiUdb0pI8OOdFsK6j0adua/hSdlvroXAoj2MNdE8WVEEv3L6MlDOpg==}
'@unocss/config@66.1.1':
resolution: {integrity: sha512-Fg4sRw5dncNHxh/SM6guRzAveBI1FErw2ncb70Qe0LzCY7+IfUqrOBep/HIHP7NA1Mcj2JxHlM61ITLqrcYKpw==}
engines: {node: '>=14'}
'@unocss/core@0.61.9':
resolution: {integrity: sha512-2W1YZQIWXcueGdbXU/ZCqn/8yQhWk8e8kAHFkVlbc9rictkd2UmPB9nIZ8Ii1tMwt6F0TT6vfHbLJEGCV08o2g==}
'@unocss/core@66.1.1':
resolution: {integrity: sha512-EOewEnipyB7Y6ne0YQmxdCG1hbMjYJ7oPMeHKfQuCZz60DPzkYwV6zVMa35ySMs1xljb/vFTHVFcJA8du3i8XA==}
'@unocss/core@66.1.0-beta.10':
resolution: {integrity: sha512-zYn5kmrmmaEQ81+CkoRcNYaMgUePb85RCIr3oty3yc4tFtJHymHuv+4NKoWWZzfhdfVKeK2y7U9wpLcfcbIiew==}
'@unocss/eslint-config@0.61.9':
resolution: {integrity: sha512-TYjrfSLkRZSRBBcdKWKuZafB9XuFHqI/P/AVI5Vwqvbdq3uc/eQpRXgnYoX1jM0ds1jzOigWRWiYkJx7KhxSnw==}
'@unocss/eslint-config@66.1.1':
resolution: {integrity: sha512-9FggydayNp7qh09Fxl5C9KdrzyxbTefFrZurCg7P2xwSLlRKq+Bzqml4aGO5UzBVvrSBlgSCt5pNkyMXo6RA/Q==}
engines: {node: '>=14'}
'@unocss/eslint-plugin@0.61.9':
resolution: {integrity: sha512-jgOym3WyWXAWyjkrtIZurkl87XuWAwhN8mul8V4mokpFMB5y6VMlatCYql/dD0tIyZuFJujxfWvUkizqyE84aQ==}
'@unocss/eslint-plugin@66.1.1':
resolution: {integrity: sha512-WkcyScjl3+6ERXCY/HBlBQJU/45HbRaklHc2u5F1Rdr1Pam/Fe90OnC93SB1oH7wwKmvE4vyP9dFQFrYVdUANg==}
engines: {node: '>=14'}
'@unocss/extractor-arbitrary-variants@0.61.9':
resolution: {integrity: sha512-ii42/hKbhgeBBOy86729t6/HeGmxUcHM8FprPeb/v/DfYsCkjDvMYVynX3FN/K5pR2WV+HHp6TQS7GbTmRIN0g==}
'@unocss/extractor-arbitrary-variants@66.1.1':
resolution: {integrity: sha512-hDbdXm2+LjQ18zkUniU6tCGdyBHxnMZ0M2LFF21iGEbDvK3ukX4uEVAhzASEmhkEE0nULyEJg0HkU4CRNBupBg==}
'@unocss/inspector@0.61.9':
resolution: {integrity: sha512-kUcQ/h8/yAfkqL2eCGVFyB0IGSPdR0dx2HH4V+mdSMfd8yKFR/BQys3mBvqZwSZu5a0+iisFHHq9wr+/I5DtHQ==}
'@unocss/inspector@66.1.1':
resolution: {integrity: sha512-112uYliXR7VLYqdPfDWy/cL65An36IabFL7xU9dRPBDYmlB5qyVks9l5Sqd8uMafsZYjbMhpkjPRkXTmLMieEw==}
'@unocss/postcss@0.61.9':
resolution: {integrity: sha512-HuFE/TUH6tt5f/AwiKNhQ/FO/lvFeW0JHPkx9SCURcKKoD3rpJUbhTqVv7c0zlCVQnRFX0hxpimoetp5Dh8qdA==}
'@unocss/postcss@66.1.1':
resolution: {integrity: sha512-+CTeYbUGDk8ESrwxRN6wkaIAJYfJekt7NvUSp1us9zws+2Ev3pH7GXztbGmTz8HCkSqLB/3MOQ6sIpviS1A7/Q==}
engines: {node: '>=14'}
peerDependencies:
postcss: ^8.4.21
'@unocss/postcss@66.1.0-beta.10':
resolution: {integrity: sha512-MYbdqNozge5MY/cKO9A7b1WWef7Xw9GiwPWu+RpmBs7218dfowtfIIYzVyLEKWNoFW3iy5JjVm0oYfYCBKj9wg==}
engines: {node: '>=14'}
peerDependencies:
postcss: ^8.4.21
'@unocss/preset-attributify@66.1.1':
resolution: {integrity: sha512-PQC0L5CVt8JRCPBHWX1YD/XmGVWT5HZLa3NHZkl2nezoZNAiSSmwe9f5kq+bZDUZYvtbAY6jltF+G4rUAdWvJA==}
'@unocss/preset-attributify@0.61.9':
resolution: {integrity: sha512-AHlEF7PiIBz1jHZZ62+AZ1u5ITrPNL/mgN8XyKwocoAr9HH8aQ3xzUgIuEX6vfV4a8rTdawffY99BQ12msePWQ==}
'@unocss/preset-icons@66.1.1':
resolution: {integrity: sha512-F8NZKJfGzlv7tCxbo5cDXouxm1azKMzGOV11zbDTuZFDacyH5WprQ9zNMffUdUuVDy+rwAN+OoR0GEyggt4zww==}
'@unocss/preset-icons@0.61.9':
resolution: {integrity: sha512-5XZO511ksu3EVwpV2nIZKa5NzyJAb+JARKaUpQIXssHUVdRKk5nJYr1XtrpBDLgB6VEf/1skViLEa1bpOUI5Wg==}
'@unocss/preset-mini@66.1.1':
resolution: {integrity: sha512-VRv1BWqnKaDQZb4EGZ6bV03+jLios9R8CmlOKAjr9AIAUuZv3OKP7LoSA9Jo0bci1wQUdHxNs8IvD2c1mDz+Pw==}
'@unocss/preset-mini@0.61.9':
resolution: {integrity: sha512-qhagWfdM7ytRWf4wFfrAcdeCUCVD9wDVrM+9evAmuOnMXWEiVZCjfwhjjFu+8lM7g+38n+gi7VcrNuTiZ8fHBA==}
'@unocss/preset-tagify@66.1.1':
resolution: {integrity: sha512-cC4MjyRVu3w4xxdlvz+mrkElNEYJpgCx/HVQehK9aXDBP9L9NgpEr+7Mqefhv5ES4a2U82MPNSElyFIwm3bOUw==}
'@unocss/preset-tagify@0.61.9':
resolution: {integrity: sha512-E+54+uSe+btOnQDlh8XjDUXhwxJd6/TL/8Rdl+7Pg6m+JNXudEt7xOd81L/KlDPD2tYYH9g/dQUaDN5aJyfRPQ==}
'@unocss/preset-typography@66.1.1':
resolution: {integrity: sha512-FB8leh/TANJB7U8sUuEG0pM+Nqhw65A1k+xJEXlYKAbfIdUN6mGNvFirh6c2WJXUg6rHe06l//TZAAvwJiS29Q==}
'@unocss/preset-typography@0.61.9':
resolution: {integrity: sha512-ZDoRViHtzI1Ny0sZyjajeCGEdFQCBn5CeIYgxO/KCpN107KTGLnYfoabv0gHtj/qaeAh30obeOMxZaIuxYoW3Q==}
'@unocss/preset-uno@66.1.1':
resolution: {integrity: sha512-2gfayXo7He9ecCIp4KzpRpCjc6bFtukAahdLf5WoW66GRxoTDAsOuWQitG+B2IiExIX0fci8uahFudMNyLpjMA==}
'@unocss/preset-uno@0.61.9':
resolution: {integrity: sha512-N4R/BCMphrHvAMZ+qgR/FPoh724uXDuZ/1DEGuirUQJMg7makqrI6czL+P99q1bP8nWzxWEXiRXnKKLiyD9pJw==}
'@unocss/preset-web-fonts@66.1.1':
resolution: {integrity: sha512-vVjidprhFWsZ0ClRIfGhH3evsdtDgXPSoyv8MlN8dP5RqkpH817h5PqmInxHkYeC5Mg/HsUy5HA0NryBQix0vQ==}
'@unocss/preset-web-fonts@0.61.9':
resolution: {integrity: sha512-fjQv74+FiAvGJM5vSLkD15Taku0cbi5F7qAr5T85EIQOpUB1fiH2kPoXIOT1WS2lKbQZh6pNGBxLrbBRgnVPew==}
'@unocss/preset-wind3@66.1.1':
resolution: {integrity: sha512-Z8SqXaubPJHltD0+dneYei0spxH+spzGNiOWI7qffsByxvc6B/kOdJFOhVWE5DhYO33KJWyGxZdXzCq7Xxdm9Q==}
'@unocss/preset-wind@0.61.9':
resolution: {integrity: sha512-AzbjJrNL9Rb2BzTiREyssd8v7KFVVLERQ/PNILGzo6yYelYMl4AhKXZ3jgxWEsIABArVa3UkGBigG4h/L+2JHA==}
'@unocss/preset-wind4@66.1.1':
resolution: {integrity: sha512-p7YU0xcYF/+DUcsV//QkrXVEvORefSmXNOHnZ3HqawWdOABQJD/pu3QMk64jnEdrjQg07s4Wd1Zh5DAhSXFmLw==}
'@unocss/reset@0.61.9':
resolution: {integrity: sha512-A1KtJiFgLM0N3FqJ9r5M3mVULcwsn+14tq5WkvSPF9ik3zQeJh8/NhxKdJImWClwBOzn795NQFXXFB70Ja+2RA==}
'@unocss/preset-wind@66.1.1':
resolution: {integrity: sha512-+C66yMgJe6/Xu3ZoP+8XMqL5N3RkLIZVVbVXtnhSvCF8qd4rJ+d4/odeQ8M/WUcQXSysIckkDfnYC2FGSTEakw==}
'@unocss/rule-utils@0.61.9':
resolution: {integrity: sha512-54Hw0nF+3ga70ETo3kes4He62wdsB4dHMgEiD/DEmJzyVY3ZuG/sIVAgkxjMQDo5w4SSYU/Ys1QaY+IQmeJHFQ==}
engines: {node: '>=14'}
'@unocss/reset@66.1.1':
resolution: {integrity: sha512-WrI3sStMd/EXTcb3SaTVH10Wc9NKutW4+/HktQy470wEpncXdvihrXgCYwJH6LEEL4KOto3o+KKSD5xenWE7Aw==}
'@unocss/rule-utils@66.1.0-beta.10':
resolution: {integrity: sha512-yGC8uQT6ErjLsWMU3Nx7mjvftYukLL+TELM+pmYOFmbhasrdnnJI1kT/04dyUHQTlm3XCs8I7LhbYaVz7MmIXA==}
'@unocss/rule-utils@66.1.1':
resolution: {integrity: sha512-a7xe3FsvsI6T6u8QtXcQF22jnElB68X92aHjuSRt512gRjhhu/5kSzLJbMkv9RsclHJbmjnz6OUkk/mlTTxcFg==}
engines: {node: '>=14'}
'@unocss/scope@0.61.9':
resolution: {integrity: sha512-a9/vdg7YTFZEnJSaJBh/GqkLokYh3ZjEd3gHUxl/TZDSkGOz3WnkR2h+lgaLZm9MJ7RlSvJxYP8ySezH7jU1Pw==}
'@unocss/transformer-attributify-jsx-babel@0.61.9':
resolution: {integrity: sha512-+fojHVJhA2MVd3VTCjlEKXf8Vnoy4N+lEl0CrYOD+im44sH5CWogm0RWs9rbeemy1uel6NI1wkP4xTfIA4vEgQ==}
'@unocss/transformer-attributify-jsx@0.61.9':
resolution: {integrity: sha512-tKZpZ64Lr6/CX96PhDtKEsqWDo1qjtswEulzIDLxpS90SMyann3azTs6mSuOwGbkbwc4gaJe6H38eCNos0ZqHg==}
'@unocss/transformer-attributify-jsx@66.1.1':
resolution: {integrity: sha512-HE/O9xdPLrf20ZynvYsJOUwPQagExDUQSVdo9zYPwoUQ7O+Ep5uwRBp1vpT/suZfU87RwWSvKSFOHmFoKiJBCA==}
'@unocss/transformer-compile-class@0.61.9':
resolution: {integrity: sha512-jezMpssFJGIaZNE/rw5U+9Rk1RoDrZqXZokRkqt4tamEn1SiXjRMPWoE/hLg5Kw4oybxwCXTuAk2OsD+kTb7iA==}
'@unocss/transformer-compile-class@66.1.1':
resolution: {integrity: sha512-tptWeOEaR56XNLeJy+MtoTagYCH5giRYrlaOdQPX57NDnRqRB0KJYHew2YpgH6j6eZ1WbQ4WK8j1PzAmr1FVgg==}
'@unocss/transformer-directives@0.61.9':
resolution: {integrity: sha512-e4uIbHYdAYJSVpvxOv6kAsyI18X3gHkBsmBYWcUlPLVv+8tYo4eZtc0rn6ZvpiLzkFywG9e9cmpqVQwOR6pBVg==}
'@unocss/transformer-directives@66.1.1':
resolution: {integrity: sha512-qj2oUc9P+cY6PD+vTmbyb830GTofKm1IMeT+lhH4eyMX3lpfbDxj1LTjyJzouhK8s5VD56gWXx8wFdTuaEQ2Ww==}
'@unocss/transformer-directives@66.1.0-beta.10':
resolution: {integrity: sha512-PVXVblXCVo6mjThQrTwHcoNuZvrxjkzW4qWzZQxrCiS+pQs31kod0UL9WFIUWc/xgyRgYUiLNlBBhdxDykNJjg==}
'@unocss/transformer-variant-group@66.1.1':
resolution: {integrity: sha512-opU9y9c6iGUtTXPa+bDfkihSAth+5PVO9hLbPWlDIiN6mDF7WHzAbnhg0Q+FixjAI+n772XWKoLdrPn3yM2NZA==}
'@unocss/transformer-variant-group@0.61.9':
resolution: {integrity: sha512-iewADYlY0LoeCb80E/4feHVSCKHl+QzGH4xUvW0zU85evMqNOa0/t0dCIoEG22wr/9piyEsg6OdHprZ2QliYqg==}
'@unocss/vite@0.61.9':
resolution: {integrity: sha512-hP/sL9rq1DvVCbSSx05m+bwYqen1nHm9tW6elKFkfV7X5jBUywu24WRq551NZI33KmgHA525ApX++DSWye+0uw==}
'@unocss/vite@66.1.1':
resolution: {integrity: sha512-+ddMVpMxvm+2r8Je3YJRGYiZ/p/7LPD69VKT3vjFG3lT3IbfXtt18q6kYwBi+9lcnI68qgh3/s4qXQ2Q/iX5NQ==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
'@vant/popperjs@1.3.0':
resolution: {integrity: sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==}
......@@ -1413,6 +1290,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
acorn@8.14.1:
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
engines: {node: '>=0.4.0'}
hasBin: true
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
......@@ -1518,12 +1400,6 @@ packages:
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
bundle-require@5.0.0:
resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
peerDependencies:
esbuild: '>=0.18'
cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
......@@ -1632,8 +1508,14 @@ packages:
confbox@0.1.7:
resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
consola@3.2.3:
resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
confbox@0.1.8:
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
confbox@0.2.2:
resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
consola@3.4.2:
resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
engines: {node: ^14.18.0 || >=16.10.0}
conventional-changelog-angular@7.0.0:
......@@ -1748,6 +1630,15 @@ packages:
supports-color:
optional: true
debug@4.4.1:
resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
......@@ -1765,8 +1656,8 @@ packages:
delegate@3.2.0:
resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==}
destr@2.0.3:
resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
destr@2.0.5:
resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
......@@ -1843,11 +1734,6 @@ packages:
engines: {node: '>=12'}
hasBin: true
esbuild@0.23.1:
resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==}
engines: {node: '>=18'}
hasBin: true
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
......@@ -1911,6 +1797,10 @@ packages:
resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@4.2.0:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint@9.10.0:
resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
......@@ -1966,6 +1856,9 @@ packages:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
exsolve@1.0.5:
resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==}
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
......@@ -1976,6 +1869,10 @@ packages:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
......@@ -1992,8 +1889,8 @@ packages:
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
fdir@6.4.3:
resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
fdir@6.4.4:
resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
......@@ -2086,9 +1983,6 @@ packages:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
get-tsconfig@4.8.1:
resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
git-raw-commits@4.0.0:
resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==}
engines: {node: '>=16'}
......@@ -2126,6 +2020,10 @@ packages:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
globals@15.15.0:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'}
globals@15.9.0:
resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==}
engines: {node: '>=18'}
......@@ -2217,9 +2115,6 @@ packages:
import-meta-resolve@4.1.0:
resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
importx@0.4.4:
resolution: {integrity: sha512-Lo1pukzAREqrBnnHC+tj+lreMTAvyxtkKsMxLY8H15M/bvLl54p3YuoTI70Tz7Il0AsgSlD7Lrk/FaApRcBL7w==}
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
......@@ -2326,10 +2221,6 @@ packages:
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
hasBin: true
jiti@2.0.0-beta.3:
resolution: {integrity: sha512-pmfRbVRs/7khFrSAYnSiJ8C0D5GvzkE4Ey2pAvUcJsw1ly/p+7ut27jbJrjY79BpAJQJ4gXYFtK6d1Aub+9baQ==}
hasBin: true
jiti@2.4.2:
resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
hasBin: true
......@@ -2423,10 +2314,6 @@ packages:
resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==}
engines: {node: '>=18.0.0'}
load-tsconfig@0.2.5:
resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
local-pkg@0.4.3:
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
engines: {node: '>=14'}
......@@ -2435,6 +2322,10 @@ packages:
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
engines: {node: '>=14'}
local-pkg@1.1.1:
resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==}
engines: {node: '>=14'}
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
......@@ -2449,6 +2340,13 @@ packages:
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
lodash.clonedeep@4.5.0:
resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
lodash.isequal@4.5.0:
resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
......@@ -2575,8 +2473,11 @@ packages:
mlly@1.7.1:
resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
mrmime@2.0.0:
resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
mlly@1.7.4:
resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
mrmime@2.0.1:
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
engines: {node: '>=10'}
ms@2.1.3:
......@@ -2603,8 +2504,8 @@ packages:
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
node-fetch-native@1.6.4:
resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
node-fetch-native@1.6.6:
resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==}
node-releases@2.0.18:
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
......@@ -2632,8 +2533,8 @@ packages:
resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
engines: {node: '>= 0.4'}
ofetch@1.3.4:
resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==}
ofetch@1.4.1:
resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==}
onetime@6.0.0:
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
......@@ -2667,12 +2568,15 @@ packages:
resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
package-manager-detector@0.2.0:
resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==}
package-manager-detector@1.3.0:
resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==}
pako@1.0.11:
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
parchment@3.0.0:
resolution: {integrity: sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A==}
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
......@@ -2710,6 +2614,9 @@ packages:
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
perfect-debounce@1.0.0:
resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
......@@ -2747,6 +2654,12 @@ packages:
pkg-types@1.2.0:
resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==}
pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
pkg-types@2.1.0:
resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==}
postcss-html@1.7.0:
resolution: {integrity: sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==}
engines: {node: ^12 || >=14}
......@@ -2888,6 +2801,14 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
quill-delta@5.1.0:
resolution: {integrity: sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==}
engines: {node: '>= 12.0.0'}
quill@2.0.3:
resolution: {integrity: sha512-xEYQBqfYx/sfb33VJiKnSJp8ehloavImQ2A6564GAbqG55PGw1dAWUn1MUbQB62t0azawUS2CZZhWCjO8gRvTw==}
engines: {npm: '>=8.2.3'}
readable-stream@2.3.8:
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
......@@ -2918,9 +2839,6 @@ packages:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
......@@ -2980,6 +2898,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
semver@7.7.2:
resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
engines: {node: '>=10'}
hasBin: true
setimmediate@1.0.5:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
......@@ -3011,9 +2934,9 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
sirv@2.0.4:
resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
engines: {node: '>= 10'}
sirv@3.0.1:
resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
engines: {node: '>=18'}
slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
......@@ -3182,6 +3105,10 @@ packages:
resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==}
engines: {node: ^14.18.0 || >=16.0.0}
synckit@0.9.2:
resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
engines: {node: ^14.18.0 || >=16.0.0}
system-architecture@0.1.0:
resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==}
engines: {node: '>=18'}
......@@ -3214,8 +3141,11 @@ packages:
tinyexec@0.3.0:
resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==}
tinyglobby@0.2.12:
resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
tinyexec@1.0.1:
resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
tinyglobby@0.2.13:
resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==}
engines: {node: '>=12.0.0'}
tinymce@7.7.1:
......@@ -3242,6 +3172,12 @@ packages:
peerDependencies:
typescript: '>=4.2.0'
ts-api-utils@2.1.0:
resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
engines: {node: '>=18.12'}
peerDependencies:
typescript: '>=4.8.4'
tslib@1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
......@@ -3251,10 +3187,8 @@ packages:
tslib@2.7.0:
resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
tsx@4.19.1:
resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==}
engines: {node: '>=18.0.0'}
hasBin: true
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
......@@ -3290,11 +3224,11 @@ packages:
ufo@1.5.4:
resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
unconfig@0.5.5:
resolution: {integrity: sha512-VQZ5PT9HDX+qag0XdgQi8tJepPhXiR/yVOkn707gJDKo31lGjRilPREiQJ9Z6zd/Ugpv6ZvO5VxVIcatldYcNQ==}
ufo@1.6.1:
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
unconfig@7.3.1:
resolution: {integrity: sha512-LH5WL+un92tGAzWS87k7LkAfwpMdm7V0IXG2FxEjZz/QxiIW5J5LkcrKQThj0aRz6+h/lFmKI9EUXmK/T0bcrw==}
unconfig@7.3.2:
resolution: {integrity: sha512-nqG5NNL2wFVGZ0NA/aCFw0oJ2pxSf1lwg4Z5ill8wd7K4KX/rQbHlwbh+bjctXL5Ly1xtzHenHGOK0b+lG6JVg==}
undici-types@6.19.8:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
......@@ -3310,12 +3244,12 @@ packages:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
unocss@0.61.9:
resolution: {integrity: sha512-D7nEObT1lhCUwXU5MoQ2Msh5S5g1EHVVSqDNM2ODs6dqWSboDCsRTPZQiyQmV9vCobrjYcvAFno9ZAgO7pvurw==}
unocss@66.1.1:
resolution: {integrity: sha512-GD/y7AsvbO6bG9Zu+5xf6UNIPyIwOUffTqLgFaWXHOqO6xXpbH9SWz2B+ATMdjwsRGr/JJHn3pLFo8lHGsHKsQ==}
engines: {node: '>=14'}
peerDependencies:
'@unocss/webpack': 0.61.9
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
'@unocss/webpack': 66.1.1
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
peerDependenciesMeta:
'@unocss/webpack':
optional: true
......@@ -3334,6 +3268,10 @@ packages:
'@vueuse/core':
optional: true
unplugin-utils@0.2.4:
resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==}
engines: {node: '>=18.12.0'}
unplugin-vue-components@0.26.0:
resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==}
engines: {node: '>=14'}
......@@ -3498,6 +3436,11 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
vue-flow-layout@0.1.1:
resolution: {integrity: sha512-JdgRRUVrN0Y2GosA0M68DEbKlXMqJ7FQgsK8CjQD2vxvNSqAU6PZEpi4cfcTVtfM2GVOMjHo7GKKLbXxOBqDqA==}
peerDependencies:
vue: ^3.4.37
vue-i18n@9.14.0:
resolution: {integrity: sha512-LxmpRuCt2rI8gqU+kxeflRZMQn4D5+4M3oP3PWZdowW/ePJraHqhF7p4CuaME52mUxdw3Mmy2yAUKgfZYgCRjA==}
engines: {node: '>= 16'}
......@@ -3611,13 +3554,15 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
'@antfu/install-pkg@0.4.1':
'@antfu/install-pkg@1.1.0':
dependencies:
package-manager-detector: 0.2.0
tinyexec: 0.3.0
package-manager-detector: 1.3.0
tinyexec: 1.0.1
'@antfu/utils@0.7.10': {}
'@antfu/utils@8.1.1': {}
'@babel/code-frame@7.24.7':
dependencies:
'@babel/highlight': 7.24.7
......@@ -3732,8 +3677,14 @@ snapshots:
'@babel/helper-string-parser@7.25.9': {}
'@babel/helper-string-parser@7.27.1':
optional: true
'@babel/helper-validator-identifier@7.25.9': {}
'@babel/helper-validator-identifier@7.27.1':
optional: true
'@babel/helper-validator-option@7.24.8': {}
'@babel/helpers@7.25.6':
......@@ -3762,7 +3713,7 @@ snapshots:
'@babel/parser@7.26.9':
dependencies:
'@babel/types': 7.26.9
'@babel/types': 7.27.1
optional: true
'@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)':
......@@ -3775,15 +3726,6 @@ snapshots:
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
'@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-simple-access': 7.24.7
transitivePeerDependencies:
- supports-color
'@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
......@@ -3795,17 +3737,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@babel/preset-typescript@7.24.7(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-validator-option': 7.24.8
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
'@babel/runtime@7.25.6':
dependencies:
regenerator-runtime: 0.14.1
......@@ -3839,10 +3770,10 @@ snapshots:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
'@babel/types@7.26.9':
'@babel/types@7.27.1':
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
optional: true
'@commitlint/cli@19.5.0(@types/node@20.16.5)(typescript@5.6.2)':
......@@ -3985,149 +3916,82 @@ snapshots:
'@esbuild/aix-ppc64@0.21.5':
optional: true
'@esbuild/aix-ppc64@0.23.1':
optional: true
'@esbuild/android-arm64@0.21.5':
optional: true
'@esbuild/android-arm64@0.23.1':
optional: true
'@esbuild/android-arm@0.21.5':
optional: true
'@esbuild/android-arm@0.23.1':
optional: true
'@esbuild/android-x64@0.21.5':
optional: true
'@esbuild/android-x64@0.23.1':
optional: true
'@esbuild/darwin-arm64@0.21.5':
optional: true
'@esbuild/darwin-arm64@0.23.1':
optional: true
'@esbuild/darwin-x64@0.21.5':
optional: true
'@esbuild/darwin-x64@0.23.1':
optional: true
'@esbuild/freebsd-arm64@0.21.5':
optional: true
'@esbuild/freebsd-arm64@0.23.1':
optional: true
'@esbuild/freebsd-x64@0.21.5':
optional: true
'@esbuild/freebsd-x64@0.23.1':
optional: true
'@esbuild/linux-arm64@0.21.5':
optional: true
'@esbuild/linux-arm64@0.23.1':
optional: true
'@esbuild/linux-arm@0.21.5':
optional: true
'@esbuild/linux-arm@0.23.1':
optional: true
'@esbuild/linux-ia32@0.21.5':
optional: true
'@esbuild/linux-ia32@0.23.1':
optional: true
'@esbuild/linux-loong64@0.21.5':
optional: true
'@esbuild/linux-loong64@0.23.1':
optional: true
'@esbuild/linux-mips64el@0.21.5':
optional: true
'@esbuild/linux-mips64el@0.23.1':
optional: true
'@esbuild/linux-ppc64@0.21.5':
optional: true
'@esbuild/linux-ppc64@0.23.1':
optional: true
'@esbuild/linux-riscv64@0.21.5':
optional: true
'@esbuild/linux-riscv64@0.23.1':
optional: true
'@esbuild/linux-s390x@0.21.5':
optional: true
'@esbuild/linux-s390x@0.23.1':
optional: true
'@esbuild/linux-x64@0.21.5':
optional: true
'@esbuild/linux-x64@0.23.1':
optional: true
'@esbuild/netbsd-x64@0.21.5':
optional: true
'@esbuild/netbsd-x64@0.23.1':
optional: true
'@esbuild/openbsd-arm64@0.23.1':
optional: true
'@esbuild/openbsd-x64@0.21.5':
optional: true
'@esbuild/openbsd-x64@0.23.1':
optional: true
'@esbuild/sunos-x64@0.21.5':
optional: true
'@esbuild/sunos-x64@0.23.1':
optional: true
'@esbuild/win32-arm64@0.21.5':
optional: true
'@esbuild/win32-arm64@0.23.1':
optional: true
'@esbuild/win32-ia32@0.21.5':
optional: true
'@esbuild/win32-ia32@0.23.1':
optional: true
'@esbuild/win32-x64@0.21.5':
optional: true
'@esbuild/win32-x64@0.23.1':
optional: true
'@eslint-community/eslint-utils@4.4.0(eslint@9.10.0(jiti@2.4.2))':
dependencies:
eslint: 9.10.0(jiti@2.4.2)
eslint-visitor-keys: 3.4.3
'@eslint-community/eslint-utils@4.7.0(eslint@9.10.0(jiti@2.4.2))':
dependencies:
eslint: 9.10.0(jiti@2.4.2)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.11.1': {}
'@eslint/config-array@0.18.0':
......@@ -4172,15 +4036,16 @@ snapshots:
'@iconify/types@2.0.0': {}
'@iconify/utils@2.1.33':
'@iconify/utils@2.3.0':
dependencies:
'@antfu/install-pkg': 0.4.1
'@antfu/utils': 0.7.10
'@antfu/install-pkg': 1.1.0
'@antfu/utils': 8.1.1
'@iconify/types': 2.0.0
debug: 4.3.7
debug: 4.4.1
globals: 15.15.0
kolorist: 1.8.0
local-pkg: 0.5.0
mlly: 1.7.1
local-pkg: 1.1.1
mlly: 1.7.4
transitivePeerDependencies:
- supports-color
......@@ -4242,13 +4107,20 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
optional: true
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.2.1': {}
'@jridgewell/source-map@0.3.6':
dependencies:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
optional: true
......@@ -4277,9 +4149,11 @@ snapshots:
'@pkgr/core@0.1.1': {}
'@polka/url@1.0.0-next.25': {}
'@pkgr/core@0.1.2': {}
'@quansync/fs@0.1.2':
'@polka/url@1.0.0-next.29': {}
'@quansync/fs@0.1.3':
dependencies:
quansync: 0.2.10
......@@ -4407,6 +4281,11 @@ snapshots:
'@typescript-eslint/types': 7.18.0
'@typescript-eslint/visitor-keys': 7.18.0
'@typescript-eslint/scope-manager@8.32.1':
dependencies:
'@typescript-eslint/types': 8.32.1
'@typescript-eslint/visitor-keys': 8.32.1
'@typescript-eslint/type-utils@7.18.0(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)':
dependencies:
'@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2)
......@@ -4421,6 +4300,8 @@ snapshots:
'@typescript-eslint/types@7.18.0': {}
'@typescript-eslint/types@8.32.1': {}
'@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.2)':
dependencies:
'@typescript-eslint/types': 7.18.0
......@@ -4436,6 +4317,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/typescript-estree@8.32.1(typescript@5.6.2)':
dependencies:
'@typescript-eslint/types': 8.32.1
'@typescript-eslint/visitor-keys': 8.32.1
debug: 4.4.1
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.2
ts-api-utils: 2.1.0(typescript@5.6.2)
typescript: 5.6.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@7.18.0(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@2.4.2))
......@@ -4447,217 +4342,199 @@ snapshots:
- supports-color
- typescript
'@typescript-eslint/utils@8.32.1(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)':
dependencies:
'@eslint-community/eslint-utils': 4.7.0(eslint@9.10.0(jiti@2.4.2))
'@typescript-eslint/scope-manager': 8.32.1
'@typescript-eslint/types': 8.32.1
'@typescript-eslint/typescript-estree': 8.32.1(typescript@5.6.2)
eslint: 9.10.0(jiti@2.4.2)
typescript: 5.6.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/visitor-keys@7.18.0':
dependencies:
'@typescript-eslint/types': 7.18.0
eslint-visitor-keys: 3.4.3
'@unocss/astro@0.61.9(rollup@4.21.3)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))':
'@typescript-eslint/visitor-keys@8.32.1':
dependencies:
'@typescript-eslint/types': 8.32.1
eslint-visitor-keys: 4.2.0
'@unocss/astro@66.1.1(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue@3.5.13(typescript@5.6.2))':
dependencies:
'@unocss/core': 0.61.9
'@unocss/reset': 0.61.9
'@unocss/vite': 0.61.9(rollup@4.21.3)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))
'@unocss/core': 66.1.1
'@unocss/reset': 66.1.1
'@unocss/vite': 66.1.1(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue@3.5.13(typescript@5.6.2))
optionalDependencies:
vite: 5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0)
transitivePeerDependencies:
- rollup
- supports-color
- vue
'@unocss/cli@0.61.9(rollup@4.21.3)':
'@unocss/cli@66.1.1':
dependencies:
'@ampproject/remapping': 2.3.0
'@rollup/pluginutils': 5.1.0(rollup@4.21.3)
'@unocss/config': 0.61.9
'@unocss/core': 0.61.9
'@unocss/preset-uno': 0.61.9
'@unocss/config': 66.1.1
'@unocss/core': 66.1.1
'@unocss/preset-uno': 66.1.1
cac: 6.7.14
chokidar: 3.6.0
colorette: 2.0.20
consola: 3.2.3
fast-glob: 3.3.2
consola: 3.4.2
magic-string: 0.30.17
pathe: 1.1.2
pathe: 2.0.3
perfect-debounce: 1.0.0
transitivePeerDependencies:
- rollup
- supports-color
tinyglobby: 0.2.13
unplugin-utils: 0.2.4
'@unocss/config@0.61.9':
'@unocss/config@66.1.1':
dependencies:
'@unocss/core': 0.61.9
unconfig: 0.5.5
transitivePeerDependencies:
- supports-color
'@unocss/config@66.1.0-beta.10':
dependencies:
'@unocss/core': 66.1.0-beta.10
unconfig: 7.3.1
'@unocss/core': 66.1.1
unconfig: 7.3.2
'@unocss/core@0.61.9': {}
'@unocss/core@66.1.1': {}
'@unocss/core@66.1.0-beta.10': {}
'@unocss/eslint-config@0.61.9(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)':
'@unocss/eslint-config@66.1.1(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)':
dependencies:
'@unocss/eslint-plugin': 0.61.9(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)
'@unocss/eslint-plugin': 66.1.1(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)
transitivePeerDependencies:
- eslint
- supports-color
- typescript
'@unocss/eslint-plugin@0.61.9(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)':
'@unocss/eslint-plugin@66.1.1(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)':
dependencies:
'@typescript-eslint/utils': 7.18.0(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)
'@unocss/config': 0.61.9
'@unocss/core': 0.61.9
magic-string: 0.30.11
synckit: 0.9.1
'@typescript-eslint/utils': 8.32.1(eslint@9.10.0(jiti@2.4.2))(typescript@5.6.2)
'@unocss/config': 66.1.1
'@unocss/core': 66.1.1
'@unocss/rule-utils': 66.1.1
magic-string: 0.30.17
synckit: 0.9.2
transitivePeerDependencies:
- eslint
- supports-color
- typescript
'@unocss/extractor-arbitrary-variants@0.61.9':
'@unocss/extractor-arbitrary-variants@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/core': 66.1.1
'@unocss/inspector@0.61.9':
'@unocss/inspector@66.1.1(vue@3.5.13(typescript@5.6.2))':
dependencies:
'@unocss/core': 0.61.9
'@unocss/rule-utils': 0.61.9
'@unocss/core': 66.1.1
'@unocss/rule-utils': 66.1.1
colorette: 2.0.20
gzip-size: 6.0.0
sirv: 2.0.4
'@unocss/postcss@0.61.9(postcss@8.4.47)':
dependencies:
'@unocss/config': 0.61.9
'@unocss/core': 0.61.9
'@unocss/rule-utils': 0.61.9
css-tree: 2.3.1
fast-glob: 3.3.2
magic-string: 0.30.17
postcss: 8.4.47
sirv: 3.0.1
vue-flow-layout: 0.1.1(vue@3.5.13(typescript@5.6.2))
transitivePeerDependencies:
- supports-color
- vue
'@unocss/postcss@66.1.0-beta.10(postcss@8.4.47)':
'@unocss/postcss@66.1.1(postcss@8.4.47)':
dependencies:
'@unocss/config': 66.1.0-beta.10
'@unocss/core': 66.1.0-beta.10
'@unocss/rule-utils': 66.1.0-beta.10
'@unocss/config': 66.1.1
'@unocss/core': 66.1.1
'@unocss/rule-utils': 66.1.1
css-tree: 3.1.0
postcss: 8.4.47
tinyglobby: 0.2.12
tinyglobby: 0.2.13
'@unocss/preset-attributify@0.61.9':
'@unocss/preset-attributify@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/core': 66.1.1
'@unocss/preset-icons@0.61.9':
'@unocss/preset-icons@66.1.1':
dependencies:
'@iconify/utils': 2.1.33
'@unocss/core': 0.61.9
ofetch: 1.3.4
'@iconify/utils': 2.3.0
'@unocss/core': 66.1.1
ofetch: 1.4.1
transitivePeerDependencies:
- supports-color
'@unocss/preset-mini@0.61.9':
'@unocss/preset-mini@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/extractor-arbitrary-variants': 0.61.9
'@unocss/rule-utils': 0.61.9
'@unocss/core': 66.1.1
'@unocss/extractor-arbitrary-variants': 66.1.1
'@unocss/rule-utils': 66.1.1
'@unocss/preset-tagify@0.61.9':
'@unocss/preset-tagify@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/core': 66.1.1
'@unocss/preset-typography@0.61.9':
'@unocss/preset-typography@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/preset-mini': 0.61.9
'@unocss/core': 66.1.1
'@unocss/preset-mini': 66.1.1
'@unocss/rule-utils': 66.1.1
'@unocss/preset-uno@0.61.9':
'@unocss/preset-uno@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/preset-mini': 0.61.9
'@unocss/preset-wind': 0.61.9
'@unocss/rule-utils': 0.61.9
'@unocss/core': 66.1.1
'@unocss/preset-wind3': 66.1.1
'@unocss/preset-web-fonts@0.61.9':
'@unocss/preset-web-fonts@66.1.1':
dependencies:
'@unocss/core': 0.61.9
ofetch: 1.3.4
'@unocss/core': 66.1.1
ofetch: 1.4.1
'@unocss/preset-wind@0.61.9':
'@unocss/preset-wind3@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/preset-mini': 0.61.9
'@unocss/rule-utils': 0.61.9
'@unocss/core': 66.1.1
'@unocss/preset-mini': 66.1.1
'@unocss/rule-utils': 66.1.1
'@unocss/reset@0.61.9': {}
'@unocss/rule-utils@0.61.9':
'@unocss/preset-wind4@66.1.1':
dependencies:
'@unocss/core': 0.61.9
magic-string: 0.30.17
'@unocss/core': 66.1.1
'@unocss/extractor-arbitrary-variants': 66.1.1
'@unocss/rule-utils': 66.1.1
'@unocss/rule-utils@66.1.0-beta.10':
'@unocss/preset-wind@66.1.1':
dependencies:
'@unocss/core': 66.1.0-beta.10
magic-string: 0.30.17
'@unocss/core': 66.1.1
'@unocss/preset-wind3': 66.1.1
'@unocss/scope@0.61.9': {}
'@unocss/reset@66.1.1': {}
'@unocss/transformer-attributify-jsx-babel@0.61.9':
'@unocss/rule-utils@66.1.1':
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
'@babel/preset-typescript': 7.24.7(@babel/core@7.25.2)
'@unocss/core': 0.61.9
transitivePeerDependencies:
- supports-color
'@unocss/core': 66.1.1
magic-string: 0.30.17
'@unocss/transformer-attributify-jsx@0.61.9':
'@unocss/transformer-attributify-jsx@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/core': 66.1.1
'@unocss/transformer-compile-class@0.61.9':
'@unocss/transformer-compile-class@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/core': 66.1.1
'@unocss/transformer-directives@0.61.9':
'@unocss/transformer-directives@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/rule-utils': 0.61.9
css-tree: 2.3.1
'@unocss/transformer-directives@66.1.0-beta.10':
dependencies:
'@unocss/core': 66.1.0-beta.10
'@unocss/rule-utils': 66.1.0-beta.10
'@unocss/core': 66.1.1
'@unocss/rule-utils': 66.1.1
css-tree: 3.1.0
'@unocss/transformer-variant-group@0.61.9':
'@unocss/transformer-variant-group@66.1.1':
dependencies:
'@unocss/core': 0.61.9
'@unocss/core': 66.1.1
'@unocss/vite@0.61.9(rollup@4.21.3)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))':
'@unocss/vite@66.1.1(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue@3.5.13(typescript@5.6.2))':
dependencies:
'@ampproject/remapping': 2.3.0
'@rollup/pluginutils': 5.1.0(rollup@4.21.3)
'@unocss/config': 0.61.9
'@unocss/core': 0.61.9
'@unocss/inspector': 0.61.9
'@unocss/scope': 0.61.9
'@unocss/transformer-directives': 0.61.9
'@unocss/config': 66.1.1
'@unocss/core': 66.1.1
'@unocss/inspector': 66.1.1(vue@3.5.13(typescript@5.6.2))
chokidar: 3.6.0
fast-glob: 3.3.2
magic-string: 0.30.17
pathe: 2.0.3
tinyglobby: 0.2.13
unplugin-utils: 0.2.4
vite: 5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0)
transitivePeerDependencies:
- rollup
- supports-color
- vue
'@vant/popperjs@1.3.0': {}
......@@ -4858,6 +4735,8 @@ snapshots:
acorn@8.12.1: {}
acorn@8.14.1: {}
ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
......@@ -4964,11 +4843,6 @@ snapshots:
buffer-from@1.1.2:
optional: true
bundle-require@5.0.0(esbuild@0.23.1):
dependencies:
esbuild: 0.23.1
load-tsconfig: 0.2.5
cac@6.7.14: {}
call-bind-apply-helpers@1.0.1:
......@@ -5081,7 +4955,11 @@ snapshots:
confbox@0.1.7: {}
consola@3.2.3: {}
confbox@0.1.8: {}
confbox@0.2.2: {}
consola@3.4.2: {}
conventional-changelog-angular@7.0.0:
dependencies:
......@@ -5186,6 +5064,10 @@ snapshots:
dependencies:
ms: 2.1.3
debug@4.4.1:
dependencies:
ms: 2.1.3
deep-is@0.1.4: {}
define-lazy-prop@2.0.0: {}
......@@ -5196,7 +5078,7 @@ snapshots:
delegate@3.2.0: {}
destr@2.0.3: {}
destr@2.0.5: {}
dir-glob@3.0.1:
dependencies:
......@@ -5289,33 +5171,6 @@ snapshots:
'@esbuild/win32-ia32': 0.21.5
'@esbuild/win32-x64': 0.21.5
esbuild@0.23.1:
optionalDependencies:
'@esbuild/aix-ppc64': 0.23.1
'@esbuild/android-arm': 0.23.1
'@esbuild/android-arm64': 0.23.1
'@esbuild/android-x64': 0.23.1
'@esbuild/darwin-arm64': 0.23.1
'@esbuild/darwin-x64': 0.23.1
'@esbuild/freebsd-arm64': 0.23.1
'@esbuild/freebsd-x64': 0.23.1
'@esbuild/linux-arm': 0.23.1
'@esbuild/linux-arm64': 0.23.1
'@esbuild/linux-ia32': 0.23.1
'@esbuild/linux-loong64': 0.23.1
'@esbuild/linux-mips64el': 0.23.1
'@esbuild/linux-ppc64': 0.23.1
'@esbuild/linux-riscv64': 0.23.1
'@esbuild/linux-s390x': 0.23.1
'@esbuild/linux-x64': 0.23.1
'@esbuild/netbsd-x64': 0.23.1
'@esbuild/openbsd-arm64': 0.23.1
'@esbuild/openbsd-x64': 0.23.1
'@esbuild/sunos-x64': 0.23.1
'@esbuild/win32-arm64': 0.23.1
'@esbuild/win32-ia32': 0.23.1
'@esbuild/win32-x64': 0.23.1
escalade@3.2.0: {}
escape-string-regexp@1.0.5: {}
......@@ -5373,6 +5228,8 @@ snapshots:
eslint-visitor-keys@4.0.0: {}
eslint-visitor-keys@4.2.0: {}
eslint@9.10.0(jiti@2.4.2):
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@2.4.2))
......@@ -5462,6 +5319,8 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
exsolve@1.0.5: {}
fast-deep-equal@3.1.3: {}
fast-diff@1.3.0: {}
......@@ -5474,6 +5333,14 @@ snapshots:
merge2: 1.4.1
micromatch: 4.0.8
fast-glob@3.3.3:
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.8
fast-json-stable-stringify@2.1.0: {}
fast-levenshtein@2.0.6: {}
......@@ -5486,7 +5353,7 @@ snapshots:
dependencies:
reusify: 1.0.4
fdir@6.4.3(picomatch@4.0.2):
fdir@6.4.4(picomatch@4.0.2):
optionalDependencies:
picomatch: 4.0.2
......@@ -5574,10 +5441,6 @@ snapshots:
get-stream@8.0.1: {}
get-tsconfig@4.8.1:
dependencies:
resolve-pkg-maps: 1.0.0
git-raw-commits@4.0.0:
dependencies:
dargs: 8.1.0
......@@ -5614,6 +5477,8 @@ snapshots:
globals@14.0.0: {}
globals@15.15.0: {}
globals@15.9.0: {}
globby@11.1.0:
......@@ -5689,18 +5554,6 @@ snapshots:
import-meta-resolve@4.1.0: {}
importx@0.4.4:
dependencies:
bundle-require: 5.0.0(esbuild@0.23.1)
debug: 4.3.7
esbuild: 0.23.1
jiti: 2.0.0-beta.3
jiti-v1: jiti@1.21.6
pathe: 1.1.2
tsx: 4.19.1
transitivePeerDependencies:
- supports-color
imurmurhash@0.1.4: {}
inherits@2.0.4: {}
......@@ -5773,8 +5626,6 @@ snapshots:
jiti@1.21.6: {}
jiti@2.0.0-beta.3: {}
jiti@2.4.2: {}
js-tokens@4.0.0: {}
......@@ -5872,8 +5723,6 @@ snapshots:
rfdc: 1.4.1
wrap-ansi: 9.0.0
load-tsconfig@0.2.5: {}
local-pkg@0.4.3: {}
local-pkg@0.5.0:
......@@ -5881,6 +5730,12 @@ snapshots:
mlly: 1.7.1
pkg-types: 1.2.0
local-pkg@1.1.1:
dependencies:
mlly: 1.7.4
pkg-types: 2.1.0
quansync: 0.2.10
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
......@@ -5893,6 +5748,10 @@ snapshots:
lodash.camelcase@4.3.0: {}
lodash.clonedeep@4.5.0: {}
lodash.isequal@4.5.0: {}
lodash.isplainobject@4.0.6: {}
lodash.kebabcase@4.1.1: {}
......@@ -5996,7 +5855,14 @@ snapshots:
pkg-types: 1.2.0
ufo: 1.5.4
mrmime@2.0.0: {}
mlly@1.7.4:
dependencies:
acorn: 8.14.1
pathe: 2.0.3
pkg-types: 1.3.1
ufo: 1.6.1
mrmime@2.0.1: {}
ms@2.1.3: {}
......@@ -6031,7 +5897,7 @@ snapshots:
natural-compare@1.4.0: {}
node-fetch-native@1.6.4: {}
node-fetch-native@1.6.6: {}
node-releases@2.0.18: {}
......@@ -6053,11 +5919,11 @@ snapshots:
object-inspect@1.13.3: {}
ofetch@1.3.4:
ofetch@1.4.1:
dependencies:
destr: 2.0.3
node-fetch-native: 1.6.4
ufo: 1.5.4
destr: 2.0.5
node-fetch-native: 1.6.6
ufo: 1.6.1
onetime@6.0.0:
dependencies:
......@@ -6098,10 +5964,12 @@ snapshots:
dependencies:
p-limit: 4.0.0
package-manager-detector@0.2.0: {}
package-manager-detector@1.3.0: {}
pako@1.0.11: {}
parchment@3.0.0: {}
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
......@@ -6129,6 +5997,8 @@ snapshots:
pathe@1.1.2: {}
pathe@2.0.3: {}
perfect-debounce@1.0.0: {}
picocolors@1.1.0: {}
......@@ -6155,6 +6025,18 @@ snapshots:
mlly: 1.7.1
pathe: 1.1.2
pkg-types@1.3.1:
dependencies:
confbox: 0.1.8
mlly: 1.7.4
pathe: 2.0.3
pkg-types@2.1.0:
dependencies:
confbox: 0.2.2
exsolve: 1.0.5
pathe: 2.0.3
postcss-html@1.7.0:
dependencies:
htmlparser2: 8.0.2
......@@ -6231,6 +6113,19 @@ snapshots:
queue-microtask@1.2.3: {}
quill-delta@5.1.0:
dependencies:
fast-diff: 1.3.0
lodash.clonedeep: 4.5.0
lodash.isequal: 4.5.0
quill@2.0.3:
dependencies:
eventemitter3: 5.0.1
lodash-es: 4.17.21
parchment: 3.0.0
quill-delta: 5.1.0
readable-stream@2.3.8:
dependencies:
core-util-is: 1.0.3
......@@ -6257,8 +6152,6 @@ snapshots:
resolve-from@5.0.0: {}
resolve-pkg-maps@1.0.0: {}
resolve@1.22.8:
dependencies:
is-core-module: 2.15.1
......@@ -6327,6 +6220,8 @@ snapshots:
semver@7.6.3: {}
semver@7.7.2: {}
setimmediate@1.0.5: {}
shebang-command@2.0.0:
......@@ -6365,10 +6260,10 @@ snapshots:
signal-exit@4.1.0: {}
sirv@2.0.4:
sirv@3.0.1:
dependencies:
'@polka/url': 1.0.0-next.25
mrmime: 2.0.0
'@polka/url': 1.0.0-next.29
mrmime: 2.0.1
totalist: 3.0.1
slash@3.0.0: {}
......@@ -6578,6 +6473,11 @@ snapshots:
'@pkgr/core': 0.1.1
tslib: 2.7.0
synckit@0.9.2:
dependencies:
'@pkgr/core': 0.1.2
tslib: 2.8.1
system-architecture@0.1.0: {}
table@6.8.2:
......@@ -6591,7 +6491,7 @@ snapshots:
terser@5.39.0:
dependencies:
'@jridgewell/source-map': 0.3.6
acorn: 8.12.1
acorn: 8.14.1
commander: 2.20.3
source-map-support: 0.5.21
optional: true
......@@ -6608,9 +6508,11 @@ snapshots:
tinyexec@0.3.0: {}
tinyglobby@0.2.12:
tinyexec@1.0.1: {}
tinyglobby@0.2.13:
dependencies:
fdir: 6.4.3(picomatch@4.0.2)
fdir: 6.4.4(picomatch@4.0.2)
picomatch: 4.0.2
tinymce@7.7.1: {}
......@@ -6629,18 +6531,17 @@ snapshots:
dependencies:
typescript: 5.6.2
ts-api-utils@2.1.0(typescript@5.6.2):
dependencies:
typescript: 5.6.2
tslib@1.14.1: {}
tslib@2.3.0: {}
tslib@2.7.0: {}
tsx@4.19.1:
dependencies:
esbuild: 0.23.1
get-tsconfig: 4.8.1
optionalDependencies:
fsevents: 2.3.3
tslib@2.8.1: {}
type-check@0.4.0:
dependencies:
......@@ -6667,17 +6568,11 @@ snapshots:
ufo@1.5.4: {}
unconfig@0.5.5:
dependencies:
'@antfu/utils': 0.7.10
defu: 6.1.4
importx: 0.4.4
transitivePeerDependencies:
- supports-color
ufo@1.6.1: {}
unconfig@7.3.1:
unconfig@7.3.2:
dependencies:
'@quansync/fs': 0.1.2
'@quansync/fs': 0.1.3
defu: 6.1.4
jiti: 2.4.2
quansync: 0.2.10
......@@ -6694,7 +6589,7 @@ snapshots:
estree-walker: 3.0.3
fast-glob: 3.3.2
local-pkg: 0.5.0
magic-string: 0.30.17
magic-string: 0.30.11
mlly: 1.7.1
pathe: 1.1.2
pkg-types: 1.2.0
......@@ -6707,34 +6602,33 @@ snapshots:
universalify@2.0.1: {}
unocss@0.61.9(postcss@8.4.47)(rollup@4.21.3)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0)):
dependencies:
'@unocss/astro': 0.61.9(rollup@4.21.3)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))
'@unocss/cli': 0.61.9(rollup@4.21.3)
'@unocss/core': 0.61.9
'@unocss/extractor-arbitrary-variants': 0.61.9
'@unocss/postcss': 0.61.9(postcss@8.4.47)
'@unocss/preset-attributify': 0.61.9
'@unocss/preset-icons': 0.61.9
'@unocss/preset-mini': 0.61.9
'@unocss/preset-tagify': 0.61.9
'@unocss/preset-typography': 0.61.9
'@unocss/preset-uno': 0.61.9
'@unocss/preset-web-fonts': 0.61.9
'@unocss/preset-wind': 0.61.9
'@unocss/reset': 0.61.9
'@unocss/transformer-attributify-jsx': 0.61.9
'@unocss/transformer-attributify-jsx-babel': 0.61.9
'@unocss/transformer-compile-class': 0.61.9
'@unocss/transformer-directives': 0.61.9
'@unocss/transformer-variant-group': 0.61.9
'@unocss/vite': 0.61.9(rollup@4.21.3)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))
unocss@66.1.1(postcss@8.4.47)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue@3.5.13(typescript@5.6.2)):
dependencies:
'@unocss/astro': 66.1.1(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue@3.5.13(typescript@5.6.2))
'@unocss/cli': 66.1.1
'@unocss/core': 66.1.1
'@unocss/postcss': 66.1.1(postcss@8.4.47)
'@unocss/preset-attributify': 66.1.1
'@unocss/preset-icons': 66.1.1
'@unocss/preset-mini': 66.1.1
'@unocss/preset-tagify': 66.1.1
'@unocss/preset-typography': 66.1.1
'@unocss/preset-uno': 66.1.1
'@unocss/preset-web-fonts': 66.1.1
'@unocss/preset-wind': 66.1.1
'@unocss/preset-wind3': 66.1.1
'@unocss/preset-wind4': 66.1.1
'@unocss/transformer-attributify-jsx': 66.1.1
'@unocss/transformer-compile-class': 66.1.1
'@unocss/transformer-directives': 66.1.1
'@unocss/transformer-variant-group': 66.1.1
'@unocss/vite': 66.1.1(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue@3.5.13(typescript@5.6.2))
optionalDependencies:
vite: 5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0)
transitivePeerDependencies:
- postcss
- rollup
- supports-color
- vue
unplugin-auto-import@0.17.8(@vueuse/core@10.11.1(vue@3.5.13(typescript@5.6.2)))(rollup@4.21.3)(webpack-sources@3.2.3):
dependencies:
......@@ -6752,6 +6646,11 @@ snapshots:
- rollup
- webpack-sources
unplugin-utils@0.2.4:
dependencies:
pathe: 2.0.3
picomatch: 4.0.2
unplugin-vue-components@0.26.0(@babel/parser@7.26.9)(rollup@4.21.3)(vue@3.5.13(typescript@5.6.2))(webpack-sources@3.2.3):
dependencies:
'@antfu/utils': 0.7.10
......@@ -6805,7 +6704,7 @@ snapshots:
evtd: 0.2.4
vue: 3.5.13(typescript@5.6.2)
vite-plugin-checker@0.7.2(eslint@9.10.0(jiti@2.4.2))(meow@13.2.0)(optionator@0.9.4)(stylelint@16.9.0(typescript@5.6.2))(typescript@5.6.2)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue-tsc@2.0.29(typescript@5.6.2)):
vite-plugin-checker@0.7.2(eslint@9.10.0(jiti@2.4.2))(optionator@0.9.4)(stylelint@16.9.0(typescript@5.6.2))(typescript@5.6.2)(vite@5.4.6(@types/node@20.16.5)(sass@1.79.1)(terser@5.39.0))(vue-tsc@2.0.29(typescript@5.6.2)):
dependencies:
'@babel/code-frame': 7.24.7
ansi-escapes: 4.3.2
......@@ -6824,7 +6723,6 @@ snapshots:
vscode-uri: 3.0.8
optionalDependencies:
eslint: 9.10.0(jiti@2.4.2)
meow: 13.2.0
optionator: 0.9.4
stylelint: 16.9.0(typescript@5.6.2)
typescript: 5.6.2
......@@ -6891,6 +6789,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.6.2)):
dependencies:
vue: 3.5.13(typescript@5.6.2)
vue-i18n@9.14.0(vue@3.5.13(typescript@5.6.2)):
dependencies:
'@intlify/core-base': 9.14.0
......
......@@ -43,3 +43,7 @@ export function fetchFileUpload<T>(
signal: config.signal,
})
}
export function fetchSceneList<T>() {
return request.post<T>('/agentApplicationRest/getHomePlugins.json?search=')
}
......@@ -15,6 +15,8 @@ import { useSystemLanguageStore } from '@/store/modules/system-language'
import { PluginType } from '@/enums/plugin'
import { NAvatar, NEllipsis } from 'naive-ui'
import type { SelectRenderLabel, SelectRenderTag } from 'naive-ui'
import RichTextInputBox from './rich-text-input-box/index.vue'
import type { WorkModeType } from '@/views/home/components/rich-text-input-box/types/index'
interface Props {
currentSessionId: string
......@@ -38,6 +40,7 @@ const isAgentResponding = defineModel<boolean>('isAgentResponding', { required:
const currentFetchEventSourceController = defineModel<AbortController | null>('currentFetchEventSourceController', {
required: true,
})
const editorDrawerConfig = defineModel<{ isShow: boolean; content: string }>('editorDrawerConfig', { required: true })
const { t } = useI18n()
......@@ -61,6 +64,12 @@ const currentInputFileInfo = ref({
uploading: false,
})
const currentSceneConfig = ref<{ agentId: string; agentTitle: string; agentDesc: string; agentAvatar: string } | null>(
null,
)
const workMode = ref<WorkModeType>('ApplicationMode')
const editorModeEnable = ref(false)
const isQuestionSubmitBtnDisabled = computed(() => {
return (
questionContent.value.trim().length === 0 ||
......@@ -138,7 +147,7 @@ function handleCreateNewSession() {
}
}
function questionSubmit() {
function questionSubmit(question: string) {
const latestUserMessageKey = nanoid()
const latestAssistantMessageKey = nanoid()
......@@ -148,7 +157,7 @@ function questionSubmit() {
emit('addMessageItem', latestUserMessageKey, {
role: 'user',
agentId: '',
content: questionContent.value.trim(),
content: question.trim(),
timestamp: Date.now(),
isAnswerLoading: false,
avatar: '',
......@@ -184,12 +193,15 @@ function questionSubmit() {
let messageContent = ''
let reasoningContent = ''
const agentId =
workMode.value === 'ApplicationMode' ? currentAgentApplication.value.agentId : currentSceneConfig.value?.agentId
currentFetchEventSourceController.value = fetchEventStreamSource(
'/agentApplicationRest/callAgentApplication.json',
{
dialogsId: props.currentSessionId, //会话ID
agentId: currentAgentApplication.value.agentId, //应用ID
input: questionContent.value.trim(), //提问文本
agentId: agentId, //应用ID
input: question.trim(), //提问文本
fileUrls: currentInputFileInfo.value.url ? [currentInputFileInfo.value.url] : [],
channel: ChannelType.index,
imageUrl: uploadImageList.value?.[0]?.url || '', // 图片链接
......@@ -234,6 +246,13 @@ function questionSubmit() {
})
props.isNotShowBackBottomBtn && messageListScrollToBottomThrottle()
if (editorModeEnable.value) {
editorDrawerConfig.value = {
isShow: true,
content: messageContent,
}
}
}, 100)
},
onclose: () => {
......@@ -257,15 +276,15 @@ function questionSubmit() {
uploadImageList.value = []
}
function handleQuestionSubmitEnter(event: KeyboardEvent) {
if (event.key === 'Enter' && !event.shiftKey) {
event.preventDefault()
// function handleQuestionSubmitEnter(event: KeyboardEvent) {
// if (event.key === 'Enter' && !event.shiftKey) {
// event.preventDefault()
if (!isQuestionSubmitBtnDisabled.value) {
questionSubmit()
}
}
}
// if (!isQuestionSubmitBtnDisabled.value) {
// questionSubmit()
// }
// }
// }
function handleFileUploadPopup() {
inputFileRef.value && inputFileRef.value.click()
......@@ -429,6 +448,10 @@ function onAgentApplicationInfoUpdate(_key: string, option: AgentApplicationReco
}
}
function onWorkModeChange(mode: WorkModeType) {
workMode.value = mode
}
defineExpose({
clearSessionReferenceFile: handleFileUploadCancel,
})
......@@ -437,7 +460,9 @@ defineExpose({
<template>
<div class="mx-auto mt-auto w-[750px] pr-[10px]">
<div class="mb-[10px] flex select-none justify-between">
<div class="w-[190px]">
<div>
<Transition mode="out-in">
<div v-if="workMode === 'ApplicationMode'" class="w-[190px]">
<n-select
:value="currentAgentApplication.agentId"
class="application-menu"
......@@ -453,8 +478,32 @@ defineExpose({
/>
</div>
<div
v-else-if="workMode === 'SceneMode'"
class="flex h-[34px] w-[190px] items-center rounded-[10px] border border-[#9ea3ff] px-[12px]"
>
<!-- <i class="iconfont icon-xiezuo mr-[6px] text-[18px]" :class="{ [`${currentSceneConfig?.icon}`]: true }"></i> -->
<NAvatar
:src="currentSceneConfig?.agentAvatar"
:size="22"
object-fit="contain"
class="mr-[6px] shrink-0"
></NAvatar>
<span class="flex-1 overflow-hidden text-[14px]">
<NEllipsis>{{ currentSceneConfig?.agentTitle }}</NEllipsis>
</span>
<i
class="iconfont icon-close hover:text-theme-color ml-[4px] cursor-pointer text-[14px] transition"
@click="onWorkModeChange('ApplicationMode')"
></i>
</div>
</Transition>
</div>
<div class="flex items-center">
<Transition name="file-upload" mode="out-in">
<Transition mode="out-in">
<div v-if="!currentInputFileInfo.fileName">
<n-popover trigger="hover">
<template #trigger>
......@@ -562,7 +611,16 @@ defineExpose({
</div>
<div class="relative">
<n-input
<RichTextInputBox
v-model:question-content="questionContent"
v-model:current-scene-config="currentSceneConfig"
v-model:editor-mode-enable="editorModeEnable"
:is-question-submit-btn-disabled="isQuestionSubmitBtnDisabled"
:work-mode="workMode"
@submit-question="questionSubmit"
@work-mode-switch="onWorkModeChange"
/>
<!-- <n-input
v-model:value.trim="questionContent"
class="content-input"
type="textarea"
......@@ -578,7 +636,7 @@ defineExpose({
</n-button>
</div>
</template>
</n-input>
</n-input> -->
<div v-show="isHasUploadImage" class="absolute bottom-[9px] left-[11px] flex gap-[11px]">
<div
......@@ -634,15 +692,15 @@ defineExpose({
}
}
.file-upload-enter-active,
.file-upload-leave-active {
.v-enter-active,
.v-leave-active {
transition-timing-function: ease-in-out;
transition-duration: 0.2s;
transition-property: opacity;
}
.file-upload-enter-from,
.file-upload-leave-to {
.v-enter-from,
.v-leave-to {
opacity: 0;
}
......
<script setup lang="ts">
import MessageItem from './message-item.vue'
import type { MessageItemInterface } from '../types'
import { provide, ref, useTemplateRef } from 'vue'
import { computed, provide, useTemplateRef } from 'vue'
import { ScrollbarInst } from 'naive-ui'
import EditorDrawer from '@/components/editor-drawer/editor-drawer.vue'
import { useElementVisibility } from '@vueuse/core'
......@@ -16,6 +16,8 @@ const emit = defineEmits<{
updateSpecifyMessageItem: [messageId: string, newMessageItem: Partial<MessageItemInterface>]
}>()
const editorDrawerConfig = defineModel<{ isShow: boolean; content: string }>('editorDrawerConfig', { required: true })
const scrollbarRef = useTemplateRef<ScrollbarInst | null>('scrollbarRef')
const backBottomBtnFlagRef = useTemplateRef<HTMLDivElement | null>('backBottomBtnFlagRef')
......@@ -27,8 +29,22 @@ provide('updateSpecifyMessageItem', {
},
})
const isShowEditorDrawer = ref(false)
const contentEdit = ref('')
const isShowEditorDrawer = computed({
get: () => {
return editorDrawerConfig.value.isShow
},
set: (value) => {
editorDrawerConfig.value.isShow = value
},
})
const contentEdit = computed({
get: () => {
return editorDrawerConfig.value.content
},
set: (value) => {
editorDrawerConfig.value.content = value
},
})
function scrollToBottom() {
if (scrollbarRef.value) {
......
<script setup lang="ts">
import { onMounted, ref, useTemplateRef, watch, watchEffect } from 'vue'
import { useFocus } from '@vueuse/core'
import { fetchSceneList } from '@/apis/home-agent'
interface SceneConfigItemInterface {
agentId: string
agentTitle: string
agentDesc: string
agentAvatar: string
}
const showSceneList = defineModel<boolean>('showSceneList', { default: false })
const currentSceneConfig = defineModel<SceneConfigItemInterface | null>('currentSceneConfig', { default: null })
const sceneListContainerRef = useTemplateRef<HTMLParagraphElement>('sceneListContainerRef')
const { focused: sceneListContainerFocus } = useFocus(sceneListContainerRef)
const sceneListConfig = ref<SceneConfigItemInterface[]>([])
watch(
() => showSceneList.value,
(isShow) => {
if (isShow) {
sceneListContainerFocus.value = true
}
},
)
watchEffect(() => {
if (!sceneListContainerFocus.value && showSceneList.value) {
showSceneList.value = false
}
})
onMounted(() => {
getSceneListConfig()
})
function getSceneListConfig() {
fetchSceneList<SceneConfigItemInterface[]>().then((res) => {
if (res.code !== 0) return null
sceneListConfig.value = res.data
})
}
function handleSceneSelection(sceneConfig: SceneConfigItemInterface) {
currentSceneConfig.value = {
...sceneConfig,
}
showSceneList.value = false
}
</script>
<template>
<div ref="sceneListContainerRef" class="absolute" tabindex="0">
<Transition name="scene-menu">
<ul
v-show="showSceneList"
class="z-99 absolute bottom-0 left-0 h-fit w-[192px] select-none rounded-[10px] border border-[#9EA3FF] bg-[#e1e1fc] p-[6px]"
>
<template v-if="sceneListConfig.length !== 0">
<li
v-for="(sceneItem, index) in sceneListConfig"
:key="index"
class="flex cursor-pointer rounded-[10px] px-[9px] py-[7px] text-[14px]"
:class="{
'hover:bg-[#D7DAF8]': currentSceneConfig?.agentId !== sceneItem.agentId,
'bg-[#D2D4FB]': currentSceneConfig?.agentId === sceneItem.agentId,
}"
@click="handleSceneSelection(sceneItem)"
>
<n-avatar :src="sceneItem.agentAvatar" :size="22" object-fit="contain" class="mr-[6px] shrink-0"></n-avatar>
<span class="flex-1 overflow-hidden">
<n-ellipsis>{{ sceneItem.agentTitle }}</n-ellipsis>
</span>
</li>
</template>
<li v-else class="rounded-[10px] px-[9px] py-[7px] text-[14px]">空数据</li>
</ul>
</Transition>
</div>
</template>
<style lang="scss" scoped>
.scene-menu-enter-active,
.scene-menu-leave-active {
transition-timing-function: ease-in-out;
transition-duration: 0.3s;
transition-property: opacity;
}
.scene-menu-enter-from,
.scene-menu-leave-to {
overflow: 1;
opacity: 0;
}
</style>
<script setup lang="ts">
import { readonly, ref, useTemplateRef, watch } from 'vue'
import { templateMenuConfigFactory } from '../data/template-menu'
import { useFocus } from '@vueuse/core'
import { debounce } from 'lodash-es'
import type { TemplateMenuConfig } from '@/views/home/components/rich-text-input-box/data/template-menu'
const showTemplateMenu = defineModel<boolean>('showTemplateMenu', { default: false })
const emit = defineEmits<{
templateConfirm: [templateConfig: TemplateMenuConfig['templateList'][0]]
}>()
const templateMenuContainerRef = useTemplateRef<HTMLParagraphElement>('templateMenuContainerRef')
const { focused: templateMenuContainerFocus } = useFocus(templateMenuContainerRef)
const templateMenuConfig = readonly<TemplateMenuConfig[]>(templateMenuConfigFactory())
const currentTemplateCategory = ref<string>('Work')
const templateMenuClose = debounce(
() => {
showTemplateMenu.value && (showTemplateMenu.value = false)
},
100,
{ leading: true, trailing: false },
)
watch(
() => showTemplateMenu.value,
(isShow) => {
if (isShow) {
currentTemplateCategory.value = 'Work'
templateMenuContainerFocus.value = true
}
},
)
watch(
() => templateMenuContainerFocus.value,
(isFocus) => {
if (!isFocus) {
templateMenuClose()
}
},
)
function handleTemplateSelect(templateItem: Readonly<TemplateMenuConfig['templateList'][0]>) {
emit('templateConfirm', templateItem)
showTemplateMenu.value = false
}
</script>
<template>
<div ref="templateMenuContainerRef" class="absolute" tabindex="0">
<Transition name="template-menu">
<div
v-show="showTemplateMenu"
class="z-99 absolute bottom-0 left-0 h-fit w-[514px] select-none rounded-[10px] border border-[#9EA3FF] bg-white px-[12px]"
>
<n-tabs
:value="currentTemplateCategory"
size="medium"
animated
:on-update:value="(value: string) => (currentTemplateCategory = value)"
>
<n-tab-pane
v-for="templateCategoryItem in templateMenuConfig"
:key="templateCategoryItem.category"
:name="templateCategoryItem.category"
:tab="templateCategoryItem.title"
>
<n-scrollbar x-scrollable>
<ul class="flex select-none pb-[12px]">
<li
v-for="(templateItem, index) in templateCategoryItem.templateList"
:key="index"
class="mr-[15px] w-[120px] cursor-pointer rounded-[10px] border border-[#9EA3FF] bg-[#E0E1FF] p-[7px] last:mr-0"
@click="handleTemplateSelect(templateItem)"
>
<div class="flex items-center">
<span class="flex-center inline-flex rounded-[4px] bg-[#8e83f1] px-[4px]">
<i class="iconfont text-[12px] text-white" :class="{ [`${templateItem.icon}`]: true }"></i>
</span>
<span class="ml-[5px] flex-1 overflow-hidden text-[12px]">
<n-ellipsis>{{ templateItem.title }}</n-ellipsis>
</span>
</div>
<div class="mt-[6px] w-full overflow-hidden text-[10px] text-[#999]">
<n-ellipsis>{{ templateItem.doc }}</n-ellipsis>
</div>
</li>
</ul>
</n-scrollbar>
</n-tab-pane>
</n-tabs>
</div>
</Transition>
</div>
</template>
<style lang="scss" scoped>
.template-menu-enter-active,
.template-menu-leave-active {
transition-timing-function: ease-in-out;
transition-duration: 0.3s;
transition-property: opacity;
}
.template-menu-enter-from,
.template-menu-leave-to {
overflow: 1;
opacity: 0;
}
</style>
export interface TemplateMenuConfig {
category: string
title: string
templateList: {
title: string
icon: string
doc: string
template: string
}[]
}
export function templateMenuConfigFactory(): TemplateMenuConfig[] {
return [
{
category: 'Work',
title: '工作',
templateList: [
{
title: '周报',
icon: 'icon-yingpingmoban',
doc: '总结一周的工作成果',
template:
'我的职业是【输入职业】,帮我写一份本周的工作周报,内容包含【输入本周工作内容】,下周计划【输入下周工作计划】。',
},
{
title: '日报',
icon: 'icon-yingpingmoban',
doc: '每日工作的总结回顾',
template:
'我的职业是【输入职业】,帮我写一份今天的工作日报,内容包含【输入今日工作内容】,明日计划【输入明日工作计划】。',
},
{
title: '月报',
icon: 'icon-yingpingmoban',
doc: '整月工作的清晰回顾',
template:
'我的职业是【输入职业】,帮我写一份本月的工作月报,内容包含【输入本月工作内容】,下月计划【输入下月工作计划】。',
},
{
title: '邮件',
icon: 'icon-yingpingmoban',
doc: '高效专业撰写邮件',
template: '帮我写一封发给【输入发送对象】的邮件,内容是【输入主题】。',
},
{
title: '会议总结',
icon: 'icon-yingpingmoban',
doc: '会议内容清晰明了',
template:
'帮我写一个讨论【输入会议内容】的会议总结,语气需要正式,内容要包含会议的主要讨论内容、结论,使用Markdown格式。',
},
],
},
{
category: 'BusinessMarketing',
title: '商务营销',
templateList: [
{
title: '活动策划',
icon: 'icon-yingpingmoban',
doc: '高效定制各类策划方案',
template:
'我是一名【活动策划师】,帮我写一个【音乐交流活动】的方案,内容包含但不限于策划主题、策划目的、详细计划、所需资源、策划预算、风险应对、效果评估。',
},
{
title: '市场调研',
icon: 'icon-yingpingmoban',
doc: '精准洞察市场',
template:
'我是一名市场调研专家 ,帮我写一个关于【主题】的市场调研报告,需要包含调研背景与目的、研究方法、市场分析、消费者分析、数据分析与发现、结论与建议等。',
},
{
title: '营销slogan',
icon: 'icon-yingpingmoban',
doc: '吸睛创意广告语',
template: '帮我写5个面向【输入目标人群】宣传【输入品牌商品】的广告营销slogan,简洁明了,富有创意。',
},
],
},
{
category: 'SocialMediaCopywriting',
title: '社媒文案',
templateList: [
{
title: '小红书',
icon: 'icon-yingpingmoban',
doc: '打造小红书吸睛内容',
template:
'生成一篇关于【主题】的小红书文案。内容要有标题和正文。标题需为小红书风格,正文适当使用 emoji丰富文案。',
},
{
title: '微博',
icon: 'icon-yingpingmoban',
doc: '快速创作微博文案',
template: '帮我生成一个关于【主题】的微博文案',
},
{
title: '评价',
icon: 'icon-yingpingmoban',
doc: '创造个性化评语',
template: '我想写一段关于【输入评价主题:如书籍评价】的好评,发布在【输入平台】上,字数不少于【100】字。',
},
],
},
{
category: 'LiteratureAndArt',
title: '文学艺术',
templateList: [
{
title: '诗歌',
icon: 'icon-yingpingmoban',
doc: '创作优美动人的诗篇',
template: '你是一个诗人,帮我创作一首关于【输入主题】的诗歌,使用【输入格式:如四言律诗】的格式。',
},
{
title: '故事',
icon: 'icon-yingpingmoban',
doc: '编写有趣吸睛的故事',
template: '帮我创作一篇关于【输入主题】的故事,要有标题和正文,情节要跌宕起伏,引人入胜,字数在800字左右。',
},
// {
// title: '',
// icon: 'icon-yingpingmoban',
// doc: '',
// template: '',
// },
],
},
]
}
import Quill from 'quill/core'
import Embed from 'quill/blots/embed'
class TemplateInputPromptBlot extends Embed {
static blotName = 'template-input-prompt'
static tagName = 'span'
static className = 'template-input-prompt-container'
static create(config: { placeholder: string; index: string }) {
const root = super.create() as HTMLElement
root.classList.add(`prompt-index-${config.index}`)
// root.classList.add('prompt-blank', 'relative')
const outerEl = document.createElement('span')
outerEl.dataset.placeholder = `[${config.placeholder}]`
// outerEl.classList.add('prompt-blank', 'relative', 'inline-block', 'min-w-fit')
outerEl.classList.add(
'relative',
'inline-block',
// 'bg-[rgb(0,87,255)]',
'px-[6px]',
// 'py-[2px]',
'mx-[2px]',
'rounded-[4px]',
)
outerEl.style.backgroundColor = 'rgba(0,87,255,0.06)'
// outerEl.style.color = '#b5caff'
outerEl.style.color = '#9ea3ff'
outerEl.style.lineHeight = '24px'
const placeholderEl = document.createElement('span')
placeholderEl.textContent = `[${config.placeholder}]`
outerEl.appendChild(placeholderEl)
const inputContainerEl = document.createElement('span')
inputContainerEl.setAttribute('contenteditable', 'true')
inputContainerEl.classList.add(
'prompt-content',
// 'inline-block',
'absolute',
'z-1',
// 'min-w-full',
// 'left-0',
// 'right-0',
'focus:outline-none',
'px-[6px]',
// 'text-[#0057ff]',
'whitespace-pre-wrap',
'break-all',
)
inputContainerEl.style.left = '0'
inputContainerEl.style.right = '0'
inputContainerEl.style.color = '#000dff'
inputContainerEl.textContent = ''
// 事件绑定
inputContainerEl.addEventListener('keydown', (e) => {
if (e.key === 'Backspace') {
e.stopPropagation()
}
})
inputContainerEl.addEventListener('input', (e) => {
const target = e.target as HTMLSpanElement
if (target.textContent?.length !== 0) {
placeholderEl.classList.remove('inline-block')
placeholderEl.classList.add('hidden')
inputContainerEl.classList.remove('absolute', 'px-[6px]')
} else {
placeholderEl.classList.remove('hidden')
placeholderEl.classList.add('inline-block')
inputContainerEl.classList.add('absolute', 'px-[6px]')
}
})
outerEl.appendChild(inputContainerEl)
root.appendChild(outerEl)
return root
}
}
Quill.register(TemplateInputPromptBlot)
<script setup lang="ts">
import { nextTick, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'
import SceneList from './components/scene-list.vue'
import TemplateMenu from './components/template-menu.vue'
import Quill from 'quill/core'
import 'quill/dist/quill.core.css'
import './formats/index'
import { getQuillOptions } from './quill-opstions'
import textStructureExtractor from './utils/text-structure-extractor'
import { Delta } from 'quill/core'
import type { TemplateMenuConfig } from '@/views/home/components/rich-text-input-box/data/template-menu'
import { debounce } from 'lodash-es'
import type { WorkModeType } from '@/views/home/components/rich-text-input-box/types/index'
interface Props {
isQuestionSubmitBtnDisabled: boolean
workMode: WorkModeType
}
const props = defineProps<Props>()
const emit = defineEmits<{
submitQuestion: [question: string]
workModeSwitch: [workMode: 'ApplicationMode' | 'SceneMode']
}>()
const questionContent = defineModel<string>('questionContent', { default: '' })
const currentSceneConfig = defineModel<{
agentId: string
agentTitle: string
agentDesc: string
agentAvatar: string
} | null>('currentSceneConfig', {
default: null,
})
const editorModeEnable = defineModel<boolean>('editorModeEnable', { default: false })
const quillInst = shallowRef<Quill | null>(null)
const questionContentDraft = ref('')
const isInputFocus = ref(false)
const showSceneList = ref(false)
const showTemplateMenu = ref(false)
// const editorModeEnable = ref(false)
const onQuillTextChange = debounce((delta: Delta) => {
const question = quillContentExtractor(delta)
questionContentDraft.value = question.trim()
questionContent.value = questionContentDraft.value
}, 100)
watch(
() => currentSceneConfig.value,
(newConfig) => {
if (newConfig) {
emit('workModeSwitch', 'SceneMode')
nextTick(() => {
quillInst.value?.focus()
})
}
},
)
watch(
() => questionContent.value,
(newQuestion) => {
if (newQuestion && newQuestion !== questionContentDraft.value) {
if (quillInst.value) {
quillInst.value.setContents([
{
insert: questionContent.value.trim() || '',
},
])
}
}
},
{ immediate: true },
)
watchEffect(() => {
if (quillInst.value) {
quillInst.value.on('text-change', onQuillTextChange)
}
})
onMounted(() => {
initQuill()
})
function initQuill() {
quillInst.value = new Quill(
'#rich-text-input-box-editor',
getQuillOptions({
keyboardCallback: {
enter: () => {
if (!props.isQuestionSubmitBtnDisabled) {
handleQuestionSubmit()
}
},
at: () => {
showSceneList.value = true
quillInst.value?.blur()
},
},
}),
)
}
function handleShowTemplateMenuSwitch() {
nextTick(() => {
if (!showTemplateMenu.value) {
showTemplateMenu.value = true
}
})
}
function quillContentExtractor(delta: Delta) {
const questionFragmentMap = new Map<number, string>()
let templateInputPromptIndex = 0
delta.forEach((op, opIndex) => {
if (typeof op.insert === 'object' && op.insert['template-input-prompt']) {
const promptEl = document.querySelector(
`#rich-text-input-box-editor .template-input-prompt-container.prompt-index-${templateInputPromptIndex} .prompt-content`,
)
let promptContent = ''
if (promptEl) {
promptContent = promptEl.textContent || ''
}
questionFragmentMap.set(opIndex, promptContent)
templateInputPromptIndex++
} else {
questionFragmentMap.set(opIndex, (op.insert as string) || '')
}
})
let question = ''
questionFragmentMap.forEach((fragment) => (question += fragment))
return question
}
function handleQuestionSubmit() {
if (quillInst.value) {
const delta = quillInst.value.getContents()
const question = quillContentExtractor(delta)
emit('submitQuestion', question)
questionContentDraft.value = ''
questionContent.value = ''
quillInst.value.setContents([])
}
}
function onTemplateConfirm(templateConfig: TemplateMenuConfig['templateList'][0]) {
const promptArr = textStructureExtractor(templateConfig.template || '')
const delta = new Delta()
let templateInputPromptIndex = 0
promptArr.forEach((promptItem) => {
if (promptItem.type === 'text') {
delta.insert(promptItem.content)
} else if (promptItem.type === 'placeholder') {
delta.insert({
'template-input-prompt': {
placeholder: promptItem.content,
index: templateInputPromptIndex,
},
})
templateInputPromptIndex++
}
})
quillInst.value?.setContents(delta)
}
</script>
<template>
<SceneList v-model:show-scene-list="showSceneList" v-model:current-scene-config="currentSceneConfig" />
<TemplateMenu v-model:show-template-menu="showTemplateMenu" @template-confirm="onTemplateConfirm" />
<div
class="hover:border-theme-color rounded-[5px] border border-[#9ea3ff] p-[12px] pr-0 transition duration-300"
:class="{ 'shadow-[0_0_0_2px_rgba(0,13,255,0.2)]': isInputFocus }"
>
<n-scrollbar class="max-h-[140px]">
<div class="pr-[12px]">
<div id="rich-text-input-box-editor" class="font-['SourceHanSansCN-Regular'] text-[14px] text-[#333]"></div>
</div>
</n-scrollbar>
<div class="mt-[8px] flex items-center justify-end px-[12px]">
<Transition>
<div v-show="workMode === 'SceneMode'" class="mr-[15px]">
<n-tooltip trigger="hover">
<template #trigger>
<button
class="mr-[5px] h-[24px] w-[32px] rounded-[5px] border border-[#333]/60 transition"
:class="[showTemplateMenu ? 'border-[#9EA3FF] text-[#9EA3FF]' : '']"
@click="handleShowTemplateMenuSwitch"
>
<i class="iconfont icon-moban1 text-[14px]"></i>
</button>
</template>
模板
</n-tooltip>
<n-tooltip trigger="hover">
<template #trigger>
<button
class="h-[24px] w-[32px] rounded-[5px] border border-[#333]/60 transition"
:class="[editorModeEnable ? 'border-[#9EA3FF] text-[#9EA3FF]' : '']"
@click="editorModeEnable = !editorModeEnable"
>
<i class="iconfont icon-wendangbianjiqi1 text-[14px]"></i>
</button>
</template>
消息编辑器
</n-tooltip>
</div>
</Transition>
<div>
<n-button type="primary" :disabled="isQuestionSubmitBtnDisabled" @click="handleQuestionSubmit">
<i class="iconfont icon-send-icon"></i>
</n-button>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
#rich-text-input-box-editor {
:deep(.ql-editor) {
padding: 0;
overflow: hidden;
line-height: 28px;
overflow-wrap: break-word;
&::before {
left: 0;
}
}
}
.v-enter-active,
.v-leave-active {
transition-timing-function: ease-in-out;
transition-duration: 0.2s;
transition-property: opacity;
}
.v-enter-from,
.v-leave-to {
opacity: 0;
}
</style>
import type { QuillOptions } from 'quill'
import type Quill from 'quill'
interface ConfigInterface {
keyboardCallback: {
enter?: (quillInst?: Quill, range?: any, context?: any) => void
at?: (quillInst?: Quill, range?: any, context?: any) => void
}
}
export function getQuillOptions(config: ConfigInterface): QuillOptions {
return {
placeholder: '发送信息、输入@选择工具',
modules: {
keyboard: {
bindings: {
enter: {
key: 'Enter',
handler: function (range: any, context: any) {
if (config.keyboardCallback.enter) {
config.keyboardCallback.enter((this as any).quill as Quill, range, context)
}
},
},
process: {
key: 'Process',
shiftKey: true,
handler: function (range: any, context: any) {
if (config.keyboardCallback.at) {
config.keyboardCallback.at((this as any).quill as Quill, range, context)
}
},
},
'@': {
key: '@',
shiftKey: true,
handler: function (range: any, context: any) {
if (config.keyboardCallback.at) {
config.keyboardCallback.at((this as any).quill as Quill, range, context)
}
},
},
// tab: {
// key: 'Tab',
// handler: function () {
// },
// },
},
},
},
}
}
export type WorkModeType = 'ApplicationMode' | 'SceneMode'
type SegmentType = 'text' | 'placeholder'
interface Segment {
type: SegmentType
content: string
}
export default function textStructureExtractor(str: string): Segment[] {
const segments = str.split(/【(.*?)】/g)
const result: Segment[] = []
segments.forEach((text, index) => {
if (index % 2 === 0) {
// 偶数索引:普通文本
if (text) {
result.push({ type: 'text', content: text })
}
} else {
// 奇数索引:占位符
result.push({ type: 'placeholder', content: text })
}
})
return result
}
......@@ -66,6 +66,11 @@ const currentFetchEventSourceController = ref<AbortController | null>(null)
})
}, 60) */
const editorDrawerConfig = ref({
isShow: false,
content: '',
})
const homeContainerWidthWatchDebounce = debounce((newWidth) => {
if (newWidth <= 1120) {
isShowHistoryMenu.value = false
......@@ -230,6 +235,7 @@ function onSmartFormsStatusFreezeCheck(messageItem: MessageItemInterface) {
<MessageList
v-show="isShowMessageList"
ref="messageListRef"
v-model:editor-drawer-config="editorDrawerConfig"
:message-list="messageList"
@update-specify-message-item="onUpdateSpecifyMessageItem"
/>
......@@ -240,6 +246,7 @@ function onSmartFormsStatusFreezeCheck(messageItem: MessageItemInterface) {
v-model:is-agent-responding="isAgentResponding"
v-model:question-content="questionContent"
v-model:current-fetch-event-source-controller="currentFetchEventSourceController"
v-model:editor-drawer-config="editorDrawerConfig"
:current-session-id="currentSessionId"
:message-list-length="messageList.size"
:is-not-show-back-bottom-btn="messageListRef?.isNotShowBackBottomBtn"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment