@wow-two-beta/ui 0.0.67 → 0.0.68

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 (187) hide show
  1. package/dist/actions/index.js +8 -8
  2. package/dist/actions/speedDial/SpeedDial.d.ts +8 -6
  3. package/dist/actions/toolbar/Toolbar.d.ts +4 -6
  4. package/dist/{chunk-3SWPYYRQ.js → chunk-3BKZLK7D.js} +5 -5
  5. package/dist/{chunk-3SWPYYRQ.js.map → chunk-3BKZLK7D.js.map} +1 -1
  6. package/dist/{chunk-XLYJF3HC.js → chunk-B4X7XXSM.js} +4 -4
  7. package/dist/{chunk-XLYJF3HC.js.map → chunk-B4X7XXSM.js.map} +1 -1
  8. package/dist/{chunk-X2MYOHOB.js → chunk-D4ZT36AZ.js} +2 -2
  9. package/dist/chunk-D4ZT36AZ.js.map +1 -0
  10. package/dist/{chunk-D6K6MU2G.js → chunk-D5QVCOX5.js} +57 -43
  11. package/dist/chunk-D5QVCOX5.js.map +1 -0
  12. package/dist/{chunk-MVMDDGW7.js → chunk-D7ZFCHX5.js} +3 -3
  13. package/dist/{chunk-MVMDDGW7.js.map → chunk-D7ZFCHX5.js.map} +1 -1
  14. package/dist/{chunk-LGTGZ3RW.js → chunk-F4HGQMUI.js} +2 -2
  15. package/dist/chunk-F4HGQMUI.js.map +1 -0
  16. package/dist/{chunk-YQGEF43L.js → chunk-GPMNI5MG.js} +6 -6
  17. package/dist/{chunk-YQGEF43L.js.map → chunk-GPMNI5MG.js.map} +1 -1
  18. package/dist/{chunk-ZTK5ZQIL.js → chunk-HPA5BHDK.js} +57 -44
  19. package/dist/chunk-HPA5BHDK.js.map +1 -0
  20. package/dist/{chunk-7ZDLUNAY.js → chunk-KZLEHWAJ.js} +4 -4
  21. package/dist/{chunk-7ZDLUNAY.js.map → chunk-KZLEHWAJ.js.map} +1 -1
  22. package/dist/{chunk-3BNEDKMS.js → chunk-ORYO55KN.js} +24 -20
  23. package/dist/chunk-ORYO55KN.js.map +1 -0
  24. package/dist/{chunk-NOOKDXIZ.js → chunk-OZBLEOLZ.js} +5 -5
  25. package/dist/chunk-OZBLEOLZ.js.map +1 -0
  26. package/dist/{chunk-MZZKA3ZS.js → chunk-QTHKG7MQ.js} +41 -38
  27. package/dist/chunk-QTHKG7MQ.js.map +1 -0
  28. package/dist/{chunk-JLAFUXGZ.js → chunk-R5MOEUXM.js} +21 -16
  29. package/dist/chunk-R5MOEUXM.js.map +1 -0
  30. package/dist/{chunk-V267IMBH.js → chunk-RNHY33US.js} +4 -4
  31. package/dist/chunk-RNHY33US.js.map +1 -0
  32. package/dist/{chunk-FMTBJJP6.js → chunk-UMRRFZ4R.js} +3 -3
  33. package/dist/{chunk-FMTBJJP6.js.map → chunk-UMRRFZ4R.js.map} +1 -1
  34. package/dist/{chunk-NEH4ITXL.js → chunk-VTRPW2QQ.js} +15 -13
  35. package/dist/chunk-VTRPW2QQ.js.map +1 -0
  36. package/dist/{chunk-NW7ULTYL.js → chunk-VYFPLQPV.js} +4 -4
  37. package/dist/{chunk-NW7ULTYL.js.map → chunk-VYFPLQPV.js.map} +1 -1
  38. package/dist/{chunk-4XWLEKH2.js → chunk-WKVWOAQV.js} +3 -3
  39. package/dist/{chunk-4XWLEKH2.js.map → chunk-WKVWOAQV.js.map} +1 -1
  40. package/dist/{chunk-ZC4H4PIN.js → chunk-X5JSX4PU.js} +20 -17
  41. package/dist/chunk-X5JSX4PU.js.map +1 -0
  42. package/dist/{chunk-GTBNVI77.js → chunk-XFUD3RZK.js} +59 -45
  43. package/dist/chunk-XFUD3RZK.js.map +1 -0
  44. package/dist/{chunk-H3WC7KRX.js → chunk-XOUAFZ2E.js} +70 -54
  45. package/dist/chunk-XOUAFZ2E.js.map +1 -0
  46. package/dist/{chunk-DX7FYAKY.js → chunk-XSW3NZDD.js} +17 -17
  47. package/dist/chunk-XSW3NZDD.js.map +1 -0
  48. package/dist/display/carousel/Carousel.d.ts +9 -11
  49. package/dist/display/collapsible/Collapsible.d.ts +4 -6
  50. package/dist/display/index.js +10 -10
  51. package/dist/display/list/List.d.ts +3 -5
  52. package/dist/display/table/Table.d.ts +9 -11
  53. package/dist/display/tabs/Tabs.d.ts +5 -7
  54. package/dist/display/timeline/Timeline.d.ts +3 -5
  55. package/dist/display/tree/Tree.d.ts +4 -6
  56. package/dist/feedback/index.js +9 -9
  57. package/dist/feedback/onboardingChecklist/OnboardingChecklist.d.ts +3 -9
  58. package/dist/forms/characterCount/CharacterCount.d.ts +1 -1
  59. package/dist/forms/combobox/Combobox.d.ts +8 -6
  60. package/dist/forms/editable/Editable.d.ts +10 -8
  61. package/dist/forms/{formField/FormField.d.ts → field/Field.d.ts} +2 -2
  62. package/dist/forms/field/index.d.ts +6 -0
  63. package/dist/forms/index.d.ts +2 -2
  64. package/dist/forms/index.js +14 -14
  65. package/dist/forms/labeledInput/LabeledInput.d.ts +6 -2
  66. package/dist/forms/labeledInput/index.d.ts +1 -0
  67. package/dist/forms/multiSelect/MultiSelect.d.ts +8 -6
  68. package/dist/forms/stepper/Stepper.d.ts +5 -7
  69. package/dist/forms/textareaInput/TextareaInput.d.ts +9 -0
  70. package/dist/forms/textareaInput/index.d.ts +6 -0
  71. package/dist/forms/wizard/Wizard.d.ts +5 -7
  72. package/dist/hooks/index.js +2 -2
  73. package/dist/hooks/useClipboard/index.d.ts +1 -0
  74. package/dist/hooks/useControlled/index.d.ts +1 -0
  75. package/dist/hooks/useDebounceHandler/index.d.ts +1 -0
  76. package/dist/hooks/useDisclosure/index.d.ts +1 -0
  77. package/dist/hooks/useEscape/index.d.ts +1 -0
  78. package/dist/hooks/useEventListener/index.d.ts +1 -0
  79. package/dist/hooks/useFocusTrap/index.d.ts +1 -0
  80. package/dist/hooks/useId/index.d.ts +1 -0
  81. package/dist/hooks/useMediaQuery/index.d.ts +1 -0
  82. package/dist/hooks/useOutsideClick/index.d.ts +1 -0
  83. package/dist/hooks/useReducedMotion/index.d.ts +1 -0
  84. package/dist/hooks/useResizeObserver/index.d.ts +1 -0
  85. package/dist/hooks/useScrollLock/index.d.ts +1 -0
  86. package/dist/hooks/useTypeahead/index.d.ts +1 -0
  87. package/dist/icons/index.js +3 -3
  88. package/dist/index.js +22 -22
  89. package/dist/layout/appShell/AppShell.d.ts +8 -15
  90. package/dist/layout/index.js +11 -11
  91. package/dist/layout/resizablePanels/ResizablePanels.d.ts +4 -6
  92. package/dist/nav/commandPalette/CommandPalette.d.ts +11 -9
  93. package/dist/nav/contextMenu/ContextMenu.d.ts +9 -7
  94. package/dist/nav/dropdownMenu/DropdownMenu.d.ts +9 -7
  95. package/dist/nav/index.js +11 -11
  96. package/dist/nav/menu/Menu.d.ts +7 -5
  97. package/dist/nav/menubar/Menubar.d.ts +5 -7
  98. package/dist/nav/navigationMenu/NavigationMenu.d.ts +7 -9
  99. package/dist/overlays/actionSheet/ActionSheet.d.ts +8 -6
  100. package/dist/overlays/alertModal/AlertModal.d.ts +30 -0
  101. package/dist/overlays/alertModal/index.d.ts +6 -0
  102. package/dist/overlays/backdrop/Backdrop.d.ts +1 -1
  103. package/dist/overlays/bottomSheet/BottomSheet.d.ts +4 -11
  104. package/dist/overlays/drawer/Drawer.d.ts +14 -12
  105. package/dist/overlays/hoverCard/HoverCard.d.ts +7 -5
  106. package/dist/overlays/index.d.ts +2 -2
  107. package/dist/overlays/index.js +10 -10
  108. package/dist/overlays/modal/Modal.d.ts +54 -0
  109. package/dist/overlays/modal/index.d.ts +6 -0
  110. package/dist/overlays/popover/Popover.d.ts +8 -6
  111. package/dist/primitives/formControlContext/FormControlContext.d.ts +1 -1
  112. package/dist/primitives/index.js +3 -3
  113. package/dist/utils/ColorExtensions/index.d.ts +1 -0
  114. package/dist/utils/CssExtensions/index.d.ts +1 -0
  115. package/dist/utils/Environment/index.d.ts +1 -0
  116. package/dist/utils/Equality/index.d.ts +1 -0
  117. package/dist/utils/HtmlExtensions/index.d.ts +1 -0
  118. package/dist/utils/KeyboardExtensions/index.d.ts +1 -0
  119. package/dist/utils/Layers/index.d.ts +1 -0
  120. package/dist/utils/OptionalExtensions/index.d.ts +1 -0
  121. package/dist/utils/PressExtensions/index.d.ts +1 -0
  122. package/dist/utils/StyleTokens/index.d.ts +1 -0
  123. package/dist/utils/{SurfaceStyles.d.ts → SurfaceStyles/SurfaceStyles.d.ts} +1 -1
  124. package/dist/utils/SurfaceStyles/index.d.ts +1 -0
  125. package/dist/utils/{Tones.d.ts → Tones/Tones.d.ts} +1 -1
  126. package/dist/utils/Tones/index.d.ts +1 -0
  127. package/dist/utils/TransitionExtensions/index.d.ts +1 -0
  128. package/dist/utils/cn/index.d.ts +1 -0
  129. package/dist/utils/composeEventHandlers/index.d.ts +1 -0
  130. package/dist/utils/composeRefs/index.d.ts +1 -0
  131. package/dist/utils/dataAttr/index.d.ts +1 -0
  132. package/dist/utils/index.js +2 -2
  133. package/dist/utils/polymorphic/index.d.ts +1 -0
  134. package/dist/utils/tv/index.d.ts +1 -0
  135. package/package.json +2 -2
  136. package/dist/chunk-3BNEDKMS.js.map +0 -1
  137. package/dist/chunk-D6K6MU2G.js.map +0 -1
  138. package/dist/chunk-DX7FYAKY.js.map +0 -1
  139. package/dist/chunk-GTBNVI77.js.map +0 -1
  140. package/dist/chunk-H3WC7KRX.js.map +0 -1
  141. package/dist/chunk-JLAFUXGZ.js.map +0 -1
  142. package/dist/chunk-LGTGZ3RW.js.map +0 -1
  143. package/dist/chunk-MZZKA3ZS.js.map +0 -1
  144. package/dist/chunk-NEH4ITXL.js.map +0 -1
  145. package/dist/chunk-NOOKDXIZ.js.map +0 -1
  146. package/dist/chunk-V267IMBH.js.map +0 -1
  147. package/dist/chunk-X2MYOHOB.js.map +0 -1
  148. package/dist/chunk-ZC4H4PIN.js.map +0 -1
  149. package/dist/chunk-ZTK5ZQIL.js.map +0 -1
  150. package/dist/forms/formField/index.d.ts +0 -1
  151. package/dist/forms/textarea/Textarea.d.ts +0 -9
  152. package/dist/forms/textarea/index.d.ts +0 -1
  153. package/dist/overlays/alertDialog/AlertDialog.d.ts +0 -28
  154. package/dist/overlays/alertDialog/index.d.ts +0 -1
  155. package/dist/overlays/dialog/Dialog.d.ts +0 -46
  156. package/dist/overlays/dialog/index.d.ts +0 -1
  157. /package/dist/hooks/{useClipboard.d.ts → useClipboard/useClipboard.d.ts} +0 -0
  158. /package/dist/hooks/{useControlled.d.ts → useControlled/useControlled.d.ts} +0 -0
  159. /package/dist/hooks/{useDebounceHandler.d.ts → useDebounceHandler/useDebounceHandler.d.ts} +0 -0
  160. /package/dist/hooks/{useDisclosure.d.ts → useDisclosure/useDisclosure.d.ts} +0 -0
  161. /package/dist/hooks/{useEscape.d.ts → useEscape/useEscape.d.ts} +0 -0
  162. /package/dist/hooks/{useEventListener.d.ts → useEventListener/useEventListener.d.ts} +0 -0
  163. /package/dist/hooks/{useFocusTrap.d.ts → useFocusTrap/useFocusTrap.d.ts} +0 -0
  164. /package/dist/hooks/{useId.d.ts → useId/useId.d.ts} +0 -0
  165. /package/dist/hooks/{useMediaQuery.d.ts → useMediaQuery/useMediaQuery.d.ts} +0 -0
  166. /package/dist/hooks/{useOutsideClick.d.ts → useOutsideClick/useOutsideClick.d.ts} +0 -0
  167. /package/dist/hooks/{useReducedMotion.d.ts → useReducedMotion/useReducedMotion.d.ts} +0 -0
  168. /package/dist/hooks/{useResizeObserver.d.ts → useResizeObserver/useResizeObserver.d.ts} +0 -0
  169. /package/dist/hooks/{useScrollLock.d.ts → useScrollLock/useScrollLock.d.ts} +0 -0
  170. /package/dist/hooks/{useTypeahead.d.ts → useTypeahead/useTypeahead.d.ts} +0 -0
  171. /package/dist/utils/{ColorExtensions.d.ts → ColorExtensions/ColorExtensions.d.ts} +0 -0
  172. /package/dist/utils/{CssExtensions.d.ts → CssExtensions/CssExtensions.d.ts} +0 -0
  173. /package/dist/utils/{Environment.d.ts → Environment/Environment.d.ts} +0 -0
  174. /package/dist/utils/{Equality.d.ts → Equality/Equality.d.ts} +0 -0
  175. /package/dist/utils/{HtmlExtensions.d.ts → HtmlExtensions/HtmlExtensions.d.ts} +0 -0
  176. /package/dist/utils/{KeyboardExtensions.d.ts → KeyboardExtensions/KeyboardExtensions.d.ts} +0 -0
  177. /package/dist/utils/{Layers.d.ts → Layers/Layers.d.ts} +0 -0
  178. /package/dist/utils/{OptionalExtensions.d.ts → OptionalExtensions/OptionalExtensions.d.ts} +0 -0
  179. /package/dist/utils/{PressExtensions.d.ts → PressExtensions/PressExtensions.d.ts} +0 -0
  180. /package/dist/utils/{StyleTokens.d.ts → StyleTokens/StyleTokens.d.ts} +0 -0
  181. /package/dist/utils/{TransitionExtensions.d.ts → TransitionExtensions/TransitionExtensions.d.ts} +0 -0
  182. /package/dist/utils/{cn.d.ts → cn/cn.d.ts} +0 -0
  183. /package/dist/utils/{composeEventHandlers.d.ts → composeEventHandlers/composeEventHandlers.d.ts} +0 -0
  184. /package/dist/utils/{composeRefs.d.ts → composeRefs/composeRefs.d.ts} +0 -0
  185. /package/dist/utils/{dataAttr.d.ts → dataAttr/dataAttr.d.ts} +0 -0
  186. /package/dist/utils/{polymorphic.d.ts → polymorphic/polymorphic.d.ts} +0 -0
  187. /package/dist/utils/{tv.d.ts → tv/tv.d.ts} +0 -0
@@ -1,27 +1,28 @@
1
- import { Drawer, DrawerContent, DrawerTitle, DrawerDescription } from './chunk-ZC4H4PIN.js';
2
- import { DialogContent, DialogClose, Dialog, DialogTrigger, DialogHeader, DialogTitle, DialogDescription, DialogBody, DialogFooter } from './chunk-MZZKA3ZS.js';
3
- import { OverlayChromeProvider, OverlayTitle, OverlayDescription } from './chunk-NOOKDXIZ.js';
4
- import { Backdrop } from './chunk-NW7ULTYL.js';
5
- import { useControlled, useEscape } from './chunk-V267IMBH.js';
6
- import { surfaceVariants } from './chunk-DX7FYAKY.js';
7
- import { Slot, Presence, AnchoredPositioner, DismissableLayer, Portal, ScrollLockProvider, OverlayArrow } from './chunk-XLYJF3HC.js';
8
- import { cn, composeRefs } from './chunk-X2MYOHOB.js';
1
+ import { Drawer, DrawerContent, DrawerTitle, DrawerDescription } from './chunk-X5JSX4PU.js';
2
+ import { ModalContent, ModalClose, ModalFooter, ModalBody, ModalDescription, ModalTitle, ModalHeader, ModalTrigger, Modal } from './chunk-QTHKG7MQ.js';
3
+ import { OverlayChromeProvider, OverlayDescription, OverlayTitle } from './chunk-OZBLEOLZ.js';
4
+ import { Backdrop } from './chunk-VYFPLQPV.js';
5
+ import { useControlled, useEscape } from './chunk-RNHY33US.js';
6
+ import { surfaceVariants } from './chunk-XSW3NZDD.js';
7
+ import { Slot, Presence, AnchoredPositioner, DismissableLayer, Portal, ScrollLockProvider, OverlayArrow } from './chunk-B4X7XXSM.js';
8
+ import { cn, composeRefs } from './chunk-D4ZT36AZ.js';
9
9
  import { forwardRef, createContext, useMemo, useState, useRef, useId, useEffect, useContext, useCallback, isValidElement, cloneElement } from 'react';
10
10
  import { jsx, jsxs } from 'react/jsx-runtime';
11
11
  import { FocusScope } from '@radix-ui/react-focus-scope';
12
12
 
13
- function AlertDialog(props) {
14
- return /* @__PURE__ */ jsx(Dialog, { ...props, role: "alertdialog", dismissOnOutsideClick: false });
13
+ function AlertModalRoot(props) {
14
+ return /* @__PURE__ */ jsx(Modal, { ...props, role: "alertdialog", dismissOnOutsideClick: false });
15
15
  }
16
- var AlertDialogContent = forwardRef(
17
- function AlertDialogContent2(props, ref) {
18
- return /* @__PURE__ */ jsx(DialogContent, { ref, ...props });
16
+ AlertModalRoot.displayName = "AlertModal";
17
+ var AlertModalContent = forwardRef(
18
+ function AlertModalContent2(props, ref) {
19
+ return /* @__PURE__ */ jsx(ModalContent, { ref, ...props });
19
20
  }
20
21
  );
21
- var AlertDialogAction = forwardRef(
22
- function AlertDialogAction2({ onAction, onClick, className, children, ...rest }, ref) {
22
+ var AlertModalAction = forwardRef(
23
+ function AlertModalAction2({ onAction, onClick, className, children, ...rest }, ref) {
23
24
  return /* @__PURE__ */ jsx(
24
- DialogClose,
25
+ ModalClose,
25
26
  {
26
27
  ref,
27
28
  onClick: (e) => {
@@ -39,10 +40,10 @@ var AlertDialogAction = forwardRef(
39
40
  );
40
41
  }
41
42
  );
42
- var AlertDialogCancel = forwardRef(
43
- function AlertDialogCancel2({ className, children, ...rest }, ref) {
43
+ var AlertModalCancel = forwardRef(
44
+ function AlertModalCancel2({ className, children, ...rest }, ref) {
44
45
  return /* @__PURE__ */ jsx(
45
- DialogClose,
46
+ ModalClose,
46
47
  {
47
48
  ref,
48
49
  className: cn(
@@ -55,22 +56,24 @@ var AlertDialogCancel = forwardRef(
55
56
  );
56
57
  }
57
58
  );
58
- AlertDialog.Trigger = DialogTrigger;
59
- AlertDialog.Content = AlertDialogContent;
60
- AlertDialog.Header = DialogHeader;
61
- AlertDialog.Title = DialogTitle;
62
- AlertDialog.Description = DialogDescription;
63
- AlertDialog.Body = DialogBody;
64
- AlertDialog.Footer = DialogFooter;
65
- AlertDialog.Action = AlertDialogAction;
66
- AlertDialog.Cancel = AlertDialogCancel;
59
+ var AlertModal = Object.assign(AlertModalRoot, {
60
+ Trigger: ModalTrigger,
61
+ Content: AlertModalContent,
62
+ Header: ModalHeader,
63
+ Title: ModalTitle,
64
+ Description: ModalDescription,
65
+ Body: ModalBody,
66
+ Footer: ModalFooter,
67
+ Action: AlertModalAction,
68
+ Cancel: AlertModalCancel
69
+ });
67
70
  var PopoverContext = createContext(null);
68
71
  function usePopoverContext() {
69
72
  const ctx = useContext(PopoverContext);
70
73
  if (!ctx) throw new Error("Popover.* must be used inside <Popover>");
71
74
  return ctx;
72
75
  }
73
- function Popover({
76
+ function PopoverRoot({
74
77
  open: openProp,
75
78
  defaultOpen = false,
76
79
  onOpenChange,
@@ -103,6 +106,7 @@ function Popover({
103
106
  );
104
107
  return /* @__PURE__ */ jsx(PopoverContext.Provider, { value: ctx, children });
105
108
  }
109
+ PopoverRoot.displayName = "Popover";
106
110
  var PopoverTrigger = forwardRef(
107
111
  function PopoverTrigger2({ asChild, onClick, children, ...rest }, forwardedRef) {
108
112
  const ctx = usePopoverContext();
@@ -201,16 +205,18 @@ var PopoverPortalRoot = forwardRef(
201
205
  function PopoverArrow({ className, ...rest }) {
202
206
  return /* @__PURE__ */ jsx(OverlayArrow, { className: cn("text-popover", className), ...rest });
203
207
  }
204
- Popover.Trigger = PopoverTrigger;
205
- Popover.Content = PopoverContent;
206
- Popover.Arrow = PopoverArrow;
208
+ var Popover = Object.assign(PopoverRoot, {
209
+ Trigger: PopoverTrigger,
210
+ Content: PopoverContent,
211
+ Arrow: PopoverArrow
212
+ });
207
213
  var HoverCardContext = createContext(null);
208
214
  function useHoverCardContext() {
209
215
  const ctx = useContext(HoverCardContext);
210
216
  if (!ctx) throw new Error("HoverCard.* must be used inside <HoverCard>");
211
217
  return ctx;
212
218
  }
213
- function HoverCard({
219
+ function HoverCardRoot({
214
220
  open: openProp,
215
221
  defaultOpen = false,
216
222
  onOpenChange,
@@ -259,6 +265,7 @@ function HoverCard({
259
265
  );
260
266
  return /* @__PURE__ */ jsx(HoverCardContext.Provider, { value: ctx, children });
261
267
  }
268
+ HoverCardRoot.displayName = "HoverCard";
262
269
  function HoverCardTrigger({ children }) {
263
270
  const ctx = useHoverCardContext();
264
271
  if (!isValidElement(children)) return children;
@@ -329,16 +336,18 @@ var HoverCardContent = forwardRef(
329
336
  function HoverCardArrow({ className, ...rest }) {
330
337
  return /* @__PURE__ */ jsx(OverlayArrow, { className: cn("text-popover", className), ...rest });
331
338
  }
332
- HoverCard.Trigger = HoverCardTrigger;
333
- HoverCard.Content = HoverCardContent;
334
- HoverCard.Arrow = HoverCardArrow;
339
+ var HoverCard = Object.assign(HoverCardRoot, {
340
+ Trigger: HoverCardTrigger,
341
+ Content: HoverCardContent,
342
+ Arrow: HoverCardArrow
343
+ });
335
344
  var ActionSheetContext = createContext(null);
336
345
  function useActionSheetContext() {
337
346
  const ctx = useContext(ActionSheetContext);
338
347
  if (!ctx) throw new Error("ActionSheet.* must be used inside <ActionSheet>");
339
348
  return ctx;
340
349
  }
341
- function ActionSheet({
350
+ function ActionSheetRoot({
342
351
  open,
343
352
  defaultOpen,
344
353
  onOpenChange,
@@ -370,6 +379,7 @@ function ActionSheet({
370
379
  }
371
380
  ) }) });
372
381
  }
382
+ ActionSheetRoot.displayName = "ActionSheet";
373
383
  var ActionSheetAction = forwardRef(
374
384
  function ActionSheetAction2({ className, onSelect, isDestructive, onClick, children, type = "button", ...rest }, ref) {
375
385
  const ctx = useActionSheetContext();
@@ -418,8 +428,10 @@ var ActionSheetCancel = forwardRef(
418
428
  );
419
429
  }
420
430
  );
421
- ActionSheet.Action = ActionSheetAction;
422
- ActionSheet.Cancel = ActionSheetCancel;
431
+ var ActionSheet = Object.assign(ActionSheetRoot, {
432
+ Action: ActionSheetAction,
433
+ Cancel: ActionSheetCancel
434
+ });
423
435
  var BottomSheetContext = createContext(null);
424
436
  function useBottomSheet() {
425
437
  const ctx = useContext(BottomSheetContext);
@@ -435,7 +447,7 @@ function resolveSnapPx(point, viewport) {
435
447
  const n = parseFloat(trimmed);
436
448
  return Number.isFinite(n) ? n : 0;
437
449
  }
438
- var BottomSheet = forwardRef(function BottomSheet2({
450
+ var BottomSheetRoot = forwardRef(function BottomSheet({
439
451
  open: openProp,
440
452
  defaultOpen = false,
441
453
  onOpenChange,
@@ -619,9 +631,11 @@ var BottomSheet = forwardRef(function BottomSheet2({
619
631
  });
620
632
  var BottomSheetTitle = OverlayTitle;
621
633
  var BottomSheetDescription = OverlayDescription;
622
- BottomSheet.Title = BottomSheetTitle;
623
- BottomSheet.Description = BottomSheetDescription;
634
+ var BottomSheet2 = Object.assign(BottomSheetRoot, {
635
+ Title: BottomSheetTitle,
636
+ Description: BottomSheetDescription
637
+ });
624
638
 
625
- export { ActionSheet, ActionSheetAction, ActionSheetCancel, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, BottomSheet, BottomSheetDescription, BottomSheetTitle, HoverCard, HoverCardArrow, HoverCardContent, HoverCardTrigger, Popover, PopoverArrow, PopoverContent, PopoverTrigger, useBottomSheet };
626
- //# sourceMappingURL=chunk-GTBNVI77.js.map
627
- //# sourceMappingURL=chunk-GTBNVI77.js.map
639
+ export { ActionSheet, ActionSheetAction, ActionSheetCancel, AlertModal, AlertModalAction, AlertModalCancel, AlertModalContent, BottomSheet2 as BottomSheet, BottomSheetDescription, BottomSheetTitle, HoverCard, HoverCardArrow, HoverCardContent, HoverCardTrigger, Popover, PopoverArrow, PopoverContent, PopoverTrigger, useBottomSheet };
640
+ //# sourceMappingURL=chunk-XFUD3RZK.js.map
641
+ //# sourceMappingURL=chunk-XFUD3RZK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/overlays/alertModal/AlertModal.tsx","../src/overlays/popover/Popover.tsx","../src/overlays/hoverCard/HoverCard.tsx","../src/overlays/actionSheet/ActionSheet.tsx","../src/overlays/bottomSheet/BottomSheet.tsx"],"names":["AlertModalContent","AlertModalAction","AlertModalCancel","jsx","forwardRef","PopoverTrigger","PopoverContent","PopoverPortalRoot","createContext","useContext","useRef","useMemo","HoverCardPanel","HoverCardContent","ActionSheetAction","ActionSheetCancel","useState","useEffect","jsxs","FocusScope","BottomSheet"],"mappings":"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","file":"chunk-XFUD3RZK.js","sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport {\n Modal,\n ModalBody,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n ModalClose,\n type ModalProps,\n type ModalContentProps,\n} from '../modal';\n\nexport type AlertModalProps = Omit<ModalProps, 'role' | 'dismissOnOutsideClick'>;\n\nfunction AlertModalRoot(props: AlertModalProps) {\n return <Modal {...props} role=\"alertdialog\" dismissOnOutsideClick={false} />;\n}\nAlertModalRoot.displayName = 'AlertModal';\n\nexport const AlertModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n function AlertModalContent(props, ref) {\n return <ModalContent ref={ref} {...props} />;\n },\n);\n\nexport interface AlertModalActionProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n /** Runs before the dialog closes. */\n onAction?: () => void;\n children: ReactNode;\n}\n\nexport const AlertModalAction = forwardRef<HTMLButtonElement, AlertModalActionProps>(\n function AlertModalAction({ onAction, onClick, className, children, ...rest }, ref) {\n return (\n <ModalClose\n ref={ref}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n onAction?.();\n }}\n className={cn(\n 'inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </ModalClose>\n );\n },\n);\n\nexport interface AlertModalCancelProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n children: ReactNode;\n}\n\nexport const AlertModalCancel = forwardRef<HTMLButtonElement, AlertModalCancelProps>(\n function AlertModalCancel({ className, children, ...rest }, ref) {\n return (\n <ModalClose\n ref={ref}\n className={cn(\n 'inline-flex h-9 items-center justify-center rounded-md border border-border bg-background px-4 text-sm font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </ModalClose>\n );\n },\n);\n\nexport const AlertModal = Object.assign(AlertModalRoot, {\n Trigger: ModalTrigger,\n Content: AlertModalContent,\n Header: ModalHeader,\n Title: ModalTitle,\n Description: ModalDescription,\n Body: ModalBody,\n Footer: ModalFooter,\n Action: AlertModalAction,\n Cancel: AlertModalCancel,\n});\n\nexport default AlertModal;\n","import {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n useRef,\n useState,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, composeRefs, surfaceVariants, type SurfaceVariants } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport {\n AnchoredPositioner,\n DismissableLayer,\n OverlayArrow,\n Portal,\n Presence,\n Slot,\n type AnchoredPositionerProps,\n type OverlayArrowProps,\n} from '../../primitives';\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n /** Trigger node held in state so an initially-open popover re-renders anchored. */\n triggerNode: HTMLElement | null;\n onTriggerChange: (node: HTMLElement | null) => void;\n placement: AnchoredPositionerProps['placement'];\n offset: number;\n dismissOnOutsideClick: boolean;\n dismissOnEscape: boolean;\n}\n\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\n\nfunction usePopoverContext() {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error('Popover.* must be used inside <Popover>');\n return ctx;\n}\n\nexport interface PopoverProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n placement?: AnchoredPositionerProps['placement'];\n offset?: number;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n children: ReactNode;\n}\n\nfunction PopoverRoot({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n placement = 'bottom',\n offset = 8,\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n children,\n}: PopoverProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const [triggerNode, setTriggerNode] = useState<HTMLElement | null>(null);\n\n const ctx = useMemo<PopoverContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n triggerNode,\n onTriggerChange: setTriggerNode,\n placement,\n offset,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, triggerNode, placement, offset, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <PopoverContext.Provider value={ctx}>{children}</PopoverContext.Provider>;\n}\nPopoverRoot.displayName = 'Popover';\n\nexport interface PopoverTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const PopoverTrigger = forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n function PopoverTrigger({ asChild, onClick, children, ...rest }, forwardedRef) {\n const ctx = usePopoverContext();\n const { triggerRef, onTriggerChange } = ctx;\n const Component = asChild ? Slot : 'button';\n // Memoized so the callback ref isn't re-invoked (null → node) every render.\n const composedRef = useMemo(\n () =>\n composeRefs<HTMLButtonElement>(\n forwardedRef,\n triggerRef as React.MutableRefObject<HTMLButtonElement | null>,\n onTriggerChange,\n ),\n [forwardedRef, triggerRef, onTriggerChange],\n );\n return (\n <Component\n ref={composedRef as never}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={ctx.open}\n data-state={ctx.open ? 'open' : 'closed'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(!ctx.open);\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\n/** Represents the prop surface of the `Popover.Content`. */\nexport interface PopoverContentProps\n extends HTMLAttributes<HTMLDivElement>,\n SurfaceVariants {\n /** Skips the surface chrome (bg/border/shadow); keeps only z-index + animation. */\n isBare?: boolean;\n children: ReactNode;\n}\n\n/** Contains the default chrome width that preserves the historical look. */\nconst DEFAULT_WIDTH = 'w-72';\n\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent(\n { isBare, variant, tone, radius, padding, elevation, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = usePopoverContext();\n /* Default to lg padding when chrome is on (matches old `p-4`); consumer can override. */\n const resolvedPadding = padding ?? (isBare ? 'none' : 'lg');\n return (\n <Presence isPresent={ctx.open}>\n {/* `Presence` injects ref + data-state onto this portal root and defers\n unmount until its exit anim ends. The panel pop is driven off this\n root's state via `group-data-[state=*]` on the surface below. */}\n <PopoverPortalRoot>\n {/* z-popover (80) on the SC root (transform makes the stacking context) so a\n popover from a Modal (z-modal, 70) paints above it — both portal to body. */}\n <AnchoredPositioner\n anchor={ctx.triggerNode}\n placement={ctx.placement}\n offset={ctx.offset}\n className=\"z-popover\"\n >\n <FocusScope asChild trapped loop>\n <DismissableLayer\n isEscapeDisabled={!ctx.dismissOnEscape}\n onEscape={() => {\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }}\n isOutsideClickDisabled={!ctx.dismissOnOutsideClick}\n onOutsidePointerDown={(e) => {\n if (ctx.triggerRef.current?.contains(e.target as Node)) return;\n ctx.setOpen(false);\n }}\n >\n <div\n ref={forwardedRef}\n role=\"dialog\"\n className={cn(\n /* pop (fade+scale) gated on the portal-root data-state + motion-safe\n so reduced-motion users get no movement. */\n 'outline-none',\n 'motion-safe:group-data-[state=open]:animate-(--animate-pop-in)',\n 'motion-safe:group-data-[state=closed]:animate-(--animate-pop-out) motion-reduce:animate-none',\n !isBare &&\n cn(\n DEFAULT_WIDTH,\n surfaceVariants({\n variant,\n tone,\n radius,\n padding: resolvedPadding,\n elevation,\n }),\n ),\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </DismissableLayer>\n </FocusScope>\n </AnchoredPositioner>\n </PopoverPortalRoot>\n </Presence>\n );\n },\n);\n\n/**\n * `Presence`-clonable root: a single element that accepts `ref` + `data-state`\n * (injected by `Presence`) and renders inside a `Portal`. Marked `group` so the\n * panel below animates off its `data-[state]`. Holds no layout of its own\n * (`display: contents`) so the anchored positioning of children is unaffected.\n */\nconst PopoverPortalRoot = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n function PopoverPortalRoot({ children, className, ...props }, ref) {\n return (\n <Portal>\n <div ref={ref} className={cn('group contents', className)} {...props}>\n {children}\n </div>\n </Portal>\n );\n },\n);\n\nexport function PopoverArrow({ className, ...rest }: OverlayArrowProps) {\n return <OverlayArrow className={cn('text-popover', className)} {...rest} />;\n}\n\nexport const Popover = Object.assign(PopoverRoot, {\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n Arrow: PopoverArrow,\n});\n\nexport default Popover;\n","import {\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled, useEscape } from '../../hooks';\nimport {\n AnchoredPositioner,\n OverlayArrow,\n Portal,\n Presence,\n type AnchoredPositionerProps,\n type OverlayArrowProps,\n} from '../../primitives';\n\ninterface HoverCardContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n show: () => void;\n hide: () => void;\n cancelHide: () => void;\n placement: AnchoredPositionerProps['placement'];\n offset: number;\n}\n\nconst HoverCardContext = createContext<HoverCardContextValue | null>(null);\n\nfunction useHoverCardContext() {\n const ctx = useContext(HoverCardContext);\n if (!ctx) throw new Error('HoverCard.* must be used inside <HoverCard>');\n return ctx;\n}\n\nexport interface HoverCardProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n placement?: AnchoredPositionerProps['placement'];\n offset?: number;\n children: ReactNode;\n}\n\nfunction HoverCardRoot({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n placement = 'bottom',\n offset = 8,\n children,\n}: HoverCardProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const openTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const closeTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clear = useCallback(() => {\n if (openTimer.current) clearTimeout(openTimer.current);\n if (closeTimer.current) clearTimeout(closeTimer.current);\n openTimer.current = null;\n closeTimer.current = null;\n }, []);\n\n const show = useCallback(() => {\n clear();\n openTimer.current = setTimeout(() => setOpen(true), openDelay);\n }, [clear, openDelay, setOpen]);\n\n const hide = useCallback(() => {\n clear();\n closeTimer.current = setTimeout(() => setOpen(false), closeDelay);\n }, [clear, closeDelay, setOpen]);\n\n const cancelHide = useCallback(() => {\n if (closeTimer.current) {\n clearTimeout(closeTimer.current);\n closeTimer.current = null;\n }\n }, []);\n\n // Clear pending timers on unmount — avoids setState-after-unmount.\n useEffect(() => clear, [clear]);\n\n // WCAG 1.4.13 — hover content must be dismissible without moving the pointer.\n useEscape(() => {\n clear();\n setOpen(false);\n }, open);\n\n const ctx = useMemo<HoverCardContextValue>(\n () => ({ open, setOpen, triggerRef, show, hide, cancelHide, placement, offset }),\n [open, setOpen, show, hide, cancelHide, placement, offset],\n );\n\n return <HoverCardContext.Provider value={ctx}>{children}</HoverCardContext.Provider>;\n}\nHoverCardRoot.displayName = 'HoverCard';\n\nexport interface HoverCardTriggerProps {\n asChild?: boolean;\n children: ReactElement;\n}\n\nexport function HoverCardTrigger({ children }: HoverCardTriggerProps) {\n const ctx = useHoverCardContext();\n if (!isValidElement(children)) return children;\n const trigger = children as ReactElement<{\n ref?: Ref<HTMLElement>;\n onPointerEnter?: (e: React.PointerEvent) => void;\n onPointerLeave?: (e: React.PointerEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n }> & { ref?: Ref<HTMLElement> };\n\n return cloneElement(trigger, {\n ref: composeRefs((node: HTMLElement | null) => {\n ctx.triggerRef.current = node;\n }, trigger.ref),\n onPointerEnter: (e: React.PointerEvent) => {\n trigger.props.onPointerEnter?.(e);\n ctx.show();\n },\n onPointerLeave: (e: React.PointerEvent) => {\n trigger.props.onPointerLeave?.(e);\n ctx.hide();\n },\n onFocus: (e: React.FocusEvent) => {\n trigger.props.onFocus?.(e);\n ctx.show();\n },\n onBlur: (e: React.FocusEvent) => {\n trigger.props.onBlur?.(e);\n ctx.hide();\n },\n });\n}\n\nexport interface HoverCardContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\n/*\n * Presence clones its single child and injects `ref` + `data-state` onto it,\n * so that child must be the animated element. Portal/AnchoredPositioner can't\n * carry those props down to the styled div, so this forwardRef panel bridges\n * them: Presence drives this panel, the panel renders the Portal → positioner\n * tree, and forwards `ref` + the injected `data-state` (via `...rest`) onto the\n * inner div that carries the pop transition.\n */\nconst HoverCardPanel = forwardRef<HTMLDivElement, HoverCardContentProps>(\n function HoverCardPanel({ className, children, onPointerEnter, onPointerLeave, ...rest }, forwardedRef) {\n const ctx = useHoverCardContext();\n return (\n <Portal>\n <AnchoredPositioner\n anchor={ctx.triggerRef.current}\n placement={ctx.placement}\n offset={ctx.offset}\n className=\"z-dropdown\"\n >\n <div\n ref={forwardedRef}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n ctx.cancelHide();\n }}\n onPointerLeave={(e) => {\n onPointerLeave?.(e);\n ctx.hide();\n }}\n className={cn(\n 'w-64 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n 'motion-safe:data-[state=open]:animate-(--animate-pop-in) motion-safe:data-[state=closed]:animate-(--animate-pop-out) motion-reduce:animate-none',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </AnchoredPositioner>\n </Portal>\n );\n },\n);\n\nexport const HoverCardContent = forwardRef<HTMLDivElement, HoverCardContentProps>(\n function HoverCardContent(props, forwardedRef) {\n const ctx = useHoverCardContext();\n return (\n <Presence isPresent={ctx.open}>\n <HoverCardPanel ref={forwardedRef} {...props} />\n </Presence>\n );\n },\n);\n\nexport function HoverCardArrow({ className, ...rest }: OverlayArrowProps) {\n return <OverlayArrow className={cn('text-popover', className)} {...rest} />;\n}\n\nexport const HoverCard = Object.assign(HoverCardRoot, {\n Trigger: HoverCardTrigger,\n Content: HoverCardContent,\n Arrow: HoverCardArrow,\n});\n\nexport default HoverCard;\n","import {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cn } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { Drawer, DrawerContent, DrawerDescription, DrawerTitle } from '../drawer';\n\ninterface ActionSheetContextValue {\n setOpen: (open: boolean) => void;\n}\n\nconst ActionSheetContext = createContext<ActionSheetContextValue | null>(null);\n\nfunction useActionSheetContext() {\n const ctx = useContext(ActionSheetContext);\n if (!ctx) throw new Error('ActionSheet.* must be used inside <ActionSheet>');\n return ctx;\n}\n\nexport interface ActionSheetProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n title?: ReactNode;\n description?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\n/**\n * iOS-style action sheet — opinionated bottom Drawer with stacked button rows\n * and a separated Cancel.\n */\nfunction ActionSheetRoot({\n open,\n defaultOpen,\n onOpenChange,\n title,\n description,\n className,\n children,\n}: ActionSheetProps) {\n // ActionSheet owns open state + drives Drawer fully controlled, so `ctx.setOpen`\n // works in both controlled and uncontrolled modes (Drawer's context isn't interceptable).\n const [resolvedOpen, setOpen] = useControlled({\n controlled: open,\n default: defaultOpen ?? false,\n onChange: onOpenChange,\n });\n\n const ctx = useMemo<ActionSheetContextValue>(() => ({ setOpen }), [setOpen]);\n\n return (\n <ActionSheetContext.Provider value={ctx}>\n <Drawer open={resolvedOpen} onOpenChange={setOpen} side=\"bottom\">\n <DrawerContent\n className={cn(\n 'mx-auto max-w-md rounded-t-xl bg-card p-2 text-card-foreground',\n className,\n )}\n >\n {(title || description) && (\n <div className=\"px-3 py-2 text-center\">\n {title && (\n <DrawerTitle className=\"text-sm font-medium text-muted-foreground\">\n {title}\n </DrawerTitle>\n )}\n {description && (\n <DrawerDescription className=\"mt-1 text-xs text-muted-foreground\">\n {description}\n </DrawerDescription>\n )}\n </div>\n )}\n <div className=\"flex flex-col gap-px overflow-hidden rounded-lg bg-border\">\n {children}\n </div>\n </DrawerContent>\n </Drawer>\n </ActionSheetContext.Provider>\n );\n}\nActionSheetRoot.displayName = 'ActionSheet';\n\nexport interface ActionSheetActionProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n onSelect?: () => void;\n isDestructive?: boolean;\n}\n\nexport const ActionSheetAction = forwardRef<HTMLButtonElement, ActionSheetActionProps>(\n function ActionSheetAction(\n { className, onSelect, isDestructive, onClick, children, type = 'button', ...rest },\n ref,\n ) {\n const ctx = useActionSheetContext();\n return (\n <button\n ref={ref}\n type={type}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n onSelect?.();\n ctx.setOpen(false);\n }}\n className={cn(\n 'flex h-12 w-full items-center justify-center bg-card px-4 text-base font-medium transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n isDestructive ? 'text-destructive' : 'text-foreground',\n className,\n )}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nexport type ActionSheetCancelProps = ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ActionSheetCancel = forwardRef<HTMLButtonElement, ActionSheetCancelProps>(\n function ActionSheetCancel({ className, onClick, children = 'Cancel', type = 'button', ...rest }, ref) {\n const ctx = useActionSheetContext();\n return (\n <button\n ref={ref}\n type={type}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(false);\n }}\n className={cn(\n 'mt-2 flex h-12 w-full items-center justify-center rounded-lg bg-card text-base font-semibold text-foreground shadow-sm transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nexport const ActionSheet = Object.assign(ActionSheetRoot, {\n Action: ActionSheetAction,\n Cancel: ActionSheetCancel,\n});\n\nexport default ActionSheet;\n","import {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type PointerEvent as ReactPointerEvent,\n type ReactNode,\n} from 'react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, surfaceVariants, type SurfaceVariants } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { DismissableLayer, Portal, Presence, ScrollLockProvider } from '../../primitives';\nimport { Backdrop } from '../backdrop';\nimport {\n OverlayChromeProvider,\n OverlayDescription,\n OverlayTitle,\n type OverlayChromeContextValue,\n} from '../OverlayChrome';\n\ntype SnapPoint = number | string;\n\ninterface BottomSheetContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n currentSnap: number;\n setCurrentSnap: (i: number) => void;\n snapPoints: SnapPoint[];\n}\n\nconst BottomSheetContext = createContext<BottomSheetContextValue | null>(null);\n\nexport function useBottomSheet() {\n const ctx = useContext(BottomSheetContext);\n if (!ctx) throw new Error('useBottomSheet must be used inside <BottomSheet>');\n return ctx;\n}\n\nfunction resolveSnapPx(point: SnapPoint, viewport: number): number {\n if (typeof point === 'number') return point;\n const trimmed = point.trim();\n if (trimmed.endsWith('vh')) return (parseFloat(trimmed) / 100) * viewport;\n if (trimmed.endsWith('px')) return parseFloat(trimmed);\n if (trimmed.endsWith('%')) return (parseFloat(trimmed) / 100) * viewport;\n // Fallback: try parseFloat as px.\n const n = parseFloat(trimmed);\n return Number.isFinite(n) ? n : 0;\n}\n\n/** Represents the prop surface of `BottomSheet`. */\nexport interface BottomSheetProps extends HTMLAttributes<HTMLDivElement>, SurfaceVariants {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n snapPoints?: SnapPoint[];\n initialSnap?: number;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n dragToDismiss?: boolean;\n children: ReactNode;\n}\n\n/**\n * Mobile bottom sheet with drag handle + snap points. Pointer-event drag\n * between heights; releasing snaps to the nearest point. Past the lowest\n * snap with `dragToDismiss`, the sheet closes.\n */\nconst BottomSheetRoot = forwardRef<HTMLDivElement, BottomSheetProps>(function BottomSheet(\n {\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n snapPoints = ['40vh', '90vh'],\n initialSnap = 0,\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n dragToDismiss = true,\n variant,\n tone,\n radius,\n padding,\n elevation,\n className,\n children,\n ...rest\n },\n forwardedRef,\n) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const [currentSnap, setCurrentSnap] = useState(\n Math.min(initialSnap, snapPoints.length - 1),\n );\n const sheetRef = useRef<HTMLDivElement | null>(null);\n const startYRef = useRef<number | null>(null);\n const startHeightRef = useRef(0);\n const [dragHeight, setDragHeight] = useState<number | null>(null);\n // Keeps the portal subtree (scroll lock + backdrop + sheet) mounted while the\n // exit animation plays after `open` flips false; the per-node <Presence>\n // wrappers defer their own unmount, and this flag releases the scroll lock\n // only once they've finished. Mirrors the \"open OR exiting\" gate other\n // overlays use, while preserving the no-lock-when-closed behavior.\n const [isExiting, setIsExiting] = useState(false);\n const titleId = useId();\n const descriptionId = useId();\n\n // Reset to initialSnap each time we re-open.\n useEffect(() => {\n if (open) setCurrentSnap(Math.min(initialSnap, snapPoints.length - 1));\n }, [open, initialSnap, snapPoints.length]);\n\n // Drive the trailing-mount flag: opening clears it; closing holds the subtree\n // mounted for one exit cycle (longest motion token = base duration) so the\n // slide-down + backdrop fade can play, then drops it to release scroll lock.\n useEffect(() => {\n if (open) {\n setIsExiting(false);\n return;\n }\n setIsExiting(true);\n const timer = window.setTimeout(() => setIsExiting(false), 320);\n return () => window.clearTimeout(timer);\n }, [open]);\n\n const ctx = useMemo<BottomSheetContextValue>(\n () => ({ open, setOpen, currentSnap, setCurrentSnap, snapPoints }),\n [open, setOpen, currentSnap, snapPoints],\n );\n\n const chromeCtx = useMemo<OverlayChromeContextValue>(\n () => ({ titleId, descriptionId, close: () => setOpen(false) }),\n [titleId, descriptionId, setOpen],\n );\n\n const handlePointerDown = (e: ReactPointerEvent<HTMLDivElement>) => {\n startYRef.current = e.clientY;\n const rect = sheetRef.current?.getBoundingClientRect();\n startHeightRef.current = rect ? rect.height : 0;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n };\n\n const handlePointerMove = (e: ReactPointerEvent<HTMLDivElement>) => {\n if (startYRef.current == null) return;\n const dy = e.clientY - startYRef.current;\n setDragHeight(Math.max(0, startHeightRef.current - dy));\n };\n\n const handlePointerUp = (e: ReactPointerEvent<HTMLDivElement>) => {\n if (startYRef.current == null) return;\n startYRef.current = null;\n (e.currentTarget as HTMLElement).releasePointerCapture?.(e.pointerId);\n\n const viewport = typeof window !== 'undefined' ? window.innerHeight : 800;\n const heights = snapPoints.map((p) => resolveSnapPx(p, viewport));\n const liveHeight = dragHeight ?? heights[currentSnap] ?? 0;\n setDragHeight(null);\n\n // Below lowest snap by 60px → dismiss.\n if (dragToDismiss && liveHeight < (heights[0] ?? 0) - 60) {\n setOpen(false);\n return;\n }\n // Snap to nearest.\n let bestIdx = 0;\n let bestDist = Number.POSITIVE_INFINITY;\n heights.forEach((h, i) => {\n const d = Math.abs(h - liveHeight);\n if (d < bestDist) {\n bestDist = d;\n bestIdx = i;\n }\n });\n setCurrentSnap(bestIdx);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'ArrowUp' && currentSnap < snapPoints.length - 1) {\n e.preventDefault();\n setCurrentSnap(currentSnap + 1);\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n if (currentSnap > 0) setCurrentSnap(currentSnap - 1);\n else if (dragToDismiss) setOpen(false);\n }\n };\n\n // Mounted whenever open OR mid-exit — the <Presence> wrappers below defer\n // their own unmount until the slide-down / fade-out finishes.\n if (!open && !isExiting) return null;\n\n const heightStyle: string | number = (() => {\n if (dragHeight != null) return `${dragHeight}px`;\n const point = snapPoints[currentSnap];\n if (typeof point === 'number') return `${point}px`;\n return point ?? '40vh';\n })();\n\n return (\n <BottomSheetContext.Provider value={ctx}>\n <Portal>\n <ScrollLockProvider>\n {/* Backdrop in its own Presence so its fade-out plays before unmount;\n `Presence` injects `data-state` onto it and the fade tokens gate on it. */}\n <Presence isPresent={open}>\n <Backdrop\n isInline\n className={cn(\n 'motion-safe:data-[state=open]:animate-(--animate-fade-in)',\n 'motion-safe:data-[state=closed]:animate-(--animate-fade-out)',\n )}\n onClick={() => {\n if (dismissOnOutsideClick) setOpen(false);\n }}\n />\n </Presence>\n <FocusScope asChild trapped loop>\n <DismissableLayer\n isEscapeDisabled={!dismissOnEscape}\n onEscape={() => setOpen(false)}\n isOutsideClickDisabled\n >\n {/* The sheet panel is the Presence-animated node — it carries\n `data-state` (injected via {...props}) and the slide classes.\n FULL slide from the bottom edge: translate-y-full when closed,\n driven by `transition-transform` (the inline transition also\n carries `transform` so the height + slide animate together).\n Gated `motion-safe` + `motion-reduce` so reduced-motion users\n get no movement. */}\n <Presence isPresent={open}>\n <div\n ref={(el) => {\n sheetRef.current = el;\n if (typeof forwardedRef === 'function') forwardedRef(el);\n else if (forwardedRef) (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = el;\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n style={{\n height: heightStyle,\n transition:\n dragHeight == null\n ? 'height 220ms ease-out, transform var(--duration-base) var(--ease-out)'\n : 'none',\n }}\n className={cn(\n 'fixed inset-x-0 bottom-0 z-modal flex flex-col rounded-t-xl border-t outline-none',\n 'will-change-transform',\n 'motion-safe:data-[state=closed]:translate-y-full',\n 'motion-reduce:translate-y-0',\n surfaceVariants({\n variant: variant ?? 'elevated',\n tone,\n radius: radius ?? 'none',\n padding: padding ?? 'none',\n elevation: elevation ?? 5,\n }),\n className,\n )}\n {...rest}\n >\n <div\n role=\"separator\"\n aria-orientation=\"horizontal\"\n aria-valuenow={currentSnap}\n aria-valuemin={0}\n aria-valuemax={snapPoints.length - 1}\n tabIndex={0}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n onKeyDown={handleKeyDown}\n className=\"flex h-7 cursor-ns-resize items-center justify-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring\"\n >\n <span className=\"h-1 w-10 rounded-full bg-border-strong\" aria-hidden=\"true\" />\n </div>\n <div className=\"flex-1 overflow-y-auto px-4 pb-4\">\n <OverlayChromeProvider value={chromeCtx}>{children}</OverlayChromeProvider>\n </div>\n </div>\n </Presence>\n </DismissableLayer>\n </FocusScope>\n </ScrollLockProvider>\n </Portal>\n </BottomSheetContext.Provider>\n );\n});\n\n// Re-export shared chrome under the BottomSheet namespace — they wire\n// `id={titleId}`/`id={descriptionId}` so the sheet's aria-labelledby/describedby resolve.\nexport const BottomSheetTitle = OverlayTitle;\nexport const BottomSheetDescription = OverlayDescription;\n\nexport const BottomSheet = Object.assign(BottomSheetRoot, {\n Title: BottomSheetTitle,\n Description: BottomSheetDescription,\n});\n\nexport default BottomSheet;\n"]}
@@ -1,10 +1,10 @@
1
- import { listboxItemVariants, listboxEmptyVariants, listboxGroupLabelVariants, listboxSeparatorVariants } from './chunk-FMTBJJP6.js';
2
- import { DialogContent, Dialog } from './chunk-MZZKA3ZS.js';
3
- import { useControlled, useReducedMotion } from './chunk-V267IMBH.js';
4
- import { Icon } from './chunk-MVMDDGW7.js';
5
- import { dataAttr, tv, surfaceVariants } from './chunk-DX7FYAKY.js';
6
- import { Slot, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner, DismissableLayer, Presence } from './chunk-XLYJF3HC.js';
7
- import { cn, composeRefs } from './chunk-X2MYOHOB.js';
1
+ import { listboxItemVariants, listboxEmptyVariants, listboxSeparatorVariants, listboxGroupLabelVariants } from './chunk-UMRRFZ4R.js';
2
+ import { ModalContent, Modal } from './chunk-QTHKG7MQ.js';
3
+ import { useControlled, useReducedMotion } from './chunk-RNHY33US.js';
4
+ import { Icon } from './chunk-D7ZFCHX5.js';
5
+ import { dataAttr, tv, surfaceVariants } from './chunk-XSW3NZDD.js';
6
+ import { Slot, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner, DismissableLayer, Presence } from './chunk-B4X7XXSM.js';
7
+ import { cn, composeRefs } from './chunk-D4ZT36AZ.js';
8
8
  import { forwardRef, Fragment, createContext, useId, useRef, useEffect, useCallback, useMemo, useState, useContext } from 'react';
9
9
  import { ChevronsLeft, ChevronLeft, ChevronRight, ChevronsRight, ChevronDown, Search } from 'lucide-react';
10
10
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
@@ -174,7 +174,7 @@ function useMenuContext() {
174
174
  if (!ctx) throw new Error("Menu.Item / Group / Label / Separator must be used inside <Menu>");
175
175
  return ctx;
176
176
  }
177
- function Menu({
177
+ function MenuRoot({
178
178
  open,
179
179
  anchor,
180
180
  onClose,
@@ -248,6 +248,7 @@ function Menu({
248
248
  }
249
249
  ) }) });
250
250
  }
251
+ MenuRoot.displayName = "Menu";
251
252
  var MenuItem = forwardRef(function MenuItem2({ onSelect, isDisabled = false, state, className, onClick, onKeyDown, children, ...rest }, forwardedRef) {
252
253
  const ctx = useMenuContext();
253
254
  const id = useId();
@@ -350,17 +351,19 @@ function MenuLabel({
350
351
  function MenuSeparator(props) {
351
352
  return /* @__PURE__ */ jsx("div", { role: "separator", className: menuSeparatorVariants(), ...props });
352
353
  }
353
- Menu.Item = MenuItem;
354
- Menu.Group = MenuGroup;
355
- Menu.Label = MenuLabel;
356
- Menu.Separator = MenuSeparator;
354
+ var Menu = Object.assign(MenuRoot, {
355
+ Item: MenuItem,
356
+ Group: MenuGroup,
357
+ Label: MenuLabel,
358
+ Separator: MenuSeparator
359
+ });
357
360
  var DropdownMenuContext = createContext(null);
358
361
  function useDropdownMenuContext() {
359
362
  const ctx = useContext(DropdownMenuContext);
360
363
  if (!ctx) throw new Error("DropdownMenu.* must be used inside <DropdownMenu>");
361
364
  return ctx;
362
365
  }
363
- function DropdownMenu({
366
+ function DropdownMenuRoot({
364
367
  open: openProp,
365
368
  defaultOpen = false,
366
369
  onOpenChange,
@@ -381,6 +384,7 @@ function DropdownMenu({
381
384
  );
382
385
  return /* @__PURE__ */ jsx(DropdownMenuContext.Provider, { value: ctx, children });
383
386
  }
387
+ DropdownMenuRoot.displayName = "DropdownMenu";
384
388
  var DropdownMenuTrigger = forwardRef(
385
389
  function DropdownMenuTrigger2({ asChild, onClick, onKeyDown, children, ...rest }, forwardedRef) {
386
390
  const ctx = useDropdownMenuContext();
@@ -483,12 +487,14 @@ function DropdownMenuContent({
483
487
  }
484
488
  );
485
489
  }
486
- DropdownMenu.Trigger = DropdownMenuTrigger;
487
- DropdownMenu.Content = DropdownMenuContent;
488
- DropdownMenu.Item = MenuItem;
489
- DropdownMenu.Group = MenuGroup;
490
- DropdownMenu.Label = MenuLabel;
491
- DropdownMenu.Separator = MenuSeparator;
490
+ var DropdownMenu = Object.assign(DropdownMenuRoot, {
491
+ Trigger: DropdownMenuTrigger,
492
+ Content: DropdownMenuContent,
493
+ Item: MenuItem,
494
+ Group: MenuGroup,
495
+ Label: MenuLabel,
496
+ Separator: MenuSeparator
497
+ });
492
498
  var ContextMenuContext = createContext(null);
493
499
  function useContextMenuContext() {
494
500
  const ctx = useContext(ContextMenuContext);
@@ -506,7 +512,7 @@ function makeVirtualAnchor(x, y) {
506
512
  document.body.appendChild(el);
507
513
  return el;
508
514
  }
509
- function ContextMenu({ children }) {
515
+ function ContextMenuRoot({ children }) {
510
516
  const [open, setOpen] = useState(false);
511
517
  const [anchor, setAnchorState] = useState(null);
512
518
  const triggerRef = useRef(null);
@@ -535,6 +541,7 @@ function ContextMenu({ children }) {
535
541
  );
536
542
  return /* @__PURE__ */ jsx(ContextMenuContext.Provider, { value: ctx, children });
537
543
  }
544
+ ContextMenuRoot.displayName = "ContextMenu";
538
545
  var ContextMenuTrigger = forwardRef(
539
546
  function ContextMenuTrigger2({ asChild, isDisabled, onContextMenu, onPointerDown, onPointerCancel, onPointerUp, children, ...rest }, forwardedRef) {
540
547
  const ctx = useContextMenuContext();
@@ -606,12 +613,14 @@ function ContextMenuContent({
606
613
  }
607
614
  );
608
615
  }
609
- ContextMenu.Trigger = ContextMenuTrigger;
610
- ContextMenu.Content = ContextMenuContent;
611
- ContextMenu.Item = MenuItem;
612
- ContextMenu.Group = MenuGroup;
613
- ContextMenu.Label = MenuLabel;
614
- ContextMenu.Separator = MenuSeparator;
616
+ var ContextMenu = Object.assign(ContextMenuRoot, {
617
+ Trigger: ContextMenuTrigger,
618
+ Content: ContextMenuContent,
619
+ Item: MenuItem,
620
+ Group: MenuGroup,
621
+ Label: MenuLabel,
622
+ Separator: MenuSeparator
623
+ });
615
624
 
616
625
  // src/nav/menubar/Menubar.variants.ts
617
626
  var menubarVariants = tv({
@@ -632,7 +641,7 @@ function useMenubarMenuContext() {
632
641
  if (!ctx) throw new Error("Menubar.Trigger / Content must be used inside <Menubar.Menu>");
633
642
  return ctx;
634
643
  }
635
- var Menubar = forwardRef(function Menubar2({ value, defaultValue = null, onValueChange, className, children, ...rest }, ref) {
644
+ var MenubarRoot = forwardRef(function Menubar({ value, defaultValue = null, onValueChange, className, children, ...rest }, ref) {
636
645
  const [activeId, setActiveId] = useControlled({
637
646
  controlled: value,
638
647
  default: defaultValue,
@@ -797,13 +806,15 @@ function MenubarContent({
797
806
  }
798
807
  );
799
808
  }
800
- Menubar.Menu = MenubarMenu;
801
- Menubar.Trigger = MenubarTrigger;
802
- Menubar.Content = MenubarContent;
803
- Menubar.Item = MenuItem;
804
- Menubar.Group = MenuGroup;
805
- Menubar.Label = MenuLabel;
806
- Menubar.Separator = MenuSeparator;
809
+ var Menubar2 = Object.assign(MenubarRoot, {
810
+ Menu: MenubarMenu,
811
+ Trigger: MenubarTrigger,
812
+ Content: MenubarContent,
813
+ Item: MenuItem,
814
+ Group: MenuGroup,
815
+ Label: MenuLabel,
816
+ Separator: MenuSeparator
817
+ });
807
818
  var NavigationMenuContext = createContext(null);
808
819
  function useNavContext() {
809
820
  const ctx = useContext(NavigationMenuContext);
@@ -817,8 +828,8 @@ function useNavItemContext() {
817
828
  throw new Error("NavigationMenu.Trigger / Content must be used inside <NavigationMenu.Item>");
818
829
  return ctx;
819
830
  }
820
- var NavigationMenu = forwardRef(
821
- function NavigationMenu2({
831
+ var NavigationMenuRoot = forwardRef(
832
+ function NavigationMenu({
822
833
  value,
823
834
  defaultValue = null,
824
835
  onValueChange,
@@ -1045,11 +1056,13 @@ var NavigationMenuContent = forwardRef(
1045
1056
  ) });
1046
1057
  }
1047
1058
  );
1048
- NavigationMenu.List = NavigationMenuList;
1049
- NavigationMenu.Item = NavigationMenuItem;
1050
- NavigationMenu.Trigger = NavigationMenuTrigger;
1051
- NavigationMenu.Content = NavigationMenuContent;
1052
- NavigationMenu.Link = NavigationMenuLink;
1059
+ var NavigationMenu2 = Object.assign(NavigationMenuRoot, {
1060
+ List: NavigationMenuList,
1061
+ Item: NavigationMenuItem,
1062
+ Trigger: NavigationMenuTrigger,
1063
+ Content: NavigationMenuContent,
1064
+ Link: NavigationMenuLink
1065
+ });
1053
1066
  var CommandPaletteContext = createContext(null);
1054
1067
  function useCommandPaletteContext() {
1055
1068
  const ctx = useContext(CommandPaletteContext);
@@ -1057,7 +1070,7 @@ function useCommandPaletteContext() {
1057
1070
  return ctx;
1058
1071
  }
1059
1072
  var defaultFilter = (searchText, search) => searchText.toLowerCase().includes(search.toLowerCase());
1060
- function CommandPalette({
1073
+ function CommandPaletteRoot({
1061
1074
  open: openProp,
1062
1075
  defaultOpen = false,
1063
1076
  onOpenChange,
@@ -1144,12 +1157,13 @@ function CommandPalette({
1144
1157
  listboxId
1145
1158
  ]
1146
1159
  );
1147
- return /* @__PURE__ */ jsx(CommandPaletteContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: setOpen, children }) });
1160
+ return /* @__PURE__ */ jsx(CommandPaletteContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(Modal, { open, onOpenChange: setOpen, children }) });
1148
1161
  }
1162
+ CommandPaletteRoot.displayName = "CommandPalette";
1149
1163
  var CommandPaletteContent = forwardRef(
1150
1164
  function CommandPaletteContent2({ className, children, ...rest }, forwardedRef) {
1151
1165
  return /* @__PURE__ */ jsx(
1152
- DialogContent,
1166
+ ModalContent,
1153
1167
  {
1154
1168
  ref: forwardedRef,
1155
1169
  className: cn("w-full max-w-xl gap-0 overflow-hidden p-0", className),
@@ -1373,13 +1387,15 @@ var CommandPaletteEmpty = forwardRef(
1373
1387
  );
1374
1388
  }
1375
1389
  );
1376
- CommandPalette.Content = CommandPaletteContent;
1377
- CommandPalette.Input = CommandPaletteInput;
1378
- CommandPalette.List = CommandPaletteList;
1379
- CommandPalette.Group = CommandPaletteGroup;
1380
- CommandPalette.Item = CommandPaletteItem;
1381
- CommandPalette.Empty = CommandPaletteEmpty;
1382
- CommandPalette.Separator = CommandPaletteSeparator;
1390
+ var CommandPalette = Object.assign(CommandPaletteRoot, {
1391
+ Content: CommandPaletteContent,
1392
+ Input: CommandPaletteInput,
1393
+ List: CommandPaletteList,
1394
+ Group: CommandPaletteGroup,
1395
+ Item: CommandPaletteItem,
1396
+ Empty: CommandPaletteEmpty,
1397
+ Separator: CommandPaletteSeparator
1398
+ });
1383
1399
  function useScrollSpy(ids, { rootMargin = "0px 0px -60% 0px", threshold = 0, root = null } = {}) {
1384
1400
  const [activeId, setActiveId] = useState(null);
1385
1401
  useEffect(() => {
@@ -1493,6 +1509,6 @@ var TableOfContents = forwardRef(
1493
1509
  }
1494
1510
  );
1495
1511
 
1496
- export { Breadcrumb, CommandPalette, CommandPaletteContent, CommandPaletteEmpty, CommandPaletteGroup, CommandPaletteInput, CommandPaletteItem, CommandPaletteList, CommandPaletteSeparator, ContextMenu, ContextMenuContent, ContextMenuTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, Menu, MenuGroup, MenuItem, MenuLabel, MenuSeparator, Menubar, MenubarContent, MenubarMenu, MenubarTrigger, NavItem, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, Pagination, ScrollSpy, TableOfContents, menuItemVariants, menuLabelVariants, menuSeparatorVariants, menuVariants, useScrollSpy };
1497
- //# sourceMappingURL=chunk-H3WC7KRX.js.map
1498
- //# sourceMappingURL=chunk-H3WC7KRX.js.map
1512
+ export { Breadcrumb, CommandPalette, CommandPaletteContent, CommandPaletteEmpty, CommandPaletteGroup, CommandPaletteInput, CommandPaletteItem, CommandPaletteList, CommandPaletteSeparator, ContextMenu, ContextMenuContent, ContextMenuTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, Menu, MenuGroup, MenuItem, MenuLabel, MenuSeparator, Menubar2 as Menubar, MenubarContent, MenubarMenu, MenubarTrigger, NavItem, NavigationMenu2 as NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, Pagination, ScrollSpy, TableOfContents, menuItemVariants, menuLabelVariants, menuSeparatorVariants, menuVariants, useScrollSpy };
1513
+ //# sourceMappingURL=chunk-XOUAFZ2E.js.map
1514
+ //# sourceMappingURL=chunk-XOUAFZ2E.js.map