From c8f643817c2b671fd3616bd5aadcd4f4f2bc9651 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Thu, 18 Dec 2025 20:56:41 +0800 Subject: [PATCH] feat: Enhance hotkeys app with customizable settings and modal support - Added a modal component for user input in settings. - Implemented drag-and-drop functionality for customizing hotkeys. - Integrated toast notifications for user feedback on actions. - Updated store to manage customizable items and namespaces. - Enhanced the refresh button to fetch items with a refresh option. - Improved settings button to open settings in a new tab. - Added caching mechanisms for hotkeys data. - Created a settings page to manage hotkeys and namespaces. - Updated query module to handle configuration retrieval. --- package.json | 38 +- pnpm-lock.yaml | 1597 ++++++++++++++++++-------- src/apps/hotkeys/components/icon.tsx | 7 +- src/apps/hotkeys/index.tsx | 180 ++- src/apps/hotkeys/modal.tsx | 78 ++ src/apps/hotkeys/settings.tsx | 410 +++++++ src/apps/hotkeys/store.ts | 256 ++++- src/components/html.astro | 2 + src/modules/query.ts | 54 +- src/pages/settings.astro | 10 + 10 files changed, 2032 insertions(+), 600 deletions(-) create mode 100644 src/apps/hotkeys/modal.tsx create mode 100644 src/apps/hotkeys/settings.tsx create mode 100644 src/pages/settings.astro diff --git a/package.json b/package.json index c4fad9b..f1f9b2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kevisual/hot-api", - "version": "0.0.3", + "version": "0.0.4", "description": "", "main": "index.js", "basename": "/root/hot-api", @@ -8,11 +8,11 @@ "dev": "astro dev", "build": "astro build", "preview": "astro preview", - "pub": "envision deploy ./dist -k hot-api -v 0.0.3 -u -y y", - "pub:docs": "envision deploy ./dist -k hot-api-docs -v 0.0.3 -u", + "pub": "envision deploy ./dist -k hot-api -v 0.0.4 -u -y y", + "pub:docs": "envision deploy ./dist -k hot-api-docs -v 0.0.4 -u", "slide:dev": "slidev --open slides/index.md", "slide:build": "slidev build slides/index.md --base /root/hot-api-slide/", - "slide:pub": "envision deploy ./slides/dist -k hot-api-slide -v 0.0.3 -u", + "slide:pub": "envision deploy ./slides/dist -k hot-api-slide -v 0.0.4 -u", "ui": "pnpm dlx shadcn@latest add " }, "keywords": [], @@ -20,31 +20,39 @@ "license": "MIT", "type": "module", "dependencies": { - "@astrojs/mdx": "^4.3.12", + "@astrojs/mdx": "^4.3.13", "@astrojs/react": "^4.4.2", "@astrojs/sitemap": "^3.6.0", "@astrojs/vue": "^5.1.3", + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/sortable": "^10.0.0", + "@dnd-kit/utilities": "^3.2.2", + "@kevisual/app": "^0.0.2", + "@kevisual/cache": "^0.0.3", "@kevisual/context": "^0.0.4", - "@kevisual/query": "^0.0.31", + "@kevisual/noco": "^0.0.10", + "@kevisual/query": "^0.0.32", "@kevisual/query-login": "^0.0.7", "@kevisual/registry": "^0.0.1", "@radix-ui/react-slot": "^1.2.4", - "@tailwindcss/vite": "^4.1.17", + "@tailwindcss/vite": "^4.1.18", "@uiw/react-md-editor": "^4.0.11", - "antd": "^6.0.1", - "astro": "^5.16.4", + "antd": "^6.1.1", + "astro": "^5.16.6", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "dayjs": "^1.11.19", - "es-toolkit": "^1.42.0", + "es-toolkit": "^1.43.0", "github-markdown-css": "^5.8.1", "highlight.js": "^11.11.1", - "lucide-react": "^0.556.0", + "lucide-react": "^0.561.0", "marked": "^17.0.1", "marked-highlight": "^2.2.3", "nanoid": "^5.1.6", - "react": "^19.2.1", - "react-dom": "^19.2.1", + "react": "^19.2.3", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^19.2.3", "react-toastify": "^11.0.5", "tailwind-merge": "^3.4.0", "vue": "^3.5.25", @@ -58,10 +66,10 @@ "@types/react": "^19.2.7", "@types/react-dom": "^19.2.3", "dotenv": "^17.2.3", - "tailwindcss": "^4.1.17", + "tailwindcss": "^4.1.18", "tw-animate-css": "^1.4.0" }, - "packageManager": "pnpm@10.24.0", + "packageManager": "pnpm@10.26.0", "onlyBuiltDependencies": [ "@tailwindcss/oxide", "esbuild", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 57b0b5a..b21a201 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,44 +9,62 @@ importers: .: dependencies: '@astrojs/mdx': - specifier: ^4.3.12 - version: 4.3.12(astro@5.16.4(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3)) + specifier: ^4.3.13 + version: 4.3.13(astro@5.16.6(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3)) '@astrojs/react': specifier: ^4.4.2 - version: 4.4.2(@types/node@24.7.2)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + version: 4.4.2(@types/node@24.7.2)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@astrojs/sitemap': specifier: ^3.6.0 version: 3.6.0 '@astrojs/vue': specifier: ^5.1.3 - version: 5.1.3(@types/node@24.7.2)(astro@5.16.4(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(vue@3.5.25(typescript@5.9.3)) + version: 5.1.3(@types/node@24.7.2)(astro@5.16.6(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(vue@3.5.25(typescript@5.9.3)) + '@dnd-kit/core': + specifier: ^6.3.1 + version: 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@dnd-kit/sortable': + specifier: ^10.0.0 + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + '@dnd-kit/utilities': + specifier: ^3.2.2 + version: 3.2.2(react@19.2.3) + '@kevisual/app': + specifier: ^0.0.2 + version: 0.0.2(dotenv@17.2.3) + '@kevisual/cache': + specifier: ^0.0.3 + version: 0.0.3 '@kevisual/context': specifier: ^0.0.4 version: 0.0.4 + '@kevisual/noco': + specifier: ^0.0.10 + version: 0.0.10 '@kevisual/query': - specifier: ^0.0.31 - version: 0.0.31 + specifier: ^0.0.32 + version: 0.0.32 '@kevisual/query-login': specifier: ^0.0.7 - version: 0.0.7(@kevisual/query@0.0.31) + version: 0.0.7(@kevisual/query@0.0.32) '@kevisual/registry': specifier: ^0.0.1 version: 0.0.1(typescript@5.9.3) '@radix-ui/react-slot': specifier: ^1.2.4 - version: 1.2.4(@types/react@19.2.7)(react@19.2.1) + version: 1.2.4(@types/react@19.2.7)(react@19.2.3) '@tailwindcss/vite': - specifier: ^4.1.17 - version: 4.1.17(vite@6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)) + specifier: ^4.1.18 + version: 4.1.18(vite@6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)) '@uiw/react-md-editor': specifier: ^4.0.11 - version: 4.0.11(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + version: 4.0.11(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) antd: - specifier: ^6.0.1 - version: 6.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + specifier: ^6.1.1 + version: 6.1.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) astro: - specifier: ^5.16.4 - version: 5.16.4(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3) + specifier: ^5.16.6 + version: 5.16.6(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -57,8 +75,8 @@ importers: specifier: ^1.11.19 version: 1.11.19 es-toolkit: - specifier: ^1.42.0 - version: 1.42.0 + specifier: ^1.43.0 + version: 1.43.0 github-markdown-css: specifier: ^5.8.1 version: 5.8.1 @@ -66,8 +84,8 @@ importers: specifier: ^11.11.1 version: 11.11.1 lucide-react: - specifier: ^0.556.0 - version: 0.556.0(react@19.2.1) + specifier: ^0.561.0 + version: 0.561.0(react@19.2.3) marked: specifier: ^17.0.1 version: 17.0.1 @@ -78,14 +96,20 @@ importers: specifier: ^5.1.6 version: 5.1.6 react: - specifier: ^19.2.1 - version: 19.2.1 + specifier: ^19.2.3 + version: 19.2.3 + react-dnd: + specifier: ^16.0.1 + version: 16.0.1(@types/node@24.7.2)(@types/react@19.2.7)(react@19.2.3) + react-dnd-html5-backend: + specifier: ^16.0.1 + version: 16.0.1 react-dom: - specifier: ^19.2.1 - version: 19.2.1(react@19.2.1) + specifier: ^19.2.3 + version: 19.2.3(react@19.2.3) react-toastify: specifier: ^11.0.5 - version: 11.0.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + version: 11.0.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tailwind-merge: specifier: ^3.4.0 version: 3.4.0 @@ -94,7 +118,7 @@ importers: version: 3.5.25(typescript@5.9.3) zustand: specifier: ^5.0.9 - version: 5.0.9(@types/react@19.2.7)(react@19.2.1) + version: 5.0.9(@types/react@19.2.7)(react@19.2.3) devDependencies: '@kevisual/types': specifier: ^0.0.10 @@ -109,8 +133,8 @@ importers: specifier: ^17.2.3 version: 17.2.3 tailwindcss: - specifier: ^4.1.17 - version: 4.1.17 + specifier: ^4.1.18 + version: 4.1.18 tw-animate-css: specifier: ^1.4.0 version: 1.4.0 @@ -146,10 +170,11 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' - '@ant-design/react-slick@1.1.2': - resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} + '@ant-design/react-slick@2.0.0': + resolution: {integrity: sha512-HMS9sRoEmZey8LsE/Yo6+klhlzU12PisjrVcydW3So7RdklyEd2qehyU6a7Yp+OYN72mgsYs3NFCyP2lCPFVqg==} peerDependencies: - react: '>=16.9.0' + react: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 '@antfu/utils@0.7.10': resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} @@ -160,11 +185,11 @@ packages: '@astrojs/internal-helpers@0.7.5': resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==} - '@astrojs/markdown-remark@6.3.9': - resolution: {integrity: sha512-hX2cLC/KW74Io1zIbn92kI482j9J7LleBLGCVU9EP3BeH5MVrnFawOnqD0t/q6D1Z+ZNeQG2gNKMslCcO36wng==} + '@astrojs/markdown-remark@6.3.10': + resolution: {integrity: sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==} - '@astrojs/mdx@4.3.12': - resolution: {integrity: sha512-pL3CVPtuQrPnDhWjy7zqbOibNyPaxP4VpQS8T8spwKqKzauJ4yoKyNkVTD8jrP7EAJHmBhZ7PTmUGZqOpKKp8g==} + '@astrojs/mdx@4.3.13': + resolution: {integrity: sha512-IHDHVKz0JfKBy3//52JSiyWv089b7GVSChIXLrlUOoTLWowG3wr2/8hkaEgEyd/vysvNQvGk+QhysXpJW5ve6Q==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} peerDependencies: astro: ^5.0.0 @@ -364,6 +389,28 @@ packages: resolution: {integrity: sha512-8XqW8xGn++Eqqbz3e9wKuK7mxryeRjs4LOHLxbh2lwKeSbuNR4NFifDZT4KzvjU6HMOPbiNTsWpniK5EJfTWkg==} engines: {node: '>=18'} + '@dnd-kit/accessibility@3.1.1': + resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} + peerDependencies: + react: '>=16.8.0' + + '@dnd-kit/core@6.3.1': + resolution: {integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@dnd-kit/sortable@10.0.0': + resolution: {integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==} + peerDependencies: + '@dnd-kit/core': ^6.3.0 + react: '>=16.8.0' + + '@dnd-kit/utilities@3.2.2': + resolution: {integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==} + peerDependencies: + react: '>=16.8.0' + '@emnapi/runtime@1.5.0': resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} @@ -671,12 +718,30 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@kevisual/ai@0.0.19': + resolution: {integrity: sha512-AFc8m6OcHZNxCb88bvzhvwWTZ4EVYyPupBzPUsLKLpdNBvsqm9TRboKCM2brJj2cqHnm+H+RbAk9AcGJkYhRCA==} + + '@kevisual/app@0.0.2': + resolution: {integrity: sha512-DdUkrsLxHO31y5nYl1qAoBPbvTrunztN3z84ow73Of3kZADJRKmjZtrSOMX53vGVgg74AoLOxbYggoWvil9Ifg==} + '@kevisual/cache@0.0.3': resolution: {integrity: sha512-BWEck69KYL96/ywjYVkML974RHjDJTj2ITQND1zFPR+hlBV1H1p55QZgSYRJCObg3EAV1S9Zic/fR2T4pfe8yg==} '@kevisual/context@0.0.4': resolution: {integrity: sha512-HJeLeZQLU+7tCluSfOyvkgKLs0HjCZrdJlZgEgKRSa8XTwZfMAUt6J7qZTbrZAHBlPtX68EPu/PI8JMCeu3WAQ==} + '@kevisual/load@0.0.6': + resolution: {integrity: sha512-+3YTFehRcZ1haGel5DKYMUwmi5i6f2psyaPZlfkKU/cOXgkpwoG9/BEqPCnPjicKqqnksEpixVRkyHJ+5bjLVA==} + + '@kevisual/logger@0.0.4': + resolution: {integrity: sha512-+fpr92eokSxoGOW1SIRl/27lPuO+zyY+feR5o2Q4YCNlAdt2x64NwC/w8r/3NEC5QenLgd4K0azyKTI2mHbARw==} + + '@kevisual/noco@0.0.10': + resolution: {integrity: sha512-VFdjFiRpTOnuedD+WHxxV1YOvzGHU3oS+C8pU3HRXCwpcd+8rYEpH7EEUF1mMfC1oPCOPwnr67Dailc3CY0QKg==} + + '@kevisual/permission@0.0.3': + resolution: {integrity: sha512-8JsA/5O5Ax/z+M+MYpFYdlioHE6jNmWMuFSokBWYs9CCAHNiSKMR01YLkoVDoPvncfH/Y8F5K/IEXRCbptuMNA==} + '@kevisual/query-login@0.0.7': resolution: {integrity: sha512-oOyPIz337cdTt7WncFj7Wr7nxUHh0pBB6KSAJlas+lQiWBPwQEZhpEd7YciydCRlMc9IJMcZRV1Bw3qgy8FFqQ==} peerDependencies: @@ -685,18 +750,67 @@ packages: '@kevisual/query@0.0.31': resolution: {integrity: sha512-bBdepjmMICLpcj/a9fnn82/0CGGYUZiCV+usWsJZKAwVlZcnj+WtKmbgKT09KpP6g3jjYzYOaXHiNFB8N0bQAQ==} + '@kevisual/query@0.0.32': + resolution: {integrity: sha512-9WN9cjmwSW8I5A0SqITdts9oxlLBGdPP7kJ8vwrxkaQteHS9FzxKuMBJxZzGKZdyte/zJDvdrE+lMf254BGbbg==} + '@kevisual/registry@0.0.1': resolution: {integrity: sha512-//OHu9m4JDrMjgP8o8dcjZd3D3IAUkRVlkTSviouZEH7r5m7mccA3Hvzw0XJ/lelx6exC6LWsyv6c4uV0Dp+gw==} + '@kevisual/router@0.0.39': + resolution: {integrity: sha512-jE7/csRkMUuuSWl5RZHbOY44xL/2RI/vAJzCsqt150taW5CAri3efdaQJOQlzghlOqqA+1ZyGajxUAYv/HaQxA==} + '@kevisual/types@0.0.10': resolution: {integrity: sha512-Q73uzzjk9UidumnmCvOpgzqDDvQxsblz22bIFuoiioUFJWwaparx8bpd8ArRyFojicYL1YJoFDzDZ9j9NN8grA==} + '@kevisual/use-config@1.0.21': + resolution: {integrity: sha512-czgy4+tBDBJI6QTnKh2PCwswET6ZpZ4ZqBE/SPkkOivEtlrcPzLs5elwMLZ3goD1XMD4VB3yjumb5WuW/8H8MA==} + peerDependencies: + dotenv: ^17 + '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + '@peculiar/asn1-cms@2.6.0': + resolution: {integrity: sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==} + + '@peculiar/asn1-csr@2.6.0': + resolution: {integrity: sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==} + + '@peculiar/asn1-ecc@2.6.0': + resolution: {integrity: sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==} + + '@peculiar/asn1-pfx@2.6.0': + resolution: {integrity: sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==} + + '@peculiar/asn1-pkcs8@2.6.0': + resolution: {integrity: sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==} + + '@peculiar/asn1-pkcs9@2.6.0': + resolution: {integrity: sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==} + + '@peculiar/asn1-rsa@2.6.0': + resolution: {integrity: sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==} + + '@peculiar/asn1-schema@2.6.0': + resolution: {integrity: sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==} + + '@peculiar/asn1-x509-attr@2.6.0': + resolution: {integrity: sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==} + + '@peculiar/asn1-x509@2.6.0': + resolution: {integrity: sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==} + + '@peculiar/x509@1.14.2': + resolution: {integrity: sha512-r2w1Hg6pODDs0zfAKHkSS5HLkOLSeburtcgwvlLLWWCixw+MmW3U6kD5ddyvc2Y2YdbGuVwCF2S2ASoU1cFAag==} + engines: {node: '>=22.0.0'} + '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} @@ -722,11 +836,11 @@ packages: resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} engines: {node: '>=14.x'} - '@rc-component/cascader@1.8.0': - resolution: {integrity: sha512-AYcJ6zHWua/CPp2DK2Xebu6nhcbav5PcPVVwTRb7yJTuKuwnjlB81wgtPIEgMKRv42aH3hyMYZvFgKhuxuvKmg==} + '@rc-component/cascader@1.9.0': + resolution: {integrity: sha512-2jbthe1QZrMBgtCvNKkJFjZYC3uKl4N/aYm5SsMvO3T+F+qRT1CGsSM9bXnh1rLj7jDk/GK0natShWF/jinhWQ==} peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + react: '>=18.0.0' + react-dom: '>=18.0.0' '@rc-component/checkbox@1.0.1': resolution: {integrity: sha512-08yTH8m+bSm8TOqbybbJ9KiAuIATti6bDs2mVeSfu4QfEnyeF6X0enHVvD1NEAyuBWEAo56QtLe++MYs2D9XiQ==} @@ -758,8 +872,8 @@ packages: react: '>=18.0.0' react-dom: '>=18.0.0' - '@rc-component/drawer@1.2.0': - resolution: {integrity: sha512-RZ8IoNUv/soNVMYIWdjelKXX/3LWhVrKUQAeoc966Y55cIGc+PQKni025xshsvTY/+ntq10wqlBw1WCi77MvYQ==} + '@rc-component/drawer@1.3.0': + resolution: {integrity: sha512-rE+sdXEmv2W25VBQ9daGbnb4J4hBIEKmdbj0b3xpY+K7TUmLXDIlSnoXraIbFZdGyek9WxxGKK887uRnFgI+pQ==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' @@ -770,15 +884,15 @@ packages: react: '>=16.11.0' react-dom: '>=16.11.0' - '@rc-component/form@1.4.0': - resolution: {integrity: sha512-C8MN/2wIaW9hSrCCtJmcgCkWTQNIspN7ARXLFA4F8PGr8Qxk39U5pS3kRK51/bUJNhb/fEtdFnaViLlISGKI2A==} + '@rc-component/form@1.5.0': + resolution: {integrity: sha512-clF2Ws00bImVSOfaF4e2dLr631g5QOUD7M7kqb8es6fWXkJ1YO4nmjGJTQ/7QfB7iqY6JED4yV12ftKKD5/8GQ==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/image@1.5.2': - resolution: {integrity: sha512-SIbYLy0IrXqyhccpKktQEvpbBti/KwgG8V/E8GJa8ycwOQmuZaCP7b/C+eQlivn4KDWpfKfoOrLKHXmVlljDgg==} + '@rc-component/image@1.5.3': + resolution: {integrity: sha512-/NR7QW9uCN8Ugar+xsHZOPvzPySfEhcW2/vLcr7VPRM+THZMrllMRv7LAUgW7ikR+Z67Ab67cgPp5K5YftpJsQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -795,14 +909,14 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' - '@rc-component/mentions@1.5.5': - resolution: {integrity: sha512-m39JW6ZyR0+foE1ojgOx2+GH8kMaJS279A2cI0vV0gIEZMp+2hOpPhJgKR7vMOGdhvkiXwgfM49EaPw30NonNw==} + '@rc-component/mentions@1.6.0': + resolution: {integrity: sha512-KIkQNP6habNuTsLhUv0UGEOwG67tlmE7KNIJoQZZNggEZl5lQJTytFDb69sl5CK3TDdISCTjKP3nGEBKgT61CQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/menu@1.1.5': - resolution: {integrity: sha512-+TlOCjrvm0JFk3OtSbOLX4klXK1bBdwTSJeEg1lM8P0BfdJOYxLFmKyAoUILioP4dO2A9u+lZENZOleAmA4g+A==} + '@rc-component/menu@1.2.0': + resolution: {integrity: sha512-VWwDuhvYHSnTGj4n6bV3ISrLACcPAzdPOq3d0BzkeiM5cve8BEYfvkEhNoM0PLzv51jpcejeyrLXeMVIJ+QJlg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -831,14 +945,20 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + '@rc-component/overflow@1.0.0': + resolution: {integrity: sha512-GSlBeoE0XTBi5cf3zl8Qh7Uqhn7v8RrlJ8ajeVpEkNe94HWy5l5BQ0Mwn2TVUq9gdgbfEMUmTX7tJFAg7mz0Rw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + '@rc-component/pagination@1.2.0': resolution: {integrity: sha512-YcpUFE8dMLfSo6OARJlK6DbHHvrxz7pMGPGmC/caZSJJz6HRKHC1RPP001PRHCvG9Z/veD039uOQmazVuLJzlw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/picker@1.7.1': - resolution: {integrity: sha512-u75rwgbYbH3M2+k22dWOCXv1YUtdb5bgrD7YXCV19H6qS6mUHxQOcqRVTU2JmUPKkq+TOaHC4kDgU83mN2G01w==} + '@rc-component/picker@1.9.0': + resolution: {integrity: sha512-OLisdk8AWVCG9goBU1dWzuH5QlBQk8jktmQ6p0/IyBFwdKGwyIZOSjnBYo8hooHiTdl0lU+wGf/OfMtVBw02KQ==} engines: {node: '>=12.x'} peerDependencies: date-fns: '>= 2.x' @@ -896,8 +1016,8 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' - '@rc-component/select@1.2.7': - resolution: {integrity: sha512-qfhcB7oVUwuLtf67q4m2l2nOt7dp4axn9+fFmSHHcHy7FOFVFPIwWVMs6XFKAtxEEhZaHadQxLJFQLMRIp+Afw==} + '@rc-component/select@1.3.6': + resolution: {integrity: sha512-CzbJ9TwmWcF5asvTMZ9BMiTE9CkkrigeOGRPpzCNmeZP7KBwwmYrmOIiKh9tMG7d6DyGAEAQ75LBxzPx+pGTHA==} engines: {node: '>=8.x'} peerDependencies: react: '*' @@ -923,15 +1043,15 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/table@1.8.2': - resolution: {integrity: sha512-GUuuXIGx2M3KVEcqhze8cDs0cwkSby9VRnOrm6zbnryMFUr+WUL1eu7NA1j4Gi43Rd3/CIL8OmXhRdUz1L/Xug==} + '@rc-component/table@1.9.0': + resolution: {integrity: sha512-cq3P9FkD+F3eglkFYhBuNlHclg+r4jY8+ZIgK7zbEFo6IwpnA77YL/Gq4ensLw9oua3zFCTA6JDu6YgBei0TxA==} engines: {node: '>=8.x'} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' - '@rc-component/tabs@1.6.0': - resolution: {integrity: sha512-2OY02yhS7E0y0Yr5LBI3o5KdM7h4yJ5lBR6V4PEC1dx/sUZggEw7vAHGCArqCcpsZ6pzjOGJbGiVhz7dSMiehA==} + '@rc-component/tabs@1.7.0': + resolution: {integrity: sha512-J48cs2iBi7Ho3nptBxxIqizEliUC+ExE23faspUQKGQ550vaBlv3aGF8Epv/UB1vFWeoJDTW/dNzgIU0Qj5i/w==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' @@ -943,8 +1063,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/tooltip@1.3.4': - resolution: {integrity: sha512-wbxvH/UBVgGnpivBPDiGirNr2B9BhUBF4QJTWHK8hOMh6qWg/yf0g4UspH9+GlnSwSLoYOhcChmdLLFxSULBDQ==} + '@rc-component/tooltip@1.4.0': + resolution: {integrity: sha512-8Rx5DCctIlLI4raR0I0xHjVTf1aF48+gKCNeAAo5bmF5VoR5YED+A/XEqzXv9KKqrJDRcd3Wndpxh2hyzrTtSg==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' @@ -956,14 +1076,14 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/tree-select@1.3.1': - resolution: {integrity: sha512-aWbsJ0c7Saqu4Fpn0RPx0EeprttyBbAeH1HQ8cG8vPHOrkG+kg4Wg3TWB+e5uVo36dneH8NJHfOICLzdblQEhA==} + '@rc-component/tree-select@1.4.0': + resolution: {integrity: sha512-I3UAlO2hNqy9CSKc8EBaESgnmKk2QaRzuZ2XHZGFCgsSMkGl06mdF97sVfROM02YIb64ocgLKefsjE0Ch4ocwQ==} peerDependencies: react: '*' react-dom: '*' - '@rc-component/tree@1.0.2': - resolution: {integrity: sha512-h4P2P3N004VmUonkBzhisjrwME2njSxmUzZPhkFHGllAzbcRUSUGSx0dvRr0FCxYYittpMpGUHE6OMvbVX2c8Q==} + '@rc-component/tree@1.1.0': + resolution: {integrity: sha512-HZs3aOlvFgQdgrmURRc/f4IujiNBf4DdEeXUlkS0lPoLlx9RoqsZcF0caXIAMVb+NaWqKtGQDnrH8hqLCN5zlA==} engines: {node: '>=10.x'} peerDependencies: react: '*' @@ -982,12 +1102,28 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/util@1.4.0': - resolution: {integrity: sha512-LQlShcJKu0p3JUTAenKrWtqVW0+c4PJKedOqEaef9gTVL70O3cG4xZJ7VXfm0blGzORKFEkd3oQGalaUBNZ3Lg==} + '@rc-component/util@1.6.0': + resolution: {integrity: sha512-YbjuIVAm8InCnXVoA4n6G+uh31yESTxQ6fSY2frZ2/oMSvktoB+bumFUfNN7RKh7YeOkZgOvN2suGtEDhJSX0A==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' + '@rc-component/virtual-list@1.0.2': + resolution: {integrity: sha512-uvTol/mH74FYsn5loDGJxo+7kjkO4i+y4j87Re1pxJBs0FaeuMuLRzQRGaXwnMcV1CxpZLi2Z56Rerj2M00fjQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@react-dnd/asap@5.0.2': + resolution: {integrity: sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==} + + '@react-dnd/invariant@4.0.2': + resolution: {integrity: sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==} + + '@react-dnd/shallowequal@4.0.2': + resolution: {integrity: sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==} + '@rolldown/pluginutils@1.0.0-beta.27': resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} @@ -1116,21 +1252,39 @@ packages: '@shikijs/core@3.15.0': resolution: {integrity: sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg==} + '@shikijs/core@3.20.0': + resolution: {integrity: sha512-f2ED7HYV4JEk827mtMDwe/yQ25pRiXZmtHjWF8uzZKuKiEsJR7Ce1nuQ+HhV9FzDcbIo4ObBCD9GPTzNuy9S1g==} + '@shikijs/engine-javascript@3.15.0': resolution: {integrity: sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg==} + '@shikijs/engine-javascript@3.20.0': + resolution: {integrity: sha512-OFx8fHAZuk7I42Z9YAdZ95To6jDePQ9Rnfbw9uSRTSbBhYBp1kEOKv/3jOimcj3VRUKusDYM6DswLauwfhboLg==} + '@shikijs/engine-oniguruma@3.15.0': resolution: {integrity: sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA==} + '@shikijs/engine-oniguruma@3.20.0': + resolution: {integrity: sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==} + '@shikijs/langs@3.15.0': resolution: {integrity: sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A==} + '@shikijs/langs@3.20.0': + resolution: {integrity: sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==} + '@shikijs/themes@3.15.0': resolution: {integrity: sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ==} + '@shikijs/themes@3.20.0': + resolution: {integrity: sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==} + '@shikijs/types@3.15.0': resolution: {integrity: sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw==} + '@shikijs/types@3.20.0': + resolution: {integrity: sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==} + '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -1141,65 +1295,65 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@tailwindcss/node@4.1.17': - resolution: {integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==} + '@tailwindcss/node@4.1.18': + resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} - '@tailwindcss/oxide-android-arm64@4.1.17': - resolution: {integrity: sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==} + '@tailwindcss/oxide-android-arm64@4.1.18': + resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.17': - resolution: {integrity: sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==} + '@tailwindcss/oxide-darwin-arm64@4.1.18': + resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.17': - resolution: {integrity: sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==} + '@tailwindcss/oxide-darwin-x64@4.1.18': + resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.17': - resolution: {integrity: sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==} + '@tailwindcss/oxide-freebsd-x64@4.1.18': + resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17': - resolution: {integrity: sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.17': - resolution: {integrity: sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.17': - resolution: {integrity: sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.17': - resolution: {integrity: sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.17': - resolution: {integrity: sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==} + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.17': - resolution: {integrity: sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==} + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -1210,24 +1364,24 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.17': - resolution: {integrity: sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.17': - resolution: {integrity: sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.17': - resolution: {integrity: sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==} + '@tailwindcss/oxide@4.1.18': + resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} engines: {node: '>= 10'} - '@tailwindcss/vite@4.1.17': - resolution: {integrity: sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA==} + '@tailwindcss/vite@4.1.18': + resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 @@ -1418,8 +1572,8 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} - antd@6.0.1: - resolution: {integrity: sha512-/kCH3057suoqe1D/JJ4lxvkESZWJr1+ISTbRnbxk99gXJWaxYp7pCX+4CZSdvVDKFpU1YBkzHn9/ZVNNyHImqQ==} + antd@6.1.1: + resolution: {integrity: sha512-GBVxq3ShcYN/lEALvLPQDFN0bWjp2gQaFvRIXu4cwvXQcbV/D2FhShhTiNWhXxUk6nVkODBi4Uzo9SfLbDGsng==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' @@ -1441,12 +1595,16 @@ packages: array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + asn1js@3.0.7: + resolution: {integrity: sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==} + engines: {node: '>=12.0.0'} + astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro@5.16.4: - resolution: {integrity: sha512-rgXI/8/tnO3Y9tfAaUyg/8beKhlIMltbiC8Q6jCoAfEidOyaue4KYKzbe0gJIb6qEdEaG3Kf3BY3EOSLkbWOLg==} + astro@5.16.6: + resolution: {integrity: sha512-6mF/YrvwwRxLTu+aMEa5pwzKUNl5ZetWbTyZCs9Um0F12HUmxUiF5UHiZPy4rifzU3gtpM3xP2DfdmkNX9eZRg==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -1492,6 +1650,10 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} + bytestreamjs@2.0.1: + resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} + engines: {node: '>=6.0.0'} + camelcase@8.0.0: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} @@ -1644,6 +1806,10 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -1679,6 +1845,9 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dnd-core@16.0.1: + resolution: {integrity: sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -1700,6 +1869,9 @@ packages: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + electron-to-chromium@1.5.235: resolution: {integrity: sha512-i/7ntLFwOdoHY7sgjlTIDo4Sl8EdoTjWIaKinYOVfC6bOp71bmwenyZthWHcasxgHDNWbWxvG9M3Ia116zIaYQ==} @@ -1709,6 +1881,10 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + enhanced-resolve@5.18.3: resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} engines: {node: '>=10.13.0'} @@ -1727,8 +1903,8 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-toolkit@1.42.0: - resolution: {integrity: sha512-SLHIyY7VfDJBM8clz4+T2oquwTQxEzu263AyhVK4jREOAwJ+8eebaa4wM3nlvnAqhDrMm2EsA6hWHaQsMPQ1nA==} + es-toolkit@1.43.0: + resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==} esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -1745,6 +1921,9 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -1773,6 +1952,10 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -1809,6 +1992,10 @@ packages: fontkit@2.0.4: resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + fs-extra@11.3.2: resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} engines: {node: '>=14.14'} @@ -1901,6 +2088,9 @@ packages: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -1919,6 +2109,10 @@ packages: http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + human-signals@8.0.1: resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} engines: {node: '>=18.18.0'} @@ -1943,6 +2137,9 @@ packages: import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} @@ -2119,8 +2316,8 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - lucide-react@0.556.0: - resolution: {integrity: sha512-iOb8dRk7kLaYBZhR2VlV1CeJGxChBgUthpSP8wom9jfj79qovgG6qcSdiy6vkoREKPnbUYzJsCn4o4PtG3Iy+A==} + lucide-react@0.561.0: + resolution: {integrity: sha512-Y59gMY38tl4/i0qewcqohPdEbieBy7SovpBL9IFebhc2mDd8x4PZSOsiFRkpPcOq6bj1r/mjH/Rk73gSlIJP2A==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2309,6 +2506,14 @@ packages: micromark@4.0.2: resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} @@ -2371,12 +2576,19 @@ packages: ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} oniguruma-to-es@4.3.3: resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + oniguruma-to-es@4.3.4: + resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} + open@10.2.0: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} @@ -2423,6 +2635,9 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -2443,6 +2658,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + pkijs@3.3.3: + resolution: {integrity: sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==} + engines: {node: '>=16.0.0'} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -2465,38 +2684,42 @@ packages: property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + pvtsutils@1.3.6: + resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} + + pvutils@1.1.5: + resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} + engines: {node: '>=16.0.0'} + radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - rc-overflow@1.5.0: - resolution: {integrity: sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} - rc-resize-observer@1.4.3: - resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + react-dnd-html5-backend@16.0.1: + resolution: {integrity: sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==} - rc-util@5.44.4: - resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==} + react-dnd@16.0.1: + resolution: {integrity: sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==} peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + '@types/hoist-non-react-statics': '>= 3.3.1' + '@types/node': '>= 12' + '@types/react': '>= 16' + react: '>= 16.14' + peerDependenciesMeta: + '@types/hoist-non-react-statics': + optional: true + '@types/node': + optional: true + '@types/react': + optional: true - rc-virtual-list@3.19.2: - resolution: {integrity: sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==} - engines: {node: '>=8.x'} + react-dom@19.2.3: + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - react-dom@19.2.1: - resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==} - peerDependencies: - react: ^19.2.1 + react: ^19.2.3 react-i18next@15.7.4: resolution: {integrity: sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw==} @@ -2514,6 +2737,9 @@ packages: typescript: optional: true + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -2533,8 +2759,8 @@ packages: react: ^18 || ^19 react-dom: ^18 || ^19 - react@19.2.1: - resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==} + react@19.2.3: + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} readdirp@4.1.2: @@ -2555,6 +2781,12 @@ packages: recma-stringify@1.0.0: resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + redux@4.2.1: + resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} + + reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + refractor@4.9.0: resolution: {integrity: sha512-nEG1SPXFoGGx+dcjftjv8cAjEusIh6ED1xhf5DG3C0x/k+rmZ2duKnc3QLpt6qeHv5fPb8uwN3VWN2BT7fr3Og==} @@ -2629,9 +2861,6 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - restructure@3.0.2: resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} @@ -2668,6 +2897,10 @@ packages: scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + selfsigned@5.2.0: + resolution: {integrity: sha512-QKF6fsJgdKn5Cy1SekTuwUQ6LOLUdnO4gVne1+TGSAyL/CD1aznNCmBna+bQB9xyon7DiYbDtTR1cLaxDXuaVA==} + engines: {node: '>=15.6.0'} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -2677,6 +2910,13 @@ packages: engines: {node: '>=10'} hasBin: true + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + sharp@0.34.4: resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -2692,6 +2932,9 @@ packages: shiki@3.15.0: resolution: {integrity: sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw==} + shiki@3.20.0: + resolution: {integrity: sha512-kgCOlsnyWb+p0WU+01RjkCH+eBVsjL1jOwUYWv0YDWkM2/A46+LDKVs5yZCUXjJG6bj4ndFoAg5iLIIue6dulg==} + signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -2727,6 +2970,10 @@ packages: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} @@ -2777,8 +3024,8 @@ packages: tailwind-merge@3.4.0: resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==} - tailwindcss@4.1.17: - resolution: {integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==} + tailwindcss@4.1.18: + resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} @@ -2799,6 +3046,10 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} @@ -2822,9 +3073,16 @@ packages: typescript: optional: true + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsyringe@4.10.0: + resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} + engines: {node: '>= 6.0.0'} + tw-animate-css@1.4.0: resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} @@ -3158,46 +3416,46 @@ snapshots: dependencies: '@ant-design/fast-color': 3.0.0 - '@ant-design/cssinjs-utils@2.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@ant-design/cssinjs-utils@2.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@ant-design/cssinjs': 2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@ant-design/cssinjs': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@babel/runtime': 7.28.4 - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@ant-design/cssinjs@2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@ant-design/cssinjs@2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 '@emotion/hash': 0.8.0 '@emotion/unitless': 0.7.5 - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 csstype: 3.2.3 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) stylis: 4.3.6 '@ant-design/fast-color@3.0.0': {} '@ant-design/icons-svg@4.4.2': {} - '@ant-design/icons@6.1.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@ant-design/icons@6.1.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@ant-design/colors': 8.0.0 '@ant-design/icons-svg': 4.4.2 - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@ant-design/react-slick@1.1.2(react@19.2.1)': + '@ant-design/react-slick@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 - classnames: 2.5.1 + clsx: 2.1.1 json2mq: 0.2.0 - react: 19.2.1 - resize-observer-polyfill: 1.5.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) throttle-debounce: 5.0.2 '@antfu/utils@0.7.10': {} @@ -3206,7 +3464,7 @@ snapshots: '@astrojs/internal-helpers@0.7.5': {} - '@astrojs/markdown-remark@6.3.9': + '@astrojs/markdown-remark@6.3.10': dependencies: '@astrojs/internal-helpers': 0.7.5 '@astrojs/prism': 3.3.0 @@ -3222,7 +3480,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - shiki: 3.15.0 + shiki: 3.20.0 smol-toml: 1.5.2 unified: 11.0.5 unist-util-remove-position: 5.0.0 @@ -3232,12 +3490,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.12(astro@5.16.4(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3))': + '@astrojs/mdx@4.3.13(astro@5.16.6(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3))': dependencies: - '@astrojs/markdown-remark': 6.3.9 + '@astrojs/markdown-remark': 6.3.10 '@mdx-js/mdx': 3.1.1 acorn: 8.15.0 - astro: 5.16.4(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3) + astro: 5.16.6(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -3255,13 +3513,13 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/react@4.4.2(@types/node@24.7.2)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@astrojs/react@4.4.2(@types/node@24.7.2)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) ultrahtml: 1.6.0 vite: 6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: @@ -3296,12 +3554,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vue@5.1.3(@types/node@24.7.2)(astro@5.16.4(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(vue@3.5.25(typescript@5.9.3))': + '@astrojs/vue@5.1.3(@types/node@24.7.2)(astro@5.16.6(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(vue@3.5.25(typescript@5.9.3))': dependencies: '@vitejs/plugin-vue': 5.2.1(vite@6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.25(typescript@5.9.3)) '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.25(typescript@5.9.3)) '@vue/compiler-sfc': 3.5.25 - astro: 5.16.4(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3) + astro: 5.16.6(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3) vite: 6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2) vite-plugin-vue-devtools: 7.7.9(rollup@4.52.4)(vite@6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.25(typescript@5.9.3)) vue: 3.5.25(typescript@5.9.3) @@ -3548,6 +3806,31 @@ snapshots: dependencies: fontkit: 2.0.4 + '@dnd-kit/accessibility@3.1.1(react@19.2.3)': + dependencies: + react: 19.2.3 + tslib: 2.8.1 + + '@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@dnd-kit/accessibility': 3.1.1(react@19.2.3) + '@dnd-kit/utilities': 3.2.2(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + tslib: 2.8.1 + + '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': + dependencies: + '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@dnd-kit/utilities': 3.2.2(react@19.2.3) + react: 19.2.3 + tslib: 2.8.1 + + '@dnd-kit/utilities@3.2.2(react@19.2.3)': + dependencies: + react: 19.2.3 + tslib: 2.8.1 + '@emnapi/runtime@1.5.0': dependencies: tslib: 2.8.1 @@ -3743,20 +4026,51 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@kevisual/ai@0.0.19': + dependencies: + '@kevisual/logger': 0.0.4 + '@kevisual/permission': 0.0.3 + '@kevisual/query': 0.0.31 + + '@kevisual/app@0.0.2(dotenv@17.2.3)': + dependencies: + '@kevisual/ai': 0.0.19 + '@kevisual/context': 0.0.4 + '@kevisual/query': 0.0.32 + '@kevisual/router': 0.0.39 + '@kevisual/use-config': 1.0.21(dotenv@17.2.3) + mitt: 3.0.1 + nanoid: 5.1.6 + transitivePeerDependencies: + - dotenv + - supports-color + '@kevisual/cache@0.0.3': dependencies: idb-keyval: 6.2.2 '@kevisual/context@0.0.4': {} - '@kevisual/query-login@0.0.7(@kevisual/query@0.0.31)': + '@kevisual/load@0.0.6': + dependencies: + eventemitter3: 5.0.1 + + '@kevisual/logger@0.0.4': {} + + '@kevisual/noco@0.0.10': {} + + '@kevisual/permission@0.0.3': {} + + '@kevisual/query-login@0.0.7(@kevisual/query@0.0.32)': dependencies: '@kevisual/cache': 0.0.3 - '@kevisual/query': 0.0.31 + '@kevisual/query': 0.0.32 dotenv: 17.2.3 '@kevisual/query@0.0.31': {} + '@kevisual/query@0.0.32': {} + '@kevisual/registry@0.0.1(typescript@5.9.3)': dependencies: class-variance-authority: 0.7.1 @@ -3764,19 +4078,32 @@ snapshots: i18next: 25.6.0(typescript@5.9.3) i18next-browser-languagedetector: 8.2.0 i18next-http-backend: 3.0.2 - lucide-react: 0.509.0(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-i18next: 15.7.4(i18next@25.6.0(typescript@5.9.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3) - react-toastify: 11.0.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + lucide-react: 0.509.0(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-i18next: 15.7.4(i18next@25.6.0(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + react-toastify: 11.0.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tailwind-merge: 3.4.0 transitivePeerDependencies: - encoding - react-native - typescript + '@kevisual/router@0.0.39': + dependencies: + path-to-regexp: 8.3.0 + selfsigned: 5.2.0 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + '@kevisual/types@0.0.10': {} + '@kevisual/use-config@1.0.21(dotenv@17.2.3)': + dependencies: + '@kevisual/load': 0.0.6 + dotenv: 17.2.3 + '@mdx-js/mdx@3.1.1': dependencies: '@types/estree': 1.0.8 @@ -3807,20 +4134,112 @@ snapshots: transitivePeerDependencies: - supports-color + '@noble/hashes@1.4.0': {} + '@oslojs/encoding@1.1.0': {} + '@peculiar/asn1-cms@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + '@peculiar/asn1-x509-attr': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-csr@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-ecc@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pfx@2.6.0': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-pkcs8': 2.6.0 + '@peculiar/asn1-rsa': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pkcs8@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pkcs9@2.6.0': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-pfx': 2.6.0 + '@peculiar/asn1-pkcs8': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + '@peculiar/asn1-x509-attr': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-rsa@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-schema@2.6.0': + dependencies: + asn1js: 3.0.7 + pvtsutils: 1.3.6 + tslib: 2.8.1 + + '@peculiar/asn1-x509-attr@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-x509@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + asn1js: 3.0.7 + pvtsutils: 1.3.6 + tslib: 2.8.1 + + '@peculiar/x509@1.14.2': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-csr': 2.6.0 + '@peculiar/asn1-ecc': 2.6.0 + '@peculiar/asn1-pkcs9': 2.6.0 + '@peculiar/asn1-rsa': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + pvtsutils: 1.3.6 + reflect-metadata: 0.2.2 + tslib: 2.8.1 + tsyringe: 4.10.0 + '@polka/url@1.0.0-next.29': {} - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.1)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.3)': dependencies: - react: 19.2.1 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-slot@1.2.4(@types/react@19.2.7)(react@19.2.1)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.7)(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.1) - react: 19.2.1 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.7 @@ -3828,330 +4247,354 @@ snapshots: dependencies: '@babel/runtime': 7.28.4 - '@rc-component/cascader@1.8.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/cascader@1.9.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/select': 1.2.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/tree': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/select': 1.3.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/tree': 1.1.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/checkbox@1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/checkbox@1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/collapse@1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/collapse@1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/color-picker@3.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/color-picker@3.0.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@ant-design/fast-color': 3.0.0 - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/context@2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/context@2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/dialog@1.5.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/dialog@1.5.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/portal': 2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/portal': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/drawer@1.2.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/drawer@1.3.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/portal': 2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - classnames: 2.5.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - - '@rc-component/dropdown@1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@rc-component/trigger': 3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/portal': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/form@1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/dropdown@1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@rc-component/trigger': 3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + clsx: 2.1.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + '@rc-component/form@1.5.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@rc-component/async-validator': 5.0.4 - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/image@1.5.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/image@1.5.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/portal': 2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/portal': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/input-number@1.6.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/input-number@1.6.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@rc-component/mini-decimal': 1.1.0 - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/input@1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/input@1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/mentions@1.5.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/mentions@1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/input': 1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/menu': 1.1.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/textarea': 1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/trigger': 3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/input': 1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/menu': 1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/textarea': 1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/trigger': 3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/menu@1.1.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/menu@1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/trigger': 3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/overflow': 1.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/trigger': 3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - rc-overflow: 1.5.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) '@rc-component/mini-decimal@1.1.0': dependencies: '@babel/runtime': 7.28.4 - '@rc-component/motion@1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/motion@1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/mutate-observer@2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/mutate-observer@2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/notification@1.2.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/notification@1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/pagination@1.2.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/overflow@1.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@babel/runtime': 7.28.4 + '@rc-component/resize-observer': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/picker@1.7.1(dayjs@1.11.19)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/pagination@1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/resize-observer': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/trigger': 3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - rc-overflow: 1.5.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + '@rc-component/picker@1.9.0(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@rc-component/overflow': 1.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/resize-observer': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/trigger': 3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + clsx: 2.1.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: dayjs: 1.11.19 - '@rc-component/portal@2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/portal@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) classnames: 2.5.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/progress@1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/progress@1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/qrcode@1.1.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/qrcode@1.1.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/rate@1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/rate@1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/resize-observer@1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/resize-observer@1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/segmented@1.2.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/segmented@1.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/select@1.2.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/select@1.3.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/trigger': 3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/overflow': 1.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/trigger': 3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/virtual-list': 1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - rc-overflow: 1.5.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - rc-virtual-list: 3.19.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/slider@1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/slider@1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/steps@1.2.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/steps@1.2.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/switch@1.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/switch@1.0.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/table@1.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/table@1.9.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/context': 2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/resize-observer': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/context': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/resize-observer': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/virtual-list': 1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - rc-virtual-list: 3.19.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/tabs@1.6.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/tabs@1.7.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/dropdown': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/menu': 1.1.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/resize-observer': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/dropdown': 1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/menu': 1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/resize-observer': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/textarea@1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/textarea@1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/input': 1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/resize-observer': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/input': 1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/resize-observer': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/tooltip@1.3.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/tooltip@1.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/trigger': 3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/trigger': 3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/tour@2.2.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/tour@2.2.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/portal': 2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/trigger': 3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/portal': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/trigger': 3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/tree-select@1.3.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/tree-select@1.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/select': 1.2.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/tree': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/select': 1.3.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/tree': 1.1.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/tree@1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/tree@1.1.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/virtual-list': 1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - rc-virtual-list: 3.19.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/trigger@3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/trigger@3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/portal': 2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/resize-observer': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/portal': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/resize-observer': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/upload@1.1.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/upload@1.1.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@rc-component/util@1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@rc-component/util@1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: is-mobile: 5.0.0 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) react-is: 18.3.1 + '@rc-component/virtual-list@1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@rc-component/resize-observer': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + clsx: 2.1.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + '@react-dnd/asap@5.0.2': {} + + '@react-dnd/invariant@4.0.2': {} + + '@react-dnd/shallowequal@4.0.2': {} + '@rolldown/pluginutils@1.0.0-beta.27': {} '@rollup/pluginutils@5.3.0(rollup@4.52.4)': @@ -4237,30 +4680,61 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 + '@shikijs/core@3.20.0': + dependencies: + '@shikijs/types': 3.20.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + '@shikijs/engine-javascript@3.15.0': dependencies: '@shikijs/types': 3.15.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 + '@shikijs/engine-javascript@3.20.0': + dependencies: + '@shikijs/types': 3.20.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.4 + '@shikijs/engine-oniguruma@3.15.0': dependencies: '@shikijs/types': 3.15.0 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@3.20.0': + dependencies: + '@shikijs/types': 3.20.0 + '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/langs@3.15.0': dependencies: '@shikijs/types': 3.15.0 + '@shikijs/langs@3.20.0': + dependencies: + '@shikijs/types': 3.20.0 + '@shikijs/themes@3.15.0': dependencies: '@shikijs/types': 3.15.0 + '@shikijs/themes@3.20.0': + dependencies: + '@shikijs/types': 3.20.0 + '@shikijs/types@3.15.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + '@shikijs/types@3.20.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@10.0.2': {} '@sindresorhus/merge-streams@4.0.0': {} @@ -4269,7 +4743,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.1.17': + '@tailwindcss/node@4.1.18': dependencies: '@jridgewell/remapping': 2.3.5 enhanced-resolve: 5.18.3 @@ -4277,64 +4751,64 @@ snapshots: lightningcss: 1.30.2 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.1.17 + tailwindcss: 4.1.18 - '@tailwindcss/oxide-android-arm64@4.1.17': + '@tailwindcss/oxide-android-arm64@4.1.18': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.17': + '@tailwindcss/oxide-darwin-arm64@4.1.18': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.17': + '@tailwindcss/oxide-darwin-x64@4.1.18': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.17': + '@tailwindcss/oxide-freebsd-x64@4.1.18': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.17': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.17': + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.17': + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.17': + '@tailwindcss/oxide-linux-x64-musl@4.1.18': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.17': + '@tailwindcss/oxide-wasm32-wasi@4.1.18': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.17': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.17': + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': optional: true - '@tailwindcss/oxide@4.1.17': + '@tailwindcss/oxide@4.1.18': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.17 - '@tailwindcss/oxide-darwin-arm64': 4.1.17 - '@tailwindcss/oxide-darwin-x64': 4.1.17 - '@tailwindcss/oxide-freebsd-x64': 4.1.17 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.17 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.17 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.17 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.17 - '@tailwindcss/oxide-linux-x64-musl': 4.1.17 - '@tailwindcss/oxide-wasm32-wasi': 4.1.17 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.17 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.17 + '@tailwindcss/oxide-android-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-x64': 4.1.18 + '@tailwindcss/oxide-freebsd-x64': 4.1.18 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.18 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-x64-musl': 4.1.18 + '@tailwindcss/oxide-wasm32-wasi': 4.1.18 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 - '@tailwindcss/vite@4.1.17(vite@6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2))': + '@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: - '@tailwindcss/node': 4.1.17 - '@tailwindcss/oxide': 4.1.17 - tailwindcss: 4.1.17 + '@tailwindcss/node': 4.1.18 + '@tailwindcss/oxide': 4.1.18 + tailwindcss: 4.1.18 vite: 6.4.1(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2) '@types/babel__core@7.20.5': @@ -4418,13 +4892,13 @@ snapshots: '@uiw/copy-to-clipboard@1.0.17': {} - '@uiw/react-markdown-preview@5.1.5(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@uiw/react-markdown-preview@5.1.5(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 '@uiw/copy-to-clipboard': 1.0.17 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-markdown: 9.0.3(@types/react@19.2.7)(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-markdown: 9.0.3(@types/react@19.2.7)(react@19.2.3) rehype-attr: 3.0.3 rehype-autolink-headings: 7.1.0 rehype-ignore: 2.0.2 @@ -4439,12 +4913,12 @@ snapshots: - '@types/react' - supports-color - '@uiw/react-md-editor@4.0.11(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@uiw/react-md-editor@4.0.11(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 - '@uiw/react-markdown-preview': 5.1.5(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + '@uiw/react-markdown-preview': 5.1.5(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) rehype: 13.0.2 rehype-prism-plus: 2.0.1 transitivePeerDependencies: @@ -4606,56 +5080,56 @@ snapshots: ansi-styles@6.2.3: {} - antd@6.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1): + antd@6.1.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@ant-design/colors': 8.0.0 - '@ant-design/cssinjs': 2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@ant-design/cssinjs-utils': 2.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@ant-design/cssinjs': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@ant-design/cssinjs-utils': 2.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@ant-design/fast-color': 3.0.0 - '@ant-design/icons': 6.1.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@ant-design/react-slick': 1.1.2(react@19.2.1) + '@ant-design/icons': 6.1.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@ant-design/react-slick': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@babel/runtime': 7.28.4 - '@rc-component/cascader': 1.8.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/checkbox': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/collapse': 1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/color-picker': 3.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/dialog': 1.5.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/drawer': 1.2.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/dropdown': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/form': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/image': 1.5.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/input': 1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/input-number': 1.6.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/mentions': 1.5.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/menu': 1.1.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/motion': 1.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/mutate-observer': 2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/notification': 1.2.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/pagination': 1.2.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/picker': 1.7.1(dayjs@1.11.19)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/progress': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/qrcode': 1.1.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/rate': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/resize-observer': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/segmented': 1.2.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/select': 1.2.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/slider': 1.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/steps': 1.2.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/switch': 1.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/table': 1.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/tabs': 1.6.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/textarea': 1.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/tooltip': 1.3.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/tour': 2.2.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/tree': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/tree-select': 1.3.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/trigger': 3.7.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/upload': 1.1.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@rc-component/util': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@rc-component/cascader': 1.9.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/checkbox': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/collapse': 1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/color-picker': 3.0.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/dialog': 1.5.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/drawer': 1.3.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/dropdown': 1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/form': 1.5.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/image': 1.5.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/input': 1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/input-number': 1.6.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/mentions': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/menu': 1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/motion': 1.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/mutate-observer': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/notification': 1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/pagination': 1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/picker': 1.9.0(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/progress': 1.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/qrcode': 1.1.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/rate': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/resize-observer': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/segmented': 1.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/select': 1.3.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/slider': 1.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/steps': 1.2.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/switch': 1.0.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/table': 1.9.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/tabs': 1.7.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/textarea': 1.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/tooltip': 1.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/tour': 2.2.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/tree': 1.1.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/tree-select': 1.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/trigger': 3.7.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/upload': 1.1.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rc-component/util': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 dayjs: 1.11.19 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) scroll-into-view-if-needed: 3.1.0 throttle-debounce: 5.0.2 transitivePeerDependencies: @@ -4676,13 +5150,19 @@ snapshots: array-iterate@2.0.1: {} + asn1js@3.0.7: + dependencies: + pvtsutils: 1.3.6 + pvutils: 1.1.5 + tslib: 2.8.1 + astring@1.9.0: {} - astro@5.16.4(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3): + astro@5.16.6(@types/node@24.7.2)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.4)(typescript@5.9.3): dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/internal-helpers': 0.7.5 - '@astrojs/markdown-remark': 6.3.9 + '@astrojs/markdown-remark': 6.3.10 '@astrojs/telemetry': 3.3.0 '@capsizecss/unpack': 3.0.1 '@oslojs/encoding': 1.1.0 @@ -4823,6 +5303,8 @@ snapshots: dependencies: run-applescript: 7.1.0 + bytestreamjs@2.0.1: {} + camelcase@8.0.0: {} caniuse-lite@1.0.30001750: {} @@ -4944,6 +5426,8 @@ snapshots: defu@6.1.4: {} + depd@2.0.0: {} + dequal@2.0.3: {} destr@2.0.5: {} @@ -4968,6 +5452,12 @@ snapshots: dlv@1.1.3: {} + dnd-core@16.0.1: + dependencies: + '@react-dnd/asap': 5.0.2 + '@react-dnd/invariant': 4.0.2 + redux: 4.2.1 + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -4990,12 +5480,16 @@ snapshots: dset@3.1.4: {} + ee-first@1.1.1: {} + electron-to-chromium@1.5.235: {} emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} + encodeurl@2.0.0: {} + enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 @@ -5009,7 +5503,7 @@ snapshots: es-module-lexer@1.7.0: {} - es-toolkit@1.42.0: {} + es-toolkit@1.43.0: {} esast-util-from-estree@2.0.0: dependencies: @@ -5056,6 +5550,8 @@ snapshots: escalade@3.2.0: {} + escape-html@1.0.3: {} + escape-string-regexp@5.0.0: {} estree-util-attach-comments@3.0.0: @@ -5093,6 +5589,8 @@ snapshots: dependencies: '@types/estree': 1.0.8 + etag@1.8.1: {} + eventemitter3@5.0.1: {} execa@9.6.0: @@ -5141,6 +5639,8 @@ snapshots: unicode-properties: 1.4.1 unicode-trie: 2.0.0 + fresh@2.0.0: {} + fs-extra@11.3.2: dependencies: graceful-fs: 4.2.11 @@ -5349,6 +5849,10 @@ snapshots: highlight.js@11.11.1: {} + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + hookable@5.5.3: {} html-escaper@3.0.3: {} @@ -5363,6 +5867,14 @@ snapshots: http-cache-semantics@4.2.0: {} + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + human-signals@8.0.1: {} i18next-browser-languagedetector@8.2.0: @@ -5385,6 +5897,8 @@ snapshots: import-meta-resolve@4.2.0: {} + inherits@2.0.4: {} + inline-style-parser@0.2.4: {} iron-webcrypto@1.2.1: {} @@ -5507,13 +6021,13 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.509.0(react@19.2.1): + lucide-react@0.509.0(react@19.2.3): dependencies: - react: 19.2.1 + react: 19.2.3 - lucide-react@0.556.0(react@19.2.1): + lucide-react@0.561.0(react@19.2.3): dependencies: - react: 19.2.1 + react: 19.2.3 magic-string@0.30.21: dependencies: @@ -5972,6 +6486,12 @@ snapshots: transitivePeerDependencies: - supports-color + mime-db@1.54.0: {} + + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + mitt@3.0.1: {} mrmime@2.0.1: {} @@ -6017,6 +6537,10 @@ snapshots: ohash@2.0.11: {} + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + oniguruma-parser@0.12.1: {} oniguruma-to-es@4.3.3: @@ -6025,6 +6549,12 @@ snapshots: regex: 6.0.1 regex-recursion: 6.0.2 + oniguruma-to-es@4.3.4: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 + open@10.2.0: dependencies: default-browser: 5.4.0 @@ -6078,6 +6608,8 @@ snapshots: path-key@4.0.0: {} + path-to-regexp@8.3.0: {} + pathe@2.0.3: {} perfect-debounce@1.0.0: {} @@ -6090,6 +6622,15 @@ snapshots: picomatch@4.0.3: {} + pkijs@3.3.3: + dependencies: + '@noble/hashes': 1.4.0 + asn1js: 3.0.7 + bytestreamjs: 2.0.1 + pvtsutils: 1.3.6 + pvutils: 1.1.5 + tslib: 2.8.1 + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -6111,60 +6652,52 @@ snapshots: property-information@7.1.0: {} + pvtsutils@1.3.6: + dependencies: + tslib: 2.8.1 + + pvutils@1.1.5: {} + radix3@1.1.2: {} - rc-overflow@1.5.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1): - dependencies: - '@babel/runtime': 7.28.4 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - rc-util: 5.44.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + range-parser@1.2.1: {} - rc-resize-observer@1.4.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1): + react-dnd-html5-backend@16.0.1: dependencies: - '@babel/runtime': 7.28.4 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - resize-observer-polyfill: 1.5.1 + dnd-core: 16.0.1 - rc-util@5.44.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1): + react-dnd@16.0.1(@types/node@24.7.2)(@types/react@19.2.7)(react@19.2.3): dependencies: - '@babel/runtime': 7.28.4 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-is: 18.3.1 + '@react-dnd/invariant': 4.0.2 + '@react-dnd/shallowequal': 4.0.2 + dnd-core: 16.0.1 + fast-deep-equal: 3.1.3 + hoist-non-react-statics: 3.3.2 + react: 19.2.3 + optionalDependencies: + '@types/node': 24.7.2 + '@types/react': 19.2.7 - rc-virtual-list@3.19.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1): + react-dom@19.2.3(react@19.2.3): dependencies: - '@babel/runtime': 7.28.4 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - rc-util: 5.44.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - - react-dom@19.2.1(react@19.2.1): - dependencies: - react: 19.2.1 + react: 19.2.3 scheduler: 0.27.0 - react-i18next@15.7.4(i18next@25.6.0(typescript@5.9.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3): + react-i18next@15.7.4(i18next@25.6.0(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.4 html-parse-stringify: 3.0.1 i18next: 25.6.0(typescript@5.9.3) - react: 19.2.1 + react: 19.2.3 optionalDependencies: - react-dom: 19.2.1(react@19.2.1) + react-dom: 19.2.3(react@19.2.3) typescript: 5.9.3 + react-is@16.13.1: {} + react-is@18.3.1: {} - react-markdown@9.0.3(@types/react@19.2.7)(react@19.2.1): + react-markdown@9.0.3(@types/react@19.2.7)(react@19.2.3): dependencies: '@types/hast': 3.0.4 '@types/react': 19.2.7 @@ -6172,7 +6705,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.0 - react: 19.2.1 + react: 19.2.3 remark-parse: 11.0.0 remark-rehype: 11.1.2 unified: 11.0.5 @@ -6183,13 +6716,13 @@ snapshots: react-refresh@0.17.0: {} - react-toastify@11.0.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1): + react-toastify@11.0.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: clsx: 2.1.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - react@19.2.1: {} + react@19.2.3: {} readdirp@4.1.2: {} @@ -6222,6 +6755,12 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 + redux@4.2.1: + dependencies: + '@babel/runtime': 7.28.4 + + reflect-metadata@0.2.2: {} + refractor@4.9.0: dependencies: '@types/hast': 2.3.10 @@ -6376,8 +6915,6 @@ snapshots: mdast-util-to-markdown: 2.1.2 unified: 11.0.5 - resize-observer-polyfill@1.5.1: {} - restructure@3.0.2: {} retext-latin@4.0.0: @@ -6445,10 +6982,33 @@ snapshots: dependencies: compute-scroll-into-view: 3.1.1 + selfsigned@5.2.0: + dependencies: + '@peculiar/x509': 1.14.2 + pkijs: 3.3.3 + semver@6.3.1: {} semver@7.7.3: {} + send@1.2.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + setprototypeof@1.2.0: {} + sharp@0.34.4: dependencies: '@img/colour': 1.0.0 @@ -6496,6 +7056,17 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shiki@3.20.0: + dependencies: + '@shikijs/core': 3.20.0 + '@shikijs/engine-javascript': 3.20.0 + '@shikijs/engine-oniguruma': 3.20.0 + '@shikijs/langs': 3.20.0 + '@shikijs/themes': 3.20.0 + '@shikijs/types': 3.20.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + signal-exit@4.1.0: {} sirv@3.0.2: @@ -6523,6 +7094,8 @@ snapshots: speakingurl@14.0.1: {} + statuses@2.0.2: {} + stream-replace-string@2.0.0: {} string-convert@0.2.1: {} @@ -6580,7 +7153,7 @@ snapshots: tailwind-merge@3.4.0: {} - tailwindcss@4.1.17: {} + tailwindcss@4.1.18: {} tapable@2.3.0: {} @@ -6595,6 +7168,8 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + toidentifier@1.0.1: {} + totalist@3.0.1: {} tr46@0.0.3: {} @@ -6607,8 +7182,14 @@ snapshots: optionalDependencies: typescript: 5.9.3 + tslib@1.14.1: {} + tslib@2.8.1: {} + tsyringe@4.10.0: + dependencies: + tslib: 1.14.1 + tw-animate-css@1.4.0: {} type-fest@4.41.0: {} @@ -6874,9 +7455,9 @@ snapshots: zod@3.25.76: {} - zustand@5.0.9(@types/react@19.2.7)(react@19.2.1): + zustand@5.0.9(@types/react@19.2.7)(react@19.2.3): optionalDependencies: '@types/react': 19.2.7 - react: 19.2.1 + react: 19.2.3 zwitch@2.0.4: {} diff --git a/src/apps/hotkeys/components/icon.tsx b/src/apps/hotkeys/components/icon.tsx index c0771cf..0f95fc5 100644 --- a/src/apps/hotkeys/components/icon.tsx +++ b/src/apps/hotkeys/components/icon.tsx @@ -1,10 +1,11 @@ +import { wrapBasename } from "@/modules/basename"; import { useStore } from "../store"; export const RefreshButton = () => { const { isLoading, fetchItems } = useStore(); return ( + + + {/* Header Dropdown */} +
+
+

+ + HotKeys + + {/* 3D层次感背景文字 */} + + {/* 发光边缘效果 */} +

+
+ + + {/* */} +
+
+
{isLoading ? ( -
+
) : ( -
- {items.map((item) => ( +
+ {showItems.map((item) => ( ))}
)}
+ +
); }; \ No newline at end of file diff --git a/src/apps/hotkeys/modal.tsx b/src/apps/hotkeys/modal.tsx new file mode 100644 index 0000000..311fe29 --- /dev/null +++ b/src/apps/hotkeys/modal.tsx @@ -0,0 +1,78 @@ +import { useState } from 'react'; + +interface ModalProps { + isOpen: boolean; + onClose: () => void; + onConfirm: (value: string) => void; + title: string; + initialValue: string; + placeholder?: string; +} + +export const Modal = ({ + isOpen, + onClose, + onConfirm, + title, + initialValue, + placeholder = '请输入内容' +}: ModalProps) => { + const [inputValue, setInputValue] = useState(initialValue); + + const handleConfirm = () => { + if (inputValue.trim()) { + onConfirm(inputValue.trim()); + setInputValue(''); + onClose(); + } + }; + + const handleCancel = () => { + setInputValue(initialValue); + onClose(); + }; + + const handleKeyDown = (e: React.KeyboardEvent) => { + if (e.key === 'Enter') { + handleConfirm(); + } else if (e.key === 'Escape') { + handleCancel(); + } + }; + + if (!isOpen) return null; + + return ( +
+
+

+ {title} +

+ setInputValue(e.target.value)} + onKeyDown={handleKeyDown} + placeholder={placeholder} + className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-gray-500 dark:bg-gray-700 dark:text-gray-100" + autoFocus + /> +
+ + +
+
+
+ ); +}; \ No newline at end of file diff --git a/src/apps/hotkeys/settings.tsx b/src/apps/hotkeys/settings.tsx new file mode 100644 index 0000000..6f5900c --- /dev/null +++ b/src/apps/hotkeys/settings.tsx @@ -0,0 +1,410 @@ +import { useShallow } from "zustand/shallow"; +import { StoreState, useStore as useHotApiStore } from "./store.ts"; +import { useEffect, useState } from "react"; +import { toast, ToastContainer } from 'react-toastify'; +import { Modal } from "./modal.tsx"; +import { + DndContext, + closestCenter, + KeyboardSensor, + PointerSensor, + useSensor, + useSensors, + DragEndEvent, +} from '@dnd-kit/core'; +import { + arrayMove, + SortableContext, + sortableKeyboardCoordinates, + useSortable, + verticalListSortingStrategy, +} from '@dnd-kit/sortable'; +import { CSS } from '@dnd-kit/utilities'; +import clsx from "clsx"; +import { wrapBasename } from "@/modules/basename.ts"; + +const ListItem = ({ + position = 'left', + hasItems, + item, + onRemove, + onAdd, + index, + isDraggable = false, +}: { + position?: 'left' | 'right'; + hasItems?: any[]; + item: any; + onRemove?: (item: any) => void; + onAdd?: (item: any) => void; + index?: number; + isDraggable?: boolean; +}) => { + const { + attributes, + listeners, + setNodeRef, + transform, + transition, + isDragging, + } = useSortable({ id: item.id, disabled: !isDraggable }); + + const style = { + transform: CSS.Transform.toString(transform), + transition, + opacity: isDragging ? 0.5 : 1, + }; + const isIn = position === 'right' && hasItems && hasItems.some(i => i.id === item.id); + return ( +
+
+ {isDraggable && ( +
+ + + +
+ )} + {item.iconUrl && ( + {item.title} + )} +
+
+
+

{item.title}

+

{item.description}

+
+
+ {index !== undefined && 排序: {item.sort || 0}} + {onAdd && ( + + )} + {onRemove && ( + + )} +
+
+
+
+
+ ); +}; + +const SettingsContent = () => { + const [isModalOpen, setIsModalOpen] = useState(false); + + const store = useHotApiStore(useShallow((state: StoreState) => { + return { + items: state.items, + fetchItems: state.fetchItems, + customizeItems: state.customizeItems || [], + setCustomizeItems: state.setCustomizeItems, + getCustomizeItems: state.getCustomizeItems, + setNamespace: state.setNamespace, + getCacheData: state.getCacheData, + setCacheData: state.setCacheData, + exportCacheData: state.exportCacheData, + importCacheData: state.importCacheData, + namespace: state.namespace, + } + })); + + const sensors = useSensors( + useSensor(PointerSensor), + useSensor(KeyboardSensor, { + coordinateGetter: sortableKeyboardCoordinates, + }) + ); + + useEffect(() => { + store.fetchItems(); + // Load customize items from cache + if (store.getCustomizeItems) { + store.getCustomizeItems(); + } + }, []); + + // Sort customizeItems by sort field + const sortedCustomizeItems = [...store.customizeItems].sort((a: any, b: any) => (a.sort || 0) - (b.sort || 0)); + + // Handle adding an item to the customize area + const handleAddToCustomize = async (item: any) => { + if (!store.setCustomizeItems) return; + + // Check if item already exists + const exists = store.customizeItems.some((existingItem: any) => existingItem.id === item.id); + if (exists) { + toast.warning(`「${item.title}」已经添加过了`); + return; + } + + // Calculate the next sort value (find max sort + 1) + const currentMaxSort = store.customizeItems.length > 0 + ? Math.max(...store.customizeItems.map((item: any) => item.sort || 0)) + : -1; + const nextSort = currentMaxSort + 1; + + // Create a new item with proper sort, keeping the original ID + const newItem = { + ...item, + sort: nextSort, // Set sort to next available position + }; + + // Add the item to customizeItems + const updatedCustomizeItems = [...store.customizeItems, newItem]; + await store.setCustomizeItems(updatedCustomizeItems); + toast.success(`「${item.title}」已添加`); + }; + + const handleRemoveFromCustomize = async (itemToRemove: any) => { + if (!store.setCustomizeItems) return; + + const updatedCustomizeItems = store.customizeItems + .filter((item: any) => item.id !== itemToRemove.id) + .map((item: any, index: number) => ({ + ...item, + sort: index // Reorder remaining items + })); + + await store.setCustomizeItems(updatedCustomizeItems); + }; + + const handleDragEnd = async (event: DragEndEvent) => { + const { active, over } = event; + + if (!over || active.id === over.id) { + return; + } + + const oldIndex = sortedCustomizeItems.findIndex((item: any) => item.id === active.id); + const newIndex = sortedCustomizeItems.findIndex((item: any) => item.id === over.id); + + const newItems = arrayMove(sortedCustomizeItems, oldIndex, newIndex); + + // Update sort values + const updatedItems = newItems.map((item: any, index: number) => ({ + ...item, + sort: index, + })); + + await store.setCustomizeItems!(updatedItems); + }; + + const handleNamespaceChange = (newNamespace: string) => { + if (store.setNamespace) { + store.setNamespace(newNamespace); + toast.success(`命名空间已修改为: ${newNamespace}`); + } + }; + + const handleExportData = async () => { + if (!store.exportCacheData) return; + + try { + const exportData = await store.exportCacheData(); + if (!exportData) { + toast.error('没有数据可以导出'); + return; + } + + // 创建下载链接 + const blob = new Blob([exportData], { type: 'application/json' }); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = `hotapi-backup-${new Date().toISOString().split('T')[0]}.json`; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + + toast.success('数据导出成功'); + } catch (error) { + toast.error('导出失败:' + (error instanceof Error ? error.message : '未知错误')); + } + }; + + const handleImportData = () => { + const input = document.createElement('input'); + input.type = 'file'; + input.accept = '.json,application/json'; + + input.onchange = async (e) => { + const file = (e.target as HTMLInputElement).files?.[0]; + if (!file || !store.importCacheData) return; + + try { + const content = await file.text(); + const result = await store.importCacheData(content); + + if (result.success) { + toast.success(`${result.message},导入了 ${result.importedNamespaces?.length || 0} 个命名空间`); + } else { + toast.error(`导入失败:${result.message}`); + } + } catch (error) { + toast.error('导入失败:文件读取错误'); + } + }; + + input.click(); + }; + + return ( +
+ {/* Left side - Customize Items */} +
+
+
+ {store.namespace { + window.open(wrapBasename('/')) + }} /> + 当前命名空间: {store.namespace} + + + +
+ {sortedCustomizeItems.length > 0 ? ( + + item.id)} + strategy={verticalListSortingStrategy} + > + {sortedCustomizeItems.map((item: any, index: number) => ( + + ))} + + + ) : ( +
+

暂无自定义项目,点击右侧添加按钮添加

+
+ )} +
+
+ + {/* Right side - Available Items */} +
+
+

可用控制中枢

+

点击添加按钮将项目添加到左侧

+ {store.items.length > 0 ? ( + store.items.map((item: any) => ( + + )) + ) : ( +
+

暂无可用控制中枢

+
+ )} +
+
+ setIsModalOpen(false)} + onConfirm={handleNamespaceChange} + title="修改命名空间" + initialValue={store.namespace || 'default'} + placeholder="请输入命名空间(namespace)" + /> + +
+ ); +}; + +export const App = () => { + return ( +
+ +
+ ); +}; \ No newline at end of file diff --git a/src/apps/hotkeys/store.ts b/src/apps/hotkeys/store.ts index b90aa57..a4b446c 100644 --- a/src/apps/hotkeys/store.ts +++ b/src/apps/hotkeys/store.ts @@ -1,5 +1,14 @@ import { create } from 'zustand'; -import { query } from '../../modules/query' +import { queryClient, config } from '../../modules/query' +import { NocoApi } from '@kevisual/noco' +import { toast } from 'react-toastify' +import { MyCache } from '@kevisual/cache' +const cache = new MyCache('hot_api') +type CacheCustom = Array<{ + namespace: string; + items: CardItem[]; +}> +const cacheCustom = new MyCache('hot_api_customize'); // --- Types --- export interface CardItem { id: string; @@ -7,68 +16,221 @@ export interface CardItem { iconUrl?: string; description?: string; data?: any; + sort?: number; + namespace?: string; } export interface StoreState { items: CardItem[]; isLoading: boolean; - fetchItems: () => Promise; + machineId?: string; + fetchItems: (refresh?: boolean) => Promise; sendEvent: (item: CardItem) => Promise; + namespace?: string; + setNamespace?: (namespace: string) => void; + customizeItems?: CardItem[]; + setCustomizeItems?: (items: CardItem[]) => void; + getCustomizeItems: (namespace?: string) => Promise; + initCustomizeItems?: () => Promise; + getMachineId?: () => Promise; + setCacheData?: (cacheCustom: CacheCustom) => void; + getCacheData?: () => Promise; + exportCacheData?: () => Promise; + importCacheData?: (jsonData: string) => Promise<{ + success: boolean; + importedNamespaces?: string[]; + message: string; + }>; + nocoApi?: NocoApi; } // --- Store --- -export const useStore = create((set) => ({ +export const useStore = create((set, get) => ({ items: [], isLoading: false, - fetchItems: async () => { + getMachineId: async () => { + let machineId = get().machineId; + if (machineId) { + return machineId; + } + const res = await queryClient.get({ path: 'config', key: 'getId' }); + if (res.code === 200) { + machineId = res.data; + set({ machineId }); + return machineId!; + } + return ''; + }, + fetchItems: async (refresh?: boolean) => { set({ isLoading: true }); - // TODO: Replace with actual API call - // const response = await fetch('/api/hotkeys'); - // const data = await response.json(); + get().initCustomizeItems?.(); + get().getMachineId?.(); + const chacheData = await cache.getData().catch(() => null); + if (!refresh && chacheData && Array.isArray(chacheData) && chacheData.length > 0) { + set({ items: chacheData, isLoading: false }); + return; + } + const life = await config.getConfig('life.json').catch(() => null); + if (!life) return; - // Mock data for demonstration - const mockData: CardItem[] = Array.from({ length: 12 }).map((_, i) => ({ - id: `item-${i}`, - title: i % 4 === 0 ? `工具 ${i + 1}` : `Application Long Name ${i + 1}`, - iconUrl: i % 3 === 0 ? `https://api.dicebear.com/7.x/icons/svg?seed=${i}` : undefined, - description: `Description for item ${i + 1}` - })); - mockData.unshift({ - id: 'item-search', - title: 'win+d 显示桌面', - data: { type: "hotkeys", hotkeys: "win+d" }, - iconUrl: 'https://api.dicebear.com/7.x/icons/svg?seed=search', - description: '显示桌面' - }); - mockData.unshift({ - id: 'item-recor', - title: 'ctrl+alt+h 开始或停止语音转文字', - data: { type: "hotkeys", hotkeys: "ctrl+alt+h" }, - iconUrl: 'https://api.dicebear.com/7.x/icons/svg?seed=record', - description: '开始或停止语音转文字' + const baseId = life?.baseId || ''; + const nocoToken = life?.token || ''; + const baseURL = life?.baseURL || ''; + if (!baseId || !nocoToken || !baseURL) { + toast.error('未配置 nocodb 的 baseId 或 token,请前往设置页面配置'); + return + }; + const nocoApi = new NocoApi({ baseURL, token: nocoToken }); + const table = await nocoApi.getTableByName('控制中枢', baseId) + if (!table) { + toast.error('未找到 nocodb 中的 控制中枢 表,请检查配置'); + return; + } + nocoApi.record.table = table.id + set({ nocoApi }); + const res = await nocoApi.record.list({ + page: 1, + limit: 10000, + where: "(类型,neq,文档)", }) - mockData.unshift({ - id: 'item-newtab', - title: 'ctrl+t 打开浏览器新标签页', - data: { type: "hotkeys", hotkeys: "ctrl+t" }, - iconUrl: 'https://api.dicebear.com/7.x/icons/svg?seed=newtab', - description: '打开浏览器新标签页' - }) - // Simulate network delay - await new Promise(resolve => setTimeout(resolve, 800)); - - set({ items: mockData, isLoading: false }); + console.log('Fetched records:', res); + if (res.code === 200) { + let items: CardItem[] = res.data.list.map((record: any) => ({ + id: record.Id, + title: record['标题'] || '未命名', + iconUrl: record['图标'] || `https://api.dicebear.com/9.x/bottts/svg?seed=${record.Id}`, + description: record['总结'] || '', + data: record['数据'] || {}, + sort: 0, + })); + cache.setData(items, { expireTime: 30 * 24 * 60 * 60 * 1000 }); // Cache for 10 days + set({ items, isLoading: false }); + } else { + toast.error('获取控制中枢数据失败,请检查配置'); + set({ isLoading: false }); + return; + } }, sendEvent: async (item: CardItem) => { - // client/router?path=key-sender&keys=win+d console.log('Sending event for item:', item); - const res = await query.post({ - path: 'key-sender', - keys: item?.data?.hotkeys || 'win+d' - }); - console.log('Event sent for item:', item, 'Response:', res); - if (res.code !== 200) { - alert('Failed to send event'); + if (item.data?.type === 'hotkeys') { + const res = await queryClient.post({ + path: 'key-sender', + keys: item?.data?.hotkeys + }); + console.log('Event sent for item:', item, 'Response:', res); + if (res.code !== 200) { + toast.error('事件发送失败'); + } + return; } - } + + toast.info('暂不支持该类型的控制中枢操作'); + }, + namespace: localStorage.getItem('hotapi-namespace') || 'default', + customizeItems: [], + setCustomizeItems: (items: CardItem[]) => { + set({ customizeItems: items }); + // Save to cache asynchronously without blocking + const ns = useStore.getState().namespace || 'default'; + (async () => { + const chacheData = await cacheCustom.getData().catch(() => null); + let allData: CacheCustom = chacheData || []; + + // Update or add the namespace data + const existingIndex = allData.findIndex(c => c.namespace === ns); + if (existingIndex >= 0) { + allData[existingIndex].items = items; + } else { + allData.push({ namespace: ns, items }); + } + + await cacheCustom.setData(allData, { expireTime: 365 * 24 * 60 * 60 * 1000 }); // Cache for 1 year + })(); + }, + setNamespace: (namespace: string) => { + set({ namespace }) + get().getCustomizeItems(namespace); + localStorage.setItem('hotapi-namespace', namespace); + }, + getAllNamespaces: async () => { + const chacheData = await cacheCustom.getData().catch(() => null); + if (chacheData) { + return chacheData.map(c => c.namespace); + } + return ['default']; + }, + getCustomizeItems: async (namespace?: string) => { + const ns = namespace || useStore.getState().namespace || 'default'; + const chacheData = await cacheCustom.getData().catch(() => null); + if (chacheData) { + const nsData = chacheData.find(c => c.namespace === ns); + if (nsData) { + set({ customizeItems: nsData.items }); + return nsData.items; + } else { + set({ customizeItems: [] }); + return []; + } + } + return []; + }, + initCustomizeItems: async () => { + const ns = useStore.getState().namespace || 'default'; + await get().getCustomizeItems(ns); + }, + getCacheData: async () => { + const chacheData = await cacheCustom.getData().catch(() => null); + return chacheData; + }, + setCacheData: (cacheCustomData: CacheCustom) => { + cacheCustom.setData(cacheCustomData, { expireTime: 365 * 24 * 60 * 60 * 1000 }); // Cache for 1 year + }, + exportCacheData: async () => { + const cacheData = await get().getCacheData?.(); + if (cacheData) { + const exportData = { + version: '1.0.0', + exportTime: new Date().toISOString(), + data: cacheData + }; + return JSON.stringify(exportData, null, 2); + } + return null; + }, + importCacheData: async (jsonData: string) => { + try { + const importData = JSON.parse(jsonData); + + // 验证导入的数据格式 + if (!importData.data || !Array.isArray(importData.data)) { + throw new Error('导入数据格式不正确'); + } + + // 验证每个命名空间的数据格式 + for (const nsData of importData.data) { + if (!nsData.namespace || !Array.isArray(nsData.items)) { + throw new Error('命名空间数据格式不正确'); + } + } + + // 导入数据 + get().setCacheData?.(importData.data); + + // 刷新当前命名空间的数据 + const currentNs = get().namespace || 'default'; + get().getCustomizeItems?.(currentNs); + + return { + success: true, + importedNamespaces: importData.data.map((ns: any) => ns.namespace), + message: '数据导入成功' + }; + } catch (error) { + return { + success: false, + message: error instanceof Error ? error.message : '导入失败' + }; + } + }, })); diff --git a/src/components/html.astro b/src/components/html.astro index 5500568..c6005ee 100644 --- a/src/components/html.astro +++ b/src/components/html.astro @@ -39,6 +39,8 @@ const { title = 'Light Code', description = 'A lightweight code editor', lang = margin: 0; padding: 0; min-height: 100vh; + height: 100%; + overflow: hidden; } * { diff --git a/src/modules/query.ts b/src/modules/query.ts index 4b7d90a..843ff5c 100644 --- a/src/modules/query.ts +++ b/src/modules/query.ts @@ -1,4 +1,5 @@ -import { QueryClient } from '@kevisual/query' +import { QueryClient, Query } from '@kevisual/query' +import { NocoApi } from '@kevisual/noco' const getUrl = () => { const host = window.location.host @@ -10,6 +11,53 @@ const getUrl = () => { return '/client/router' } +export const queryClient = new QueryClient({ + url: '/client/router', +}); + export const query = new QueryClient({ - url: 'http://localhost:51015/client/router', -}); \ No newline at end of file +}); + +export class Config { + query: Query; + token = '' + storage: Storage | null = null; + constructor(opts?: { query?: Query, storage?: Storage, token?: string }) { + this.query = opts?.query || new QueryClient(); + this.storage = opts?.storage || null; + this.token = opts?.token || ''; + if (!this.token && this.storage) { + const savedToken = this.storage.getItem('token'); + if (savedToken) { + this.token = savedToken; + } + } + } + async getConfig(key: string) { + const _config = this.storage?.getItem?.(`config_${key}`) + if (_config) { + return Promise.resolve(JSON.parse(_config)) + } + const res = await this.query.post({ + path: 'config', + key: 'get', + token: this.token, + data: { key } + }) + if (res.code !== 200) { + throw new Error(res.message || '获取配置失败') + } + const data = res.data || {} + const config = data.data || {} + this.storage?.setItem?.(`config_${key}`, JSON.stringify(config)) + return config; + } +} + + +export const config = new Config({ + query, + storage: window.sessionStorage, + token: localStorage.getItem('token') || '' +}); + diff --git a/src/pages/settings.astro b/src/pages/settings.astro new file mode 100644 index 0000000..3ca5921 --- /dev/null +++ b/src/pages/settings.astro @@ -0,0 +1,10 @@ +--- +import Html from '@/components/html.astro'; +import { App } from '../apps/hotkeys/settings.tsx'; +--- + + +
+ +
+