@datum-cloud/datum-ui 0.5.0 → 0.6.0-alpha.b817c77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +75 -40
  2. package/dist/adapter-context-B7L2ucTr.mjs +25 -0
  3. package/dist/components/features/form/adapter-context.d.ts +17 -0
  4. package/dist/components/features/form/adapter-context.d.ts.map +1 -0
  5. package/dist/components/features/form/adapter-types.d.ts +100 -0
  6. package/dist/components/features/form/adapter-types.d.ts.map +1 -0
  7. package/dist/components/features/form/adapters/conform/conform-adapter.d.ts +9 -0
  8. package/dist/components/features/form/adapters/conform/conform-adapter.d.ts.map +1 -0
  9. package/dist/components/features/form/adapters/conform/conform-provider.d.ts +22 -0
  10. package/dist/components/features/form/adapters/conform/conform-provider.d.ts.map +1 -0
  11. package/dist/components/features/form/adapters/conform/index.d.ts +3 -0
  12. package/dist/components/features/form/adapters/conform/index.d.ts.map +1 -0
  13. package/dist/components/features/form/adapters/rhf/index.d.ts +3 -0
  14. package/dist/components/features/form/adapters/rhf/index.d.ts.map +1 -0
  15. package/dist/components/features/form/adapters/rhf/rhf-adapter.d.ts +10 -0
  16. package/dist/components/features/form/adapters/rhf/rhf-adapter.d.ts.map +1 -0
  17. package/dist/components/features/form/adapters/rhf/rhf-provider.d.ts +22 -0
  18. package/dist/components/features/form/adapters/rhf/rhf-provider.d.ts.map +1 -0
  19. package/dist/components/features/form/components/form-autocomplete.d.ts.map +1 -1
  20. package/dist/components/features/form/components/form-checkbox.d.ts.map +1 -1
  21. package/dist/components/features/form/components/form-copy-box.d.ts.map +1 -1
  22. package/dist/components/features/form/components/form-field-array.d.ts +5 -17
  23. package/dist/components/features/form/components/form-field-array.d.ts.map +1 -1
  24. package/dist/components/features/form/components/form-field.d.ts +7 -21
  25. package/dist/components/features/form/components/form-field.d.ts.map +1 -1
  26. package/dist/components/features/form/components/form-input-group.d.ts +4 -4
  27. package/dist/components/features/form/components/form-input-group.d.ts.map +1 -1
  28. package/dist/components/features/form/components/form-input.d.ts.map +1 -1
  29. package/dist/components/features/form/components/form-radio-group.d.ts.map +1 -1
  30. package/dist/components/features/form/components/form-root.d.ts +5 -25
  31. package/dist/components/features/form/components/form-root.d.ts.map +1 -1
  32. package/dist/components/features/form/components/form-select.d.ts.map +1 -1
  33. package/dist/components/features/form/components/form-switch.d.ts.map +1 -1
  34. package/dist/components/features/form/components/form-textarea.d.ts.map +1 -1
  35. package/dist/components/features/form/components/stepper/form-stepper.d.ts.map +1 -1
  36. package/dist/components/features/form/context/form-context.d.ts +2 -2
  37. package/dist/components/features/form/context/form-context.d.ts.map +1 -1
  38. package/dist/components/features/form/hooks/use-field.d.ts +12 -18
  39. package/dist/components/features/form/hooks/use-field.d.ts.map +1 -1
  40. package/dist/components/features/form/hooks/use-watch.d.ts +9 -20
  41. package/dist/components/features/form/hooks/use-watch.d.ts.map +1 -1
  42. package/dist/components/features/form/index.d.ts +33 -27
  43. package/dist/components/features/form/index.d.ts.map +1 -1
  44. package/dist/components/features/form/types/index.d.ts +32 -32
  45. package/dist/components/features/form/types/index.d.ts.map +1 -1
  46. package/dist/components/features/form/utils/get-field-constraints.d.ts +11 -0
  47. package/dist/components/features/form/utils/get-field-constraints.d.ts.map +1 -0
  48. package/dist/date-picker/index.mjs +1 -1
  49. package/dist/form/adapters/conform/index.mjs +237 -0
  50. package/dist/form/adapters/rhf/index.mjs +181 -0
  51. package/dist/form/index.mjs +3 -2
  52. package/dist/{form-Co3fM4B7.mjs → form-BE1xBne4.mjs} +328 -579
  53. package/dist/get-field-constraints-BPMW8VvY.mjs +48 -0
  54. package/dist/grid/index.mjs +1 -1
  55. package/dist/hooks/index.mjs +1 -1
  56. package/dist/index.mjs +12 -11
  57. package/dist/input-number/index.mjs +1 -1
  58. package/dist/map/index.mjs +1 -1
  59. package/dist/{map-ClxB41Hg.mjs → map-Cw7u8r6E.mjs} +1 -1
  60. package/dist/more-actions/index.mjs +1 -1
  61. package/dist/page-title/index.mjs +1 -1
  62. package/dist/tag-input/index.mjs +1 -1
  63. package/dist/task-queue/index.mjs +1 -1
  64. package/package.json +22 -2
  65. /package/dist/{col-q-J99UHe.mjs → col-YBbQ5wlb.mjs} +0 -0
  66. /package/dist/{hooks-Cb7YlxN4.mjs → hooks-DYjN7lvC.mjs} +0 -0
  67. /package/dist/{input-number-mDB-5M5C.mjs → input-number-DEjXG2I6.mjs} +0 -0
  68. /package/dist/{map-leaflet-imports-CaMm_rdF.mjs → map-leaflet-imports-D6nTEOIh.mjs} +0 -0
  69. /package/dist/{more-actions-CGagbIDT.mjs → more-actions-BNQ2yfWZ.mjs} +0 -0
  70. /package/dist/{page-title-R7QbfbWp.mjs → page-title-CNiRNZ7p.mjs} +0 -0
  71. /package/dist/{tag-input-BVSwNcRd.mjs → tag-input-BKed-cul.mjs} +0 -0
  72. /package/dist/{task-queue-dropdown-DyM5R8KF.mjs → task-queue-dropdown-Di_Wjspz.mjs} +0 -0
  73. /package/dist/{to-api-format-BnbRFYQI.mjs → to-api-format-Cq4prffn.mjs} +0 -0
@@ -0,0 +1,48 @@
1
+ //#region src/components/features/form/utils/get-field-constraints.ts
2
+ /**
3
+ * Extract field-level constraints from a Zod schema.
4
+ * Works with ZodObject, ZodIntersection (from .and()), and ZodPipe (from .transform()).
5
+ * Used by both Conform and RHF adapters to determine required fields.
6
+ */
7
+ function getFieldConstraints(schema) {
8
+ const shape = getObjectShape(schema);
9
+ if (!shape) return {};
10
+ const constraints = {};
11
+ for (const [key, fieldSchema] of Object.entries(shape)) constraints[key] = { required: isRequired(fieldSchema) };
12
+ return constraints;
13
+ }
14
+ /**
15
+ * Extract the shape from a ZodObject, ZodIntersection, or ZodPipe.
16
+ * Uses Zod v4's `def.type` discriminant.
17
+ *
18
+ * In Zod v4:
19
+ * - `.refine()` / `.superRefine()` on ZodObject return the same ZodObject (def.type = 'object')
20
+ * - `.transform()` wraps in ZodPipe (def.type = 'pipe', with def.in / def.out)
21
+ * - `.and()` creates ZodIntersection (def.type = 'intersection', with def.left / def.right)
22
+ */
23
+ function getObjectShape(schema) {
24
+ const { def } = schema;
25
+ if (def.type === "object") return schema.shape;
26
+ if (def.type === "intersection") {
27
+ const intersectionDef = def;
28
+ const leftShape = getObjectShape(intersectionDef.left);
29
+ const rightShape = getObjectShape(intersectionDef.right);
30
+ return {
31
+ ...leftShape,
32
+ ...rightShape
33
+ };
34
+ }
35
+ if (def.type === "pipe") return getObjectShape(def.in);
36
+ return null;
37
+ }
38
+ /**
39
+ * Determine if a Zod field type is required.
40
+ * Optional, nullable, and default-wrapped types are not required.
41
+ */
42
+ function isRequired(schema) {
43
+ const { type } = schema.def;
44
+ if (type === "optional" || type === "nullable" || type === "default") return false;
45
+ return true;
46
+ }
47
+ //#endregion
48
+ export { getFieldConstraints as t };
@@ -1,2 +1,2 @@
1
- import { a as getResponsiveValue, c as GRID_COLUMNS, d as RESPONSIVE_MAP, i as getGutter, l as GRID_PREFIX, n as Row, o as registerMediaQuery, r as RowContext, s as GRID_BREAKPOINTS, t as Col, u as RESPONSIVE_ARRAY } from "../col-q-J99UHe.mjs";
1
+ import { a as getResponsiveValue, c as GRID_COLUMNS, d as RESPONSIVE_MAP, i as getGutter, l as GRID_PREFIX, n as Row, o as registerMediaQuery, r as RowContext, s as GRID_BREAKPOINTS, t as Col, u as RESPONSIVE_ARRAY } from "../col-YBbQ5wlb.mjs";
2
2
  export { Col, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, RESPONSIVE_ARRAY, RESPONSIVE_MAP, Row, RowContext, getGutter, getResponsiveValue, registerMediaQuery };
@@ -1,3 +1,3 @@
1
1
  import { t as useCopyToClipboard } from "../use-copy-to-clipboard-BGdTmkFV.mjs";
2
- import { t as useDebounce } from "../hooks-Cb7YlxN4.mjs";
2
+ import { t as useDebounce } from "../hooks-DYjN7lvC.mjs";
3
3
  export { useCopyToClipboard, useDebounce };
package/dist/index.mjs CHANGED
@@ -21,7 +21,7 @@ import { n as HoverCardContent, r as HoverCardTrigger, t as HoverCard } from "./
21
21
  import { t as Input } from "./input-FKGqZypx.mjs";
22
22
  import { a as InputGroupText, i as InputGroupInput, n as InputGroupAddon, o as InputGroupTextarea, r as InputGroupButton, t as InputGroup } from "./input-group-DDtz-RT7.mjs";
23
23
  import { t as Label } from "./label-cnAhY-ej.mjs";
24
- import { A as useLeaflet, C as MapPolyline, D as MapTileLayer, E as MapSearchControl, O as MapTooltip, S as MapPolygon, T as MapRectangle, _ as MapLayers, a as MapDrawCircle, b as MapMarker, c as MapDrawEdit, d as MapDrawPolyline, f as MapDrawRectangle, g as MapLayerGroup, h as MapFullscreenControl, i as MapControlContainer, j as PlaceAutocomplete, k as MapZoomControl, l as MapDrawMarker, m as MapFeatureGroup, n as MapCircle, o as MapDrawControl, p as MapDrawUndo, r as MapCircleMarker, s as MapDrawDelete, t as Map, u as MapDrawPolygon, v as MapLayersControl, w as MapPopup, x as MapMarkerClusterGroup, y as MapLocateControl } from "./map-ClxB41Hg.mjs";
24
+ import { A as useLeaflet, C as MapPolyline, D as MapTileLayer, E as MapSearchControl, O as MapTooltip, S as MapPolygon, T as MapRectangle, _ as MapLayers, a as MapDrawCircle, b as MapMarker, c as MapDrawEdit, d as MapDrawPolyline, f as MapDrawRectangle, g as MapLayerGroup, h as MapFullscreenControl, i as MapControlContainer, j as PlaceAutocomplete, k as MapZoomControl, l as MapDrawMarker, m as MapFeatureGroup, n as MapCircle, o as MapDrawControl, p as MapDrawUndo, r as MapCircleMarker, s as MapDrawDelete, t as Map, u as MapDrawPolygon, v as MapLayersControl, w as MapPopup, x as MapMarkerClusterGroup, y as MapLocateControl } from "./map-Cw7u8r6E.mjs";
25
25
  import { t as Spinner } from "./spinner-OyOf9-Yu.mjs";
26
26
  import { i as PopoverTrigger, n as PopoverAnchor, r as PopoverContent, t as Popover } from "./popover-FJAcbYoH.mjs";
27
27
  import { n as RadioGroupItem, t as RadioGroup } from "./radio-group-CiITR0LO.mjs";
@@ -49,18 +49,19 @@ import { n as Toaster, t as useToast } from "./toast-DpxlFNNx.mjs";
49
49
  import { a as DropdownMenuItem, c as DropdownMenuRadioGroup, d as DropdownMenuShortcut, f as DropdownMenuSub, h as DropdownMenuTrigger, i as DropdownMenuGroup, l as DropdownMenuRadioItem, m as DropdownMenuSubTrigger, n as DropdownMenuCheckboxItem, o as DropdownMenuLabel, p as DropdownMenuSubContent, r as DropdownMenuContent, s as DropdownMenuPortal, t as DropdownMenu, u as DropdownMenuSeparator } from "./dropdown-DZiAt-jS.mjs";
50
50
  import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "./dropzone-ogtpQ4fy.mjs";
51
51
  import { t as EmptyContent } from "./empty-content-C63GPJ5d.mjs";
52
- import { A as FormButton, C as FormField, D as FormCustom, E as FormDescription, O as FormCopyBox, S as FormFieldArray, T as FormDialog, _ as FormSelectItem, a as useField, b as FormRadioItem, c as FormStep, d as useWatch, f as useWatchAll, g as FormSelect, h as FormSubmit, i as useFieldContext, j as FormAutocomplete, k as FormCheckbox, l as FormStepper, m as FormSwitch, n as useStepper, o as StepperNavigation, p as FormTextarea, r as useFormContext, s as StepperControls, t as Form, u as FormWhen, v as FormRoot, w as FormError, x as FormInput, y as FormRadioGroup } from "./form-Co3fM4B7.mjs";
52
+ import { A as FormButton, C as FormField, D as FormCustom, E as FormDescription, O as FormCopyBox, S as FormFieldArray, T as FormDialog, _ as FormSelectItem, a as useField, b as FormRadioItem, c as FormStep, d as useWatch, f as useWatchAll, g as FormSelect, h as FormSubmit, i as useFieldContext, j as FormAutocomplete, k as FormCheckbox, l as FormStepper, m as FormSwitch, n as useStepper, o as StepperNavigation, p as FormTextarea, r as useFormContext, s as StepperControls, t as Form, u as FormWhen, v as FormRoot, w as FormError, x as FormInput, y as FormRadioGroup } from "./form-BE1xBne4.mjs";
53
53
  import { t as useCopyToClipboard } from "./use-copy-to-clipboard-BGdTmkFV.mjs";
54
+ import { n as useAdapter, t as FormAdapterProvider } from "./adapter-context-B7L2ucTr.mjs";
54
55
  import { defineStepper } from "./stepper/index.mjs";
55
56
  import { InputWithAddons } from "./input-with-addons/index.mjs";
56
- import { a as getResponsiveValue, c as GRID_COLUMNS, d as RESPONSIVE_MAP, i as getGutter, l as GRID_PREFIX, n as Row, o as registerMediaQuery, r as RowContext, s as GRID_BREAKPOINTS, t as Col, u as RESPONSIVE_ARRAY } from "./col-q-J99UHe.mjs";
57
- import { t as InputNumber } from "./input-number-mDB-5M5C.mjs";
58
- import { t as MoreActions } from "./more-actions-CGagbIDT.mjs";
57
+ import { a as getResponsiveValue, c as GRID_COLUMNS, d as RESPONSIVE_MAP, i as getGutter, l as GRID_PREFIX, n as Row, o as registerMediaQuery, r as RowContext, s as GRID_BREAKPOINTS, t as Col, u as RESPONSIVE_ARRAY } from "./col-YBbQ5wlb.mjs";
58
+ import { t as InputNumber } from "./input-number-DEjXG2I6.mjs";
59
+ import { t as MoreActions } from "./more-actions-BNQ2yfWZ.mjs";
59
60
  import { configureProgress, startProgress, stopProgress } from "./nprogress/index.mjs";
60
- import { t as PageTitle } from "./page-title-R7QbfbWp.mjs";
61
- import { t as TagsInput } from "./tag-input-BVSwNcRd.mjs";
62
- import { _ as RedisTaskStorage, a as TaskPanelItem, b as createProjectMetadata, c as TaskPanelHeader, d as useCurrentScope, f as useTasksWithLabels, g as detectStorage, h as TaskQueue, i as TaskPanel, l as getContextLabel, m as TaskQueueProvider, n as TaskSummaryDialog, o as TaskPanelCounter, p as useTaskQueue, r as TaskQueueTrigger, s as TaskPanelActions, t as TaskQueueDropdown, u as matchesCurrentScope, v as LocalTaskStorage, x as createUserMetadata, y as createOrgMetadata } from "./task-queue-dropdown-DyM5R8KF.mjs";
63
- import { C as utcToLocalInputString, S as utcStringToZonedDate, _ as getBrowserTimezone, a as formatTimeRangeDisplay, b as getTimezoneOffset, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as formatUtcForDisplay, h as formatTimezoneLabel, i as formatSingleTimeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as TimeRangePicker, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatDateForInput, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as getDefaultTimezoneOptions, w as zonedDateToUtcString, x as localInputStringToUtc, y as getShortTimezoneDisplay } from "./to-api-format-BnbRFYQI.mjs";
64
- import { t as useDebounce } from "./hooks-Cb7YlxN4.mjs";
61
+ import { t as PageTitle } from "./page-title-CNiRNZ7p.mjs";
62
+ import { t as TagsInput } from "./tag-input-BKed-cul.mjs";
63
+ import { _ as RedisTaskStorage, a as TaskPanelItem, b as createProjectMetadata, c as TaskPanelHeader, d as useCurrentScope, f as useTasksWithLabels, g as detectStorage, h as TaskQueue, i as TaskPanel, l as getContextLabel, m as TaskQueueProvider, n as TaskSummaryDialog, o as TaskPanelCounter, p as useTaskQueue, r as TaskQueueTrigger, s as TaskPanelActions, t as TaskQueueDropdown, u as matchesCurrentScope, v as LocalTaskStorage, x as createUserMetadata, y as createOrgMetadata } from "./task-queue-dropdown-Di_Wjspz.mjs";
64
+ import { C as utcToLocalInputString, S as utcStringToZonedDate, _ as getBrowserTimezone, a as formatTimeRangeDisplay, b as getTimezoneOffset, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as formatUtcForDisplay, h as formatTimezoneLabel, i as formatSingleTimeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as TimeRangePicker, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatDateForInput, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as getDefaultTimezoneOptions, w as zonedDateToUtcString, x as localInputStringToUtc, y as getShortTimezoneDisplay } from "./to-api-format-Cq4prffn.mjs";
65
+ import { t as useDebounce } from "./hooks-DYjN7lvC.mjs";
65
66
  import "./utils/index.mjs";
66
- export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Avatar, AvatarFallback, AvatarImage, AvatarStack, Badge, Blockquote, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDatePicker, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, ClientOnly, CloseIcon, Code, CodeEditor, CodeEditorTabs, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_PRESETS, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EmptyContent, FileInputButton, Form, FormAutocomplete, FormButton, FormCheckbox, FormCopyBox, FormCustom, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormStep, FormStepper, FormSubmit, FormSwitch, FormTextarea, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, HoverCard, HoverCardContent, HoverCardTrigger, Icon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, MoreActions, NavMenu, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, Row, RowContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, SpinnerIcon, StepperControls, StepperNavigation, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger, TagsInput, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, Text, Textarea, ThemeProvider, ThemeScript, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createOrgMetadata, createProjectMetadata, createTimezoneOption, createUserMetadata, defineStepper, detectStorage, formatDateForInput, formatJson, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimezoneOffset, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, matchesCurrentScope, paragraphVariants, registerMediaQuery, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toast, useCopyToClipboard, useCurrentScope, useDebounce, useField, useFieldContext, useFormContext, useLeaflet, useSidebar, useStepper, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
67
+ export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Avatar, AvatarFallback, AvatarImage, AvatarStack, Badge, Blockquote, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDatePicker, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, ClientOnly, CloseIcon, Code, CodeEditor, CodeEditorTabs, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_PRESETS, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EmptyContent, FileInputButton, Form, FormAdapterProvider, FormAutocomplete, FormButton, FormCheckbox, FormCopyBox, FormCustom, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormStep, FormStepper, FormSubmit, FormSwitch, FormTextarea, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, HoverCard, HoverCardContent, HoverCardTrigger, Icon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, MoreActions, NavMenu, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, Row, RowContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, SpinnerIcon, StepperControls, StepperNavigation, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger, TagsInput, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, Text, Textarea, ThemeProvider, ThemeScript, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createOrgMetadata, createProjectMetadata, createTimezoneOption, createUserMetadata, defineStepper, detectStorage, formatDateForInput, formatJson, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimezoneOffset, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, matchesCurrentScope, paragraphVariants, registerMediaQuery, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toast, useAdapter, useCopyToClipboard, useCurrentScope, useDebounce, useField, useFieldContext, useFormContext, useLeaflet, useSidebar, useStepper, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
@@ -1,2 +1,2 @@
1
- import { t as InputNumber } from "../input-number-mDB-5M5C.mjs";
1
+ import { t as InputNumber } from "../input-number-DEjXG2I6.mjs";
2
2
  export { InputNumber };
@@ -1,2 +1,2 @@
1
- import { A as useLeaflet, C as MapPolyline, D as MapTileLayer, E as MapSearchControl, O as MapTooltip, S as MapPolygon, T as MapRectangle, _ as MapLayers, a as MapDrawCircle, b as MapMarker, c as MapDrawEdit, d as MapDrawPolyline, f as MapDrawRectangle, g as MapLayerGroup, h as MapFullscreenControl, i as MapControlContainer, j as PlaceAutocomplete, k as MapZoomControl, l as MapDrawMarker, m as MapFeatureGroup, n as MapCircle, o as MapDrawControl, p as MapDrawUndo, r as MapCircleMarker, s as MapDrawDelete, t as Map, u as MapDrawPolygon, v as MapLayersControl, w as MapPopup, x as MapMarkerClusterGroup, y as MapLocateControl } from "../map-ClxB41Hg.mjs";
1
+ import { A as useLeaflet, C as MapPolyline, D as MapTileLayer, E as MapSearchControl, O as MapTooltip, S as MapPolygon, T as MapRectangle, _ as MapLayers, a as MapDrawCircle, b as MapMarker, c as MapDrawEdit, d as MapDrawPolyline, f as MapDrawRectangle, g as MapLayerGroup, h as MapFullscreenControl, i as MapControlContainer, j as PlaceAutocomplete, k as MapZoomControl, l as MapDrawMarker, m as MapFeatureGroup, n as MapCircle, o as MapDrawControl, p as MapDrawUndo, r as MapCircleMarker, s as MapDrawDelete, t as Map, u as MapDrawPolygon, v as MapLayersControl, w as MapPopup, x as MapMarkerClusterGroup, y as MapLocateControl } from "../map-Cw7u8r6E.mjs";
2
2
  export { Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, PlaceAutocomplete, useLeaflet };
@@ -225,7 +225,7 @@ function PlaceAutocomplete({ debounceMs = 300, lang, limit = 5, bbox, lat, lon,
225
225
  //#region ../shadcn/ui/map.tsx
226
226
  let _useMap;
227
227
  let _useMapEvents;
228
- if (typeof window !== "undefined") import("./map-leaflet-imports-CaMm_rdF.mjs").then((mod) => {
228
+ if (typeof window !== "undefined") import("./map-leaflet-imports-D6nTEOIh.mjs").then((mod) => {
229
229
  _useMap = mod.useMap;
230
230
  _useMapEvents = mod.useMapEvents;
231
231
  });
@@ -1,2 +1,2 @@
1
- import { t as MoreActions } from "../more-actions-CGagbIDT.mjs";
1
+ import { t as MoreActions } from "../more-actions-BNQ2yfWZ.mjs";
2
2
  export { MoreActions };
@@ -1,2 +1,2 @@
1
- import { t as PageTitle } from "../page-title-R7QbfbWp.mjs";
1
+ import { t as PageTitle } from "../page-title-CNiRNZ7p.mjs";
2
2
  export { PageTitle };
@@ -1,2 +1,2 @@
1
- import { t as TagsInput } from "../tag-input-BVSwNcRd.mjs";
1
+ import { t as TagsInput } from "../tag-input-BKed-cul.mjs";
2
2
  export { TagsInput };
@@ -1,2 +1,2 @@
1
- import { _ as RedisTaskStorage, a as TaskPanelItem, b as createProjectMetadata, c as TaskPanelHeader, d as useCurrentScope, f as useTasksWithLabels, g as detectStorage, h as TaskQueue, i as TaskPanel, l as getContextLabel, m as TaskQueueProvider, n as TaskSummaryDialog, o as TaskPanelCounter, p as useTaskQueue, r as TaskQueueTrigger, s as TaskPanelActions, t as TaskQueueDropdown, u as matchesCurrentScope, v as LocalTaskStorage, x as createUserMetadata, y as createOrgMetadata } from "../task-queue-dropdown-DyM5R8KF.mjs";
1
+ import { _ as RedisTaskStorage, a as TaskPanelItem, b as createProjectMetadata, c as TaskPanelHeader, d as useCurrentScope, f as useTasksWithLabels, g as detectStorage, h as TaskQueue, i as TaskPanel, l as getContextLabel, m as TaskQueueProvider, n as TaskSummaryDialog, o as TaskPanelCounter, p as useTaskQueue, r as TaskQueueTrigger, s as TaskPanelActions, t as TaskQueueDropdown, u as matchesCurrentScope, v as LocalTaskStorage, x as createUserMetadata, y as createOrgMetadata } from "../task-queue-dropdown-Di_Wjspz.mjs";
2
2
  export { LocalTaskStorage, RedisTaskStorage, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, createOrgMetadata, createProjectMetadata, createUserMetadata, detectStorage, getContextLabel, matchesCurrentScope, useCurrentScope, useTaskQueue, useTasksWithLabels };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@datum-cloud/datum-ui",
3
3
  "type": "module",
4
- "version": "0.5.0",
4
+ "version": "0.6.0-alpha.b817c77",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "url": "https://github.com/datum-cloud/datum-ui"
@@ -234,6 +234,16 @@
234
234
  "types": "./dist/components/features/form/index.d.ts",
235
235
  "default": "./dist/form/index.mjs"
236
236
  },
237
+ "./form/adapters/conform": {
238
+ "source": "./src/components/features/form/adapters/conform/index.ts",
239
+ "types": "./dist/components/features/form/adapters/conform/index.d.ts",
240
+ "default": "./dist/form/adapters/conform/index.mjs"
241
+ },
242
+ "./form/adapters/rhf": {
243
+ "source": "./src/components/features/form/adapters/rhf/index.ts",
244
+ "types": "./dist/components/features/form/adapters/rhf/index.d.ts",
245
+ "default": "./dist/form/adapters/rhf/index.mjs"
246
+ },
237
247
  "./grid": {
238
248
  "types": "./dist/components/features/grid/index.d.ts",
239
249
  "style": "./dist/grid/style.css",
@@ -321,6 +331,7 @@
321
331
  "peerDependencies": {
322
332
  "@conform-to/react": ">=1",
323
333
  "@conform-to/zod": ">=1",
334
+ "@hookform/resolvers": ">=5",
324
335
  "@monaco-editor/react": "^4.7.0",
325
336
  "@stepperize/react": ">=4",
326
337
  "@tanstack/react-table": ">=8",
@@ -341,12 +352,13 @@
341
352
  "react-day-picker": ">=9",
342
353
  "react-dom": ">=19",
343
354
  "react-dropzone": ">=14",
355
+ "react-hook-form": ">=7.55",
344
356
  "react-leaflet": ">=5",
345
357
  "react-leaflet-markercluster": ">=5.0.0-rc.0",
346
358
  "react-number-format": ">=5",
347
359
  "recharts": ">=2",
348
360
  "sonner": ">=2",
349
- "zod": ">=3"
361
+ "zod": ">=4"
350
362
  },
351
363
  "peerDependenciesMeta": {
352
364
  "@conform-to/react": {
@@ -355,6 +367,9 @@
355
367
  "@conform-to/zod": {
356
368
  "optional": true
357
369
  },
370
+ "@hookform/resolvers": {
371
+ "optional": true
372
+ },
358
373
  "@monaco-editor/react": {
359
374
  "optional": true
360
375
  },
@@ -407,6 +422,9 @@
407
422
  "react-dropzone": {
408
423
  "optional": true
409
424
  },
425
+ "react-hook-form": {
426
+ "optional": true
427
+ },
410
428
  "react-leaflet": {
411
429
  "optional": true
412
430
  },
@@ -452,6 +470,7 @@
452
470
  "devDependencies": {
453
471
  "@conform-to/react": "^1.17.1",
454
472
  "@conform-to/zod": "^1.17.1",
473
+ "@hookform/resolvers": "^5.2.2",
455
474
  "@monaco-editor/react": "^4.7.0",
456
475
  "@stepperize/react": "^6.1.0",
457
476
  "@tanstack/react-table": "^8.21.3",
@@ -485,6 +504,7 @@
485
504
  "react-day-picker": "^9.14.0",
486
505
  "react-dom": "^19",
487
506
  "react-dropzone": "^15.0.0",
507
+ "react-hook-form": "^7.71.2",
488
508
  "react-leaflet": "^5.0.0",
489
509
  "react-leaflet-markercluster": "5.0.0-rc.0",
490
510
  "react-number-format": "^5.4.4",
File without changes
File without changes