@datum-cloud/datum-ui 1.6.0 → 1.7.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 (59) hide show
  1. package/dist/app-navigation/index.mjs +2 -2
  2. package/dist/{app-navigation--mry98XV.mjs → app-navigation-CNig4Maj.mjs} +32 -31
  3. package/dist/assistant/index.mjs +18 -13
  4. package/dist/autocomplete/index.mjs +1 -1
  5. package/dist/{autocomplete-G24AgvxU.mjs → autocomplete-DM6JYV4W.mjs} +1 -1
  6. package/dist/autosearch/index.mjs +4 -3
  7. package/dist/avatar-stack/index.mjs +1 -1
  8. package/dist/{avatar-stack-D1-BA7hA.mjs → avatar-stack-BZK6zUJr.mjs} +1 -1
  9. package/dist/{calendar-date-picker-C52Y05ZN.mjs → calendar-date-picker-AzvSqjeS.mjs} +6 -5
  10. package/dist/chart/index.mjs +1 -1
  11. package/dist/{chart-DeCrbcpY.mjs → chart-EgzTS28l.mjs} +6 -3
  12. package/dist/code-editor/index.mjs +1 -1
  13. package/dist/data-table/index.mjs +1 -1
  14. package/dist/{data-table-CfeovSJV.mjs → data-table-mByk373T.mjs} +11 -10
  15. package/dist/date-picker/index.mjs +3 -3
  16. package/dist/date-time-picker/index.mjs +1 -1
  17. package/dist/{date-time-picker-BbtA6JJJ.mjs → date-time-picker-D3-DeNo8.mjs} +1 -1
  18. package/dist/dropzone/index.mjs +1 -1
  19. package/dist/{dropzone-C_vA4q0u.mjs → dropzone-DrWVd7OI.mjs} +5 -3
  20. package/dist/empty-content/index.mjs +1 -1
  21. package/dist/{empty-content-BpS0PONb.mjs → empty-content-DvaelFpJ.mjs} +3 -2
  22. package/dist/form/adapters/rhf/index.mjs +6 -3
  23. package/dist/form/index.mjs +1 -1
  24. package/dist/form/stepper/index.mjs +23 -19
  25. package/dist/{form-2pTdgtYr.mjs → form-BUUNQfC9.mjs} +43 -34
  26. package/dist/grouped-table/index.mjs +1 -1
  27. package/dist/{grouped-table-CPF8Jijv.mjs → grouped-table-b2jDEPR6.mjs} +1 -1
  28. package/dist/index.mjs +26 -26
  29. package/dist/{layers-DJYz6fyE.mjs → layers-DWYdrGmC.mjs} +7 -3
  30. package/dist/logo/themed/index.mjs +1 -1
  31. package/dist/map/index.mjs +1 -1
  32. package/dist/more-actions/index.mjs +1 -1
  33. package/dist/{more-actions-G9hs0rpJ.mjs → more-actions-Bx443Ccx.mjs} +13 -12
  34. package/dist/multi-select/index.mjs +1 -1
  35. package/dist/{multi-select-DIWTdi0i.mjs → multi-select-PHaMEbY-.mjs} +1 -1
  36. package/dist/picker/index.mjs +1 -1
  37. package/dist/{picker-CRUSdzpo.mjs → picker-b5-x-EHs.mjs} +27 -22
  38. package/dist/rich-text-editor/index.mjs +1 -1
  39. package/dist/{rich-text-editor-DRIwcleW.mjs → rich-text-editor-CGuSn8xi.mjs} +1 -1
  40. package/dist/sidebar/index.mjs +1 -1
  41. package/dist/{sidebar-Df6Po0K8.mjs → sidebar-BRUNOqXi.mjs} +37 -36
  42. package/dist/stepper/index.mjs +1 -1
  43. package/dist/{stepper-DJkYcilu.mjs → stepper-dNvkipop.mjs} +2 -1
  44. package/dist/tag-input/index.mjs +1 -1
  45. package/dist/{tag-input-CSav22U5.mjs → tag-input-Ctxtcpwy.mjs} +37 -33
  46. package/dist/task-queue/index.mjs +1 -1
  47. package/dist/{task-queue-dropdown-DfdGiyfA.mjs → task-queue-dropdown-pqFd4rSf.mjs} +76 -75
  48. package/dist/theme/index.mjs +1 -1
  49. package/dist/{themes-BK5atywZ.mjs → themes-Ba2bajuF.mjs} +19 -17
  50. package/dist/time-picker/index.mjs +1 -1
  51. package/dist/{time-picker-Bgt6R1fU.mjs → time-picker-B_fN5vhO.mjs} +1 -1
  52. package/dist/{to-api-format-CgKtSuWO.mjs → to-api-format-43Boq7OR.mjs} +12 -8
  53. package/dist/tooltip/index.mjs +1 -1
  54. package/dist/{tooltip-BhatUaar.mjs → tooltip-C_SL1imw.mjs} +27 -23
  55. package/dist/{types-DrN0rei5.mjs → types-agDpVXBG.mjs} +5 -3
  56. package/dist/{use-option-picker-CV-9CyBV.mjs → use-option-picker-s2bUYwXC.mjs} +3 -2
  57. package/dist/utils/index.mjs +1 -1
  58. package/dist/{utils-U06Eu2KT.mjs → utils-CA4QEIJ8.mjs} +6 -2
  59. package/package.json +52 -52
@@ -1,3 +1,3 @@
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-Df6Po0K8.mjs";
2
- 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--mry98XV.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-BRUNOqXi.mjs";
2
+ 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-CNig4Maj.mjs";
3
3
  export { AppNavigation, NavMenu, NavMenuItem, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, findItemByHref, hasActiveDescendant, isNavItemActive, normalizePath, useSidebar };
@@ -1,7 +1,7 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
2
  import { t as Icon } from "./icon-wrapper-DKfJlJd0.mjs";
3
3
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./collapsible/index.mjs";
4
- import { S as SidebarGroupLabel, c as SidebarSeparator, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, p as SidebarMenuButton, r as SidebarFooter, t as Sidebar, u as SidebarMenu, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "./sidebar-Df6Po0K8.mjs";
4
+ import { S as SidebarGroupLabel, c as SidebarSeparator, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, p as SidebarMenuButton, r as SidebarFooter, t as Sidebar, u as SidebarMenu, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "./sidebar-BRUNOqXi.mjs";
5
5
  import { ChevronRight, ExternalLinkIcon } from "lucide-react";
6
6
  import { createContext, memo, use, useCallback, useEffect, useMemo, useRef, useState } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -440,37 +440,38 @@ function NavMenu({ ref, className, items, currentPath, linkComponent: LinkComp =
440
440
  isMobile,
441
441
  closeForNavigation
442
442
  ]);
443
+ const contextValue = useMemo(() => ({
444
+ pathname,
445
+ state,
446
+ isMobile,
447
+ openItems,
448
+ setOpenItems,
449
+ setOpen,
450
+ disableTooltip,
451
+ itemClassName,
452
+ activeItemClassName,
453
+ linkComponent: LinkComp,
454
+ getLinkProps,
455
+ handleNavigation,
456
+ isInitialMount,
457
+ previousOpenItems,
458
+ previousState,
459
+ previousPathname
460
+ }), [
461
+ pathname,
462
+ state,
463
+ isMobile,
464
+ openItems,
465
+ setOpen,
466
+ disableTooltip,
467
+ itemClassName,
468
+ activeItemClassName,
469
+ LinkComp,
470
+ getLinkProps,
471
+ handleNavigation
472
+ ]);
443
473
  return /* @__PURE__ */ jsx(NavMenuProvider, {
444
- value: useMemo(() => ({
445
- pathname,
446
- state,
447
- isMobile,
448
- openItems,
449
- setOpenItems,
450
- setOpen,
451
- disableTooltip,
452
- itemClassName,
453
- activeItemClassName,
454
- linkComponent: LinkComp,
455
- getLinkProps,
456
- handleNavigation,
457
- isInitialMount,
458
- previousOpenItems,
459
- previousState,
460
- previousPathname
461
- }), [
462
- pathname,
463
- state,
464
- isMobile,
465
- openItems,
466
- setOpen,
467
- disableTooltip,
468
- itemClassName,
469
- activeItemClassName,
470
- LinkComp,
471
- getLinkProps,
472
- handleNavigation
473
- ]),
474
+ value: contextValue,
474
475
  children: /* @__PURE__ */ jsx("ul", {
475
476
  ref,
476
477
  "data-sidebar": "menu",
@@ -1,7 +1,7 @@
1
1
  import { t as cn } from "../utils-Bu32wN-x.mjs";
2
2
  import { t as Icon } from "../icon-wrapper-DKfJlJd0.mjs";
3
3
  import { a as DropdownMenuRadioGroup, c as DropdownMenuTrigger, i as DropdownMenuLabel, o as DropdownMenuRadioItem, r as DropdownMenuContent, s as DropdownMenuSeparator, t as DropdownMenu } from "../dropdown-menu-b8zY5Cs6.mjs";
4
- import { t as Tooltip } from "../tooltip-BhatUaar.mjs";
4
+ import { t as Tooltip } from "../tooltip-C_SL1imw.mjs";
5
5
  import { ArrowDown, ArrowRight, ArrowUp, Brain, Check, ChevronDown, Copy, Download, MessagesSquare, Mic, MicOff, PanelLeft, Plus, RotateCw, Square, Trash2 } from "lucide-react";
6
6
  import { Fragment, createContext, useCallback, useContext, useMemo, useRef, useState } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -102,29 +102,34 @@ function ModelSelector({ modelId, effortId, onModelChange, onEffortChange, disab
102
102
  })
103
103
  }), /* @__PURE__ */ jsxs(DropdownMenuContent, {
104
104
  align: "end",
105
- className: "w-44",
105
+ collisionPadding: 16,
106
+ className: "flex w-56 max-h-[min(24rem,var(--radix-dropdown-menu-content-available-height))] flex-col overflow-hidden",
106
107
  children: [
107
108
  /* @__PURE__ */ jsx(DropdownMenuLabel, {
108
- className: "text-muted-foreground text-[10px] tracking-wide uppercase",
109
+ className: "text-muted-foreground shrink-0 text-[10px] tracking-wide uppercase",
109
110
  children: "Model"
110
111
  }),
111
- /* @__PURE__ */ jsx(DropdownMenuRadioGroup, {
112
- value: modelId,
113
- onValueChange: onModelChange,
114
- children: models.map((m) => /* @__PURE__ */ jsx(DropdownMenuRadioItem, {
115
- value: m.id,
116
- className: "text-sm",
117
- children: m.label
118
- }, m.id))
112
+ /* @__PURE__ */ jsx("div", {
113
+ className: "min-h-0 flex-1 overflow-y-auto",
114
+ children: /* @__PURE__ */ jsx(DropdownMenuRadioGroup, {
115
+ value: modelId,
116
+ onValueChange: onModelChange,
117
+ children: models.map((m) => /* @__PURE__ */ jsx(DropdownMenuRadioItem, {
118
+ value: m.id,
119
+ className: "text-sm",
120
+ children: m.label
121
+ }, m.id))
122
+ })
119
123
  }),
120
- /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
124
+ /* @__PURE__ */ jsx(DropdownMenuSeparator, { className: "shrink-0" }),
121
125
  /* @__PURE__ */ jsx(DropdownMenuLabel, {
122
- className: "text-muted-foreground text-[10px] tracking-wide uppercase",
126
+ className: "text-muted-foreground shrink-0 text-[10px] tracking-wide uppercase",
123
127
  children: "Effort"
124
128
  }),
125
129
  /* @__PURE__ */ jsx(DropdownMenuRadioGroup, {
126
130
  value: effortId,
127
131
  onValueChange: (v) => onEffortChange(v),
132
+ className: "shrink-0",
128
133
  children: efforts.map((e) => /* @__PURE__ */ jsx(DropdownMenuRadioItem, {
129
134
  value: e.id,
130
135
  className: "text-sm",
@@ -1,2 +1,2 @@
1
- import { t as Autocomplete } from "../autocomplete-G24AgvxU.mjs";
1
+ import { t as Autocomplete } from "../autocomplete-DM6JYV4W.mjs";
2
2
  export { Autocomplete };
@@ -1,7 +1,7 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
2
  import { t as ResponsivePopover } from "./responsive-popover-DJZgXWIE.mjs";
3
3
  import { t as LoaderOverlay } from "./loader-overlay-DD94azZX.mjs";
4
- import { n as OptionList, t as useOptionPicker } from "./use-option-picker-CV-9CyBV.mjs";
4
+ import { n as OptionList, t as useOptionPicker } from "./use-option-picker-s2bUYwXC.mjs";
5
5
  import { ChevronDown } from "lucide-react";
6
6
  import * as React from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -2,8 +2,8 @@ import { t as cn } from "../utils-Bu32wN-x.mjs";
2
2
  import { t as Button } from "../button-A1qTjZ8U.mjs";
3
3
  import { t as Input } from "../input-j4tbmYYz.mjs";
4
4
  import { t as ResponsivePopover } from "../responsive-popover-DJZgXWIE.mjs";
5
- import { t as Tooltip } from "../tooltip-BhatUaar.mjs";
6
- import { n as OptionList, t as useOptionPicker } from "../use-option-picker-CV-9CyBV.mjs";
5
+ import { t as Tooltip } from "../tooltip-C_SL1imw.mjs";
6
+ import { n as OptionList, t as useOptionPicker } from "../use-option-picker-s2bUYwXC.mjs";
7
7
  import { AlertCircle, Loader2, X } from "lucide-react";
8
8
  import * as React from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -72,7 +72,8 @@ function Autosearch({ options = [], value, onValueChange, onSearch, searchDeboun
72
72
  options,
73
73
  value,
74
74
  onValueChange: (selected) => {
75
- setPersistedOption(options.find((o) => o.value === selected) ?? null);
75
+ const option = options.find((o) => o.value === selected) ?? null;
76
+ setPersistedOption(option);
76
77
  onValueChange?.(selected);
77
78
  picker.setSearch("");
78
79
  },
@@ -1,2 +1,2 @@
1
- import { n as avatarStackVariants, t as AvatarStack } from "../avatar-stack-D1-BA7hA.mjs";
1
+ import { n as avatarStackVariants, t as AvatarStack } from "../avatar-stack-BZK6zUJr.mjs";
2
2
  export { AvatarStack, avatarStackVariants };
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
2
  import { Avatar, AvatarFallback, AvatarImage } from "./avatar/index.mjs";
3
- import { t as Tooltip } from "./tooltip-BhatUaar.mjs";
3
+ import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
4
4
  import { cva } from "class-variance-authority";
5
5
  import "react";
6
6
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { o as DateRangePicker } from "./picker-CRUSdzpo.mjs";
1
+ import { o as DateRangePicker } from "./picker-b5-x-EHs.mjs";
2
2
  import { t as useDeprecationWarning } from "./use-deprecation-warning-DXrGc0jX.mjs";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/features/calendar-date-picker/calendar-date-picker.tsx
@@ -9,11 +9,12 @@ import { jsx } from "react/jsx-runtime";
9
9
  */
10
10
  function CalendarDatePicker({ date, onDateSelect, closeOnSelect, numberOfMonths = 2, placeholder, excludePresets, customPresets, minDate, maxDate, disableFuture, disablePast, className, triggerClassName, popoverClassName, disabled, modal, responsive = true, sheetTitle, id }) {
11
11
  useDeprecationWarning("CalendarDatePicker", "DateRangePicker");
12
+ const value = date?.from ? {
13
+ from: date.from,
14
+ to: date.to ?? date.from
15
+ } : null;
12
16
  return /* @__PURE__ */ jsx(DateRangePicker, {
13
- value: date?.from ? {
14
- from: date.from,
15
- to: date.to ?? date.from
16
- } : null,
17
+ value,
17
18
  onChange: (next) => {
18
19
  if (next === null) onDateSelect(void 0);
19
20
  else onDateSelect({
@@ -1,2 +1,2 @@
1
- import { a as ChartTooltip, i as ChartStyle, n as ChartLegend, o as ChartTooltipContent, r as ChartLegendContent, t as ChartContainer } from "../chart-DeCrbcpY.mjs";
1
+ import { a as ChartTooltip, i as ChartStyle, n as ChartLegend, o as ChartTooltipContent, r as ChartLegendContent, t as ChartContainer } from "../chart-EgzTS28l.mjs";
2
2
  export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
@@ -48,7 +48,8 @@ function ChartTooltipContent({ active, payload, label, className, indicator = "d
48
48
  const tooltipLabel = React.useMemo(() => {
49
49
  if (hideLabel || !payload?.length) return null;
50
50
  const [item] = payload;
51
- const itemConfig = getPayloadConfigFromPayload(config, item, `${labelKey || item?.dataKey || item?.name || "value"}`);
51
+ const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
52
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
52
53
  const value = (() => {
53
54
  const v = !labelKey && typeof label === "string" ? config[label]?.label ?? label : itemConfig?.label;
54
55
  return typeof v === "string" || typeof v === "number" ? v : void 0;
@@ -78,7 +79,8 @@ function ChartTooltipContent({ active, payload, label, className, indicator = "d
78
79
  children: [!nestLabel ? tooltipLabel : null, /* @__PURE__ */ jsx("div", {
79
80
  className: "grid gap-1.5",
80
81
  children: payload.map((item, index) => {
81
- const itemConfig = getPayloadConfigFromPayload(config, item, `${nameKey || item.name || item.dataKey || "value"}`);
82
+ const key = `${nameKey || item.name || item.dataKey || "value"}`;
83
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
82
84
  const indicatorColor = color || item.payload.fill || item.color;
83
85
  return /* @__PURE__ */ jsx("div", {
84
86
  className: cn("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5", indicator === "dot" && "items-center"),
@@ -118,7 +120,8 @@ function ChartLegendContent({ className, hideIcon = false, payload, nameKey }) {
118
120
  return /* @__PURE__ */ jsx("div", {
119
121
  className: cn("flex flex-wrap items-center justify-center gap-2", className),
120
122
  children: payload.map((item) => {
121
- const itemConfig = getPayloadConfigFromPayload(config, item, `${nameKey || item.dataKey || "value"}`);
123
+ const key = `${nameKey || item.dataKey || "value"}`;
124
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
122
125
  return /* @__PURE__ */ jsxs("div", {
123
126
  className: cn("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),
124
127
  children: [itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx("div", {
@@ -1,2 +1,2 @@
1
- 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-DrN0rei5.mjs";
1
+ 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";
2
2
  export { CodeEditor, CodeEditorTabs, createCodeEditorSchema, formatJson, formatYaml, isValidJson, isValidYaml, jsonSchema, jsonToYaml, yamlSchema, yamlToJson };
@@ -1,2 +1,2 @@
1
- import { _ as DEFAULT_DEBOUNCE_MS, a as useDataTablePagination, b as DEFAULT_PAGE_SIZES, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as useNuqsAdapter, h as createSelectionColumn, i as useDataTableLoading, l as useDataTableSorting, m as DataTableColumnHeader, n as useDataTableFilters, o as useDataTableRows, p as DataTableRowActions, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_LOADING_ROWS, y as DEFAULT_PAGE_SIZE } from "../data-table-CfeovSJV.mjs";
1
+ import { _ as DEFAULT_DEBOUNCE_MS, a as useDataTablePagination, b as DEFAULT_PAGE_SIZES, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as useNuqsAdapter, h as createSelectionColumn, i as useDataTableLoading, l as useDataTableSorting, m as DataTableColumnHeader, n as useDataTableFilters, o as useDataTableRows, p as DataTableRowActions, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_LOADING_ROWS, y as DEFAULT_PAGE_SIZE } from "../data-table-mByk373T.mjs";
2
2
  export { DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DataTable, DataTableColumnHeader, DataTableRowActions, createDataTableStore, createSelectionColumn, resolvePath, rowMatchesSearch, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useNuqsAdapter };
@@ -7,11 +7,11 @@ import { t as ResponsiveDropdown } from "./responsive-dropdown-fCmduKaz.mjs";
7
7
  import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-DCU44UO6.mjs";
8
8
  import { Skeleton } from "./skeleton/index.mjs";
9
9
  import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "./table/index.mjs";
10
- import { t as Autocomplete } from "./autocomplete-G24AgvxU.mjs";
11
- import { t as CalendarDatePicker } from "./calendar-date-picker-C52Y05ZN.mjs";
10
+ import { t as Autocomplete } from "./autocomplete-DM6JYV4W.mjs";
11
+ import { t as CalendarDatePicker } from "./calendar-date-picker-AzvSqjeS.mjs";
12
12
  import { t as ActionRow } from "./action-row-DTvs91_3.mjs";
13
13
  import { n as useDebouncedSearchInput } from "./use-debounced-search-input-yu_F0QBt.mjs";
14
- import { t as MultiSelect } from "./multi-select-DIWTdi0i.mjs";
14
+ import { t as MultiSelect } from "./multi-select-PHaMEbY-.mjs";
15
15
  import { ArrowDown, ArrowUp, ArrowUpDown, ChevronLeft, ChevronRight, MoreHorizontal, X } from "lucide-react";
16
16
  import { createContext, memo, use, useCallback, useContext, useEffect, useId, useMemo, useRef, useState, useSyncExternalStore } from "react";
17
17
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1499,16 +1499,17 @@ function DatePickerFilter({ column, label, className, datePickerPopoverClassName
1499
1499
  registerFilter,
1500
1500
  unregisterFilter
1501
1501
  ]);
1502
+ const dateRange = useMemo(() => {
1503
+ const date = rawValue ? new Date(rawValue) : void 0;
1504
+ return {
1505
+ from: date,
1506
+ to: date
1507
+ };
1508
+ }, [rawValue]);
1502
1509
  return /* @__PURE__ */ jsx("div", {
1503
1510
  "data-slot": "dt-filter",
1504
1511
  children: /* @__PURE__ */ jsx(CalendarDatePicker, {
1505
- date: useMemo(() => {
1506
- const date = rawValue ? new Date(rawValue) : void 0;
1507
- return {
1508
- from: date,
1509
- to: date
1510
- };
1511
- }, [rawValue]),
1512
+ date: dateRange,
1512
1513
  numberOfMonths: 1,
1513
1514
  closeOnSelect: true,
1514
1515
  placeholder: label,
@@ -1,4 +1,4 @@
1
- import { G as getTimezoneOffset, U as formatTimezoneLabel, W as getBrowserTimezone } from "../picker-CRUSdzpo.mjs";
2
- import { t as CalendarDatePicker } from "../calendar-date-picker-C52Y05ZN.mjs";
3
- 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-CgKtSuWO.mjs";
1
+ import { G as getTimezoneOffset, U as formatTimezoneLabel, W as getBrowserTimezone } from "../picker-b5-x-EHs.mjs";
2
+ import { t as CalendarDatePicker } from "../calendar-date-picker-AzvSqjeS.mjs";
3
+ 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-43Boq7OR.mjs";
4
4
  export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, CalendarDatePicker, DEFAULT_PRESETS, QuickRangesPanel, TimeRangePicker, TimezoneSelector, createTimezoneOption, formatDateForInput, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, getBrowserTimezone, getDefaultPreset, getDefaultTimezoneOptions, getPresetByKey, getPresetByShortcut, getPresetRange, getShortTimezoneDisplay, getTimezoneOffset, localInputStringToUtc, toApiTimeRange, utcStringToZonedDate, utcToLocalInputString, zonedDateToUtcString };
@@ -1,2 +1,2 @@
1
- import { t as DateTimePicker } from "../date-time-picker-BbtA6JJJ.mjs";
1
+ import { t as DateTimePicker } from "../date-time-picker-D3-DeNo8.mjs";
2
2
  export { DateTimePicker };
@@ -1,4 +1,4 @@
1
- import { i as DateTimePicker$1 } from "./picker-CRUSdzpo.mjs";
1
+ import { i as DateTimePicker$1 } from "./picker-b5-x-EHs.mjs";
2
2
  import { t as useDeprecationWarning } from "./use-deprecation-warning-DXrGc0jX.mjs";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/features/date-time-picker/date-time-picker.tsx
@@ -1,2 +1,2 @@
1
- import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "../dropzone-C_vA4q0u.mjs";
1
+ import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "../dropzone-DrWVd7OI.mjs";
2
2
  export { Dropzone, DropzoneContent, DropzoneEmptyState, FileInputButton };
@@ -64,10 +64,11 @@ function FileInputButton({ accept, maxSize, minSize, multiple = false, onFileSel
64
64
  onFileSelect?.(files);
65
65
  event.target.value = "";
66
66
  };
67
+ const acceptAttribute = accept ? [...Object.keys(accept), ...Object.values(accept).flat()].join(",") : void 0;
67
68
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("input", {
68
69
  ref: inputRef,
69
70
  type: "file",
70
- accept: accept ? [...Object.keys(accept), ...Object.values(accept).flat()].join(",") : void 0,
71
+ accept: acceptAttribute,
71
72
  multiple,
72
73
  onChange: handleChange,
73
74
  disabled,
@@ -186,8 +187,9 @@ function DropzoneEmptyState({ children, className, icon, label, description, sho
186
187
  if (minSize && maxSize) sizeClause = `between ${renderBytes(minSize)} and ${renderBytes(maxSize)}`;
187
188
  else if (minSize) sizeClause = `at least ${renderBytes(minSize)}`;
188
189
  else if (maxSize) sizeClause = `less than ${renderBytes(maxSize)}`;
189
- if (accept) {
190
- caption = `Accepts ${new Intl.ListFormat("en").format(Object.keys(accept))}`;
190
+ const acceptedTypes = Array.isArray(accept) ? accept.flatMap((group) => Object.keys(group.accept)) : Object.keys(accept ?? {});
191
+ if (acceptedTypes.length > 0) {
192
+ caption = `Accepts ${new Intl.ListFormat("en").format(acceptedTypes)}`;
191
193
  if (sizeClause) caption += ` ${sizeClause}`;
192
194
  } else if (sizeClause) caption = `File size must be ${sizeClause}`;
193
195
  }
@@ -1,2 +1,2 @@
1
- import { t as EmptyContent } from "../empty-content-BpS0PONb.mjs";
1
+ import { t as EmptyContent } from "../empty-content-DvaelFpJ.mjs";
2
2
  export { EmptyContent };
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
2
  import { t as Button } from "./button-A1qTjZ8U.mjs";
3
- import { t as Tooltip } from "./tooltip-BhatUaar.mjs";
3
+ import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
4
4
  import { cva } from "class-variance-authority";
5
5
  import { Fragment } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -115,10 +115,11 @@ function EmptyContent({ title = "No data found", subtitle, variant = "default",
115
115
  const renderAsLink = (action.as === "link" || action.as === "external-link") && !action.disabled;
116
116
  const { as: _as, label, tooltip, tooltipSide, hidden: _hidden, to, target, rel, download, hrefLang, referrerPolicy, ping, type = "secondary", size: sizeOverride, className: actionClassName, ...buttonProps } = action;
117
117
  const resolvedSize = sizeOverride ?? buttonSize;
118
+ const wrapperSize = BUTTON_SIZE_TO_CONTAINER[resolvedSize ?? "xs"] ?? "md";
118
119
  const button = /* @__PURE__ */ jsx(Button, {
119
120
  type,
120
121
  size: resolvedSize,
121
- className: cn(actionButtonVariants({ size: BUTTON_SIZE_TO_CONTAINER[resolvedSize ?? "xs"] ?? "md" }), actionClassName),
122
+ className: cn(actionButtonVariants({ size: wrapperSize }), actionClassName),
122
123
  ...buttonProps,
123
124
  children: label
124
125
  });
@@ -185,16 +185,18 @@ function useRHFField(name) {
185
185
  }
186
186
  /** Watch a single field's value reactively. */
187
187
  function useRHFWatchHook(name) {
188
+ const form = useFormContext();
188
189
  return useWatch({
189
190
  name,
190
- control: useFormContext().control
191
+ control: form.control
191
192
  });
192
193
  }
193
194
  /** Watch multiple fields' values reactively. */
194
195
  function useRHFWatchAllHook(names) {
196
+ const form = useFormContext();
195
197
  const values = useWatch({
196
198
  name: names,
197
- control: useFormContext().control
199
+ control: form.control
198
200
  });
199
201
  const namesKey = names.join(",");
200
202
  return React.useMemo(() => {
@@ -207,9 +209,10 @@ function useRHFWatchAllHook(names) {
207
209
  }
208
210
  /** Get field array helpers for a given array field name. */
209
211
  function useRHFFieldArrayHook(name) {
212
+ const form = useFormContext();
210
213
  const { fields, append, remove, move } = useFieldArray({
211
214
  name,
212
- control: useFormContext().control
215
+ control: form.control
213
216
  });
214
217
  return {
215
218
  items: React.useMemo(() => fields.map((field, index) => ({
@@ -1,3 +1,3 @@
1
- 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-2pTdgtYr.mjs";
1
+ 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-BUUNQfC9.mjs";
2
2
  import { n as useAdapter, t as FormAdapterProvider } from "../adapter-context-h0jCVqGO.mjs";
3
3
  export { 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, useAdapter, useField, useFieldContext, useFormContext, useFormState, useWatch, useWatchAll };
@@ -2,7 +2,7 @@ import { t as cn } from "../../utils-Bu32wN-x.mjs";
2
2
  import { t as Button } from "../../button-A1qTjZ8U.mjs";
3
3
  import { n as useFormContext, t as FormProvider } from "../../form-context-DzB2a-dw.mjs";
4
4
  import { n as useAdapter } from "../../adapter-context-h0jCVqGO.mjs";
5
- import { t as defineStepper } from "../../stepper-DJkYcilu.mjs";
5
+ import { t as defineStepper } from "../../stepper-dNvkipop.mjs";
6
6
  import { t as getObjectShape } from "../../zod-helpers-YEhVo2S-.mjs";
7
7
  import { CheckIcon } from "lucide-react";
8
8
  import * as React from "react";
@@ -76,7 +76,8 @@ function toStepperizeSteps(steps) {
76
76
  */
77
77
  function FormStepper({ steps, children, onComplete, onStepChange, initialStep, className, defaultValues, id, formComponent, mode = "onSubmit" }) {
78
78
  const stepperDef = React.useMemo(() => {
79
- return defineStepper(...toStepperizeSteps(steps));
79
+ const stepperizeSteps = toStepperizeSteps(steps);
80
+ return defineStepper(...stepperizeSteps);
80
81
  }, [steps]);
81
82
  const initialStepIndex = React.useMemo(() => {
82
83
  if (!initialStep) return void 0;
@@ -105,25 +106,27 @@ FormStepper.displayName = "Form.Stepper";
105
106
  function FormStepperContent({ steps, stepperDef, children, onComplete, onStepChange, className, defaultValues, id, formComponent, mode }) {
106
107
  const { useStepper } = stepperDef;
107
108
  const stepper = useStepper();
109
+ const currentStepConfig = React.useMemo(() => steps.find((s) => s.id === stepper.current.id) ?? steps[0], [steps, stepper.current.id]);
110
+ const storedValues = React.useMemo(() => {
111
+ const allData = steps.reduce((acc, step) => ({
112
+ ...acc,
113
+ ...stepper.data.get(step.id) || {}
114
+ }), {});
115
+ return {
116
+ ...defaultValues,
117
+ ...allData
118
+ };
119
+ }, [
120
+ steps,
121
+ stepper,
122
+ defaultValues,
123
+ stepper.current.id
124
+ ]);
108
125
  return /* @__PURE__ */ jsx(StepForm, {
109
126
  steps,
110
127
  stepper,
111
- currentStepConfig: React.useMemo(() => steps.find((s) => s.id === stepper.current.id) ?? steps[0], [steps, stepper.current.id]),
112
- storedValues: React.useMemo(() => {
113
- const allData = steps.reduce((acc, step) => ({
114
- ...acc,
115
- ...stepper.data.get(step.id) || {}
116
- }), {});
117
- return {
118
- ...defaultValues,
119
- ...allData
120
- };
121
- }, [
122
- steps,
123
- stepper,
124
- defaultValues,
125
- stepper.current.id
126
- ]),
128
+ currentStepConfig,
129
+ storedValues,
127
130
  onComplete,
128
131
  onStepChange,
129
132
  className,
@@ -418,10 +421,11 @@ function StepperNavigation({ variant = "horizontal", labelOrientation = "vertica
418
421
  children: steps.map((step, index) => {
419
422
  const isActive = index === currentIndex;
420
423
  const isCompleted = index < currentIndex;
424
+ const isLast = index === steps.length - 1;
421
425
  return /* @__PURE__ */ jsxs("div", {
422
426
  className: "relative flex flex-1 flex-col items-center",
423
427
  children: [
424
- !(index === steps.length - 1) && /* @__PURE__ */ jsx("div", { className: "bg-stepper-line absolute top-4 right-[calc(-50%+20px)] left-[calc(50%+20px)] h-0.5" }),
428
+ !isLast && /* @__PURE__ */ jsx("div", { className: "bg-stepper-line absolute top-4 right-[calc(-50%+20px)] left-[calc(50%+20px)] h-0.5" }),
425
429
  /* @__PURE__ */ jsx("div", {
426
430
  className: cn("relative z-10 flex h-8 w-8 items-center justify-center rounded-full border bg-transparent text-sm font-medium transition-colors", isActive && "border-primary bg-primary text-primary-foreground", isCompleted && "border-tertiary-foreground bg-tertiary-foreground text-tertiary", !isActive && !isCompleted && "border-stepper-label text-stepper-label"),
427
431
  "aria-current": isActive ? "step" : void 0,