diff --git a/README.md b/README.md
index 324afb6..5974f53 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# @koko/ui
-工作台共享 UI 包: shadcn/ui(new-york-v4)组件 + 总体样式 + 基准主题(tweakcn "Light Green")。
+工作台共享 UI 包: shadcn/ui 官方 base-nova(Base UI)组件 50 个 + DatePicker/DateRangePicker + 总体样式 + 基准主题(tweakcn "Light Green")。上游版本见 src/UPSTREAM.json。升级: `npm run sync` → diff → tsc → 发版。
发布在自建 Gitea npm registry,**匿名可读**——包内不得有任何敏感信息。
## 边界(硬规则)
diff --git a/package-lock.json b/package-lock.json
index 629b688..66b077e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,22 +1,26 @@
{
"name": "@koko/ui",
- "version": "0.1.0",
+ "version": "0.2.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@koko/ui",
- "version": "0.1.0",
+ "version": "0.2.0",
"license": "UNLICENSED",
"dependencies": {
+ "@base-ui/react": "^1.9.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
- "date-fns": "^4.1.0",
- "lucide-react": "^0.540.0",
+ "cmdk": "^1.1.1",
+ "date-fns": "^4.4.0",
+ "embla-carousel-react": "^8.6.0",
+ "input-otp": "^1.5.0",
+ "lucide-react": "^1.61.0",
"next-themes": "^0.4.6",
- "radix-ui": "^1.4.3",
- "react-day-picker": "^9.11.0",
- "sonner": "^2.0.7",
+ "react-day-picker": "^10.0.2",
+ "recharts": "^3.8.0",
+ "sonner": "^2.0.8",
"tailwind-merge": "^3.3.1",
"tw-animate-css": "^1.4.0"
},
@@ -34,6 +38,72 @@
"tailwindcss": ">=4"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "8.0.8",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-8.0.8.tgz",
+ "integrity": "sha512-dEu8nGlRqjsJsvviUUoSMfcRHpwomCiRlXsc2mPfJ79+ffTpDm+JtfUtTMzUrqCApHQnCsVPD3gT1ZT8RgBRCQ==",
+ "license": "MIT"
+ },
+ "node_modules/@base-ui/react": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmmirror.com/@base-ui/react/-/react-1.9.0.tgz",
+ "integrity": "sha512-S8CSYosASBKtpL8SWUfS78rFElfLijiCgA7oHOK22jCJ95FULsYyKwBNFOgudt0RA+/7yNc7F81bOvQnRgbBiQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.29.7 || ^8.0.0",
+ "@base-ui/utils": "0.5.0",
+ "@floating-ui/react-dom": "^2.1.9",
+ "@floating-ui/utils": "^0.2.12",
+ "use-sync-external-store": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@date-fns/tz": "^1.2.0",
+ "@types/react": "^17 || ^18 || ^19",
+ "date-fns": "^4.0.0",
+ "react": "^17 || ^18 || ^19",
+ "react-dom": "^17 || ^18 || ^19"
+ },
+ "peerDependenciesMeta": {
+ "@date-fns/tz": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ },
+ "date-fns": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@base-ui/utils": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/@base-ui/utils/-/utils-0.5.0.tgz",
+ "integrity": "sha512-dYGGcEttjkYiMoa5nHm8vLaJ2UcuTWxo3BFAwOYXeRg/q7UVVvA6cacEIXEs3FgBfK1CGtW1ptElqs7wsx+t9A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.29.7 || ^8.0.0",
+ "@floating-ui/utils": "^0.2.12",
+ "reselect": "^5.3.0",
+ "use-sync-external-store": "^1.7.0"
+ },
+ "peerDependencies": {
+ "@types/react": "^17 || ^18 || ^19",
+ "react": "^17 || ^18 || ^19",
+ "react-dom": "^17 || ^18 || ^19"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@date-fns/tz": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/@date-fns/tz/-/tz-1.5.0.tgz",
@@ -78,259 +148,12 @@
"integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==",
"license": "MIT"
},
- "node_modules/@radix-ui/number": {
- "version": "1.1.3",
- "resolved": "https://registry.npmmirror.com/@radix-ui/number/-/number-1.1.3.tgz",
- "integrity": "sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA==",
- "license": "MIT"
- },
"node_modules/@radix-ui/primitive": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/@radix-ui/primitive/-/primitive-1.2.0.tgz",
"integrity": "sha512-KABY+VMIRPJL+Vyzv/335FEhXXD/xDv8BMb1kl48/aXJZMH0LtHCTx5ga5RnxaEP3nZHtmTLf1P9vanmFX46bw==",
"license": "MIT"
},
- "node_modules/@radix-ui/react-accessible-icon": {
- "version": "1.2.0",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.2.0.tgz",
- "integrity": "sha512-BB4+HHkFl3HipEAhm/mLhrpXV+2kRX7MvY4AaImUcQVeWQt5KhV1JEByNs8NGfJOcr95RcQGijt9+OrCo68xGA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-visually-hidden": "1.2.13"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-accordion": {
- "version": "1.3.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-accordion/-/react-accordion-1.3.1.tgz",
- "integrity": "sha512-lCZ6sbGS/7WO0j84yx4srIgOf0MRJ/sZ13RonADXxvKBym8xrxNCq5f6DibGcr38sIlwPk8/52uYdXeOPsbEDw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collapsible": "1.2.1",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-alert-dialog": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.2.1.tgz",
- "integrity": "sha512-MWC4N7RY+qsbNrFNo7yQ9ZbdoZEW+B5DtpWxJfUnVCqcQxxqqg3qis3RMPTDbCNaTIdHJSn5XDkl9ZdVWXknLg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-dialog": "1.3.1",
- "@radix-ui/react-primitive": "2.2.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-arrow": {
- "version": "1.1.17",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-arrow/-/react-arrow-1.1.17.tgz",
- "integrity": "sha512-67jjcVvxjXCCStnTW3Z+M7jmaFMuMR7M2JgpDzH4w7JSRrikmzhjfYgP/09ECb8n7whnsgh1ifJ+Ie96qEj+pQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.2.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-aspect-ratio": {
- "version": "1.2.0",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.2.0.tgz",
- "integrity": "sha512-gHEU+Lx8DlT/FYIjZQvvBJrFSwUngXTjh7FeL9QvJaNALDLez6pgDj2axCUihBjtPBy82LN0gNb25+sTcSXNmA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.2.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-avatar": {
- "version": "1.3.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-avatar/-/react-avatar-1.3.1.tgz",
- "integrity": "sha512-ssZOkfQNkFpYVmCPQlr978xSaU7moSrGXdwg4j2Xs2WlGl/1KsSZtfpK+WnLnx0Rwll1BAh6oUrAy/uR31SBvQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "@radix-ui/react-use-is-hydrated": "0.1.3",
- "@radix-ui/react-use-layout-effect": "1.1.4"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-checkbox": {
- "version": "1.4.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-checkbox/-/react-checkbox-1.4.1.tgz",
- "integrity": "sha512-KWtwhh+98ML3seZ9vO9yRY2OwaQG90dCiDAxjpSNY2AaZ3Hik3B0dsk6m0ILywo/no3A9/SozadyPMNweVT8yw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-size": "1.1.5"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-collapsible": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-collapsible/-/react-collapsible-1.2.1.tgz",
- "integrity": "sha512-fSzLb/qy1wuZSxQBcxpW0hNXYHDMWiIXDGyJGdA4+FSLknOWZsNRrTCUavxb4PI8b8lvHo/CysO6NVi5zLpo5g==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-layout-effect": "1.1.4"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-collection": {
- "version": "1.2.0",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-collection/-/react-collection-1.2.0.tgz",
- "integrity": "sha512-+yiQzqcc7Sy7/5s0jrMCjpPRFB3538VNrXPWdTLZhE/SCfgEws4aI6lHWN/vvcnyhHndROWBzqmqB4QBrITZ9Q==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-slot": "1.5.0",
- "@radix-ui/react-use-layout-effect": "1.1.4"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-compose-refs": {
"version": "1.1.5",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz",
@@ -361,33 +184,6 @@
}
}
},
- "node_modules/@radix-ui/react-context-menu": {
- "version": "2.4.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-context-menu/-/react-context-menu-2.4.1.tgz",
- "integrity": "sha512-Pddn3Z8lio3/ChxyXaEP3jHTTo1LTHCWwF8+mG1chQlWijP+ttVHBKwezrQTiV6Mj670ojvumqvuGh+mdv33iQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-menu": "2.2.1",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-dialog": {
"version": "1.3.1",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-dialog/-/react-dialog-1.3.1.tgz",
@@ -425,21 +221,6 @@
}
}
},
- "node_modules/@radix-ui/react-direction": {
- "version": "1.2.0",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-direction/-/react-direction-1.2.0.tgz",
- "integrity": "sha512-FtRA52a/r+LKStFT+neLUm+8vSe7wbzkbQGGeU8ixFiwC8NU14Evoq9ATECqL3eGbcUzJR4fyfA4KkK/q6dfqg==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-dismissable-layer": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.2.1.tgz",
@@ -467,35 +248,6 @@
}
}
},
- "node_modules/@radix-ui/react-dropdown-menu": {
- "version": "2.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.2.1.tgz",
- "integrity": "sha512-XsHcmYG2AcqnvTqrOXXWcMrhquEIlqucizuDH1MV/qMRW+DndpBCMvNeTRXOxqmG1H5j89M/+I0/34Zdd+zDcQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-menu": "2.2.1",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-focus-guards": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.2.0.tgz",
@@ -536,66 +288,6 @@
}
}
},
- "node_modules/@radix-ui/react-form": {
- "version": "0.3.0",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-form/-/react-form-0.3.0.tgz",
- "integrity": "sha512-KnmrCM27m7Jo1R8S6cFDPrEeq20Jfn5dqde0SZrJr2lVXlj6/QZSUCyFoYh1d8ti0uUrMNK5Lx6dUDuINT+f4Q==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-label": "2.1.17",
- "@radix-ui/react-primitive": "2.2.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-hover-card": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-hover-card/-/react-hover-card-1.2.1.tgz",
- "integrity": "sha512-4QooHxgmpCKRjj1Pft+hETKidYcrbPKcVwMGtk2Oa5DcWY2IH1fHuQt9LG6q5hUQBBV2MhQxSvtx6B/C1xfiTw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-dismissable-layer": "1.2.1",
- "@radix-ui/react-focus-scope": "1.3.1",
- "@radix-ui/react-popper": "1.4.0",
- "@radix-ui/react-portal": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-id": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-id/-/react-id-1.1.4.tgz",
@@ -614,272 +306,6 @@
}
}
},
- "node_modules/@radix-ui/react-label": {
- "version": "2.1.17",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-label/-/react-label-2.1.17.tgz",
- "integrity": "sha512-xmj7MN/drx1oUAXkfiFIvyDmGNUIN/omGobvA5oAoNqu9zO2MkISYGZOkBcqSzs/UZXXwV+/3ACRE7q7mGcmkA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.2.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-menu": {
- "version": "2.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-menu/-/react-menu-2.2.1.tgz",
- "integrity": "sha512-G34BsU90SBj5foYpz8pQqq/Q0Dlfyyl6KitWEfRwXC0QvfwhWNAwS49DWP2+rRJ0iwv20Z2Qx7Sk+T03bGo5JA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-dismissable-layer": "1.2.1",
- "@radix-ui/react-focus-guards": "1.2.0",
- "@radix-ui/react-focus-scope": "1.3.1",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-popper": "1.4.0",
- "@radix-ui/react-portal": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-roving-focus": "1.2.1",
- "@radix-ui/react-slot": "1.5.0",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "aria-hidden": "^1.2.4",
- "react-remove-scroll": "^2.7.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-menubar": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-menubar/-/react-menubar-1.2.1.tgz",
- "integrity": "sha512-bRTYtS9JITV2dUYqYZb7+N5SooQBkZrNRejfmyrSKe3Y57aXhKgx//kBUP0kY7pEpsWR/U1AHsAJRzjwCrK3PA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-menu": "2.2.1",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-roving-focus": "1.2.1",
- "@radix-ui/react-use-controllable-state": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-navigation-menu": {
- "version": "1.4.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.4.1.tgz",
- "integrity": "sha512-XPPZjkeyCSMNNvt0FyDv/PUauG7Ow4GwHQ/XZSwW36F/TS7rR4HFTsXH8ewLnXTOLn3x96/pmTPNQIVoTX/86g==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-dismissable-layer": "1.2.1",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-slot": "1.5.0",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-layout-effect": "1.1.4",
- "@radix-ui/react-use-previous": "1.1.4",
- "@radix-ui/react-visually-hidden": "1.2.13"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-one-time-password-field": {
- "version": "0.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.2.1.tgz",
- "integrity": "sha512-KtHdcgnaAK6rohQ/MMJoGYcbgSRJsIuGBdHrFeTB1/9SaKlDs14oSOniW6BL6M43HqvgCO3u4WuVdFLkuc6sqw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.3",
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-roving-focus": "1.2.1",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-effect-event": "0.0.5",
- "@radix-ui/react-use-is-hydrated": "0.1.3",
- "@radix-ui/react-use-layout-effect": "1.1.4"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-password-toggle-field": {
- "version": "0.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.2.1.tgz",
- "integrity": "sha512-vu4+ZoJAaFjdI7l1lDSZRs+4dEv83Jmu7lyzajPrAeQzX74y84n0rUNWbWSgN9XB5NE8IY86Z02kGH6oRrzR+w==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-effect-event": "0.0.5",
- "@radix-ui/react-use-is-hydrated": "0.1.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-popover": {
- "version": "1.3.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-popover/-/react-popover-1.3.1.tgz",
- "integrity": "sha512-ZNxvXRx5W2Wos4fXCXb5lpdqN0Z5chf+mStOUOTr4ik7d+62MRvoe9rzCA/eGNg36lxXqSrKEKmwuZEcUrIstw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-dismissable-layer": "1.2.1",
- "@radix-ui/react-focus-guards": "1.2.0",
- "@radix-ui/react-focus-scope": "1.3.1",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-popper": "1.4.0",
- "@radix-ui/react-portal": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-slot": "1.5.0",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-layout-effect": "1.1.4",
- "aria-hidden": "^1.2.4",
- "react-remove-scroll": "^2.7.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-popper": {
- "version": "1.4.0",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-popper/-/react-popper-1.4.0.tgz",
- "integrity": "sha512-yCWRvLeGv9Pz3+efwHqGPp70mZ56r3kfIgQVF56Oj2aAa4uP/Tb+IE59wNcc+758rctqbCKx4LbK8II/r7Bn0Q==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/react-dom": "^2.0.0",
- "@radix-ui/react-arrow": "1.1.17",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "@radix-ui/react-use-layout-effect": "1.1.4",
- "@radix-ui/react-use-rect": "1.1.4",
- "@radix-ui/react-use-size": "1.1.5",
- "@radix-ui/rect": "1.1.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-portal": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-portal/-/react-portal-1.2.0.tgz",
@@ -950,224 +376,6 @@
}
}
},
- "node_modules/@radix-ui/react-progress": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-progress/-/react-progress-1.2.1.tgz",
- "integrity": "sha512-yQBiM6J3YM8Ums1orkEFpbznK47geKxa0igikzcaS1xHgdba3DdAQBsGbCTt5BVfR8zhEvgxQ0poGcINaD3lvw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-primitive": "2.2.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-radio-group": {
- "version": "1.5.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-radio-group/-/react-radio-group-1.5.1.tgz",
- "integrity": "sha512-QbyVT1ddnjqB9H+CUYKkNWdU9fIK3QHCYtjf7mS6ekSqiuXkWtWn5UZW9mhA8qtl3vrVyIsmR9gePstAtKrqkw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-roving-focus": "1.2.1",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-size": "1.1.5"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-roving-focus": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.2.1.tgz",
- "integrity": "sha512-UwraORzVUeEPMclhO1p0vz0qI+TbdDLO9i+FiOqhJyHKwdpCRCck9yVEscUnAMIzCiuNoQa8D4A9bIpOPXGt6Q==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-is-hydrated": "0.1.3",
- "@radix-ui/react-use-layout-effect": "1.1.4"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-scroll-area": {
- "version": "1.4.0",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.4.0.tgz",
- "integrity": "sha512-CFrLqHNejWq5FhKAcj9V/WPGRsol76HBQto81NdOBVFEOqIEkJkKIJt0Z824A/9hHLCtoiR/Kw3euRgzXP2pxg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.3",
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-slot": "1.5.0",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "@radix-ui/react-use-layout-effect": "1.1.4"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-select": {
- "version": "2.4.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-select/-/react-select-2.4.1.tgz",
- "integrity": "sha512-888ZwW0Md6GyptuqYABRX9nLKgoYfcooCyBBvVaX5Jp3e+8Jp2i4Zo/Uy50Hm+Ysn2JfloQXstW4U36w8teVtg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.3",
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-dismissable-layer": "1.2.1",
- "@radix-ui/react-focus-guards": "1.2.0",
- "@radix-ui/react-focus-scope": "1.3.1",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-popper": "1.4.0",
- "@radix-ui/react-portal": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-slot": "1.5.0",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-layout-effect": "1.1.4",
- "@radix-ui/react-visually-hidden": "1.2.13",
- "aria-hidden": "^1.2.4",
- "react-remove-scroll": "^2.7.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-separator": {
- "version": "1.2.0",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-separator/-/react-separator-1.2.0.tgz",
- "integrity": "sha512-1jUAap0wZEqVP05Ou7kJgRxe/W+Qftng+rUNWGa0qkKbv9r5pWTG3E7a3ELKo2eJoHKMECnzuYrZpSyO1YgcYQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.2.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-slider": {
- "version": "1.6.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-slider/-/react-slider-1.6.1.tgz",
- "integrity": "sha512-IRNRR90moPqxfwCJ0XbMJIxo70W0/1ZExT/sNCxEHMaPx0SF9HoQrcPEC75+H28cFKa0b+KH63anfLYJmwKacw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.3",
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-layout-effect": "1.1.4",
- "@radix-ui/react-use-size": "1.1.5"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-slot": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.5.0.tgz",
@@ -1186,217 +394,6 @@
}
}
},
- "node_modules/@radix-ui/react-switch": {
- "version": "1.4.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-switch/-/react-switch-1.4.1.tgz",
- "integrity": "sha512-NpBGwc40rY02ZmSvuyeKk0Bvc8ZsNeTMi4qHvJ+ZH4EiYCv0zIXEgdCW4bVdzgIUeP9xxbLJSxKOUfqITYNmkA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-size": "1.1.5"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-tabs": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-tabs/-/react-tabs-1.2.1.tgz",
- "integrity": "sha512-hRoJlode+hg5ZNlR+3tkfkUliIybdTpD5lkAvHQ9yaXseGf7XVO9Ib2GPEIOuaJJbo7YWYbNpDDRfo8Dhf6/xA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-roving-focus": "1.2.1",
- "@radix-ui/react-use-controllable-state": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toast": {
- "version": "1.3.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-toast/-/react-toast-1.3.1.tgz",
- "integrity": "sha512-iQvL0J7XK4HtJNGkkWMyYrboNseI7vtotFeUkIno8YNxVA9oM7B6//fh0Mc6TSKI96+zioLWi98lQLso88yJmQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-dismissable-layer": "1.2.1",
- "@radix-ui/react-portal": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-layout-effect": "1.1.4",
- "@radix-ui/react-visually-hidden": "1.2.13"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toggle": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-toggle/-/react-toggle-1.2.1.tgz",
- "integrity": "sha512-+3MUq+WyiBplXYqQ0EIYlq8R4sLQ0T5NbOK7DMdDLCKO93pe2uE0DUJTWWfTBprpJJXxfoF3eMW0xpakVZrYsg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-use-controllable-state": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toggle-group": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-toggle-group/-/react-toggle-group-1.2.1.tgz",
- "integrity": "sha512-O8Ldx5ao4p4KoW+DO8/PmkOe5mdKNi3F2SseqjVj88wvDGDHe60cUmO0Zm/uHsKrvNgQGV8Efpuh95Tht/h4vw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-roving-focus": "1.2.1",
- "@radix-ui/react-toggle": "1.2.1",
- "@radix-ui/react-use-controllable-state": "1.3.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toolbar": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-toolbar/-/react-toolbar-1.2.1.tgz",
- "integrity": "sha512-Cm8m7JTEeUdbfA6T9xgyu8HfOpyvSx8pB/wj0DlEuWaJe9FilIs4Az9wci/lU9RbthV/UkltszMw5WnnD+m/Ug==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-roving-focus": "1.2.1",
- "@radix-ui/react-separator": "1.2.0",
- "@radix-ui/react-toggle-group": "1.2.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-tooltip": {
- "version": "1.4.1",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-tooltip/-/react-tooltip-1.4.1.tgz",
- "integrity": "sha512-NxLFGSFtZ78zVfcoOhTwR1xwqo5qx1Jh8Pw6FMZ9McCaqfRzz7/gIRahs2Oy5XlPgQ+8QkUcKbN5B0U44J/kCg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-dismissable-layer": "1.2.1",
- "@radix-ui/react-focus-scope": "1.3.1",
- "@radix-ui/react-id": "1.1.4",
- "@radix-ui/react-popper": "1.4.0",
- "@radix-ui/react-portal": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-slot": "1.5.0",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-layout-effect": "1.1.4",
- "@radix-ui/react-visually-hidden": "1.2.13"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-use-callback-ref": {
"version": "1.1.5",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.5.tgz",
@@ -1453,39 +450,6 @@
}
}
},
- "node_modules/@radix-ui/react-use-escape-keydown": {
- "version": "1.1.6",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.6.tgz",
- "integrity": "sha512-9cRullnQRv+kqnRmFlmh0WC3kAPuGmHiQ9VwsXdrYk//sBhgCKEttcpPEPgIQbyx6TGUmooVEHYTyohwz/lSJg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-callback-ref": "1.1.5"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-is-hydrated": {
- "version": "0.1.3",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.3.tgz",
- "integrity": "sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
"node_modules/@radix-ui/react-use-layout-effect": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz",
@@ -1501,95 +465,107 @@
}
}
},
- "node_modules/@radix-ui/react-use-previous": {
- "version": "1.1.4",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.4.tgz",
- "integrity": "sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-rect": {
- "version": "1.1.4",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.4.tgz",
- "integrity": "sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==",
+ "node_modules/@reduxjs/toolkit": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmmirror.com/@reduxjs/toolkit/-/toolkit-2.13.0.tgz",
+ "integrity": "sha512-f6jwVRfwW30+tnllz4YcsHHpPYYOE7abcHkyUCovD+P7DyhdAI5prz2Fh/8TLhakjpN+7aIEion1s5L/tvlYlA==",
"license": "MIT",
"dependencies": {
- "@radix-ui/rect": "1.1.3"
+ "@standard-schema/spec": "^1.0.0",
+ "@standard-schema/utils": "^0.3.0",
+ "immer": "^11.0.0",
+ "redux": "^5.0.1",
+ "redux-thunk": "^3.1.0",
+ "reselect": "^5.1.0"
},
"peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
+ "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
},
"peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-size": {
- "version": "1.1.5",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-size/-/react-use-size-1.1.5.tgz",
- "integrity": "sha512-V1McDQkMGzgivwqdu7u96APs7oi0Jvj9LTzgq3WWrDZqxWdAqU9yZnZQqk5OizGFR8badUQwZsrlao7MOlWYOA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.4"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-visually-hidden": {
- "version": "1.2.13",
- "resolved": "https://registry.npmmirror.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.13.tgz",
- "integrity": "sha512-feijiN1oPk4rck4u9Dm9tsU4mT6Wp9oeEEhaz1WUEs1VuqLf8xzsFG+Qk+uWq6TnMH9O+WRECRg0NftyP9E4Fw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.2.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
+ "react": {
"optional": true
},
- "@types/react-dom": {
+ "react-redux": {
"optional": true
}
}
},
- "node_modules/@radix-ui/rect": {
- "version": "1.1.3",
- "resolved": "https://registry.npmmirror.com/@radix-ui/rect/-/rect-1.1.3.tgz",
- "integrity": "sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==",
+ "node_modules/@standard-schema/spec": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@standard-schema/spec/-/spec-1.1.0.tgz",
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
"license": "MIT"
},
- "node_modules/@tabby_ai/hijri-converter": {
- "version": "1.0.5",
- "resolved": "https://registry.npmmirror.com/@tabby_ai/hijri-converter/-/hijri-converter-1.0.5.tgz",
- "integrity": "sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ==",
+ "node_modules/@standard-schema/utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/@standard-schema/utils/-/utils-0.3.0.tgz",
+ "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-array": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.2.2.tgz",
+ "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/@types/d3-ease/-/d3-ease-3.0.2.tgz",
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
"license": "MIT",
- "engines": {
- "node": ">=16.0.0"
+ "dependencies": {
+ "@types/d3-color": "*"
}
},
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/@types/d3-path/-/d3-path-3.1.1.tgz",
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmmirror.com/@types/d3-scale/-/d3-scale-4.0.9.tgz",
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/@types/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
+ "license": "MIT"
+ },
"node_modules/@types/react": {
"version": "19.3.0",
"resolved": "https://registry.npmmirror.com/@types/react/-/react-19.3.0.tgz",
@@ -1610,6 +586,12 @@
"@types/react": "^19.3.0"
}
},
+ "node_modules/@types/use-sync-external-store": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmmirror.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
+ "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
+ "license": "MIT"
+ },
"node_modules/aria-hidden": {
"version": "1.2.6",
"resolved": "https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.6.tgz",
@@ -1643,6 +625,22 @@
"node": ">=6"
}
},
+ "node_modules/cmdk": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/cmdk/-/cmdk-1.1.1.tgz",
+ "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "^1.1.1",
+ "@radix-ui/react-dialog": "^1.1.6",
+ "@radix-ui/react-id": "^1.1.0",
+ "@radix-ui/react-primitive": "^2.0.2"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^18 || ^19 || ^19.0.0-rc"
+ }
+ },
"node_modules/csstype": {
"version": "3.2.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz",
@@ -1650,6 +648,127 @@
"devOptional": true,
"license": "MIT"
},
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.2.tgz",
+ "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/date-fns": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-4.4.0.tgz",
@@ -1660,10 +779,10 @@
"url": "https://github.com/sponsors/kossnocorp"
}
},
- "node_modules/date-fns-jalali": {
- "version": "4.1.0-0",
- "resolved": "https://registry.npmmirror.com/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz",
- "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==",
+ "node_modules/decimal.js-light": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
+ "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
"license": "MIT"
},
"node_modules/detect-node-es": {
@@ -1672,6 +791,52 @@
"integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
"license": "MIT"
},
+ "node_modules/embla-carousel": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmmirror.com/embla-carousel/-/embla-carousel-8.6.0.tgz",
+ "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==",
+ "license": "MIT"
+ },
+ "node_modules/embla-carousel-react": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmmirror.com/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz",
+ "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==",
+ "license": "MIT",
+ "dependencies": {
+ "embla-carousel": "8.6.0",
+ "embla-carousel-reactive-utils": "8.6.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/embla-carousel-reactive-utils": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmmirror.com/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz",
+ "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "embla-carousel": "8.6.0"
+ }
+ },
+ "node_modules/es-toolkit": {
+ "version": "1.53.0",
+ "resolved": "https://registry.npmmirror.com/es-toolkit/-/es-toolkit-1.53.0.tgz",
+ "integrity": "sha512-3+AYXp9fmJ/UhHBMYj2/U+RaUouMD90SzoItyDOB2Za7W6dB7fQApFGnZPl2MF6K8/Tv1koh1JyirSx/kju6Pw==",
+ "license": "MIT",
+ "workspaces": [
+ "docs",
+ "benchmarks",
+ "tests/types",
+ "tests/browser-compat"
+ ]
+ },
+ "node_modules/eventemitter3": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.4.tgz",
+ "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==",
+ "license": "MIT"
+ },
"node_modules/get-nonce": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/get-nonce/-/get-nonce-1.0.1.tgz",
@@ -1681,13 +846,48 @@
"node": ">=6"
}
},
+ "node_modules/immer": {
+ "version": "11.2.9",
+ "resolved": "https://registry.npmmirror.com/immer/-/immer-11.2.9.tgz",
+ "integrity": "sha512-IQ4UEtXjZjyefyWjtLEDXUSrF6T2hwjKPi6BIJl3bY/2XXW24d6cNGdXJSBOA/+KNnuiXkZY6DR0C3efolhitA==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
+ "node_modules/input-otp": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/input-otp/-/input-otp-1.5.0.tgz",
+ "integrity": "sha512-3AcfdW1sNG0FmSA5hHMBXG7jNW5CdcdKs8ln8JOmn6S2SRkoXoJx+2UwC+ZvjflfnOdHJx0SfQ9/YjlxVYLtGQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/lucide-react": {
- "version": "0.540.0",
- "resolved": "https://registry.npmmirror.com/lucide-react/-/lucide-react-0.540.0.tgz",
- "integrity": "sha512-armkCAqQvO62EIX4Hq7hqX/q11WSZu0Jd23cnnqx0/49yIxGXyL/zyZfBxNN9YDx0ensPTb4L+DjTh3yQXUxtQ==",
+ "version": "1.61.0",
+ "resolved": "https://registry.npmmirror.com/lucide-react/-/lucide-react-1.61.0.tgz",
+ "integrity": "sha512-v2SQPPPNjnr+BlhL9Spuzmo5yR+hLkftfuE4E3jaxdNPgSH0hJKPcLJBP7yAta87jQNPsSERS59PJjCJ/CorBA==",
"license": "ISC",
"peerDependencies": {
+ "@types/react": "*",
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
"node_modules/next-themes": {
@@ -1700,83 +900,6 @@
"react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc"
}
},
- "node_modules/radix-ui": {
- "version": "1.8.1",
- "resolved": "https://registry.npmmirror.com/radix-ui/-/radix-ui-1.8.1.tgz",
- "integrity": "sha512-HPfpVGizO9xANlsFSauruLhRe/3+iOt3vPX0MXYle/UQi3gorQrSYtBcdiv0BZYewcl2rvL59qrIuLFMGAmUrw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.2.0",
- "@radix-ui/react-accessible-icon": "1.2.0",
- "@radix-ui/react-accordion": "1.3.1",
- "@radix-ui/react-alert-dialog": "1.2.1",
- "@radix-ui/react-arrow": "1.1.17",
- "@radix-ui/react-aspect-ratio": "1.2.0",
- "@radix-ui/react-avatar": "1.3.1",
- "@radix-ui/react-checkbox": "1.4.1",
- "@radix-ui/react-collapsible": "1.2.1",
- "@radix-ui/react-collection": "1.2.0",
- "@radix-ui/react-compose-refs": "1.1.5",
- "@radix-ui/react-context": "1.3.0",
- "@radix-ui/react-context-menu": "2.4.1",
- "@radix-ui/react-dialog": "1.3.1",
- "@radix-ui/react-direction": "1.2.0",
- "@radix-ui/react-dismissable-layer": "1.2.1",
- "@radix-ui/react-dropdown-menu": "2.2.1",
- "@radix-ui/react-focus-guards": "1.2.0",
- "@radix-ui/react-focus-scope": "1.3.1",
- "@radix-ui/react-form": "0.3.0",
- "@radix-ui/react-hover-card": "1.2.1",
- "@radix-ui/react-label": "2.1.17",
- "@radix-ui/react-menu": "2.2.1",
- "@radix-ui/react-menubar": "1.2.1",
- "@radix-ui/react-navigation-menu": "1.4.1",
- "@radix-ui/react-one-time-password-field": "0.2.1",
- "@radix-ui/react-password-toggle-field": "0.2.1",
- "@radix-ui/react-popover": "1.3.1",
- "@radix-ui/react-popper": "1.4.0",
- "@radix-ui/react-portal": "1.2.0",
- "@radix-ui/react-presence": "1.1.11",
- "@radix-ui/react-primitive": "2.2.0",
- "@radix-ui/react-progress": "1.2.1",
- "@radix-ui/react-radio-group": "1.5.1",
- "@radix-ui/react-roving-focus": "1.2.1",
- "@radix-ui/react-scroll-area": "1.4.0",
- "@radix-ui/react-select": "2.4.1",
- "@radix-ui/react-separator": "1.2.0",
- "@radix-ui/react-slider": "1.6.1",
- "@radix-ui/react-slot": "1.5.0",
- "@radix-ui/react-switch": "1.4.1",
- "@radix-ui/react-tabs": "1.2.1",
- "@radix-ui/react-toast": "1.3.1",
- "@radix-ui/react-toggle": "1.2.1",
- "@radix-ui/react-toggle-group": "1.2.1",
- "@radix-ui/react-toolbar": "1.2.1",
- "@radix-ui/react-tooltip": "1.4.1",
- "@radix-ui/react-use-callback-ref": "1.1.5",
- "@radix-ui/react-use-controllable-state": "1.3.0",
- "@radix-ui/react-use-effect-event": "0.0.5",
- "@radix-ui/react-use-escape-keydown": "1.1.6",
- "@radix-ui/react-use-is-hydrated": "0.1.3",
- "@radix-ui/react-use-layout-effect": "1.1.4",
- "@radix-ui/react-use-size": "1.1.5",
- "@radix-ui/react-visually-hidden": "1.2.13"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
"node_modules/react": {
"version": "19.3.1",
"resolved": "https://registry.npmmirror.com/react/-/react-19.3.1.tgz",
@@ -1787,15 +910,13 @@
}
},
"node_modules/react-day-picker": {
- "version": "9.14.0",
- "resolved": "https://registry.npmmirror.com/react-day-picker/-/react-day-picker-9.14.0.tgz",
- "integrity": "sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA==",
+ "version": "10.0.2",
+ "resolved": "https://registry.npmmirror.com/react-day-picker/-/react-day-picker-10.0.2.tgz",
+ "integrity": "sha512-QetiKtZWE9Uaw/pM/SYNv6WPYOTRnSJ2puL0GgwkmUFMIwiY0dtjH1W4B7DOVXVNQM0ZOClGpH/heOfBSzWeiA==",
"license": "MIT",
"dependencies": {
"@date-fns/tz": "^1.4.1",
- "@tabby_ai/hijri-converter": "1.0.5",
- "date-fns": "^4.1.0",
- "date-fns-jalali": "4.1.0-0"
+ "date-fns": "^4.1.0"
},
"engines": {
"node": ">=18"
@@ -1805,7 +926,13 @@
"url": "https://github.com/sponsors/gpbl"
},
"peerDependencies": {
+ "@types/react": ">=16.8.0",
"react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
"node_modules/react-dom": {
@@ -1820,6 +947,36 @@
"react": "^19.3.1"
}
},
+ "node_modules/react-is": {
+ "version": "19.3.1",
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-19.3.1.tgz",
+ "integrity": "sha512-RRieF6IyxQBkcK6pP8xOHprLTPW6QjRkbGdImtqNme+/hYVwCZkLQLdlZGOhUqXwkS9IEynaGvPJtv6XB/cz0Q==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/react-redux": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmmirror.com/react-redux/-/react-redux-9.3.0.tgz",
+ "integrity": "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/use-sync-external-store": "^0.0.6",
+ "use-sync-external-store": "^1.4.0"
+ },
+ "peerDependencies": {
+ "@types/react": "^18.2.25 || ^19",
+ "react": "^18.0 || ^19",
+ "redux": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "redux": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-remove-scroll": {
"version": "2.7.2",
"resolved": "https://registry.npmmirror.com/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz",
@@ -1889,6 +1046,63 @@
}
}
},
+ "node_modules/recharts": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmmirror.com/recharts/-/recharts-3.10.1.tgz",
+ "integrity": "sha512-QXFrvt6IVcw7eeZCoyXTwkIJAX3Dv1nyVhMicXJ47GsGDDpcN8z6o644DibE9XjpBTThtsomLKnTV6lc+cVFUA==",
+ "license": "MIT",
+ "workspaces": [
+ "www"
+ ],
+ "dependencies": {
+ "@reduxjs/toolkit": "^1.9.0 || 2.x.x",
+ "clsx": "^2.1.1",
+ "decimal.js-light": "^2.5.1",
+ "es-toolkit": "^1.39.3",
+ "eventemitter3": "^5.0.1",
+ "immer": "^11.1.8",
+ "react-redux": "8.x.x || 9.x.x",
+ "reselect": "5.2.0",
+ "tiny-invariant": "^1.3.3",
+ "use-sync-external-store": "^1.2.2",
+ "victory-vendor": "^37.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/recharts/node_modules/reselect": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/reselect/-/reselect-5.2.0.tgz",
+ "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==",
+ "license": "MIT"
+ },
+ "node_modules/redux": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/redux/-/redux-5.0.1.tgz",
+ "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
+ "license": "MIT"
+ },
+ "node_modules/redux-thunk": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/redux-thunk/-/redux-thunk-3.1.0.tgz",
+ "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "redux": "^5.0.0"
+ }
+ },
+ "node_modules/reselect": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/reselect/-/reselect-5.3.0.tgz",
+ "integrity": "sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==",
+ "license": "MIT"
+ },
"node_modules/scheduler": {
"version": "0.28.0",
"resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.28.0.tgz",
@@ -1928,6 +1142,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "license": "MIT"
+ },
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
@@ -1999,6 +1219,37 @@
"optional": true
}
}
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz",
+ "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/victory-vendor": {
+ "version": "37.3.6",
+ "resolved": "https://registry.npmmirror.com/victory-vendor/-/victory-vendor-37.3.6.tgz",
+ "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==",
+ "license": "MIT AND ISC",
+ "dependencies": {
+ "@types/d3-array": "^3.0.3",
+ "@types/d3-ease": "^3.0.0",
+ "@types/d3-interpolate": "^3.0.1",
+ "@types/d3-scale": "^4.0.2",
+ "@types/d3-shape": "^3.1.0",
+ "@types/d3-time": "^3.0.0",
+ "@types/d3-timer": "^3.0.0",
+ "d3-array": "^3.1.6",
+ "d3-ease": "^3.0.1",
+ "d3-interpolate": "^3.0.1",
+ "d3-scale": "^4.0.2",
+ "d3-shape": "^3.1.0",
+ "d3-time": "^3.0.0",
+ "d3-timer": "^3.0.1"
+ }
}
}
}
diff --git a/package.json b/package.json
index be78d21..b85f120 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,16 @@
{
"name": "@koko/ui",
- "version": "0.1.0",
+ "version": "0.2.0",
"description": "koko workbench shared shadcn/ui components + tokens (base theme: tweakcn Light Green)",
"type": "module",
"license": "UNLICENSED",
- "sideEffects": ["**/*.css"],
- "files": ["src", "README.md"],
+ "sideEffects": [
+ "**/*.css"
+ ],
+ "files": [
+ "src",
+ "README.md"
+ ],
"exports": {
".": "./src/index.ts",
"./styles.css": "./src/styles.css",
@@ -15,19 +20,30 @@
},
"scripts": {
"check": "tsc --noEmit -p .",
- "prepublishOnly": "node scripts/prepublish-check.mjs"
+ "prepublishOnly": "node scripts/prepublish-check.mjs",
+ "sync": "python3 scripts/sync-shadcn.py"
+ },
+ "publishConfig": {
+ "registry": "https://git.colinx.one/api/packages/koko/npm/"
+ },
+ "peerDependencies": {
+ "react": ">=19",
+ "react-dom": ">=19",
+ "tailwindcss": ">=4"
},
- "publishConfig": { "registry": "https://git.colinx.one/api/packages/koko/npm/" },
- "peerDependencies": { "react": ">=19", "react-dom": ">=19", "tailwindcss": ">=4" },
"dependencies": {
+ "@base-ui/react": "^1.9.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
- "date-fns": "^4.1.0",
- "lucide-react": "^0.540.0",
+ "cmdk": "^1.1.1",
+ "date-fns": "^4.4.0",
+ "embla-carousel-react": "^8.6.0",
+ "input-otp": "^1.5.0",
+ "lucide-react": "^1.61.0",
"next-themes": "^0.4.6",
- "radix-ui": "^1.4.3",
- "react-day-picker": "^9.11.0",
- "sonner": "^2.0.7",
+ "react-day-picker": "^10.0.2",
+ "recharts": "^3.8.0",
+ "sonner": "^2.0.8",
"tailwind-merge": "^3.3.1",
"tw-animate-css": "^1.4.0"
},
@@ -39,4 +55,4 @@
"tailwindcss": "^4.1.0",
"typescript": "^5.9.0"
}
-}
+}
\ No newline at end of file
diff --git a/scripts/prepublish-check.mjs b/scripts/prepublish-check.mjs
index 9d56668..221a1c2 100644
--- a/scripts/prepublish-check.mjs
+++ b/scripts/prepublish-check.mjs
@@ -2,8 +2,8 @@
import { execSync } from "node:child_process"
import { readFileSync } from "node:fs"
-const MAX_PACKED_KB = 150, MAX_UNPACKED_KB = 600, MAX_FILES = 60
-const ALLOWED = [/^package\.json$/, /^README\.md$/, /^src\/.+\.(tsx?|css)$/]
+const MAX_PACKED_KB = 150, MAX_UNPACKED_KB = 600, MAX_FILES = 80
+const ALLOWED = [/^package\.json$/, /^README\.md$/, /^src\/.+\.(tsx?|css)$/, /^src\/UPSTREAM\.json$/]
const SECRET_PATTERNS = [
[/-----BEGIN [A-Z ]*PRIVATE KEY-----/, "私钥"],
[/\b[0-9a-f]{40}\b/i, "40位hex(疑似 Gitea/GitHub token)"],
diff --git a/scripts/sync-shadcn.py b/scripts/sync-shadcn.py
new file mode 100644
index 0000000..d0760ed
--- /dev/null
+++ b/scripts/sync-shadcn.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python3
+"""用官方 shadcn CLI 同步组件到 src/components/ui, 并把 import 改写成包内相对路径。
+用法: python3 scripts/sync-shadcn.py (style 固定 base-nova = Base UI)
+升级流程: 跑本脚本 → git diff 审查 → npx tsc → 改版本号 → npm publish。
+依赖: node + npm 可联网 (registry 用 $NPM_REGISTRY, 默认 npmmirror)。"""
+import json, os, re, shutil, subprocess, sys, tempfile
+
+STYLE = "base-nova"
+REG = os.environ.get("NPM_REGISTRY", "https://registry.npmmirror.com")
+ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+UI = os.path.join(ROOT, "src/components/ui")
+HOOKS = os.path.join(ROOT, "src/hooks")
+
+COMPONENTS = """accordion alert alert-dialog aspect-ratio avatar badge breadcrumb button button-group
+calendar card carousel chart checkbox collapsible combobox command dialog drawer dropdown-menu empty
+field hover-card input input-group input-otp item kbd label native-select pagination popover progress
+radio-group scroll-area select separator sheet sidebar skeleton slider sonner spinner switch table
+tabs textarea toggle toggle-group tooltip""".split()
+
+
+def run(cmd, cwd):
+ r = subprocess.run(cmd, cwd=cwd, capture_output=True, text=True, timeout=280)
+ return r.returncode, (r.stdout + r.stderr)[-1500:]
+
+
+def rewrite(c):
+ c = c.replace('from "cn"', 'from "../../lib/utils"')
+ c = c.replace('from "@/lib/utils"', 'from "../../lib/utils"')
+ c = re.sub(r'from "@/components/ui/([\w-]+)"', r'from "./\1"', c)
+ c = re.sub(r'from "@/hooks/([\w-]+)"', r'from "../../hooks/\1"', c)
+ return c
+
+
+def main():
+ tmp = tempfile.mkdtemp(prefix="shsync-", dir=os.environ.get("TMPDIR"))
+ open(f"{tmp}/package.json", "w").write(json.dumps({
+ "name": "scaf", "private": True, "type": "module",
+ "dependencies": {"react": "^19.0.0", "react-dom": "^19.0.0"},
+ "devDependencies": {"tailwindcss": "^4.1.0", "typescript": "^5.9.0", "shadcn": "latest"}}))
+ os.makedirs(f"{tmp}/src")
+ open(f"{tmp}/src/index.css", "w").write('@import "tailwindcss";\n')
+ open(f"{tmp}/tsconfig.json", "w").write(json.dumps({"compilerOptions": {
+ "jsx": "react-jsx", "baseUrl": ".", "paths": {"@/*": ["./src/*"]}}}))
+ open(f"{tmp}/components.json", "w").write(json.dumps({
+ "$schema": "https://ui.shadcn.com/schema.json", "style": STYLE, "rsc": False, "tsx": True,
+ "tailwind": {"config": "", "css": "src/index.css", "baseColor": "neutral", "cssVariables": True, "prefix": ""},
+ "iconLibrary": "lucide",
+ "aliases": {"components": "@/components", "utils": "@/lib/utils", "ui": "@/components/ui",
+ "lib": "@/lib", "hooks": "@/hooks"}}))
+ print("npm i:", run(["npm", "i", "--registry", REG, "--no-audit", "--no-fund"], tmp)[0])
+ code, out = run(["npx", "shadcn", "add", *COMPONENTS, "--yes", "--overwrite"], tmp)
+ print("shadcn add:", code)
+ src_ui = f"{tmp}/src/components/ui"
+ if not os.path.isdir(src_ui):
+ sys.exit("CLI 未产出组件, 中止 (未改动包内文件)")
+
+ shutil.rmtree(UI, ignore_errors=True)
+ os.makedirs(UI)
+ os.makedirs(HOOKS, exist_ok=True)
+ for f in os.listdir(src_ui):
+ open(f"{UI}/{f}", "w").write(rewrite(open(f"{src_ui}/{f}").read()))
+ if os.path.isdir(f"{tmp}/src/hooks"):
+ for f in os.listdir(f"{tmp}/src/hooks"):
+ open(f"{HOOKS}/{f}", "w").write(rewrite(open(f"{tmp}/src/hooks/{f}").read()))
+ pkg = json.load(open(f"{tmp}/node_modules/shadcn/package.json"))
+ json.dump({"shadcn": pkg["version"], "style": STYLE},
+ open(f"{ROOT}/src/UPSTREAM.json", "w"), indent=2)
+ left = []
+ for f in os.listdir(UI):
+ left += re.findall(r'from "(@/[^"]+)"', open(f"{UI}/{f}").read())
+ print("components:", len(os.listdir(UI)), "| shadcn", pkg["version"], "| unresolved @/ imports:", left)
+ shutil.rmtree(tmp, ignore_errors=True)
+
+
+main()
diff --git a/src/UPSTREAM.json b/src/UPSTREAM.json
new file mode 100644
index 0000000..eda1b25
--- /dev/null
+++ b/src/UPSTREAM.json
@@ -0,0 +1,4 @@
+{
+ "shadcn": "4.22.1",
+ "style": "base-nova"
+}
\ No newline at end of file
diff --git a/src/components/extra/date-picker.tsx b/src/components/extra/date-picker.tsx
new file mode 100644
index 0000000..72ca6ce
--- /dev/null
+++ b/src/components/extra/date-picker.tsx
@@ -0,0 +1,123 @@
+"use client"
+
+import * as React from "react"
+import { format } from "date-fns"
+import { CalendarIcon } from "lucide-react"
+import type { DateRange } from "react-day-picker"
+
+import { cn } from "../../lib/utils"
+import { Button } from "../ui/button"
+import { Calendar } from "../ui/calendar"
+import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover"
+
+/** 官方没有独立的 DatePicker, 这里按官方文档的 Popover + Calendar 组合封装。 */
+
+type DatePickerProps = {
+ value?: Date
+ onChange?: (date: Date | undefined) => void
+ placeholder?: string
+ formatStr?: string
+ className?: string
+ disabled?: boolean
+}
+
+function DatePicker({
+ value,
+ onChange,
+ placeholder = "选择日期",
+ formatStr = "yyyy-MM-dd",
+ className,
+ disabled,
+}: DatePickerProps) {
+ const [open, setOpen] = React.useState(false)
+ return (
+