@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,16 +1,18 @@
1
- import { createContext, useState, useCallback, useRef, useLayoutEffect } from 'react';
1
+ import { createContext, useState, useMemo, useContext, useEffect, useCallback, useLayoutEffect, useRef } from 'react';
2
2
  import { CaretDownIcon } from '@phosphor-icons/react/dist/csr/CaretDown';
3
3
  import { SignOutIcon } from '@phosphor-icons/react/dist/csr/SignOut';
4
4
  import { MoonIcon } from '@phosphor-icons/react/dist/csr/Moon';
5
5
  import { PlusIcon } from '@phosphor-icons/react/dist/csr/Plus';
6
6
  import { GearIcon } from '@phosphor-icons/react/dist/csr/Gear';
7
- import { MenuTrigger, Button, MenuSection, Header, SubmenuTrigger, Popover, Menu, MenuItem, Separator } from 'react-aria-components';
7
+ import { MenuTrigger, Button, MenuSection, Header, SubmenuTrigger, OverlayTriggerStateContext, Popover, Menu, MenuItem, Separator } from 'react-aria-components';
8
8
  import { UserIcon } from '@phosphor-icons/react/dist/csr/User';
9
9
  import { extendTailwindMerge } from 'tailwind-merge';
10
- import { jsxs, jsx } from 'react/jsx-runtime';
10
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
11
+ import { createPortal } from 'react-dom';
11
12
  import { CheckIcon } from '@phosphor-icons/react/dist/csr/Check';
12
13
  import { CaretRightIcon } from '@phosphor-icons/react/dist/csr/CaretRight';
13
14
  import '@phosphor-icons/react/dist/csr/DotsThreeVertical';
15
+ import { XIcon } from '@phosphor-icons/react/dist/csr/X';
14
16
 
15
17
  var twMerge = extendTailwindMerge({
16
18
  extend: {
@@ -170,9 +172,84 @@ var Avatar = ({
170
172
  }
171
173
  );
172
174
  };
175
+ var MOBILE_SHEET_MOTION_MS = 175;
176
+ var MOBILE_SHEET_ENTRY_EASING = "cubic-bezier(0.85, 0, 0.15, 1)";
177
+ var MOBILE_SHEET_EXIT_EASING = "cubic-bezier(0.85, 0, 1, 0.15)";
178
+ var MOBILE_SHEET_SLIDE_ENTRANCE_OFFSET_PX = 120;
179
+ function resolveSelectMobileOptions(mobileOptions) {
180
+ return {
181
+ sheet: mobileOptions?.sheet ?? true,
182
+ title: mobileOptions?.title,
183
+ sheetClassName: mobileOptions?.className,
184
+ contentClassName: mobileOptions?.contentClassName
185
+ };
186
+ }
187
+ function useMobileSheetAnimation(open, enabled, slideEntrance = true, slideOffsetPx = MOBILE_SHEET_SLIDE_ENTRANCE_OFFSET_PX) {
188
+ const [shouldRender, setShouldRender] = useState(open);
189
+ const [isAnimating, setIsAnimating] = useState(false);
190
+ useLayoutEffect(() => {
191
+ if (!enabled) {
192
+ setShouldRender(open);
193
+ return;
194
+ }
195
+ if (open) {
196
+ setShouldRender(true);
197
+ }
198
+ }, [open, enabled]);
199
+ useEffect(() => {
200
+ if (!enabled || open) return;
201
+ const timer = setTimeout(() => setShouldRender(false), MOBILE_SHEET_MOTION_MS);
202
+ return () => clearTimeout(timer);
203
+ }, [open, enabled]);
204
+ useLayoutEffect(() => {
205
+ if (!enabled || open || !shouldRender) return;
206
+ setIsAnimating(false);
207
+ }, [enabled, open, shouldRender]);
208
+ useEffect(() => {
209
+ if (!enabled || !shouldRender || !open) return;
210
+ let raf2 = 0;
211
+ const raf1 = requestAnimationFrame(() => {
212
+ raf2 = requestAnimationFrame(() => setIsAnimating(true));
213
+ });
214
+ return () => {
215
+ cancelAnimationFrame(raf1);
216
+ if (raf2) cancelAnimationFrame(raf2);
217
+ };
218
+ }, [shouldRender, open, enabled]);
219
+ const motionEasing = open ? MOBILE_SHEET_ENTRY_EASING : MOBILE_SHEET_EXIT_EASING;
220
+ const hiddenTransform = slideEntrance ? `translateY(${slideOffsetPx}px)` : "translateY(100%)";
221
+ const panelStyle = enabled ? {
222
+ transform: isAnimating ? "translateY(0)" : hiddenTransform,
223
+ opacity: isAnimating ? 1 : 0,
224
+ transitionProperty: "transform, opacity",
225
+ transitionDuration: `${MOBILE_SHEET_MOTION_MS}ms`,
226
+ transitionTimingFunction: motionEasing
227
+ } : void 0;
228
+ const backdropStyle = enabled ? {
229
+ opacity: isAnimating ? 1 : 0,
230
+ transitionProperty: "opacity",
231
+ transitionDuration: `${MOBILE_SHEET_MOTION_MS}ms`,
232
+ transitionTimingFunction: motionEasing
233
+ } : void 0;
234
+ return { shouldRender, isAnimating, panelStyle, backdropStyle };
235
+ }
236
+ var MOBILE_SHEET_MAX_PX = 1024;
237
+ function useIsMobile(breakpoint = MOBILE_SHEET_MAX_PX + 1) {
238
+ const [isMobile, setIsMobile] = useState(() => {
239
+ if (typeof window === "undefined") return false;
240
+ return window.matchMedia(`(max-width: ${breakpoint - 1}px)`).matches;
241
+ });
242
+ useEffect(() => {
243
+ const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
244
+ const handler = (e) => setIsMobile(e.matches);
245
+ mq.addEventListener("change", handler);
246
+ return () => mq.removeEventListener("change", handler);
247
+ }, [breakpoint]);
248
+ return isMobile;
249
+ }
173
250
  var CHECKBOX_TICK_DELAY_MS = 60;
174
251
  var CHECKBOX_TICK_DRAW_MS = 100;
175
- function CheckboxAnimatedCheckMark({ className }) {
252
+ function CheckboxAnimatedCheckMark({ pixelSize, className }) {
176
253
  const pathRef = useRef(null);
177
254
  useLayoutEffect(() => {
178
255
  const path = pathRef.current;
@@ -193,7 +270,7 @@ function CheckboxAnimatedCheckMark({ className }) {
193
270
  });
194
271
  return () => anim.cancel();
195
272
  }, []);
196
- return /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", viewBox: "0 0 14 14", fill: "none", className: cx("block shrink-0", className), children: /* @__PURE__ */ jsx(
273
+ 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(
197
274
  "path",
198
275
  {
199
276
  ref: pathRef,
@@ -208,14 +285,15 @@ function CheckboxAnimatedCheckMark({ className }) {
208
285
  var focusRingShadow = "outline-none [box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]";
209
286
  var CheckboxBase = ({ className, isSelected, isDisabled, isIndeterminate, size = "sm", isFocusVisible = false }) => {
210
287
  const isChecked = isSelected || isIndeterminate;
211
- const iconClassName = size === "sm" ? "size-2.5" : "size-3.5";
288
+ const iconPixelSize = size === "sm" ? 10 : 14;
212
289
  return /* @__PURE__ */ jsxs(
213
290
  "div",
214
291
  {
215
292
  className: cx(
216
- "relative flex shrink-0 cursor-pointer appearance-none items-center justify-center border border-solid border-primary",
293
+ "relative flex shrink-0 cursor-pointer appearance-none items-center justify-center overflow-clip border border-solid border-primary",
217
294
  size === "sm" ? "size-4 rounded-xs" : "size-5 rounded-sm",
218
295
  isChecked ? "border-transparent bg-brand-solid" : "bg-primary",
296
+ !isChecked && !isDisabled && "group-hover:bg-primary_hover",
219
297
  isDisabled && "cursor-not-allowed opacity-50",
220
298
  isDisabled && !isChecked && "bg-tertiary",
221
299
  isFocusVisible && !isDisabled && focusRingShadow,
@@ -226,13 +304,15 @@ var CheckboxBase = ({ className, isSelected, isDisabled, isIndeterminate, size =
226
304
  "svg",
227
305
  {
228
306
  "aria-hidden": "true",
307
+ width: iconPixelSize,
308
+ height: iconPixelSize,
229
309
  viewBox: "0 0 14 14",
230
310
  fill: "none",
231
- className: cx("pointer-events-none block shrink-0 text-fg-white", iconClassName),
311
+ className: "pointer-events-none block text-fg-white",
232
312
  children: /* @__PURE__ */ jsx("path", { d: "M2.91675 7H11.0834", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })
233
313
  }
234
314
  ),
235
- isSelected && !isIndeterminate && /* @__PURE__ */ jsx(CheckboxAnimatedCheckMark, { className: cx("pointer-events-none text-fg-white", iconClassName) })
315
+ isSelected && !isIndeterminate && /* @__PURE__ */ jsx(CheckboxAnimatedCheckMark, { pixelSize: iconPixelSize, className: "pointer-events-none text-fg-white" })
236
316
  ]
237
317
  }
238
318
  );
@@ -277,6 +357,7 @@ var RadioButtonBase = ({ className, isFocusVisible, isSelected, isDisabled, size
277
357
  "relative flex shrink-0 cursor-pointer appearance-none items-center justify-center overflow-clip rounded-full border border-solid border-primary bg-primary",
278
358
  size === "sm" ? "size-4" : "size-5",
279
359
  isSelected && "border-transparent bg-brand-solid",
360
+ !isSelected && !isDisabled && "group-hover:bg-primary_hover",
280
361
  isDisabled && "cursor-not-allowed opacity-50",
281
362
  isDisabled && !isSelected && "bg-tertiary",
282
363
  isFocusVisible && !isDisabled && focusRingShadow2,
@@ -318,7 +399,7 @@ var ToggleBase = ({ className, isHovered, isDisabled, isFocusVisible, isSelected
318
399
  const classes = slim ? styles2.slim[size] : styles2.default[size];
319
400
  const offTrackBackground = (() => {
320
401
  if (isDisabled) return "bg-tertiary";
321
- if (isHovered) return slim ? "bg-tertiary" : "bg-brand-primary";
402
+ if (isHovered) return "bg-toggle-track_hover";
322
403
  return "bg-quaternary";
323
404
  })();
324
405
  return /* @__PURE__ */ jsx(
@@ -413,11 +494,11 @@ var DropdownItem = ({ label, children, addon, icon: Icon, avatarUrl, unstyled, s
413
494
  children: [
414
495
  state.selectionMode !== "none" && !avatarUrl && !Icon && /* @__PURE__ */ jsx(SelectionIndicator, { ...state, className: "mr-2" }),
415
496
  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" }) }),
416
- Icon && /* @__PURE__ */ jsx(Icon, { "aria-hidden": "true", className: "mr-2 size-4 shrink-0 stroke-[2.25px] text-fg-quaternary" }),
497
+ Icon && /* @__PURE__ */ jsx(Icon, { "aria-hidden": "true", className: "mr-2 size-4 shrink-0 stroke-[2.25px] text-fg-secondary" }),
417
498
  /* @__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) }),
418
499
  addon && /* @__PURE__ */ jsx("span", { className: "ml-1 shrink-0 pr-1 text-xs font-medium text-quaternary", children: addon }),
419
500
  state.selectionMode !== "none" && (avatarUrl || Icon) && /* @__PURE__ */ jsx(SelectionIndicator, { ...state, className: "ml-1" }),
420
- state.hasSubmenu && /* @__PURE__ */ jsx(CaretRightIcon, { "aria-hidden": "true", className: "ml-auto size-4 shrink-0 stroke-[2.25px] text-fg-quaternary" })
501
+ state.hasSubmenu && /* @__PURE__ */ jsx(CaretRightIcon, { "aria-hidden": "true", className: "ml-auto size-4 shrink-0 stroke-[2.25px] text-fg-secondary" })
421
502
  ]
422
503
  }
423
504
  )
@@ -433,21 +514,105 @@ var DropdownMenu = (props) => {
433
514
  }
434
515
  );
435
516
  };
436
- var DropdownPopover = (props) => {
437
- return /* @__PURE__ */ jsx(
438
- Popover,
517
+ var DropdownSheetDepthContext = createContext(0);
518
+ function DropdownSheetCloseButton({ onClose }) {
519
+ return /* @__PURE__ */ jsxs(
520
+ "button",
439
521
  {
440
- placement: "bottom right",
441
- ...props,
442
- className: (state) => cx(
443
- "w-62 origin-(--trigger-anchor-point) overflow-auto rounded-lg bg-primary shadow-lg ring-1 ring-secondary_alt will-change-transform",
444
- 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",
445
- 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",
446
- typeof props.className === "function" ? props.className(state) : props.className
447
- ),
448
- children: props.children
522
+ type: "button",
523
+ onClick: (e) => {
524
+ e.stopPropagation();
525
+ onClose();
526
+ },
527
+ 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)]",
528
+ children: [
529
+ /* @__PURE__ */ jsx(XIcon, { className: "size-5", "aria-hidden": "true" }),
530
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
531
+ ]
449
532
  }
450
533
  );
534
+ }
535
+ function DropdownSheetChrome({ title, onClose, children }) {
536
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
537
+ /* @__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: [
538
+ title ? /* @__PURE__ */ jsx("p", { className: "min-w-0 flex-1 truncate text-base font-semibold text-primary", children: title }) : null,
539
+ /* @__PURE__ */ jsx(DropdownSheetCloseButton, { onClose })
540
+ ] }),
541
+ /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto pb-[max(2.5rem,calc(env(safe-area-inset-bottom)+2rem))]", children })
542
+ ] });
543
+ }
544
+ var DropdownPopover = ({ mobileOptions, children, className, style, ...props }) => {
545
+ const isMobile = useIsMobile();
546
+ const resolvedMobile = useMemo(() => resolveSelectMobileOptions(mobileOptions), [mobileOptions]);
547
+ const useMobileSheet = isMobile && resolvedMobile.sheet;
548
+ const overlayState = useContext(OverlayTriggerStateContext);
549
+ const open = overlayState?.isOpen ?? false;
550
+ const parentDepth = useContext(DropdownSheetDepthContext);
551
+ const depth = parentDepth + 1;
552
+ const { shouldRender, panelStyle, backdropStyle } = useMobileSheetAnimation(open, useMobileSheet);
553
+ useEffect(() => {
554
+ if (!useMobileSheet || !open) return;
555
+ const prev = document.body.style.overflow;
556
+ document.body.style.overflow = "hidden";
557
+ return () => {
558
+ document.body.style.overflow = prev;
559
+ };
560
+ }, [useMobileSheet, open]);
561
+ if (!useMobileSheet) {
562
+ return /* @__PURE__ */ jsx(
563
+ Popover,
564
+ {
565
+ placement: "bottom right",
566
+ ...props,
567
+ style,
568
+ className: (state) => cx(
569
+ "w-62 origin-(--trigger-anchor-point) overflow-auto rounded-lg bg-primary shadow-lg ring-1 ring-secondary_alt will-change-transform",
570
+ 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",
571
+ 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",
572
+ typeof className === "function" ? className(state) : className
573
+ ),
574
+ children
575
+ }
576
+ );
577
+ }
578
+ const close = () => overlayState?.close();
579
+ const showMobileSheet = shouldRender;
580
+ const isMobileSheetExiting = showMobileSheet && !open;
581
+ const scrimZIndex = 50 + (depth - 1) * 10;
582
+ const sheetZIndex = scrimZIndex + 1;
583
+ const mobileScrim = shouldRender && typeof document !== "undefined" ? createPortal(
584
+ /* @__PURE__ */ jsx(
585
+ "div",
586
+ {
587
+ className: "fixed inset-0 bg-overlay/70",
588
+ style: { ...backdropStyle, zIndex: scrimZIndex },
589
+ onClick: close,
590
+ "aria-hidden": "true"
591
+ }
592
+ ),
593
+ document.body
594
+ ) : null;
595
+ return /* @__PURE__ */ jsxs(DropdownSheetDepthContext.Provider, { value: depth, children: [
596
+ mobileScrim,
597
+ /* @__PURE__ */ jsx(
598
+ Popover,
599
+ {
600
+ placement: "bottom",
601
+ containerPadding: 0,
602
+ offset: 0,
603
+ ...props,
604
+ isExiting: isMobileSheetExiting,
605
+ "data-dropdown-mobile-sheet": true,
606
+ style: { ...panelStyle, zIndex: sheetZIndex, ...style },
607
+ className: (state) => cx(
608
+ "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",
609
+ resolvedMobile.sheetClassName,
610
+ typeof className === "function" ? className(state) : className
611
+ ),
612
+ children: /* @__PURE__ */ jsx(DropdownSheetChrome, { title: resolvedMobile.title, onClose: close, children: typeof children === "function" ? null : children })
613
+ }
614
+ )
615
+ ] });
451
616
  };
452
617
  var DropdownSeparator = (props) => {
453
618
  return /* @__PURE__ */ jsx(Separator, { ...props, className: cx("my-1 h-px w-full bg-border-secondary", props.className) });