@avenue-ticketing/ui 0.12.0-beta.1 → 0.12.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/react/badge-groups.js +2 -2
  2. package/dist/react/badge-groups.js.map +1 -1
  3. package/dist/react/badge.js +49 -18
  4. package/dist/react/badge.js.map +1 -1
  5. package/dist/react/button.js +2 -2
  6. package/dist/react/button.js.map +1 -1
  7. package/dist/react/checkbox.js +10 -7
  8. package/dist/react/checkbox.js.map +1 -1
  9. package/dist/react/combobox.d.ts +3 -2
  10. package/dist/react/combobox.js +284 -32
  11. package/dist/react/combobox.js.map +1 -1
  12. package/dist/react/dropdown-account-breadcrumb.js +176 -14
  13. package/dist/react/dropdown-account-breadcrumb.js.map +1 -1
  14. package/dist/react/dropdown-account-button.js +190 -25
  15. package/dist/react/dropdown-account-button.js.map +1 -1
  16. package/dist/react/dropdown-account-card-md.js +189 -24
  17. package/dist/react/dropdown-account-card-md.js.map +1 -1
  18. package/dist/react/dropdown-account-card-sm.js +189 -24
  19. package/dist/react/dropdown-account-card-sm.js.map +1 -1
  20. package/dist/react/dropdown-account-card-xs.js +189 -24
  21. package/dist/react/dropdown-account-card-xs.js.map +1 -1
  22. package/dist/react/dropdown-avatar.js +190 -25
  23. package/dist/react/dropdown-avatar.js.map +1 -1
  24. package/dist/react/dropdown-button-advanced.js +190 -25
  25. package/dist/react/dropdown-button-advanced.js.map +1 -1
  26. package/dist/react/dropdown-button-link.js +189 -24
  27. package/dist/react/dropdown-button-link.js.map +1 -1
  28. package/dist/react/dropdown-button-simple.js +190 -25
  29. package/dist/react/dropdown-button-simple.js.map +1 -1
  30. package/dist/react/dropdown-icon-advanced.js +189 -24
  31. package/dist/react/dropdown-icon-advanced.js.map +1 -1
  32. package/dist/react/dropdown-icon-simple.js +189 -24
  33. package/dist/react/dropdown-icon-simple.js.map +1 -1
  34. package/dist/react/dropdown-integration.js +190 -25
  35. package/dist/react/dropdown-integration.js.map +1 -1
  36. package/dist/react/dropdown-search-advanced.js +191 -26
  37. package/dist/react/dropdown-search-advanced.js.map +1 -1
  38. package/dist/react/dropdown-search-simple.js +191 -26
  39. package/dist/react/dropdown-search-simple.js.map +1 -1
  40. package/dist/react/dropdown.d.ts +4 -1
  41. package/dist/react/dropdown.js +189 -24
  42. package/dist/react/dropdown.js.map +1 -1
  43. package/dist/react/input-date.js.map +1 -1
  44. package/dist/react/input-file.js +3 -3
  45. package/dist/react/input-file.js.map +1 -1
  46. package/dist/react/input-group.js.map +1 -1
  47. package/dist/react/input-number.js +2 -2
  48. package/dist/react/input-number.js.map +1 -1
  49. package/dist/react/input-payment.js +1 -1
  50. package/dist/react/input-payment.js.map +1 -1
  51. package/dist/react/input-tags-outer.js +9 -9
  52. package/dist/react/input-tags-outer.js.map +1 -1
  53. package/dist/react/input-tags.js +8 -8
  54. package/dist/react/input-tags.js.map +1 -1
  55. package/dist/react/input.js +1 -1
  56. package/dist/react/input.js.map +1 -1
  57. package/dist/react/multi-select.d.ts +3 -2
  58. package/dist/react/multi-select.js +230 -29
  59. package/dist/react/multi-select.js.map +1 -1
  60. package/dist/react/popover.d.ts +10 -1
  61. package/dist/react/popover.js +195 -18
  62. package/dist/react/popover.js.map +1 -1
  63. package/dist/react/radio-buttons.js +2 -1
  64. package/dist/react/radio-buttons.js.map +1 -1
  65. package/dist/react/select-item.d.ts +2 -1
  66. package/dist/react/select-item.js +11 -7
  67. package/dist/react/select-item.js.map +1 -1
  68. package/dist/react/select.d.ts +4 -3
  69. package/dist/react/select.js +298 -42
  70. package/dist/react/select.js.map +1 -1
  71. package/dist/react/switch.js +1 -1
  72. package/dist/react/switch.js.map +1 -1
  73. package/dist/react/tag-select.d.ts +5 -2
  74. package/dist/react/tag-select.js +215 -25
  75. package/dist/react/tag-select.js.map +1 -1
  76. package/dist/react/tags.js +8 -8
  77. package/dist/react/tags.js.map +1 -1
  78. package/dist/react/textarea.js.map +1 -1
  79. package/dist/select-mobile-sheet-CB2ptDTJ.d.ts +12 -0
  80. package/dist/{select-shared-B3Y5SMXU.d.ts → select-shared-oJEeJxeB.d.ts} +6 -0
  81. package/package.json +1 -1
  82. package/theme.css +3 -1
@@ -1,4 +1,4 @@
1
- import { createContext, useState, useCallback, useRef, useLayoutEffect } from 'react';
1
+ import { createContext, useState, useMemo, useContext, useEffect, useCallback, useLayoutEffect, useRef } from 'react';
2
2
  import { CaretUpDownIcon } from '@phosphor-icons/react/dist/csr/CaretUpDown';
3
3
  import { QuestionIcon } from '@phosphor-icons/react/dist/csr/Question';
4
4
  import { SignOutIcon } from '@phosphor-icons/react/dist/csr/SignOut';
@@ -6,13 +6,90 @@ import { MoonIcon } from '@phosphor-icons/react/dist/csr/Moon';
6
6
  import { PlusIcon } from '@phosphor-icons/react/dist/csr/Plus';
7
7
  import { GearIcon } from '@phosphor-icons/react/dist/csr/Gear';
8
8
  import { UserIcon } from '@phosphor-icons/react/dist/csr/User';
9
- import { MenuTrigger, Button, MenuSection, SubmenuTrigger, Header, Popover, Menu, MenuItem, Separator } from 'react-aria-components';
9
+ import { MenuTrigger, Button, MenuSection, SubmenuTrigger, Header, OverlayTriggerStateContext, Popover, Menu, MenuItem, Separator } from 'react-aria-components';
10
+ import { createPortal } from 'react-dom';
10
11
  import { CheckIcon } from '@phosphor-icons/react/dist/csr/Check';
11
12
  import { CaretRightIcon } from '@phosphor-icons/react/dist/csr/CaretRight';
12
13
  import '@phosphor-icons/react/dist/csr/DotsThreeVertical';
14
+ import { XIcon } from '@phosphor-icons/react/dist/csr/X';
13
15
  import { extendTailwindMerge } from 'tailwind-merge';
14
- import { jsxs, jsx } from 'react/jsx-runtime';
16
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
15
17
 
18
+ var MOBILE_SHEET_MOTION_MS = 175;
19
+ var MOBILE_SHEET_ENTRY_EASING = "cubic-bezier(0.85, 0, 0.15, 1)";
20
+ var MOBILE_SHEET_EXIT_EASING = "cubic-bezier(0.85, 0, 1, 0.15)";
21
+ var MOBILE_SHEET_SLIDE_ENTRANCE_OFFSET_PX = 120;
22
+ function resolveSelectMobileOptions(mobileOptions) {
23
+ return {
24
+ sheet: mobileOptions?.sheet ?? true,
25
+ title: mobileOptions?.title,
26
+ sheetClassName: mobileOptions?.className,
27
+ contentClassName: mobileOptions?.contentClassName
28
+ };
29
+ }
30
+ function useMobileSheetAnimation(open, enabled, slideEntrance = true, slideOffsetPx = MOBILE_SHEET_SLIDE_ENTRANCE_OFFSET_PX) {
31
+ const [shouldRender, setShouldRender] = useState(open);
32
+ const [isAnimating, setIsAnimating] = useState(false);
33
+ useLayoutEffect(() => {
34
+ if (!enabled) {
35
+ setShouldRender(open);
36
+ return;
37
+ }
38
+ if (open) {
39
+ setShouldRender(true);
40
+ }
41
+ }, [open, enabled]);
42
+ useEffect(() => {
43
+ if (!enabled || open) return;
44
+ const timer = setTimeout(() => setShouldRender(false), MOBILE_SHEET_MOTION_MS);
45
+ return () => clearTimeout(timer);
46
+ }, [open, enabled]);
47
+ useLayoutEffect(() => {
48
+ if (!enabled || open || !shouldRender) return;
49
+ setIsAnimating(false);
50
+ }, [enabled, open, shouldRender]);
51
+ useEffect(() => {
52
+ if (!enabled || !shouldRender || !open) return;
53
+ let raf2 = 0;
54
+ const raf1 = requestAnimationFrame(() => {
55
+ raf2 = requestAnimationFrame(() => setIsAnimating(true));
56
+ });
57
+ return () => {
58
+ cancelAnimationFrame(raf1);
59
+ if (raf2) cancelAnimationFrame(raf2);
60
+ };
61
+ }, [shouldRender, open, enabled]);
62
+ const motionEasing = open ? MOBILE_SHEET_ENTRY_EASING : MOBILE_SHEET_EXIT_EASING;
63
+ const hiddenTransform = slideEntrance ? `translateY(${slideOffsetPx}px)` : "translateY(100%)";
64
+ const panelStyle = enabled ? {
65
+ transform: isAnimating ? "translateY(0)" : hiddenTransform,
66
+ opacity: isAnimating ? 1 : 0,
67
+ transitionProperty: "transform, opacity",
68
+ transitionDuration: `${MOBILE_SHEET_MOTION_MS}ms`,
69
+ transitionTimingFunction: motionEasing
70
+ } : void 0;
71
+ const backdropStyle = enabled ? {
72
+ opacity: isAnimating ? 1 : 0,
73
+ transitionProperty: "opacity",
74
+ transitionDuration: `${MOBILE_SHEET_MOTION_MS}ms`,
75
+ transitionTimingFunction: motionEasing
76
+ } : void 0;
77
+ return { shouldRender, isAnimating, panelStyle, backdropStyle };
78
+ }
79
+ var MOBILE_SHEET_MAX_PX = 1024;
80
+ function useIsMobile(breakpoint = MOBILE_SHEET_MAX_PX + 1) {
81
+ const [isMobile, setIsMobile] = useState(() => {
82
+ if (typeof window === "undefined") return false;
83
+ return window.matchMedia(`(max-width: ${breakpoint - 1}px)`).matches;
84
+ });
85
+ useEffect(() => {
86
+ const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
87
+ const handler = (e) => setIsMobile(e.matches);
88
+ mq.addEventListener("change", handler);
89
+ return () => mq.removeEventListener("change", handler);
90
+ }, [breakpoint]);
91
+ return isMobile;
92
+ }
16
93
  var twMerge = extendTailwindMerge({
17
94
  extend: {
18
95
  theme: {
@@ -173,7 +250,7 @@ var Avatar = ({
173
250
  };
174
251
  var CHECKBOX_TICK_DELAY_MS = 60;
175
252
  var CHECKBOX_TICK_DRAW_MS = 100;
176
- function CheckboxAnimatedCheckMark({ className }) {
253
+ function CheckboxAnimatedCheckMark({ pixelSize, className }) {
177
254
  const pathRef = useRef(null);
178
255
  useLayoutEffect(() => {
179
256
  const path = pathRef.current;
@@ -194,7 +271,7 @@ function CheckboxAnimatedCheckMark({ className }) {
194
271
  });
195
272
  return () => anim.cancel();
196
273
  }, []);
197
- return /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", viewBox: "0 0 14 14", fill: "none", className: cx("block shrink-0", className), children: /* @__PURE__ */ jsx(
274
+ return /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", width: pixelSize, height: pixelSize, viewBox: "0 0 14 14", fill: "none", className: cx("block", className), children: /* @__PURE__ */ jsx(
198
275
  "path",
199
276
  {
200
277
  ref: pathRef,
@@ -209,14 +286,15 @@ function CheckboxAnimatedCheckMark({ className }) {
209
286
  var focusRingShadow = "outline-none [box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]";
210
287
  var CheckboxBase = ({ className, isSelected, isDisabled, isIndeterminate, size = "sm", isFocusVisible = false }) => {
211
288
  const isChecked = isSelected || isIndeterminate;
212
- const iconClassName = size === "sm" ? "size-2.5" : "size-3.5";
289
+ const iconPixelSize = size === "sm" ? 10 : 14;
213
290
  return /* @__PURE__ */ jsxs(
214
291
  "div",
215
292
  {
216
293
  className: cx(
217
- "relative flex shrink-0 cursor-pointer appearance-none items-center justify-center border border-solid border-primary",
294
+ "relative flex shrink-0 cursor-pointer appearance-none items-center justify-center overflow-clip border border-solid border-primary",
218
295
  size === "sm" ? "size-4 rounded-xs" : "size-5 rounded-sm",
219
296
  isChecked ? "border-transparent bg-brand-solid" : "bg-primary",
297
+ !isChecked && !isDisabled && "group-hover:bg-primary_hover",
220
298
  isDisabled && "cursor-not-allowed opacity-50",
221
299
  isDisabled && !isChecked && "bg-tertiary",
222
300
  isFocusVisible && !isDisabled && focusRingShadow,
@@ -227,13 +305,15 @@ var CheckboxBase = ({ className, isSelected, isDisabled, isIndeterminate, size =
227
305
  "svg",
228
306
  {
229
307
  "aria-hidden": "true",
308
+ width: iconPixelSize,
309
+ height: iconPixelSize,
230
310
  viewBox: "0 0 14 14",
231
311
  fill: "none",
232
- className: cx("pointer-events-none block shrink-0 text-fg-white", iconClassName),
312
+ className: "pointer-events-none block text-fg-white",
233
313
  children: /* @__PURE__ */ jsx("path", { d: "M2.91675 7H11.0834", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })
234
314
  }
235
315
  ),
236
- isSelected && !isIndeterminate && /* @__PURE__ */ jsx(CheckboxAnimatedCheckMark, { className: cx("pointer-events-none text-fg-white", iconClassName) })
316
+ isSelected && !isIndeterminate && /* @__PURE__ */ jsx(CheckboxAnimatedCheckMark, { pixelSize: iconPixelSize, className: "pointer-events-none text-fg-white" })
237
317
  ]
238
318
  }
239
319
  );
@@ -278,6 +358,7 @@ var RadioButtonBase = ({ className, isFocusVisible, isSelected, isDisabled, size
278
358
  "relative flex shrink-0 cursor-pointer appearance-none items-center justify-center overflow-clip rounded-full border border-solid border-primary bg-primary",
279
359
  size === "sm" ? "size-4" : "size-5",
280
360
  isSelected && "border-transparent bg-brand-solid",
361
+ !isSelected && !isDisabled && "group-hover:bg-primary_hover",
281
362
  isDisabled && "cursor-not-allowed opacity-50",
282
363
  isDisabled && !isSelected && "bg-tertiary",
283
364
  isFocusVisible && !isDisabled && focusRingShadow2,
@@ -319,7 +400,7 @@ var ToggleBase = ({ className, isHovered, isDisabled, isFocusVisible, isSelected
319
400
  const classes = slim ? styles3.slim[size] : styles3.default[size];
320
401
  const offTrackBackground = (() => {
321
402
  if (isDisabled) return "bg-tertiary";
322
- if (isHovered) return slim ? "bg-tertiary" : "bg-brand-primary";
403
+ if (isHovered) return "bg-toggle-track_hover";
323
404
  return "bg-quaternary";
324
405
  })();
325
406
  return /* @__PURE__ */ jsx(
@@ -414,11 +495,11 @@ var DropdownItem = ({ label, children, addon, icon: Icon, avatarUrl, unstyled, s
414
495
  children: [
415
496
  state.selectionMode !== "none" && !avatarUrl && !Icon && /* @__PURE__ */ jsx(SelectionIndicator, { ...state, className: "mr-2" }),
416
497
  avatarUrl && /* @__PURE__ */ jsx("div", { className: "mr-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ jsx(Avatar, { "aria-hidden": "true", size: "xs", src: avatarUrl, alt: label, className: "size-5" }) }),
417
- Icon && /* @__PURE__ */ jsx(Icon, { "aria-hidden": "true", className: "mr-2 size-4 shrink-0 stroke-[2.25px] text-fg-quaternary" }),
498
+ Icon && /* @__PURE__ */ jsx(Icon, { "aria-hidden": "true", className: "mr-2 size-4 shrink-0 stroke-[2.25px] text-fg-secondary" }),
418
499
  /* @__PURE__ */ jsx("span", { className: cx("grow truncate text-sm font-semibold text-secondary", state.isFocused && "text-secondary_hover"), children: label || (typeof children === "function" ? children(state) : children) }),
419
500
  addon && /* @__PURE__ */ jsx("span", { className: "ml-1 shrink-0 pr-1 text-xs font-medium text-quaternary", children: addon }),
420
501
  state.selectionMode !== "none" && (avatarUrl || Icon) && /* @__PURE__ */ jsx(SelectionIndicator, { ...state, className: "ml-1" }),
421
- state.hasSubmenu && /* @__PURE__ */ jsx(CaretRightIcon, { "aria-hidden": "true", className: "ml-auto size-4 shrink-0 stroke-[2.25px] text-fg-quaternary" })
502
+ state.hasSubmenu && /* @__PURE__ */ jsx(CaretRightIcon, { "aria-hidden": "true", className: "ml-auto size-4 shrink-0 stroke-[2.25px] text-fg-secondary" })
422
503
  ]
423
504
  }
424
505
  )
@@ -434,21 +515,105 @@ var DropdownMenu = (props) => {
434
515
  }
435
516
  );
436
517
  };
437
- var DropdownPopover = (props) => {
438
- return /* @__PURE__ */ jsx(
439
- Popover,
518
+ var DropdownSheetDepthContext = createContext(0);
519
+ function DropdownSheetCloseButton({ onClose }) {
520
+ return /* @__PURE__ */ jsxs(
521
+ "button",
440
522
  {
441
- placement: "bottom right",
442
- ...props,
443
- className: (state) => cx(
444
- "w-62 origin-(--trigger-anchor-point) overflow-auto rounded-lg bg-primary shadow-lg ring-1 ring-secondary_alt will-change-transform",
445
- state.isEntering && "duration-150 ease-out animate-in fade-in placement-right:slide-in-from-left-0.5 placement-top:slide-in-from-bottom-0.5 placement-bottom:slide-in-from-top-0.5",
446
- state.isExiting && "duration-100 ease-in animate-out fade-out placement-right:slide-out-to-left-0.5 placement-top:slide-out-to-bottom-0.5 placement-bottom:slide-out-to-top-0.5",
447
- typeof props.className === "function" ? props.className(state) : props.className
448
- ),
449
- children: props.children
523
+ type: "button",
524
+ onClick: (e) => {
525
+ e.stopPropagation();
526
+ onClose();
527
+ },
528
+ className: "flex size-12 shrink-0 cursor-pointer items-center justify-center rounded-full text-fg-primary transition duration-100 ease-linear hover:bg-primary_hover active:scale-[0.96] focus-visible:outline-none focus-visible:[box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]",
529
+ children: [
530
+ /* @__PURE__ */ jsx(XIcon, { className: "size-5", "aria-hidden": "true" }),
531
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
532
+ ]
450
533
  }
451
534
  );
535
+ }
536
+ function DropdownSheetChrome({ title, onClose, children }) {
537
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
538
+ /* @__PURE__ */ jsxs("div", { className: cx("flex w-full shrink-0 items-center py-2 pl-4 pr-2", title ? "justify-between gap-3" : "justify-end"), children: [
539
+ title ? /* @__PURE__ */ jsx("p", { className: "min-w-0 flex-1 truncate text-base font-semibold text-primary", children: title }) : null,
540
+ /* @__PURE__ */ jsx(DropdownSheetCloseButton, { onClose })
541
+ ] }),
542
+ /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto pb-[max(2.5rem,calc(env(safe-area-inset-bottom)+2rem))]", children })
543
+ ] });
544
+ }
545
+ var DropdownPopover = ({ mobileOptions, children, className, style, ...props }) => {
546
+ const isMobile = useIsMobile();
547
+ const resolvedMobile = useMemo(() => resolveSelectMobileOptions(mobileOptions), [mobileOptions]);
548
+ const useMobileSheet = isMobile && resolvedMobile.sheet;
549
+ const overlayState = useContext(OverlayTriggerStateContext);
550
+ const open = overlayState?.isOpen ?? false;
551
+ const parentDepth = useContext(DropdownSheetDepthContext);
552
+ const depth = parentDepth + 1;
553
+ const { shouldRender, panelStyle, backdropStyle } = useMobileSheetAnimation(open, useMobileSheet);
554
+ useEffect(() => {
555
+ if (!useMobileSheet || !open) return;
556
+ const prev = document.body.style.overflow;
557
+ document.body.style.overflow = "hidden";
558
+ return () => {
559
+ document.body.style.overflow = prev;
560
+ };
561
+ }, [useMobileSheet, open]);
562
+ if (!useMobileSheet) {
563
+ return /* @__PURE__ */ jsx(
564
+ Popover,
565
+ {
566
+ placement: "bottom right",
567
+ ...props,
568
+ style,
569
+ className: (state) => cx(
570
+ "w-62 origin-(--trigger-anchor-point) overflow-auto rounded-lg bg-primary shadow-lg ring-1 ring-secondary_alt will-change-transform",
571
+ state.isEntering && "duration-150 ease-out animate-in fade-in placement-right:slide-in-from-left-0.5 placement-top:slide-in-from-bottom-0.5 placement-bottom:slide-in-from-top-0.5",
572
+ state.isExiting && "duration-100 ease-in animate-out fade-out placement-right:slide-out-to-left-0.5 placement-top:slide-out-to-bottom-0.5 placement-bottom:slide-out-to-top-0.5",
573
+ typeof className === "function" ? className(state) : className
574
+ ),
575
+ children
576
+ }
577
+ );
578
+ }
579
+ const close = () => overlayState?.close();
580
+ const showMobileSheet = shouldRender;
581
+ const isMobileSheetExiting = showMobileSheet && !open;
582
+ const scrimZIndex = 50 + (depth - 1) * 10;
583
+ const sheetZIndex = scrimZIndex + 1;
584
+ const mobileScrim = shouldRender && typeof document !== "undefined" ? createPortal(
585
+ /* @__PURE__ */ jsx(
586
+ "div",
587
+ {
588
+ className: "fixed inset-0 bg-overlay/70",
589
+ style: { ...backdropStyle, zIndex: scrimZIndex },
590
+ onClick: close,
591
+ "aria-hidden": "true"
592
+ }
593
+ ),
594
+ document.body
595
+ ) : null;
596
+ return /* @__PURE__ */ jsxs(DropdownSheetDepthContext.Provider, { value: depth, children: [
597
+ mobileScrim,
598
+ /* @__PURE__ */ jsx(
599
+ Popover,
600
+ {
601
+ placement: "bottom",
602
+ containerPadding: 0,
603
+ offset: 0,
604
+ ...props,
605
+ isExiting: isMobileSheetExiting,
606
+ "data-dropdown-mobile-sheet": true,
607
+ style: { ...panelStyle, zIndex: sheetZIndex, ...style },
608
+ className: (state) => cx(
609
+ "fixed! inset-x-0! bottom-0! top-auto! right-0! left-0! flex max-h-[min(90dvh,calc(100dvh-env(safe-area-inset-bottom,0px)))] w-full! max-w-none! flex-col overflow-hidden rounded-t-2xl rounded-b-none border-x-0 border-t border-secondary bg-primary shadow-xl outline-hidden",
610
+ resolvedMobile.sheetClassName,
611
+ typeof className === "function" ? className(state) : className
612
+ ),
613
+ children: /* @__PURE__ */ jsx(DropdownSheetChrome, { title: resolvedMobile.title, onClose: close, children: typeof children === "function" ? null : children })
614
+ }
615
+ )
616
+ ] });
452
617
  };
453
618
  var DropdownSeparator = (props) => {
454
619
  return /* @__PURE__ */ jsx(Separator, { ...props, className: cx("my-1 h-px w-full bg-border-secondary", props.className) });