@wow-two-beta/ui 0.0.50 → 0.0.51

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 (52) hide show
  1. package/dist/actions/button/Button.d.ts +3 -2
  2. package/dist/actions/button/Button.d.ts.map +1 -1
  3. package/dist/actions/index.js +2 -2
  4. package/dist/actions/toggleButton/ToggleButton.d.ts +3 -1
  5. package/dist/actions/toggleButton/ToggleButton.d.ts.map +1 -1
  6. package/dist/{chunk-3YNJTBYF.js → chunk-2KZJXQJ5.js} +7 -5
  7. package/dist/chunk-2KZJXQJ5.js.map +1 -0
  8. package/dist/{chunk-WU5JMO3N.js → chunk-BIJGZBQQ.js} +37 -3
  9. package/dist/chunk-BIJGZBQQ.js.map +1 -0
  10. package/dist/{chunk-23DELZVV.js → chunk-CDDBGAXP.js} +3 -3
  11. package/dist/{chunk-23DELZVV.js.map → chunk-CDDBGAXP.js.map} +1 -1
  12. package/dist/{chunk-L235NITI.js → chunk-D3N27NNO.js} +4 -4
  13. package/dist/{chunk-L235NITI.js.map → chunk-D3N27NNO.js.map} +1 -1
  14. package/dist/{chunk-2TKPRR4X.js → chunk-HDQCFWFH.js} +3 -3
  15. package/dist/{chunk-2TKPRR4X.js.map → chunk-HDQCFWFH.js.map} +1 -1
  16. package/dist/{chunk-BEOOTUFV.js → chunk-JPYWGMD4.js} +4 -4
  17. package/dist/{chunk-BEOOTUFV.js.map → chunk-JPYWGMD4.js.map} +1 -1
  18. package/dist/{chunk-CWT5VEMU.js → chunk-RFELPPTS.js} +32 -23
  19. package/dist/chunk-RFELPPTS.js.map +1 -0
  20. package/dist/{chunk-2CDU2ZKL.js → chunk-SVJVVZO6.js} +3 -3
  21. package/dist/{chunk-2CDU2ZKL.js.map → chunk-SVJVVZO6.js.map} +1 -1
  22. package/dist/{chunk-VTVWJBOP.js → chunk-V4T56XX7.js} +43 -31
  23. package/dist/chunk-V4T56XX7.js.map +1 -0
  24. package/dist/{chunk-BUWJN6SN.js → chunk-YYGII4AA.js} +10 -6
  25. package/dist/chunk-YYGII4AA.js.map +1 -0
  26. package/dist/{chunk-ZVOPRSED.js → chunk-ZDUT2XVH.js} +4 -4
  27. package/dist/{chunk-ZVOPRSED.js.map → chunk-ZDUT2XVH.js.map} +1 -1
  28. package/dist/display/index.js +3 -3
  29. package/dist/feedback/index.js +3 -3
  30. package/dist/forms/checkbox/Checkbox.d.ts +3 -2
  31. package/dist/forms/checkbox/Checkbox.d.ts.map +1 -1
  32. package/dist/forms/combobox/Combobox.d.ts.map +1 -1
  33. package/dist/forms/index.js +5 -5
  34. package/dist/icons/index.js +1 -1
  35. package/dist/index.js +11 -11
  36. package/dist/layout/index.js +3 -3
  37. package/dist/nav/index.js +3 -3
  38. package/dist/nav/navigationMenu/NavigationMenu.d.ts.map +1 -1
  39. package/dist/overlays/hoverCard/HoverCard.d.ts.map +1 -1
  40. package/dist/overlays/index.js +2 -2
  41. package/dist/overlays/popover/Popover.d.ts.map +1 -1
  42. package/dist/utils/ColorExtensions.d.ts +39 -0
  43. package/dist/utils/ColorExtensions.d.ts.map +1 -0
  44. package/dist/utils/index.d.ts +2 -0
  45. package/dist/utils/index.d.ts.map +1 -1
  46. package/dist/utils/index.js +1 -1
  47. package/package.json +1 -1
  48. package/dist/chunk-3YNJTBYF.js.map +0 -1
  49. package/dist/chunk-BUWJN6SN.js.map +0 -1
  50. package/dist/chunk-CWT5VEMU.js.map +0 -1
  51. package/dist/chunk-VTVWJBOP.js.map +0 -1
  52. package/dist/chunk-WU5JMO3N.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { type ButtonHTMLAttributes, type PointerEvent, type ReactNode } from 'react';
2
- import { ButtonType, type PaddingProp, type PressEvent, type RadiusProp, type SizePreset, type SizeUnion, type SizeValue } from '../../utils';
2
+ import { ButtonType, type ColorProp, type PaddingProp, type PressEvent, type RadiusProp, type SizePreset, type SizeUnion, type SizeValue } from '../../utils';
3
3
  import { type ButtonVariants } from './Button.variants';
4
4
  type ButtonSizePreset = Extract<SizePreset, 'xs' | 'sm' | 'md' | 'lg' | 'xl'>;
5
5
  /**
@@ -12,8 +12,9 @@ type ButtonSizePreset = Extract<SizePreset, 'xs' | 'sm' | 'md' | 'lg' | 'xl'>;
12
12
  * Raw or object forms set inline dimensions only — no padding/font baseline. Combine with `padding` if text-bearing.
13
13
  */
14
14
  export type ButtonSize = SizeUnion<ButtonSizePreset>;
15
- export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'disabled'>, Omit<ButtonVariants, 'size'> {
15
+ export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'disabled' | 'color'>, Omit<ButtonVariants, 'size'> {
16
16
  size?: ButtonSize;
17
+ color?: ColorProp;
17
18
  leadingSlot?: ReactNode;
18
19
  trailingSlot?: ReactNode;
19
20
  loadingSlot?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/actions/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EAMzB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAGL,UAAU,EAOV,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxE,KAAK,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAG9E;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAUrD,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,EACxE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IAE9B,IAAI,CAAC,EAAE,UAAU,CAAC;IAGlB,WAAW,CAAC,EAAE,SAAS,CAAC;IAGxB,YAAY,CAAC,EAAE,SAAS,CAAC;IAGzB,WAAW,CAAC,EAAE,SAAS,CAAC;IAGxB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,OAAO,CAAC,EAAE,WAAW,CAAC;IAGtB,MAAM,CAAC,EAAE,UAAU,CAAC;IAGpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAGlB,MAAM,CAAC,EAAE,SAAS,CAAC;IAGnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAGrB,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtB,OAAO,CAAC,EAAE,SAAS,CAAC;IAGpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAGlB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAG9D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAG5D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAG/D,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA6HD,eAAO,MAAM,MAAM,2GA+JlB,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/actions/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EAMzB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,UAAU,EAOV,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxE,KAAK,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAG9E;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAUrD,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,EAClF,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IAE9B,IAAI,CAAC,EAAE,UAAU,CAAC;IAGlB,KAAK,CAAC,EAAE,SAAS,CAAC;IAGlB,WAAW,CAAC,EAAE,SAAS,CAAC;IAGxB,YAAY,CAAC,EAAE,SAAS,CAAC;IAGzB,WAAW,CAAC,EAAE,SAAS,CAAC;IAGxB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,OAAO,CAAC,EAAE,WAAW,CAAC;IAGtB,MAAM,CAAC,EAAE,UAAU,CAAC;IAGpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAGlB,MAAM,CAAC,EAAE,SAAS,CAAC;IAGnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAGrB,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtB,OAAO,CAAC,EAAE,SAAS,CAAC;IAGpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAGlB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAG9D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAG5D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAG/D,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA6HD,eAAO,MAAM,MAAM,2GAkKlB,CAAC"}
@@ -1,7 +1,7 @@
1
- export { BackToTopButton, Button, ButtonGroup, CopyButton, DisclosureButton, FAB, Link, SegmentedControl, SpeedDial, SpeedDialAction, SpeedDialTrigger, ToggleButton, ToggleButtonGroup, Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, buttonVariants, fabVariants, linkVariants, toggleButtonVariants } from '../chunk-BUWJN6SN.js';
1
+ export { BackToTopButton, Button, ButtonGroup, CopyButton, DisclosureButton, FAB, Link, SegmentedControl, SpeedDial, SpeedDialAction, SpeedDialTrigger, ToggleButton, ToggleButtonGroup, Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, buttonVariants, fabVariants, linkVariants, toggleButtonVariants } from '../chunk-YYGII4AA.js';
2
2
  import '../chunk-NUMFGKPY.js';
3
3
  import '../chunk-F227LKWK.js';
4
- import '../chunk-WU5JMO3N.js';
4
+ import '../chunk-BIJGZBQQ.js';
5
5
  import '../chunk-BMABNEZX.js';
6
6
  import '../chunk-KDXJQNB6.js';
7
7
  import '../chunk-LDRFQG44.js';
@@ -1,4 +1,5 @@
1
1
  import { type ReactNode } from 'react';
2
+ import { type ColorProp } from '../../utils';
2
3
  import { type ButtonProps } from '../button/Button';
3
4
  import { type ToggleButtonVariants } from './ToggleButton.variants';
4
5
  type PressedFn<T> = (args: {
@@ -6,13 +7,14 @@ type PressedFn<T> = (args: {
6
7
  }) => T;
7
8
  type StateAware<T> = T | PressedFn<T>;
8
9
  type ToggleButtonChildren = StateAware<ReactNode>;
9
- export interface ToggleButtonProps extends Omit<ButtonProps, 'variant' | 'tone' | 'children' | 'title' | 'aria-label'>, ToggleButtonVariants {
10
+ export interface ToggleButtonProps extends Omit<ButtonProps, 'variant' | 'tone' | 'children' | 'title' | 'aria-label' | 'color'>, ToggleButtonVariants {
10
11
  pressed?: boolean;
11
12
  defaultPressed?: boolean;
12
13
  onPressedChange?: (pressed: boolean) => void;
13
14
  children?: ToggleButtonChildren;
14
15
  title?: StateAware<string>;
15
16
  'aria-label'?: StateAware<string>;
17
+ color?: ColorProp;
16
18
  }
17
19
  export declare const ToggleButton: import("react").ForwardRefExoticComponent<ToggleButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
18
20
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../../../src/actions/toggleButton/ToggleButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAK1F,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,CAAC,CAAC;AACtD,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAGtC,KAAK,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAElD,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC,EACjF,oBAAoB;IAEtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAG7C,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAGhC,KAAK,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAG3B,YAAY,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;CACnC;AAGD,eAAO,MAAM,YAAY,iHAqDxB,CAAC"}
1
+ {"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../../../src/actions/toggleButton/ToggleButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAM,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAK1F,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,CAAC,CAAC;AACtD,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAGtC,KAAK,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAElD,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC,EAC3F,oBAAoB;IAEtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAG7C,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAGhC,KAAK,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAG3B,YAAY,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAGlC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAGD,eAAO,MAAM,YAAY,iHAuDxB,CAAC"}
@@ -2,7 +2,7 @@ import { Drawer, DrawerContent, DrawerTitle, DrawerDescription } from './chunk-2
2
2
  import { DialogContent, DialogClose, Dialog, DialogTrigger, DialogHeader, DialogTitle, DialogDescription, DialogBody, DialogFooter } from './chunk-SGMG6NZB.js';
3
3
  import { Backdrop } from './chunk-BLXE2RCC.js';
4
4
  import { useControlled } from './chunk-NUMFGKPY.js';
5
- import { surfaceVariants } from './chunk-WU5JMO3N.js';
5
+ import { surfaceVariants } from './chunk-BIJGZBQQ.js';
6
6
  import { Slot, Portal, AnchoredPositioner, DismissableLayer, ScrollLockProvider, OverlayArrow } from './chunk-BMABNEZX.js';
7
7
  import { cn, composeRefs } from './chunk-LDRFQG44.js';
8
8
  import { forwardRef, createContext, useState, useRef, useEffect, useMemo, useContext, useCallback, isValidElement, cloneElement } from 'react';
@@ -134,6 +134,7 @@ var PopoverContent = forwardRef(
134
134
  anchor: ctx.triggerRef.current,
135
135
  placement: ctx.placement,
136
136
  offset: ctx.offset,
137
+ className: "z-dropdown",
137
138
  children: /* @__PURE__ */ jsx(FocusScope, { asChild: true, trapped: true, loop: true, children: /* @__PURE__ */ jsx(
138
139
  DismissableLayer,
139
140
  {
@@ -154,7 +155,7 @@ var PopoverContent = forwardRef(
154
155
  role: "dialog",
155
156
  "data-state": "open",
156
157
  className: cn(
157
- "z-dropdown outline-none animate-in fade-in-0 zoom-in-95",
158
+ "outline-none animate-in fade-in-0 zoom-in-95",
158
159
  !bare && cn(
159
160
  DEFAULT_WIDTH,
160
161
  surfaceVariants({
@@ -269,6 +270,7 @@ var HoverCardContent = forwardRef(
269
270
  anchor: ctx.triggerRef.current,
270
271
  placement: ctx.placement,
271
272
  offset: ctx.offset,
273
+ className: "z-dropdown",
272
274
  children: /* @__PURE__ */ jsx(
273
275
  "div",
274
276
  {
@@ -283,7 +285,7 @@ var HoverCardContent = forwardRef(
283
285
  ctx.hide();
284
286
  },
285
287
  className: cn(
286
- "z-dropdown w-64 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none animate-in fade-in-0 zoom-in-95",
288
+ "w-64 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none animate-in fade-in-0 zoom-in-95",
287
289
  className
288
290
  ),
289
291
  ...rest,
@@ -550,5 +552,5 @@ var BottomSheet = forwardRef(function BottomSheet2({
550
552
  });
551
553
 
552
554
  export { ActionSheet, ActionSheetAction, ActionSheetCancel, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, BottomSheet, HoverCard, HoverCardArrow, HoverCardContent, HoverCardTrigger, Popover, PopoverArrow, PopoverContent, PopoverTrigger, useBottomSheet };
553
- //# sourceMappingURL=chunk-3YNJTBYF.js.map
554
- //# sourceMappingURL=chunk-3YNJTBYF.js.map
555
+ //# sourceMappingURL=chunk-2KZJXQJ5.js.map
556
+ //# sourceMappingURL=chunk-2KZJXQJ5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/overlays/alertDialog/AlertDialog.tsx","../src/overlays/popover/Popover.tsx","../src/overlays/hoverCard/HoverCard.tsx","../src/overlays/actionSheet/ActionSheet.tsx","../src/overlays/bottomSheet/BottomSheet.tsx"],"names":["AlertDialogContent","AlertDialogAction","AlertDialogCancel","jsx","forwardRef","PopoverTrigger","PopoverContent","createContext","useContext","useRef","useMemo","HoverCardContent","ActionSheetAction","ActionSheetCancel","BottomSheet","jsxs","FocusScope"],"mappings":"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","file":"chunk-2KZJXQJ5.js","sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n DialogClose,\n type DialogProps,\n type DialogContentProps,\n} from '../dialog';\n\nexport type AlertDialogProps = Omit<DialogProps, 'role' | 'dismissOnOutsideClick'>;\n\nexport function AlertDialog(props: AlertDialogProps) {\n return <Dialog {...props} role=\"alertdialog\" dismissOnOutsideClick={false} />;\n}\n\nexport const AlertDialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n function AlertDialogContent(props, ref) {\n return <DialogContent ref={ref} {...props} />;\n },\n);\n\nexport interface AlertDialogActionProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n /** Runs before the dialog closes. */\n onAction?: () => void;\n children: ReactNode;\n}\n\nexport const AlertDialogAction = forwardRef<HTMLButtonElement, AlertDialogActionProps>(\n function AlertDialogAction({ onAction, onClick, className, children, ...rest }, ref) {\n return (\n <DialogClose\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 </DialogClose>\n );\n },\n);\n\nexport interface AlertDialogCancelProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n children: ReactNode;\n}\n\nexport const AlertDialogCancel = forwardRef<HTMLButtonElement, AlertDialogCancelProps>(\n function AlertDialogCancel({ className, children, ...rest }, ref) {\n return (\n <DialogClose\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 </DialogClose>\n );\n },\n);\n\ntype AlertDialogComponent = typeof AlertDialog & {\n Trigger: typeof DialogTrigger;\n Content: typeof AlertDialogContent;\n Header: typeof DialogHeader;\n Title: typeof DialogTitle;\n Description: typeof DialogDescription;\n Body: typeof DialogBody;\n Footer: typeof DialogFooter;\n Action: typeof AlertDialogAction;\n Cancel: typeof AlertDialogCancel;\n};\n\n(AlertDialog as AlertDialogComponent).Trigger = DialogTrigger;\n(AlertDialog as AlertDialogComponent).Content = AlertDialogContent;\n(AlertDialog as AlertDialogComponent).Header = DialogHeader;\n(AlertDialog as AlertDialogComponent).Title = DialogTitle;\n(AlertDialog as AlertDialogComponent).Description = DialogDescription;\n(AlertDialog as AlertDialogComponent).Body = DialogBody;\n(AlertDialog as AlertDialogComponent).Footer = DialogFooter;\n(AlertDialog as AlertDialogComponent).Action = AlertDialogAction;\n(AlertDialog as AlertDialogComponent).Cancel = AlertDialogCancel;\n\nexport default AlertDialog as AlertDialogComponent;\n","import {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n useRef,\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 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 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\nexport function Popover({\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\n const ctx = useMemo<PopoverContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n placement,\n offset,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, placement, offset, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <PopoverContext.Provider value={ctx}>{children}</PopoverContext.Provider>;\n}\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 Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={composeRefs(forwardedRef, ctx.triggerRef as React.MutableRefObject<HTMLButtonElement | null>) 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\nexport interface PopoverContentProps\n extends HTMLAttributes<HTMLDivElement>,\n SurfaceVariants {\n /**\n * Skip the surface chrome entirely. Use when the child provides its own\n * container (Listbox, Calendar, pre-styled card). Keeps only structural\n * classes (z-index, animation, outline).\n *\n * `bare={true}` is equivalent to omitting variant/tone — except it ALSO\n * skips the default `variant=\"surface\"` (no bg/border/shadow at all).\n */\n bare?: boolean;\n children: ReactNode;\n}\n\n/* Default width when chrome is applied — preserves the historical look. */\nconst DEFAULT_WIDTH = 'w-72';\n\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent(\n { bare, variant, tone, radius, padding, elevation, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = usePopoverContext();\n if (!ctx.open) return null;\n /* Pad-by-default when chrome is on (matches old `p-4`); consumer can override. */\n const resolvedPadding = padding ?? (bare ? 'none' : 'lg');\n return (\n <Portal>\n {/* z-index lives HERE — on the SC root (transform creates the context).\n Putting z-* on a descendant of a transformed element only orders\n within the local context, not at document.body level. */}\n <AnchoredPositioner\n anchor={ctx.triggerRef.current}\n placement={ctx.placement}\n offset={ctx.offset}\n className=\"z-dropdown\"\n >\n <FocusScope asChild trapped loop>\n <DismissableLayer\n disableEscape={!ctx.dismissOnEscape}\n onEscape={() => {\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }}\n disableOutsideClick={!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 data-state=\"open\"\n className={cn(\n 'outline-none animate-in fade-in-0 zoom-in-95',\n !bare &&\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 </Portal>\n );\n },\n);\n\nexport function PopoverArrow({ className, ...rest }: OverlayArrowProps) {\n return <OverlayArrow className={cn('text-popover', className)} {...rest} />;\n}\n\ntype PopoverComponent = typeof Popover & {\n Trigger: typeof PopoverTrigger;\n Content: typeof PopoverContent;\n Arrow: typeof PopoverArrow;\n};\n\n(Popover as PopoverComponent).Trigger = PopoverTrigger;\n(Popover as PopoverComponent).Content = PopoverContent;\n(Popover as PopoverComponent).Arrow = PopoverArrow;\n\nexport default Popover as PopoverComponent;\n","import {\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\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 } from '../../hooks';\nimport {\n AnchoredPositioner,\n OverlayArrow,\n Portal,\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\nexport function HoverCard({\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 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}\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\nexport const HoverCardContent = forwardRef<HTMLDivElement, HoverCardContentProps>(\n function HoverCardContent({ className, children, onPointerEnter, onPointerLeave, ...rest }, forwardedRef) {\n const ctx = useHoverCardContext();\n if (!ctx.open) return null;\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 data-state=\"open\"\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 animate-in fade-in-0 zoom-in-95',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </AnchoredPositioner>\n </Portal>\n );\n },\n);\n\nexport function HoverCardArrow({ className, ...rest }: OverlayArrowProps) {\n return <OverlayArrow className={cn('text-popover', className)} {...rest} />;\n}\n\ntype HoverCardComponent = typeof HoverCard & {\n Trigger: typeof HoverCardTrigger;\n Content: typeof HoverCardContent;\n Arrow: typeof HoverCardArrow;\n};\n\n(HoverCard as HoverCardComponent).Trigger = HoverCardTrigger;\n(HoverCard as HoverCardComponent).Content = HoverCardContent;\n(HoverCard as HoverCardComponent).Arrow = HoverCardArrow;\n\nexport default HoverCard as HoverCardComponent;\n","import {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cn } from '../../utils';\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 */\nexport function ActionSheet({\n open,\n defaultOpen,\n onOpenChange,\n title,\n description,\n className,\n children,\n}: ActionSheetProps) {\n // We can't intercept `setOpen` from Drawer's context directly, so the\n // ActionSheet wraps Drawer with our own controlled bridge.\n const handleOpenChange = (next: boolean) => onOpenChange?.(next);\n\n const ctx = useMemo<ActionSheetContextValue>(\n () => ({ setOpen: handleOpenChange }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onOpenChange],\n );\n\n return (\n <ActionSheetContext.Provider value={ctx}>\n <Drawer open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange} 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}\n\nexport interface ActionSheetActionProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n onSelect?: () => void;\n destructive?: boolean;\n}\n\nexport const ActionSheetAction = forwardRef<HTMLButtonElement, ActionSheetActionProps>(\n function ActionSheetAction(\n { className, onSelect, destructive, 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 destructive ? '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\ntype ActionSheetComponent = typeof ActionSheet & {\n Action: typeof ActionSheetAction;\n Cancel: typeof ActionSheetCancel;\n};\n\n(ActionSheet as ActionSheetComponent).Action = ActionSheetAction;\n(ActionSheet as ActionSheetComponent).Cancel = ActionSheetCancel;\n\nexport default ActionSheet as ActionSheetComponent;\n","import {\n createContext,\n forwardRef,\n useContext,\n useEffect,\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 } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { DismissableLayer, Portal, ScrollLockProvider } from '../../primitives';\nimport { Backdrop } from '../backdrop';\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\nexport interface BottomSheetProps extends HTMLAttributes<HTMLDivElement> {\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 */\nexport const BottomSheet = 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 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\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 const ctx = useMemo<BottomSheetContextValue>(\n () => ({ open, setOpen, currentSnap, setCurrentSnap, snapPoints }),\n [open, setOpen, currentSnap, snapPoints],\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 if (!open) 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\n inline\n onClick={() => {\n if (dismissOnOutsideClick) setOpen(false);\n }}\n />\n <FocusScope asChild trapped loop>\n <DismissableLayer\n disableEscape={!dismissOnEscape}\n onEscape={() => setOpen(false)}\n disableOutsideClick\n >\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 style={{\n height: heightStyle,\n transition: dragHeight == null ? 'height 220ms ease-out' : 'none',\n }}\n className={cn(\n 'fixed inset-x-0 bottom-0 z-modal flex flex-col rounded-t-xl border-t border-border bg-card text-card-foreground shadow-2xl outline-none',\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\">{children}</div>\n </div>\n </DismissableLayer>\n </FocusScope>\n </ScrollLockProvider>\n </Portal>\n </BottomSheetContext.Provider>\n );\n});\n"]}
@@ -7,6 +7,7 @@ export { tv } from 'tailwind-variants';
7
7
  var utils_exports = {};
8
8
  __export(utils_exports, {
9
9
  ButtonType: () => ButtonType,
10
+ ColorExtensions: () => ColorExtensions,
10
11
  CssExtensions: () => CssExtensions,
11
12
  Equality: () => Equality,
12
13
  HtmlElement: () => HtmlElement,
@@ -145,6 +146,39 @@ var CssExtensions = {
145
146
  RADIUS_TOKEN_TO_CSS
146
147
  };
147
148
 
149
+ // src/utils/ColorExtensions.ts
150
+ var TONE_TOKEN_MAP = {
151
+ primary: { main: "primary", fg: "primary-foreground", soft: "primary-soft", softFg: "primary-soft-foreground" },
152
+ neutral: { main: "foreground", fg: "background", soft: "muted", softFg: "foreground" },
153
+ danger: { main: "destructive", fg: "destructive-foreground", soft: "destructive-soft", softFg: "destructive-soft-foreground" },
154
+ success: { main: "success", fg: "success-foreground", soft: "success-soft", softFg: "success-soft-foreground" },
155
+ warning: { main: "warning", fg: "warning-foreground", soft: "warning-soft", softFg: "warning-soft-foreground" }
156
+ };
157
+ function toneColorOverride(input, tone) {
158
+ if (input === void 0 || input === null) return void 0;
159
+ const activeTone = tone ?? "primary";
160
+ const tokens = TONE_TOKEN_MAP[activeTone];
161
+ const out = {};
162
+ if (typeof input === "string") {
163
+ out[`--color-${tokens.main}`] = input;
164
+ out[`--color-${tokens.fg}`] = "#ffffff";
165
+ out[`--color-${tokens.soft}`] = `color-mix(in oklch, ${input} 12%, white)`;
166
+ out[`--color-${tokens.softFg}`] = input;
167
+ out["--color-ring"] = input;
168
+ } else {
169
+ if (input.bg !== void 0) out[`--color-${tokens.main}`] = input.bg;
170
+ if (input.text !== void 0) out[`--color-${tokens.fg}`] = input.text;
171
+ if (input.soft !== void 0) out[`--color-${tokens.soft}`] = input.soft;
172
+ if (input.softText !== void 0) out[`--color-${tokens.softFg}`] = input.softText;
173
+ if (input.ring !== void 0) out["--color-ring"] = input.ring;
174
+ }
175
+ return Object.keys(out).length > 0 ? out : void 0;
176
+ }
177
+ var ColorExtensions = {
178
+ toneColorOverride,
179
+ TONE_TOKEN_MAP
180
+ };
181
+
148
182
  // src/utils/OptionalExtensions.ts
149
183
  function from(condition, value) {
150
184
  return condition ? value : void 0;
@@ -493,6 +527,6 @@ var Equality = {
493
527
  }
494
528
  };
495
529
 
496
- export { ButtonType, CssExtensions, Equality, HtmlElement, Key, Layer, OptionalExtensions, PressExtensions, TransitionExtensions, composeEventHandlers, dataAttr, layerStyle, surfaceVariants, utils_exports };
497
- //# sourceMappingURL=chunk-WU5JMO3N.js.map
498
- //# sourceMappingURL=chunk-WU5JMO3N.js.map
530
+ export { ButtonType, ColorExtensions, CssExtensions, Equality, HtmlElement, Key, Layer, OptionalExtensions, PressExtensions, TransitionExtensions, composeEventHandlers, dataAttr, layerStyle, surfaceVariants, utils_exports };
531
+ //# sourceMappingURL=chunk-BIJGZBQQ.js.map
532
+ //# sourceMappingURL=chunk-BIJGZBQQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/index.ts","../src/utils/composeEventHandlers.ts","../src/utils/dataAttr.ts","../src/utils/CssExtensions.ts","../src/utils/ColorExtensions.ts","../src/utils/OptionalExtensions.ts","../src/utils/PressExtensions.ts","../src/utils/HtmlExtensions.ts","../src/utils/KeyboardExtensions.ts","../src/utils/TransitionExtensions.ts","../src/utils/SurfaceStyles.ts","../src/utils/Layers.ts","../src/utils/Equality.ts"],"names":[],"mappings":"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","file":"chunk-BIJGZBQQ.js","sourcesContent":["export { cn } from './cn';\nexport { composeRefs } from './composeRefs';\nexport { composeEventHandlers } from './composeEventHandlers';\nexport { dataAttr } from './dataAttr';\nexport { tv, type VariantProps } from './tv';\nexport type {\n PolymorphicProps,\n PolymorphicPropsWithoutRef,\n PolymorphicRef,\n} from './polymorphic';\nexport { CssExtensions } from './CssExtensions';\nexport type {\n PaddingToken,\n RadiusToken,\n SizeValue,\n PaddingProp,\n RadiusProp,\n BoxSizeOverrides,\n SizeUnion,\n SizePreset,\n AbsolutePositionPreset,\n AbsoluteInsetOverrides,\n AbsolutePosition,\n} from './CssExtensions';\nexport { ColorExtensions } from './ColorExtensions';\nexport type { ColorTone, ColorOverride, ColorProp } from './ColorExtensions';\nexport { OptionalExtensions } from './OptionalExtensions';\nexport { PressExtensions, type PressEvent } from './PressExtensions';\nexport { HtmlElement, ButtonType } from './HtmlExtensions';\nexport { Key } from './KeyboardExtensions';\nexport { TransitionExtensions } from './TransitionExtensions';\nexport type {\n PresenceAnimationDurationProp,\n PresenceAnimationDuration,\n} from './TransitionExtensions';\nexport { surfaceVariants } from './SurfaceStyles';\nexport type {\n SurfaceVariants,\n SurfaceVariant,\n SurfaceTone,\n SurfaceRadius,\n SurfacePadding,\n SurfaceElevation,\n} from './SurfaceStyles';\nexport { Layer, layerStyle, type LayerName } from './Layers';\nexport { Equality, type EqualityComparer } from './Equality';\n","import type { SyntheticEvent } from 'react';\n\n/**\n * Chain two event handlers. The first handler runs, then the second — unless\n * the first called `event.preventDefault()`, in which case the second is skipped.\n * Use when overriding a default handler from a parent while still allowing\n * the consumer to provide their own.\n */\nexport function composeEventHandlers<E extends SyntheticEvent>(\n theirHandler: ((event: E) => void) | undefined,\n ourHandler: (event: E) => void,\n { checkForDefaultPrevented = true }: { checkForDefaultPrevented?: boolean } = {},\n): (event: E) => void {\n return (event) => {\n theirHandler?.(event);\n if (!checkForDefaultPrevented || !event.defaultPrevented) {\n ourHandler(event);\n }\n };\n}\n","/**\n * Returns `\"\"` when the condition is true, `undefined` otherwise.\n * Use for boolean `data-*` attributes — React strips the attr when value is undefined,\n * so the DOM cleanly toggles `data-state` rather than `data-state=\"false\"`.\n */\nexport function dataAttr(condition: boolean | undefined): '' | undefined {\n return condition ? '' : undefined;\n}\n","import type { CSSProperties } from 'react';\n\n/** CSS-value extensions — types, token maps, resolvers. Call as `CssExtensions.x(...)`. */\n\n// =============================================================================\n// Tokens (types — individually exported; types are erased, no shaking concern)\n// =============================================================================\n\nexport type PaddingToken = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type RadiusToken = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\nexport type SizeValue = string | number;\nexport type PaddingProp = PaddingToken | { x?: SizeValue; y?: SizeValue };\nexport type RadiusProp = RadiusToken | SizeValue;\nexport interface BoxSizeOverrides {\n width?: SizeValue;\n height?: SizeValue;\n minWidth?: SizeValue;\n minHeight?: SizeValue;\n maxWidth?: SizeValue;\n maxHeight?: SizeValue;\n /** Shorthand for square boxes — applied as fallback for both `width` and `height`. Explicit `width`/`height` win when both are set. */\n boxSize?: SizeValue;\n /** CSS `aspect-ratio`. String like `'16/9'` or number like `1.5`. Pairs naturally with a single width/height. */\n aspectRatio?: string | number;\n}\n\n/** Canonical size preset vocabulary — shared across components. Each component picks the subset it supports via `Extract<SizePreset, ...>` and owns its internal dimension mapping. */\nexport type SizePreset = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n/* Absolute-positioning tokens — preset 9-anchor enum + raw inset overrides. */\n\nexport type AbsolutePositionPreset =\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'center';\n\nexport interface AbsoluteInsetOverrides {\n top?: SizeValue;\n right?: SizeValue;\n bottom?: SizeValue;\n left?: SizeValue;\n}\n\nexport type AbsolutePosition = AbsolutePositionPreset | AbsoluteInsetOverrides;\n\n// =============================================================================\n// Token → CSS maps\n// =============================================================================\n\nconst PADDING_TOKEN_TO_CSS: Record<Exclude<PaddingToken, 'none'>, string> = {\n xs: '0.5rem',\n sm: '0.75rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n};\n\nconst RADIUS_TOKEN_TO_CSS: Record<Exclude<RadiusToken, 'none' | 'full'>, string> = {\n xs: '0.125rem',\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n};\n\n// =============================================================================\n// Internal resolvers\n// =============================================================================\n\nfunction toCss(v: SizeValue): string {\n return typeof v === 'number' ? `${v}px` : v;\n}\n\nfunction resolvePadding(padding: PaddingProp | undefined): CSSProperties | undefined {\n if (!padding) return undefined;\n if (typeof padding === 'string') {\n if (padding === 'none') {\n return { paddingLeft: 0, paddingRight: 0, paddingTop: 0, paddingBottom: 0 };\n }\n const v = PADDING_TOKEN_TO_CSS[padding];\n return { paddingLeft: v, paddingRight: v, paddingTop: v, paddingBottom: v };\n }\n const style: CSSProperties = {};\n if (padding.x !== undefined) {\n const v = toCss(padding.x);\n style.paddingLeft = v;\n style.paddingRight = v;\n }\n if (padding.y !== undefined) {\n const v = toCss(padding.y);\n style.paddingTop = v;\n style.paddingBottom = v;\n }\n return style;\n}\n\nfunction resolveRadius(radius: RadiusProp | undefined): CSSProperties | undefined {\n if (radius === undefined || radius === null) return undefined;\n if (typeof radius === 'number') return { borderRadius: `${radius}px` };\n if (radius === 'none') return { borderRadius: 0 };\n if (radius === 'full') return { borderRadius: '9999px' };\n if (radius in RADIUS_TOKEN_TO_CSS) {\n return {\n borderRadius:\n RADIUS_TOKEN_TO_CSS[radius as Exclude<RadiusToken, 'none' | 'full'>],\n };\n }\n return { borderRadius: radius };\n}\n\nfunction resolveBoxSize(overrides: BoxSizeOverrides): CSSProperties | undefined {\n const style: CSSProperties = {};\n let hasAny = false;\n // boxSize is the fallback for width AND height — explicit dims win.\n const effectiveWidth = overrides.width ?? overrides.boxSize;\n const effectiveHeight = overrides.height ?? overrides.boxSize;\n if (effectiveWidth !== undefined) {\n style.width = toCss(effectiveWidth);\n hasAny = true;\n }\n if (effectiveHeight !== undefined) {\n style.height = toCss(effectiveHeight);\n hasAny = true;\n }\n if (overrides.minWidth !== undefined) {\n style.minWidth = toCss(overrides.minWidth);\n hasAny = true;\n }\n if (overrides.minHeight !== undefined) {\n style.minHeight = toCss(overrides.minHeight);\n hasAny = true;\n }\n if (overrides.maxWidth !== undefined) {\n style.maxWidth = toCss(overrides.maxWidth);\n hasAny = true;\n }\n if (overrides.maxHeight !== undefined) {\n style.maxHeight = toCss(overrides.maxHeight);\n hasAny = true;\n }\n if (overrides.aspectRatio !== undefined) {\n style.aspectRatio = String(overrides.aspectRatio);\n hasAny = true;\n }\n return hasAny ? style : undefined;\n}\n\n/** Union type for size props that accept either a named preset, a raw value (applied as `boxSize`), or an explicit dim object. */\nexport type SizeUnion<P extends string> =\n | P\n | (string & {}) // keeps preset literals in autocomplete while accepting any CSS unit string\n | number\n | BoxSizeOverrides;\n\n/**\n * Parse a union-style size prop into (a) a preset name (if matched), or (b) a `BoxSizeOverrides` payload.\n *\n * Resolution order:\n * - `undefined` → `{}`\n * - object → `{ box: input }`\n * - preset string → `{ preset: input }`\n * - any other string → `{ box: { boxSize: input } }`\n * - number → `{ box: { boxSize: input } }`\n */\nfunction parseSizeUnion<P extends string>(\n input: SizeUnion<P> | undefined,\n presets: ReadonlySet<string>,\n): { preset?: P; box?: BoxSizeOverrides } {\n if (input === undefined) return {};\n if (typeof input === 'object' && input !== null) return { box: input };\n if (typeof input === 'string' && presets.has(input)) return { preset: input as P };\n if (typeof input === 'number' || typeof input === 'string') {\n return { box: { boxSize: input } };\n }\n return {};\n}\n\n// =============================================================================\n// Grouped namespace export\n// =============================================================================\n\nexport const CssExtensions = {\n toCss,\n resolvePadding,\n resolveRadius,\n resolveBoxSize,\n parseSizeUnion,\n PADDING_TOKEN_TO_CSS,\n RADIUS_TOKEN_TO_CSS,\n} as const;\n","import type { CSSProperties } from 'react';\n\n/* Tone vocabulary shared by tone-aware components (Button, Checkbox, ToggleButton, Tag, Alert, etc.). */\nexport type ColorTone = 'primary' | 'neutral' | 'danger' | 'success' | 'warning';\n\n/* Explicit color overrides for the active tone's slot set. Pair with a base `tone` prop on the component. */\nexport interface ColorOverride {\n /* Main background / fill color. Drives `bg-{tone}`, `hover:bg-{tone}/X`, `active:bg-{tone}/X`, `border-{tone}`, `ring-{tone}`. */\n bg?: string;\n\n /* Text/icon color on top of `bg`. Drives `text-{tone}-foreground`. */\n text?: string;\n\n /* Light tinted background for soft variants. Drives `bg-{tone}-soft`. */\n soft?: string;\n\n /* Text on top of `soft` background. Drives `text-{tone}-soft-foreground`. */\n softText?: string;\n\n /* Focus ring color override (else inherits the component's tone). */\n ring?: string;\n}\n\n/* Accepted shapes for the `color` prop: a single seed string (lib derives rest) OR an explicit slot override object. */\nexport type ColorProp = string | ColorOverride;\n\n/* Per-tone CSS variable name suffixes (after `--color-`). */\nconst TONE_TOKEN_MAP: Record<\n ColorTone,\n { main: string; fg: string; soft: string; softFg: string }\n> = {\n primary: { main: 'primary', fg: 'primary-foreground', soft: 'primary-soft', softFg: 'primary-soft-foreground' },\n neutral: { main: 'foreground', fg: 'background', soft: 'muted', softFg: 'foreground' },\n danger: { main: 'destructive', fg: 'destructive-foreground', soft: 'destructive-soft', softFg: 'destructive-soft-foreground' },\n success: { main: 'success', fg: 'success-foreground', soft: 'success-soft', softFg: 'success-soft-foreground' },\n warning: { main: 'warning', fg: 'warning-foreground', soft: 'warning-soft', softFg: 'warning-soft-foreground' },\n};\n\n/**\n * Convert a `color` / `colors` prop into a CSS-variable override style for\n * the active tone's slot set. Returned style overrides the component's theme\n * tokens locally — every Tailwind utility (`bg-{tone}`, `hover:bg-{tone}/X`,\n * `text-{tone}-foreground`, etc.) that references the var picks it up\n * automatically. No variant config refactor required.\n *\n * Single-seed mode (`input` is a string):\n * - `bg` ← seed\n * - `text` ← white (default contrast; override via `colors.text`)\n * - `soft` ← seed mixed 12% over white via `color-mix(in oklch, ...)`\n * - `softText` ← seed\n * - `ring` ← seed\n *\n * Object mode (`input` is a `ColorOverride`):\n * - Each slot independently overridable; unset slots retain the theme default.\n */\nfunction toneColorOverride(\n input: ColorProp | undefined,\n tone: ColorTone | undefined,\n): CSSProperties | undefined {\n if (input === undefined || input === null) return undefined;\n const activeTone = tone ?? 'primary';\n const tokens = TONE_TOKEN_MAP[activeTone];\n const out: Record<string, string> = {};\n\n if (typeof input === 'string') {\n out[`--color-${tokens.main}`] = input;\n out[`--color-${tokens.fg}`] = '#ffffff';\n out[`--color-${tokens.soft}`] = `color-mix(in oklch, ${input} 12%, white)`;\n out[`--color-${tokens.softFg}`] = input;\n out['--color-ring'] = input;\n } else {\n if (input.bg !== undefined) out[`--color-${tokens.main}`] = input.bg;\n if (input.text !== undefined) out[`--color-${tokens.fg}`] = input.text;\n if (input.soft !== undefined) out[`--color-${tokens.soft}`] = input.soft;\n if (input.softText !== undefined) out[`--color-${tokens.softFg}`] = input.softText;\n if (input.ring !== undefined) out['--color-ring'] = input.ring;\n }\n\n return Object.keys(out).length > 0 ? (out as CSSProperties) : undefined;\n}\n\n// =============================================================================\n// Grouped namespace export\n// =============================================================================\n\nexport const ColorExtensions = {\n toneColorOverride,\n TONE_TOKEN_MAP,\n} as const;\n","/** Optional value extensions — call as `OptionalExtensions.x(...)`. */\n\n/**\n * Construct an optional from a `(condition, value)` pair: returns `value` when\n * `condition` is truthy, otherwise `undefined`. Use to keep DOM attributes\n * absent when their default/false meaning is what we want (e.g. `aria-busy`,\n * `tabIndex`, `disabled`).\n */\nfunction from<T>(condition: unknown, value: T): T | undefined {\n return condition ? value : undefined;\n}\n\nexport const OptionalExtensions = {\n from,\n} as const;\n","import type { KeyboardEvent, PointerEvent } from 'react';\n\n/** Press-interaction extensions — types + constants shared by interactive components. */\n\n/** Unified press event — pointer OR keyboard activation on any HTML element. */\nexport type PressEvent<T extends HTMLElement = HTMLElement> =\n | PointerEvent<T>\n | KeyboardEvent<T>;\n\nexport const PressExtensions = {\n /**\n * Bounds for `longPressDelay` props. Below `min`: overlaps with normal\n * click latency, too easy to trigger accidentally. Above `max`: clearly a\n * developer error (5-min hold). `default` is the conventional 500ms.\n */\n longPressDelay: {\n min: 200,\n max: 300_000,\n default: 500,\n },\n} as const;\n","/* HTML attribute & element value enums (const + type pairs). */\n\n/* HTML element tag names — for JSX intrinsics and polymorphic `Comp` variables. */\nexport const HtmlElement = {\n Button: 'button',\n Anchor: 'a',\n Span: 'span',\n Div: 'div',\n} as const;\nexport type HtmlElement = (typeof HtmlElement)[keyof typeof HtmlElement];\n\n/* HTML `<button type=\"\">` attribute. */\nexport const ButtonType = {\n Button: 'button',\n Submit: 'submit',\n Reset: 'reset',\n} as const;\nexport type ButtonType = (typeof ButtonType)[keyof typeof ButtonType];\n","/* Keyboard key values from `KeyboardEvent.key`. Add new entries as components need them. */\nexport const Key = {\n Space: ' ',\n Enter: 'Enter',\n Escape: 'Escape',\n Tab: 'Tab',\n Backspace: 'Backspace',\n Delete: 'Delete',\n Home: 'Home',\n End: 'End',\n PageUp: 'PageUp',\n PageDown: 'PageDown',\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight',\n} as const;\nexport type Key = (typeof Key)[keyof typeof Key];\n","/* Transition / animation utility extensions — duration normalization, defaults. Call as `TransitionExtensions.x(...)`. */\n\n// =============================================================================\n// Types — presence-style asymmetric durations (enter/exit). Not every animation\n// has an enter/exit phase (loops, one-shots, springs); this shape applies\n// specifically to mount/unmount or appear/disappear transitions.\n// =============================================================================\n\n/** Input prop — symmetric number OR asymmetric `{ enter, exit }`. */\nexport type PresenceAnimationDurationProp =\n | number\n | { enter?: number; exit?: number };\n\n/** Resolved (canonical) — both sides always present. */\nexport interface PresenceAnimationDuration {\n enter: number;\n exit: number;\n}\n\n// =============================================================================\n// Defaults\n// =============================================================================\n\nconst DEFAULT_DURATION_MS = 200;\n\n// =============================================================================\n// Internal resolvers\n// =============================================================================\n\nfunction resolveDuration(\n d: PresenceAnimationDurationProp | undefined,\n): PresenceAnimationDuration {\n if (typeof d === 'number') return { enter: d, exit: d };\n if (d && typeof d === 'object') {\n return {\n enter: d.enter ?? DEFAULT_DURATION_MS,\n exit: d.exit ?? DEFAULT_DURATION_MS,\n };\n }\n return { enter: DEFAULT_DURATION_MS, exit: DEFAULT_DURATION_MS };\n}\n\n// =============================================================================\n// Grouped namespace export\n// =============================================================================\n\nexport const TransitionExtensions = {\n resolveDuration,\n duration: { default: DEFAULT_DURATION_MS },\n} as const;\n","/*\n * Cross-domain surface style engine.\n *\n * Every \"block of content with a visual treatment\" in the lib composes these\n * variants: floating panels (Popover, Tooltip, HoverCard), menus (DropdownMenu,\n * ContextMenu, CommandPalette), dialogs/drawers, cards (Card, ChatBubble,\n * AlertCard), notifications (Toast, NotificationItem), and listbox surfaces.\n *\n * Lives in `src/utils/` because the boundaries lint forbids domain folders from\n * being import roots of other domains. Mirrors `forms/InputStyles.ts` for inputs\n * and `actions/button/Button.variants.ts` for buttons.\n *\n * Axes:\n * - variant — the visual recipe (bg + border + shadow structure)\n * - tone — semantic colorisation (neutral/primary/danger/success/warning/info)\n * - radius — corner roundness (independent)\n * - padding — interior breathing room (independent; default: none — most\n * surfaces contain children that pad themselves)\n * - elevation — optional shadow override (0–5). When omitted, variant decides.\n */\n\nimport { tv, type VariantProps } from './tv';\n\nexport const surfaceVariants = tv({\n base: 'outline-none transition-colors',\n variants: {\n variant: {\n /* Opaque fill, no border, light shadow. Tooltips, chips, inline pills. */\n solid: 'shadow-sm',\n /* Muted/tinted fill, no border, light shadow. Chat bubbles, inline groups. */\n soft: 'shadow-sm',\n /* Opaque fill + visible border + medium shadow. Default for popovers/menus. */\n surface: 'border shadow-md',\n /* Transparent fill + visible border. Static cards, embedded info blocks. */\n outline: 'border bg-transparent',\n /* Translucent + blur, no border, medium shadow. Image overlays. */\n glass: 'backdrop-blur-md shadow-md',\n /* Translucent + blur + subtle border. Premium / hero overlays. */\n 'glass-outline': 'border backdrop-blur-md shadow-md',\n /* Opaque fill, no border, heavy shadow. Modals, drawers, command palette. */\n elevated: 'shadow-xl',\n /* Opaque fill, no border, no shadow. Embedded sub-panels inside another surface. */\n flat: '',\n },\n\n tone: {\n neutral: '',\n primary: '',\n danger: '',\n success: '',\n warning: '',\n info: '',\n },\n\n radius: {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n full: 'rounded-full',\n },\n\n padding: {\n none: 'p-0',\n xs: 'p-1',\n sm: 'p-2',\n md: 'p-3',\n lg: 'p-4',\n xl: 'p-6',\n '2xl': 'p-8',\n },\n\n /* Optional shadow override — when set, beats variant's default shadow via\n tailwind-merge precedence. Leave undefined to inherit from variant. */\n elevation: {\n 0: 'shadow-none',\n 1: 'shadow-sm',\n 2: 'shadow-md',\n 3: 'shadow-lg',\n 4: 'shadow-xl',\n 5: 'shadow-2xl',\n },\n },\n\n compoundVariants: [\n /* SOLID + ELEVATED + FLAT — opaque, tone bg, tone foreground. Same color matrix\n across these three variants — shadow is the only diff (handled by variant base). */\n {\n variant: ['solid', 'elevated', 'flat'],\n tone: 'neutral',\n class: 'bg-popover text-popover-foreground',\n },\n {\n variant: ['solid', 'elevated', 'flat'],\n tone: 'primary',\n class: 'bg-primary text-primary-foreground',\n },\n {\n variant: ['solid', 'elevated', 'flat'],\n tone: 'danger',\n class: 'bg-destructive text-destructive-foreground',\n },\n {\n variant: ['solid', 'elevated', 'flat'],\n tone: 'success',\n class: 'bg-success text-success-foreground',\n },\n {\n variant: ['solid', 'elevated', 'flat'],\n tone: 'warning',\n class: 'bg-warning text-warning-foreground',\n },\n {\n variant: ['solid', 'elevated', 'flat'],\n tone: 'info',\n class: 'bg-info text-info-foreground',\n },\n\n /* SOFT — muted/tinted bg, tone-readable text. */\n { variant: 'soft', tone: 'neutral', class: 'bg-muted text-foreground' },\n { variant: 'soft', tone: 'primary', class: 'bg-primary-soft text-primary' },\n { variant: 'soft', tone: 'danger', class: 'bg-destructive-soft text-destructive' },\n { variant: 'soft', tone: 'success', class: 'bg-success-soft text-success' },\n { variant: 'soft', tone: 'warning', class: 'bg-warning-soft text-warning' },\n { variant: 'soft', tone: 'info', class: 'bg-info-soft text-info' },\n\n /* SURFACE — popover bg + tone-accent border. Border colours subtly to keep\n the panel reading as \"neutral surface with [tone] context\". */\n {\n variant: 'surface',\n tone: 'neutral',\n class: 'border-border bg-popover text-popover-foreground',\n },\n {\n variant: 'surface',\n tone: 'primary',\n class: 'border-primary/40 bg-popover text-popover-foreground',\n },\n {\n variant: 'surface',\n tone: 'danger',\n class: 'border-destructive/40 bg-popover text-popover-foreground',\n },\n {\n variant: 'surface',\n tone: 'success',\n class: 'border-success/40 bg-popover text-popover-foreground',\n },\n {\n variant: 'surface',\n tone: 'warning',\n class: 'border-warning/40 bg-popover text-popover-foreground',\n },\n {\n variant: 'surface',\n tone: 'info',\n class: 'border-info/40 bg-popover text-popover-foreground',\n },\n\n /* OUTLINE — fully transparent fill, tone border + tone-readable text. */\n { variant: 'outline', tone: 'neutral', class: 'border-border text-foreground' },\n { variant: 'outline', tone: 'primary', class: 'border-primary text-primary' },\n { variant: 'outline', tone: 'danger', class: 'border-destructive text-destructive' },\n { variant: 'outline', tone: 'success', class: 'border-success text-success' },\n { variant: 'outline', tone: 'warning', class: 'border-warning text-warning' },\n { variant: 'outline', tone: 'info', class: 'border-info text-info' },\n\n /* GLASS — translucent tinted fill + blur. Tone fills with alpha; foreground\n must read clearly across the blurred background underneath. */\n {\n variant: 'glass',\n tone: 'neutral',\n class: 'bg-popover/70 text-popover-foreground',\n },\n {\n variant: 'glass',\n tone: 'primary',\n class: 'bg-primary/30 text-primary-foreground',\n },\n {\n variant: 'glass',\n tone: 'danger',\n class: 'bg-destructive/30 text-destructive-foreground',\n },\n {\n variant: 'glass',\n tone: 'success',\n class: 'bg-success/30 text-success-foreground',\n },\n {\n variant: 'glass',\n tone: 'warning',\n class: 'bg-warning/30 text-warning-foreground',\n },\n {\n variant: 'glass',\n tone: 'info',\n class: 'bg-info/30 text-info-foreground',\n },\n\n /* GLASS-OUTLINE — glass + tone-accent border at 50% alpha. */\n {\n variant: 'glass-outline',\n tone: 'neutral',\n class: 'border-border/50 bg-popover/70 text-popover-foreground',\n },\n {\n variant: 'glass-outline',\n tone: 'primary',\n class: 'border-primary/50 bg-primary/30 text-primary-foreground',\n },\n {\n variant: 'glass-outline',\n tone: 'danger',\n class: 'border-destructive/50 bg-destructive/30 text-destructive-foreground',\n },\n {\n variant: 'glass-outline',\n tone: 'success',\n class: 'border-success/50 bg-success/30 text-success-foreground',\n },\n {\n variant: 'glass-outline',\n tone: 'warning',\n class: 'border-warning/50 bg-warning/30 text-warning-foreground',\n },\n {\n variant: 'glass-outline',\n tone: 'info',\n class: 'border-info/50 bg-info/30 text-info-foreground',\n },\n ],\n\n defaultVariants: {\n variant: 'surface',\n tone: 'neutral',\n radius: 'md',\n padding: 'none',\n },\n});\n\nexport type SurfaceVariants = VariantProps<typeof surfaceVariants>;\n\n/* Convenience type aliases for component props that want to expose the subset. */\nexport type SurfaceVariant = NonNullable<SurfaceVariants['variant']>;\nexport type SurfaceTone = NonNullable<SurfaceVariants['tone']>;\nexport type SurfaceRadius = NonNullable<SurfaceVariants['radius']>;\nexport type SurfacePadding = NonNullable<SurfaceVariants['padding']>;\nexport type SurfaceElevation = NonNullable<SurfaceVariants['elevation']>;\n","/*\n * Layer (z-index) constants — the single source of truth for stacking order.\n *\n * Each layer is a semantic name with a fixed z-index value. Components never\n * pick arbitrary numbers; they pick a named layer that matches their role.\n *\n * Gaps of 10 between layers leave room to insert a future intermediate tier\n * without renumbering. `Debug` lives far above the rest (9999) so DevTools /\n * inspector overlays always win.\n *\n * Tailwind utility classes (`z-base`, `z-dropdown`, etc.) are auto-generated\n * from matching `--z-index-*` entries in `src/index.css` (Tailwind v4 @theme).\n * Use either form:\n *\n * className=\"z-dropdown\" // utility class\n * style={layerStyle('Modal')} // inline programmatic\n * style={{ zIndex: Layer.Modal }} // raw const\n */\n\nexport const Layer = {\n /** Visually hidden — slip under base layer. */\n Hide: -1,\n /** Default DOM flow — no z-index applied. */\n Base: 0,\n /** Slightly elevated — sticky list items, hover-cards inside a grid. */\n Raised: 10,\n /** Pinned widgets inside a section (panel, inline overlay). */\n Docked: 20,\n /** Page-level sticky header / footer. */\n Sticky: 30,\n /** System banners — cookie notice, status banner, alert strip. */\n Banner: 40,\n /** Dropdowns, popovers, comboboxes, menus, hover-cards anchored to a trigger. */\n Dropdown: 50,\n /** Modal backdrop / drawer scrim — the dim layer behind a modal. */\n Overlay: 60,\n /** Modal / dialog / drawer / sheet content sitting above its backdrop. */\n Modal: 70,\n /** Popovers / menus opened FROM inside a modal — must beat Modal. */\n Popover: 80,\n /** Toasts / snackbars / undo bars — survive above modals. */\n Toast: 90,\n /** Tooltips — highest functional layer. */\n Tooltip: 100,\n /** DevTools / design-system inspector overlays. Always wins. */\n Debug: 9999,\n} as const;\n\nexport type LayerName = keyof typeof Layer;\n\n/** Inline style helper for programmatic use. */\nexport function layerStyle(layer: LayerName): { zIndex: number } {\n return { zIndex: Layer[layer] };\n}\n","/*\n * Equality comparers — reusable helpers for selection components, diff checks,\n * and any place that asks \"are these two values the same?\".\n *\n * Default comparer is `Object.is` (NaN-safe strict equality) which covers\n * strings, numbers, booleans, symbols. For complex objects, consumers pass\n * their own comparer (typically `byKey(o => o.id)`).\n */\n\n/** A function that decides whether two values are equal. */\nexport type EqualityComparer<T> = (a: T, b: T) => boolean;\n\nexport const Equality = {\n /**\n * Default. NaN-safe strict equality.\n * Correct for `string | number | boolean | symbol | null | undefined`.\n * Reference equality for objects (only same instance is equal).\n */\n strict: <T>(a: T, b: T): boolean => Object.is(a, b),\n\n /**\n * Plain `===` equality. Like `strict` but NaN !== NaN.\n * Use when you need pre-ES6 semantics; otherwise prefer `strict`.\n */\n reference: <T>(a: T, b: T): boolean => a === b,\n\n /**\n * Compare two objects by an extracted scalar key.\n *\n * @example\n * keyEquals: Equality.byKey<User>(u => u.id)\n * // → (a, b) => Object.is(a.id, b.id)\n */\n byKey:\n <T, K = unknown>(extract: (item: T) => K): EqualityComparer<T> =>\n (a, b) =>\n Object.is(extract(a), extract(b)),\n\n /**\n * Shallow object equality — equal iff every key has identical (Object.is) value.\n * Good for objects with primitive-only fields; doesn't recurse.\n */\n shallow: <T extends Record<string, unknown>>(a: T, b: T): boolean => {\n if (Object.is(a, b)) return true;\n if (a == null || b == null) return false;\n const ak = Object.keys(a);\n const bk = Object.keys(b);\n if (ak.length !== bk.length) return false;\n return ak.every((k) => Object.is(a[k], b[k]));\n },\n} as const;\n"]}
@@ -1,4 +1,4 @@
1
- import { tv } from './chunk-WU5JMO3N.js';
1
+ import { tv } from './chunk-BIJGZBQQ.js';
2
2
  import { cn } from './chunk-LDRFQG44.js';
3
3
  import { forwardRef } from 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -35,5 +35,5 @@ var Spinner = forwardRef(
35
35
  Spinner.displayName = "Spinner";
36
36
 
37
37
  export { Spinner, spinnerVariants };
38
- //# sourceMappingURL=chunk-23DELZVV.js.map
39
- //# sourceMappingURL=chunk-23DELZVV.js.map
38
+ //# sourceMappingURL=chunk-CDDBGAXP.js.map
39
+ //# sourceMappingURL=chunk-CDDBGAXP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/feedback/spinner/Spinner.variants.ts","../src/feedback/spinner/Spinner.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,kBAAkB,EAAA,CAAG;AAAA,EAChC,IAAA,EAAM,4EAAA;AAAA,EACN,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,gBAAA;AAAA,MACJ,EAAA,EAAI,kBAAA;AAAA,MACJ,EAAA,EAAI,kBAAA;AAAA,MACJ,EAAA,EAAI,kBAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,uBAAA;AAAA,MACT,KAAA,EAAO,cAAA;AAAA,MACP,KAAA,EAAO,aAAA;AAAA,MACP,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM;AAAA;AAEV,CAAC;ACRM,IAAM,OAAA,GAAU,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,MAAM,IAAA,EAAM,KAAA,GAAQ,WAAW,IAAA,GAAO,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,qBACxE,IAAA,CAAC,UAAK,GAAA,EAAU,IAAA,EAAa,GAAG,KAAA,EAC9B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,eAAA,CAAgB,EAAE,MAAM,IAAA,EAAM,CAAA,EAAG,SAAS,CAAA,EAAG,CAAA;AAAA,oBACjE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAW,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACnC;AAEJ;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-23DELZVV.js","sourcesContent":["import { tv, type VariantProps } from '../../utils';\n\nexport const spinnerVariants = tv({\n base: 'inline-block animate-spin rounded-full border-current border-b-transparent',\n variants: {\n size: {\n xs: 'h-3 w-3 border',\n sm: 'h-4 w-4 border-2',\n md: 'h-5 w-5 border-2',\n lg: 'h-8 w-8 border-2',\n xl: 'h-12 w-12 border-[3px]',\n },\n tone: {\n default: 'text-muted-foreground',\n brand: 'text-primary',\n muted: 'text-border',\n current: '',\n },\n },\n defaultVariants: {\n size: 'md',\n tone: 'default',\n },\n});\n\nexport type SpinnerVariants = VariantProps<typeof spinnerVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { spinnerVariants, type SpinnerVariants } from './Spinner.variants';\n\nexport interface SpinnerProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n SpinnerVariants {\n /** Accessible label. Default `\"Loading\"`. */\n label?: string;\n}\n\n/**\n * Indeterminate loading spinner. Renders a spinning circle and a visually\n * hidden text label for screen readers.\n */\nexport const Spinner = forwardRef<HTMLSpanElement, SpinnerProps>(\n ({ className, size, tone, label = 'Loading', role = 'status', ...props }, ref) => (\n <span ref={ref} role={role} {...props}>\n <span className={cn(spinnerVariants({ size, tone }), className)} />\n <span className=\"sr-only\">{label}</span>\n </span>\n ),\n);\nSpinner.displayName = 'Spinner';\n"]}
1
+ {"version":3,"sources":["../src/feedback/spinner/Spinner.variants.ts","../src/feedback/spinner/Spinner.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,kBAAkB,EAAA,CAAG;AAAA,EAChC,IAAA,EAAM,4EAAA;AAAA,EACN,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,gBAAA;AAAA,MACJ,EAAA,EAAI,kBAAA;AAAA,MACJ,EAAA,EAAI,kBAAA;AAAA,MACJ,EAAA,EAAI,kBAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,uBAAA;AAAA,MACT,KAAA,EAAO,cAAA;AAAA,MACP,KAAA,EAAO,aAAA;AAAA,MACP,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM;AAAA;AAEV,CAAC;ACRM,IAAM,OAAA,GAAU,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,MAAM,IAAA,EAAM,KAAA,GAAQ,WAAW,IAAA,GAAO,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,qBACxE,IAAA,CAAC,UAAK,GAAA,EAAU,IAAA,EAAa,GAAG,KAAA,EAC9B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,eAAA,CAAgB,EAAE,MAAM,IAAA,EAAM,CAAA,EAAG,SAAS,CAAA,EAAG,CAAA;AAAA,oBACjE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAW,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACnC;AAEJ;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-CDDBGAXP.js","sourcesContent":["import { tv, type VariantProps } from '../../utils';\n\nexport const spinnerVariants = tv({\n base: 'inline-block animate-spin rounded-full border-current border-b-transparent',\n variants: {\n size: {\n xs: 'h-3 w-3 border',\n sm: 'h-4 w-4 border-2',\n md: 'h-5 w-5 border-2',\n lg: 'h-8 w-8 border-2',\n xl: 'h-12 w-12 border-[3px]',\n },\n tone: {\n default: 'text-muted-foreground',\n brand: 'text-primary',\n muted: 'text-border',\n current: '',\n },\n },\n defaultVariants: {\n size: 'md',\n tone: 'default',\n },\n});\n\nexport type SpinnerVariants = VariantProps<typeof spinnerVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { spinnerVariants, type SpinnerVariants } from './Spinner.variants';\n\nexport interface SpinnerProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n SpinnerVariants {\n /** Accessible label. Default `\"Loading\"`. */\n label?: string;\n}\n\n/**\n * Indeterminate loading spinner. Renders a spinning circle and a visually\n * hidden text label for screen readers.\n */\nexport const Spinner = forwardRef<HTMLSpanElement, SpinnerProps>(\n ({ className, size, tone, label = 'Loading', role = 'status', ...props }, ref) => (\n <span ref={ref} role={role} {...props}>\n <span className={cn(spinnerVariants({ size, tone }), className)} />\n <span className=\"sr-only\">{label}</span>\n </span>\n ),\n);\nSpinner.displayName = 'Spinner';\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Drawer, DrawerContent } from './chunk-2SIB3MZL.js';
2
- import { Spinner } from './chunk-23DELZVV.js';
2
+ import { Spinner } from './chunk-CDDBGAXP.js';
3
3
  import { useControlled, useMediaQuery } from './chunk-NUMFGKPY.js';
4
- import { tv, TransitionExtensions, CssExtensions, surfaceVariants } from './chunk-WU5JMO3N.js';
4
+ import { tv, TransitionExtensions, CssExtensions, surfaceVariants } from './chunk-BIJGZBQQ.js';
5
5
  import { Announce, Presence, Slot } from './chunk-BMABNEZX.js';
6
6
  import { cn } from './chunk-LDRFQG44.js';
7
7
  import { forwardRef, createContext, useRef, useEffect, useCallback, useMemo, Children, isValidElement, useState, useContext } from 'react';
@@ -1128,5 +1128,5 @@ var Surface = forwardRef(function Surface2({
1128
1128
  Surface.displayName = COMPONENT_NAME2;
1129
1129
 
1130
1130
  export { AppShell, AppShellAside, AppShellContent, AppShellFooter, AppShellHeader, AppShellMain, AppShellSidebar, AspectRatio, Box, Center, Cluster, Container, Flex, Frame, Grid, HStack, Inline, Overlay, PullToRefresh, ResizablePanel, ResizablePanels, ResizableSeparator, ScrollArea, Spacer, Stack, Surface, TwoColumn, VStack, containerVariants, gridVariants, stackVariants, useAppShell };
1131
- //# sourceMappingURL=chunk-L235NITI.js.map
1132
- //# sourceMappingURL=chunk-L235NITI.js.map
1131
+ //# sourceMappingURL=chunk-D3N27NNO.js.map
1132
+ //# sourceMappingURL=chunk-D3N27NNO.js.map