twenty-ui 2.47.0 → 2.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/dist/{AllIcons-DrlkKKQf.cjs → AllIcons-Cyd7721G.cjs} +1 -1
  2. package/dist/{AllIcons-G3nKeM41.js → AllIcons-D132B8_i.js} +1 -1
  3. package/dist/{Button-Cs07psdD.js → Button-D5enZ0Qz.js} +1 -1
  4. package/dist/{Button-COxEKIHL.cjs → Button-Dbi5P05r.cjs} +1 -1
  5. package/dist/Dropdown-BKjAaZS0.cjs +1 -0
  6. package/dist/Dropdown-C2hXrjvD.js +820 -0
  7. package/dist/{ListItem-q6DHGlev.cjs → ListItem-CHTR-GLd.cjs} +1 -1
  8. package/dist/{ListItem-CXu35dzp.js → ListItem-CjnrSbka.js} +4 -4
  9. package/dist/ListItem.module-BJ9Ttjrc.js +34 -0
  10. package/dist/ListItem.module-CO4u2oeF.cjs +1 -0
  11. package/dist/OverflowingTextWithTooltip-BmUROIah.js +90 -0
  12. package/dist/OverflowingTextWithTooltip-Z2daM0_x.cjs +1 -0
  13. package/dist/{ProgressBar-D_3Gia0E.js → ProgressBar-BvT1dyFo.js} +1 -1
  14. package/dist/{ProgressBar-oF1qVHFx.cjs → ProgressBar-DfFz0fFB.cjs} +1 -1
  15. package/dist/{Radio-BMoQHDe7.js → Radio-DMI1B7o5.js} +1 -1
  16. package/dist/{Radio-D_YUizSv.cjs → Radio-xmHgGHQO.cjs} +1 -1
  17. package/dist/{ResizeHandle-Bjg4R0c-.js → ResizeHandle-C1kQ3MYR.js} +1 -0
  18. package/dist/ResizeHandle-DI4LHIQm.cjs +1 -0
  19. package/dist/Shortcut-BvWUZ3pb.js +72 -0
  20. package/dist/Shortcut-CgrdLv_L.cjs +1 -0
  21. package/dist/TabsTabContent-Co27Y2TU.cjs +1 -0
  22. package/dist/TabsTabContent-DVcObDp6.js +39 -0
  23. package/dist/Tooltip-Bg9Uk01p.cjs +1 -0
  24. package/dist/Tooltip-cLCgtFBF.js +124 -0
  25. package/dist/components/code-editor/CodeEditor/CodeEditor.d.ts +1 -1
  26. package/dist/components/code-editor/CodeEditor/__stories__/ControlledCodeEditor.d.ts +2 -0
  27. package/dist/components/code-editor/CodeEditor/__stories__/ModelCodeEditor.d.ts +2 -0
  28. package/dist/components/code-editor/CodeEditor/__stories__/ResizableCodeEditor.d.ts +2 -0
  29. package/dist/components/code-editor/CodeEditor/__stories__/ThemedCodeEditor.d.ts +2 -0
  30. package/dist/components/code-editor/CodeEditor/__stories__/UnmountingCodeEditor.d.ts +2 -0
  31. package/dist/components/code-editor/CodeEditor/__stories__/waitForCodeEditorContent.d.ts +4 -1
  32. package/dist/components/code-editor/CodeEditor/internal/CodeEditorAutoHeightEffect.d.ts +9 -0
  33. package/dist/components/code-editor/CodeEditor/internal/CodeEditorLifecycleEffect.d.ts +11 -0
  34. package/dist/components/code-editor/CodeEditor/internal/CodeEditorLoaderConfigurationEffect.d.ts +7 -0
  35. package/dist/components/code-editor/CodeEditor/internal/CodeEditorMarkersEffect.d.ts +10 -0
  36. package/dist/components/code-editor/CodeEditor/internal/CodeEditorResizableHeightEffect.d.ts +11 -0
  37. package/dist/components/code-editor/CodeEditor/internal/CodeEditorThemeEffect.d.ts +10 -0
  38. package/dist/components/code-editor/CodeEditor/internal/constants/CodeEditorDefaultHeight.d.ts +1 -0
  39. package/dist/components/code-editor/CodeEditor/internal/types/ResizedCodeEditorHeight.d.ts +4 -0
  40. package/dist/components/code-editor/CodeEditor/internal/useCodeEditorHeight.d.ts +13 -0
  41. package/dist/components/code-editor/CodeEditor/internal/utils/defineCodeEditorDefaultTheme.d.ts +7 -0
  42. package/dist/components/code-editor/CodeEditor/internal/utils/getBaseCodeEditorTheme.d.ts +4 -1
  43. package/dist/components/code-editor/CodeEditor/internal/utils/getBoundedCodeEditorHeight.d.ts +1 -0
  44. package/dist/components/code-editor/CodeEditor/internal/utils/getCurrentCodeEditorHeight.d.ts +7 -0
  45. package/dist/components/code-editor/CodeEditor/internal/utils/getResizableCodeEditorHeight.d.ts +5 -0
  46. package/dist/components/code-editor/CodeEditor/types/CodeEditorProps.d.ts +4 -2
  47. package/dist/components/code-editor.cjs +1 -1
  48. package/dist/components/code-editor.mjs +267 -155
  49. package/dist/components/data-display.mjs +1 -1
  50. package/dist/components/feedback/Toast/internal/components/ToastCountdownEffect.d.ts +4 -3
  51. package/dist/components/feedback/Toast/internal/components/ToastProviderLifecycleEffect.d.ts +3 -0
  52. package/dist/components/feedback/Toast/internal/constants/DefaultToastDuration.d.ts +1 -0
  53. package/dist/components/feedback/Toast/internal/contexts/ToastContext.d.ts +60 -1
  54. package/dist/components/feedback/Toast/internal/contexts/ToastTimingContext.d.ts +12 -2
  55. package/dist/components/feedback/Toast/internal/hooks/useToastContext.d.ts +60 -1
  56. package/dist/components/feedback/Toast/internal/hooks/useToastCountdown.d.ts +26 -0
  57. package/dist/components/feedback/Toast/internal/stores/createToastStore.d.ts +60 -1
  58. package/dist/components/feedback/Toast/internal/utils/assertValidToastLimit.d.ts +1 -0
  59. package/dist/components/feedback/Toast/internal/utils/completeToastExit.d.ts +3 -2
  60. package/dist/components/feedback/Toast/internal/utils/createToastCountdownStore.d.ts +22 -0
  61. package/dist/components/feedback/Toast/internal/utils/createToastLifecycle.d.ts +62 -0
  62. package/dist/components/feedback/Toast/internal/utils/dismissToasts.d.ts +3 -2
  63. package/dist/components/feedback/Toast/internal/utils/updateToastLimit.d.ts +5 -0
  64. package/dist/components/feedback/Toaster/__stories__/ToasterLifecycleControls.d.ts +7 -0
  65. package/dist/components/feedback/Toaster/__stories__/ToasterLifecycleExample.d.ts +2 -0
  66. package/dist/components/feedback/Toaster/__stories__/ToasterLifecycleExampleProps.d.ts +7 -0
  67. package/dist/components/feedback/Toaster/__stories__/ToasterLifecycleTimingOverrideExample.d.ts +9 -0
  68. package/dist/components/feedback/Toaster/__stories__/ToasterLifecycleUnrelatedNotificationActions.d.ts +5 -0
  69. package/dist/components/feedback/Toaster/__stories__/ToasterPortalExample.d.ts +5 -0
  70. package/dist/components/feedback/Toaster/__stories__/ToasterProviderLayoutReplayEffect.d.ts +4 -0
  71. package/dist/components/feedback/Toaster/__stories__/ToasterProviderPassiveReplayEffect.d.ts +4 -0
  72. package/dist/components/feedback/Toaster/__stories__/ToasterProviderReplayExample.d.ts +6 -0
  73. package/dist/components/feedback/Toaster/__stories__/ToasterProviderSuspenseExample.d.ts +4 -0
  74. package/dist/components/feedback/Toaster/__stories__/ToasterProviderSuspension.d.ts +5 -0
  75. package/dist/components/feedback/Toaster/internal/ToasterItemExitEffect.d.ts +2 -1
  76. package/dist/components/feedback.cjs +1 -1
  77. package/dist/components/feedback.mjs +1 -1
  78. package/dist/components/input/SearchInput/SearchInput.d.ts +1 -1
  79. package/dist/components/input/SearchInput/types/SearchInputProps.d.ts +2 -3
  80. package/dist/components/input/SegmentedControl/SegmentedControl.d.ts +1 -1
  81. package/dist/components/input/SegmentedControl/types/SegmentedControlProps.d.ts +2 -0
  82. package/dist/components/input/SegmentedControl/types/SegmentedControlSize.d.ts +1 -0
  83. package/dist/components/input/index.d.ts +1 -0
  84. package/dist/components/input.cjs +1 -1
  85. package/dist/components/input.mjs +2 -2
  86. package/dist/components/layout/OverflowingList/OverflowingList.d.ts +1 -1
  87. package/dist/components/layout/OverflowingList/__stories__/OverflowingListActionsExample.d.ts +7 -0
  88. package/dist/components/layout/OverflowingList/__stories__/OverflowingListCanceledCloseExample.d.ts +1 -0
  89. package/dist/components/layout/OverflowingList/__stories__/OverflowingListControlledExample.d.ts +1 -0
  90. package/dist/components/layout/OverflowingList/__stories__/OverflowingListControlledStateExample.d.ts +1 -0
  91. package/dist/components/layout/OverflowingList/__stories__/OverflowingListDisabledTriggerFocusExample.d.ts +1 -0
  92. package/dist/components/layout/OverflowingList/__stories__/OverflowingListEventBlockingExample.d.ts +7 -0
  93. package/dist/components/layout/OverflowingList/__stories__/OverflowingListFocusExample.d.ts +1 -0
  94. package/dist/components/layout/OverflowingList/__stories__/OverflowingListInstanceCleanupExample.d.ts +1 -0
  95. package/dist/components/layout/OverflowingList/__stories__/OverflowingListStateExample.d.ts +1 -0
  96. package/dist/components/layout/OverflowingList/__stories__/OverflowingListTriggerRefExample.d.ts +1 -0
  97. package/dist/components/layout/OverflowingList/internal/OverflowingListItem.d.ts +8 -2
  98. package/dist/components/layout/OverflowingList/internal/OverflowingListItemFocusEffect.d.ts +8 -0
  99. package/dist/components/layout/OverflowingList/internal/OverflowingListLayoutEffect.d.ts +16 -0
  100. package/dist/components/layout/OverflowingList/internal/OverflowingListPopupTarget.d.ts +10 -0
  101. package/dist/components/layout/OverflowingList/internal/focusOverflowingListFallback.d.ts +8 -0
  102. package/dist/components/layout/OverflowingList/internal/measureOverflowingListLayout.d.ts +10 -0
  103. package/dist/components/layout/OverflowingList/internal/types/OverflowingListLayout.d.ts +4 -0
  104. package/dist/components/layout/OverflowingList/internal/useFocusedElementUnmountRef.d.ts +1 -1
  105. package/dist/components/layout/OverflowingList/internal/useOverflowingListFocus.d.ts +30 -0
  106. package/dist/components/layout/OverflowingList/internal/useOverflowingListLayout.d.ts +6 -6
  107. package/dist/components/layout/OverflowingList/types/OverflowingListProps.d.ts +7 -2
  108. package/dist/components/layout.cjs +1 -1
  109. package/dist/components/layout.mjs +1 -1
  110. package/dist/components/navigation/Dropdown/Dropdown.d.ts +4 -4
  111. package/dist/components/navigation/Dropdown/internal/DropdownActionItem.d.ts +1 -1
  112. package/dist/components/navigation/Dropdown/internal/DropdownContent.d.ts +1 -1
  113. package/dist/components/navigation/Dropdown/internal/DropdownContextValue.d.ts +6 -5
  114. package/dist/components/navigation/Dropdown/internal/DropdownOptionItem.d.ts +1 -1
  115. package/dist/components/navigation/Dropdown/internal/DropdownRowFocus.d.ts +5 -0
  116. package/dist/components/navigation/Dropdown/internal/DropdownRowsEffect.d.ts +5 -0
  117. package/dist/components/navigation/Dropdown/internal/DropdownSubmenuTrigger.d.ts +1 -1
  118. package/dist/components/navigation/Dropdown/internal/getDropdownItemExplicitId.d.ts +5 -0
  119. package/dist/components/navigation/Dropdown/internal/getDropdownRows.d.ts +1 -0
  120. package/dist/components/navigation/Dropdown/internal/getDropdownSearch.d.ts +1 -0
  121. package/dist/components/navigation/Dropdown/internal/getDropdownTabStopRowId.d.ts +4 -0
  122. package/dist/components/navigation/Dropdown/internal/isDropdownDismissPrevented.d.ts +2 -1
  123. package/dist/components/navigation/Dropdown/internal/isDropdownRow.d.ts +4 -0
  124. package/dist/components/navigation/Dropdown/internal/isEnabledDropdownItem.d.ts +4 -0
  125. package/dist/components/navigation/Dropdown/internal/useDropdownItemFocus.d.ts +0 -1
  126. package/dist/components/navigation/Dropdown/internal/useDropdownKeyboardNavigation.d.ts +1 -6
  127. package/dist/components/navigation.cjs +1 -1
  128. package/dist/components/navigation.mjs +2 -2
  129. package/dist/components/settings.cjs +1 -1
  130. package/dist/components/settings.mjs +1 -1
  131. package/dist/components.cjs +1 -1
  132. package/dist/components.mjs +7 -7
  133. package/dist/data-display-0QO_WDSs.js +183 -0
  134. package/dist/data-display-CPmTJAWJ.cjs +1 -0
  135. package/dist/{data-display-DU3G8ZyI.js → data-display-KyZbLLy-.js} +1 -1
  136. package/dist/feedback-CM6fatE8.js +664 -0
  137. package/dist/feedback-ybO4n69s.cjs +1 -0
  138. package/dist/icon/components/TablerIcons.d.ts +1 -1
  139. package/dist/icon/constants/TwentyIconDictionary.d.ts +7 -7
  140. package/dist/icon/index.d.ts +1 -1
  141. package/dist/{icon-JuDK6Wxr.cjs → icon-BNcdwwdl.cjs} +1 -1
  142. package/dist/{icon-BdXwnJA6.js → icon-CUE-QGQK.js} +129 -128
  143. package/dist/icon.cjs +1 -1
  144. package/dist/icon.mjs +77 -76
  145. package/dist/index.cjs +1 -1
  146. package/dist/index.mjs +222 -220
  147. package/dist/input-3D2lXywH.cjs +1 -0
  148. package/dist/{input-Bnu5kNjg.cjs → input-CJDYNwoO.cjs} +1 -1
  149. package/dist/{input-vl6yK36n.js → input-DRpDiMRi.js} +4 -4
  150. package/dist/input-TM3nUdu6.js +554 -0
  151. package/dist/layout-BszCDxAO.js +441 -0
  152. package/dist/layout-VaIq7Sjr.cjs +1 -0
  153. package/dist/{navigation-itBinyPi.js → navigation-B1SRvzKK.js} +8 -8
  154. package/dist/{navigation-Dg46Wr5m.js → navigation-CYAs2LnR.js} +1 -1
  155. package/dist/{navigation-WsiYsmaq.cjs → navigation-CthkGHJ8.cjs} +1 -1
  156. package/dist/{navigation-B1hPNYv2.cjs → navigation-DrOV5E67.cjs} +1 -1
  157. package/dist/primitives/data-display.cjs +1 -1
  158. package/dist/primitives/data-display.mjs +1 -1
  159. package/dist/primitives/feedback.cjs +1 -1
  160. package/dist/primitives/feedback.mjs +1 -1
  161. package/dist/primitives/input.cjs +1 -1
  162. package/dist/primitives/input.mjs +3 -3
  163. package/dist/primitives/layout.cjs +1 -1
  164. package/dist/primitives/layout.mjs +1 -1
  165. package/dist/primitives/navigation.cjs +1 -1
  166. package/dist/primitives/navigation.mjs +2 -2
  167. package/dist/primitives/surfaces/Tooltip/Tooltip.d.ts +1 -1
  168. package/dist/primitives/surfaces/Tooltip/internal/TooltipPopup.d.ts +1 -1
  169. package/dist/primitives/surfaces/Tooltip/types/TooltipPopupProps.d.ts +2 -0
  170. package/dist/primitives/surfaces.cjs +1 -1
  171. package/dist/primitives/surfaces.mjs +2 -2
  172. package/dist/primitives/typography/OverflowingTextWithTooltip/OverflowingTextTooltipModeProvider.d.ts +6 -0
  173. package/dist/primitives/typography/OverflowingTextWithTooltip/internal/OverflowingTextTooltipModeContext.d.ts +2 -0
  174. package/dist/primitives/typography/OverflowingTextWithTooltip/internal/isElementOverflowing.d.ts +1 -0
  175. package/dist/primitives/typography/OverflowingTextWithTooltip/types/OverflowingTextTooltipMode.d.ts +1 -0
  176. package/dist/primitives/typography/Shortcut/Shortcut.d.ts +1 -1
  177. package/dist/primitives/typography/Shortcut/internal/getShortcutPresentation.d.ts +1 -1
  178. package/dist/primitives/typography/Shortcut/types/ShortcutFormatOptions.d.ts +1 -0
  179. package/dist/primitives/typography/index.d.ts +2 -0
  180. package/dist/primitives/typography.cjs +1 -1
  181. package/dist/primitives/typography.mjs +10 -9
  182. package/dist/primitives.cjs +1 -1
  183. package/dist/primitives.mjs +37 -36
  184. package/dist/{settings-BiSAY2oN.cjs → settings-BAYsnlZJ.cjs} +1 -1
  185. package/dist/{settings-CC-2gcAx.js → settings-BjEZiHXE.js} +1 -1
  186. package/dist/style.css +1 -1
  187. package/dist/surfaces-0rL5DoHt.cjs +1 -0
  188. package/dist/{surfaces-DZ2A-Nb9.js → surfaces-BLsR5ka0.js} +54 -54
  189. package/dist/typography-B5QEuPaL.cjs +1 -0
  190. package/dist/typography-fOTFr0jS.js +11 -0
  191. package/package.json +1 -1
  192. package/dist/Dropdown-BBUGkQQV.cjs +0 -1
  193. package/dist/Dropdown-CScN_olN.js +0 -784
  194. package/dist/ListItem.module-Ar-vZ7Qu.js +0 -34
  195. package/dist/ListItem.module-B8NeDH1P.cjs +0 -1
  196. package/dist/OverflowingTextWithTooltip-Be2-wCcZ.js +0 -88
  197. package/dist/OverflowingTextWithTooltip-BlufG-6n.cjs +0 -1
  198. package/dist/ResizeHandle-CNlQ4TEE.cjs +0 -1
  199. package/dist/Shortcut-DKfB0kej.js +0 -71
  200. package/dist/Shortcut-ZuZ-KYSk.cjs +0 -1
  201. package/dist/TabsTabContent-DZUNi_iE.cjs +0 -1
  202. package/dist/TabsTabContent-s6J5bZ3R.js +0 -39
  203. package/dist/Tooltip-BMkznyoi.js +0 -120
  204. package/dist/Tooltip-JOYVeSsf.cjs +0 -1
  205. package/dist/components/navigation/Dropdown/internal/DropdownSearchTargetEffect.d.ts +0 -5
  206. package/dist/data-display-BMV-nC-9.js +0 -181
  207. package/dist/data-display-BkujQe5v.cjs +0 -1
  208. package/dist/feedback-B5x8tmnG.cjs +0 -1
  209. package/dist/feedback-DhilJ_fX.js +0 -509
  210. package/dist/input-BEKjAOjS.cjs +0 -1
  211. package/dist/input-BUgnp6eA.js +0 -559
  212. package/dist/layout-BKHabkTu.js +0 -267
  213. package/dist/layout-wuIu4rJ3.cjs +0 -1
  214. package/dist/surfaces-vyAhk2Gw.cjs +0 -1
  215. package/dist/typography-8DF9mq2w.cjs +0 -1
  216. package/dist/typography-DmY7-GzQ.js +0 -5
@@ -0,0 +1,820 @@
1
+ import { t as c } from "./isDefined-fMi6eQ4r.js";
2
+ import { Cn as zt, Dn as $t, En as jt, gl as Vt } from "./icon-CUE-QGQK.js";
3
+ import { t as V } from "./mergeClassNames-ClFMR1v0.js";
4
+ import { t as Yt } from "./preventDismissingClickActivation-CzWqpjiX.js";
5
+ import { r as Tt, t as Xt } from "./Button-D5enZ0Qz.js";
6
+ import { t as _t } from "./isRenderableSlot-DT_depzM.js";
7
+ import { t as Jt } from "./Tooltip-cLCgtFBF.js";
8
+ import { r as At } from "./OverflowingTextWithTooltip-BmUROIah.js";
9
+ import { t as tt } from "./ListItem.module-BJ9Ttjrc.js";
10
+ import { t as lt } from "./ListItem-CjnrSbka.js";
11
+ import { t as X } from "./Popover-CWeCV7X9.js";
12
+ import { t as Qt } from "./Input-DZWl81G_.js";
13
+ import { useRender as Ct } from "@base-ui/react/use-render";
14
+ import { isBoolean as Zt, isFunction as te, isNonEmptyString as rt, isPositiveInteger as kt } from "@sniptt/guards";
15
+ import { clsx as G } from "clsx";
16
+ import { createContext as ee, isValidElement as re, useCallback as Q, useContext as ot, useEffect as oe, useId as pt, useLayoutEffect as Rt, useRef as Pt, useState as F } from "react";
17
+ import { Fragment as ne, jsx as u, jsxs as nt } from "react/jsx-runtime";
18
+ import { Button as Et } from "@base-ui/react/button";
19
+ import { useMergedRefs as at } from "@base-ui/utils/useMergedRefs";
20
+ import { Popover as St } from "@base-ui/react/popover";
21
+ import { areArraysEqual as ae } from "@base-ui/utils/areArraysEqual";
22
+ import { useDirection as Nt } from "@base-ui/react/direction-provider";
23
+ import { Menu as ft } from "@base-ui/react/menu";
24
+ var se = "_content_1tgf7_1", ie = "_page_1tgf7_13", ce = "_group_1tgf7_17", de = "_groupLabel_1tgf7_23", ue = "_separator_1tgf7_35", le = "_section_1tgf7_42", pe = "_back_1tgf7_73", fe = "_backIcon_1tgf7_85", me = "_searchContainer_1tgf7_89", ge = "_search_1tgf7_89", we = "_status_1tgf7_106", he = "_header_1tgf7_112", be = "_title_1tgf7_125", ve = "_itemWithActions_1tgf7_134", ye = "_itemWithActionsPrimary_1tgf7_140", De = "_itemActions_1tgf7_155", Ie = "_itemDecoration_1tgf7_159", A = {
25
+ content: se,
26
+ page: ie,
27
+ group: ce,
28
+ groupLabel: de,
29
+ separator: ue,
30
+ section: le,
31
+ back: pe,
32
+ backIcon: fe,
33
+ searchContainer: me,
34
+ search: ge,
35
+ status: we,
36
+ header: he,
37
+ title: be,
38
+ itemWithActions: ve,
39
+ itemWithActionsPrimary: ye,
40
+ itemActions: De,
41
+ itemDecoration: Ie
42
+ }, mt = ({ render: t, ref: e, disabled: r, ...o }) => Ct({
43
+ render: t,
44
+ ref: e,
45
+ defaultTagName: "button",
46
+ props: {
47
+ ...o,
48
+ disabled: r
49
+ }
50
+ }), gt = ({ nativeButton: t, renderProps: e }) => t && "disabled" in e && Zt(e.disabled) ? e.disabled : void 0, Te = "[data-dropdown-item]", xt = ({ actions: t, actionsVisibility: e = "hover", color: r = "neutral", selected: o = !1, focused: a = !1, indicator: s = "none", disabled: i = !1, hasSubmenu: n = !1, children: p }) => /* @__PURE__ */ nt("div", {
51
+ className: G(tt.root, A.itemWithActions),
52
+ role: "none",
53
+ "data-actions-visibility": e,
54
+ "data-color": r,
55
+ "data-selected": o ? "" : void 0,
56
+ "data-highlighted": a ? "" : void 0,
57
+ "data-indicator": s,
58
+ "data-disabled": i ? "" : void 0,
59
+ onClick: (l) => {
60
+ l.target === l.currentTarget && l.currentTarget.querySelector(Te)?.click();
61
+ },
62
+ children: [
63
+ p,
64
+ /* @__PURE__ */ u("span", {
65
+ className: G(tt.actions, A.itemActions),
66
+ children: t
67
+ }),
68
+ s === "check" && o && /* @__PURE__ */ u(zt, {
69
+ className: G(tt.checkIndicator, A.itemDecoration),
70
+ "aria-hidden": !0
71
+ }),
72
+ n && /* @__PURE__ */ u($t, {
73
+ className: G(tt.submenuIcon, A.itemDecoration),
74
+ "aria-hidden": !0
75
+ })
76
+ ]
77
+ }), wt = ({ id: t, render: e }) => re(e) ? e.props.id ?? t : t, ht = (t) => t.getAttribute("aria-label") ?? t.textContent ?? "", Ot = ({ content: t, item: e }) => e.getAttribute("aria-disabled") !== "true" && !e.hasAttribute("disabled") && e.closest("[data-dropdown-content]") === t, st = (t) => Array.from(t.querySelectorAll("[data-dropdown-item]")).filter((e) => Ot({
78
+ content: t,
79
+ item: e
80
+ })), et = ee(void 0), L = () => {
81
+ const t = ot(et);
82
+ if (!c(t)) throw new Error("Dropdown components must be inside Dropdown.Root");
83
+ return t;
84
+ }, bt = ({ id: t, disabled: e, isSubmenuTrigger: r = !1 }) => {
85
+ const o = L(), a = r ? o.parentType : o.type, s = r ? o.parentRowFocus : o.rowFocus, i = a !== "panel" && (s?.rowIds?.includes(t) ?? !0);
86
+ return { tabIndex: e || i && s?.tabStopRowId !== t ? -1 : 0 };
87
+ }, Ft = ({ color: t, startIcon: e, endIcon: r, description: o, descriptionPlacement: a, shortcut: s, shortcutJoinLabel: i, hasSubmenu: n, actions: p, actionsVisibility: l, children: f, render: m, disabled: b = !1, nativeButton: d = !c(m), closeOnClick: C = !0, onClick: h, page: D, id: g, ...w }) => {
88
+ const { type: v, closeTree: I, goToPage: x } = L(), S = pt(), k = wt({
89
+ id: g,
90
+ render: m
91
+ }), q = k ?? S, E = bt({
92
+ id: q,
93
+ disabled: b
94
+ }), _ = _t(p), B = n ?? c(D), O = /* @__PURE__ */ u(Et, {
95
+ ...w,
96
+ id: q,
97
+ disabled: b,
98
+ nativeButton: d,
99
+ role: w.role ?? (v === "menu" ? "menuitem" : void 0),
100
+ tabIndex: E.tabIndex,
101
+ "data-dropdown-item": "",
102
+ "data-dropdown-page": D,
103
+ onClick: (R) => {
104
+ if (h?.(R), !R.defaultPrevented) {
105
+ if (c(D)) {
106
+ const T = R.currentTarget.closest("[data-dropdown-content]");
107
+ if (!c(T)) return;
108
+ x({
109
+ id: D,
110
+ trigger: {
111
+ id: k,
112
+ index: st(T).indexOf(R.currentTarget),
113
+ page: D,
114
+ label: ht(R.currentTarget)
115
+ }
116
+ });
117
+ return;
118
+ }
119
+ C && I();
120
+ }
121
+ },
122
+ render: (R) => {
123
+ const T = gt({
124
+ nativeButton: d,
125
+ renderProps: R
126
+ });
127
+ return /* @__PURE__ */ u(lt, {
128
+ ...R,
129
+ render: /* @__PURE__ */ u(mt, {
130
+ render: m,
131
+ disabled: T
132
+ }),
133
+ className: G(R.className, _ && A.itemWithActionsPrimary),
134
+ disabled: b,
135
+ color: t,
136
+ startIcon: e,
137
+ endIcon: r,
138
+ actionsVisibility: l,
139
+ description: o,
140
+ descriptionPlacement: a,
141
+ shortcut: s,
142
+ shortcutJoinLabel: i,
143
+ hasSubmenu: !_ && B,
144
+ children: f
145
+ });
146
+ }
147
+ });
148
+ return _ ? /* @__PURE__ */ u(xt, {
149
+ actions: p,
150
+ actionsVisibility: l,
151
+ color: t,
152
+ disabled: b,
153
+ hasSubmenu: B,
154
+ children: O
155
+ }) : O;
156
+ }, _e = ({ children: t = "Back", className: e, onClick: r, ...o }) => {
157
+ const { goBack: a, canGoBack: s } = L();
158
+ return /* @__PURE__ */ u(Ft, {
159
+ ...o,
160
+ className: G(A.back, e),
161
+ "data-dropdown-back": "",
162
+ disabled: o.disabled || !s,
163
+ startIcon: /* @__PURE__ */ u(jt, { className: A.backIcon }),
164
+ closeOnClick: !1,
165
+ onClick: (i) => {
166
+ r?.(i), !i.defaultPrevented && a();
167
+ },
168
+ children: t
169
+ });
170
+ }, Ae = "_button_1qwl0_1", Ce = "_tooltipAnchor_1qwl0_29", ke = "_icon_1qwl0_33", dt = {
171
+ button: Ae,
172
+ tooltipAnchor: Ce,
173
+ icon: ke
174
+ }, Re = ({ children: t, size: e, shape: r = "square", className: o, tooltip: a, tooltipPlace: s = "bottom", tooltipDelay: i = 1e3, tooltipOffset: n = 5, disabled: p, loading: l, ...f }) => {
175
+ const m = ot(Tt), b = e ?? m?.size ?? "md", d = rt(a), C = p || l, h = /* @__PURE__ */ u(Xt, {
176
+ ...f,
177
+ size: b === "xs" ? "sm" : b,
178
+ "data-icon-size": b,
179
+ "data-shape": r,
180
+ disabled: p,
181
+ loading: l,
182
+ startIcon: /* @__PURE__ */ u("span", {
183
+ className: dt.icon,
184
+ children: t
185
+ }),
186
+ className: V(dt.button, o)
187
+ });
188
+ return d ? /* @__PURE__ */ u(Jt, {
189
+ content: a,
190
+ delay: i,
191
+ side: s,
192
+ sideOffset: n,
193
+ children: C ? /* @__PURE__ */ u("span", {
194
+ className: dt.tooltipAnchor,
195
+ children: h
196
+ }) : h
197
+ }) : h;
198
+ }, Pe = "_button_prhtf_1", Ee = { button: Pe }, Se = ({ className: t, emphasis: e = "standard", size: r, variant: o, ...a }) => {
199
+ const s = ot(Tt), i = r ?? s?.size ?? "sm", n = o ?? s?.variant ?? "ghost";
200
+ return /* @__PURE__ */ u(Re, {
201
+ ...a,
202
+ size: i,
203
+ variant: n,
204
+ "data-emphasis": e,
205
+ className: V(Ee.button, t)
206
+ });
207
+ }, Ne = ({ render: t, children: e, "aria-label": r, ...o }) => /* @__PURE__ */ u(St.Close, {
208
+ ...o,
209
+ "aria-label": r,
210
+ render: t ?? /* @__PURE__ */ u(Se, {
211
+ size: "sm",
212
+ "aria-label": r,
213
+ children: e ?? /* @__PURE__ */ u(Vt, {})
214
+ }),
215
+ children: c(t) ? e : void 0
216
+ }), it = (t) => t.querySelector("[data-dropdown-search]:not(:disabled)"), vt = ({ content: t, target: e, edge: r = "first", type: o }) => {
217
+ const a = c(e?.id) ? t.ownerDocument.getElementById(e.id) : null;
218
+ if (c(a) && t.contains(a)) return a;
219
+ const s = st(t), i = c(e) ? s.filter((d) => d.dataset.dropdownPage === e.page) : [], [n] = i;
220
+ if (i.length === 1 && c(n)) return n;
221
+ const p = rt(e?.label) ? i.filter((d) => ht(d) === e?.label) : [], [l] = p;
222
+ if (p.length === 1 && c(l)) return l;
223
+ const f = c(e) ? s[e.index] : void 0;
224
+ if (c(f)) return f;
225
+ const m = t.querySelector('input:not(:disabled):not([type="hidden"]),button:not(:disabled),textarea:not(:disabled),select:not(:disabled),a[href],[tabindex="0"]');
226
+ if ((Array.from(t.querySelectorAll("[data-dropdown-page-type]")).find((d) => d.closest("[data-dropdown-content]") === t)?.dataset.dropdownPageType ?? o ?? t.dataset.type) === "panel") return m ?? t;
227
+ const b = it(t);
228
+ return c(b) ? b : r === "last" ? s[s.length - 1] ?? m ?? t : s.find((d) => !d.hasAttribute("data-dropdown-back")) ?? s[0] ?? m ?? t;
229
+ }, xe = ({ contentRef: t }) => {
230
+ const { open: e, pageId: r, pageFocusRequest: o, setPageFocusRequest: a } = L();
231
+ return Rt(() => {
232
+ c(o) && (a(void 0), !(!e || o.pageId !== r || !c(t.current)) && vt({
233
+ content: t.current,
234
+ target: o.target
235
+ }).focus());
236
+ }, [
237
+ t,
238
+ e,
239
+ r,
240
+ o,
241
+ a
242
+ ]), null;
243
+ }, Lt = ({ content: t, item: e }) => e.hasAttribute("data-dropdown-item") && Ot({
244
+ content: t,
245
+ item: e
246
+ }) && (!e.hasAttribute("data-dropdown-back") || !c(it(t))), qt = (t) => Array.from(t.querySelectorAll("[data-dropdown-item]")).filter((e) => Lt({
247
+ content: t,
248
+ item: e
249
+ })), yt = (t) => {
250
+ if (t.dataset.type === "panel") return;
251
+ const e = it(t);
252
+ if (!(!c(e) || !rt(e.value.trim())))
253
+ return st(t).find((r) => r.hasAttribute("data-dropdown-option-item"));
254
+ }, Oe = ({ content: t }) => {
255
+ const { setRowIds: e, setSearchTargetId: r } = L();
256
+ return Rt(() => {
257
+ if (!c(t)) return;
258
+ const o = () => {
259
+ const s = qt(t).map((i) => i.id);
260
+ e((i) => c(i) && ae(i, s) ? i : s), r(yt(t)?.id);
261
+ };
262
+ o();
263
+ const a = new MutationObserver(o);
264
+ return a.observe(t, {
265
+ childList: !0,
266
+ subtree: !0,
267
+ attributes: !0,
268
+ attributeFilter: [
269
+ "disabled",
270
+ "aria-disabled",
271
+ "id"
272
+ ]
273
+ }), () => {
274
+ a.disconnect(), e(void 0), r(void 0);
275
+ };
276
+ }, [
277
+ t,
278
+ e,
279
+ r
280
+ ]), null;
281
+ }, Fe = (t) => (t.ctrlKey || t.metaKey) && !t.defaultPrevented, Le = (t) => Array.from(t.ownerDocument.querySelectorAll("[data-dropdown-item][aria-controls]")).find((e) => e.getAttribute("aria-controls") === t.id), qe = ({ rowCells: t, column: e, isEnabledCell: r }) => {
282
+ const o = Math.min(e, t.length - 1);
283
+ for (let a = 0; a < t.length; a++) {
284
+ const s = [t[o - a], t[o + a]].find(r);
285
+ if (c(s)) return s;
286
+ }
287
+ }, Bt = ({ key: t, items: e, currentItem: r, search: o, isRightToLeft: a }) => {
288
+ const s = r?.closest("[data-dropdown-columns]"), i = Number(s?.dataset.dropdownColumns), n = [
289
+ "ArrowUp",
290
+ "ArrowDown",
291
+ "ArrowLeft",
292
+ "ArrowRight"
293
+ ].includes(t);
294
+ if (!c(s) || !c(r) || !n || !kt(i)) return;
295
+ const p = Array.from(s.children).filter((g) => g instanceof HTMLElement && !g.hasAttribute("data-dropdown-section-label")), l = p.indexOf(r);
296
+ if (l < 0) return;
297
+ const f = Math.floor(l / i), m = l % i, b = t === "ArrowUp" || t === "ArrowDown", d = t === "ArrowDown" || t === (a ? "ArrowLeft" : "ArrowRight") ? 1 : -1, C = Math.ceil(p.length / i), h = new Set(e), D = (g) => c(g) && h.has(g);
298
+ if (b) {
299
+ for (let v = f + d; v >= 0 && v < C; v += d) {
300
+ const I = p[Math.min(v * i + m, p.length - 1)];
301
+ if (D(I)) return I;
302
+ }
303
+ for (let v = f + d; v >= 0 && v < C; v += d) {
304
+ const I = qe({
305
+ rowCells: p.slice(v * i, (v + 1) * i),
306
+ column: m,
307
+ isEnabledCell: D
308
+ });
309
+ if (c(I)) return I;
310
+ }
311
+ const g = p.filter(D), w = d < 0 ? g[0] : g[g.length - 1];
312
+ return (c(w) ? e[e.indexOf(w) + d] : void 0) ?? (d < 0 ? o : void 0) ?? r;
313
+ }
314
+ for (let g = m + d; g >= 0 && g < i; g += d) {
315
+ const w = p[f * i + g];
316
+ if (D(w)) return w;
317
+ }
318
+ return r;
319
+ }, Be = ({ key: t, items: e, currentIndex: r, search: o, isSearch: a, isRightToLeft: s = !1 }) => {
320
+ const i = Bt({
321
+ key: t,
322
+ items: e,
323
+ currentItem: e[r],
324
+ search: o,
325
+ isRightToLeft: s
326
+ });
327
+ if (c(i)) return i;
328
+ const n = e.length - 1;
329
+ if (t === "ArrowDown") return e[r === n ? 0 : r + 1];
330
+ if (t === "ArrowUp" && r === 0 && c(o)) return o;
331
+ if (t === "ArrowUp") return e[r <= 0 ? n : r - 1];
332
+ if (!a && t === "Home") return e[0];
333
+ if (!a && t === "End") return e[n];
334
+ }, Me = 500, Ke = () => {
335
+ const { type: t, isSubmenu: e, setOpen: r, closeTree: o } = L(), a = Nt(), [s, i] = F({
336
+ text: "",
337
+ timestamp: 0
338
+ });
339
+ return (n) => {
340
+ if (n.defaultPrevented) return;
341
+ const p = n.currentTarget, l = n.target;
342
+ if (!(l instanceof HTMLElement) || l.closest("[data-dropdown-content]") !== p) return;
343
+ const f = l.matches('input,textarea,select,[contenteditable="true"]'), m = a === "rtl", b = m ? "ArrowRight" : "ArrowLeft", d = e && !f && n.key === b, C = d && t !== "panel" ? Bt({
344
+ key: n.key,
345
+ items: st(p),
346
+ currentItem: l,
347
+ search: null,
348
+ isRightToLeft: m
349
+ }) : void 0, h = c(C) && C !== l;
350
+ if (e && (n.key === "Escape" || d && !h)) {
351
+ n.preventDefault(), n.stopPropagation(), Le(p)?.focus(), r(!1);
352
+ return;
353
+ }
354
+ if (t === "panel") return;
355
+ if (t === "menu" && n.key === "Tab" && n.shiftKey) {
356
+ n.preventDefault(), o(n.nativeEvent);
357
+ return;
358
+ }
359
+ const D = it(p), g = l === D;
360
+ if (f && !g) return;
361
+ const w = qt(p), v = g && n.key === "Enter" && !n.nativeEvent.isComposing ? yt(p) : void 0;
362
+ if (c(v)) {
363
+ n.preventDefault(), v.click();
364
+ return;
365
+ }
366
+ const I = w.indexOf(l), x = Be({
367
+ key: n.key,
368
+ items: w,
369
+ currentIndex: I,
370
+ search: D,
371
+ isSearch: g,
372
+ isRightToLeft: m
373
+ });
374
+ if (c(x)) {
375
+ n.preventDefault(), x.focus();
376
+ return;
377
+ }
378
+ if (f || n.key.length !== 1 || n.key === " " || n.altKey || n.ctrlKey || n.metaKey) return;
379
+ const S = Date.now(), k = S - s.timestamp > Me ? n.key : s.text + n.key;
380
+ i({
381
+ text: k,
382
+ timestamp: S
383
+ });
384
+ const q = ([...k].every((_) => _ === k[0]) ? n.key : k).toLocaleLowerCase(), E = [...w.slice(I + 1), ...w.slice(0, I + 1)].find((_) => ht(_).trim().toLocaleLowerCase().startsWith(q));
385
+ c(E) && (n.preventDefault(), E.focus());
386
+ };
387
+ }, Ge = ({ side: t, align: e = "start", sideOffset: r = 0, alignOffset: o, anchor: a, collisionPadding: s, container: i, keepMounted: n, width: p = 200, className: l, style: f, children: m, initialFocus: b, onKeyDown: d, onFocus: C, onInput: h, onClick: D, onMouseDown: g, onPointerDown: w, "aria-label": v, "aria-labelledby": I, ref: x, ...S }) => {
388
+ const { type: k, isSubmenu: q, rowFocus: E, initialFocusEdge: _, focusOnOpen: B, triggerId: O, titleId: R, setSearchTargetId: T } = L(), M = Pt(null), [K, z] = F(null), W = at(M, x, z), Y = Ke(), j = c(v) ? void 0 : R ?? O;
389
+ return /* @__PURE__ */ nt(ne, { children: [
390
+ /* @__PURE__ */ u(X.Portal, {
391
+ container: i,
392
+ keepMounted: n,
393
+ children: /* @__PURE__ */ u(X.Positioner, {
394
+ side: t ?? (q ? "inline-end" : "bottom"),
395
+ align: e,
396
+ sideOffset: r,
397
+ alignOffset: o,
398
+ anchor: a,
399
+ collisionPadding: s,
400
+ children: /* @__PURE__ */ u(X.Popup, {
401
+ ...S,
402
+ ref: W,
403
+ role: k === "menu" ? "menu" : "dialog",
404
+ "aria-label": v,
405
+ "aria-labelledby": I ?? j,
406
+ "data-dropdown-content": "",
407
+ "data-type": k,
408
+ className: V(A.content, l),
409
+ style: (y) => ({
410
+ width: p,
411
+ ...te(f) ? f(y) : f
412
+ }),
413
+ initialFocus: b ?? (() => B ? c(M.current) ? vt({
414
+ content: M.current,
415
+ edge: _,
416
+ type: k
417
+ }) : !0 : !1),
418
+ onKeyDown: (y) => {
419
+ d?.(y), Y(y), Fe(y) || y.stopPropagation();
420
+ },
421
+ onFocus: (y) => {
422
+ C?.(y);
423
+ const { target: $ } = y;
424
+ $ instanceof HTMLElement && Lt({
425
+ content: y.currentTarget,
426
+ item: $
427
+ }) && E.focusRow($.id);
428
+ },
429
+ onInput: (y) => {
430
+ h?.(y), T(yt(y.currentTarget)?.id);
431
+ },
432
+ onClick: (y) => {
433
+ y.stopPropagation(), D?.(y);
434
+ },
435
+ onMouseDown: (y) => {
436
+ y.stopPropagation(), g?.(y);
437
+ },
438
+ onPointerDown: (y) => {
439
+ y.stopPropagation(), w?.(y);
440
+ },
441
+ children: m
442
+ })
443
+ })
444
+ }),
445
+ /* @__PURE__ */ u(xe, { contentRef: M }),
446
+ /* @__PURE__ */ u(Oe, { content: K })
447
+ ] });
448
+ }, He = ({ className: t, ...e }) => /* @__PURE__ */ u(At, {
449
+ ...e,
450
+ role: "status",
451
+ "aria-live": "polite",
452
+ className: G(A.status, t)
453
+ }), We = ({ render: t, ref: e, className: r, ...o }) => Ct({
454
+ render: t,
455
+ ref: e,
456
+ props: {
457
+ ...o,
458
+ className: G(A.header, r)
459
+ }
460
+ }), Ue = ({ className: t, ...e }) => /* @__PURE__ */ u(At, {
461
+ ...e,
462
+ role: "status",
463
+ "aria-live": "polite",
464
+ "aria-busy": "true",
465
+ className: G(A.status, t)
466
+ }), ze = ({ selected: t, indicator: e, onSelect: r, closeOnSelect: o, color: a, startIcon: s, endIcon: i, description: n, descriptionPlacement: p, shortcut: l, shortcutJoinLabel: f, hasSubmenu: m, actions: b, actionsVisibility: d, children: C, render: h, disabled: D = !1, nativeButton: g = !c(h), onClick: w, id: v, ...I }) => {
467
+ const { type: x, multiple: S, closeTree: k, searchTargetId: q } = L(), E = x === "menu", _ = c(t), B = !E && (g || I.role === "button"), O = !E && !B && _ && t, R = _ ? S ? "menuitemcheckbox" : "menuitemradio" : "menuitem", T = S ? "checkbox" : "check", M = pt(), K = wt({
468
+ id: v,
469
+ render: h
470
+ }) ?? M, z = bt({
471
+ id: K,
472
+ disabled: D
473
+ }), W = _t(b), Y = q === K, j = e ?? (_ ? T : "none"), y = W && j === "check", $ = /* @__PURE__ */ u(Et, {
474
+ ...I,
475
+ id: K,
476
+ disabled: D,
477
+ nativeButton: g,
478
+ role: E ? R : I.role,
479
+ "aria-checked": E && _ ? t : void 0,
480
+ "aria-pressed": B && _ ? t : void 0,
481
+ "aria-current": O ? "true" : void 0,
482
+ tabIndex: z.tabIndex,
483
+ "data-dropdown-item": "",
484
+ "data-dropdown-option-item": "",
485
+ onClick: (U) => {
486
+ w?.(U), !U.defaultPrevented && (r?.(), (o ?? !S) && k());
487
+ },
488
+ render: (U) => {
489
+ const Z = gt({
490
+ nativeButton: g,
491
+ renderProps: U
492
+ });
493
+ return /* @__PURE__ */ u(lt, {
494
+ ...U,
495
+ render: /* @__PURE__ */ u(mt, {
496
+ render: h,
497
+ disabled: Z
498
+ }),
499
+ className: G(U.className, W && A.itemWithActionsPrimary),
500
+ disabled: D,
501
+ selected: t,
502
+ focused: Y,
503
+ indicator: y ? "none" : j,
504
+ color: a,
505
+ startIcon: s,
506
+ endIcon: i,
507
+ actionsVisibility: d,
508
+ description: n,
509
+ descriptionPlacement: p,
510
+ shortcut: l,
511
+ shortcutJoinLabel: f,
512
+ hasSubmenu: !W && m,
513
+ children: C
514
+ });
515
+ }
516
+ });
517
+ return W ? /* @__PURE__ */ u(xt, {
518
+ actions: b,
519
+ actionsVisibility: d,
520
+ color: a,
521
+ selected: t,
522
+ focused: Y,
523
+ indicator: j,
524
+ disabled: D,
525
+ hasSubmenu: m,
526
+ children: $
527
+ }) : $;
528
+ }, $e = ({ id: t, type: e, children: r }) => {
529
+ const o = L(), { registerPage: a } = o, s = Q((i) => {
530
+ c(i) && a({
531
+ id: t,
532
+ type: e
533
+ });
534
+ }, [
535
+ t,
536
+ e,
537
+ a
538
+ ]);
539
+ return o.pageId !== t ? null : /* @__PURE__ */ u(et.Provider, {
540
+ value: {
541
+ ...o,
542
+ type: e ?? o.rootType
543
+ },
544
+ children: /* @__PURE__ */ u("div", {
545
+ ref: s,
546
+ className: A.page,
547
+ "data-dropdown-page-type": e ?? o.rootType,
548
+ children: r
549
+ })
550
+ });
551
+ }, je = ({ open: t, registerOpenNestedRoot: e }) => (oe(() => {
552
+ if (t)
553
+ return e?.();
554
+ }, [t, e]), null), Ve = ({ rowIds: t = [], focusedRowId: e }) => c(e) && t.includes(e) ? e : t[0], Ye = (t) => t instanceof FocusEvent ? t.type === "focusout" && t.relatedTarget instanceof Element ? t.relatedTarget : null : t.target instanceof Element ? t.target : null, ut = ({ onDismiss: t, event: e, target: r = Ye(e) }) => {
555
+ if (!c(t)) return !1;
556
+ let o = !1;
557
+ return t({
558
+ target: r,
559
+ type: e.type,
560
+ preventDefault: () => {
561
+ o = !0;
562
+ }
563
+ }), o;
564
+ }, It = () => {
565
+ const [t, e] = F();
566
+ return [t, Q((r) => (e(r), () => e((o) => o === r ? void 0 : o)), [])];
567
+ }, Mt = ({ children: t, type: e, open: r, defaultOpen: o = !1, onOpenChange: a, onEscapeKeyDown: s, onInteractOutside: i, multiple: n = !1, defaultPage: p = "root", isSubmenu: l = !1 }) => {
568
+ const f = ot(et), m = Pt(0), b = Q(() => (m.current += 1, () => {
569
+ m.current -= 1;
570
+ }), []), [d, C] = F(o), h = r ?? d, [D, g] = F(h), [w, v] = F([{ id: p }]), [I, x] = F(), [S, k] = F(), [q, E] = F(), _ = w[w.length - 1]?.id, [B, O] = F(), [R, T] = F("first"), [M, K] = F(!0), [z, W] = F(), [Y, j] = It(), [y, $] = It(), U = h && !D, Z = !h && D;
571
+ (U || Z) && g(h), U && (v([{ id: p }]), x(void 0), O(void 0), E(void 0)), Z && (T("first"), K(!0), W(void 0));
572
+ const ct = (P) => {
573
+ c(r) || C(P), a?.(P);
574
+ }, Kt = (P) => {
575
+ c(P) && ut({
576
+ onDismiss: i,
577
+ event: P,
578
+ target: null
579
+ }) || (ct(!1), l && f?.closeTree(P));
580
+ }, Gt = ({ id: P, trigger: N }) => {
581
+ O({ pageId: P }), v((H) => [...H, {
582
+ id: P,
583
+ trigger: N
584
+ }]);
585
+ }, Ht = () => {
586
+ const P = w[w.length - 2];
587
+ if (!c(P)) return;
588
+ const N = w[w.length - 1]?.trigger;
589
+ O({
590
+ pageId: P.id,
591
+ target: N
592
+ }), v((H) => H.slice(0, -1));
593
+ }, Wt = Q(({ id: P, type: N }) => {
594
+ if (!h) return;
595
+ const H = N ?? e;
596
+ x((J) => J?.id === P && J.type === H ? J : {
597
+ id: P,
598
+ type: H
599
+ });
600
+ }, [h, e]);
601
+ return /* @__PURE__ */ u(X.Root, {
602
+ open: h,
603
+ onOpenChange: (P, N) => {
604
+ const H = N.reason === "outside-press" || N.reason === "focus-out";
605
+ if (H && m.current > 0) {
606
+ N.cancel();
607
+ return;
608
+ }
609
+ const J = N.reason === "escape-key" && ut({
610
+ onDismiss: s,
611
+ event: N.event
612
+ }), Ut = H && ut({
613
+ onDismiss: i,
614
+ event: N.event
615
+ });
616
+ if (J || Ut) {
617
+ N.cancel();
618
+ return;
619
+ }
620
+ H && Yt(N.event), K(N.reason !== "trigger-hover"), ct(P);
621
+ },
622
+ children: /* @__PURE__ */ nt(et.Provider, {
623
+ value: {
624
+ type: c(I) && I.id === _ ? I.type : e,
625
+ rootType: e,
626
+ open: h,
627
+ multiple: n,
628
+ isSubmenu: l,
629
+ parentType: f?.type,
630
+ rowFocus: {
631
+ rowIds: S,
632
+ tabStopRowId: Ve({
633
+ rowIds: S,
634
+ focusedRowId: q
635
+ }),
636
+ focusRow: E
637
+ },
638
+ parentRowFocus: f?.rowFocus,
639
+ setRowIds: k,
640
+ pageId: _,
641
+ pageFocusRequest: B,
642
+ setPageFocusRequest: O,
643
+ canGoBack: w.length > 1,
644
+ initialFocusEdge: R,
645
+ setInitialFocusEdge: T,
646
+ focusOnOpen: M,
647
+ setFocusOnOpen: K,
648
+ setOpen: ct,
649
+ closeTree: Kt,
650
+ goToPage: Gt,
651
+ goBack: Ht,
652
+ registerPage: Wt,
653
+ registerOpenNestedRoot: b,
654
+ searchTargetId: z,
655
+ setSearchTargetId: W,
656
+ triggerId: Y,
657
+ registerTrigger: j,
658
+ titleId: y,
659
+ registerTitle: $
660
+ },
661
+ children: [/* @__PURE__ */ u(je, {
662
+ open: h,
663
+ registerOpenNestedRoot: l ? void 0 : f?.registerOpenNestedRoot
664
+ }), t]
665
+ })
666
+ });
667
+ }, Xe = ({ onValueChange: t, className: e, ...r }) => {
668
+ const { searchTargetId: o } = L();
669
+ return /* @__PURE__ */ u("div", {
670
+ className: A.searchContainer,
671
+ children: /* @__PURE__ */ u(Qt, {
672
+ type: "search",
673
+ autoComplete: "off",
674
+ "aria-activedescendant": o,
675
+ ...r,
676
+ "data-dropdown-search": "",
677
+ className: V(A.search, e),
678
+ onValueChange: (a) => t?.(a)
679
+ })
680
+ });
681
+ }, Je = ({ className: t, ...e }) => /* @__PURE__ */ u(ft.Group, {
682
+ ...e,
683
+ className: V(A.group, t)
684
+ }), Qe = ({ className: t, ...e }) => /* @__PURE__ */ u(ft.GroupLabel, {
685
+ ...e,
686
+ className: V(A.groupLabel, t)
687
+ }), Ze = ({ label: t, scrollable: e, columns: r, style: o, className: a, children: s, ...i }) => {
688
+ const n = kt(r) ? r : void 0;
689
+ return /* @__PURE__ */ nt(Je, {
690
+ ...i,
691
+ "data-scrollable": e || void 0,
692
+ "data-dropdown-columns": n,
693
+ style: {
694
+ ...o,
695
+ ...c(n) && { gridTemplateColumns: `repeat(${n}, minmax(0, 1fr))` }
696
+ },
697
+ className: G(A.section, a),
698
+ children: [c(t) && /* @__PURE__ */ u(Qe, {
699
+ "data-dropdown-section-label": "",
700
+ children: t
701
+ }), s]
702
+ });
703
+ }, tr = ({ className: t, ...e }) => /* @__PURE__ */ u(ft.Separator, {
704
+ ...e,
705
+ role: "separator",
706
+ "data-dropdown-separator": "",
707
+ className: G(A.separator, t)
708
+ }), er = ({ type: t = "menu", ...e }) => /* @__PURE__ */ u(Mt, {
709
+ ...e,
710
+ type: t,
711
+ isSubmenu: !0
712
+ }), Dt = (t) => Q((e) => {
713
+ if (!(!c(e) || !rt(e.id)))
714
+ return t(e.id);
715
+ }, [t]), rr = ({ color: t, startIcon: e, endIcon: r, description: o, descriptionPlacement: a, shortcut: s, shortcutJoinLabel: i, hasSubmenu: n = !0, children: p, render: l, disabled: f = !1, nativeButton: m = !c(l), openOnHover: b = !0, onKeyDown: d, id: C, ref: h, ...D }) => {
716
+ const g = Nt(), { type: w, rootType: v, parentType: I, open: x, setOpen: S, setFocusOnOpen: k, registerTrigger: q } = L(), E = x ? w : v, _ = pt(), B = wt({
717
+ id: C,
718
+ render: l
719
+ }) ?? _, O = bt({
720
+ id: B,
721
+ disabled: f,
722
+ isSubmenuTrigger: !0
723
+ }), R = at(h, Dt(q));
724
+ return /* @__PURE__ */ u(X.Trigger, {
725
+ ...D,
726
+ ref: R,
727
+ id: B,
728
+ disabled: f,
729
+ nativeButton: m,
730
+ openOnHover: b,
731
+ role: I === "menu" ? "menuitem" : void 0,
732
+ "aria-haspopup": E === "menu" ? "menu" : "dialog",
733
+ tabIndex: O.tabIndex,
734
+ "data-dropdown-item": "",
735
+ onKeyDown: (T) => {
736
+ if (d?.(T), T.defaultPrevented || f) return;
737
+ const M = g === "rtl" ? "ArrowLeft" : "ArrowRight";
738
+ if (T.key === M) {
739
+ T.preventDefault(), T.stopPropagation(), k(!0);
740
+ const K = T.currentTarget.getAttribute("aria-controls"), z = c(K) ? T.currentTarget.ownerDocument.getElementById(K) : null;
741
+ if (x && c(z)) {
742
+ vt({
743
+ content: z,
744
+ type: w
745
+ }).focus();
746
+ return;
747
+ }
748
+ S(!0);
749
+ }
750
+ },
751
+ render: (T) => {
752
+ const M = gt({
753
+ nativeButton: m,
754
+ renderProps: T
755
+ });
756
+ return /* @__PURE__ */ u(lt, {
757
+ ...T,
758
+ render: /* @__PURE__ */ u(mt, {
759
+ render: l,
760
+ disabled: M
761
+ }),
762
+ disabled: f,
763
+ color: t,
764
+ startIcon: e,
765
+ endIcon: r,
766
+ description: o,
767
+ descriptionPlacement: a,
768
+ shortcut: s,
769
+ shortcutJoinLabel: i,
770
+ hasSubmenu: n,
771
+ children: p
772
+ });
773
+ }
774
+ });
775
+ }, or = ({ className: t, render: e, ref: r, ...o }) => {
776
+ const { registerTitle: a } = L(), s = at(r, Dt(a));
777
+ return /* @__PURE__ */ u(St.Title, {
778
+ ...o,
779
+ ref: s,
780
+ render: e ?? /* @__PURE__ */ u("div", {}),
781
+ className: V(A.title, t)
782
+ });
783
+ }, nr = ({ onKeyDown: t, onClick: e, ref: r, ...o }) => {
784
+ const { type: a, rootType: s, open: i, setOpen: n, setInitialFocusEdge: p, setFocusOnOpen: l, registerTrigger: f } = L(), m = i ? a : s, b = at(r, Dt(f));
785
+ return /* @__PURE__ */ u(X.Trigger, {
786
+ ...o,
787
+ ref: b,
788
+ "aria-haspopup": m === "menu" ? "menu" : "dialog",
789
+ onClick: (d) => {
790
+ d.stopPropagation(), d.preventDefault(), e?.(d);
791
+ },
792
+ onKeyDown: (d) => {
793
+ t?.(d), !(d.defaultPrevented || d.baseUIHandlerPrevented || o.disabled || m === "panel") && (d.key !== "ArrowDown" && d.key !== "ArrowUp" || (d.preventDefault(), l(!0), p(d.key === "ArrowUp" ? "last" : "first"), n(!0)));
794
+ }
795
+ });
796
+ }, ar = Mt, Pr = {
797
+ Root: ar,
798
+ Trigger: nr,
799
+ Content: Ge,
800
+ ActionItem: Ft,
801
+ OptionItem: ze,
802
+ Search: Xe,
803
+ Header: We,
804
+ Title: or,
805
+ Close: Ne,
806
+ Page: $e,
807
+ Back: _e,
808
+ Submenu: er,
809
+ SubmenuTrigger: rr,
810
+ Section: Ze,
811
+ Separator: tr,
812
+ Loading: Ue,
813
+ Empty: He
814
+ };
815
+ export {
816
+ L as i,
817
+ Se as n,
818
+ Re as r,
819
+ Pr as t
820
+ };