@datum-cloud/datum-ui 3.7.0 → 3.8.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 (196) hide show
  1. package/dist/{action-row-DTvs91_3.mjs → action-row-BEzE9x37.mjs} +2 -3
  2. package/dist/{adapter-context-h0jCVqGO.mjs → adapter-context-XT749tyT.mjs} +1 -2
  3. package/dist/alert/index.mjs +1 -2
  4. package/dist/{alert-SAPwee1h.mjs → alert-CVckvox4.mjs} +2 -3
  5. package/dist/app-navigation/index.mjs +2 -2
  6. package/dist/{app-navigation-BB_NLEWv.mjs → app-navigation-DyNZwlSG.mjs} +14 -20
  7. package/dist/assistant/index.mjs +57 -63
  8. package/dist/autocomplete/index.mjs +1 -2
  9. package/dist/{autocomplete-BxtzndxZ.mjs → autocomplete-D0zAcT78.mjs} +6 -8
  10. package/dist/autosearch/index.mjs +8 -10
  11. package/dist/avatar/index.mjs +2 -3
  12. package/dist/avatar-stack/index.mjs +1 -2
  13. package/dist/{avatar-stack-BUcsjhA6.mjs → avatar-stack-2ow672bR.mjs} +3 -4
  14. package/dist/badge/index.mjs +181 -1
  15. package/dist/breadcrumb/index.mjs +1 -2
  16. package/dist/{breadcrumb-DmdhC8bE.mjs → breadcrumb-D97jAZ2N.mjs} +2 -3
  17. package/dist/button/index.mjs +2 -2
  18. package/dist/{button-CsdF61EI.mjs → button-C57mkFkS.mjs} +2 -3
  19. package/dist/{button-DoMqfQLu.mjs → button-Cn4KagBO.mjs} +4 -6
  20. package/dist/{button-CDPui_Ov.mjs → button-IK-Lnu_9.mjs} +3 -4
  21. package/dist/button-group/index.mjs +1 -2
  22. package/dist/{button-group-DFrTH4L8.mjs → button-group-C3GKo-0p.mjs} +3 -4
  23. package/dist/calendar/index.mjs +4 -5
  24. package/dist/{calendar-date-picker-DPvVAW2I.mjs → calendar-date-picker-CknZM6a2.mjs} +3 -4
  25. package/dist/card/index.mjs +1 -2
  26. package/dist/{card-save-bar-BZzNnKYj.mjs → card-save-bar-Te8jf-ie.mjs} +5 -8
  27. package/dist/chart/index.mjs +1 -2
  28. package/dist/{chart-EgzTS28l.mjs → chart-BsGsx2jb.mjs} +2 -3
  29. package/dist/checkbox/index.mjs +1 -2
  30. package/dist/checkbox-BAo5sbHk.mjs +84 -0
  31. package/dist/{close.icon-DdXKQ4m0.mjs → close.icon-BCPmH4nN.mjs} +2 -3
  32. package/dist/code-editor/index.mjs +1 -2
  33. package/dist/{col-BYGWTB4j.mjs → col-CYHIfPJq.mjs} +5 -9
  34. package/dist/collapsible/index.mjs +1 -7
  35. package/dist/collapsible-B-KP3JZ-.mjs +104 -0
  36. package/dist/command/index.mjs +1 -2
  37. package/dist/{command-C0aGIYnQ.mjs → command-B0be-zU5.mjs} +3 -4
  38. package/dist/components/base/checkbox/checkbox.d.ts +11 -3
  39. package/dist/components/base/collapsible/collapsible.d.ts +28 -0
  40. package/dist/components/base/collapsible/index.d.ts +1 -1
  41. package/dist/components/base/radio-group/radio-group.d.ts +11 -5
  42. package/dist/components/base/spinner/index.d.ts +1 -1
  43. package/dist/components/base/spinner/spinner.d.ts +11 -0
  44. package/dist/components/base/switch/switch.d.ts +6 -1
  45. package/dist/components/base/typography/typography.d.ts +1 -1
  46. package/dist/components/features/_shared/copy-state-icon.d.ts +12 -0
  47. package/dist/components/features/_shared/index.d.ts +2 -0
  48. package/dist/components/features/_shared/motion-chip.d.ts +293 -0
  49. package/dist/components/features/assistant/components/message/plan-card.d.ts +1 -1
  50. package/dist/components/icons/spinner.icon.d.ts +17 -3
  51. package/dist/copy-state-icon-DMvXXsZm.mjs +61 -0
  52. package/dist/data-table/index.mjs +1 -2
  53. package/dist/{data-table-CJiQQ6TM.mjs → data-table-CpBwO8Ea.mjs} +39 -66
  54. package/dist/date-picker/index.mjs +3 -3
  55. package/dist/date-time/index.mjs +1 -2
  56. package/dist/{date-time-lZdefM4H.mjs → date-time-BBRVM9qb.mjs} +4 -6
  57. package/dist/date-time-picker/index.mjs +1 -2
  58. package/dist/{date-time-picker-CricsXgF.mjs → date-time-picker-Bc41Ixrs.mjs} +3 -4
  59. package/dist/{date-time-range-picker-DM4AIvQ1.mjs → date-time-range-picker-yy1Acntn.mjs} +36 -59
  60. package/dist/dialog/index.mjs +1 -2
  61. package/dist/{dialog-Gu70fban.mjs → dialog-C8RXIQYm.mjs} +4 -5
  62. package/dist/{dialog-CmkrpaYy.mjs → dialog-D6sDXaH6.mjs} +2 -3
  63. package/dist/dropdown/index.mjs +1 -2
  64. package/dist/{dropdown-Xvduih96.mjs → dropdown-DR9j3Ni_.mjs} +3 -4
  65. package/dist/{dropdown-menu-b8zY5Cs6.mjs → dropdown-menu-CjgTr8Ab.mjs} +2 -3
  66. package/dist/dropzone/index.mjs +1 -2
  67. package/dist/{dropzone-ihksfjN2.mjs → dropzone-qKYfSe7o.mjs} +6 -8
  68. package/dist/empty-content/index.mjs +1 -2
  69. package/dist/{empty-content-CmuVcU0P.mjs → empty-content-CTMHak36.mjs} +8 -13
  70. package/dist/form/adapters/conform/index.mjs +4 -6
  71. package/dist/form/adapters/rhf/index.mjs +6 -9
  72. package/dist/form/index.mjs +2 -2
  73. package/dist/form/stepper/index.mjs +11 -16
  74. package/dist/{form-D4R6C609.mjs → form-DTaVgDSV.mjs} +64 -89
  75. package/dist/{form-context-DzB2a-dw.mjs → form-context-BRzt53M5.mjs} +1 -2
  76. package/dist/grid/index.mjs +1 -2
  77. package/dist/grouped-table/index.mjs +1 -2
  78. package/dist/{grouped-table-fHguJz9W.mjs → grouped-table-Dl6DclbV.mjs} +17 -25
  79. package/dist/hooks/index.mjs +4 -4
  80. package/dist/{hooks-CwZ6hyI1.mjs → hooks-WVJbyhCz.mjs} +1 -2
  81. package/dist/hover-card/index.mjs +1 -2
  82. package/dist/{hover-card-BNOE5vT5.mjs → hover-card-DSt1lZGg.mjs} +3 -5
  83. package/dist/{icon-wrapper-DKfJlJd0.mjs → icon-wrapper-CIk2th6R.mjs} +1 -2
  84. package/dist/icons/index.mjs +3 -3
  85. package/dist/index.mjs +80 -80
  86. package/dist/input/index.mjs +1 -2
  87. package/dist/{input-j4tbmYYz.mjs → input-DsT5qkJn.mjs} +3 -4
  88. package/dist/{input-DR-XbgpD.mjs → input-Wl1K48ca.mjs} +2 -3
  89. package/dist/input-group/index.mjs +1 -2
  90. package/dist/{input-group-DieA8aBt.mjs → input-group-CCzvJIZM.mjs} +5 -6
  91. package/dist/input-number/index.mjs +1 -2
  92. package/dist/{input-number-TXmW-X9o.mjs → input-number-DF-bfIo8.mjs} +5 -6
  93. package/dist/input-with-addons/index.mjs +2 -3
  94. package/dist/label/index.mjs +1 -2
  95. package/dist/{label-Bk6FXsju.mjs → label-BR1V3Imy.mjs} +3 -5
  96. package/dist/{layers-DWYdrGmC.mjs → layers-DLUbkJtt.mjs} +26 -27
  97. package/dist/loader-overlay/index.mjs +1 -2
  98. package/dist/{loader-overlay-DD94azZX.mjs → loader-overlay-DP0pvHuG.mjs} +3 -4
  99. package/dist/logo/index.mjs +2 -2
  100. package/dist/logo/themed/index.mjs +3 -4
  101. package/dist/{logo-C3FxD7jb.mjs → logo-CkzKra6H.mjs} +2 -3
  102. package/dist/{logo-text-Dpm5O6Kg.mjs → logo-text-B54YiEte.mjs} +6 -11
  103. package/dist/logs/fixtures/index.mjs +2 -4
  104. package/dist/logs/index.mjs +68 -87
  105. package/dist/map/index.mjs +1 -2
  106. package/dist/{map-leaflet-imports-S3kx8Q-S.mjs → map-leaflet-imports-Xdz9Xiaf.mjs} +1 -2
  107. package/dist/mobile-sheet/index.mjs +1 -2
  108. package/dist/{mobile-sheet-9TootJGg.mjs → mobile-sheet-1995HYY_.mjs} +6 -9
  109. package/dist/more-actions/index.mjs +2 -2
  110. package/dist/{more-actions-C3DYWO0a.mjs → more-actions-BlSOVwa8.mjs} +6 -7
  111. package/dist/{motion-DvGRWdsm.mjs → motion-DOrRbLmy.mjs} +1 -2
  112. package/dist/motion-chip-BczV7spP.mjs +52 -0
  113. package/dist/multi-select/index.mjs +1 -2
  114. package/dist/{multi-select-CF0Yq5yf.mjs → multi-select-C2cBrqXl.mjs} +61 -57
  115. package/dist/nprogress/index.mjs +1 -2
  116. package/dist/page-title/index.mjs +1 -2
  117. package/dist/{page-title-ipRWEOeM.mjs → page-title-Djl3LvPT.mjs} +2 -3
  118. package/dist/picker/index.mjs +2 -2
  119. package/dist/{picker-BoKXW6_s.mjs → picker-DC3GErYg.mjs} +14 -25
  120. package/dist/popover/index.mjs +1 -2
  121. package/dist/{popover-X82NwhX9.mjs → popover-7YxyP_W0.mjs} +3 -5
  122. package/dist/radio-group/index.mjs +1 -2
  123. package/dist/radio-group-Boxi2hm0.mjs +83 -0
  124. package/dist/responsive-dropdown/index.mjs +1 -2
  125. package/dist/{responsive-dropdown-C_KKgLbH.mjs → responsive-dropdown-DsWgpE_i.mjs} +5 -6
  126. package/dist/responsive-popover/index.mjs +1 -2
  127. package/dist/{responsive-popover-8VcjBM2d.mjs → responsive-popover-DJYd8lOK.mjs} +5 -6
  128. package/dist/rich-text-content/index.mjs +1 -2
  129. package/dist/{rich-text-content-DNonBD39.mjs → rich-text-content-BiIIowBU.mjs} +2 -3
  130. package/dist/rich-text-editor/index.mjs +2 -2
  131. package/dist/{rich-text-editor-CP1YyxMR.mjs → rich-text-editor-BUz06s-b.mjs} +14 -22
  132. package/dist/select/index.mjs +1 -2
  133. package/dist/{select-D4pk9e2d.mjs → select-DemYhwnG.mjs} +3 -4
  134. package/dist/{select-daE2Nn0Z.mjs → select-jgK6wyXj.mjs} +2 -3
  135. package/dist/separator/index.mjs +1 -2
  136. package/dist/{separator-vbPD_WFQ.mjs → separator-DNiiN2BN.mjs} +2 -3
  137. package/dist/settings-nav/index.mjs +1 -2
  138. package/dist/{settings-nav-Hf3GrCGv.mjs → settings-nav-CCZdPD-x.mjs} +2 -3
  139. package/dist/sheet/index.mjs +2 -2
  140. package/dist/{sheet-DHn6C_rs.mjs → sheet-DEpEJ_Rk.mjs} +4 -5
  141. package/dist/{sheet-DXCZyMHI.mjs → sheet-DYPtVIb2.mjs} +2 -3
  142. package/dist/sidebar/index.mjs +1 -2
  143. package/dist/{sidebar-sbqOOFii.mjs → sidebar-DWnxQWQ8.mjs} +13 -18
  144. package/dist/skeleton/index.mjs +3 -4
  145. package/dist/{skeleton-DFExK4GX.mjs → skeleton-CDPoo7-M.mjs} +2 -3
  146. package/dist/spinner/index.mjs +1 -2
  147. package/dist/spinner-DSlDJdWl.mjs +23 -0
  148. package/dist/spinner.icon-BiUnMAxw.mjs +104 -0
  149. package/dist/stepper/index.mjs +1 -2
  150. package/dist/{stepper-dNvkipop.mjs → stepper-ZipxpzWY.mjs} +10 -11
  151. package/dist/switch/index.mjs +1 -2
  152. package/dist/switch-IduVwiPZ.mjs +114 -0
  153. package/dist/table/index.mjs +2 -3
  154. package/dist/tabs/index.mjs +3 -4
  155. package/dist/tag-input/index.mjs +1 -2
  156. package/dist/{tag-input-c9OvWTSe.mjs → tag-input-a3ktkGrH.mjs} +46 -43
  157. package/dist/task-queue/index.mjs +1 -2
  158. package/dist/{task-queue-dropdown-CHPP5WIm.mjs → task-queue-dropdown-DuCAAybs.mjs} +39 -59
  159. package/dist/textarea/index.mjs +1 -2
  160. package/dist/{textarea-DiSGxCBO.mjs → textarea-CvhdK6JY.mjs} +3 -4
  161. package/dist/{textarea-CCxpXJdh.mjs → textarea-D36SE4ki.mjs} +2 -3
  162. package/dist/theme/index.mjs +1 -2
  163. package/dist/{themes-Ba2bajuF.mjs → themes-BoxnQbbu.mjs} +8 -10
  164. package/dist/time-picker/index.mjs +1 -2
  165. package/dist/{time-picker-DQlc2gKW.mjs → time-picker-B_am4eAK.mjs} +3 -4
  166. package/dist/{to-api-format-QuJ81vQ9.mjs → to-api-format-DyImCzCn.mjs} +15 -23
  167. package/dist/toast/index.mjs +2 -2
  168. package/dist/{toast-BUPlDkN3.mjs → toast-CizxCEcK.mjs} +4 -6
  169. package/dist/tooltip/index.mjs +1 -2
  170. package/dist/{tooltip-DhbN1BDK.mjs → tooltip-OIySjJWW.mjs} +3 -5
  171. package/dist/transfer/index.mjs +1 -2
  172. package/dist/{transfer-DsshYgIk.mjs → transfer-DGUeAQUL.mjs} +8 -14
  173. package/dist/{types-agDpVXBG.mjs → types-ChINrR8H.mjs} +7 -11
  174. package/dist/typography/index.mjs +1 -2
  175. package/dist/{typography-B1bpHKmV.mjs → typography-XFfN6PGD.mjs} +2 -3
  176. package/dist/{use-breakpoint-CwiUJSmk.mjs → use-breakpoint-zY_JYINK.mjs} +1 -2
  177. package/dist/{use-controllable-state-Dna7u3r9.mjs → use-controllable-state-DLeVgbAb.mjs} +1 -2
  178. package/dist/{use-copy-to-clipboard-DZDq_85T.mjs → use-copy-to-clipboard-CWKWHLxI.mjs} +1 -2
  179. package/dist/{use-debounced-search-input-yu_F0QBt.mjs → use-debounced-search-input-B4u28iLx.mjs} +1 -2
  180. package/dist/{use-deprecation-warning-DXrGc0jX.mjs → use-deprecation-warning-BS1V4IS5.mjs} +1 -2
  181. package/dist/{use-display-touched-CMEEv7aT.mjs → use-display-touched-BSq0Ninl.mjs} +3 -5
  182. package/dist/{use-option-picker-s2bUYwXC.mjs → use-option-picker-DXY2SNnT.mjs} +6 -9
  183. package/dist/{use-toast-Bpq0yJIT.mjs → use-toast-CZAZeS95.mjs} +3 -5
  184. package/dist/utils/index.mjs +3 -3
  185. package/dist/{utils-CA4QEIJ8.mjs → utils-CPJ5MCfd.mjs} +1 -2
  186. package/dist/{utils-Bu32wN-x.mjs → utils-CTIuhCOs.mjs} +1 -2
  187. package/dist/visually-hidden/index.mjs +1 -2
  188. package/dist/{visuallyhidden-D7L_qs8b.mjs → visuallyhidden-Mg4OsZ-l.mjs} +1 -2
  189. package/dist/{zod-helpers-YEhVo2S-.mjs → zod-helpers-JcfFVJJd.mjs} +1 -2
  190. package/package.json +20 -23
  191. package/dist/badge-DOZUr5DV.mjs +0 -183
  192. package/dist/checkbox-C6P12fio.mjs +0 -30
  193. package/dist/radio-group-LduBVTnh.mjs +0 -45
  194. package/dist/spinner-C5Xv-i2C.mjs +0 -14
  195. package/dist/spinner.icon-BYUMQ8H-.mjs +0 -48
  196. package/dist/switch-BaR-Vna4.mjs +0 -34
@@ -1,9 +1,9 @@
1
- import { t as cn } from "./utils-Bu32wN-x.mjs";
2
- import { t as CloseIcon } from "./close.icon-DdXKQ4m0.mjs";
1
+ import { t as cn } from "./utils-CTIuhCOs.mjs";
2
+ import { t as CloseIcon } from "./close.icon-BCPmH4nN.mjs";
3
3
  import { createElement } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { toast } from "sonner";
6
- //#region src/components/features/toast/headless-toast.tsx
6
+ // src/components/features/toast/headless-toast.tsx
7
7
  const variantAccentClass = {
8
8
  message: "bg-toast-success-background text-toast-success-foreground",
9
9
  info: "bg-toast-success-background text-toast-success-foreground",
@@ -57,8 +57,7 @@ function HeadlessToast({ variant, title, description, action, cancel, onDismiss
57
57
  })
58
58
  });
59
59
  }
60
- //#endregion
61
- //#region src/components/features/toast/toast.ts
60
+ // src/components/features/toast/toast.ts
62
61
  /**
63
62
  * Normalize a sonner `action`/`cancel` option (which may be an object with
64
63
  * `{ label, onClick }` or arbitrary ReactNode) into a `HeadlessToastAction`
@@ -119,5 +118,4 @@ const toast$1 = {
119
118
  return show("warning", title, options);
120
119
  }
121
120
  };
122
- //#endregion
123
121
  export { toast$1 as t };
@@ -1,2 +1 @@
1
- import { t as Tooltip } from "../tooltip-DhbN1BDK.mjs";
2
- export { Tooltip };
1
+ export { t as Tooltip } from "../tooltip-OIySjJWW.mjs";
@@ -1,8 +1,8 @@
1
- import { t as cn } from "./utils-Bu32wN-x.mjs";
1
+ import { t as cn } from "./utils-CTIuhCOs.mjs";
2
2
  import { useCallback, useEffect, useRef, useState } from "react";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
5
- //#region ../shadcn/ui/tooltip.tsx
5
+ // ../shadcn/ui/tooltip.tsx
6
6
  function TooltipProvider({ delayDuration = 0, ...props }) {
7
7
  return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, {
8
8
  "data-slot": "tooltip-provider",
@@ -31,8 +31,7 @@ function TooltipContent$1({ className, sideOffset = 0, children, ...props }) {
31
31
  children: [children, /* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })]
32
32
  }) });
33
33
  }
34
- //#endregion
35
- //#region src/components/base/tooltip/tooltip.tsx
34
+ // src/components/base/tooltip/tooltip.tsx
36
35
  const LONG_PRESS_DURATION = 500;
37
36
  const AUTO_DISMISS_DURATION = 1500;
38
37
  function TooltipContent({ className, arrowClassName, sideOffset = 0, children, ...props }) {
@@ -127,5 +126,4 @@ function Tooltip({ message, children, delayDuration = 200, side, align, sideOffs
127
126
  })]
128
127
  });
129
128
  }
130
- //#endregion
131
129
  export { TooltipTrigger as a, TooltipProvider as i, Tooltip$1 as n, TooltipContent$1 as r, Tooltip as t };
@@ -1,2 +1 @@
1
- import { t as Transfer } from "../transfer-DsshYgIk.mjs";
2
- export { Transfer };
1
+ export { t as Transfer } from "../transfer-DGUeAQUL.mjs";
@@ -1,10 +1,10 @@
1
- import { t as cn } from "./utils-Bu32wN-x.mjs";
2
- import { t as Button } from "./button-DoMqfQLu.mjs";
1
+ import { t as cn } from "./utils-CTIuhCOs.mjs";
2
+ import { t as Button } from "./button-Cn4KagBO.mjs";
3
3
  import { Search, X } from "lucide-react";
4
4
  import * as React from "react";
5
5
  import { useCallback, useEffect, useMemo, useState } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
- //#region src/components/features/transfer/components/transfer-group.tsx
7
+ // src/components/features/transfer/components/transfer-group.tsx
8
8
  const TransferGroup = ({ title, children }) => {
9
9
  return /* @__PURE__ */ jsxs("div", {
10
10
  className: "space-y-1",
@@ -14,8 +14,7 @@ const TransferGroup = ({ title, children }) => {
14
14
  }), children]
15
15
  });
16
16
  };
17
- //#endregion
18
- //#region src/components/features/transfer/components/transfer-item.tsx
17
+ // src/components/features/transfer/components/transfer-item.tsx
19
18
  const TransferItem = ({ label, onClick, disabled = false, panelType }) => {
20
19
  return /* @__PURE__ */ jsxs("div", {
21
20
  className: cn("group flex items-center gap-2 rounded p-2", "hover:bg-accent transition-colors", panelType === "source" && "cursor-pointer", disabled && "opacity-50 cursor-not-allowed"),
@@ -44,8 +43,7 @@ const TransferItem = ({ label, onClick, disabled = false, panelType }) => {
44
43
  })]
45
44
  });
46
45
  };
47
- //#endregion
48
- //#region src/components/features/transfer/components/transfer-search.tsx
46
+ // src/components/features/transfer/components/transfer-search.tsx
49
47
  const TransferSearch = ({ value, onChange, placeholder = "Search...", disabled = false }) => {
50
48
  return /* @__PURE__ */ jsxs("div", {
51
49
  className: "relative",
@@ -60,8 +58,7 @@ const TransferSearch = ({ value, onChange, placeholder = "Search...", disabled =
60
58
  })]
61
59
  });
62
60
  };
63
- //#endregion
64
- //#region src/components/features/transfer/components/transfer-panel.tsx
61
+ // src/components/features/transfer/components/transfer-panel.tsx
65
62
  const TransferPanel = ({ title, items, groups, searchable, searchValue, onSearchChange, searchPlaceholder, onItemClick, onSelectAll, enableSelectAll, disabled = false, panelType }) => {
66
63
  const groupedItems = React.useMemo(() => {
67
64
  if (groups.length === 0) return { "": items };
@@ -130,8 +127,7 @@ const TransferPanel = ({ title, items, groups, searchable, searchValue, onSearch
130
127
  })]
131
128
  });
132
129
  };
133
- //#endregion
134
- //#region src/components/features/transfer/hooks/use-transfer-state.ts
130
+ // src/components/features/transfer/hooks/use-transfer-state.ts
135
131
  function useTransferState({ items, value, itemKey, itemLabel, itemGroup }) {
136
132
  const [sourceSearch, setSourceSearch] = useState("");
137
133
  const [debouncedSourceSearch, setDebouncedSourceSearch] = useState("");
@@ -200,8 +196,7 @@ function useTransferState({ items, value, itemKey, itemLabel, itemGroup }) {
200
196
  setSourceSearch
201
197
  };
202
198
  }
203
- //#endregion
204
- //#region src/components/features/transfer/transfer.tsx
199
+ // src/components/features/transfer/transfer.tsx
205
200
  function Transfer({ items, value, onChange, itemKey, itemLabel, itemGroup, searchable = true, searchPlaceholder = "Search...", sourceTitle = "Available", targetTitle = "Selected", enableSelectAll = true, disabled = false, className }) {
206
201
  const state = useTransferState({
207
202
  items,
@@ -267,5 +262,4 @@ function Transfer({ items, value, onChange, itemKey, itemLabel, itemGroup, searc
267
262
  });
268
263
  }
269
264
  Transfer.displayName = "Transfer";
270
- //#endregion
271
265
  export { Transfer as t };
@@ -1,13 +1,13 @@
1
- import { t as cn } from "./utils-Bu32wN-x.mjs";
1
+ import { t as cn } from "./utils-CTIuhCOs.mjs";
2
2
  import { Tabs, TabsContent, TabsList, TabsTrigger } from "./tabs/index.mjs";
3
- import { n as useTheme } from "./themes-Ba2bajuF.mjs";
4
- import { t as toast } from "./toast-BUPlDkN3.mjs";
3
+ import { n as useTheme } from "./themes-BoxnQbbu.mjs";
4
+ import { t as toast } from "./toast-CizxCEcK.mjs";
5
5
  import { useEffect, useRef, useState } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import Editor from "@monaco-editor/react";
8
8
  import { CORE_SCHEMA, FAILSAFE_SCHEMA, dump, floatCoreTag, intCoreTag, load } from "js-yaml";
9
9
  import { z } from "zod";
10
- //#region src/components/features/code-editor/code-editor.tsx
10
+ // src/components/features/code-editor/code-editor.tsx
11
11
  /** Delay before the initial auto-format runs, giving Monaco time to settle. */
12
12
  const AUTO_FORMAT_DELAY_MS = 300;
13
13
  /**
@@ -125,8 +125,7 @@ function CodeEditor({ value, onChange, language, placeholder, id, name = "code-e
125
125
  ]
126
126
  });
127
127
  }
128
- //#endregion
129
- //#region src/components/features/code-editor/lib/editor.ts
128
+ // src/components/features/code-editor/lib/editor.ts
130
129
  /**
131
130
  * Wraps a numeric CORE scalar tag so that a token whose parsed number cannot be
132
131
  * re-serialized without loss is preserved as its original string rather than a
@@ -208,8 +207,7 @@ function yamlToJson(yamlStr) {
208
207
  throw new Error(`Invalid YAML format: ${error instanceof Error ? error.message : String(error)}`);
209
208
  }
210
209
  }
211
- //#endregion
212
- //#region src/components/features/code-editor/code-editor-tabs.tsx
210
+ // src/components/features/code-editor/code-editor-tabs.tsx
213
211
  /**
214
212
  * CodeEditorTabs - Dual-format code editor with JSON ↔ YAML conversion
215
213
  *
@@ -363,8 +361,7 @@ function CodeEditorTabs({ value, onChange, format = "yaml", onFormatChange, erro
363
361
  ]
364
362
  });
365
363
  }
366
- //#endregion
367
- //#region src/components/features/code-editor/types.ts
364
+ // src/components/features/code-editor/types.ts
368
365
  const jsonSchema = z.object({ jsonContent: z.string().min(1, "JSON content is required").refine(isValidJson, { message: "Invalid JSON format" }) });
369
366
  const yamlSchema = z.object({ yamlContent: z.string().min(1, "YAML content is required").refine(isValidYaml, { message: "Invalid YAML format" }) });
370
367
  function createCodeEditorSchema(name = "code-editor") {
@@ -385,5 +382,4 @@ function createCodeEditorSchema(name = "code-editor") {
385
382
  });
386
383
  });
387
384
  }
388
- //#endregion
389
385
  export { formatJson as a, isValidYaml as c, CodeEditor as d, CodeEditorTabs as i, jsonToYaml as l, jsonSchema as n, formatYaml as o, yamlSchema as r, isValidJson as s, createCodeEditorSchema as t, yamlToJson as u };
@@ -1,2 +1 @@
1
- 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-B1bpHKmV.mjs";
2
- export { Blockquote, Code, Link, List, ListItem, Paragraph, Text, Title, paragraphVariants, textVariants, titleVariants };
1
+ export { t as Blockquote, n as Code, r as Link, i as List, a as ListItem, o as Paragraph, s as Text, c as Title, l as paragraphVariants, u as textVariants, d as titleVariants } from "../typography-XFfN6PGD.mjs";
@@ -1,9 +1,9 @@
1
- import { t as cn } from "./utils-Bu32wN-x.mjs";
1
+ import { t as cn } from "./utils-CTIuhCOs.mjs";
2
2
  import { cva } from "class-variance-authority";
3
3
  import { CopyIcon } from "lucide-react";
4
4
  import * as React from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
- //#region src/components/base/typography/typography.tsx
6
+ // src/components/base/typography/typography.tsx
7
7
  const titleVariants = cva("font-semibold leading-tight tracking-tight", {
8
8
  variants: {
9
9
  level: {
@@ -205,5 +205,4 @@ function Code$1({ className, as = "code", children, ...props }) {
205
205
  children
206
206
  });
207
207
  }
208
- //#endregion
209
208
  export { ListItem as a, Title as c, titleVariants as d, List as i, paragraphVariants as l, Code$1 as n, Paragraph as o, Link$1 as r, Text as s, Blockquote as t, textVariants as u };
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState } from "react";
2
- //#region src/hooks/use-breakpoint.ts
2
+ // src/hooks/use-breakpoint.ts
3
3
  const TABLET_MIN = 768;
4
4
  const DESKTOP_MIN = 1024;
5
5
  function getBreakpoint() {
@@ -32,5 +32,4 @@ function useBreakpoint() {
32
32
  }, []);
33
33
  return breakpoint;
34
34
  }
35
- //#endregion
36
35
  export { useBreakpoint as t };
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useState } from "react";
2
- //#region src/components/base/hooks/use-controllable-state.ts
2
+ // src/components/base/hooks/use-controllable-state.ts
3
3
  /**
4
4
  * Uncontrolled-by-default state with an optional controlled override.
5
5
  * When `controlled` is undefined the hook owns the value; otherwise the prop wins.
@@ -22,5 +22,4 @@ function useControllableState(controlled, defaultValue, onChange) {
22
22
  value
23
23
  ])];
24
24
  }
25
- //#endregion
26
25
  export { useControllableState as t };
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useEffect, useRef, useState } from "react";
2
- //#region src/hooks/use-copy-to-clipboard.ts
2
+ // src/hooks/use-copy-to-clipboard.ts
3
3
  function useCopyToClipboard() {
4
4
  const [isCopied, setIsCopied] = useState(false);
5
5
  const timeoutRef = useRef(null);
@@ -31,5 +31,4 @@ function useCopyToClipboard() {
31
31
  }
32
32
  }, [])];
33
33
  }
34
- //#endregion
35
34
  export { useCopyToClipboard as t };
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState } from "react";
2
- //#region src/hooks/use-debounced-search-input.ts
2
+ // src/hooks/use-debounced-search-input.ts
3
3
  /** Default debounce delay for search inputs, in milliseconds. */
4
4
  const DEFAULT_SEARCH_DEBOUNCE_MS = 300;
5
5
  /**
@@ -33,5 +33,4 @@ function useDebouncedSearchInput(value, onChange, delay = 300) {
33
33
  ]);
34
34
  return [inputValue, setInputValue];
35
35
  }
36
- //#endregion
37
36
  export { useDebouncedSearchInput as n, DEFAULT_SEARCH_DEBOUNCE_MS as t };
@@ -1,5 +1,5 @@
1
1
  import { useEffect } from "react";
2
- //#region src/components/features/_shared/use-deprecation-warning.ts
2
+ // src/components/features/_shared/use-deprecation-warning.ts
3
3
  const warned = /* @__PURE__ */ new Set();
4
4
  /**
5
5
  * Logs a one-time `console.warn` in development warning that the legacy
@@ -16,5 +16,4 @@ function useDeprecationWarning(legacyName, replacement) {
16
16
  console.warn(`[datum-ui] ${legacyName} is deprecated. Use ${replacement} from '@datum-cloud/datum-ui/picker' instead. See picker-migration.mdx.`);
17
17
  }, [legacyName, replacement]);
18
18
  }
19
- //#endregion
20
19
  export { useDeprecationWarning as t };
@@ -1,7 +1,7 @@
1
- import { t as getObjectShape } from "./zod-helpers-YEhVo2S-.mjs";
1
+ import { t as getObjectShape } from "./zod-helpers-JcfFVJJd.mjs";
2
2
  import * as React from "react";
3
3
  import "zod";
4
- //#region src/components/features/form/utils/get-field-constraints.ts
4
+ // src/components/features/form/utils/get-field-constraints.ts
5
5
  /**
6
6
  * Extract field-level constraints from a Zod schema.
7
7
  * Works with ZodObject, ZodIntersection (from .and()), and ZodPipe (from .transform()).
@@ -23,8 +23,7 @@ function isRequired(schema) {
23
23
  if (type === "optional" || type === "nullable" || type === "default") return false;
24
24
  return true;
25
25
  }
26
- //#endregion
27
- //#region src/components/features/form/hooks/use-display-touched.ts
26
+ // src/components/features/form/hooks/use-display-touched.ts
28
27
  /**
29
28
  * Shared display-level touched tracking, independent of adapter-specific blur tracking.
30
29
  *
@@ -54,5 +53,4 @@ function useDisplayTouched(schema) {
54
53
  markAllFieldsTouched
55
54
  };
56
55
  }
57
- //#endregion
58
56
  export { getFieldConstraints as n, useDisplayTouched as t };
@@ -1,11 +1,11 @@
1
- import { a as CommandInput, i as CommandGroup, o as CommandItem, r as CommandEmpty, s as CommandList, t as Command } from "./command-C0aGIYnQ.mjs";
2
- import { t as useControllableState } from "./use-controllable-state-Dna7u3r9.mjs";
3
- import { t as LoaderOverlay } from "./loader-overlay-DD94azZX.mjs";
1
+ import { t as useControllableState } from "./use-controllable-state-DLeVgbAb.mjs";
2
+ import { a as CommandInput, i as CommandGroup, o as CommandItem, r as CommandEmpty, s as CommandList, t as Command } from "./command-B0be-zU5.mjs";
3
+ import { t as LoaderOverlay } from "./loader-overlay-DP0pvHuG.mjs";
4
4
  import { CheckIcon } from "lucide-react";
5
5
  import { useCallback, useMemo, useRef, useState } from "react";
6
6
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
7
  import { useVirtualizer } from "@tanstack/react-virtual";
8
- //#region src/components/base/option-picker/types.ts
8
+ // src/components/base/option-picker/types.ts
9
9
  /**
10
10
  * Detect whether an options prop is grouped.
11
11
  *
@@ -25,8 +25,7 @@ function isGroupedOptions(options) {
25
25
  function flattenOptions(options) {
26
26
  return isGroupedOptions(options) ? options.flatMap((g) => g.options) : options;
27
27
  }
28
- //#endregion
29
- //#region src/components/base/option-picker/option-list.tsx
28
+ // src/components/base/option-picker/option-list.tsx
30
29
  function defaultRenderOption(option, isSelected) {
31
30
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
32
31
  className: "flex min-w-0 flex-1 flex-col",
@@ -130,8 +129,7 @@ function VirtualCommandGroup({ options, isSelected, toggle, renderOption, listRe
130
129
  })
131
130
  }) });
132
131
  }
133
- //#endregion
134
- //#region src/components/base/option-picker/use-option-picker.ts
132
+ // src/components/base/option-picker/use-option-picker.ts
135
133
  function useOptionPicker(args) {
136
134
  const { options, multiple, value, defaultValue, onValueChange, onSearchChange, creatable = false, creatableLabel, closeOnSelect = true, onOpenChange, getOptionValue: getOptionValueProp, getOptionLabel: getOptionLabelProp } = args;
137
135
  const getOptionValue = useMemo(() => getOptionValueProp ?? ((o) => o.value), [getOptionValueProp]);
@@ -234,5 +232,4 @@ function useOptionPicker(args) {
234
232
  listRef: useRef(null)
235
233
  };
236
234
  }
237
- //#endregion
238
235
  export { OptionList as n, useOptionPicker as t };
@@ -1,8 +1,8 @@
1
- import { t as toast$1 } from "./toast-BUPlDkN3.mjs";
1
+ import { t as toast$1 } from "./toast-CizxCEcK.mjs";
2
2
  import { useEffect } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { Toaster } from "sonner";
5
- //#region src/components/features/toast/toaster.tsx
5
+ // src/components/features/toast/toaster.tsx
6
6
  /**
7
7
  * Sonner Toaster configured for "headless" usage.
8
8
  *
@@ -17,8 +17,7 @@ function Toaster$1({ toastOptions, ...props }) {
17
17
  ...props
18
18
  });
19
19
  }
20
- //#endregion
21
- //#region src/components/features/toast/use-toast.ts
20
+ // src/components/features/toast/use-toast.ts
22
21
  /**
23
22
  * Sonner is a toast library for React.
24
23
  * Implementation based on github.com/epicweb-dev/epic-stack
@@ -40,5 +39,4 @@ function useToast(toastData) {
40
39
  return () => clearTimeout(timer);
41
40
  }, [toastData]);
42
41
  }
43
- //#endregion
44
42
  export { Toaster$1 as n, useToast as t };
@@ -1,4 +1,4 @@
1
- import { t as cn } from "../utils-Bu32wN-x.mjs";
2
- import { n as EASE, t as DURATION } from "../motion-DvGRWdsm.mjs";
3
- import { n as toUTCTimestampStartOfDay, t as toUTCTimestampEndOfDay } from "../utils-CA4QEIJ8.mjs";
1
+ import { t as cn } from "../utils-CTIuhCOs.mjs";
2
+ import { n as EASE, t as DURATION } from "../motion-DOrRbLmy.mjs";
3
+ import { n as toUTCTimestampStartOfDay, t as toUTCTimestampEndOfDay } from "../utils-CPJ5MCfd.mjs";
4
4
  export { DURATION, EASE, cn, toUTCTimestampEndOfDay, toUTCTimestampStartOfDay };
@@ -1,6 +1,6 @@
1
1
  import { fromZonedTime, toZonedTime } from "date-fns-tz";
2
2
  import { endOfDay, startOfDay } from "date-fns";
3
- //#region src/utils/timezone.ts
3
+ // src/utils/timezone.ts
4
4
  /**
5
5
  * Timezone-aware conversion utilities for date filters.
6
6
  *
@@ -35,5 +35,4 @@ function toUTCTimestampEndOfDay(date, timezone) {
35
35
  const utcDate = fromZonedTime(endOfDayInTz, timezone);
36
36
  return Math.floor(utcDate.getTime() / 1e3);
37
37
  }
38
- //#endregion
39
38
  export { toUTCTimestampStartOfDay as n, toUTCTimestampEndOfDay as t };
@@ -1,6 +1,6 @@
1
1
  import { clsx } from "clsx";
2
2
  import { twMerge } from "tailwind-merge";
3
- //#region ../shadcn/lib/utils.ts
3
+ // ../shadcn/lib/utils.ts
4
4
  /**
5
5
  * shadcn/ui Utilities
6
6
  * Combines multiple class names using clsx and tailwind-merge
@@ -14,5 +14,4 @@ import { twMerge } from "tailwind-merge";
14
14
  function cn(...inputs) {
15
15
  return twMerge(clsx(inputs));
16
16
  }
17
- //#endregion
18
17
  export { cn as t };
@@ -1,2 +1 @@
1
- import { t as VisuallyHidden } from "../visuallyhidden-D7L_qs8b.mjs";
2
- export { VisuallyHidden };
1
+ export { t as VisuallyHidden } from "../visuallyhidden-Mg4OsZ-l.mjs";
@@ -1,5 +1,4 @@
1
1
  import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
2
- //#region ../shadcn/ui/visuallyhidden.tsx
2
+ // ../shadcn/ui/visuallyhidden.tsx
3
3
  const VisuallyHidden$1 = { Root: VisuallyHidden };
4
- //#endregion
5
4
  export { VisuallyHidden$1 as t };
@@ -1,4 +1,4 @@
1
- //#region src/components/features/form/utils/zod-helpers.ts
1
+ // src/components/features/form/utils/zod-helpers.ts
2
2
  /**
3
3
  * Extract the shape from a ZodObject, ZodIntersection, or ZodPipe.
4
4
  * Uses Zod v4's `def.type` discriminant.
@@ -23,5 +23,4 @@ function getObjectShape(schema) {
23
23
  if (def.type === "pipe") return getObjectShape(def.in);
24
24
  return null;
25
25
  }
26
- //#endregion
27
26
  export { getObjectShape as t };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@datum-cloud/datum-ui",
3
3
  "type": "module",
4
- "version": "3.7.0",
4
+ "version": "3.8.0",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "url": "https://github.com/datum-cloud/datum-ui"
@@ -478,7 +478,7 @@
478
478
  "recharts": ">=3 <4",
479
479
  "sonner": ">=2.0.7 <3",
480
480
  "streamdown": ">=2 <3",
481
- "zod": ">=4 <5"
481
+ "zod": ">=4.6.6 <5"
482
482
  },
483
483
  "peerDependenciesMeta": {
484
484
  "@conform-to/react": {
@@ -559,9 +559,6 @@
559
559
  "monaco-editor": {
560
560
  "optional": true
561
561
  },
562
- "motion": {
563
- "optional": true
564
- },
565
562
  "nprogress": {
566
563
  "optional": true
567
564
  },
@@ -600,6 +597,7 @@
600
597
  }
601
598
  },
602
599
  "dependencies": {
600
+ "@datum-cloud/datum-ui-assistant-core": "^0.1.0",
603
601
  "@radix-ui/react-avatar": "^1.2.6",
604
602
  "@radix-ui/react-checkbox": "^1.3.11",
605
603
  "@radix-ui/react-collapsible": "^1.1.20",
@@ -619,17 +617,16 @@
619
617
  "class-variance-authority": "^0.7.1",
620
618
  "clsx": "^2.1.1",
621
619
  "cmdk": "^1.1.1",
622
- "isomorphic-dompurify": "^3.22.0",
623
- "tailwind-merge": "^3.6.0",
624
- "tw-animate-css": "^1.4.0",
625
- "@datum-cloud/datum-ui-assistant-core": "^0.1.0"
620
+ "isomorphic-dompurify": "^3.23.0",
621
+ "tailwind-merge": "^3.7.0",
622
+ "tw-animate-css": "^1.4.0"
626
623
  },
627
624
  "devDependencies": {
628
625
  "@conform-to/react": "^1.21.0",
629
626
  "@conform-to/zod": "^1.21.0",
630
627
  "@dnd-kit/core": "^6.3.1",
631
628
  "@dnd-kit/sortable": "^10.0.0",
632
- "@hookform/resolvers": "^5.7.1",
629
+ "@hookform/resolvers": "^5.9.2",
633
630
  "@monaco-editor/react": "^4.7.0",
634
631
  "@stepperize/react": "^7.0.0",
635
632
  "@streamdown/code": "^1.1.1",
@@ -651,25 +648,25 @@
651
648
  "@types/nprogress": "^0.2.3",
652
649
  "@types/react": "^19.2.18",
653
650
  "@types/react-dom": "^19.2.4",
654
- "@vitest/coverage-v8": "^4.1.10",
655
- "ai": "^7.0.66",
651
+ "@vitest/coverage-v8": "^4.1.12",
652
+ "ai": "^7.0.162",
656
653
  "date-fns": "^4.4.0",
657
654
  "date-fns-tz": "^3.2.0",
658
655
  "eslint": "^10.8.1",
659
- "js-yaml": "^5.4.2",
660
- "jsdom": "^30.0.1",
656
+ "js-yaml": "^5.5.0",
657
+ "jsdom": "^30.1.3",
661
658
  "leaflet": "^1.9.4",
662
659
  "leaflet-draw": "^1.0.4",
663
660
  "leaflet.fullscreen": "^5.3.3",
664
661
  "leaflet.markercluster": "^1.5.3",
665
662
  "lucide-react": "^1.31.0",
666
- "monaco-editor": "^0.56.0",
667
- "motion": "^13.1.0",
663
+ "monaco-editor": "^0.57.0",
664
+ "motion": "^13.5.1",
668
665
  "nprogress": "^0.2.0",
669
- "nuqs": "^2.9.6",
670
- "react": "^19.2.8",
666
+ "nuqs": "^2.10.2",
667
+ "react": "^19.3.1",
671
668
  "react-day-picker": "^10.0.1",
672
- "react-dom": "^19.2.8",
669
+ "react-dom": "^19.3.1",
673
670
  "react-dropzone": "^20.1.0",
674
671
  "react-hook-form": "^7.85.0",
675
672
  "react-leaflet": "^5.0.0",
@@ -677,12 +674,12 @@
677
674
  "react-number-format": "^5.4.5",
678
675
  "recharts": "^3.10.1",
679
676
  "sonner": "^2.0.8",
680
- "streamdown": "^2.5.0",
677
+ "streamdown": "^2.7.1",
681
678
  "tailwindcss": "^4.3.3",
682
- "tsdown": "^0.22.14",
679
+ "tsdown": "^0.23.5",
683
680
  "typescript": "^6.0.3",
684
- "vitest": "^4.1.10",
685
- "zod": "^4.4.3"
681
+ "vitest": "^4.1.12",
682
+ "zod": "^4.6.7"
686
683
  },
687
684
  "publishConfig": {
688
685
  "access": "public"