@spear-ai/spectral 1.12.2 → 1.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/dist/.js +1 -0
  2. package/dist/Accordion-Cyrb2byI.js +1 -1
  3. package/dist/Accordion.js +1 -0
  4. package/dist/Alert/AlertBase.js +2 -2
  5. package/dist/Alert.js +2 -2
  6. package/dist/AnimatePresence-D9FLxIGV.js +1 -1
  7. package/dist/App.js +2 -1
  8. package/dist/Avatar.js +2 -2
  9. package/dist/Badge.js +2 -1
  10. package/dist/Button.js +2 -2
  11. package/dist/ButtonGroup/ButtonGroupButton.js +2 -1
  12. package/dist/ButtonGroup.js +2 -2
  13. package/dist/ButtonIcon.js +2 -2
  14. package/dist/Calendar-2UVWeLYp.js +1 -1
  15. package/dist/Checkbox/CheckboxBase.js +2 -2
  16. package/dist/Checkbox.js +2 -1
  17. package/dist/Combination-9q50p_Vu.js +1 -1
  18. package/dist/Combobox/ComboboxBase.js +2 -2
  19. package/dist/Combobox-Ch5Rxk5v.js +1 -1
  20. package/dist/Combobox.js +1 -0
  21. package/dist/ControlGroup/ControlGroupSelect.js +7 -7
  22. package/dist/ControlGroup.js +2 -2
  23. package/dist/DataCard/Card.js +2 -1
  24. package/dist/DataCard.js +2 -1
  25. package/dist/DateTimePicker/Calendar.js +1 -0
  26. package/dist/DateTimePicker/DateTimeDisplayInput.js +2 -2
  27. package/dist/DateTimePicker/DateTimeInput.js +2 -2
  28. package/dist/DateTimePicker/TimePeriodSelect.js +8 -8
  29. package/dist/DateTimePicker/TimePicker.js +2 -2
  30. package/dist/DateTimePicker.js +2 -2
  31. package/dist/Dialog.js +2 -1
  32. package/dist/Drawer.js +2 -1
  33. package/dist/DropdownMenu.js +2 -2
  34. package/dist/HoverCard-BGpW6LnA.js +1 -1
  35. package/dist/HoverCard.js +1 -0
  36. package/dist/Icons/AdjustmentsIcon.js +2 -1
  37. package/dist/Icons/AnalyzeIcon.js +2 -1
  38. package/dist/Icons/AnnotationsIcon.js +2 -1
  39. package/dist/Icons/ApprovedIcon.js +2 -1
  40. package/dist/Icons/ArrowDownIcon.js +2 -1
  41. package/dist/Icons/ArrowUpIcon.js +2 -1
  42. package/dist/Icons/BoxToolIcon.js +2 -1
  43. package/dist/Icons/CalendarIcon.js +2 -1
  44. package/dist/Icons/CheckCircleIcon.js +2 -1
  45. package/dist/Icons/CheckSquareIcon.js +2 -1
  46. package/dist/Icons/CheckmarkIcon.js +2 -1
  47. package/dist/Icons/ChevronDownIcon.js +2 -1
  48. package/dist/Icons/ChevronUpIcon.js +2 -1
  49. package/dist/Icons/ClockIcon.js +2 -1
  50. package/dist/Icons/CloseCircleIcon.js +2 -1
  51. package/dist/Icons/CloseIcon.js +2 -1
  52. package/dist/Icons/Crosshairs2Icon.js +2 -1
  53. package/dist/Icons/CrosshairsIcon.js +2 -1
  54. package/dist/Icons/DashboardIcon.js +2 -1
  55. package/dist/Icons/DatabaseIcon.js +2 -1
  56. package/dist/Icons/DeleteIcon.js +2 -1
  57. package/dist/Icons/DurationIcon.js +2 -1
  58. package/dist/Icons/EditIcon.js +2 -1
  59. package/dist/Icons/EmailIcon.js +2 -1
  60. package/dist/Icons/EraserIcon.js +2 -2
  61. package/dist/Icons/ErrorIcon.js +2 -1
  62. package/dist/Icons/EyeClosedIcon.js +2 -1
  63. package/dist/Icons/EyeClosedIcon2.js +2 -1
  64. package/dist/Icons/EyeOpenIcon.js +2 -1
  65. package/dist/Icons/FileDownloadIcon.js +2 -1
  66. package/dist/Icons/GoToFirstIcon.js +2 -1
  67. package/dist/Icons/GoToLastIcon.js +2 -1
  68. package/dist/Icons/HarmonicCursorsIcon.js +2 -1
  69. package/dist/Icons/IconBase.js +2 -2
  70. package/dist/Icons/InfoIcon.js +2 -1
  71. package/dist/Icons/KeyboardIcon.js +2 -1
  72. package/dist/Icons/LabelIcon.js +2 -1
  73. package/dist/Icons/LassoIcon.js +2 -1
  74. package/dist/Icons/LineToolIcon.js +2 -1
  75. package/dist/Icons/LiveViewIcon.js +2 -1
  76. package/dist/Icons/LoaderIcon.js +2 -2
  77. package/dist/Icons/LocationIcon.js +2 -1
  78. package/dist/Icons/LogoutIcon.js +2 -1
  79. package/dist/Icons/MaximizeIcon.js +2 -1
  80. package/dist/Icons/MeasureIcon.js +2 -1
  81. package/dist/Icons/MenuDotsIcon.js +2 -1
  82. package/dist/Icons/MenuIcon.js +2 -1
  83. package/dist/Icons/MessagesIcon.js +2 -1
  84. package/dist/Icons/MetadataIcon.js +2 -1
  85. package/dist/Icons/MinimizeIcon.js +2 -1
  86. package/dist/Icons/MinusIcon.js +2 -1
  87. package/dist/Icons/OntologyIcon.js +2 -1
  88. package/dist/Icons/PanelIconClose.js +2 -1
  89. package/dist/Icons/PanelIconOpen.js +2 -1
  90. package/dist/Icons/PauseIcon.js +2 -1
  91. package/dist/Icons/PlayIcon.js +2 -1
  92. package/dist/Icons/PlusIcon.js +2 -1
  93. package/dist/Icons/PolygonIcon.js +2 -1
  94. package/dist/Icons/PrinterIcon.js +2 -1
  95. package/dist/Icons/ProgressCheckIcon.js +2 -1
  96. package/dist/Icons/ResetIcon.js +2 -1
  97. package/dist/Icons/ReviewedIcon.js +2 -1
  98. package/dist/Icons/ScissorsIcon.js +2 -1
  99. package/dist/Icons/SearchIcon.js +2 -1
  100. package/dist/Icons/SettingsIcon.js +2 -1
  101. package/dist/Icons/SortAscendingIcon.js +2 -1
  102. package/dist/Icons/SortAtoZIcon.js +2 -1
  103. package/dist/Icons/SortDescendingIcon.js +2 -1
  104. package/dist/Icons/SortZtoAIcon.js +2 -1
  105. package/dist/Icons/SparklesIcon.js +2 -1
  106. package/dist/Icons/StackIcon.js +2 -1
  107. package/dist/Icons/StarIcon.js +2 -1
  108. package/dist/Icons/TrashIcon.js +2 -1
  109. package/dist/Icons/UndoIcon.js +2 -1
  110. package/dist/Icons/UploadIcon.js +2 -1
  111. package/dist/Icons/User2Icon.js +2 -1
  112. package/dist/Icons/UserIcon.js +2 -1
  113. package/dist/Icons/WarningIcon.js +2 -1
  114. package/dist/Icons/ZoomAllIcon.js +2 -1
  115. package/dist/Icons/ZoomXIcon.js +2 -1
  116. package/dist/Icons/ZoomYIcon.js +2 -1
  117. package/dist/Icons.js +1 -0
  118. package/dist/IconsAnimated/PanelLeftCloseIcon.js +2 -2
  119. package/dist/IconsAnimated/PanelLeftOpenIcon.js +2 -2
  120. package/dist/IconsAnimated.js +1 -0
  121. package/dist/Input/InputUtils.js +1 -1
  122. package/dist/Input.js +2 -2
  123. package/dist/InputNumeric.js +2 -2
  124. package/dist/InputOTP-BkSw_KIB.js +1 -1
  125. package/dist/InputOTP.js +1 -0
  126. package/dist/Kbd.js +2 -1
  127. package/dist/Label.js +2 -1
  128. package/dist/MultiSelect/MultiSelectBase.js +2 -2
  129. package/dist/MultiSelect.js +2 -1
  130. package/dist/Popover.js +2 -1
  131. package/dist/RadioButton.js +2 -1
  132. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +2 -2
  133. package/dist/RadioButtonGroup.js +2 -1
  134. package/dist/RadioGroup-CfjhpW5o.js +1 -1
  135. package/dist/RadioGroup.js +1 -0
  136. package/dist/Select.js +56 -57
  137. package/dist/Separator.js +2 -1
  138. package/dist/Skeleton.js +2 -1
  139. package/dist/Slider-mODhqkCs.js +1 -1
  140. package/dist/Slider.js +1 -0
  141. package/dist/SpectralProvider.js +2 -1
  142. package/dist/Switch/SwitchBase.js +2 -2
  143. package/dist/Switch-Wj_zov--.js +1 -1
  144. package/dist/Switch.js +1 -0
  145. package/dist/Tabs/TabsBase.js +2 -2
  146. package/dist/Tabs.js +2 -1
  147. package/dist/Textarea/TextareaUtils.js +1 -1
  148. package/dist/Textarea.js +2 -2
  149. package/dist/Toast-CJvzLlMD.js +1 -1
  150. package/dist/Toast.js +1 -0
  151. package/dist/Toggle/ToggleBase.js +2 -2
  152. package/dist/Toggle.js +2 -1
  153. package/dist/ToggleGroup/ToggleGroupBase.js +2 -2
  154. package/dist/ToggleGroup.js +2 -2
  155. package/dist/Tooltip-DH_BzFye.js +1 -1
  156. package/dist/Tooltip.js +1 -0
  157. package/dist/Tray.js +2 -2
  158. package/dist/dist-7HRQ5IKN.js +1 -1
  159. package/dist/dist-BMu6Dgh_.js +1 -1
  160. package/dist/dist-CGzgmYB9.js +1 -1
  161. package/dist/dist-ChNh3U3S.js +1 -1
  162. package/dist/dist-Cv8I-d2q.js +1 -1
  163. package/dist/dist-D6QANKSj.js +1 -1
  164. package/dist/dist-jQ7HawWM.js +1 -1
  165. package/dist/dist-nYKAWiy4.js +1 -1
  166. package/dist/hooks/useAccordionAutoScroll.js +1 -1
  167. package/dist/hooks/useControllableState.js +1 -1
  168. package/dist/hooks/useConvertToOklch.js +1 -1
  169. package/dist/hooks/useTheme.js +1 -1
  170. package/dist/hooks/useUncontrolledState.js +1 -1
  171. package/dist/main.js +2 -2
  172. package/dist/primitives/button.js +1 -0
  173. package/dist/primitives/input-group.js +1 -0
  174. package/dist/primitives/input.js +1 -0
  175. package/dist/primitives/popover.js +1 -0
  176. package/dist/primitives/select.d.ts.map +1 -1
  177. package/dist/primitives/select.js +3 -127
  178. package/dist/primitives/slot.js +1 -1
  179. package/dist/primitives/textarea.js +1 -0
  180. package/dist/proxy-CCB7C4Pu.js +1 -1
  181. package/dist/select-D5Jexytu.js +797 -0
  182. package/dist/styles/spectral.css +1 -1
  183. package/dist/utils/dropdownPositioning.js +1 -1
  184. package/dist/utils/dropdownPositioning.test.js +1 -0
  185. package/dist/utils/formFieldUtils.js +1 -1
  186. package/package.json +3 -3
  187. package/dist/dist-C9fJjxxB.js +0 -677
@@ -0,0 +1,797 @@
1
+ import './styles/main.css'
2
+ import { CheckmarkIcon as e } from "./Icons/CheckmarkIcon.js";
3
+ import { ChevronDownIcon as t } from "./Icons/ChevronDownIcon.js";
4
+ import { ChevronUpIcon as n } from "./Icons/ChevronUpIcon.js";
5
+ import { a as r, d as i, i as a, l as o, o as s, r as c, t as l } from "./dist-7HRQ5IKN.js";
6
+ import { n as u, t as d } from "./dist-CGzgmYB9.js";
7
+ import { t as f } from "./dist-Dtvmk11N.js";
8
+ import { t as p } from "./twUtils-D_qzdiwM.js";
9
+ import { getDropdownSurfaceClasses as m } from "./utils/formFieldUtils.js";
10
+ import { t as h } from "./dist-DDjUcieO.js";
11
+ import { t as g } from "./dist-DIt8FP2G.js";
12
+ import { n as _, t as v } from "./dist-jQ7HawWM.js";
13
+ import { i as y, n as b, r as x, t as S } from "./Combination-9q50p_Vu.js";
14
+ import { a as C, i as w, n as T, r as E, t as D } from "./dist-Cv8I-d2q.js";
15
+ import { t as O } from "./dist-DFT13f_s.js";
16
+ import { n as k } from "./dist-ChNh3U3S.js";
17
+ import { useAutoDropdownHorizontalShift as A } from "./utils/dropdownPositioning.js";
18
+ import * as j from "react";
19
+ import { useRef as M } from "react";
20
+ import * as N from "react-dom";
21
+ import { Fragment as P, jsx as F, jsxs as I } from "react/jsx-runtime";
22
+ //#region node_modules/.pnpm/@radix-ui+react-select@2.2.6_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_59e27c923ffee0ae02caa79afc2da7e6/node_modules/@radix-ui/react-select/dist/index.mjs
23
+ var L = [
24
+ " ",
25
+ "Enter",
26
+ "ArrowUp",
27
+ "ArrowDown"
28
+ ], R = [" ", "Enter"], z = "Select", [B, V, H] = u(z), [U, W] = i(z, [H, C]), G = C(), [ee, K] = U(z), [te, ne] = U(z), q = (e) => {
29
+ let { __scopeSelect: t, children: n, open: r, defaultOpen: i, onOpenChange: a, value: o, defaultValue: s, onValueChange: l, dir: u, name: p, autoComplete: m, disabled: h, required: g, form: _ } = e, v = G(t), [y, b] = j.useState(null), [x, S] = j.useState(null), [C, T] = j.useState(!1), E = d(u), [D, O] = c({
30
+ prop: r,
31
+ defaultProp: i ?? !1,
32
+ onChange: a,
33
+ caller: z
34
+ }), [k, A] = c({
35
+ prop: o,
36
+ defaultProp: s,
37
+ onChange: l,
38
+ caller: z
39
+ }), M = j.useRef(null), N = y ? _ || !!y.closest("form") : !0, [P, L] = j.useState(/* @__PURE__ */ new Set()), R = Array.from(P).map((e) => e.props.value).join(";");
40
+ return /* @__PURE__ */ F(w, {
41
+ ...v,
42
+ children: /* @__PURE__ */ I(ee, {
43
+ required: g,
44
+ scope: t,
45
+ trigger: y,
46
+ onTriggerChange: b,
47
+ valueNode: x,
48
+ onValueNodeChange: S,
49
+ valueNodeHasChildren: C,
50
+ onValueNodeHasChildrenChange: T,
51
+ contentId: f(),
52
+ value: k,
53
+ onValueChange: A,
54
+ open: D,
55
+ onOpenChange: O,
56
+ dir: E,
57
+ triggerPointerDownPosRef: M,
58
+ disabled: h,
59
+ children: [/* @__PURE__ */ F(B.Provider, {
60
+ scope: t,
61
+ children: /* @__PURE__ */ F(te, {
62
+ scope: e.__scopeSelect,
63
+ onNativeOptionAdd: j.useCallback((e) => {
64
+ L((t) => new Set(t).add(e));
65
+ }, []),
66
+ onNativeOptionRemove: j.useCallback((e) => {
67
+ L((t) => {
68
+ let n = new Set(t);
69
+ return n.delete(e), n;
70
+ });
71
+ }, []),
72
+ children: n
73
+ })
74
+ }), N ? /* @__PURE__ */ I(Ge, {
75
+ "aria-hidden": !0,
76
+ required: g,
77
+ tabIndex: -1,
78
+ name: p,
79
+ autoComplete: m,
80
+ value: k,
81
+ onChange: (e) => A(e.target.value),
82
+ disabled: h,
83
+ form: _,
84
+ children: [k === void 0 ? /* @__PURE__ */ F("option", { value: "" }) : null, Array.from(P)]
85
+ }, R) : null]
86
+ })
87
+ });
88
+ };
89
+ q.displayName = z;
90
+ var re = "SelectTrigger", J = j.forwardRef((e, t) => {
91
+ let { __scopeSelect: n, disabled: i = !1, ...a } = e, s = G(n), c = K(re, n), u = c.disabled || i, d = o(t, c.onTriggerChange), f = V(n), p = j.useRef("touch"), [m, h, g] = qe((e) => {
92
+ let t = f().filter((e) => !e.disabled), n = Je(t, e, t.find((e) => e.value === c.value));
93
+ n !== void 0 && c.onValueChange(n.value);
94
+ }), _ = (e) => {
95
+ u || (c.onOpenChange(!0), g()), e && (c.triggerPointerDownPosRef.current = {
96
+ x: Math.round(e.pageX),
97
+ y: Math.round(e.pageY)
98
+ });
99
+ };
100
+ return /* @__PURE__ */ F(D, {
101
+ asChild: !0,
102
+ ...s,
103
+ children: /* @__PURE__ */ F(l.button, {
104
+ type: "button",
105
+ role: "combobox",
106
+ "aria-controls": c.contentId,
107
+ "aria-expanded": c.open,
108
+ "aria-required": c.required,
109
+ "aria-autocomplete": "none",
110
+ dir: c.dir,
111
+ "data-state": c.open ? "open" : "closed",
112
+ disabled: u,
113
+ "data-disabled": u ? "" : void 0,
114
+ "data-placeholder": Ke(c.value) ? "" : void 0,
115
+ ...a,
116
+ ref: d,
117
+ onClick: r(a.onClick, (e) => {
118
+ e.currentTarget.focus(), p.current !== "mouse" && _(e);
119
+ }),
120
+ onPointerDown: r(a.onPointerDown, (e) => {
121
+ p.current = e.pointerType;
122
+ let t = e.target;
123
+ t.hasPointerCapture(e.pointerId) && t.releasePointerCapture(e.pointerId), e.button === 0 && e.ctrlKey === !1 && e.pointerType === "mouse" && (_(e), e.preventDefault());
124
+ }),
125
+ onKeyDown: r(a.onKeyDown, (e) => {
126
+ let t = m.current !== "";
127
+ !(e.ctrlKey || e.altKey || e.metaKey) && e.key.length === 1 && h(e.key), !(t && e.key === " ") && L.includes(e.key) && (_(), e.preventDefault());
128
+ })
129
+ })
130
+ });
131
+ });
132
+ J.displayName = re;
133
+ var ie = "SelectValue", ae = j.forwardRef((e, t) => {
134
+ let { __scopeSelect: n, className: r, style: i, children: s, placeholder: c = "", ...u } = e, d = K(ie, n), { onValueNodeHasChildrenChange: f } = d, p = s !== void 0, m = o(t, d.onValueNodeChange);
135
+ return a(() => {
136
+ f(p);
137
+ }, [f, p]), /* @__PURE__ */ F(l.span, {
138
+ ...u,
139
+ ref: m,
140
+ style: { pointerEvents: "none" },
141
+ children: Ke(d.value) ? /* @__PURE__ */ F(P, { children: c }) : s
142
+ });
143
+ });
144
+ ae.displayName = ie;
145
+ var oe = "SelectIcon", se = j.forwardRef((e, t) => {
146
+ let { __scopeSelect: n, children: r, ...i } = e;
147
+ return /* @__PURE__ */ F(l.span, {
148
+ "aria-hidden": !0,
149
+ ...i,
150
+ ref: t,
151
+ children: r || "▼"
152
+ });
153
+ });
154
+ se.displayName = oe;
155
+ var ce = "SelectPortal", le = (e) => /* @__PURE__ */ F(v, {
156
+ asChild: !0,
157
+ ...e
158
+ });
159
+ le.displayName = ce;
160
+ var Y = "SelectContent", ue = j.forwardRef((e, t) => {
161
+ let n = K(Y, e.__scopeSelect), [r, i] = j.useState();
162
+ if (a(() => {
163
+ i(new DocumentFragment());
164
+ }, []), !n.open) {
165
+ let t = r;
166
+ return t ? N.createPortal(/* @__PURE__ */ F(de, {
167
+ scope: e.__scopeSelect,
168
+ children: /* @__PURE__ */ F(B.Slot, {
169
+ scope: e.__scopeSelect,
170
+ children: /* @__PURE__ */ F("div", { children: e.children })
171
+ })
172
+ }), t) : null;
173
+ }
174
+ return /* @__PURE__ */ F(me, {
175
+ ...e,
176
+ ref: t
177
+ });
178
+ });
179
+ ue.displayName = Y;
180
+ var X = 10, [de, Z] = U(Y), fe = "SelectContentImpl", pe = s("SelectContent.RemoveScroll"), me = j.forwardRef((e, t) => {
181
+ let { __scopeSelect: n, position: i = "item-aligned", onCloseAutoFocus: a, onEscapeKeyDown: s, onPointerDownOutside: c, side: l, sideOffset: u, align: d, alignOffset: f, arrowPadding: p, collisionBoundary: m, collisionPadding: h, sticky: g, hideWhenDetached: v, avoidCollisions: C, ...w } = e, T = K(Y, n), [E, D] = j.useState(null), [O, k] = j.useState(null), A = o(t, (e) => D(e)), [M, N] = j.useState(null), [P, I] = j.useState(null), L = V(n), [R, z] = j.useState(!1), B = j.useRef(!1);
182
+ j.useEffect(() => {
183
+ if (E) return b(E);
184
+ }, [E]), y();
185
+ let H = j.useCallback((e) => {
186
+ let [t, ...n] = L().map((e) => e.ref.current), [r] = n.slice(-1), i = document.activeElement;
187
+ for (let n of e) if (n === i || (n?.scrollIntoView({ block: "nearest" }), n === t && O && (O.scrollTop = 0), n === r && O && (O.scrollTop = O.scrollHeight), n?.focus(), document.activeElement !== i)) return;
188
+ }, [L, O]), U = j.useCallback(() => H([M, E]), [
189
+ H,
190
+ M,
191
+ E
192
+ ]);
193
+ j.useEffect(() => {
194
+ R && U();
195
+ }, [R, U]);
196
+ let { onOpenChange: W, triggerPointerDownPosRef: G } = T;
197
+ j.useEffect(() => {
198
+ if (E) {
199
+ let e = {
200
+ x: 0,
201
+ y: 0
202
+ }, t = (t) => {
203
+ e = {
204
+ x: Math.abs(Math.round(t.pageX) - (G.current?.x ?? 0)),
205
+ y: Math.abs(Math.round(t.pageY) - (G.current?.y ?? 0))
206
+ };
207
+ }, n = (n) => {
208
+ e.x <= 10 && e.y <= 10 ? n.preventDefault() : E.contains(n.target) || W(!1), document.removeEventListener("pointermove", t), G.current = null;
209
+ };
210
+ return G.current !== null && (document.addEventListener("pointermove", t), document.addEventListener("pointerup", n, {
211
+ capture: !0,
212
+ once: !0
213
+ })), () => {
214
+ document.removeEventListener("pointermove", t), document.removeEventListener("pointerup", n, { capture: !0 });
215
+ };
216
+ }
217
+ }, [
218
+ E,
219
+ W,
220
+ G
221
+ ]), j.useEffect(() => {
222
+ let e = () => W(!1);
223
+ return window.addEventListener("blur", e), window.addEventListener("resize", e), () => {
224
+ window.removeEventListener("blur", e), window.removeEventListener("resize", e);
225
+ };
226
+ }, [W]);
227
+ let [ee, te] = qe((e) => {
228
+ let t = L().filter((e) => !e.disabled), n = Je(t, e, t.find((e) => e.ref.current === document.activeElement));
229
+ n && setTimeout(() => n.ref.current.focus());
230
+ }), ne = j.useCallback((e, t, n) => {
231
+ let r = !B.current && !n;
232
+ (T.value !== void 0 && T.value === t || r) && (N(e), r && (B.current = !0));
233
+ }, [T.value]), q = j.useCallback(() => E?.focus(), [E]), re = j.useCallback((e, t, n) => {
234
+ let r = !B.current && !n;
235
+ (T.value !== void 0 && T.value === t || r) && I(e);
236
+ }, [T.value]), J = i === "popper" ? ve : ge, ie = J === ve ? {
237
+ side: l,
238
+ sideOffset: u,
239
+ align: d,
240
+ alignOffset: f,
241
+ arrowPadding: p,
242
+ collisionBoundary: m,
243
+ collisionPadding: h,
244
+ sticky: g,
245
+ hideWhenDetached: v,
246
+ avoidCollisions: C
247
+ } : {};
248
+ return /* @__PURE__ */ F(de, {
249
+ scope: n,
250
+ content: E,
251
+ viewport: O,
252
+ onViewportChange: k,
253
+ itemRefCallback: ne,
254
+ selectedItem: M,
255
+ onItemLeave: q,
256
+ itemTextRefCallback: re,
257
+ focusSelectedItem: U,
258
+ selectedItemText: P,
259
+ position: i,
260
+ isPositioned: R,
261
+ searchRef: ee,
262
+ children: /* @__PURE__ */ F(S, {
263
+ as: pe,
264
+ allowPinchZoom: !0,
265
+ children: /* @__PURE__ */ F(x, {
266
+ asChild: !0,
267
+ trapped: T.open,
268
+ onMountAutoFocus: (e) => {
269
+ e.preventDefault();
270
+ },
271
+ onUnmountAutoFocus: r(a, (e) => {
272
+ T.trigger?.focus({ preventScroll: !0 }), e.preventDefault();
273
+ }),
274
+ children: /* @__PURE__ */ F(_, {
275
+ asChild: !0,
276
+ disableOutsidePointerEvents: !0,
277
+ onEscapeKeyDown: s,
278
+ onPointerDownOutside: c,
279
+ onFocusOutside: (e) => e.preventDefault(),
280
+ onDismiss: () => T.onOpenChange(!1),
281
+ children: /* @__PURE__ */ F(J, {
282
+ role: "listbox",
283
+ id: T.contentId,
284
+ "data-state": T.open ? "open" : "closed",
285
+ dir: T.dir,
286
+ onContextMenu: (e) => e.preventDefault(),
287
+ ...w,
288
+ ...ie,
289
+ onPlaced: () => z(!0),
290
+ ref: A,
291
+ style: {
292
+ display: "flex",
293
+ flexDirection: "column",
294
+ outline: "none",
295
+ ...w.style
296
+ },
297
+ onKeyDown: r(w.onKeyDown, (e) => {
298
+ let t = e.ctrlKey || e.altKey || e.metaKey;
299
+ if (e.key === "Tab" && e.preventDefault(), !t && e.key.length === 1 && te(e.key), [
300
+ "ArrowUp",
301
+ "ArrowDown",
302
+ "Home",
303
+ "End"
304
+ ].includes(e.key)) {
305
+ let t = L().filter((e) => !e.disabled).map((e) => e.ref.current);
306
+ if (["ArrowUp", "End"].includes(e.key) && (t = t.slice().reverse()), ["ArrowUp", "ArrowDown"].includes(e.key)) {
307
+ let n = e.target, r = t.indexOf(n);
308
+ t = t.slice(r + 1);
309
+ }
310
+ setTimeout(() => H(t)), e.preventDefault();
311
+ }
312
+ })
313
+ })
314
+ })
315
+ })
316
+ })
317
+ });
318
+ });
319
+ me.displayName = fe;
320
+ var he = "SelectItemAlignedPosition", ge = j.forwardRef((e, t) => {
321
+ let { __scopeSelect: n, onPlaced: r, ...i } = e, s = K(Y, n), c = Z(Y, n), [u, d] = j.useState(null), [f, p] = j.useState(null), m = o(t, (e) => p(e)), g = V(n), _ = j.useRef(!1), v = j.useRef(!0), { viewport: y, selectedItem: b, selectedItemText: x, focusSelectedItem: S } = c, C = j.useCallback(() => {
322
+ if (s.trigger && s.valueNode && u && f && y && b && x) {
323
+ let e = s.trigger.getBoundingClientRect(), t = f.getBoundingClientRect(), n = s.valueNode.getBoundingClientRect(), i = x.getBoundingClientRect();
324
+ if (s.dir !== "rtl") {
325
+ let r = i.left - t.left, a = n.left - r, o = e.left - a, s = e.width + o, c = Math.max(s, t.width), l = window.innerWidth - X, d = h(a, [X, Math.max(X, l - c)]);
326
+ u.style.minWidth = s + "px", u.style.left = d + "px";
327
+ } else {
328
+ let r = t.right - i.right, a = window.innerWidth - n.right - r, o = window.innerWidth - e.right - a, s = e.width + o, c = Math.max(s, t.width), l = window.innerWidth - X, d = h(a, [X, Math.max(X, l - c)]);
329
+ u.style.minWidth = s + "px", u.style.right = d + "px";
330
+ }
331
+ let a = g(), o = window.innerHeight - X * 2, c = y.scrollHeight, l = window.getComputedStyle(f), d = parseInt(l.borderTopWidth, 10), p = parseInt(l.paddingTop, 10), m = parseInt(l.borderBottomWidth, 10), v = parseInt(l.paddingBottom, 10), S = d + p + c + v + m, C = Math.min(b.offsetHeight * 5, S), w = window.getComputedStyle(y), T = parseInt(w.paddingTop, 10), E = parseInt(w.paddingBottom, 10), D = e.top + e.height / 2 - X, O = o - D, k = b.offsetHeight / 2, A = b.offsetTop + k, j = d + p + A, M = S - j;
332
+ if (j <= D) {
333
+ let e = a.length > 0 && b === a[a.length - 1].ref.current;
334
+ u.style.bottom = "0px";
335
+ let t = f.clientHeight - y.offsetTop - y.offsetHeight, n = j + Math.max(O, k + (e ? E : 0) + t + m);
336
+ u.style.height = n + "px";
337
+ } else {
338
+ let e = a.length > 0 && b === a[0].ref.current;
339
+ u.style.top = "0px";
340
+ let t = Math.max(D, d + y.offsetTop + (e ? T : 0) + k) + M;
341
+ u.style.height = t + "px", y.scrollTop = j - D + y.offsetTop;
342
+ }
343
+ u.style.margin = `${X}px 0`, u.style.minHeight = C + "px", u.style.maxHeight = o + "px", r?.(), requestAnimationFrame(() => _.current = !0);
344
+ }
345
+ }, [
346
+ g,
347
+ s.trigger,
348
+ s.valueNode,
349
+ u,
350
+ f,
351
+ y,
352
+ b,
353
+ x,
354
+ s.dir,
355
+ r
356
+ ]);
357
+ a(() => C(), [C]);
358
+ let [w, T] = j.useState();
359
+ return a(() => {
360
+ f && T(window.getComputedStyle(f).zIndex);
361
+ }, [f]), /* @__PURE__ */ F(ye, {
362
+ scope: n,
363
+ contentWrapper: u,
364
+ shouldExpandOnScrollRef: _,
365
+ onScrollButtonChange: j.useCallback((e) => {
366
+ e && v.current === !0 && (C(), S?.(), v.current = !1);
367
+ }, [C, S]),
368
+ children: /* @__PURE__ */ F("div", {
369
+ ref: d,
370
+ style: {
371
+ display: "flex",
372
+ flexDirection: "column",
373
+ position: "fixed",
374
+ zIndex: w
375
+ },
376
+ children: /* @__PURE__ */ F(l.div, {
377
+ ...i,
378
+ ref: m,
379
+ style: {
380
+ boxSizing: "border-box",
381
+ maxHeight: "100%",
382
+ ...i.style
383
+ }
384
+ })
385
+ })
386
+ });
387
+ });
388
+ ge.displayName = he;
389
+ var _e = "SelectPopperPosition", ve = j.forwardRef((e, t) => {
390
+ let { __scopeSelect: n, align: r = "start", collisionPadding: i = X, ...a } = e;
391
+ return /* @__PURE__ */ F(E, {
392
+ ...G(n),
393
+ ...a,
394
+ ref: t,
395
+ align: r,
396
+ collisionPadding: i,
397
+ style: {
398
+ boxSizing: "border-box",
399
+ ...a.style,
400
+ "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
401
+ "--radix-select-content-available-width": "var(--radix-popper-available-width)",
402
+ "--radix-select-content-available-height": "var(--radix-popper-available-height)",
403
+ "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
404
+ "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
405
+ }
406
+ });
407
+ });
408
+ ve.displayName = _e;
409
+ var [ye, be] = U(Y, {}), xe = "SelectViewport", Se = j.forwardRef((e, t) => {
410
+ let { __scopeSelect: n, nonce: i, ...a } = e, s = Z(xe, n), c = be(xe, n), u = o(t, s.onViewportChange), d = j.useRef(0);
411
+ return /* @__PURE__ */ I(P, { children: [/* @__PURE__ */ F("style", {
412
+ dangerouslySetInnerHTML: { __html: "[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}" },
413
+ nonce: i
414
+ }), /* @__PURE__ */ F(B.Slot, {
415
+ scope: n,
416
+ children: /* @__PURE__ */ F(l.div, {
417
+ "data-radix-select-viewport": "",
418
+ role: "presentation",
419
+ ...a,
420
+ ref: u,
421
+ style: {
422
+ position: "relative",
423
+ flex: 1,
424
+ overflow: "hidden auto",
425
+ ...a.style
426
+ },
427
+ onScroll: r(a.onScroll, (e) => {
428
+ let t = e.currentTarget, { contentWrapper: n, shouldExpandOnScrollRef: r } = c;
429
+ if (r?.current && n) {
430
+ let e = Math.abs(d.current - t.scrollTop);
431
+ if (e > 0) {
432
+ let r = window.innerHeight - X * 2, i = parseFloat(n.style.minHeight), a = parseFloat(n.style.height), o = Math.max(i, a);
433
+ if (o < r) {
434
+ let i = o + e, a = Math.min(r, i), s = i - a;
435
+ n.style.height = a + "px", n.style.bottom === "0px" && (t.scrollTop = s > 0 ? s : 0, n.style.justifyContent = "flex-end");
436
+ }
437
+ }
438
+ }
439
+ d.current = t.scrollTop;
440
+ })
441
+ })
442
+ })] });
443
+ });
444
+ Se.displayName = xe;
445
+ var Ce = "SelectGroup", [we, Te] = U(Ce), Ee = j.forwardRef((e, t) => {
446
+ let { __scopeSelect: n, ...r } = e, i = f();
447
+ return /* @__PURE__ */ F(we, {
448
+ scope: n,
449
+ id: i,
450
+ children: /* @__PURE__ */ F(l.div, {
451
+ role: "group",
452
+ "aria-labelledby": i,
453
+ ...r,
454
+ ref: t
455
+ })
456
+ });
457
+ });
458
+ Ee.displayName = Ce;
459
+ var De = "SelectLabel", Oe = j.forwardRef((e, t) => {
460
+ let { __scopeSelect: n, ...r } = e, i = Te(De, n);
461
+ return /* @__PURE__ */ F(l.div, {
462
+ id: i.id,
463
+ ...r,
464
+ ref: t
465
+ });
466
+ });
467
+ Oe.displayName = De;
468
+ var Q = "SelectItem", [ke, Ae] = U(Q), je = j.forwardRef((e, t) => {
469
+ let { __scopeSelect: n, value: i, disabled: a = !1, textValue: s, ...c } = e, u = K(Q, n), d = Z(Q, n), p = u.value === i, [m, h] = j.useState(s ?? ""), [g, _] = j.useState(!1), v = o(t, (e) => d.itemRefCallback?.(e, i, a)), y = f(), b = j.useRef("touch"), x = () => {
470
+ a || (u.onValueChange(i), u.onOpenChange(!1));
471
+ };
472
+ if (i === "") throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");
473
+ return /* @__PURE__ */ F(ke, {
474
+ scope: n,
475
+ value: i,
476
+ disabled: a,
477
+ textId: y,
478
+ isSelected: p,
479
+ onItemTextChange: j.useCallback((e) => {
480
+ h((t) => t || (e?.textContent ?? "").trim());
481
+ }, []),
482
+ children: /* @__PURE__ */ F(B.ItemSlot, {
483
+ scope: n,
484
+ value: i,
485
+ disabled: a,
486
+ textValue: m,
487
+ children: /* @__PURE__ */ F(l.div, {
488
+ role: "option",
489
+ "aria-labelledby": y,
490
+ "data-highlighted": g ? "" : void 0,
491
+ "aria-selected": p && g,
492
+ "data-state": p ? "checked" : "unchecked",
493
+ "aria-disabled": a || void 0,
494
+ "data-disabled": a ? "" : void 0,
495
+ tabIndex: a ? void 0 : -1,
496
+ ...c,
497
+ ref: v,
498
+ onFocus: r(c.onFocus, () => _(!0)),
499
+ onBlur: r(c.onBlur, () => _(!1)),
500
+ onClick: r(c.onClick, () => {
501
+ b.current !== "mouse" && x();
502
+ }),
503
+ onPointerUp: r(c.onPointerUp, () => {
504
+ b.current === "mouse" && x();
505
+ }),
506
+ onPointerDown: r(c.onPointerDown, (e) => {
507
+ b.current = e.pointerType;
508
+ }),
509
+ onPointerMove: r(c.onPointerMove, (e) => {
510
+ b.current = e.pointerType, a ? d.onItemLeave?.() : b.current === "mouse" && e.currentTarget.focus({ preventScroll: !0 });
511
+ }),
512
+ onPointerLeave: r(c.onPointerLeave, (e) => {
513
+ e.currentTarget === document.activeElement && d.onItemLeave?.();
514
+ }),
515
+ onKeyDown: r(c.onKeyDown, (e) => {
516
+ d.searchRef?.current !== "" && e.key === " " || (R.includes(e.key) && x(), e.key === " " && e.preventDefault());
517
+ })
518
+ })
519
+ })
520
+ });
521
+ });
522
+ je.displayName = Q;
523
+ var $ = "SelectItemText", Me = j.forwardRef((e, t) => {
524
+ let { __scopeSelect: n, className: r, style: i, ...s } = e, c = K($, n), u = Z($, n), d = Ae($, n), f = ne($, n), [p, m] = j.useState(null), h = o(t, (e) => m(e), d.onItemTextChange, (e) => u.itemTextRefCallback?.(e, d.value, d.disabled)), g = p?.textContent, _ = j.useMemo(() => /* @__PURE__ */ F("option", {
525
+ value: d.value,
526
+ disabled: d.disabled,
527
+ children: g
528
+ }, d.value), [
529
+ d.disabled,
530
+ d.value,
531
+ g
532
+ ]), { onNativeOptionAdd: v, onNativeOptionRemove: y } = f;
533
+ return a(() => (v(_), () => y(_)), [
534
+ v,
535
+ y,
536
+ _
537
+ ]), /* @__PURE__ */ I(P, { children: [/* @__PURE__ */ F(l.span, {
538
+ id: d.textId,
539
+ ...s,
540
+ ref: h
541
+ }), d.isSelected && c.valueNode && !c.valueNodeHasChildren ? N.createPortal(s.children, c.valueNode) : null] });
542
+ });
543
+ Me.displayName = $;
544
+ var Ne = "SelectItemIndicator", Pe = j.forwardRef((e, t) => {
545
+ let { __scopeSelect: n, ...r } = e;
546
+ return Ae(Ne, n).isSelected ? /* @__PURE__ */ F(l.span, {
547
+ "aria-hidden": !0,
548
+ ...r,
549
+ ref: t
550
+ }) : null;
551
+ });
552
+ Pe.displayName = Ne;
553
+ var Fe = "SelectScrollUpButton", Ie = j.forwardRef((e, t) => {
554
+ let n = Z(Fe, e.__scopeSelect), r = be(Fe, e.__scopeSelect), [i, s] = j.useState(!1), c = o(t, r.onScrollButtonChange);
555
+ return a(() => {
556
+ if (n.viewport && n.isPositioned) {
557
+ let e = function() {
558
+ s(t.scrollTop > 0);
559
+ }, t = n.viewport;
560
+ return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
561
+ }
562
+ }, [n.viewport, n.isPositioned]), i ? /* @__PURE__ */ F(ze, {
563
+ ...e,
564
+ ref: c,
565
+ onAutoScroll: () => {
566
+ let { viewport: e, selectedItem: t } = n;
567
+ e && t && (e.scrollTop -= t.offsetHeight);
568
+ }
569
+ }) : null;
570
+ });
571
+ Ie.displayName = Fe;
572
+ var Le = "SelectScrollDownButton", Re = j.forwardRef((e, t) => {
573
+ let n = Z(Le, e.__scopeSelect), r = be(Le, e.__scopeSelect), [i, s] = j.useState(!1), c = o(t, r.onScrollButtonChange);
574
+ return a(() => {
575
+ if (n.viewport && n.isPositioned) {
576
+ let e = function() {
577
+ let e = t.scrollHeight - t.clientHeight;
578
+ s(Math.ceil(t.scrollTop) < e);
579
+ }, t = n.viewport;
580
+ return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
581
+ }
582
+ }, [n.viewport, n.isPositioned]), i ? /* @__PURE__ */ F(ze, {
583
+ ...e,
584
+ ref: c,
585
+ onAutoScroll: () => {
586
+ let { viewport: e, selectedItem: t } = n;
587
+ e && t && (e.scrollTop += t.offsetHeight);
588
+ }
589
+ }) : null;
590
+ });
591
+ Re.displayName = Le;
592
+ var ze = j.forwardRef((e, t) => {
593
+ let { __scopeSelect: n, onAutoScroll: i, ...o } = e, s = Z("SelectScrollButton", n), c = j.useRef(null), u = V(n), d = j.useCallback(() => {
594
+ c.current !== null && (window.clearInterval(c.current), c.current = null);
595
+ }, []);
596
+ return j.useEffect(() => () => d(), [d]), a(() => {
597
+ u().find((e) => e.ref.current === document.activeElement)?.ref.current?.scrollIntoView({ block: "nearest" });
598
+ }, [u]), /* @__PURE__ */ F(l.div, {
599
+ "aria-hidden": !0,
600
+ ...o,
601
+ ref: t,
602
+ style: {
603
+ flexShrink: 0,
604
+ ...o.style
605
+ },
606
+ onPointerDown: r(o.onPointerDown, () => {
607
+ c.current === null && (c.current = window.setInterval(i, 50));
608
+ }),
609
+ onPointerMove: r(o.onPointerMove, () => {
610
+ s.onItemLeave?.(), c.current === null && (c.current = window.setInterval(i, 50));
611
+ }),
612
+ onPointerLeave: r(o.onPointerLeave, () => {
613
+ d();
614
+ })
615
+ });
616
+ }), Be = "SelectSeparator", Ve = j.forwardRef((e, t) => {
617
+ let { __scopeSelect: n, ...r } = e;
618
+ return /* @__PURE__ */ F(l.div, {
619
+ "aria-hidden": !0,
620
+ ...r,
621
+ ref: t
622
+ });
623
+ });
624
+ Ve.displayName = Be;
625
+ var He = "SelectArrow", Ue = j.forwardRef((e, t) => {
626
+ let { __scopeSelect: n, ...r } = e, i = G(n), a = K(He, n), o = Z(He, n);
627
+ return a.open && o.position === "popper" ? /* @__PURE__ */ F(T, {
628
+ ...i,
629
+ ...r,
630
+ ref: t
631
+ }) : null;
632
+ });
633
+ Ue.displayName = He;
634
+ var We = "SelectBubbleInput", Ge = j.forwardRef(({ __scopeSelect: e, value: t, ...n }, r) => {
635
+ let i = j.useRef(null), a = o(r, i), s = O(t);
636
+ return j.useEffect(() => {
637
+ let e = i.current;
638
+ if (!e) return;
639
+ let n = window.HTMLSelectElement.prototype, r = Object.getOwnPropertyDescriptor(n, "value").set;
640
+ if (s !== t && r) {
641
+ let n = new Event("change", { bubbles: !0 });
642
+ r.call(e, t), e.dispatchEvent(n);
643
+ }
644
+ }, [s, t]), /* @__PURE__ */ F(l.select, {
645
+ ...n,
646
+ style: {
647
+ ...k,
648
+ ...n.style
649
+ },
650
+ ref: a,
651
+ defaultValue: t
652
+ });
653
+ });
654
+ Ge.displayName = We;
655
+ function Ke(e) {
656
+ return e === "" || e === void 0;
657
+ }
658
+ function qe(e) {
659
+ let t = g(e), n = j.useRef(""), r = j.useRef(0), i = j.useCallback((e) => {
660
+ let i = n.current + e;
661
+ t(i), (function e(t) {
662
+ n.current = t, window.clearTimeout(r.current), t !== "" && (r.current = window.setTimeout(() => e(""), 1e3));
663
+ })(i);
664
+ }, [t]), a = j.useCallback(() => {
665
+ n.current = "", window.clearTimeout(r.current);
666
+ }, []);
667
+ return j.useEffect(() => () => window.clearTimeout(r.current), []), [
668
+ n,
669
+ i,
670
+ a
671
+ ];
672
+ }
673
+ function Je(e, t, n) {
674
+ let r = t.length > 1 && Array.from(t).every((e) => e === t[0]) ? t[0] : t, i = n ? e.indexOf(n) : -1, a = Ye(e, Math.max(i, 0));
675
+ r.length === 1 && (a = a.filter((e) => e !== n));
676
+ let o = a.find((e) => e.textValue.toLowerCase().startsWith(r.toLowerCase()));
677
+ return o === n ? void 0 : o;
678
+ }
679
+ function Ye(e, t) {
680
+ return e.map((n, r) => e[(t + r) % e.length]);
681
+ }
682
+ var Xe = q, Ze = J, Qe = ae, $e = se, et = le, tt = ue, nt = Se, rt = Ee, it = Oe, at = je, ot = Me, st = Pe, ct = Ie, lt = Re, ut = Ve, dt = 12, ft = (e) => {
683
+ let t = document.querySelectorAll("[aria-controls]");
684
+ for (let n of t) if (n.getAttribute("aria-controls") === e) return n;
685
+ return null;
686
+ }, pt = (e) => {
687
+ let t = e.id;
688
+ if (!t) return;
689
+ let n = ft(t);
690
+ if (!n) return;
691
+ let r = n.closest("[data-slot=\"dialog-content\"]");
692
+ if (!r) return;
693
+ let i = e.getBoundingClientRect(), a = r.getBoundingClientRect(), o = i.bottom - a.bottom + dt;
694
+ if (o > 0) {
695
+ r.scrollTo({
696
+ top: r.scrollTop + o,
697
+ behavior: "smooth"
698
+ });
699
+ return;
700
+ }
701
+ let s = a.top - i.top + dt;
702
+ s > 0 && r.scrollTo({
703
+ top: Math.max(0, r.scrollTop - s),
704
+ behavior: "smooth"
705
+ });
706
+ }, mt = ({ ...e }) => /* @__PURE__ */ F(Xe, {
707
+ "data-slot": "select",
708
+ ...e
709
+ }), ht = ({ ...e }) => /* @__PURE__ */ F(rt, {
710
+ "data-slot": "select-group",
711
+ ...e
712
+ }), gt = ({ className: e, ...t }) => /* @__PURE__ */ F(Qe, {
713
+ className: p("min-w-0 block max-w-full flex-1 overflow-hidden text-left text-ellipsis whitespace-nowrap text-input-text! data-placeholder:text-input-text-placeholder!", "**:max-w-full **:overflow-hidden **:text-ellipsis **:whitespace-nowrap", e),
714
+ "data-slot": "select-value",
715
+ ...t
716
+ }), _t = ({ asChild: e, children: n, className: r, size: i = "default", ...a }) => /* @__PURE__ */ I(Ze, {
717
+ asChild: e,
718
+ className: p("[&_svg:not([class*='text-'])]:text-text-placeholder focus-visible:border-ring focus-visible:ring-ring/50 gap-2 rounded-md px-3 py-2 text-sm shadow-xs h-9 *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 min-w-0 *:data-[slot=select-value]:min-w-0 flex w-fit cursor-pointer items-center justify-between border border-input-border bg-transparent text-input-text! transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-danger-400 data-placeholder:text-input-text-placeholder! *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center data-[state=open]:**:data-[slot=select-chevron]:rotate-180 [&_svg]:pointer-events-none [&_svg]:shrink-0", r),
719
+ "data-size": i,
720
+ "data-slot": "select-trigger",
721
+ ...a,
722
+ children: [n, !e && /* @__PURE__ */ F($e, {
723
+ asChild: !0,
724
+ children: /* @__PURE__ */ F(t, {
725
+ className: "size-4 opacity-50 transition-transform duration-200",
726
+ "data-slot": "select-chevron"
727
+ })
728
+ })]
729
+ }), vt = ({ align: e = "center", children: t, className: n, dropdownWidth: r = "trigger", onCloseAutoFocus: i, onFocusCapture: a, position: o = "popper", style: s, ...c }) => {
730
+ let l = M(!1), { dropdownShiftStyle: u, recalculateDropdownPosition: d, setDropdownElement: f } = A(), h = r === "trigger" ? "var(--radix-select-trigger-width)" : r === "content" ? "max-content" : r, g = r === "trigger" || r === "content" ? r : "custom";
731
+ return /* @__PURE__ */ F(et, { children: /* @__PURE__ */ I(tt, {
732
+ align: e,
733
+ className: p("min-w-32 relative z-50 max-h-[--radix-select-content-available-height] origin-[--radix-select-content-transform-origin] overflow-x-hidden overflow-y-auto text-text-primary motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2 motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:animate-in motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=open]:zoom-in-95", m(), o === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", n),
734
+ "data-dropdown-width-mode": g,
735
+ "data-dropdown-width-value": g === "custom" ? r : void 0,
736
+ "data-slot": "select-content",
737
+ onCloseAutoFocus: (e) => {
738
+ l.current = !1, i?.(e);
739
+ },
740
+ onFocusCapture: (e) => {
741
+ if (a?.(e), l.current) return;
742
+ l.current = !0;
743
+ let t = e.currentTarget;
744
+ requestAnimationFrame(() => {
745
+ pt(t), d();
746
+ });
747
+ },
748
+ position: o,
749
+ ref: f,
750
+ style: {
751
+ ...s,
752
+ width: h,
753
+ ...u
754
+ },
755
+ ...c,
756
+ children: [
757
+ /* @__PURE__ */ F(St, {}),
758
+ /* @__PURE__ */ F(nt, {
759
+ className: p("p-1", o === "popper" && "scroll-my-1 h-(--radix-select-trigger-height) w-full min-w-full"),
760
+ "data-slot": "select-viewport",
761
+ children: t
762
+ }),
763
+ /* @__PURE__ */ F(Ct, {})
764
+ ]
765
+ }) });
766
+ }, yt = ({ className: e, ...t }) => /* @__PURE__ */ F(it, {
767
+ className: p("px-2 py-1.5 text-xs text-text-primary", e),
768
+ "data-slot": "select-label",
769
+ ...t
770
+ }), bt = ({ className: t, children: n, ...r }) => /* @__PURE__ */ I(at, {
771
+ className: p("gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-none select-none hover:border-input-border--hover hover:bg-accent hover:text-text-inverted! focus:border-input-border--focus focus:bg-accent focus:text-text-inverted! data-disabled:pointer-events-none data-disabled:opacity-50 data-highlighted:bg-accent data-highlighted:text-text-inverted! [&_svg]:pointer-events-none [&_svg]:shrink-0 hover:[&_svg]:text-text-inverted! focus:[&_svg]:text-text-inverted! data-highlighted:[&_svg]:text-text-inverted! *:[span]:last:flex *:[span]:last:items-center", t),
772
+ "data-slot": "select-item",
773
+ ...r,
774
+ children: [/* @__PURE__ */ F("span", {
775
+ className: "right-2 size-3.5 absolute flex items-center justify-center",
776
+ children: /* @__PURE__ */ F(st, { children: /* @__PURE__ */ F(e, { className: "size-4" }) })
777
+ }), /* @__PURE__ */ F(ot, {
778
+ className: "min-w-0 block max-w-full truncate whitespace-nowrap",
779
+ children: n
780
+ })]
781
+ }), xt = ({ className: e, ...t }) => /* @__PURE__ */ F(ut, {
782
+ className: p("bg-border -mx-1 my-1 pointer-events-none h-px", e),
783
+ "data-slot": "select-separator",
784
+ ...t
785
+ }), St = ({ className: e, ...t }) => /* @__PURE__ */ F(ct, {
786
+ className: p("py-1 flex cursor-default items-center justify-center", e),
787
+ "data-slot": "select-scroll-up-button",
788
+ ...t,
789
+ children: /* @__PURE__ */ F(n, { className: "size-4" })
790
+ }), Ct = ({ className: e, ...n }) => /* @__PURE__ */ F(lt, {
791
+ className: p("py-1 flex cursor-default items-center justify-center", e),
792
+ "data-slot": "select-scroll-down-button",
793
+ ...n,
794
+ children: /* @__PURE__ */ F(t, { className: "size-4" })
795
+ });
796
+ //#endregion
797
+ export { nt as C, Ze as S, et as _, yt as a, ct as b, xt as c, tt as d, rt as f, ot as g, st as h, bt as i, _t as l, at as m, vt as n, Ct as o, $e as p, ht as r, St as s, mt as t, gt as u, Xe as v, ut as x, lt as y };