twenty-ui 2.51.3 → 2.53.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 (137) hide show
  1. package/dist/{AllIcons-ayl8BCtV.js → AllIcons-B9FfQJ70.js} +1 -1
  2. package/dist/{AllIcons-1tBWXXrE.cjs → AllIcons-HGLkp696.cjs} +1 -1
  3. package/dist/{Button-CU8BS-Yd.js → Button-Dd8cNsn1.js} +2 -2
  4. package/dist/{Button-iVyxlrwO.cjs → Button-Du8T-dOv.cjs} +1 -1
  5. package/dist/Dropdown-COpO_G9D.js +1164 -0
  6. package/dist/Dropdown-DaSktKdb.cjs +1 -0
  7. package/dist/Input-BKRR1xlO.js +26 -0
  8. package/dist/Input-DS19vWhl.cjs +1 -0
  9. package/dist/{ListItem-B-SFWJZb.cjs → ListItem-Br5oDPc-.cjs} +1 -1
  10. package/dist/{ListItem-WLONJMo5.js → ListItem-txrdGXhb.js} +3 -3
  11. package/dist/{Loader-Bb72CUQ9.cjs → Loader-Dau0YQpY.cjs} +1 -1
  12. package/dist/{Loader-DtHWQH8w.js → Loader-U1LuZtJf.js} +1 -1
  13. package/dist/{OverflowingTextWithTooltip-D4eZc-7P.js → OverflowingTextWithTooltip-CAQ-5aUp.js} +35 -34
  14. package/dist/OverflowingTextWithTooltip-CuWHF8_e.cjs +1 -0
  15. package/dist/{Popover-CneCJTvD.cjs → Popover-B-VIhr5g.cjs} +1 -1
  16. package/dist/{Popover-CWeCV7X9.js → Popover-DhFCYRtv.js} +1 -1
  17. package/dist/{ProgressBar-goqxS9NE.cjs → ProgressBar-BG38LPgC.cjs} +1 -1
  18. package/dist/{ProgressBar-8pjpGrmZ.js → ProgressBar-CPm791xc.js} +10 -10
  19. package/dist/Radio-BdbEXBOH.cjs +1 -0
  20. package/dist/Radio-D1PpZdqz.js +176 -0
  21. package/dist/{Shortcut-N8TELGPI.cjs → Shortcut-CbbRd1uM.cjs} +1 -1
  22. package/dist/{Shortcut-Bp9iDdQg.js → Shortcut-YMhkp7f6.js} +1 -1
  23. package/dist/TablerIcons-B6BhOlW_.js +463 -0
  24. package/dist/{Tooltip-08dDawT_.cjs → Tooltip-BXeUFCdb.cjs} +1 -1
  25. package/dist/{Tooltip-C7zc16gI.js → Tooltip-CT9YCDaV.js} +1 -1
  26. package/dist/components/code-editor.cjs +1 -1
  27. package/dist/components/code-editor.mjs +2 -2
  28. package/dist/components/data-display.cjs +1 -1
  29. package/dist/components/data-display.mjs +1 -1
  30. package/dist/components/feedback.cjs +1 -1
  31. package/dist/components/feedback.mjs +1 -1
  32. package/dist/components/input/FormFieldRow/FormFieldRow.d.ts +1 -1
  33. package/dist/components/input/FormFieldRow/types/FormFieldRowProps.d.ts +1 -0
  34. package/dist/components/input/SegmentedControl/SegmentedControl.d.ts +1 -1
  35. package/dist/components/input/SegmentedControl/types/SegmentedControlProps.d.ts +1 -0
  36. package/dist/components/input.cjs +1 -1
  37. package/dist/components/input.mjs +6 -6
  38. package/dist/components/layout.cjs +1 -1
  39. package/dist/components/layout.mjs +1 -1
  40. package/dist/components/navigation/Dropdown/Dropdown.d.ts +1 -1
  41. package/dist/components/navigation/Dropdown/__stories__/DropdownPlacementExample.d.ts +6 -0
  42. package/dist/components/navigation/Dropdown/hooks/useDropdownPlacementOrThrow.d.ts +1 -0
  43. package/dist/components/navigation/Dropdown/internal/DropdownContent.d.ts +1 -1
  44. package/dist/components/navigation/Dropdown/internal/DropdownContentRenderer.d.ts +10 -0
  45. package/dist/components/navigation/Dropdown/internal/DropdownPlacementContext.d.ts +1 -0
  46. package/dist/components/navigation/Dropdown/internal/compareDropdownElementOrder.d.ts +4 -0
  47. package/dist/components/navigation/Dropdown/internal/getDropdownTabNavigation.d.ts +7 -0
  48. package/dist/components/navigation/Dropdown/internal/getDropdownTriggerTabTarget.d.ts +1 -0
  49. package/dist/components/navigation/index.d.ts +1 -0
  50. package/dist/components/navigation.cjs +1 -1
  51. package/dist/components/navigation.mjs +8 -7
  52. package/dist/components/settings.cjs +1 -1
  53. package/dist/components/settings.mjs +1 -1
  54. package/dist/components.cjs +1 -1
  55. package/dist/components.mjs +27 -26
  56. package/dist/{data-display-DUMj_z1t.js → data-display-BhQyFKeZ.js} +54 -54
  57. package/dist/{data-display-DzHM5j7j.cjs → data-display-CZEwUZlM.cjs} +1 -1
  58. package/dist/{data-display-b-9s0RTe.js → data-display-DVEhI2Rt.js} +37 -37
  59. package/dist/{data-display-D_kbXJJd.cjs → data-display-VghHkQY5.cjs} +1 -1
  60. package/dist/{feedback-EaZszoXf.js → feedback-B3Qc_Igx.js} +34 -34
  61. package/dist/{feedback-BzR4ggrP.cjs → feedback-BvCwRZad.cjs} +1 -1
  62. package/dist/icon/components/TablerIcons.d.ts +1 -1
  63. package/dist/icon/index.d.ts +1 -1
  64. package/dist/{icon-ICz2_dVB.js → icon-BlUO7C4w.js} +3 -3
  65. package/dist/{icon-TSBamkxk.cjs → icon-C688lfSq.cjs} +1 -1
  66. package/dist/icon.cjs +1 -1
  67. package/dist/icon.mjs +509 -506
  68. package/dist/index.cjs +1 -1
  69. package/dist/index.mjs +660 -656
  70. package/dist/input-B8_4jnPT.cjs +1 -0
  71. package/dist/{input-DxoXgI5-.js → input-Btg-WsT6.js} +122 -121
  72. package/dist/{input-CuySKbhm.js → input-BwQqV8Wf.js} +730 -727
  73. package/dist/input-CEiXoyRz.cjs +1 -0
  74. package/dist/{layout-B2KvJ900.js → layout-4p7UQD7l.js} +30 -29
  75. package/dist/{layout-B1Iwc9ku.cjs → layout-DHW99Ejj.cjs} +1 -1
  76. package/dist/navigation-CP1g7ng9.cjs +1 -0
  77. package/dist/navigation-DQe6WaUF.js +140 -0
  78. package/dist/primitives/data-display.cjs +1 -1
  79. package/dist/primitives/data-display.mjs +1 -1
  80. package/dist/primitives/feedback.cjs +1 -1
  81. package/dist/primitives/feedback.mjs +2 -2
  82. package/dist/primitives/input/Input/Input.d.ts +1 -1
  83. package/dist/primitives/input/Input/types/InputProps.d.ts +1 -0
  84. package/dist/primitives/input.cjs +1 -1
  85. package/dist/primitives/input.mjs +6 -6
  86. package/dist/primitives/navigation.cjs +1 -1
  87. package/dist/primitives/navigation.mjs +1 -1
  88. package/dist/primitives/surfaces/Card/Card.d.ts +1 -1
  89. package/dist/primitives/surfaces/Card/internal/CardRoot.d.ts +1 -1
  90. package/dist/primitives/surfaces/Card/types/CardRootProps.d.ts +1 -0
  91. package/dist/primitives/surfaces.cjs +1 -1
  92. package/dist/primitives/surfaces.mjs +3 -3
  93. package/dist/primitives/typography.cjs +1 -1
  94. package/dist/primitives/typography.mjs +3 -3
  95. package/dist/primitives.cjs +1 -1
  96. package/dist/primitives.mjs +14 -14
  97. package/dist/{settings-BTFAqYrD.js → settings-D3AWPKyH.js} +1 -1
  98. package/dist/{settings-D_iT1ngl.cjs → settings-RYocb2Xg.cjs} +1 -1
  99. package/dist/style.css +1 -1
  100. package/dist/surfaces-C70biBA8.js +225 -0
  101. package/dist/surfaces-DcGz8LO-.cjs +1 -0
  102. package/dist/testing.cjs +1 -1
  103. package/dist/testing.mjs +1 -1
  104. package/dist/theme/constants/ThemeLight.d.ts +1 -0
  105. package/dist/theme/themeCssVariables.d.ts +1 -0
  106. package/dist/theme/themeTypes.d.ts +1 -0
  107. package/dist/theme-BJRNJNPO.cjs +1 -0
  108. package/dist/{theme-B2EaXhye.js → theme-CuGIQBsJ.js} +7 -4
  109. package/dist/theme-dark.css +1 -0
  110. package/dist/theme-light.css +1 -0
  111. package/dist/theme.cjs +1 -1
  112. package/dist/theme.mjs +1 -1
  113. package/dist/{typography-BwyZEDDi.js → typography-BisXuVpu.js} +2 -2
  114. package/dist/{typography-B05olPwL.cjs → typography-D7VnzZiR.cjs} +1 -1
  115. package/dist/{useIsMobile-D1ImfQnE.js → useIsMobile-CZeJLJJN.js} +1 -1
  116. package/dist/{useIsMobile-Byp9AIq-.cjs → useIsMobile-VmnhfE8g.cjs} +1 -1
  117. package/dist/utilities/internal/formatCssLength.d.ts +1 -0
  118. package/dist/{utilities-xZh8D2gd.cjs → utilities-Bfnz_GAC.cjs} +1 -1
  119. package/dist/{utilities-BKCMZyqZ.js → utilities-D0KcLLtO.js} +2 -2
  120. package/dist/utilities.cjs +1 -1
  121. package/dist/utilities.mjs +2 -2
  122. package/package.json +8 -8
  123. package/dist/Dropdown-D_hFndP5.cjs +0 -1
  124. package/dist/Dropdown-xXsGBv57.js +0 -1056
  125. package/dist/Input-D1sIHUZ5.js +0 -25
  126. package/dist/Input-D69M4UwD.cjs +0 -1
  127. package/dist/OverflowingTextWithTooltip-ClpPsdpP.cjs +0 -1
  128. package/dist/Radio-CpQPRHXa.cjs +0 -1
  129. package/dist/Radio-VTjpEz8M.js +0 -175
  130. package/dist/TablerIcons-B-5Ua_Ne.js +0 -460
  131. package/dist/input-BQABEELu.cjs +0 -1
  132. package/dist/input-ExCbk62Y.cjs +0 -1
  133. package/dist/navigation-DP5Edsq_.cjs +0 -1
  134. package/dist/navigation-DXMjQMPm.js +0 -134
  135. package/dist/surfaces-DtZwsfms.cjs +0 -1
  136. package/dist/surfaces-v0kQLZYO.js +0 -224
  137. package/dist/theme-1XkFz8Qu.cjs +0 -1
@@ -0,0 +1,1164 @@
1
+ import { t as a } from "./isDefined-fMi6eQ4r.js";
2
+ import { t as We } from "./isRenderableSlot-DT_depzM.js";
3
+ import { Ec as ut, Ot as pt, Tt as ft, kt as mt } from "./TablerIcons-B6BhOlW_.js";
4
+ import { t as ne } from "./doNotTranslate-BSVT8Xyd.js";
5
+ import { t as Z } from "./mergeClassNames-ClFMR1v0.js";
6
+ import { t as gt } from "./preventDismissingClickActivation-BQFMKRey.js";
7
+ import { r as ze, t as wt } from "./Button-Dd8cNsn1.js";
8
+ import { t as ht } from "./Tooltip-CT9YCDaV.js";
9
+ import { r as He } from "./OverflowingTextWithTooltip-CAQ-5aUp.js";
10
+ import { t as ve } from "./ListItem.module-B31VK9XZ.js";
11
+ import { t as Ee } from "./ListItem-txrdGXhb.js";
12
+ import { t as oe } from "./Popover-DhFCYRtv.js";
13
+ import { t as vt } from "./Input-BKRR1xlO.js";
14
+ import { useRender as ue } from "@base-ui/react/use-render";
15
+ import { isBoolean as bt, isFunction as yt, isNonEmptyString as ye, isPositiveInteger as $e, isUndefined as be } from "@sniptt/guards";
16
+ import { clsx as U } from "clsx";
17
+ import { Fragment as Tt, createContext as Se, isValidElement as Dt, useCallback as J, useContext as pe, useEffect as It, useId as Te, useLayoutEffect as fe, useRef as Ce, useState as M } from "react";
18
+ import { Fragment as _t, jsx as u, jsxs as ee } from "react/jsx-runtime";
19
+ import { Button as Ye } from "@base-ui/react/button";
20
+ import { useMergedRefs as me } from "@base-ui/utils/useMergedRefs";
21
+ import { Popover as je } from "@base-ui/react/popover";
22
+ import { areArraysEqual as At } from "@base-ui/utils/areArraysEqual";
23
+ import { useDirection as Xe } from "@base-ui/react/direction-provider";
24
+ import { Menu as Pe } from "@base-ui/react/menu";
25
+ var Et = "_content_nig04_1", St = "_inactivePositioner_nig04_13", Ct = "_page_nig04_17", Pt = "_selectionGroup_nig04_24", Ot = "_group_nig04_28", Rt = "_groupLabel_nig04_34", kt = "_separator_nig04_43", Nt = "_section_nig04_50", xt = "_back_nig04_84", Ft = "_backIcon_nig04_96", Lt = "_searchContainer_nig04_100", Bt = "_search_nig04_100", Mt = "_status_nig04_113", Gt = "_header_nig04_117", Kt = "_title_nig04_130", qt = "_itemWithActions_nig04_139", Ut = "_itemWithActionsPrimary_nig04_145", Vt = "_itemActions_nig04_160", Wt = "_itemDecoration_nig04_164", O = {
26
+ content: Et,
27
+ inactivePositioner: St,
28
+ page: Ct,
29
+ selectionGroup: Pt,
30
+ group: Ot,
31
+ groupLabel: Rt,
32
+ separator: kt,
33
+ section: Nt,
34
+ back: xt,
35
+ backIcon: Ft,
36
+ searchContainer: Lt,
37
+ search: Bt,
38
+ status: Mt,
39
+ header: Gt,
40
+ title: Kt,
41
+ itemWithActions: qt,
42
+ itemWithActionsPrimary: Ut,
43
+ itemActions: Vt,
44
+ itemDecoration: Wt
45
+ }, Je = ({ render: e, ref: t, disabled: r, ...o }) => ue({
46
+ render: e,
47
+ ref: t,
48
+ defaultTagName: "button",
49
+ props: {
50
+ ...o,
51
+ disabled: r
52
+ }
53
+ }), Oe = ({ nativeButton: e, renderProps: t }) => e && "disabled" in t && bt(t.disabled) ? t.disabled : void 0, zt = "[data-dropdown-item]", Qe = ({ actions: e, actionsVisibility: t = "hover", color: r = "neutral", selected: o = !1, focused: i = !1, indicator: c = "none", disabled: s = !1, hasSubmenu: d = !1, children: n }) => /* @__PURE__ */ ee("div", {
54
+ className: U(ve.root, O.itemWithActions),
55
+ role: "none",
56
+ "data-actions-visibility": t,
57
+ "data-color": r,
58
+ "data-selected": o ? "" : void 0,
59
+ "data-highlighted": i ? "" : void 0,
60
+ "data-indicator": c,
61
+ "data-disabled": s ? "" : void 0,
62
+ onClick: (l) => {
63
+ l.target === l.currentTarget && l.currentTarget.querySelector(zt)?.click();
64
+ },
65
+ children: [
66
+ n,
67
+ /* @__PURE__ */ u("span", {
68
+ className: U(ve.actions, O.itemActions),
69
+ children: e
70
+ }),
71
+ c === "check" && o && /* @__PURE__ */ u(ft, {
72
+ className: U(ve.checkIndicator, O.itemDecoration),
73
+ "aria-hidden": !0
74
+ }),
75
+ d && /* @__PURE__ */ u(mt, {
76
+ className: U(ve.submenuIcon, O.itemDecoration),
77
+ "aria-hidden": !0
78
+ })
79
+ ]
80
+ }), Re = ({ id: e, render: t }) => Dt(t) ? t.props.id ?? e : e, ke = (e) => e.getAttribute("aria-label") ?? e.textContent ?? "", Ne = ({ firstElement: e, secondElement: t }) => {
81
+ if (e === t) return 0;
82
+ const r = (e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING) !== 0 ? -1 : 1;
83
+ let o = e;
84
+ for (; a(o.parentElement) && !o.parentElement.contains(t); ) o = o.parentElement;
85
+ const i = o.parentElement, c = i?.ownerDocument.defaultView;
86
+ if (!a(i) || !a(c)) return r;
87
+ let s = t;
88
+ for (; a(s.parentElement) && s.parentElement !== i; ) s = s.parentElement;
89
+ if (o === s) return r;
90
+ const d = c.getComputedStyle(i);
91
+ if (!(d.display === "flex" || d.display === "inline-flex")) return r;
92
+ const n = Number(c.getComputedStyle(o).order) - Number(c.getComputedStyle(s).order) || r;
93
+ return d.flexDirection === "column-reverse" ? -n : n;
94
+ }, Ht = "[hidden],[inert]", ae = (e) => !a(e.closest(Ht)), xe = ({ content: e, item: t }) => t.getAttribute("aria-disabled") !== "true" && !t.hasAttribute("disabled") && ae(t) && t.closest("[data-dropdown-content]") === e, ge = (e) => Array.from(e.querySelectorAll("[data-dropdown-item]")).filter((t) => xe({
95
+ content: e,
96
+ item: t
97
+ })).sort((t, r) => Ne({
98
+ firstElement: t,
99
+ secondElement: r
100
+ })), de = Se(void 0), F = () => {
101
+ const e = pe(de);
102
+ if (!a(e)) throw new Error(ne("Dropdown components must be inside Dropdown.Root"));
103
+ return e;
104
+ }, Fe = ({ id: e, disabled: t, isSubmenuTrigger: r = !1 }) => {
105
+ const o = F(), i = r ? o.parentType : o.type, c = r ? o.parentRowFocus : o.rowFocus, s = i !== "panel" && (c?.rowIds?.includes(e) ?? !0);
106
+ return { tabIndex: t || s && c?.tabStopRowId !== e ? -1 : 0 };
107
+ }, Ze = ({ color: e, startIcon: t, endIcon: r, description: o, descriptionPlacement: i, shortcut: c, shortcutJoinLabel: s, hasSubmenu: d, actions: n, actionsVisibility: l, children: p, render: w, disabled: T = !1, nativeButton: g = !a(w), closeOnClick: f = !0, onClick: _, page: R, id: v, ...m }) => {
108
+ const { type: S, closeTree: h, goToPage: b } = F(), k = Te(), N = Re({
109
+ id: v,
110
+ render: w
111
+ }), L = N ?? k, B = Fe({
112
+ id: L,
113
+ disabled: T
114
+ }), C = We(n), P = d ?? a(R), x = /* @__PURE__ */ u(Ye, {
115
+ ...m,
116
+ id: L,
117
+ disabled: T,
118
+ nativeButton: g,
119
+ role: m.role ?? (S === "menu" ? "menuitem" : void 0),
120
+ tabIndex: B.tabIndex,
121
+ "data-dropdown-item": "",
122
+ "data-dropdown-page": R,
123
+ onClick: (I) => {
124
+ if (_?.(I), !I.defaultPrevented) {
125
+ if (a(R)) {
126
+ const A = I.currentTarget.closest("[data-dropdown-content]");
127
+ if (!a(A)) return;
128
+ const G = ge(A).indexOf(I.currentTarget);
129
+ b({
130
+ id: R,
131
+ trigger: {
132
+ id: N,
133
+ index: G,
134
+ page: R,
135
+ label: ke(I.currentTarget)
136
+ }
137
+ });
138
+ return;
139
+ }
140
+ f && h();
141
+ }
142
+ },
143
+ render: (I) => {
144
+ const A = Oe({
145
+ nativeButton: g,
146
+ renderProps: I
147
+ });
148
+ return /* @__PURE__ */ u(Ee, {
149
+ ...I,
150
+ render: /* @__PURE__ */ u(Je, {
151
+ render: w,
152
+ disabled: A
153
+ }),
154
+ className: U(I.className, C && O.itemWithActionsPrimary),
155
+ disabled: T,
156
+ color: e,
157
+ startIcon: t,
158
+ endIcon: r,
159
+ actionsVisibility: l,
160
+ description: o,
161
+ descriptionPlacement: i,
162
+ shortcut: c,
163
+ shortcutJoinLabel: s,
164
+ hasSubmenu: !C && P,
165
+ children: p
166
+ });
167
+ }
168
+ });
169
+ return C ? /* @__PURE__ */ u(Qe, {
170
+ actions: n,
171
+ actionsVisibility: l,
172
+ color: e,
173
+ disabled: T,
174
+ hasSubmenu: P,
175
+ children: x
176
+ }) : x;
177
+ }, $t = ({ children: e = ne("Back"), className: t, onClick: r, ...o }) => {
178
+ const { goBack: i, canGoBack: c } = F();
179
+ return /* @__PURE__ */ u(Ze, {
180
+ ...o,
181
+ className: U(O.back, t),
182
+ "data-dropdown-back": "",
183
+ disabled: o.disabled || !c,
184
+ startIcon: /* @__PURE__ */ u(pt, { className: O.backIcon }),
185
+ closeOnClick: !1,
186
+ onClick: (s) => {
187
+ r?.(s), !s.defaultPrevented && i();
188
+ },
189
+ children: e
190
+ });
191
+ }, Yt = "_button_1qwl0_1", jt = "_tooltipAnchor_1qwl0_29", Xt = "_icon_1qwl0_33", Ie = {
192
+ button: Yt,
193
+ tooltipAnchor: jt,
194
+ icon: Xt
195
+ }, Jt = ({ children: e, size: t, shape: r = "square", className: o, tooltip: i, tooltipPlace: c = "bottom", tooltipDelay: s = 1e3, tooltipOffset: d = 5, disabled: n, loading: l, ...p }) => {
196
+ const w = pe(ze), T = t ?? w?.size ?? "md", g = ye(i), f = n || l, _ = /* @__PURE__ */ u(wt, {
197
+ ...p,
198
+ size: T === "xs" ? "sm" : T,
199
+ "data-icon-size": T,
200
+ "data-shape": r,
201
+ disabled: n,
202
+ loading: l,
203
+ startIcon: /* @__PURE__ */ u("span", {
204
+ className: Ie.icon,
205
+ children: e
206
+ }),
207
+ className: Z(Ie.button, o)
208
+ });
209
+ return g ? /* @__PURE__ */ u(ht, {
210
+ content: i,
211
+ delay: s,
212
+ side: c,
213
+ sideOffset: d,
214
+ children: f ? /* @__PURE__ */ u("span", {
215
+ className: Ie.tooltipAnchor,
216
+ children: _
217
+ }) : _
218
+ }) : _;
219
+ }, Qt = "_button_prhtf_1", Zt = { button: Qt }, er = ({ className: e, emphasis: t = "standard", size: r, variant: o, ...i }) => {
220
+ const c = pe(ze), s = r ?? c?.size ?? "sm", d = o ?? c?.variant ?? "ghost";
221
+ return /* @__PURE__ */ u(Jt, {
222
+ ...i,
223
+ size: s,
224
+ variant: d,
225
+ "data-emphasis": t,
226
+ className: Z(Zt.button, e)
227
+ });
228
+ }, tr = ({ render: e, children: t, "aria-label": r, ...o }) => /* @__PURE__ */ u(je.Close, {
229
+ ...o,
230
+ "aria-label": r,
231
+ render: e ?? /* @__PURE__ */ u(er, {
232
+ size: "sm",
233
+ "aria-label": r,
234
+ children: t ?? /* @__PURE__ */ u(ut, {})
235
+ }),
236
+ children: a(e) ? t : void 0
237
+ }), rr = Se(void 0), ce = () => null, or = {
238
+ open: ce,
239
+ side: ce,
240
+ align: ce,
241
+ instant: ce,
242
+ transitionStatus: ce
243
+ }, nr = ({ props: e, state: t, render: r }) => {
244
+ const o = ue({
245
+ defaultTagName: "div",
246
+ props: { ...e },
247
+ state: { ...t },
248
+ stateAttributesMapping: or,
249
+ render: r
250
+ });
251
+ return /* @__PURE__ */ u(rr.Provider, {
252
+ value: {
253
+ side: t.side,
254
+ align: t.align
255
+ },
256
+ children: o
257
+ });
258
+ }, De = (e) => Array.from(e.querySelectorAll("[data-dropdown-search]:not(:disabled)")).find((t) => t.closest("[data-dropdown-content]") === e && ae(t)) ?? null, Le = ({ content: e, target: t, edge: r = "first", type: o }) => {
259
+ const i = a(t?.id) ? e.ownerDocument.getElementById(t.id) : null;
260
+ if (a(i) && xe({
261
+ content: e,
262
+ item: i
263
+ })) return i;
264
+ const c = ge(e), s = a(t) ? c.filter((f) => f.dataset.dropdownPage === t.page) : [], [d] = s;
265
+ if (s.length === 1 && a(d)) return d;
266
+ const n = ye(t?.label) ? s.filter((f) => ke(f) === t?.label) : [], [l] = n;
267
+ if (n.length === 1 && a(l)) return l;
268
+ const p = a(t) ? c[t.index] : void 0;
269
+ if (a(p)) return p;
270
+ const w = Array.from(e.querySelectorAll('input:not(:disabled):not([type="hidden"]),button:not(:disabled),textarea:not(:disabled),select:not(:disabled),a[href],[tabindex="0"]')).find(ae), T = Array.from(e.querySelectorAll("[data-dropdown-page-type]")).find((f) => f.closest("[data-dropdown-content]") === e && ae(f))?.dataset.dropdownPageType ?? o ?? e.dataset.type;
271
+ if (T === "panel") return w ?? e;
272
+ const g = De(e);
273
+ return a(g) ? g : r === "last" ? c[c.length - 1] ?? w ?? e : (T === "picker" ? c.find((f) => f.hasAttribute("data-dropdown-option-item") && (f.getAttribute("aria-selected") === "true" || f.getAttribute("aria-pressed") === "true" || f.getAttribute("aria-checked") === "true" || f.getAttribute("aria-current") === "true")) : void 0) ?? c.find((f) => !f.hasAttribute("data-dropdown-back")) ?? c[0] ?? w ?? e;
274
+ }, ar = ({ contentRef: e }) => {
275
+ const { open: t, pageId: r, pageFocusRequest: o, setPageFocusRequest: i } = F();
276
+ return fe(() => {
277
+ a(o) && (i(void 0), !(!t || o.pageId !== r || !a(e.current)) && Le({
278
+ content: e.current,
279
+ target: o.target
280
+ }).focus());
281
+ }, [
282
+ e,
283
+ t,
284
+ r,
285
+ o,
286
+ i
287
+ ]), null;
288
+ }, et = ({ content: e, item: t }) => t.hasAttribute("data-dropdown-item") && xe({
289
+ content: e,
290
+ item: t
291
+ }) && (!t.hasAttribute("data-dropdown-back") || !a(De(e))), tt = (e) => ge(e).filter((t) => et({
292
+ content: e,
293
+ item: t
294
+ })), le = (e) => {
295
+ if (e.dataset.type === "panel") return;
296
+ const t = De(e);
297
+ if (!(!a(t) || t !== e.ownerDocument.activeElement || !ye(t.value.trim())))
298
+ return ge(e).find((r) => r.hasAttribute("data-dropdown-option-item"));
299
+ }, ir = ({ content: e }) => {
300
+ const { setRowIds: t, setSearchTargetId: r } = F();
301
+ return fe(() => {
302
+ if (!a(e)) return;
303
+ const o = () => {
304
+ const c = tt(e).map((s) => s.id);
305
+ t((s) => a(s) && At(s, c) ? s : c), r(le(e)?.id);
306
+ };
307
+ o();
308
+ const i = new MutationObserver(o);
309
+ return i.observe(e, {
310
+ childList: !0,
311
+ subtree: !0,
312
+ attributes: !0,
313
+ attributeFilter: [
314
+ "disabled",
315
+ "aria-disabled",
316
+ "id",
317
+ "hidden",
318
+ "inert",
319
+ "class",
320
+ "style"
321
+ ]
322
+ }), () => {
323
+ i.disconnect(), t(void 0), r(void 0);
324
+ };
325
+ }, [
326
+ e,
327
+ t,
328
+ r
329
+ ]), null;
330
+ }, sr = (e) => (e.ctrlKey || e.metaKey) && !e.defaultPrevented, _e = /* @__PURE__ */ new WeakMap(), rt = {
331
+ activate: ({ item: e, event: t }) => {
332
+ _e.set(e, t);
333
+ try {
334
+ e.click();
335
+ } finally {
336
+ _e.delete(e);
337
+ }
338
+ },
339
+ getEvent: ({ item: e, event: t }) => _e.get(e) ?? t
340
+ }, Ue = (e) => Array.from(e.ownerDocument.querySelectorAll("[aria-controls]")).find((t) => t.getAttribute("aria-controls") === e.id && ae(t)), cr = 'a[href],button,input:not([type="hidden"]),select,textarea,[tabindex]', ot = ({ content: e, target: t, shiftKey: r }) => {
341
+ const o = Array.from(e.querySelectorAll(cr)).filter((d) => Number(d.getAttribute("data-tabindex") ?? d.tabIndex) >= 0 && !d.matches(':disabled,[aria-disabled="true"]') && ae(d) && d.closest("[data-dropdown-content]") === e), i = [...o].sort((d, n) => Ne({
342
+ firstElement: d,
343
+ secondElement: n
344
+ })), c = o.some((d, n) => d !== i[n]), s = a(t) ? i.indexOf(t) : -1;
345
+ if (!(!c || a(t) && s < 0))
346
+ return { target: i[s + (r ? -1 : 1)] };
347
+ }, dr = ({ rowCells: e, column: t, isEnabledCell: r }) => {
348
+ const o = Math.min(t, e.length - 1);
349
+ for (let i = 0; i < e.length; i++) {
350
+ const c = [e[o - i], e[o + i]].find(r);
351
+ if (a(c)) return c;
352
+ }
353
+ }, nt = ({ key: e, items: t, currentItem: r, search: o, isRightToLeft: i }) => {
354
+ const c = r?.closest("[data-dropdown-columns]"), s = Number(c?.dataset.dropdownColumns), d = ne([
355
+ "ArrowUp",
356
+ "ArrowDown",
357
+ "ArrowLeft",
358
+ "ArrowRight"
359
+ ]).includes(e);
360
+ if (!a(c) || !a(r) || !d || !$e(s)) return;
361
+ const n = Array.from(c.children).filter((m) => m instanceof HTMLElement && !m.hasAttribute("data-dropdown-section-label")), l = n.indexOf(r);
362
+ if (l < 0) return;
363
+ const p = Math.floor(l / s), w = l % s, T = e === "ArrowUp" || e === "ArrowDown", g = ne(i ? "ArrowLeft" : "ArrowRight"), f = e === "ArrowDown" || e === g ? 1 : -1, _ = Math.ceil(n.length / s), R = new Set(t), v = (m) => a(m) && R.has(m);
364
+ if (T) {
365
+ for (let h = p + f; h >= 0 && h < _; h += f) {
366
+ const b = n[Math.min(h * s + w, n.length - 1)];
367
+ if (v(b)) return b;
368
+ }
369
+ for (let h = p + f; h >= 0 && h < _; h += f) {
370
+ const b = dr({
371
+ rowCells: n.slice(h * s, (h + 1) * s),
372
+ column: w,
373
+ isEnabledCell: v
374
+ });
375
+ if (a(b)) return b;
376
+ }
377
+ const m = n.filter(v), S = f < 0 ? m[0] : m[m.length - 1];
378
+ return (a(S) ? t[t.indexOf(S) + f] : void 0) ?? (f < 0 ? o : void 0) ?? r;
379
+ }
380
+ for (let m = w + f; m >= 0 && m < s; m += f) {
381
+ const S = n[p * s + m];
382
+ if (v(S)) return S;
383
+ }
384
+ return r;
385
+ }, lr = ({ key: e, items: t, currentIndex: r, search: o, isSearch: i, isRightToLeft: c = !1 }) => {
386
+ const s = nt({
387
+ key: e,
388
+ items: t,
389
+ currentItem: t[r],
390
+ search: o,
391
+ isRightToLeft: c
392
+ });
393
+ if (a(s)) return s;
394
+ const d = t.length - 1, n = t[d], l = a(o) && a(n) && Ne({
395
+ firstElement: n,
396
+ secondElement: o
397
+ }) < 0;
398
+ if (e === "ArrowDown" && r === d && l) return o ?? void 0;
399
+ if (e === "ArrowDown") return t[r === d ? 0 : r + 1];
400
+ if (e === "ArrowUp" && r === 0 && a(o) && !l) return o;
401
+ if (e === "ArrowUp") return t[r <= 0 ? d : r - 1];
402
+ if (!i && e === "Home") return t[0];
403
+ if (!i && e === "End") return t[d];
404
+ }, ur = 500, pr = 229, fr = () => {
405
+ const { type: e, isSubmenu: t, setOpen: r, closeTree: o, tabForwardOutOfTree: i } = F(), c = Xe(), [s, d] = M({
406
+ text: "",
407
+ timestamp: 0
408
+ });
409
+ return (n) => {
410
+ if (n.defaultPrevented || n.nativeEvent.isComposing || n.nativeEvent.keyCode === pr) return;
411
+ const l = n.currentTarget, p = n.target;
412
+ if (!(p instanceof HTMLElement) || p.closest("[data-dropdown-content]") !== l) return;
413
+ const w = p.matches('input,textarea,select,[contenteditable="true"]'), T = c === "rtl", g = ne(T ? "ArrowRight" : "ArrowLeft"), f = t && !w && n.key === g, _ = f && e !== "panel" ? nt({
414
+ key: n.key,
415
+ items: ge(l),
416
+ currentItem: p,
417
+ search: null,
418
+ isRightToLeft: T
419
+ }) : void 0, R = a(_) && _ !== p;
420
+ if (t && (n.key === "Escape" || f && !R)) {
421
+ n.preventDefault(), n.stopPropagation(), Ue(l)?.focus(), r(!1);
422
+ return;
423
+ }
424
+ if (e === "panel") return;
425
+ const v = e === "picker" && n.key === "Tab" ? ot({
426
+ content: l,
427
+ target: p,
428
+ shiftKey: n.shiftKey
429
+ }) : void 0;
430
+ if (a(v) && n.preventDefault(), a(v?.target)) {
431
+ v.target.focus();
432
+ return;
433
+ }
434
+ const m = a(v) && n.shiftKey ? Ue(l) : void 0;
435
+ if (a(m)) {
436
+ m.focus();
437
+ return;
438
+ }
439
+ if (a(v) && n.shiftKey) {
440
+ o(n.nativeEvent);
441
+ return;
442
+ }
443
+ if (a(v)) {
444
+ i({
445
+ ownerDocument: l.ownerDocument,
446
+ tabOutEvent: n.nativeEvent
447
+ });
448
+ return;
449
+ }
450
+ if (e === "menu" && n.key === "Tab" && n.shiftKey) {
451
+ n.preventDefault(), o(n.nativeEvent);
452
+ return;
453
+ }
454
+ if (e === "menu" && n.key === "Tab" && t) {
455
+ n.preventDefault(), i({
456
+ ownerDocument: l.ownerDocument,
457
+ tabOutEvent: n.nativeEvent
458
+ });
459
+ return;
460
+ }
461
+ const S = De(l), h = p === S;
462
+ if (w && !h) return;
463
+ const b = tt(l), k = h && n.key === "Enter" ? le(l) : void 0;
464
+ if (a(k)) {
465
+ n.preventDefault(), rt.activate({
466
+ item: k,
467
+ event: n.nativeEvent
468
+ });
469
+ return;
470
+ }
471
+ const N = b.indexOf(p), L = lr({
472
+ key: n.key,
473
+ items: b,
474
+ currentIndex: N,
475
+ search: S,
476
+ isSearch: h,
477
+ isRightToLeft: T
478
+ });
479
+ if (a(L)) {
480
+ n.preventDefault(), L.focus();
481
+ return;
482
+ }
483
+ if (w || n.key.length !== 1 || n.key === " " || n.altKey || n.ctrlKey || n.metaKey) return;
484
+ const B = Date.now(), C = B - s.timestamp > ur ? n.key : s.text + n.key;
485
+ d({
486
+ text: C,
487
+ timestamp: B
488
+ });
489
+ const P = ([...C].every((I) => I === C[0]) ? n.key : C).toLocaleLowerCase(), x = [...b.slice(N + 1), ...b.slice(0, N + 1)].find((I) => ke(I).trim().toLocaleLowerCase().startsWith(P));
490
+ a(x) && (n.preventDefault(), x.focus());
491
+ };
492
+ }, mr = ({ side: e, align: t = "start", sideOffset: r = 0, alignOffset: o, anchor: i, collisionPadding: c, container: s, keepMounted: d, width: n = 200, className: l, style: p, render: w, children: T, initialFocus: g, finalFocus: f, onKeyDown: _, onFocus: R, onInput: v, onClick: m, onMouseDown: S, onPointerDown: h, "aria-label": b, "aria-labelledby": k, ref: N, ...L }) => {
493
+ const B = F(), { type: C, isPageActive: P, sessionId: x, isSubmenu: I, rowFocus: A, initialFocusEdge: G, focusOnOpen: K, triggerId: H, titleId: te, setSearchTargetId: Q } = B, $ = Ce(null), [ie, Y] = M(null), se = me($, N, Y), z = fr(), re = a(b) ? void 0 : te ?? H;
494
+ return /* @__PURE__ */ ee(_t, { children: [
495
+ /* @__PURE__ */ u(oe.Portal, {
496
+ container: s,
497
+ keepMounted: d,
498
+ children: /* @__PURE__ */ u(oe.Positioner, {
499
+ className: P ? void 0 : O.inactivePositioner,
500
+ inert: !P || void 0,
501
+ side: e ?? (I ? "inline-end" : "bottom"),
502
+ align: t,
503
+ sideOffset: r,
504
+ alignOffset: o,
505
+ anchor: i,
506
+ collisionPadding: c,
507
+ children: /* @__PURE__ */ u(oe.Popup, {
508
+ ...L,
509
+ ref: se,
510
+ render: (y, V) => /* @__PURE__ */ u(nr, {
511
+ props: y,
512
+ state: V,
513
+ render: w
514
+ }),
515
+ role: C === "menu" ? "menu" : "dialog",
516
+ "aria-label": b,
517
+ "aria-labelledby": k ?? re,
518
+ "data-dropdown-content": "",
519
+ "data-type": C,
520
+ className: Z(O.content, l),
521
+ style: (y) => ({
522
+ width: n,
523
+ ...yt(p) ? p(y) : p
524
+ }),
525
+ initialFocus: g ?? (() => K ? a($.current) ? Le({
526
+ content: $.current,
527
+ edge: G,
528
+ type: C
529
+ }) : !0 : !1),
530
+ finalFocus: P ? f : !1,
531
+ onKeyDown: (y) => {
532
+ _?.(y), z(y), sr(y) || y.stopPropagation();
533
+ },
534
+ onFocus: (y) => {
535
+ R?.(y), Q(le(y.currentTarget)?.id);
536
+ const { target: V } = y;
537
+ V instanceof HTMLElement && et({
538
+ content: y.currentTarget,
539
+ item: V
540
+ }) && A.focusRow(V.id);
541
+ },
542
+ onInput: (y) => {
543
+ v?.(y), Q(le(y.currentTarget)?.id);
544
+ },
545
+ onClick: (y) => {
546
+ y.stopPropagation(), m?.(y);
547
+ },
548
+ onMouseDown: (y) => {
549
+ y.stopPropagation(), S?.(y);
550
+ },
551
+ onPointerDown: (y) => {
552
+ y.stopPropagation(), h?.(y);
553
+ },
554
+ children: /* @__PURE__ */ u(de.Provider, {
555
+ value: {
556
+ ...B,
557
+ isInsideContent: !0
558
+ },
559
+ children: /* @__PURE__ */ u(Tt, { children: T }, x)
560
+ })
561
+ })
562
+ })
563
+ }),
564
+ /* @__PURE__ */ u(ar, { contentRef: $ }),
565
+ /* @__PURE__ */ u(ir, { content: ie })
566
+ ] });
567
+ }, gr = ({ color: e, className: t, ...r }) => /* @__PURE__ */ u(He, {
568
+ ...r,
569
+ render: /* @__PURE__ */ u("div", { color: e }),
570
+ size: "sm",
571
+ color: "secondary",
572
+ role: "status",
573
+ "aria-live": "polite",
574
+ className: U(O.status, t)
575
+ }), wr = ({ render: e, ref: t, className: r, ...o }) => ue({
576
+ render: e,
577
+ ref: t,
578
+ props: {
579
+ ...o,
580
+ className: U(O.header, r)
581
+ }
582
+ }), hr = ({ color: e, className: t, ...r }) => /* @__PURE__ */ u(He, {
583
+ ...r,
584
+ render: /* @__PURE__ */ u("div", { color: e }),
585
+ size: "sm",
586
+ color: "secondary",
587
+ role: "status",
588
+ "aria-live": "polite",
589
+ "aria-busy": "true",
590
+ className: U(O.status, t)
591
+ }), vr = ({ render: e, ref: t, state: r, ...o }) => ue({
592
+ render: e,
593
+ ref: t,
594
+ state: r,
595
+ defaultTagName: "button",
596
+ props: o
597
+ }), Be = Se(void 0), br = ({ event: e, trigger: t }) => {
598
+ let r = !1;
599
+ return {
600
+ reason: "item-press",
601
+ event: e,
602
+ trigger: t,
603
+ cancel: () => {
604
+ r = !0;
605
+ },
606
+ get isCanceled() {
607
+ return r;
608
+ }
609
+ };
610
+ }, yr = ({ type: e, hasSelectionState: t, hasSelectionOwner: r, multiple: o, role: i }) => e === "menu" && t ? o ? "menuitemcheckbox" : "menuitemradio" : e === "menu" ? "menuitem" : e === "picker" && r ? "option" : i, Tr = ({ selection: e, value: t, standaloneSelected: r }) => !a(e) || !a(t) ? r : e.multiple ? e.value.includes(t) : e.value === t, Dr = ({ value: e, selected: t, indicator: r, onSelect: o, closeOnSelect: i, color: c, startIcon: s, endIcon: d, description: n, descriptionPlacement: l, shortcut: p, shortcutJoinLabel: w, hasSubmenu: T, actions: g, actionsVisibility: f, children: _, render: R, disabled: v = !1, nativeButton: m = !a(R), onClick: S, id: h, ...b }) => {
611
+ const { type: k, multiple: N, closeTree: L, searchTargetId: B } = F(), C = pe(Be), P = a(C) && a(e), x = P ? C.multiple : N, I = Tr({
612
+ selection: C,
613
+ value: e,
614
+ standaloneSelected: t
615
+ }), A = k === "menu", G = k === "picker" && P, K = a(I), H = !A && !G && (m || b.role === "button"), te = !A && !G && !H && K && I, Q = yr({
616
+ type: k,
617
+ hasSelectionState: K,
618
+ hasSelectionOwner: P,
619
+ multiple: x,
620
+ role: b.role
621
+ }), $ = x ? "checkbox" : "check", ie = Te(), Y = Re({
622
+ id: h,
623
+ render: R
624
+ }) ?? ie, se = Fe({
625
+ id: Y,
626
+ disabled: v
627
+ }), z = We(g), re = B === Y, y = r ?? (K ? $ : "none"), V = z && y === "check", we = /* @__PURE__ */ u(Ye, {
628
+ ...b,
629
+ id: Y,
630
+ disabled: v,
631
+ nativeButton: m,
632
+ role: Q,
633
+ "aria-checked": A && K ? I : void 0,
634
+ "aria-selected": G ? I : void 0,
635
+ "aria-pressed": H && K ? I : void 0,
636
+ "aria-current": te ? "true" : void 0,
637
+ tabIndex: se.tabIndex,
638
+ "data-dropdown-item": "",
639
+ "data-dropdown-option-item": "",
640
+ onClick: (q) => {
641
+ if (S?.(q), q.defaultPrevented) return;
642
+ const j = br({
643
+ event: rt.getEvent({
644
+ item: q.currentTarget,
645
+ event: q.nativeEvent
646
+ }),
647
+ trigger: q.currentTarget
648
+ });
649
+ o?.(j), !(j.isCanceled || q.defaultPrevented) && (P && C.select({
650
+ value: e,
651
+ eventDetails: j
652
+ }), !(j.isCanceled || q.defaultPrevented) && (i ?? (P ? C.closeOnSelect : !x)) && L());
653
+ },
654
+ render: (q) => {
655
+ const j = Oe({
656
+ nativeButton: m,
657
+ renderProps: q
658
+ });
659
+ return /* @__PURE__ */ u(Ee, {
660
+ ...q,
661
+ render: /* @__PURE__ */ u(vr, {
662
+ render: R,
663
+ disabled: j,
664
+ state: {
665
+ selected: I ?? !1,
666
+ multiple: x,
667
+ disabled: v
668
+ }
669
+ }),
670
+ className: U(q.className, z && O.itemWithActionsPrimary),
671
+ disabled: v,
672
+ selected: I,
673
+ focused: re,
674
+ indicator: V ? "none" : y,
675
+ color: c,
676
+ startIcon: s,
677
+ endIcon: d,
678
+ actionsVisibility: f,
679
+ description: n,
680
+ descriptionPlacement: l,
681
+ shortcut: p,
682
+ shortcutJoinLabel: w,
683
+ hasSubmenu: !z && T,
684
+ children: _
685
+ });
686
+ }
687
+ });
688
+ return z ? /* @__PURE__ */ u(Qe, {
689
+ actions: g,
690
+ actionsVisibility: f,
691
+ color: c,
692
+ selected: I,
693
+ focused: re,
694
+ indicator: y,
695
+ disabled: v,
696
+ hasSubmenu: T,
697
+ children: we
698
+ }) : we;
699
+ }, Ir = ({ id: e, type: t, isActive: r }) => {
700
+ const { registerPage: o } = F();
701
+ return fe(() => {
702
+ r && o({
703
+ id: e,
704
+ type: t
705
+ });
706
+ }, [
707
+ e,
708
+ t,
709
+ r,
710
+ o
711
+ ]), null;
712
+ }, _r = ({ id: e, type: t, children: r }) => {
713
+ const o = F(), { registerTitle: i } = o, [c, s] = M(), d = o.isPageActive && o.pageId === e, n = d && o.open, l = J((p) => d ? i(p) : () => {
714
+ }, [d, i]);
715
+ return n && c !== e && s(e), c !== e && !n ? null : /* @__PURE__ */ ee(de.Provider, {
716
+ value: {
717
+ ...o,
718
+ type: t ?? o.rootType,
719
+ isPageActive: d,
720
+ registerTitle: l
721
+ },
722
+ children: [/* @__PURE__ */ u("div", {
723
+ hidden: !d,
724
+ inert: !d,
725
+ className: O.page,
726
+ "data-dropdown-page-type": t ?? o.rootType,
727
+ children: r
728
+ }), /* @__PURE__ */ u(Ir, {
729
+ id: e,
730
+ type: t,
731
+ isActive: d
732
+ })]
733
+ });
734
+ }, Ar = ({ open: e, registerOpenNestedRoot: t }) => (It(() => {
735
+ if (e)
736
+ return t?.();
737
+ }, [e, t]), null), Er = ({ rowIds: e = [], focusedRowId: t }) => a(t) && e.includes(t) ? t : e[0], Sr = "data-base-ui-focus-guard", Cr = (e) => {
738
+ const t = e?.nextElementSibling;
739
+ if (!(!(t instanceof HTMLElement) || !t.hasAttribute(Sr)))
740
+ return t;
741
+ }, Pr = (e) => e instanceof FocusEvent ? e.type === "focusout" && e.relatedTarget instanceof Element ? e.relatedTarget : null : e.target instanceof Element ? e.target : null, Ae = ({ onDismiss: e, event: t, target: r = Pr(t) }) => {
742
+ if (!a(e)) return !1;
743
+ let o = !1;
744
+ return e({
745
+ target: r,
746
+ type: t.type,
747
+ preventDefault: () => {
748
+ o = !0;
749
+ }
750
+ }), o;
751
+ }, Ve = () => {
752
+ const [e, t] = M();
753
+ return [e, J((r) => (t(r), () => t((o) => o === r ? void 0 : o)), [])];
754
+ }, Or = () => {
755
+ const [e, t] = M(() => /* @__PURE__ */ new Map());
756
+ return {
757
+ selections: e,
758
+ initializeSelection: J(({ id: r, state: o }) => {
759
+ t((i) => i.get(r)?.multiple === o.multiple ? i : new Map(i).set(r, o));
760
+ }, []),
761
+ updateSelection: J(({ id: r, state: o }) => {
762
+ t((i) => new Map(i).set(r, o));
763
+ }, [])
764
+ };
765
+ }, at = ({ children: e, type: t, open: r, defaultOpen: o = !1, onOpenChange: i, onEscapeKeyDown: c, onInteractOutside: s, multiple: d = !1, defaultPage: n = "root", isSubmenu: l = !1 }) => {
766
+ const p = pe(de), w = Or(), { selections: T, initializeSelection: g, updateSelection: f } = l && a(p) ? p : w, _ = Ce(0), R = J(() => (_.current += 1, () => {
767
+ _.current -= 1;
768
+ }), []), [v, m] = M(o), S = !a(p) || p.isPageActive && (!p.isInsideContent || p.open), h = S && (r ?? v), [b, k] = M(h), [N, L] = M(0), [{ history: B, focusRequest: C }, P] = M({ history: [{ id: n }] }), x = J((D) => {
769
+ P((E) => E.focusRequest === D ? E : {
770
+ ...E,
771
+ focusRequest: D
772
+ });
773
+ }, []), [I, A] = M(), [G, K] = M(), [H, te] = M(), Q = B[B.length - 1], $ = Q?.id, [ie, Y] = M("first"), [se, z] = M(!0), [re, y] = M(), [V, we] = Ve(), [q, j] = Ve(), Ge = h && !b, Ke = !h && b;
774
+ !S && v && !a(r) && m(!1), (Ge || Ke) && k(h), Ge && (L(N + 1), P({ history: [{ id: n }] }), A(void 0), te(void 0), K(void 0)), Ke && (Y("first"), z(!0), y(void 0));
775
+ const he = (D) => {
776
+ a(r) || m(D), i?.(D);
777
+ }, qe = (D) => {
778
+ a(D) && Ae({
779
+ onDismiss: s,
780
+ event: D,
781
+ target: null
782
+ }) || (he(!1), l && p?.closeTree(D));
783
+ }, it = ({ ownerDocument: D, tabOutEvent: E }) => {
784
+ const W = a(V) ? D.getElementById(V) : null;
785
+ if (l && a(p)) {
786
+ he(!1), W?.focus(), p.tabForwardOutOfTree({
787
+ ownerDocument: D,
788
+ tabOutEvent: E
789
+ });
790
+ return;
791
+ }
792
+ const X = Cr(W);
793
+ if (!a(X)) {
794
+ qe(E);
795
+ return;
796
+ }
797
+ X.focus();
798
+ }, st = ({ id: D, trigger: E }) => {
799
+ P((W) => ({
800
+ history: [...W.history, {
801
+ id: D,
802
+ trigger: E
803
+ }],
804
+ focusRequest: { pageId: D }
805
+ }));
806
+ }, ct = () => {
807
+ P((D) => {
808
+ if (D.history[D.history.length - 1] !== Q) return D;
809
+ const E = D.history[D.history.length - 2];
810
+ return a(E) ? {
811
+ history: D.history.slice(0, -1),
812
+ focusRequest: {
813
+ pageId: E.id,
814
+ target: D.history[D.history.length - 1]?.trigger
815
+ }
816
+ } : D;
817
+ });
818
+ }, dt = J(({ id: D, type: E }) => {
819
+ if (!h) return;
820
+ const W = E ?? t;
821
+ A((X) => X?.id === D && X.type === W ? X : {
822
+ id: D,
823
+ type: W
824
+ });
825
+ }, [h, t]);
826
+ return /* @__PURE__ */ u(oe.Root, {
827
+ open: h,
828
+ onOpenChange: (D, E) => {
829
+ if (!S || !D && !h) {
830
+ E.cancel();
831
+ return;
832
+ }
833
+ const W = E.reason === "outside-press" || E.reason === "focus-out";
834
+ if (W && _.current > 0) {
835
+ E.cancel();
836
+ return;
837
+ }
838
+ const X = E.reason === "escape-key" && Ae({
839
+ onDismiss: c,
840
+ event: E.event
841
+ }), lt = W && Ae({
842
+ onDismiss: s,
843
+ event: E.event
844
+ });
845
+ if (X || lt) {
846
+ E.cancel();
847
+ return;
848
+ }
849
+ W && gt(E.event), z(E.reason !== "trigger-hover"), he(D);
850
+ },
851
+ children: /* @__PURE__ */ ee(de.Provider, {
852
+ value: {
853
+ type: a(I) && I.id === $ ? I.type : t,
854
+ rootType: t,
855
+ open: h,
856
+ isPageActive: S,
857
+ isInsideContent: !1,
858
+ sessionId: N,
859
+ multiple: d,
860
+ selections: T,
861
+ initializeSelection: g,
862
+ updateSelection: f,
863
+ isSubmenu: l,
864
+ parentType: p?.type,
865
+ rowFocus: {
866
+ rowIds: G,
867
+ tabStopRowId: Er({
868
+ rowIds: G,
869
+ focusedRowId: H
870
+ }),
871
+ focusRow: te
872
+ },
873
+ parentRowFocus: p?.rowFocus,
874
+ setRowIds: K,
875
+ pageId: $,
876
+ pageFocusRequest: C,
877
+ setPageFocusRequest: x,
878
+ canGoBack: B.length > 1,
879
+ initialFocusEdge: ie,
880
+ setInitialFocusEdge: Y,
881
+ focusOnOpen: se,
882
+ setFocusOnOpen: z,
883
+ setOpen: he,
884
+ closeTree: qe,
885
+ tabForwardOutOfTree: it,
886
+ goToPage: st,
887
+ goBack: ct,
888
+ registerPage: dt,
889
+ registerOpenNestedRoot: R,
890
+ searchTargetId: re,
891
+ setSearchTargetId: y,
892
+ triggerId: V,
893
+ registerTrigger: we,
894
+ titleId: q,
895
+ registerTitle: j
896
+ },
897
+ children: [/* @__PURE__ */ u(Ar, {
898
+ open: h,
899
+ registerOpenNestedRoot: l ? void 0 : p?.registerOpenNestedRoot
900
+ }), /* @__PURE__ */ u(Be.Provider, {
901
+ value: void 0,
902
+ children: e
903
+ })]
904
+ })
905
+ });
906
+ }, Rr = ({ searchRef: e, value: t }) => {
907
+ const { setSearchTargetId: r } = F();
908
+ return fe(() => {
909
+ const o = e.current?.closest("[data-dropdown-content]");
910
+ a(o) && r(le(o)?.id);
911
+ }, [
912
+ e,
913
+ t,
914
+ r
915
+ ]), null;
916
+ }, kr = ({ onValueChange: e, onBlur: t, className: r, hasFocusRing: o = !1, value: i, ref: c, ...s }) => {
917
+ const { searchTargetId: d, setSearchTargetId: n } = F(), l = Ce(null), p = me(l, c);
918
+ return /* @__PURE__ */ ee("div", {
919
+ className: O.searchContainer,
920
+ children: [/* @__PURE__ */ u(vt, {
921
+ type: "search",
922
+ autoComplete: "off",
923
+ "aria-activedescendant": d,
924
+ ...s,
925
+ ref: p,
926
+ value: i,
927
+ "data-dropdown-search": "",
928
+ variant: "plain",
929
+ hasFocusRing: o,
930
+ className: Z(O.search, r),
931
+ onValueChange: (w) => e?.(w),
932
+ onBlur: (w) => {
933
+ n(void 0), t?.(w);
934
+ }
935
+ }), /* @__PURE__ */ u(Rr, {
936
+ searchRef: l,
937
+ value: i
938
+ })]
939
+ });
940
+ }, Nr = ({ className: e, ...t }) => /* @__PURE__ */ u(Pe.Group, {
941
+ ...t,
942
+ className: Z(O.group, e)
943
+ }), xr = ({ className: e, ...t }) => /* @__PURE__ */ u(Pe.GroupLabel, {
944
+ ...t,
945
+ className: Z(O.groupLabel, e)
946
+ }), Fr = ({ label: e, scrollable: t, columns: r, style: o, className: i, children: c, ...s }) => {
947
+ const d = $e(r) ? r : void 0;
948
+ return /* @__PURE__ */ ee(Nr, {
949
+ ...s,
950
+ "data-scrollable": t || void 0,
951
+ "data-dropdown-columns": d,
952
+ style: {
953
+ ...o,
954
+ ...a(d) && { gridTemplateColumns: `repeat(${d}, minmax(0, 1fr))` }
955
+ },
956
+ className: U(O.section, i),
957
+ children: [a(e) && /* @__PURE__ */ u(xr, {
958
+ "data-dropdown-section-label": "",
959
+ children: e
960
+ }), c]
961
+ });
962
+ }, Lr = ({ id: e, initialState: t, initializeSelection: r }) => (fe(() => {
963
+ r({
964
+ id: e,
965
+ state: t
966
+ });
967
+ }, [
968
+ e,
969
+ t,
970
+ r
971
+ ]), null), Br = ({ props: e, storedState: t }) => e.multiple ? {
972
+ multiple: !0,
973
+ value: e.value ?? (t?.multiple ? t.value : e.defaultValue ?? [])
974
+ } : be(e.value) ? {
975
+ multiple: !1,
976
+ value: t?.multiple === !1 ? t.value : e.defaultValue ?? null
977
+ } : {
978
+ multiple: !1,
979
+ value: e.value
980
+ }, Mr = (e) => {
981
+ const { id: t, multiple: r = !1, value: o, defaultValue: i, onValueChange: c, closeOnSelect: s = !r, render: d, ref: n, className: l, children: p, ...w } = e, { type: T, selections: g, initializeSelection: f, updateSelection: _ } = F(), R = Te(), v = t ?? R, m = Br({
982
+ props: e,
983
+ storedState: g.get(v)
984
+ }), S = ({ value: b, eventDetails: k }) => {
985
+ if (!(!m.multiple && m.value === b)) {
986
+ if (m.multiple && e.multiple) {
987
+ const N = m.value.includes(b) ? m.value.filter((L) => L !== b) : [...m.value, b];
988
+ e.onValueChange?.(N, k), !k.isCanceled && be(o) && _({
989
+ id: v,
990
+ state: {
991
+ multiple: !0,
992
+ value: N
993
+ }
994
+ });
995
+ return;
996
+ }
997
+ e.multiple || (e.onValueChange?.(b, k), !k.isCanceled && be(o) && _({
998
+ id: v,
999
+ state: {
1000
+ multiple: !1,
1001
+ value: b
1002
+ }
1003
+ }));
1004
+ }
1005
+ }, h = ue({
1006
+ render: d,
1007
+ ref: n,
1008
+ state: m,
1009
+ props: {
1010
+ ...w,
1011
+ id: v,
1012
+ className: U(O.selectionGroup, l),
1013
+ role: T === "picker" ? "listbox" : "group",
1014
+ "aria-multiselectable": T === "picker" ? r : void 0,
1015
+ children: p
1016
+ }
1017
+ });
1018
+ return /* @__PURE__ */ ee(Be.Provider, {
1019
+ value: {
1020
+ ...m,
1021
+ closeOnSelect: s,
1022
+ select: S
1023
+ },
1024
+ children: [be(o) && /* @__PURE__ */ u(Lr, {
1025
+ id: v,
1026
+ initialState: m,
1027
+ initializeSelection: f
1028
+ }), h]
1029
+ });
1030
+ }, Gr = ({ className: e, ...t }) => /* @__PURE__ */ u(Pe.Separator, {
1031
+ ...t,
1032
+ role: "separator",
1033
+ "data-dropdown-separator": "",
1034
+ className: U(O.separator, e)
1035
+ }), Kr = ({ type: e = "menu", ...t }) => /* @__PURE__ */ u(at, {
1036
+ ...t,
1037
+ type: e,
1038
+ isSubmenu: !0
1039
+ }), Me = (e) => J((t) => {
1040
+ if (!(!a(t) || !ye(t.id)))
1041
+ return e(t.id);
1042
+ }, [e]), qr = ({ color: e, startIcon: t, endIcon: r, description: o, descriptionPlacement: i, shortcut: c, shortcutJoinLabel: s, hasSubmenu: d = !0, children: n, render: l, disabled: p = !1, nativeButton: w = !a(l), openOnHover: T = !0, onKeyDown: g, id: f, ref: _, ...R }) => {
1043
+ const v = Xe(), { type: m, rootType: S, parentType: h, open: b, setOpen: k, setFocusOnOpen: N, registerTrigger: L } = F(), B = b ? m : S, C = Te(), P = Re({
1044
+ id: f,
1045
+ render: l
1046
+ }) ?? C, x = Fe({
1047
+ id: P,
1048
+ disabled: p,
1049
+ isSubmenuTrigger: !0
1050
+ }), I = me(_, Me(L));
1051
+ return /* @__PURE__ */ u(oe.Trigger, {
1052
+ ...R,
1053
+ ref: I,
1054
+ id: P,
1055
+ disabled: p,
1056
+ nativeButton: w,
1057
+ openOnHover: T,
1058
+ role: h === "menu" ? "menuitem" : void 0,
1059
+ "aria-haspopup": B === "menu" ? "menu" : "dialog",
1060
+ tabIndex: x.tabIndex,
1061
+ "data-dropdown-item": "",
1062
+ onKeyDown: (A) => {
1063
+ if (g?.(A), A.defaultPrevented || p) return;
1064
+ const G = ne(v === "rtl" ? "ArrowLeft" : "ArrowRight");
1065
+ if (A.key === G) {
1066
+ A.preventDefault(), A.stopPropagation(), N(!0);
1067
+ const K = A.currentTarget.getAttribute("aria-controls"), H = a(K) ? A.currentTarget.ownerDocument.getElementById(K) : null;
1068
+ if (b && a(H)) {
1069
+ Le({
1070
+ content: H,
1071
+ type: m
1072
+ }).focus();
1073
+ return;
1074
+ }
1075
+ k(!0);
1076
+ }
1077
+ },
1078
+ render: (A) => {
1079
+ const G = Oe({
1080
+ nativeButton: w,
1081
+ renderProps: A
1082
+ });
1083
+ return /* @__PURE__ */ u(Ee, {
1084
+ ...A,
1085
+ render: /* @__PURE__ */ u(Je, {
1086
+ render: l,
1087
+ disabled: G
1088
+ }),
1089
+ disabled: p,
1090
+ color: e,
1091
+ startIcon: t,
1092
+ endIcon: r,
1093
+ description: o,
1094
+ descriptionPlacement: i,
1095
+ shortcut: c,
1096
+ shortcutJoinLabel: s,
1097
+ hasSubmenu: d,
1098
+ children: n
1099
+ });
1100
+ }
1101
+ });
1102
+ }, Ur = ({ className: e, render: t, ref: r, ...o }) => {
1103
+ const { registerTitle: i } = F(), c = me(r, Me(i));
1104
+ return /* @__PURE__ */ u(je.Title, {
1105
+ ...o,
1106
+ ref: c,
1107
+ render: t ?? /* @__PURE__ */ u("div", {}),
1108
+ className: Z(O.title, e)
1109
+ });
1110
+ }, Vr = (e) => {
1111
+ const t = e.getAttribute("aria-controls"), r = a(t) ? e.ownerDocument.getElementById(t) : null;
1112
+ if (a(r))
1113
+ return ot({
1114
+ content: r,
1115
+ shiftKey: !1
1116
+ })?.target;
1117
+ }, Wr = ({ onKeyDown: e, onClick: t, ref: r, ...o }) => {
1118
+ const { type: i, rootType: c, open: s, setOpen: d, setInitialFocusEdge: n, setFocusOnOpen: l, registerTrigger: p } = F(), w = s ? i : c, T = me(r, Me(p));
1119
+ return /* @__PURE__ */ u(oe.Trigger, {
1120
+ ...o,
1121
+ ref: T,
1122
+ "aria-haspopup": w === "menu" ? "menu" : "dialog",
1123
+ onClick: (g) => {
1124
+ g.stopPropagation(), g.preventDefault(), t?.(g);
1125
+ },
1126
+ onKeyDown: (g) => {
1127
+ if (e?.(g), g.defaultPrevented || g.baseUIHandlerPrevented || o.disabled || w === "panel") return;
1128
+ const f = s && w === "picker" && g.key === "Tab" && !g.shiftKey ? Vr(g.currentTarget) : void 0;
1129
+ if (a(f)) {
1130
+ g.preventDefault(), f.focus();
1131
+ return;
1132
+ }
1133
+ g.key !== "ArrowDown" && g.key !== "ArrowUp" || (g.preventDefault(), l(!0), n(g.key === "ArrowUp" ? "last" : "first"), d(!0));
1134
+ }
1135
+ });
1136
+ }, zr = at, ho = {
1137
+ Root: zr,
1138
+ Trigger: Wr,
1139
+ Content: mr,
1140
+ ActionItem: Ze,
1141
+ OptionItem: Dr,
1142
+ SelectionGroup: Mr,
1143
+ Search: kr,
1144
+ Header: wr,
1145
+ Title: Ur,
1146
+ Close: tr,
1147
+ Page: _r,
1148
+ Back: $t,
1149
+ Submenu: Kr,
1150
+ SubmenuTrigger: qr,
1151
+ Section: Fr,
1152
+ Separator: Gr,
1153
+ Loading: hr,
1154
+ Empty: gr
1155
+ };
1156
+ export {
1157
+ er as a,
1158
+ rr as i,
1159
+ Br as n,
1160
+ Jt as o,
1161
+ Lr as r,
1162
+ F as s,
1163
+ ho as t
1164
+ };