@datum-cloud/datum-ui 2.4.0 → 2.5.0

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 (82) hide show
  1. package/dist/app-navigation/index.mjs +2 -2
  2. package/dist/{app-navigation--tEBCrfl.mjs → app-navigation-DhPaPFnN.mjs} +3 -7
  3. package/dist/assistant/index.mjs +15 -6
  4. package/dist/autocomplete/index.mjs +1 -1
  5. package/dist/{autocomplete-DZ_HSBak.mjs → autocomplete-BxtzndxZ.mjs} +1 -1
  6. package/dist/autosearch/index.mjs +3 -3
  7. package/dist/avatar-stack/index.mjs +1 -1
  8. package/dist/{avatar-stack-BZK6zUJr.mjs → avatar-stack-BUcsjhA6.mjs} +1 -1
  9. package/dist/button/index.mjs +2 -2
  10. package/dist/{button-H_8dI-Ib.mjs → button-CDPui_Ov.mjs} +1 -1
  11. package/dist/{button-A1qTjZ8U.mjs → button-DoMqfQLu.mjs} +1 -1
  12. package/dist/{calendar-date-picker-ynSGADfR.mjs → calendar-date-picker-Cl4lIDl5.mjs} +1 -1
  13. package/dist/components/base/hover-card/hover-card.d.ts +13 -0
  14. package/dist/components/base/hover-card/index.d.ts +1 -1
  15. package/dist/components/base/popover/index.d.ts +1 -1
  16. package/dist/components/base/popover/popover.d.ts +15 -0
  17. package/dist/data-table/index.mjs +1 -1
  18. package/dist/{data-table-ClfRpyHq.mjs → data-table-C37OD6_4.mjs} +6 -6
  19. package/dist/date-picker/index.mjs +3 -3
  20. package/dist/date-time/index.mjs +1 -1
  21. package/dist/{date-time-CA-09lnw.mjs → date-time-BmYjT5vd.mjs} +1 -1
  22. package/dist/date-time-picker/index.mjs +1 -1
  23. package/dist/{date-time-picker-BzcHrf-A.mjs → date-time-picker-DlaSizpS.mjs} +1 -1
  24. package/dist/{date-time-range-picker-Dog33Ry0.mjs → date-time-range-picker-CQQLACgN.mjs} +2 -2
  25. package/dist/dialog/index.mjs +1 -1
  26. package/dist/{dialog-N2pkQIc4.mjs → dialog-Gu70fban.mjs} +1 -1
  27. package/dist/dropdown/index.mjs +1 -1
  28. package/dist/{dropdown-B0znsOlu.mjs → dropdown-Xvduih96.mjs} +6 -6
  29. package/dist/dropzone/index.mjs +1 -1
  30. package/dist/{dropzone-DrWVd7OI.mjs → dropzone-ihksfjN2.mjs} +1 -1
  31. package/dist/empty-content/index.mjs +1 -1
  32. package/dist/{empty-content-DvaelFpJ.mjs → empty-content-CmuVcU0P.mjs} +2 -2
  33. package/dist/form/index.mjs +1 -1
  34. package/dist/form/stepper/index.mjs +1 -1
  35. package/dist/{form-BhBsoMFA.mjs → form-DDtBJ3Dj.mjs} +10 -10
  36. package/dist/grouped-table/index.mjs +1 -1
  37. package/dist/{grouped-table-Bb9KoI1e.mjs → grouped-table-DImzzehJ.mjs} +4 -8
  38. package/dist/hover-card/index.mjs +1 -1
  39. package/dist/{hover-card-08jU9cD8.mjs → hover-card-BNOE5vT5.mjs} +20 -3
  40. package/dist/index.mjs +35 -34
  41. package/dist/logs/index.mjs +4 -4
  42. package/dist/mobile-sheet/index.mjs +1 -1
  43. package/dist/{mobile-sheet-BYp-QQmn.mjs → mobile-sheet-9TootJGg.mjs} +1 -1
  44. package/dist/more-actions/index.mjs +1 -1
  45. package/dist/{more-actions-B1FUf2rm.mjs → more-actions-C3DYWO0a.mjs} +3 -3
  46. package/dist/motion-DvGRWdsm.mjs +46 -0
  47. package/dist/multi-select/index.mjs +1 -1
  48. package/dist/{multi-select-PtdMChPF.mjs → multi-select-CH8KERkt.mjs} +1 -1
  49. package/dist/picker/index.mjs +2 -2
  50. package/dist/{picker-raVuDxsh.mjs → picker-Bbjl9FOq.mjs} +1 -1
  51. package/dist/popover/index.mjs +1 -33
  52. package/dist/popover-X82NwhX9.mjs +53 -0
  53. package/dist/responsive-dropdown/index.mjs +1 -1
  54. package/dist/{responsive-dropdown-n0Txkax5.mjs → responsive-dropdown-C_KKgLbH.mjs} +2 -2
  55. package/dist/responsive-popover/index.mjs +1 -1
  56. package/dist/{responsive-popover-C_1nzIvm.mjs → responsive-popover-8VcjBM2d.mjs} +2 -2
  57. package/dist/rich-text-editor/index.mjs +1 -1
  58. package/dist/{rich-text-editor-Dohp-pbf.mjs → rich-text-editor-DVga5upM.mjs} +3 -3
  59. package/dist/select/index.mjs +1 -1
  60. package/dist/{select-DCU44UO6.mjs → select-CQsG8Kju.mjs} +1 -1
  61. package/dist/sheet/index.mjs +1 -1
  62. package/dist/{sheet-C2i2k5i2.mjs → sheet-DHn6C_rs.mjs} +1 -1
  63. package/dist/sidebar/index.mjs +1 -1
  64. package/dist/{sidebar-D6BoAr6C.mjs → sidebar-BeWEEu7P.mjs} +1 -1
  65. package/dist/styles/motion.css +61 -0
  66. package/dist/styles/root.css +6 -0
  67. package/dist/switch/index.mjs +1 -1
  68. package/dist/{switch-DPHr3TcN.mjs → switch-Z2pJMckf.mjs} +1 -1
  69. package/dist/tabs/index.mjs +1 -1
  70. package/dist/task-queue/index.mjs +1 -1
  71. package/dist/{task-queue-dropdown-ClLLTMxU.mjs → task-queue-dropdown-BJS3snfZ.mjs} +4 -4
  72. package/dist/time-picker/index.mjs +1 -1
  73. package/dist/{time-picker-CFhaHTtI.mjs → time-picker-CoUqZCb7.mjs} +1 -1
  74. package/dist/{to-api-format-WC7b9Mcv.mjs → to-api-format-BzKfX7yo.mjs} +4 -4
  75. package/dist/tooltip/index.mjs +1 -1
  76. package/dist/{tooltip-C_SL1imw.mjs → tooltip-DhbN1BDK.mjs} +1 -1
  77. package/dist/transfer/index.mjs +1 -1
  78. package/dist/{transfer-CEq9AhL7.mjs → transfer-DsshYgIk.mjs} +1 -1
  79. package/dist/utils/index.d.ts +2 -0
  80. package/dist/utils/index.mjs +2 -1
  81. package/dist/utils/motion.d.ts +30 -0
  82. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -4,8 +4,8 @@ import { Avatar, AvatarFallback, AvatarImage } from "./avatar/index.mjs";
4
4
  import { n as badgeVariants, t as Badge } from "./badge-BTNW_FEU.mjs";
5
5
  import { a as BreadcrumbList, i as BreadcrumbLink, n as BreadcrumbEllipsis, o as BreadcrumbPage, r as BreadcrumbItem, s as BreadcrumbSeparator, t as Breadcrumb } from "./breadcrumb-DmdhC8bE.mjs";
6
6
  import { t as SpinnerIcon } from "./spinner.icon-BYUMQ8H-.mjs";
7
- import { n as buttonVariants, t as Button } from "./button-A1qTjZ8U.mjs";
8
- import { t as LinkButton } from "./button-H_8dI-Ib.mjs";
7
+ import { n as buttonVariants, t as Button } from "./button-DoMqfQLu.mjs";
8
+ import { t as LinkButton } from "./button-CDPui_Ov.mjs";
9
9
  import { t as Separator } from "./separator-vbPD_WFQ.mjs";
10
10
  import { i as buttonGroupVariants, n as ButtonGroupSeparator, r as ButtonGroupText, t as ButtonGroup } from "./button-group-DFrTH4L8.mjs";
11
11
  import { t as Icon } from "./icon-wrapper-DKfJlJd0.mjs";
@@ -16,71 +16,72 @@ import { t as Checkbox } from "./checkbox-C6P12fio.mjs";
16
16
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./collapsible/index.mjs";
17
17
  import { a as CommandInput, c as CommandSeparator, i as CommandGroup, l as CommandShortcut, n as CommandDialog, o as CommandItem, r as CommandEmpty, s as CommandList, t as Command } from "./command-C0aGIYnQ.mjs";
18
18
  import { t as CloseIcon } from "./close.icon-DdXKQ4m0.mjs";
19
- import { t as Dialog } from "./dialog-N2pkQIc4.mjs";
19
+ import { t as Dialog } from "./dialog-Gu70fban.mjs";
20
20
  import { t as useControllableState } from "./use-controllable-state-Dna7u3r9.mjs";
21
- import { n as HoverCardContent, r as HoverCardTrigger, t as HoverCard } from "./hover-card-08jU9cD8.mjs";
21
+ import { n as HoverCardContent, r as HoverCardTrigger, t as HoverCard } from "./hover-card-BNOE5vT5.mjs";
22
22
  import { t as Input } from "./input-j4tbmYYz.mjs";
23
23
  import { a as InputGroupText, i as InputGroupInput, n as InputGroupAddon, o as InputGroupTextarea, r as InputGroupButton, t as InputGroup } from "./input-group-DieA8aBt.mjs";
24
24
  import { t as Label } from "./label-Bk6FXsju.mjs";
25
25
  import { t as Spinner } from "./spinner-C5Xv-i2C.mjs";
26
26
  import { A as useLeaflet, C as MapMarkerClusterGroup, D as MapRectangle, E as MapPopup, O as MapTooltip, S as MapMarker, T as MapPolyline, _ as MapLocateControl, a as MapTileLayer, b as MapCircle, c as MapDrawDelete, d as MapDrawPolygon, f as MapDrawPolyline, g as MapFullscreenControl, h as MapControlContainer, i as MapLayersControl, j as PlaceAutocomplete, k as Map, l as MapDrawEdit, m as MapDrawUndo, n as MapLayerGroup, o as MapDrawCircle, p as MapDrawRectangle, r as MapLayers, s as MapDrawControl, t as MapFeatureGroup, u as MapDrawMarker, v as MapSearchControl, w as MapPolygon, x as MapCircleMarker, y as MapZoomControl } from "./layers-DWYdrGmC.mjs";
27
- import { i as useInSheet, n as MobileSheet, r as InSheetContext, t as ResponsiveSheetTrigger } from "./mobile-sheet-BYp-QQmn.mjs";
27
+ import { i as useInSheet, n as MobileSheet, r as InSheetContext, t as ResponsiveSheetTrigger } from "./mobile-sheet-9TootJGg.mjs";
28
28
  import { a as SheetHeader, i as SheetFooter, o as SheetTitle, r as SheetDescription, s as SheetTrigger } from "./sheet-DXCZyMHI.mjs";
29
- import { i as SheetOverlay, n as SheetClose, r as SheetContent, t as Sheet } from "./sheet-C2i2k5i2.mjs";
30
- import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "./popover/index.mjs";
29
+ import { i as SheetOverlay, n as SheetClose, r as SheetContent, t as Sheet } from "./sheet-DHn6C_rs.mjs";
30
+ import { i as PopoverTrigger, n as PopoverAnchor, r as PopoverContent, t as Popover } from "./popover-X82NwhX9.mjs";
31
31
  import { n as RadioGroupItem, t as RadioGroup } from "./radio-group-LduBVTnh.mjs";
32
32
  import { t as useBreakpoint } from "./use-breakpoint-CwiUJSmk.mjs";
33
- import { t as ResponsiveDropdown } from "./responsive-dropdown-n0Txkax5.mjs";
34
- import { t as ResponsivePopover } from "./responsive-popover-C_1nzIvm.mjs";
35
- import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "./select-DCU44UO6.mjs";
36
- import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "./sidebar-D6BoAr6C.mjs";
37
- import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
33
+ import { t as ResponsiveDropdown } from "./responsive-dropdown-C_KKgLbH.mjs";
34
+ import { t as ResponsivePopover } from "./responsive-popover-8VcjBM2d.mjs";
35
+ import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "./select-CQsG8Kju.mjs";
36
+ import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "./sidebar-BeWEEu7P.mjs";
37
+ import { t as Tooltip } from "./tooltip-DhbN1BDK.mjs";
38
38
  import { Skeleton } from "./skeleton/index.mjs";
39
- import { t as Switch } from "./switch-DPHr3TcN.mjs";
39
+ import { t as Switch } from "./switch-Z2pJMckf.mjs";
40
40
  import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table/index.mjs";
41
41
  import { Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger } from "./tabs/index.mjs";
42
42
  import { t as Textarea } from "./textarea-B6YhjFVC.mjs";
43
43
  import { a as ListItem, c as Title, d as titleVariants, i as List, l as paragraphVariants, n as Code, o as Paragraph, r as Link, s as Text, t as Blockquote, u as textVariants } from "./typography-BXIBvq3-.mjs";
44
44
  import { t as VisuallyHidden } from "./visuallyhidden-D7L_qs8b.mjs";
45
- import { a as hasActiveDescendant, i as findItemByHref, n as NavMenu, o as isNavItemActive, r as NavMenuItem, s as normalizePath, t as AppNavigation } from "./app-navigation--tEBCrfl.mjs";
45
+ import { a as hasActiveDescendant, i as findItemByHref, n as NavMenu, o as isNavItemActive, r as NavMenuItem, s as normalizePath, t as AppNavigation } from "./app-navigation-DhPaPFnN.mjs";
46
+ import { n as EASE, t as DURATION } from "./motion-DvGRWdsm.mjs";
46
47
  import { t as LoaderOverlay } from "./loader-overlay-DD94azZX.mjs";
47
- import { t as Autocomplete } from "./autocomplete-DZ_HSBak.mjs";
48
+ import { t as Autocomplete } from "./autocomplete-BxtzndxZ.mjs";
48
49
  import { Autosearch, defaultAutosearchValue } from "./autosearch/index.mjs";
49
- import { n as avatarStackVariants, t as AvatarStack } from "./avatar-stack-BZK6zUJr.mjs";
50
- import { M as getBrowserTimezone, N as getTimezoneOffset, j as formatTimezoneLabel } from "./date-time-range-picker-Dog33Ry0.mjs";
51
- import { t as CalendarDatePicker } from "./calendar-date-picker-ynSGADfR.mjs";
50
+ import { n as avatarStackVariants, t as AvatarStack } from "./avatar-stack-BUcsjhA6.mjs";
51
+ import { M as getBrowserTimezone, N as getTimezoneOffset, j as formatTimezoneLabel } from "./date-time-range-picker-CQQLACgN.mjs";
52
+ import { t as CalendarDatePicker } from "./calendar-date-picker-Cl4lIDl5.mjs";
52
53
  import { i as ClientOnly, n as useTheme, r as ThemeScript, t as ThemeProvider } from "./themes-Ba2bajuF.mjs";
53
54
  import { a as formatJson, c as isValidYaml, d as CodeEditor, i as CodeEditorTabs, l as jsonToYaml, n as jsonSchema, o as formatYaml, r as yamlSchema, s as isValidJson, t as createCodeEditorSchema, u as yamlToJson } from "./types-agDpVXBG.mjs";
54
55
  import { t as toast } from "./toast-BUPlDkN3.mjs";
55
56
  import { n as Toaster, t as useToast } from "./use-toast-Bpq0yJIT.mjs";
56
- import { _ as useNuqsAdapter, a as useDataTablePagination, b as DEFAULT_PAGE_SIZE, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, i as useDataTableLoading, l as useDataTableSorting, m as DataTableRowActions, n as useDataTableFilters, o as useDataTableRows, p as dataTableFeatures, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_DEBOUNCE_MS, x as DEFAULT_PAGE_SIZES, y as DEFAULT_LOADING_ROWS } from "./data-table-ClfRpyHq.mjs";
57
+ import { _ as useNuqsAdapter, a as useDataTablePagination, b as DEFAULT_PAGE_SIZE, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, i as useDataTableLoading, l as useDataTableSorting, m as DataTableRowActions, n as useDataTableFilters, o as useDataTableRows, p as dataTableFeatures, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_DEBOUNCE_MS, x as DEFAULT_PAGE_SIZES, y as DEFAULT_LOADING_ROWS } from "./data-table-C37OD6_4.mjs";
57
58
  import { t as ActionRow } from "./action-row-DTvs91_3.mjs";
58
59
  import { n as useDebouncedSearchInput, t as DEFAULT_SEARCH_DEBOUNCE_MS } from "./use-debounced-search-input-yu_F0QBt.mjs";
59
- import { t as MultiSelect } from "./multi-select-PtdMChPF.mjs";
60
- import { a as formatRelativeDate, c as getTimestamp, i as formatCombinedDate, l as getTimezoneAbbreviation, n as DEFAULT_DATE_FORMAT, o as formatTimezoneDate, r as formatAbsoluteDate, s as formatUTCDate, t as DateTime, u as parseDate } from "./date-time-CA-09lnw.mjs";
61
- import { t as DateTimePicker } from "./date-time-picker-BzcHrf-A.mjs";
62
- 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-B0znsOlu.mjs";
63
- import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "./dropzone-DrWVd7OI.mjs";
64
- import { t as EmptyContent } from "./empty-content-DvaelFpJ.mjs";
65
- import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "./form-BhBsoMFA.mjs";
60
+ import { t as MultiSelect } from "./multi-select-CH8KERkt.mjs";
61
+ import { a as formatRelativeDate, c as getTimestamp, i as formatCombinedDate, l as getTimezoneAbbreviation, n as DEFAULT_DATE_FORMAT, o as formatTimezoneDate, r as formatAbsoluteDate, s as formatUTCDate, t as DateTime, u as parseDate } from "./date-time-BmYjT5vd.mjs";
62
+ import { t as DateTimePicker } from "./date-time-picker-DlaSizpS.mjs";
63
+ 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-Xvduih96.mjs";
64
+ import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "./dropzone-ihksfjN2.mjs";
65
+ import { t as EmptyContent } from "./empty-content-CmuVcU0P.mjs";
66
+ import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "./form-DDtBJ3Dj.mjs";
66
67
  import { t as useCopyToClipboard } from "./use-copy-to-clipboard-DZDq_85T.mjs";
67
68
  import { n as useAdapter, t as FormAdapterProvider } from "./adapter-context-h0jCVqGO.mjs";
68
69
  import { InputWithAddons } from "./input-with-addons/index.mjs";
69
- import { t as TimePicker } from "./time-picker-CFhaHTtI.mjs";
70
- import { t as Transfer } from "./transfer-CEq9AhL7.mjs";
70
+ import { t as TimePicker } from "./time-picker-CoUqZCb7.mjs";
71
+ import { t as Transfer } from "./transfer-DsshYgIk.mjs";
71
72
  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-BYGWTB4j.mjs";
72
- import { t as GroupedTable } from "./grouped-table-Bb9KoI1e.mjs";
73
+ import { t as GroupedTable } from "./grouped-table-DImzzehJ.mjs";
73
74
  import { t as InputNumber } from "./input-number-TXmW-X9o.mjs";
74
75
  import { a as logoStyles, i as LogoFlat, n as LogoStacked, r as LogoIcon, t as LogoText } from "./logo-text-Dpm5O6Kg.mjs";
75
76
  import { t as Logo } from "./logo-C3FxD7jb.mjs";
76
- import { t as MoreActions } from "./more-actions-B1FUf2rm.mjs";
77
+ import { t as MoreActions } from "./more-actions-C3DYWO0a.mjs";
77
78
  import { configureProgress, startProgress, stopProgress } from "./nprogress/index.mjs";
78
79
  import { t as PageTitle } from "./page-title-ipRWEOeM.mjs";
79
- import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } from "./rich-text-editor-Dohp-pbf.mjs";
80
+ import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } from "./rich-text-editor-DVga5upM.mjs";
80
81
  import { t as defineStepper } from "./stepper-dNvkipop.mjs";
81
82
  import { t as TagsInput } from "./tag-input-Ctxtcpwy.mjs";
82
- 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-ClLLTMxU.mjs";
83
- import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "./to-api-format-WC7b9Mcv.mjs";
83
+ 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-BJS3snfZ.mjs";
84
+ import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "./to-api-format-BzKfX7yo.mjs";
84
85
  import { t as useDebounce } from "./hooks-CwZ6hyI1.mjs";
85
86
  import { n as toUTCTimestampStartOfDay, t as toUTCTimestampEndOfDay } from "./utils-CA4QEIJ8.mjs";
86
- export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, ActionRow, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Autosearch, 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_DATE_FORMAT, DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DEFAULT_PRESETS, DEFAULT_SEARCH_DEBOUNCE_MS, DataTable, DataTableColumnHeader, DataTableRowActions, DateTime, DateTimePicker, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EmptyContent, FileInputButton, Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, GroupedTable, HoverCard, HoverCardContent, HoverCardTrigger, Icon, InSheetContext, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Logo, LogoFlat, LogoIcon, LogoStacked, LogoText, 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, MobileSheet, MoreActions, MultiSelect, NavMenu, NavMenuItem, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, ResponsiveDropdown, ResponsivePopover, ResponsiveSheetTrigger, RichTextContent, RichTextEditor, 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, 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, TimePicker, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, Transfer, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createDataTableStore, createOrgMetadata, createProjectMetadata, createSelectionColumn, createTimezoneOption, createUserMetadata, dataTableFeatures, defaultAutosearchValue, defineStepper, detectStorage, findItemByHref, formatAbsoluteDate, formatCombinedDate, formatDateForInput, formatJson, formatRelativeDate, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneDate, formatTimezoneLabel, formatUTCDate, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimestamp, getTimezoneAbbreviation, getTimezoneOffset, hasActiveDescendant, isNavItemActive, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, logoStyles, matchesCurrentScope, normalizePath, paragraphVariants, parseDate, registerMediaQuery, resolvePath, rowMatchesSearch, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toUTCTimestampEndOfDay, toUTCTimestampStartOfDay, toast, useAdapter, useBreakpoint, useControllableState, useCopyToClipboard, useCurrentScope, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useDebounce, useDebouncedSearchInput, useField, useFieldContext, useFormContext, useFormState, useInSheet, useLeaflet, useNuqsAdapter, useRichTextEditor, useSidebar, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
87
+ export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, ActionRow, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Autosearch, 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_DATE_FORMAT, DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DEFAULT_PRESETS, DEFAULT_SEARCH_DEBOUNCE_MS, DURATION, DataTable, DataTableColumnHeader, DataTableRowActions, DateTime, DateTimePicker, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EASE, EmptyContent, FileInputButton, Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, GroupedTable, HoverCard, HoverCardContent, HoverCardTrigger, Icon, InSheetContext, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Logo, LogoFlat, LogoIcon, LogoStacked, LogoText, 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, MobileSheet, MoreActions, MultiSelect, NavMenu, NavMenuItem, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, ResponsiveDropdown, ResponsivePopover, ResponsiveSheetTrigger, RichTextContent, RichTextEditor, 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, 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, TimePicker, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, Transfer, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createDataTableStore, createOrgMetadata, createProjectMetadata, createSelectionColumn, createTimezoneOption, createUserMetadata, dataTableFeatures, defaultAutosearchValue, defineStepper, detectStorage, findItemByHref, formatAbsoluteDate, formatCombinedDate, formatDateForInput, formatJson, formatRelativeDate, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneDate, formatTimezoneLabel, formatUTCDate, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimestamp, getTimezoneAbbreviation, getTimezoneOffset, hasActiveDescendant, isNavItemActive, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, logoStyles, matchesCurrentScope, normalizePath, paragraphVariants, parseDate, registerMediaQuery, resolvePath, rowMatchesSearch, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toUTCTimestampEndOfDay, toUTCTimestampStartOfDay, toast, useAdapter, useBreakpoint, useControllableState, useCopyToClipboard, useCurrentScope, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useDebounce, useDebouncedSearchInput, useField, useFieldContext, useFormContext, useFormState, useInSheet, useLeaflet, useNuqsAdapter, useRichTextEditor, useSidebar, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
@@ -1,15 +1,15 @@
1
1
  import { t as cn } from "../utils-Bu32wN-x.mjs";
2
2
  import { t as Badge } from "../badge-BTNW_FEU.mjs";
3
- import { t as Button } from "../button-A1qTjZ8U.mjs";
3
+ import { t as Button } from "../button-DoMqfQLu.mjs";
4
4
  import { t as Checkbox } from "../checkbox-C6P12fio.mjs";
5
5
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible/index.mjs";
6
6
  import { t as Input } from "../input-j4tbmYYz.mjs";
7
- import { t as Sheet } from "../sheet-C2i2k5i2.mjs";
7
+ import { t as Sheet } from "../sheet-DHn6C_rs.mjs";
8
8
  import { t as useBreakpoint } from "../use-breakpoint-CwiUJSmk.mjs";
9
9
  import { Skeleton } from "../skeleton/index.mjs";
10
10
  import { TableBody, TableCell, TableHead, TableHeader, TableRow } from "../table/index.mjs";
11
- import { t as DateTimeRangePicker } from "../date-time-range-picker-Dog33Ry0.mjs";
12
- import { t as DateTime } from "../date-time-CA-09lnw.mjs";
11
+ import { t as DateTimeRangePicker } from "../date-time-range-picker-CQQLACgN.mjs";
12
+ import { t as DateTime } from "../date-time-BmYjT5vd.mjs";
13
13
  import { t as useCopyToClipboard } from "../use-copy-to-clipboard-DZDq_85T.mjs";
14
14
  import { ChevronDown, ChevronUp, Copy, Download, RefreshCw, Search, SlidersHorizontal, X } from "lucide-react";
15
15
  import { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -1,2 +1,2 @@
1
- import { i as useInSheet, n as MobileSheet, r as InSheetContext, t as ResponsiveSheetTrigger } from "../mobile-sheet-BYp-QQmn.mjs";
1
+ import { i as useInSheet, n as MobileSheet, r as InSheetContext, t as ResponsiveSheetTrigger } from "../mobile-sheet-9TootJGg.mjs";
2
2
  export { InSheetContext, MobileSheet, ResponsiveSheetTrigger, useInSheet };
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
2
  import { a as SheetHeader, o as SheetTitle, r as SheetDescription } from "./sheet-DXCZyMHI.mjs";
3
- import { r as SheetContent, t as Sheet } from "./sheet-C2i2k5i2.mjs";
3
+ import { r as SheetContent, t as Sheet } from "./sheet-DHn6C_rs.mjs";
4
4
  import { createContext, use } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { Slot } from "@radix-ui/react-slot";
@@ -1,3 +1,3 @@
1
1
  import { t as ActionRow } from "../action-row-DTvs91_3.mjs";
2
- import { t as MoreActions } from "../more-actions-B1FUf2rm.mjs";
2
+ import { t as MoreActions } from "../more-actions-C3DYWO0a.mjs";
3
3
  export { ActionRow, MoreActions };
@@ -1,7 +1,7 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
- import { t as Button } from "./button-A1qTjZ8U.mjs";
3
- import { t as ResponsiveDropdown } from "./responsive-dropdown-n0Txkax5.mjs";
4
- import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
2
+ import { t as Button } from "./button-DoMqfQLu.mjs";
3
+ import { t as ResponsiveDropdown } from "./responsive-dropdown-C_KKgLbH.mjs";
4
+ import { t as Tooltip } from "./tooltip-DhbN1BDK.mjs";
5
5
  import { t as ActionRow } from "./action-row-DTvs91_3.mjs";
6
6
  import { Ellipsis } from "lucide-react";
7
7
  import { useState } from "react";
@@ -0,0 +1,46 @@
1
+ //#region src/utils/motion.ts
2
+ /**
3
+ * Motion tokens — the single source of truth for JS-driven animation
4
+ * (Motion / `motion/react`). Mirrors the CSS motion tokens defined in
5
+ * `@repo/shadcn/styles/shadcn.css` so component motion stays cohesive
6
+ * whether it runs through CSS or Motion.
7
+ *
8
+ * Curves match the CSS `--ease-*` custom properties exactly.
9
+ */
10
+ /** Cubic-bezier easing curves as Motion-compatible tuples. */
11
+ const EASE = {
12
+ /** Strong ease-out for entrances/exits. Mirrors `--ease-out`. */
13
+ out: [
14
+ .23,
15
+ 1,
16
+ .32,
17
+ 1
18
+ ],
19
+ /** Strong ease-in-out for on-screen movement. Mirrors `--ease-in-out`. */
20
+ inOut: [
21
+ .77,
22
+ 0,
23
+ .175,
24
+ 1
25
+ ],
26
+ /** iOS-style drawer curve. Mirrors `--ease-drawer`. */
27
+ drawer: [
28
+ .32,
29
+ .72,
30
+ 0,
31
+ 1
32
+ ]
33
+ };
34
+ /** Durations in seconds (Motion expects seconds, not ms). */
35
+ const DURATION = {
36
+ /** 150ms — button press, tooltips, small popovers. */
37
+ fast: .15,
38
+ /** 250ms — dropdowns, selects, standard UI. */
39
+ medium: .25,
40
+ /** 350ms — drawer/sheet enter. */
41
+ drawerIn: .35,
42
+ /** 200ms — drawer/sheet exit (faster than enter). */
43
+ drawerOut: .2
44
+ };
45
+ //#endregion
46
+ export { EASE as n, DURATION as t };
@@ -1,2 +1,2 @@
1
- import { t as MultiSelect } from "../multi-select-PtdMChPF.mjs";
1
+ import { t as MultiSelect } from "../multi-select-CH8KERkt.mjs";
2
2
  export { MultiSelect };
@@ -2,7 +2,7 @@ import { t as cn } from "./utils-Bu32wN-x.mjs";
2
2
  import { t as Badge } from "./badge-BTNW_FEU.mjs";
3
3
  import { t as Separator } from "./separator-vbPD_WFQ.mjs";
4
4
  import { t as useControllableState } from "./use-controllable-state-Dna7u3r9.mjs";
5
- import { t as ResponsivePopover } from "./responsive-popover-C_1nzIvm.mjs";
5
+ import { t as ResponsivePopover } from "./responsive-popover-8VcjBM2d.mjs";
6
6
  import { t as LoaderOverlay } from "./loader-overlay-DD94azZX.mjs";
7
7
  import { n as OptionList, t as useOptionPicker } from "./use-option-picker-s2bUYwXC.mjs";
8
8
  import { cva } from "class-variance-authority";
@@ -1,3 +1,3 @@
1
- import { A as formatInTimezone, B as isDateBearingMode, C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, I as ALLOWED_STEPS, L as DATE_BEARING_MODES, M as getBrowserTimezone, N as getTimezoneOffset, O as PickerContext, P as isoToZonedDate, R as RANGE_MODES, S as PickerCancel, T as PickerReset, V as isRangeMode, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, d as DATE_PRESETS, f as getDefaultPresets, g as isValidTimeString, h as formatTimeLabel, i as PickerTrigger, j as formatTimezoneLabel, k as usePickerContext, l as usePresets, m as dateToYYYYMMDD, o as PickerTimeInput, p as usePickerState, r as formatPickerValue, s as useTimeSlots, t as DateTimeRangePicker, u as DATETIME_PRESETS, v as resolveCommit, w as PickerFooter, x as PickerApply, y as useKeyboardShortcuts, z as TIME_BEARING_MODES } from "../date-time-range-picker-Dog33Ry0.mjs";
2
- import { a as DateRangePicker, c as getDaysDifference, d as isSameDateRange, f as isSameStringRange, i as DateRangeTimePicker, l as isRangeValid, m as PickerTimezoneSelect, n as TimePicker, o as DatePicker, p as Picker, r as DateTimePicker, s as clampRange, t as TimeRangePicker, u as isSameDate } from "../picker-raVuDxsh.mjs";
1
+ import { A as formatInTimezone, B as isDateBearingMode, C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, I as ALLOWED_STEPS, L as DATE_BEARING_MODES, M as getBrowserTimezone, N as getTimezoneOffset, O as PickerContext, P as isoToZonedDate, R as RANGE_MODES, S as PickerCancel, T as PickerReset, V as isRangeMode, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, d as DATE_PRESETS, f as getDefaultPresets, g as isValidTimeString, h as formatTimeLabel, i as PickerTrigger, j as formatTimezoneLabel, k as usePickerContext, l as usePresets, m as dateToYYYYMMDD, o as PickerTimeInput, p as usePickerState, r as formatPickerValue, s as useTimeSlots, t as DateTimeRangePicker, u as DATETIME_PRESETS, v as resolveCommit, w as PickerFooter, x as PickerApply, y as useKeyboardShortcuts, z as TIME_BEARING_MODES } from "../date-time-range-picker-CQQLACgN.mjs";
2
+ import { a as DateRangePicker, c as getDaysDifference, d as isSameDateRange, f as isSameStringRange, i as DateRangeTimePicker, l as isRangeValid, m as PickerTimezoneSelect, n as TimePicker, o as DatePicker, p as Picker, r as DateTimePicker, s as clampRange, t as TimeRangePicker, u as isSameDate } from "../picker-Bbjl9FOq.mjs";
3
3
  export { ALLOWED_STEPS, DATETIME_PRESETS, DATE_BEARING_MODES, DATE_PRESETS, DatePicker, DateRangePicker, DateRangeTimePicker, DateTimePicker, DateTimeRangePicker, Picker, PickerApply, PickerCalendar, PickerCancel, PickerClear, PickerContent, PickerContext, PickerFooter, PickerPresets, PickerReset, PickerTimeInput, PickerTimezoneIndicator, PickerTimezoneSelect, PickerTrigger, RANGE_MODES, TIME_BEARING_MODES, TimePicker, TimeRangePicker, clampRange, dateToYYYYMMDD, formatInTimezone, formatPickerValue, formatTimeLabel, formatTimezoneLabel, getBrowserTimezone, getDaysDifference, getDefaultPresets, getTimezoneOffset, isDateBearingMode, isRangeMode, isRangeValid, isSameDate, isSameDateRange, isSameStringRange, isTimeBearingMode, isValidTimeString, isoToZonedDate, parseTimeString, resolveCommit, useKeyboardShortcuts, usePickerContext, usePickerState, usePresets, useTimeSlots, zonedDateToIso };
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
2
  import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-daE2Nn0Z.mjs";
3
- import { C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, P as isoToZonedDate, S as PickerCancel, T as PickerReset, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, c as Picker$1, i as PickerTrigger, k as usePickerContext, n as DefaultFooter, o as PickerTimeInput, r as formatPickerValue, w as PickerFooter, x as PickerApply } from "./date-time-range-picker-Dog33Ry0.mjs";
3
+ import { C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, P as isoToZonedDate, S as PickerCancel, T as PickerReset, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, c as Picker$1, i as PickerTrigger, k as usePickerContext, n as DefaultFooter, o as PickerTimeInput, r as formatPickerValue, w as PickerFooter, x as PickerApply } from "./date-time-range-picker-CQQLACgN.mjs";
4
4
  import { Clock, Globe } from "lucide-react";
5
5
  import { useEffect, useState } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,34 +1,2 @@
1
- import { t as cn } from "../utils-Bu32wN-x.mjs";
2
- import "react";
3
- import { jsx } from "react/jsx-runtime";
4
- import * as PopoverPrimitive from "@radix-ui/react-popover";
5
- //#region ../shadcn/ui/popover.tsx
6
- function Popover({ ...props }) {
7
- return /* @__PURE__ */ jsx(PopoverPrimitive.Root, {
8
- "data-slot": "popover",
9
- ...props
10
- });
11
- }
12
- function PopoverTrigger({ ...props }) {
13
- return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, {
14
- "data-slot": "popover-trigger",
15
- ...props
16
- });
17
- }
18
- function PopoverContent({ className, align = "center", sideOffset = 4, ...props }) {
19
- return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
20
- "data-slot": "popover-content",
21
- align,
22
- sideOffset,
23
- className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-hidden", className),
24
- ...props
25
- }) });
26
- }
27
- function PopoverAnchor({ ...props }) {
28
- return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, {
29
- "data-slot": "popover-anchor",
30
- ...props
31
- });
32
- }
33
- //#endregion
1
+ import { i as PopoverTrigger, n as PopoverAnchor, r as PopoverContent, t as Popover } from "../popover-X82NwhX9.mjs";
34
2
  export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
@@ -0,0 +1,53 @@
1
+ import { t as cn } from "./utils-Bu32wN-x.mjs";
2
+ import "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
5
+ //#region ../shadcn/ui/popover.tsx
6
+ function Popover$1({ ...props }) {
7
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Root, {
8
+ "data-slot": "popover",
9
+ ...props
10
+ });
11
+ }
12
+ function PopoverTrigger$1({ ...props }) {
13
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, {
14
+ "data-slot": "popover-trigger",
15
+ ...props
16
+ });
17
+ }
18
+ function PopoverContent$1({ className, align = "center", sideOffset = 4, ...props }) {
19
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
20
+ "data-slot": "popover-content",
21
+ align,
22
+ sideOffset,
23
+ className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-hidden", className),
24
+ ...props
25
+ }) });
26
+ }
27
+ function PopoverAnchor$1({ ...props }) {
28
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, {
29
+ "data-slot": "popover-anchor",
30
+ ...props
31
+ });
32
+ }
33
+ //#endregion
34
+ //#region src/components/base/popover/popover.tsx
35
+ /**
36
+ * Datum Popover
37
+ *
38
+ * Thin wrapper over the shadcn popover. Adds trigger-anchored motion to
39
+ * `PopoverContent` (scale from the trigger, not the centre) with the shared
40
+ * fast/ease-out motion tokens. Root/Trigger/Anchor are passed through
41
+ * unchanged so this stays a drop-in replacement.
42
+ */
43
+ const Popover = Popover$1;
44
+ const PopoverTrigger = PopoverTrigger$1;
45
+ const PopoverAnchor = PopoverAnchor$1;
46
+ function PopoverContent({ className, ...props }) {
47
+ return /* @__PURE__ */ jsx(PopoverContent$1, {
48
+ className: cn("origin-(--radix-popover-content-transform-origin) duration-[var(--duration-fast)] ease-out", className),
49
+ ...props
50
+ });
51
+ }
52
+ //#endregion
53
+ export { PopoverTrigger as i, PopoverAnchor as n, PopoverContent as r, Popover as t };
@@ -1,2 +1,2 @@
1
- import { t as ResponsiveDropdown } from "../responsive-dropdown-n0Txkax5.mjs";
1
+ import { t as ResponsiveDropdown } from "../responsive-dropdown-C_KKgLbH.mjs";
2
2
  export { ResponsiveDropdown };
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
- import { i as useInSheet, t as ResponsiveSheetTrigger } from "./mobile-sheet-BYp-QQmn.mjs";
3
- import { Popover, PopoverContent, PopoverTrigger } from "./popover/index.mjs";
2
+ import { i as useInSheet, t as ResponsiveSheetTrigger } from "./mobile-sheet-9TootJGg.mjs";
3
+ import { i as PopoverTrigger, r as PopoverContent, t as Popover } from "./popover-X82NwhX9.mjs";
4
4
  import { t as useBreakpoint } from "./use-breakpoint-CwiUJSmk.mjs";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/base/responsive-dropdown/responsive-dropdown.tsx
@@ -1,2 +1,2 @@
1
- import { t as ResponsivePopover } from "../responsive-popover-C_1nzIvm.mjs";
1
+ import { t as ResponsivePopover } from "../responsive-popover-8VcjBM2d.mjs";
2
2
  export { ResponsivePopover };
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
- import { i as useInSheet, t as ResponsiveSheetTrigger } from "./mobile-sheet-BYp-QQmn.mjs";
3
- import { Popover, PopoverContent, PopoverTrigger } from "./popover/index.mjs";
2
+ import { i as useInSheet, t as ResponsiveSheetTrigger } from "./mobile-sheet-9TootJGg.mjs";
3
+ import { i as PopoverTrigger, r as PopoverContent, t as Popover } from "./popover-X82NwhX9.mjs";
4
4
  import { t as useBreakpoint } from "./use-breakpoint-CwiUJSmk.mjs";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/base/responsive-popover/responsive-popover.tsx
@@ -1,2 +1,2 @@
1
- import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } from "../rich-text-editor-Dohp-pbf.mjs";
1
+ import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } from "../rich-text-editor-DVga5upM.mjs";
2
2
  export { RichTextContent, RichTextEditor, useRichTextEditor };
@@ -1,9 +1,9 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
- import { t as Button } from "./button-A1qTjZ8U.mjs";
2
+ import { t as Button } from "./button-DoMqfQLu.mjs";
3
3
  import { t as Icon } from "./icon-wrapper-DKfJlJd0.mjs";
4
4
  import { t as Input } from "./input-j4tbmYYz.mjs";
5
- import { t as ResponsivePopover } from "./responsive-popover-C_1nzIvm.mjs";
6
- import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
5
+ import { t as ResponsivePopover } from "./responsive-popover-8VcjBM2d.mjs";
6
+ import { t as Tooltip } from "./tooltip-DhbN1BDK.mjs";
7
7
  import { BoldIcon, ItalicIcon, LinkIcon, StrikethroughIcon, UnderlineIcon, UnlinkIcon } from "lucide-react";
8
8
  import { createContext, use, useCallback, useEffect, useState } from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "../select-DCU44UO6.mjs";
1
+ import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "../select-CQsG8Kju.mjs";
2
2
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
@@ -24,7 +24,7 @@ SelectTrigger.displayName = "SelectTrigger";
24
24
  function SelectContent({ ref, className, ...props }) {
25
25
  return /* @__PURE__ */ jsx(SelectContent$1, {
26
26
  ref,
27
- className: cn(className),
27
+ className: cn("origin-(--radix-select-content-transform-origin) duration-[var(--duration-fast)] ease-out", className),
28
28
  ...props
29
29
  });
30
30
  }
@@ -1,3 +1,3 @@
1
1
  import { a as SheetHeader, i as SheetFooter, o as SheetTitle, r as SheetDescription, s as SheetTrigger } from "../sheet-DXCZyMHI.mjs";
2
- import { i as SheetOverlay, n as SheetClose, r as SheetContent, t as Sheet } from "../sheet-C2i2k5i2.mjs";
2
+ import { i as SheetOverlay, n as SheetClose, r as SheetContent, t as Sheet } from "../sheet-DHn6C_rs.mjs";
3
3
  export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger };
@@ -18,7 +18,7 @@ function SheetContent({ className, children, side = "right", showCloseButton = t
18
18
  "data-slot": "sheet-portal",
19
19
  children: [/* @__PURE__ */ jsx(SheetOverlay, {}), /* @__PURE__ */ jsxs(SheetPrimitive.Content, {
20
20
  "data-slot": "sheet-content",
21
- className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", className),
21
+ className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-[var(--ease-drawer)] data-[state=closed]:duration-[var(--duration-drawer-out)] data-[state=open]:duration-[var(--duration-drawer-in)]", side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", className),
22
22
  ...props,
23
23
  children: [children, showCloseButton && /* @__PURE__ */ jsxs(SheetPrimitive.Close, {
24
24
  className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
@@ -1,2 +1,2 @@
1
- import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "../sidebar-D6BoAr6C.mjs";
1
+ import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "../sidebar-BeWEEu7P.mjs";
2
2
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
@@ -4,7 +4,7 @@ import { t as Button } from "./button-CsdF61EI.mjs";
4
4
  import { t as Icon } from "./icon-wrapper-DKfJlJd0.mjs";
5
5
  import { t as Input } from "./input-j4tbmYYz.mjs";
6
6
  import { a as SheetHeader, n as SheetContent, o as SheetTitle, r as SheetDescription, t as Sheet } from "./sheet-DXCZyMHI.mjs";
7
- import { i as TooltipProvider, t as Tooltip } from "./tooltip-C_SL1imw.mjs";
7
+ import { i as TooltipProvider, t as Tooltip } from "./tooltip-DhbN1BDK.mjs";
8
8
  import { t as Skeleton } from "./skeleton-DFExK4GX.mjs";
9
9
  import { cva } from "class-variance-authority";
10
10
  import { PanelLeftCloseIcon, PanelLeftOpenIcon } from "lucide-react";
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Motion tokens (datum-ui layer).
3
+ *
4
+ * Single source of truth for easing + duration used by datum-ui components.
5
+ * Lives in its own file so every entry point that assembles the design
6
+ * system — the shipped `root.css` AND Storybook's piecemeal imports — pulls
7
+ * in the same tokens. Mirrored in TS at `utils/motion.ts` for Motion.
8
+ *
9
+ * NOTE: must be imported AFTER `@import 'tailwindcss'` so the `--ease-*`
10
+ * overrides win over Tailwind's defaults.
11
+ */
12
+
13
+ /* Strong custom curves — the built-in CSS easings are too weak.
14
+ * `--ease-out` / `--ease-in-out` override the default Tailwind utilities
15
+ * app-wide; `--ease-drawer` is a named iOS-style curve. */
16
+ @theme {
17
+ --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
18
+ --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
19
+ --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
20
+
21
+ /* Durations — keep UI animations snappy (<300ms). */
22
+ --duration-fast: 150ms;
23
+ --duration-medium: 250ms;
24
+ --duration-drawer-in: 350ms;
25
+ --duration-drawer-out: 200ms;
26
+ }
27
+
28
+ /* ============================================================
29
+ * Reduced-motion safety net.
30
+ *
31
+ * Systemic fallback complementing the per-component `useReducedMotion`
32
+ * in Motion. Reduced motion means *fewer and gentler* animations, not
33
+ * zero: opacity/colour fades are kept (they aid comprehension), while
34
+ * movement (translate), scale and rotation are neutralised.
35
+ *
36
+ * tw-animate-css drives `animate-in`/`animate-out` from CSS variables,
37
+ * so zeroing the enter/exit translate/scale/rotate vars strips the
38
+ * movement from every Radix overlay while leaving the fade intact.
39
+ * ============================================================ */
40
+ @media (prefers-reduced-motion: reduce) {
41
+ *,
42
+ *::before,
43
+ *::after {
44
+ --tw-enter-translate-x: 0 !important;
45
+ --tw-enter-translate-y: 0 !important;
46
+ --tw-exit-translate-x: 0 !important;
47
+ --tw-exit-translate-y: 0 !important;
48
+ --tw-enter-scale: 1 !important;
49
+ --tw-exit-scale: 1 !important;
50
+ --tw-enter-rotate: 0 !important;
51
+ --tw-exit-rotate: 0 !important;
52
+ }
53
+
54
+ /* Height-based collapsibles carry no fade to preserve — make instant. */
55
+ .animate-collapsible-down,
56
+ .animate-collapsible-up {
57
+ animation-duration: 0.01ms !important;
58
+ }
59
+
60
+ /* Continuous spinners are essential loading feedback and are kept. */
61
+ }
@@ -36,3 +36,9 @@
36
36
 
37
37
  /* Theme overrides — always loaded after shadcn */
38
38
  @import './themes/alpha.css';
39
+
40
+ /* Motion tokens + reduced-motion safety net.
41
+ * In its own file so Storybook (which imports pieces individually) and the
42
+ * shipped bundle share one source. Must load after tailwindcss for the
43
+ * `--ease-*` overrides to win. */
44
+ @import './motion.css';
@@ -1,2 +1,2 @@
1
- import { t as Switch } from "../switch-DPHr3TcN.mjs";
1
+ import { t as Switch } from "../switch-Z2pJMckf.mjs";
2
2
  export { Switch };
@@ -19,7 +19,7 @@ function Switch$1({ className, ...props }) {
19
19
  function Switch({ ref, className, ...props }) {
20
20
  return /* @__PURE__ */ jsx(Switch$1, {
21
21
  ref,
22
- className: cn(className),
22
+ className: cn("transition-[background-color,border-color,box-shadow] duration-[var(--duration-fast)] ease-out", className),
23
23
  ...props
24
24
  });
25
25
  }
@@ -23,7 +23,7 @@ function TabsList({ className, ...props }) {
23
23
  }
24
24
  function TabsTrigger({ className, ...props }) {
25
25
  return /* @__PURE__ */ jsx(TabsPrimitive.Trigger, {
26
- className: cn("data-[state=active]:bg-background dark:data-[state=active]:text-foreground data-[state=active]:text-foreground dark:hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
26
+ className: cn("data-[state=active]:bg-background dark:data-[state=active]:text-foreground data-[state=active]:text-foreground dark:hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow,transform] duration-[var(--duration-fast)] ease-out active:scale-[0.98] disabled:active:scale-100 focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
27
27
  ...props
28
28
  });
29
29
  }
@@ -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-ClLLTMxU.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-BJS3snfZ.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 };