diff --git a/.changeset/react-day-picker-v10.md b/.changeset/react-day-picker-v10.md
new file mode 100644
index 0000000..76bf4d5
--- /dev/null
+++ b/.changeset/react-day-picker-v10.md
@@ -0,0 +1,5 @@
+---
+"@datum-cloud/datum-ui": minor
+---
+
+Support `react-day-picker` v10. Migrated picker calendar from the removed `fromDate`/`toDate` props to `startMonth`/`endMonth`, and removed `initialFocus` from the time-range picker's absolute-range panel (no longer a prop in v10). The peer range remains `>=9` so both v9 and v10 are supported by consumers.
diff --git a/.gitignore b/.gitignore
index 399b6c0..13522d8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,21 @@
-node_modules/
-dist/
-storybook-static/
-.next/
-.turbo/
-coverage/
-*.tsbuildinfo
-.env*
-.source/
-
-*.tgz
-
-.claude/
-CLAUDE.MD
-/docs/
-/specs/
-*.backup
-
-.opencode/
-.superpowers
+node_modules/
+dist/
+storybook-static/
+.next/
+.turbo/
+coverage/
+*.tsbuildinfo
+.source/
+
+*.tgz
+
+.claude/
+CLAUDE.MD
+/docs/
+/specs/
+*.backup
+
+.opencode/
+.superpowers
+.env
+.env.local
diff --git a/apps/storybook/package.json b/apps/storybook/package.json
index 778c916..a6a3fba 100644
--- a/apps/storybook/package.json
+++ b/apps/storybook/package.json
@@ -1,47 +1,47 @@
-{
- "name": "@repo/storybook",
- "type": "module",
- "version": "1.0.8",
- "private": true,
- "scripts": {
- "predev": "[ -d '../../packages/datum-ui/dist' ] || pnpm --filter @datum-cloud/datum-ui build",
- "dev": "storybook dev -p 6006",
- "prebuild": "[ -d '../../packages/datum-ui/dist' ] && node ../../packages/datum-ui/scripts/copy-styles.mjs || pnpm --filter @datum-cloud/datum-ui build",
- "build": "storybook build",
- "lint": "eslint .",
- "typecheck": "tsc --noEmit",
- "clean": "rm -rf .turbo node_modules storybook-static"
- },
- "dependencies": {
- "@datum-cloud/datum-ui": "workspace:*",
- "date-fns": "^4.1.0",
- "lucide-react": "^1.14.0",
- "react": "^19",
- "react-dom": "^19",
- "zod": "^4.4.3"
- },
- "devDependencies": {
- "@repo/config": "workspace:*",
- "@repo/shadcn": "workspace:*",
- "@rsbuild/core": "^2.0.5",
- "@rsbuild/plugin-react": "^2.0.0",
- "@storybook/addon-a11y": "^10.3.6",
- "@storybook/addon-interactions": "^8",
- "@storybook/addon-links": "^10.3.6",
- "@storybook/test": "^8",
- "@tailwindcss/postcss": "^4.3.0",
- "@tanstack/react-table": "^8.21.3",
- "@types/react": "^19",
- "eslint": "^10.3.0",
- "react-day-picker": "^9.14.0",
- "recharts": "^3",
- "storybook": "^10",
- "storybook-addon-pseudo-states": "^10.3.6",
- "storybook-addon-tag-badges": "^3.1.0",
- "storybook-react-rsbuild": "^3",
- "tailwind-scrollbar-hide": "^4.0.0",
- "tailwindcss": "^4",
- "tw-animate-css": "^1.4.0",
- "typescript": "^6.0"
- }
-}
+{
+ "name": "@repo/storybook",
+ "type": "module",
+ "version": "1.0.8",
+ "private": true,
+ "scripts": {
+ "predev": "[ -d '../../packages/datum-ui/dist' ] || pnpm --filter @datum-cloud/datum-ui build",
+ "dev": "storybook dev -p 6006",
+ "prebuild": "[ -d '../../packages/datum-ui/dist' ] && node ../../packages/datum-ui/scripts/copy-styles.mjs || pnpm --filter @datum-cloud/datum-ui build",
+ "build": "storybook build",
+ "lint": "eslint .",
+ "typecheck": "tsc --noEmit",
+ "clean": "rm -rf .turbo node_modules storybook-static"
+ },
+ "dependencies": {
+ "@datum-cloud/datum-ui": "workspace:*",
+ "date-fns": "^4.1.0",
+ "lucide-react": "^1.14.0",
+ "react": "^19",
+ "react-dom": "^19",
+ "zod": "^4.4.3"
+ },
+ "devDependencies": {
+ "@repo/config": "workspace:*",
+ "@repo/shadcn": "workspace:*",
+ "@rsbuild/core": "^2.0.5",
+ "@rsbuild/plugin-react": "^2.0.0",
+ "@storybook/addon-a11y": "^10.3.6",
+ "@storybook/addon-interactions": "^8",
+ "@storybook/addon-links": "^10.3.6",
+ "@storybook/test": "^8",
+ "@tailwindcss/postcss": "^4.3.0",
+ "@tanstack/react-table": "^8.21.3",
+ "@types/react": "^19",
+ "eslint": "^10.3.0",
+ "react-day-picker": "^10.0.1",
+ "recharts": "^3",
+ "storybook": "^10",
+ "storybook-addon-pseudo-states": "^10.3.6",
+ "storybook-addon-tag-badges": "^3.1.0",
+ "storybook-react-rsbuild": "^3",
+ "tailwind-scrollbar-hide": "^4.0.0",
+ "tailwindcss": "^4",
+ "tw-animate-css": "^1.4.0",
+ "typescript": "^6.0"
+ }
+}
diff --git a/packages/datum-ui/package.json b/packages/datum-ui/package.json
index 13b8007..b8c6871 100644
--- a/packages/datum-ui/package.json
+++ b/packages/datum-ui/package.json
@@ -1,647 +1,647 @@
-{
- "name": "@datum-cloud/datum-ui",
- "type": "module",
- "version": "0.10.1",
- "packageManager": "pnpm@10.33.4",
- "license": "MIT",
- "repository": {
- "url": "https://github.com/datum-cloud/datum-ui"
- },
- "sideEffects": [
- "**/*.css"
- ],
- "exports": {
- ".": {
- "source": "./src/index.ts",
- "types": "./dist/index.d.ts",
- "default": "./dist/index.mjs"
- },
- "./styles": {
- "style": "./dist/styles/root.css",
- "default": "./dist/styles/root.css"
- },
- "./styles/canela": {
- "style": "./dist/styles/canela.css",
- "default": "./dist/styles/canela.css"
- },
- "./theme": {
- "source": "./src/components/themes/index.ts",
- "types": "./dist/components/themes/index.d.ts",
- "default": "./dist/theme/index.mjs"
- },
- "./hooks": {
- "source": "./src/hooks/index.ts",
- "types": "./dist/hooks/index.d.ts",
- "default": "./dist/hooks/index.mjs"
- },
- "./icons": {
- "source": "./src/components/icons/index.ts",
- "types": "./dist/components/icons/index.d.ts",
- "default": "./dist/icons/index.mjs"
- },
- "./utils": {
- "source": "./src/utils/index.ts",
- "types": "./dist/utils/index.d.ts",
- "default": "./dist/utils/index.mjs"
- },
- "./alert": {
- "source": "./src/components/base/alert/index.ts",
- "types": "./dist/components/base/alert/index.d.ts",
- "default": "./dist/alert/index.mjs"
- },
- "./avatar": {
- "source": "./src/components/base/avatar/index.ts",
- "types": "./dist/components/base/avatar/index.d.ts",
- "default": "./dist/avatar/index.mjs"
- },
- "./badge": {
- "source": "./src/components/base/badge/index.ts",
- "types": "./dist/components/base/badge/index.d.ts",
- "default": "./dist/badge/index.mjs"
- },
- "./breadcrumb": {
- "source": "./src/components/base/breadcrumb/index.ts",
- "types": "./dist/components/base/breadcrumb/index.d.ts",
- "default": "./dist/breadcrumb/index.mjs"
- },
- "./button": {
- "source": "./src/components/base/button/index.tsx",
- "types": "./dist/components/base/button/index.d.ts",
- "default": "./dist/button/index.mjs"
- },
- "./button-group": {
- "source": "./src/components/base/button-group/index.ts",
- "types": "./dist/components/base/button-group/index.d.ts",
- "default": "./dist/button-group/index.mjs"
- },
- "./calendar": {
- "source": "./src/components/base/calendar/index.ts",
- "types": "./dist/components/base/calendar/index.d.ts",
- "default": "./dist/calendar/index.mjs"
- },
- "./card": {
- "source": "./src/components/base/card/index.ts",
- "types": "./dist/components/base/card/index.d.ts",
- "default": "./dist/card/index.mjs"
- },
- "./chart": {
- "source": "./src/components/base/chart/index.ts",
- "types": "./dist/components/base/chart/index.d.ts",
- "default": "./dist/chart/index.mjs"
- },
- "./code-editor": {
- "source": "./src/components/features/code-editor/index.ts",
- "types": "./dist/components/features/code-editor/index.d.ts",
- "default": "./dist/code-editor/index.mjs"
- },
- "./checkbox": {
- "source": "./src/components/base/checkbox/index.ts",
- "types": "./dist/components/base/checkbox/index.d.ts",
- "default": "./dist/checkbox/index.mjs"
- },
- "./collapsible": {
- "source": "./src/components/base/collapsible/index.ts",
- "types": "./dist/components/base/collapsible/index.d.ts",
- "default": "./dist/collapsible/index.mjs"
- },
- "./command": {
- "source": "./src/components/base/command/index.ts",
- "types": "./dist/components/base/command/index.d.ts",
- "default": "./dist/command/index.mjs"
- },
- "./dialog": {
- "source": "./src/components/base/dialog/index.ts",
- "types": "./dist/components/base/dialog/index.d.ts",
- "default": "./dist/dialog/index.mjs"
- },
- "./hover-card": {
- "source": "./src/components/base/hover-card/index.ts",
- "types": "./dist/components/base/hover-card/index.d.ts",
- "default": "./dist/hover-card/index.mjs"
- },
- "./input": {
- "source": "./src/components/base/input/index.ts",
- "types": "./dist/components/base/input/index.d.ts",
- "default": "./dist/input/index.mjs"
- },
- "./input-group": {
- "source": "./src/components/base/input-group/index.ts",
- "types": "./dist/components/base/input-group/index.d.ts",
- "default": "./dist/input-group/index.mjs"
- },
- "./label": {
- "source": "./src/components/base/label/index.ts",
- "types": "./dist/components/base/label/index.d.ts",
- "default": "./dist/label/index.mjs"
- },
- "./popover": {
- "source": "./src/components/base/popover/index.ts",
- "types": "./dist/components/base/popover/index.d.ts",
- "default": "./dist/popover/index.mjs"
- },
- "./radio-group": {
- "source": "./src/components/base/radio-group/index.ts",
- "types": "./dist/components/base/radio-group/index.d.ts",
- "default": "./dist/radio-group/index.mjs"
- },
- "./responsive-dropdown": {
- "source": "./src/components/base/responsive-dropdown/index.ts",
- "types": "./dist/components/base/responsive-dropdown/index.d.ts",
- "default": "./dist/responsive-dropdown/index.mjs"
- },
- "./responsive-popover": {
- "source": "./src/components/base/responsive-popover/index.ts",
- "types": "./dist/components/base/responsive-popover/index.d.ts",
- "default": "./dist/responsive-popover/index.mjs"
- },
- "./rich-text-editor": {
- "source": "./src/components/features/rich-text-editor/index.ts",
- "types": "./dist/components/features/rich-text-editor/index.d.ts",
- "default": "./dist/rich-text-editor/index.mjs"
- },
- "./select": {
- "source": "./src/components/base/select/index.ts",
- "types": "./dist/components/base/select/index.d.ts",
- "default": "./dist/select/index.mjs"
- },
- "./separator": {
- "source": "./src/components/base/separator/index.ts",
- "types": "./dist/components/base/separator/index.d.ts",
- "default": "./dist/separator/index.mjs"
- },
- "./sheet": {
- "source": "./src/components/base/sheet/index.ts",
- "types": "./dist/components/base/sheet/index.d.ts",
- "default": "./dist/sheet/index.mjs"
- },
- "./skeleton": {
- "source": "./src/components/base/skeleton/index.ts",
- "types": "./dist/components/base/skeleton/index.d.ts",
- "default": "./dist/skeleton/index.mjs"
- },
- "./spinner": {
- "source": "./src/components/base/spinner/index.ts",
- "types": "./dist/components/base/spinner/index.d.ts",
- "default": "./dist/spinner/index.mjs"
- },
- "./switch": {
- "source": "./src/components/base/switch/index.ts",
- "types": "./dist/components/base/switch/index.d.ts",
- "default": "./dist/switch/index.mjs"
- },
- "./table": {
- "source": "./src/components/base/table/index.ts",
- "types": "./dist/components/base/table/index.d.ts",
- "default": "./dist/table/index.mjs"
- },
- "./tabs": {
- "source": "./src/components/base/tabs/index.ts",
- "types": "./dist/components/base/tabs/index.d.ts",
- "default": "./dist/tabs/index.mjs"
- },
- "./textarea": {
- "source": "./src/components/base/textarea/index.ts",
- "types": "./dist/components/base/textarea/index.d.ts",
- "default": "./dist/textarea/index.mjs"
- },
- "./tooltip": {
- "source": "./src/components/base/tooltip/index.ts",
- "types": "./dist/components/base/tooltip/index.d.ts",
- "default": "./dist/tooltip/index.mjs"
- },
- "./typography": {
- "source": "./src/components/base/typography/index.ts",
- "types": "./dist/components/base/typography/index.d.ts",
- "default": "./dist/typography/index.mjs"
- },
- "./visually-hidden": {
- "source": "./src/components/base/visuallyhidden/index.ts",
- "types": "./dist/components/base/visuallyhidden/index.d.ts",
- "default": "./dist/visually-hidden/index.mjs"
- },
- "./autocomplete": {
- "source": "./src/components/features/autocomplete/index.ts",
- "types": "./dist/components/features/autocomplete/index.d.ts",
- "default": "./dist/autocomplete/index.mjs"
- },
- "./autosearch": {
- "source": "./src/components/features/autosearch/index.ts",
- "types": "./dist/components/features/autosearch/index.d.ts",
- "default": "./dist/autosearch/index.mjs"
- },
- "./avatar-stack": {
- "source": "./src/components/features/avatar-stack/index.ts",
- "types": "./dist/components/features/avatar-stack/index.d.ts",
- "default": "./dist/avatar-stack/index.mjs"
- },
- "./date-picker": {
- "source": "./src/components/features/date-picker/index.ts",
- "types": "./dist/components/features/date-picker/index.d.ts",
- "default": "./dist/date-picker/index.mjs"
- },
- "./dropdown": {
- "source": "./src/components/features/dropdown/index.ts",
- "types": "./dist/components/features/dropdown/index.d.ts",
- "default": "./dist/dropdown/index.mjs"
- },
- "./dropzone": {
- "source": "./src/components/features/dropzone/index.ts",
- "types": "./dist/components/features/dropzone/index.d.ts",
- "default": "./dist/dropzone/index.mjs"
- },
- "./empty-content": {
- "source": "./src/components/features/empty-content/index.ts",
- "types": "./dist/components/features/empty-content/index.d.ts",
- "default": "./dist/empty-content/index.mjs"
- },
- "./form": {
- "source": "./src/components/features/form/index.ts",
- "types": "./dist/components/features/form/index.d.ts",
- "default": "./dist/form/index.mjs"
- },
- "./form/adapters/conform": {
- "source": "./src/components/features/form/adapters/conform/index.ts",
- "types": "./dist/components/features/form/adapters/conform/index.d.ts",
- "default": "./dist/form/adapters/conform/index.mjs"
- },
- "./form/adapters/rhf": {
- "source": "./src/components/features/form/adapters/rhf/index.ts",
- "types": "./dist/components/features/form/adapters/rhf/index.d.ts",
- "default": "./dist/form/adapters/rhf/index.mjs"
- },
- "./form/stepper": {
- "source": "./src/components/features/form/stepper/index.ts",
- "types": "./dist/components/features/form/stepper/index.d.ts",
- "default": "./dist/form/stepper/index.mjs"
- },
- "./grid": {
- "types": "./dist/components/features/grid/index.d.ts",
- "style": "./dist/grid/style.css",
- "default": "./dist/grid/index.mjs"
- },
- "./input-number": {
- "source": "./src/components/features/input-number/index.ts",
- "types": "./dist/components/features/input-number/index.d.ts",
- "default": "./dist/input-number/index.mjs"
- },
- "./input-with-addons": {
- "source": "./src/components/features/input-with-addons/index.ts",
- "types": "./dist/components/features/input-with-addons/index.d.ts",
- "default": "./dist/input-with-addons/index.mjs"
- },
- "./loader-overlay": {
- "source": "./src/components/features/loader-overlay/index.ts",
- "types": "./dist/components/features/loader-overlay/index.d.ts",
- "default": "./dist/loader-overlay/index.mjs"
- },
- "./map": {
- "source": "./src/exports/map.ts",
- "types": "./dist/exports/map.d.ts",
- "default": "./dist/map/index.mjs"
- },
- "./mobile-sheet": {
- "source": "./src/components/base/mobile-sheet/index.ts",
- "types": "./dist/components/base/mobile-sheet/index.d.ts",
- "default": "./dist/mobile-sheet/index.mjs"
- },
- "./more-actions": {
- "source": "./src/components/features/more-actions/index.ts",
- "types": "./dist/components/features/more-actions/index.d.ts",
- "default": "./dist/more-actions/index.mjs"
- },
- "./nprogress": {
- "types": "./dist/components/features/nprogress/index.d.ts",
- "style": "./dist/nprogress/nprogress.css",
- "default": "./dist/nprogress/index.mjs"
- },
- "./page-title": {
- "source": "./src/components/features/page-title/index.ts",
- "types": "./dist/components/features/page-title/index.d.ts",
- "default": "./dist/page-title/index.mjs"
- },
- "./sidebar": {
- "source": "./src/components/base/sidebar/index.ts",
- "types": "./dist/components/base/sidebar/index.d.ts",
- "default": "./dist/sidebar/index.mjs"
- },
- "./app-navigation": {
- "source": "./src/components/features/app-navigation/index.ts",
- "types": "./dist/components/features/app-navigation/index.d.ts",
- "default": "./dist/app-navigation/index.mjs"
- },
- "./logo": {
- "source": "./src/components/features/logo/index.ts",
- "types": "./dist/components/features/logo/index.d.ts",
- "default": "./dist/logo/index.mjs"
- },
- "./logo/themed": {
- "source": "./src/components/features/logo/themed/index.ts",
- "types": "./dist/components/features/logo/themed/index.d.ts",
- "default": "./dist/logo/themed/index.mjs"
- },
- "./stepper": {
- "source": "./src/components/features/stepper/index.ts",
- "types": "./dist/components/features/stepper/index.d.ts",
- "default": "./dist/stepper/index.mjs"
- },
- "./tag-input": {
- "source": "./src/components/features/tag-input/index.ts",
- "types": "./dist/components/features/tag-input/index.d.ts",
- "default": "./dist/tag-input/index.mjs"
- },
- "./task-queue": {
- "source": "./src/components/features/task-queue/index.ts",
- "types": "./dist/components/features/task-queue/index.d.ts",
- "default": "./dist/task-queue/index.mjs"
- },
- "./toast": {
- "source": "./src/components/features/toast/index.ts",
- "types": "./dist/components/features/toast/index.d.ts",
- "default": "./dist/toast/index.mjs"
- },
- "./data-table": {
- "source": "./src/components/features/data-table/index.ts",
- "types": "./dist/components/features/data-table/index.d.ts",
- "default": "./dist/data-table/index.mjs"
- },
- "./date-time-picker": {
- "source": "./src/components/features/date-time-picker/index.ts",
- "types": "./dist/components/features/date-time-picker/index.d.ts",
- "default": "./dist/date-time-picker/index.mjs"
- },
- "./picker": {
- "source": "./src/components/features/picker/index.ts",
- "types": "./dist/components/features/picker/index.d.ts",
- "default": "./dist/picker/index.mjs"
- },
- "./time-picker": {
- "source": "./src/components/features/time-picker/index.ts",
- "types": "./dist/components/features/time-picker/index.d.ts",
- "default": "./dist/time-picker/index.mjs"
- },
- "./transfer": {
- "source": "./src/components/features/transfer/index.ts",
- "types": "./dist/components/features/transfer/index.d.ts",
- "default": "./dist/transfer/index.mjs"
- },
- "./multi-select": {
- "source": "./src/components/features/multi-select/index.ts",
- "types": "./dist/components/features/multi-select/index.d.ts",
- "default": "./dist/multi-select/index.mjs"
- }
- },
- "main": "./dist/index.mjs",
- "module": "./dist/index.mjs",
- "types": "./dist/index.d.ts",
- "files": [
- "LICENSE",
- "README.md",
- "dist"
- ],
- "scripts": {
- "build": "tsdown --config-loader native && tsc -p tsconfig.build.json && node scripts/fix-dts-imports.mjs && node scripts/copy-styles.mjs",
- "dev": "tsdown --config-loader native --watch",
- "lint": "eslint .",
- "typecheck": "tsc --noEmit",
- "test": "vitest run",
- "test:watch": "vitest",
- "test:coverage": "vitest run --coverage",
- "clean": "rm -rf dist .turbo node_modules coverage",
- "prepack": "node scripts/strip-workspace-deps.mjs --strip",
- "postpublish": "node scripts/strip-workspace-deps.mjs --restore"
- },
- "peerDependencies": {
- "@conform-to/react": ">=1",
- "@conform-to/zod": ">=1",
- "@dnd-kit/core": ">=6",
- "@dnd-kit/sortable": ">=8",
- "@hookform/resolvers": ">=5.2.2",
- "@monaco-editor/react": "^4.7.0",
- "@stepperize/react": ">=4",
- "@tanstack/react-table": ">=8",
- "@tanstack/react-virtual": ">=3",
- "@tiptap/extension-character-count": ">=3",
- "@tiptap/extension-link": ">=3",
- "@tiptap/extension-placeholder": ">=3",
- "@tiptap/extension-underline": ">=3",
- "@tiptap/react": ">=3",
- "@tiptap/starter-kit": ">=3",
- "date-fns": ">=4.1.0",
- "date-fns-tz": ">=3",
- "js-yaml": "^4.1.1",
- "leaflet": ">=1.9",
- "leaflet-draw": ">=1",
- "leaflet.fullscreen": ">=5",
- "leaflet.markercluster": ">=1.5",
- "lucide-react": ">=0.400",
- "monaco-editor": ">=0.44.0",
- "motion": ">=11",
- "nprogress": ">=0.2",
- "nuqs": ">=2",
- "react": ">=19",
- "react-day-picker": ">=9",
- "react-dom": ">=19",
- "react-dropzone": ">=14",
- "react-hook-form": ">=7.55",
- "react-leaflet": ">=5",
- "react-leaflet-markercluster": ">=5.0.0-rc.0",
- "react-number-format": ">=5",
- "recharts": ">=2",
- "sonner": ">=2",
- "zod": ">=4"
- },
- "peerDependenciesMeta": {
- "@conform-to/react": {
- "optional": true
- },
- "@conform-to/zod": {
- "optional": true
- },
- "@dnd-kit/core": {
- "optional": true
- },
- "@dnd-kit/sortable": {
- "optional": true
- },
- "@hookform/resolvers": {
- "optional": true
- },
- "@monaco-editor/react": {
- "optional": true
- },
- "@stepperize/react": {
- "optional": true
- },
- "@tanstack/react-table": {
- "optional": true
- },
- "@tanstack/react-virtual": {
- "optional": true
- },
- "@tiptap/extension-character-count": {
- "optional": true
- },
- "@tiptap/extension-link": {
- "optional": true
- },
- "@tiptap/extension-placeholder": {
- "optional": true
- },
- "@tiptap/extension-underline": {
- "optional": true
- },
- "@tiptap/react": {
- "optional": true
- },
- "@tiptap/starter-kit": {
- "optional": true
- },
- "date-fns": {
- "optional": true
- },
- "date-fns-tz": {
- "optional": true
- },
- "js-yaml": {
- "optional": true
- },
- "leaflet": {
- "optional": true
- },
- "leaflet-draw": {
- "optional": true
- },
- "leaflet.fullscreen": {
- "optional": true
- },
- "leaflet.markercluster": {
- "optional": true
- },
- "lucide-react": {},
- "monaco-editor": {
- "optional": true
- },
- "motion": {
- "optional": true
- },
- "nprogress": {
- "optional": true
- },
- "nuqs": {
- "optional": true
- },
- "react-day-picker": {
- "optional": true
- },
- "react-dropzone": {
- "optional": true
- },
- "react-hook-form": {
- "optional": true
- },
- "react-leaflet": {
- "optional": true
- },
- "react-leaflet-markercluster": {
- "optional": true
- },
- "react-number-format": {
- "optional": true
- },
- "recharts": {
- "optional": true
- },
- "sonner": {
- "optional": true
- },
- "zod": {
- "optional": true
- }
- },
- "dependencies": {
- "@dnd-kit/utilities": "^3.2.2",
- "@radix-ui/react-avatar": "^1",
- "@radix-ui/react-checkbox": "^1",
- "@radix-ui/react-collapsible": "^1",
- "@radix-ui/react-dialog": "^1",
- "@radix-ui/react-dropdown-menu": "^2",
- "@radix-ui/react-hover-card": "^1",
- "@radix-ui/react-label": "^2",
- "@radix-ui/react-popover": "^1",
- "@radix-ui/react-radio-group": "^1",
- "@radix-ui/react-select": "^2",
- "@radix-ui/react-separator": "^1",
- "@radix-ui/react-slot": "^1",
- "@radix-ui/react-switch": "^1",
- "@radix-ui/react-tabs": "^1",
- "@radix-ui/react-tooltip": "^1",
- "@radix-ui/react-visually-hidden": "^1",
- "class-variance-authority": "^0.7.1",
- "clsx": "^2.1.1",
- "cmdk": "^1.1.1",
- "isomorphic-dompurify": "^3.12.0",
- "tailwind-merge": "^3.6.0",
- "tw-animate-css": "^1"
- },
- "devDependencies": {
- "@conform-to/react": "^1.19.2",
- "@conform-to/zod": "^1.19.2",
- "@dnd-kit/core": "^6.3.1",
- "@dnd-kit/sortable": "^10.0.0",
- "@hookform/resolvers": "^5.2.2",
- "@monaco-editor/react": "^4.7.0",
- "@repo/config": "workspace:*",
- "@repo/shadcn": "workspace:*",
- "@stepperize/react": "^6.1.0",
- "@tanstack/react-table": "^8.21.3",
- "@tanstack/react-virtual": "^3.13.24",
- "@testing-library/jest-dom": "^6",
- "@testing-library/react": "^16",
- "@testing-library/user-event": "^14",
- "@tiptap/extension-character-count": "^3.23.1",
- "@tiptap/extension-link": "^3.23.1",
- "@tiptap/extension-placeholder": "^3.23.1",
- "@tiptap/extension-underline": "^3.23.1",
- "@tiptap/react": "^3.23.1",
- "@tiptap/starter-kit": "^3.23.1",
- "@types/js-yaml": "^4.0.9",
- "@types/leaflet": "^1.9.21",
- "@types/leaflet-draw": "^1.0.13",
- "@types/leaflet.fullscreen": "^5.2.0",
- "@types/leaflet.markercluster": "^1.5.6",
- "@types/nprogress": "^0.2.3",
- "@types/react": "^19",
- "@types/react-dom": "^19",
- "date-fns": "^4.1.0",
- "date-fns-tz": "^3.2.0",
- "eslint": "^10.3.0",
- "js-yaml": "^4.1.1",
- "jsdom": "^29",
- "leaflet": "^1.9.4",
- "leaflet-draw": "^1.0.4",
- "leaflet.fullscreen": "^5.3.1",
- "leaflet.markercluster": "^1.5.3",
- "lucide-react": "^1.14",
- "monaco-editor": "^0.55.1",
- "motion": "^12.38.0",
- "nprogress": "^0.2.0",
- "nuqs": "^2.8.9",
- "react": "^19",
- "react-day-picker": "^9.14.0",
- "react-dom": "^19",
- "react-dropzone": "^15.0.0",
- "react-hook-form": "^7.75.0",
- "react-leaflet": "^5.0.0",
- "react-leaflet-markercluster": "5.0.0-rc.0",
- "react-number-format": "^5.4.5",
- "sonner": "^2.0.7",
- "tailwindcss": "^4.3.0",
- "tsdown": "^0.22.0",
- "typescript": "^6.0",
- "vitest": "^4",
- "zod": "^4.4.3"
- },
- "publishConfig": {
- "access": "public"
- }
-}
+{
+ "name": "@datum-cloud/datum-ui",
+ "type": "module",
+ "version": "0.10.1",
+ "packageManager": "pnpm@10.33.4",
+ "license": "MIT",
+ "repository": {
+ "url": "https://github.com/datum-cloud/datum-ui"
+ },
+ "sideEffects": [
+ "**/*.css"
+ ],
+ "exports": {
+ ".": {
+ "source": "./src/index.ts",
+ "types": "./dist/index.d.ts",
+ "default": "./dist/index.mjs"
+ },
+ "./styles": {
+ "style": "./dist/styles/root.css",
+ "default": "./dist/styles/root.css"
+ },
+ "./styles/canela": {
+ "style": "./dist/styles/canela.css",
+ "default": "./dist/styles/canela.css"
+ },
+ "./theme": {
+ "source": "./src/components/themes/index.ts",
+ "types": "./dist/components/themes/index.d.ts",
+ "default": "./dist/theme/index.mjs"
+ },
+ "./hooks": {
+ "source": "./src/hooks/index.ts",
+ "types": "./dist/hooks/index.d.ts",
+ "default": "./dist/hooks/index.mjs"
+ },
+ "./icons": {
+ "source": "./src/components/icons/index.ts",
+ "types": "./dist/components/icons/index.d.ts",
+ "default": "./dist/icons/index.mjs"
+ },
+ "./utils": {
+ "source": "./src/utils/index.ts",
+ "types": "./dist/utils/index.d.ts",
+ "default": "./dist/utils/index.mjs"
+ },
+ "./alert": {
+ "source": "./src/components/base/alert/index.ts",
+ "types": "./dist/components/base/alert/index.d.ts",
+ "default": "./dist/alert/index.mjs"
+ },
+ "./avatar": {
+ "source": "./src/components/base/avatar/index.ts",
+ "types": "./dist/components/base/avatar/index.d.ts",
+ "default": "./dist/avatar/index.mjs"
+ },
+ "./badge": {
+ "source": "./src/components/base/badge/index.ts",
+ "types": "./dist/components/base/badge/index.d.ts",
+ "default": "./dist/badge/index.mjs"
+ },
+ "./breadcrumb": {
+ "source": "./src/components/base/breadcrumb/index.ts",
+ "types": "./dist/components/base/breadcrumb/index.d.ts",
+ "default": "./dist/breadcrumb/index.mjs"
+ },
+ "./button": {
+ "source": "./src/components/base/button/index.tsx",
+ "types": "./dist/components/base/button/index.d.ts",
+ "default": "./dist/button/index.mjs"
+ },
+ "./button-group": {
+ "source": "./src/components/base/button-group/index.ts",
+ "types": "./dist/components/base/button-group/index.d.ts",
+ "default": "./dist/button-group/index.mjs"
+ },
+ "./calendar": {
+ "source": "./src/components/base/calendar/index.ts",
+ "types": "./dist/components/base/calendar/index.d.ts",
+ "default": "./dist/calendar/index.mjs"
+ },
+ "./card": {
+ "source": "./src/components/base/card/index.ts",
+ "types": "./dist/components/base/card/index.d.ts",
+ "default": "./dist/card/index.mjs"
+ },
+ "./chart": {
+ "source": "./src/components/base/chart/index.ts",
+ "types": "./dist/components/base/chart/index.d.ts",
+ "default": "./dist/chart/index.mjs"
+ },
+ "./code-editor": {
+ "source": "./src/components/features/code-editor/index.ts",
+ "types": "./dist/components/features/code-editor/index.d.ts",
+ "default": "./dist/code-editor/index.mjs"
+ },
+ "./checkbox": {
+ "source": "./src/components/base/checkbox/index.ts",
+ "types": "./dist/components/base/checkbox/index.d.ts",
+ "default": "./dist/checkbox/index.mjs"
+ },
+ "./collapsible": {
+ "source": "./src/components/base/collapsible/index.ts",
+ "types": "./dist/components/base/collapsible/index.d.ts",
+ "default": "./dist/collapsible/index.mjs"
+ },
+ "./command": {
+ "source": "./src/components/base/command/index.ts",
+ "types": "./dist/components/base/command/index.d.ts",
+ "default": "./dist/command/index.mjs"
+ },
+ "./dialog": {
+ "source": "./src/components/base/dialog/index.ts",
+ "types": "./dist/components/base/dialog/index.d.ts",
+ "default": "./dist/dialog/index.mjs"
+ },
+ "./hover-card": {
+ "source": "./src/components/base/hover-card/index.ts",
+ "types": "./dist/components/base/hover-card/index.d.ts",
+ "default": "./dist/hover-card/index.mjs"
+ },
+ "./input": {
+ "source": "./src/components/base/input/index.ts",
+ "types": "./dist/components/base/input/index.d.ts",
+ "default": "./dist/input/index.mjs"
+ },
+ "./input-group": {
+ "source": "./src/components/base/input-group/index.ts",
+ "types": "./dist/components/base/input-group/index.d.ts",
+ "default": "./dist/input-group/index.mjs"
+ },
+ "./label": {
+ "source": "./src/components/base/label/index.ts",
+ "types": "./dist/components/base/label/index.d.ts",
+ "default": "./dist/label/index.mjs"
+ },
+ "./popover": {
+ "source": "./src/components/base/popover/index.ts",
+ "types": "./dist/components/base/popover/index.d.ts",
+ "default": "./dist/popover/index.mjs"
+ },
+ "./radio-group": {
+ "source": "./src/components/base/radio-group/index.ts",
+ "types": "./dist/components/base/radio-group/index.d.ts",
+ "default": "./dist/radio-group/index.mjs"
+ },
+ "./responsive-dropdown": {
+ "source": "./src/components/base/responsive-dropdown/index.ts",
+ "types": "./dist/components/base/responsive-dropdown/index.d.ts",
+ "default": "./dist/responsive-dropdown/index.mjs"
+ },
+ "./responsive-popover": {
+ "source": "./src/components/base/responsive-popover/index.ts",
+ "types": "./dist/components/base/responsive-popover/index.d.ts",
+ "default": "./dist/responsive-popover/index.mjs"
+ },
+ "./rich-text-editor": {
+ "source": "./src/components/features/rich-text-editor/index.ts",
+ "types": "./dist/components/features/rich-text-editor/index.d.ts",
+ "default": "./dist/rich-text-editor/index.mjs"
+ },
+ "./select": {
+ "source": "./src/components/base/select/index.ts",
+ "types": "./dist/components/base/select/index.d.ts",
+ "default": "./dist/select/index.mjs"
+ },
+ "./separator": {
+ "source": "./src/components/base/separator/index.ts",
+ "types": "./dist/components/base/separator/index.d.ts",
+ "default": "./dist/separator/index.mjs"
+ },
+ "./sheet": {
+ "source": "./src/components/base/sheet/index.ts",
+ "types": "./dist/components/base/sheet/index.d.ts",
+ "default": "./dist/sheet/index.mjs"
+ },
+ "./skeleton": {
+ "source": "./src/components/base/skeleton/index.ts",
+ "types": "./dist/components/base/skeleton/index.d.ts",
+ "default": "./dist/skeleton/index.mjs"
+ },
+ "./spinner": {
+ "source": "./src/components/base/spinner/index.ts",
+ "types": "./dist/components/base/spinner/index.d.ts",
+ "default": "./dist/spinner/index.mjs"
+ },
+ "./switch": {
+ "source": "./src/components/base/switch/index.ts",
+ "types": "./dist/components/base/switch/index.d.ts",
+ "default": "./dist/switch/index.mjs"
+ },
+ "./table": {
+ "source": "./src/components/base/table/index.ts",
+ "types": "./dist/components/base/table/index.d.ts",
+ "default": "./dist/table/index.mjs"
+ },
+ "./tabs": {
+ "source": "./src/components/base/tabs/index.ts",
+ "types": "./dist/components/base/tabs/index.d.ts",
+ "default": "./dist/tabs/index.mjs"
+ },
+ "./textarea": {
+ "source": "./src/components/base/textarea/index.ts",
+ "types": "./dist/components/base/textarea/index.d.ts",
+ "default": "./dist/textarea/index.mjs"
+ },
+ "./tooltip": {
+ "source": "./src/components/base/tooltip/index.ts",
+ "types": "./dist/components/base/tooltip/index.d.ts",
+ "default": "./dist/tooltip/index.mjs"
+ },
+ "./typography": {
+ "source": "./src/components/base/typography/index.ts",
+ "types": "./dist/components/base/typography/index.d.ts",
+ "default": "./dist/typography/index.mjs"
+ },
+ "./visually-hidden": {
+ "source": "./src/components/base/visuallyhidden/index.ts",
+ "types": "./dist/components/base/visuallyhidden/index.d.ts",
+ "default": "./dist/visually-hidden/index.mjs"
+ },
+ "./autocomplete": {
+ "source": "./src/components/features/autocomplete/index.ts",
+ "types": "./dist/components/features/autocomplete/index.d.ts",
+ "default": "./dist/autocomplete/index.mjs"
+ },
+ "./autosearch": {
+ "source": "./src/components/features/autosearch/index.ts",
+ "types": "./dist/components/features/autosearch/index.d.ts",
+ "default": "./dist/autosearch/index.mjs"
+ },
+ "./avatar-stack": {
+ "source": "./src/components/features/avatar-stack/index.ts",
+ "types": "./dist/components/features/avatar-stack/index.d.ts",
+ "default": "./dist/avatar-stack/index.mjs"
+ },
+ "./date-picker": {
+ "source": "./src/components/features/date-picker/index.ts",
+ "types": "./dist/components/features/date-picker/index.d.ts",
+ "default": "./dist/date-picker/index.mjs"
+ },
+ "./dropdown": {
+ "source": "./src/components/features/dropdown/index.ts",
+ "types": "./dist/components/features/dropdown/index.d.ts",
+ "default": "./dist/dropdown/index.mjs"
+ },
+ "./dropzone": {
+ "source": "./src/components/features/dropzone/index.ts",
+ "types": "./dist/components/features/dropzone/index.d.ts",
+ "default": "./dist/dropzone/index.mjs"
+ },
+ "./empty-content": {
+ "source": "./src/components/features/empty-content/index.ts",
+ "types": "./dist/components/features/empty-content/index.d.ts",
+ "default": "./dist/empty-content/index.mjs"
+ },
+ "./form": {
+ "source": "./src/components/features/form/index.ts",
+ "types": "./dist/components/features/form/index.d.ts",
+ "default": "./dist/form/index.mjs"
+ },
+ "./form/adapters/conform": {
+ "source": "./src/components/features/form/adapters/conform/index.ts",
+ "types": "./dist/components/features/form/adapters/conform/index.d.ts",
+ "default": "./dist/form/adapters/conform/index.mjs"
+ },
+ "./form/adapters/rhf": {
+ "source": "./src/components/features/form/adapters/rhf/index.ts",
+ "types": "./dist/components/features/form/adapters/rhf/index.d.ts",
+ "default": "./dist/form/adapters/rhf/index.mjs"
+ },
+ "./form/stepper": {
+ "source": "./src/components/features/form/stepper/index.ts",
+ "types": "./dist/components/features/form/stepper/index.d.ts",
+ "default": "./dist/form/stepper/index.mjs"
+ },
+ "./grid": {
+ "types": "./dist/components/features/grid/index.d.ts",
+ "style": "./dist/grid/style.css",
+ "default": "./dist/grid/index.mjs"
+ },
+ "./input-number": {
+ "source": "./src/components/features/input-number/index.ts",
+ "types": "./dist/components/features/input-number/index.d.ts",
+ "default": "./dist/input-number/index.mjs"
+ },
+ "./input-with-addons": {
+ "source": "./src/components/features/input-with-addons/index.ts",
+ "types": "./dist/components/features/input-with-addons/index.d.ts",
+ "default": "./dist/input-with-addons/index.mjs"
+ },
+ "./loader-overlay": {
+ "source": "./src/components/features/loader-overlay/index.ts",
+ "types": "./dist/components/features/loader-overlay/index.d.ts",
+ "default": "./dist/loader-overlay/index.mjs"
+ },
+ "./map": {
+ "source": "./src/exports/map.ts",
+ "types": "./dist/exports/map.d.ts",
+ "default": "./dist/map/index.mjs"
+ },
+ "./mobile-sheet": {
+ "source": "./src/components/base/mobile-sheet/index.ts",
+ "types": "./dist/components/base/mobile-sheet/index.d.ts",
+ "default": "./dist/mobile-sheet/index.mjs"
+ },
+ "./more-actions": {
+ "source": "./src/components/features/more-actions/index.ts",
+ "types": "./dist/components/features/more-actions/index.d.ts",
+ "default": "./dist/more-actions/index.mjs"
+ },
+ "./nprogress": {
+ "types": "./dist/components/features/nprogress/index.d.ts",
+ "style": "./dist/nprogress/nprogress.css",
+ "default": "./dist/nprogress/index.mjs"
+ },
+ "./page-title": {
+ "source": "./src/components/features/page-title/index.ts",
+ "types": "./dist/components/features/page-title/index.d.ts",
+ "default": "./dist/page-title/index.mjs"
+ },
+ "./sidebar": {
+ "source": "./src/components/base/sidebar/index.ts",
+ "types": "./dist/components/base/sidebar/index.d.ts",
+ "default": "./dist/sidebar/index.mjs"
+ },
+ "./app-navigation": {
+ "source": "./src/components/features/app-navigation/index.ts",
+ "types": "./dist/components/features/app-navigation/index.d.ts",
+ "default": "./dist/app-navigation/index.mjs"
+ },
+ "./logo": {
+ "source": "./src/components/features/logo/index.ts",
+ "types": "./dist/components/features/logo/index.d.ts",
+ "default": "./dist/logo/index.mjs"
+ },
+ "./logo/themed": {
+ "source": "./src/components/features/logo/themed/index.ts",
+ "types": "./dist/components/features/logo/themed/index.d.ts",
+ "default": "./dist/logo/themed/index.mjs"
+ },
+ "./stepper": {
+ "source": "./src/components/features/stepper/index.ts",
+ "types": "./dist/components/features/stepper/index.d.ts",
+ "default": "./dist/stepper/index.mjs"
+ },
+ "./tag-input": {
+ "source": "./src/components/features/tag-input/index.ts",
+ "types": "./dist/components/features/tag-input/index.d.ts",
+ "default": "./dist/tag-input/index.mjs"
+ },
+ "./task-queue": {
+ "source": "./src/components/features/task-queue/index.ts",
+ "types": "./dist/components/features/task-queue/index.d.ts",
+ "default": "./dist/task-queue/index.mjs"
+ },
+ "./toast": {
+ "source": "./src/components/features/toast/index.ts",
+ "types": "./dist/components/features/toast/index.d.ts",
+ "default": "./dist/toast/index.mjs"
+ },
+ "./data-table": {
+ "source": "./src/components/features/data-table/index.ts",
+ "types": "./dist/components/features/data-table/index.d.ts",
+ "default": "./dist/data-table/index.mjs"
+ },
+ "./date-time-picker": {
+ "source": "./src/components/features/date-time-picker/index.ts",
+ "types": "./dist/components/features/date-time-picker/index.d.ts",
+ "default": "./dist/date-time-picker/index.mjs"
+ },
+ "./picker": {
+ "source": "./src/components/features/picker/index.ts",
+ "types": "./dist/components/features/picker/index.d.ts",
+ "default": "./dist/picker/index.mjs"
+ },
+ "./time-picker": {
+ "source": "./src/components/features/time-picker/index.ts",
+ "types": "./dist/components/features/time-picker/index.d.ts",
+ "default": "./dist/time-picker/index.mjs"
+ },
+ "./transfer": {
+ "source": "./src/components/features/transfer/index.ts",
+ "types": "./dist/components/features/transfer/index.d.ts",
+ "default": "./dist/transfer/index.mjs"
+ },
+ "./multi-select": {
+ "source": "./src/components/features/multi-select/index.ts",
+ "types": "./dist/components/features/multi-select/index.d.ts",
+ "default": "./dist/multi-select/index.mjs"
+ }
+ },
+ "main": "./dist/index.mjs",
+ "module": "./dist/index.mjs",
+ "types": "./dist/index.d.ts",
+ "files": [
+ "LICENSE",
+ "README.md",
+ "dist"
+ ],
+ "scripts": {
+ "build": "tsdown --config-loader native && tsc -p tsconfig.build.json && node scripts/fix-dts-imports.mjs && node scripts/copy-styles.mjs",
+ "dev": "tsdown --config-loader native --watch",
+ "lint": "eslint .",
+ "typecheck": "tsc --noEmit",
+ "test": "vitest run",
+ "test:watch": "vitest",
+ "test:coverage": "vitest run --coverage",
+ "clean": "rm -rf dist .turbo node_modules coverage",
+ "prepack": "node scripts/strip-workspace-deps.mjs --strip",
+ "postpublish": "node scripts/strip-workspace-deps.mjs --restore"
+ },
+ "peerDependencies": {
+ "@conform-to/react": ">=1",
+ "@conform-to/zod": ">=1",
+ "@dnd-kit/core": ">=6",
+ "@dnd-kit/sortable": ">=8",
+ "@hookform/resolvers": ">=5.2.2",
+ "@monaco-editor/react": "^4.7.0",
+ "@stepperize/react": ">=4",
+ "@tanstack/react-table": ">=8",
+ "@tanstack/react-virtual": ">=3",
+ "@tiptap/extension-character-count": ">=3",
+ "@tiptap/extension-link": ">=3",
+ "@tiptap/extension-placeholder": ">=3",
+ "@tiptap/extension-underline": ">=3",
+ "@tiptap/react": ">=3",
+ "@tiptap/starter-kit": ">=3",
+ "date-fns": ">=4.1.0",
+ "date-fns-tz": ">=3",
+ "js-yaml": "^4.1.1",
+ "leaflet": ">=1.9",
+ "leaflet-draw": ">=1",
+ "leaflet.fullscreen": ">=5",
+ "leaflet.markercluster": ">=1.5",
+ "lucide-react": ">=0.400",
+ "monaco-editor": ">=0.44.0",
+ "motion": ">=11",
+ "nprogress": ">=0.2",
+ "nuqs": ">=2",
+ "react": ">=19",
+ "react-day-picker": ">=9",
+ "react-dom": ">=19",
+ "react-dropzone": ">=14",
+ "react-hook-form": ">=7.55",
+ "react-leaflet": ">=5",
+ "react-leaflet-markercluster": ">=5.0.0-rc.0",
+ "react-number-format": ">=5",
+ "recharts": ">=2",
+ "sonner": ">=2",
+ "zod": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "@conform-to/react": {
+ "optional": true
+ },
+ "@conform-to/zod": {
+ "optional": true
+ },
+ "@dnd-kit/core": {
+ "optional": true
+ },
+ "@dnd-kit/sortable": {
+ "optional": true
+ },
+ "@hookform/resolvers": {
+ "optional": true
+ },
+ "@monaco-editor/react": {
+ "optional": true
+ },
+ "@stepperize/react": {
+ "optional": true
+ },
+ "@tanstack/react-table": {
+ "optional": true
+ },
+ "@tanstack/react-virtual": {
+ "optional": true
+ },
+ "@tiptap/extension-character-count": {
+ "optional": true
+ },
+ "@tiptap/extension-link": {
+ "optional": true
+ },
+ "@tiptap/extension-placeholder": {
+ "optional": true
+ },
+ "@tiptap/extension-underline": {
+ "optional": true
+ },
+ "@tiptap/react": {
+ "optional": true
+ },
+ "@tiptap/starter-kit": {
+ "optional": true
+ },
+ "date-fns": {
+ "optional": true
+ },
+ "date-fns-tz": {
+ "optional": true
+ },
+ "js-yaml": {
+ "optional": true
+ },
+ "leaflet": {
+ "optional": true
+ },
+ "leaflet-draw": {
+ "optional": true
+ },
+ "leaflet.fullscreen": {
+ "optional": true
+ },
+ "leaflet.markercluster": {
+ "optional": true
+ },
+ "lucide-react": {},
+ "monaco-editor": {
+ "optional": true
+ },
+ "motion": {
+ "optional": true
+ },
+ "nprogress": {
+ "optional": true
+ },
+ "nuqs": {
+ "optional": true
+ },
+ "react-day-picker": {
+ "optional": true
+ },
+ "react-dropzone": {
+ "optional": true
+ },
+ "react-hook-form": {
+ "optional": true
+ },
+ "react-leaflet": {
+ "optional": true
+ },
+ "react-leaflet-markercluster": {
+ "optional": true
+ },
+ "react-number-format": {
+ "optional": true
+ },
+ "recharts": {
+ "optional": true
+ },
+ "sonner": {
+ "optional": true
+ },
+ "zod": {
+ "optional": true
+ }
+ },
+ "dependencies": {
+ "@dnd-kit/utilities": "^3.2.2",
+ "@radix-ui/react-avatar": "^1",
+ "@radix-ui/react-checkbox": "^1",
+ "@radix-ui/react-collapsible": "^1",
+ "@radix-ui/react-dialog": "^1",
+ "@radix-ui/react-dropdown-menu": "^2",
+ "@radix-ui/react-hover-card": "^1",
+ "@radix-ui/react-label": "^2",
+ "@radix-ui/react-popover": "^1",
+ "@radix-ui/react-radio-group": "^1",
+ "@radix-ui/react-select": "^2",
+ "@radix-ui/react-separator": "^1",
+ "@radix-ui/react-slot": "^1",
+ "@radix-ui/react-switch": "^1",
+ "@radix-ui/react-tabs": "^1",
+ "@radix-ui/react-tooltip": "^1",
+ "@radix-ui/react-visually-hidden": "^1",
+ "class-variance-authority": "^0.7.1",
+ "clsx": "^2.1.1",
+ "cmdk": "^1.1.1",
+ "isomorphic-dompurify": "^3.12.0",
+ "tailwind-merge": "^3.6.0",
+ "tw-animate-css": "^1"
+ },
+ "devDependencies": {
+ "@conform-to/react": "^1.19.2",
+ "@conform-to/zod": "^1.19.2",
+ "@dnd-kit/core": "^6.3.1",
+ "@dnd-kit/sortable": "^10.0.0",
+ "@hookform/resolvers": "^5.2.2",
+ "@monaco-editor/react": "^4.7.0",
+ "@repo/config": "workspace:*",
+ "@repo/shadcn": "workspace:*",
+ "@stepperize/react": "^6.1.0",
+ "@tanstack/react-table": "^8.21.3",
+ "@tanstack/react-virtual": "^3.13.24",
+ "@testing-library/jest-dom": "^6",
+ "@testing-library/react": "^16",
+ "@testing-library/user-event": "^14",
+ "@tiptap/extension-character-count": "^3.23.1",
+ "@tiptap/extension-link": "^3.23.1",
+ "@tiptap/extension-placeholder": "^3.23.1",
+ "@tiptap/extension-underline": "^3.23.1",
+ "@tiptap/react": "^3.23.1",
+ "@tiptap/starter-kit": "^3.23.1",
+ "@types/js-yaml": "^4.0.9",
+ "@types/leaflet": "^1.9.21",
+ "@types/leaflet-draw": "^1.0.13",
+ "@types/leaflet.fullscreen": "^5.2.0",
+ "@types/leaflet.markercluster": "^1.5.6",
+ "@types/nprogress": "^0.2.3",
+ "@types/react": "^19",
+ "@types/react-dom": "^19",
+ "date-fns": "^4.1.0",
+ "date-fns-tz": "^3.2.0",
+ "eslint": "^10.3.0",
+ "js-yaml": "^4.1.1",
+ "jsdom": "^29",
+ "leaflet": "^1.9.4",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.fullscreen": "^5.3.1",
+ "leaflet.markercluster": "^1.5.3",
+ "lucide-react": "^1.14",
+ "monaco-editor": "^0.55.1",
+ "motion": "^12.38.0",
+ "nprogress": "^0.2.0",
+ "nuqs": "^2.8.9",
+ "react": "^19",
+ "react-day-picker": "^10.0.1",
+ "react-dom": "^19",
+ "react-dropzone": "^15.0.0",
+ "react-hook-form": "^7.75.0",
+ "react-leaflet": "^5.0.0",
+ "react-leaflet-markercluster": "5.0.0-rc.0",
+ "react-number-format": "^5.4.5",
+ "sonner": "^2.0.7",
+ "tailwindcss": "^4.3.0",
+ "tsdown": "^0.22.0",
+ "typescript": "^6.0",
+ "vitest": "^4",
+ "zod": "^4.4.3"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/packages/datum-ui/src/components/base/calendar/calendar.tsx b/packages/datum-ui/src/components/base/calendar/calendar.tsx
index 9682cde..12f6dd0 100644
--- a/packages/datum-ui/src/components/base/calendar/calendar.tsx
+++ b/packages/datum-ui/src/components/base/calendar/calendar.tsx
@@ -1,183 +1,183 @@
-import type { DayButton } from 'react-day-picker'
-import { Button, buttonVariants } from '@repo/shadcn/ui/button'
-import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'
-import * as React from 'react'
-import { DayPicker, getDefaultClassNames } from 'react-day-picker'
-import { cn } from '../../../utils/cn'
-import { Icon } from '../../icons/icon-wrapper'
-
-function CalendarRoot({ className, rootRef, ...props }: any) {
- return
-}
-
-function CalendarChevron({ className, orientation, ...props }: any) {
- if (orientation === 'left') {
- return
- }
-
- if (orientation === 'right') {
- return
- }
-
- return
-}
-
-function CalendarWeekNumber({ children, ...props }: any) {
- return (
-
-
- {children}
-
- |
- )
-}
-
-function Calendar({
- className,
- classNames,
- showOutsideDays = true,
- captionLayout = 'label',
- buttonVariant = 'ghost',
- formatters,
- components,
- ...props
-}: React.ComponentProps & {
- buttonVariant?: React.ComponentProps['variant']
-}) {
- const defaultClassNames = getDefaultClassNames()
-
- return (
- svg]:rotate-180`,
- String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
- className,
- )}
- captionLayout={captionLayout}
- formatters={{
- formatMonthDropdown: date => date.toLocaleString('default', { month: 'short' }),
- ...formatters,
- }}
- classNames={{
- root: cn('w-fit', defaultClassNames.root),
- months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),
- month: cn('flex flex-col w-full gap-4', defaultClassNames.month),
- nav: cn(
- 'flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between',
- defaultClassNames.nav,
- ),
- button_previous: cn(
- buttonVariants({ variant: buttonVariant }),
- 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',
- defaultClassNames.button_previous,
- ),
- button_next: cn(
- buttonVariants({ variant: buttonVariant }),
- 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',
- defaultClassNames.button_next,
- ),
- month_caption: cn(
- 'flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)',
- defaultClassNames.month_caption,
- ),
- dropdowns: cn(
- 'w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5',
- defaultClassNames.dropdowns,
- ),
- dropdown_root: cn(
- 'relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md',
- defaultClassNames.dropdown_root,
- ),
- dropdown: cn('absolute bg-popover inset-0 opacity-0', defaultClassNames.dropdown),
- caption_label: cn(
- 'select-none font-medium',
- captionLayout === 'label'
- ? 'text-sm'
- : 'rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5',
- defaultClassNames.caption_label,
- ),
- table: 'w-full border-collapse',
- weekdays: cn('flex', defaultClassNames.weekdays),
- weekday: cn(
- 'text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none',
- defaultClassNames.weekday,
- ),
- week: cn('flex w-full mt-2', defaultClassNames.week),
- week_number_header: cn('select-none w-(--cell-size)', defaultClassNames.week_number_header),
- week_number: cn(
- 'text-[0.8rem] select-none text-muted-foreground',
- defaultClassNames.week_number,
- ),
- day: cn(
- 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none',
- defaultClassNames.day,
- ),
- range_start: cn('rounded-l-md bg-primary/10', defaultClassNames.range_start),
- range_middle: cn('rounded-none bg-primary/10', defaultClassNames.range_middle),
- range_end: cn('rounded-r-md bg-primary/10', defaultClassNames.range_end),
- today: cn(
- 'bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none',
- defaultClassNames.today,
- ),
- outside: cn(
- 'text-muted-foreground aria-selected:text-muted-foreground',
- defaultClassNames.outside,
- ),
- disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),
- hidden: cn('invisible', defaultClassNames.hidden),
- ...classNames,
- }}
- components={{
- Root: CalendarRoot,
- Chevron: CalendarChevron,
- DayButton: CalendarDayButton,
- WeekNumber: CalendarWeekNumber,
- ...components,
- }}
- {...props}
- />
- )
-}
-
-function CalendarDayButton({
- className,
- day,
- modifiers,
- ...props
-}: React.ComponentProps) {
- const defaultClassNames = getDefaultClassNames()
-
- const ref = React.useRef(null)
- React.useEffect(() => {
- if (modifiers.focused)
- ref.current?.focus()
- }, [modifiers.focused])
-
- return (
-