@yselimcan/ui 0.0.1 → 0.0.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 (267) hide show
  1. package/dist/index.d.ts +231 -1
  2. package/dist/index.js +100 -15331
  3. package/dist/index10.js +137 -0
  4. package/dist/index100.js +7 -0
  5. package/dist/index101.js +69 -0
  6. package/dist/index102.js +11 -0
  7. package/dist/index103.js +16 -0
  8. package/dist/index104.js +6 -0
  9. package/dist/index105.js +6 -0
  10. package/dist/index106.js +8 -0
  11. package/dist/index107.js +10 -0
  12. package/dist/index108.js +90 -0
  13. package/dist/index109.js +15 -0
  14. package/dist/index11.js +21 -0
  15. package/dist/index110.js +65 -0
  16. package/dist/index111.js +40 -0
  17. package/dist/index112.js +16 -0
  18. package/dist/index113.js +35 -0
  19. package/dist/index114.js +21 -0
  20. package/dist/index115.js +8 -0
  21. package/dist/index116.js +6 -0
  22. package/dist/index117.js +7 -0
  23. package/dist/index118.js +14 -0
  24. package/dist/index119.js +21 -0
  25. package/dist/index12.js +20 -0
  26. package/dist/index120.js +15 -0
  27. package/dist/index121.js +299 -0
  28. package/dist/index122.js +7 -0
  29. package/dist/index123.js +41 -0
  30. package/dist/index124.js +128 -0
  31. package/dist/index125.js +23 -0
  32. package/dist/index126.js +79 -0
  33. package/dist/index127.js +67 -0
  34. package/dist/index128.js +48 -0
  35. package/dist/index129.js +32 -0
  36. package/dist/index13.js +206 -0
  37. package/dist/index130.js +14 -0
  38. package/dist/index131.js +69 -0
  39. package/dist/index132.js +56 -0
  40. package/dist/index133.js +15 -0
  41. package/dist/index134.js +15 -0
  42. package/dist/index135.js +15 -0
  43. package/dist/index136.js +43 -0
  44. package/dist/index137.js +14 -0
  45. package/dist/index138.js +11 -0
  46. package/dist/index139.js +8 -0
  47. package/dist/index14.js +24 -0
  48. package/dist/index140.js +90 -0
  49. package/dist/index141.js +14 -0
  50. package/dist/index142.js +266 -0
  51. package/dist/index143.js +82 -0
  52. package/dist/index144.js +14 -0
  53. package/dist/index145.js +59 -0
  54. package/dist/index146.js +14 -0
  55. package/dist/index147.js +14 -0
  56. package/dist/index148.js +33 -0
  57. package/dist/index149.js +21 -0
  58. package/dist/index15.js +19 -0
  59. package/dist/index150.js +69 -0
  60. package/dist/index151.js +107 -0
  61. package/dist/index152.js +11 -0
  62. package/dist/index153.js +11 -0
  63. package/dist/index154.js +25 -0
  64. package/dist/index155.js +106 -0
  65. package/dist/index156.js +10 -0
  66. package/dist/index157.js +35 -0
  67. package/dist/index158.js +233 -0
  68. package/dist/index159.js +77 -0
  69. package/dist/index16.js +8 -0
  70. package/dist/index160.js +286 -0
  71. package/dist/index161.js +56 -0
  72. package/dist/index162.js +6 -0
  73. package/dist/index163.js +17 -0
  74. package/dist/index164.js +18 -0
  75. package/dist/index165.js +31 -0
  76. package/dist/index166.js +10 -0
  77. package/dist/index167.js +25 -0
  78. package/dist/index168.js +27 -0
  79. package/dist/index169.js +163 -0
  80. package/dist/index17.js +46 -0
  81. package/dist/index170.js +116 -0
  82. package/dist/index171.js +78 -0
  83. package/dist/index172.js +67 -0
  84. package/dist/index173.js +72 -0
  85. package/dist/index174.js +16 -0
  86. package/dist/index175.js +8 -0
  87. package/dist/index176.js +20 -0
  88. package/dist/index177.js +24 -0
  89. package/dist/index178.js +61 -0
  90. package/dist/index179.js +20 -0
  91. package/dist/index18.js +41 -0
  92. package/dist/index180.js +30 -0
  93. package/dist/index181.js +45 -0
  94. package/dist/index182.js +24 -0
  95. package/dist/index183.js +51 -0
  96. package/dist/index184.js +54 -0
  97. package/dist/index185.js +20 -0
  98. package/dist/index186.js +14 -0
  99. package/dist/index187.js +38 -0
  100. package/dist/index188.js +18 -0
  101. package/dist/index189.js +82 -0
  102. package/dist/index19.js +80 -0
  103. package/dist/index190.js +26 -0
  104. package/dist/index191.js +6 -0
  105. package/dist/index192.js +14 -0
  106. package/dist/index193.js +13 -0
  107. package/dist/index194.js +43 -0
  108. package/dist/index195.js +7 -0
  109. package/dist/index196.js +12 -0
  110. package/dist/index197.js +14 -0
  111. package/dist/index198.js +120 -0
  112. package/dist/index199.js +14 -0
  113. package/dist/index20.js +25 -0
  114. package/dist/index200.js +8 -0
  115. package/dist/index201.js +50 -0
  116. package/dist/index202.js +202 -0
  117. package/dist/index203.js +50 -0
  118. package/dist/index204.js +22 -0
  119. package/dist/index205.js +29 -0
  120. package/dist/index206.js +6 -0
  121. package/dist/index207.js +24 -0
  122. package/dist/index208.js +130 -0
  123. package/dist/index209.js +47 -0
  124. package/dist/index21.js +40 -0
  125. package/dist/index210.js +20 -0
  126. package/dist/index211.js +7 -0
  127. package/dist/index212.js +183 -0
  128. package/dist/index213.js +78 -0
  129. package/dist/index214.js +401 -0
  130. package/dist/index215.js +9 -0
  131. package/dist/index216.js +7 -0
  132. package/dist/index217.js +19 -0
  133. package/dist/index218.js +17 -0
  134. package/dist/index219.js +35 -0
  135. package/dist/index22.js +31 -0
  136. package/dist/index220.js +41 -0
  137. package/dist/index221.js +59 -0
  138. package/dist/index222.js +30 -0
  139. package/dist/index223.js +10 -0
  140. package/dist/index224.js +15 -0
  141. package/dist/index225.js +14 -0
  142. package/dist/index226.js +14 -0
  143. package/dist/index227.js +24 -0
  144. package/dist/index228.js +14 -0
  145. package/dist/index229.js +10 -0
  146. package/dist/index23.js +25 -0
  147. package/dist/index230.js +45 -0
  148. package/dist/index231.js +599 -0
  149. package/dist/index232.js +14 -0
  150. package/dist/index233.js +6 -0
  151. package/dist/index234.js +12 -0
  152. package/dist/index235.js +14 -0
  153. package/dist/index236.js +17 -0
  154. package/dist/index237.js +211 -0
  155. package/dist/index238.js +6 -0
  156. package/dist/index239.js +16 -0
  157. package/dist/index24.js +56 -0
  158. package/dist/index240.js +50 -0
  159. package/dist/index241.js +6 -0
  160. package/dist/index242.js +15 -0
  161. package/dist/index243.js +60 -0
  162. package/dist/index244.js +32 -0
  163. package/dist/index245.js +16 -0
  164. package/dist/index246.js +11 -0
  165. package/dist/index247.js +209 -0
  166. package/dist/index248.js +23 -0
  167. package/dist/index249.js +8 -0
  168. package/dist/index25.js +35 -0
  169. package/dist/index250.js +324 -0
  170. package/dist/index251.js +5 -0
  171. package/dist/index252.js +5 -0
  172. package/dist/index253.js +489 -0
  173. package/dist/index254.js +10 -0
  174. package/dist/index255.js +4 -0
  175. package/dist/index256.js +46 -0
  176. package/dist/index257.js +58 -0
  177. package/dist/index258.js +10 -0
  178. package/dist/index259.js +4 -0
  179. package/dist/index26.js +7 -0
  180. package/dist/index260.js +57 -0
  181. package/dist/index261.js +58 -0
  182. package/dist/index262.js +4 -0
  183. package/dist/index263.js +4 -0
  184. package/dist/index264.js +4 -0
  185. package/dist/index265.js +4 -0
  186. package/dist/index27.js +82 -0
  187. package/dist/index28.js +32 -0
  188. package/dist/index29.js +6 -0
  189. package/dist/index3.js +181 -0
  190. package/dist/index30.js +9 -0
  191. package/dist/index31.js +6 -0
  192. package/dist/index32.js +23 -0
  193. package/dist/index33.js +207 -0
  194. package/dist/index34.js +25 -0
  195. package/dist/index35.js +102 -0
  196. package/dist/index36.js +69 -0
  197. package/dist/index37.js +66 -0
  198. package/dist/index38.js +113 -0
  199. package/dist/index39.js +53 -0
  200. package/dist/index4.js +47 -0
  201. package/dist/index40.js +35 -0
  202. package/dist/index41.js +28 -0
  203. package/dist/index42.js +18 -0
  204. package/dist/index43.js +27 -0
  205. package/dist/index44.js +25 -0
  206. package/dist/index45.js +36 -0
  207. package/dist/index46.js +78 -0
  208. package/dist/index47.js +65 -0
  209. package/dist/index48.js +128 -0
  210. package/dist/index49.js +19 -0
  211. package/dist/index5.js +52 -0
  212. package/dist/index50.js +86 -0
  213. package/dist/index51.js +6 -0
  214. package/dist/index52.js +268 -0
  215. package/dist/index53.js +25 -0
  216. package/dist/index54.js +207 -0
  217. package/dist/index55.js +146 -0
  218. package/dist/index56.js +88 -0
  219. package/dist/index57.js +29 -0
  220. package/dist/index58.js +30 -0
  221. package/dist/index59.js +48 -0
  222. package/dist/index6.js +93 -0
  223. package/dist/index60.js +79 -0
  224. package/dist/index61.js +45 -0
  225. package/dist/index62.js +46 -0
  226. package/dist/index63.js +76 -0
  227. package/dist/index64.js +45 -0
  228. package/dist/index65.js +22 -0
  229. package/dist/index66.js +101 -0
  230. package/dist/index67.js +14 -0
  231. package/dist/index68.js +6 -0
  232. package/dist/index69.js +321 -0
  233. package/dist/index7.js +294 -0
  234. package/dist/index70.js +24 -0
  235. package/dist/index71.js +143 -0
  236. package/dist/index72.js +200 -0
  237. package/dist/index73.js +43 -0
  238. package/dist/index74.js +29 -0
  239. package/dist/index75.js +148 -0
  240. package/dist/index76.js +32 -0
  241. package/dist/index77.js +53 -0
  242. package/dist/index78.js +28 -0
  243. package/dist/index79.js +15 -0
  244. package/dist/index8.js +264 -0
  245. package/dist/index80.js +15 -0
  246. package/dist/index81.js +135 -0
  247. package/dist/index82.js +31 -0
  248. package/dist/index83.js +35 -0
  249. package/dist/index84.js +17 -0
  250. package/dist/index85.js +2765 -0
  251. package/dist/index86.js +57 -0
  252. package/dist/index87.js +14 -0
  253. package/dist/index88.js +98 -0
  254. package/dist/index89.js +92 -0
  255. package/dist/index9.js +197 -0
  256. package/dist/index90.js +21 -0
  257. package/dist/index91.js +18 -0
  258. package/dist/index92.js +35 -0
  259. package/dist/index93.js +14 -0
  260. package/dist/index94.js +136 -0
  261. package/dist/index95.js +30 -0
  262. package/dist/index96.js +11 -0
  263. package/dist/index97.js +7 -0
  264. package/dist/index98.js +15 -0
  265. package/dist/index99.js +25 -0
  266. package/dist/styles.css +1 -1
  267. package/package.json +3 -2
@@ -0,0 +1,101 @@
1
+ "use client";
2
+ import _ from "./index100.js";
3
+ import * as o from "react";
4
+ import { useMenuRootContext as L } from "./index133.js";
5
+ import { useBaseUiId as j } from "./index115.js";
6
+ import { triggerOpenStateMapping as q } from "./index111.js";
7
+ import { useCompositeListItem as z } from "./index132.js";
8
+ import { useMenuItem as F } from "./index131.js";
9
+ import { useRenderElement as G } from "./index86.js";
10
+ import { useMenuPositionerContext as J } from "./index135.js";
11
+ import { useMenuSubmenuRootContext as K } from "./index156.js";
12
+ import { useTriggerRegistration as Q } from "./index126.js";
13
+ import { useHoverReferenceInteraction as W } from "./index169.js";
14
+ import { safePolygon as X } from "./index170.js";
15
+ import { useClick as Y } from "./index127.js";
16
+ import { useInteractions as Z } from "./index128.js";
17
+ const $ = /* @__PURE__ */ o.forwardRef(function(m, v) {
18
+ const {
19
+ render: te,
20
+ className: oe,
21
+ label: re,
22
+ id: R,
23
+ nativeButton: I = !1,
24
+ openOnHover: l = !0,
25
+ delay: g = 100,
26
+ closeDelay: i = 0,
27
+ disabled: S = !1,
28
+ ...T
29
+ } = m, u = z(), E = J(), {
30
+ store: e
31
+ } = L(), a = j(R), c = e.useState("open"), p = e.useState("floatingRootContext"), x = e.useState("floatingTreeRoot"), d = Q(a, e), C = o.useCallback((t) => {
32
+ const U = d(t);
33
+ return t !== null && e.select("open") && e.select("activeTriggerId") == null && e.update({
34
+ activeTriggerId: a,
35
+ activeTriggerElement: t,
36
+ closeDelay: i
37
+ }), U;
38
+ }, [d, i, e, a]), f = o.useRef(null), P = o.useCallback((t) => {
39
+ f.current = t, e.set("activeTriggerElement", t);
40
+ }, [e]), b = K();
41
+ if (!b?.parentMenu)
42
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Menu.SubmenuTrigger> must be placed in <Menu.SubmenuRoot>." : _(37));
43
+ e.useSyncedValue("closeDelay", i);
44
+ const r = b.parentMenu, h = r.useState("itemProps"), n = r.useState("isActive", u.index), y = o.useMemo(() => ({
45
+ type: "submenu-trigger",
46
+ setActive: () => r.set("activeIndex", u.index)
47
+ }), [r, u.index]), k = e.useState("disabled"), s = S || k, {
48
+ getItemProps: O,
49
+ itemRef: w
50
+ } = F({
51
+ closeOnClick: !1,
52
+ disabled: s,
53
+ highlighted: n,
54
+ id: a,
55
+ store: e,
56
+ nativeButton: I,
57
+ itemMetadata: y,
58
+ nodeId: E?.nodeId
59
+ }), N = e.useState("hoverEnabled"), D = e.useState("allowMouseEnter"), B = W(p, {
60
+ enabled: N && l && !s && D,
61
+ handleClose: X({
62
+ blockPointerEvents: !0
63
+ }),
64
+ mouseOnly: !0,
65
+ move: !0,
66
+ restMs: g,
67
+ delay: {
68
+ open: g,
69
+ close: i
70
+ },
71
+ triggerElementRef: f,
72
+ externalTree: x
73
+ }), A = Y(p, {
74
+ enabled: !s,
75
+ event: "mousedown",
76
+ toggle: !l,
77
+ ignoreMouse: l,
78
+ stickIfOpen: !1
79
+ }), V = Z([A]), M = e.useState("triggerProps", !0);
80
+ delete M.id;
81
+ const H = o.useMemo(() => ({
82
+ disabled: s,
83
+ highlighted: n,
84
+ open: c
85
+ }), [s, n, c]);
86
+ return G("div", m, {
87
+ state: H,
88
+ stateAttributesMapping: q,
89
+ props: [V.getReferenceProps(), B, M, h, {
90
+ tabIndex: c || n ? 0 : -1,
91
+ onBlur() {
92
+ n && r.set("activeIndex", null);
93
+ }
94
+ }, T, O],
95
+ ref: [v, u.ref, w, C, P]
96
+ });
97
+ });
98
+ process.env.NODE_ENV !== "production" && ($.displayName = "MenuSubmenuTrigger");
99
+ export {
100
+ $ as MenuSubmenuTrigger
101
+ };
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import * as t from "react";
3
+ import { jsx as e } from "react/jsx-runtime";
4
+ import { FieldControl as n } from "./index88.js";
5
+ const p = /* @__PURE__ */ t.forwardRef(function(o, r) {
6
+ return /* @__PURE__ */ e(n, {
7
+ ref: r,
8
+ ...o
9
+ });
10
+ });
11
+ process.env.NODE_ENV !== "production" && (p.displayName = "Input");
12
+ export {
13
+ p as Input
14
+ };
@@ -0,0 +1,6 @@
1
+ import o from "./index90.js";
2
+ const e = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]], t = o("chevron-up", e);
3
+ export {
4
+ e as __iconNode,
5
+ t as default
6
+ };
@@ -0,0 +1,321 @@
1
+ "use client";
2
+ import * as n from "react";
3
+ import { visuallyHidden as _e } from "./index174.js";
4
+ import { useMergedRefs as Ge } from "./index101.js";
5
+ import { useRefWithInit as Je } from "./index107.js";
6
+ import { useOnFirstRender as Ke } from "./index175.js";
7
+ import { useControlled as re } from "./index129.js";
8
+ import { useIsoLayoutEffect as C } from "./index97.js";
9
+ import { useStableCallback as V } from "./index95.js";
10
+ import { useValueAsRef as Qe } from "./index176.js";
11
+ import { SelectRootContext as Xe, SelectFloatingContext as Ze } from "./index177.js";
12
+ import { useFieldRootContext as $e } from "./index178.js";
13
+ import { useLabelableContext as et } from "./index179.js";
14
+ import { useLabelableId as tt } from "./index180.js";
15
+ import { useTransitionStatus as ot } from "./index136.js";
16
+ import { selectors as w } from "./index181.js";
17
+ import { createChangeEventDetails as se } from "./index113.js";
18
+ import { useOpenChangeComplete as nt } from "./index119.js";
19
+ import { useFormContext as rt } from "./index182.js";
20
+ import { useField as st } from "./index183.js";
21
+ import { stringifyAsValue as I } from "./index184.js";
22
+ import { defaultItemEquality as lt, findItemIndex as le } from "./index185.js";
23
+ import { useValueChanged as it } from "./index186.js";
24
+ import { useOpenInteractionType as at } from "./index154.js";
25
+ import { jsx as q, jsxs as ut } from "react/jsx-runtime";
26
+ import { useFloatingRootContext as ct } from "./index187.js";
27
+ import { useClick as ft } from "./index127.js";
28
+ import { useDismiss as mt } from "./index158.js";
29
+ import { useListNavigation as dt } from "./index160.js";
30
+ import { useTypeahead as pt } from "./index161.js";
31
+ import { useInteractions as gt } from "./index128.js";
32
+ import { EMPTY_ARRAY as ie } from "./index106.js";
33
+ import { useStore as A } from "./index188.js";
34
+ import { mergeProps as ht } from "./index27.js";
35
+ import { none as Rt } from "./index114.js";
36
+ import { Store as vt } from "./index189.js";
37
+ function eo(ae) {
38
+ const {
39
+ id: N,
40
+ value: ue,
41
+ defaultValue: j = null,
42
+ onValueChange: ce,
43
+ open: fe,
44
+ defaultOpen: me = !1,
45
+ onOpenChange: de,
46
+ name: pe,
47
+ disabled: ge = !1,
48
+ readOnly: p = !1,
49
+ required: P = !1,
50
+ modal: S = !0,
51
+ actionsRef: z,
52
+ inputRef: he,
53
+ onOpenChangeComplete: M,
54
+ items: E,
55
+ multiple: r = !1,
56
+ itemToStringLabel: R,
57
+ itemToStringValue: l,
58
+ isItemEqualToValue: g = lt,
59
+ highlightItemOnHover: W = !0,
60
+ children: Re
61
+ } = ae, {
62
+ clearErrors: ve
63
+ } = rt(), {
64
+ setDirty: Y,
65
+ shouldValidateOnChange: B,
66
+ validityData: _,
67
+ setFilled: G,
68
+ name: Ie,
69
+ disabled: be,
70
+ validation: u
71
+ } = $e(), {
72
+ controlId: ye
73
+ } = et(), b = tt({
74
+ id: N
75
+ }), h = be || ge, c = Ie ?? pe, [e, xe] = re({
76
+ controlled: ue,
77
+ default: r ? j ?? ie : j,
78
+ name: "Select",
79
+ state: "value"
80
+ }), [i, Ce] = re({
81
+ controlled: fe,
82
+ default: me,
83
+ name: "Select",
84
+ state: "open"
85
+ }), T = n.useRef([]), J = n.useRef([]), O = n.useRef(null), Ve = n.useRef(null), we = n.useRef(0), Ae = n.useRef(null), v = n.useRef([]), K = n.useRef(!1), Pe = n.useRef(!1), Se = n.useRef(null), Me = n.useRef({
86
+ allowSelectedMouseUp: !1,
87
+ allowUnselectedMouseUp: !1
88
+ }), Ee = n.useRef(!1), {
89
+ mounted: U,
90
+ setMounted: Te,
91
+ transitionStatus: F
92
+ } = ot(i), {
93
+ openMethod: Q,
94
+ triggerProps: X,
95
+ reset: Oe
96
+ } = at(i), o = Je(() => new vt({
97
+ id: b,
98
+ modal: S,
99
+ multiple: r,
100
+ itemToStringLabel: R,
101
+ itemToStringValue: l,
102
+ isItemEqualToValue: g,
103
+ value: e,
104
+ open: i,
105
+ mounted: U,
106
+ transitionStatus: F,
107
+ items: E,
108
+ forceMount: !1,
109
+ openMethod: null,
110
+ activeIndex: null,
111
+ selectedIndex: null,
112
+ popupProps: {},
113
+ triggerProps: {},
114
+ triggerElement: null,
115
+ positionerElement: null,
116
+ listElement: null,
117
+ scrollUpArrowVisible: !1,
118
+ scrollDownArrowVisible: !1,
119
+ hasScrollArrows: !1
120
+ })).current, Z = A(o, w.activeIndex), $ = A(o, w.selectedIndex), Ue = A(o, w.triggerElement), Fe = A(o, w.positionerElement), De = n.useMemo(() => r && Array.isArray(e) && e.length === 0 ? "" : I(e, l), [r, e, l]), He = n.useMemo(() => r && Array.isArray(e) ? e.map((t) => I(t, l)) : I(e, l), [r, e, l]), Le = Qe(o.state.triggerElement);
121
+ st({
122
+ id: b,
123
+ commit: u.commit,
124
+ value: e,
125
+ controlRef: Le,
126
+ name: c,
127
+ getValue: () => He
128
+ });
129
+ const ee = n.useRef(e);
130
+ C(() => {
131
+ e !== ee.current && o.set("forceMount", !0);
132
+ }, [o, e]), C(() => {
133
+ G(e !== null);
134
+ }, [e, G]), C(function() {
135
+ if (i)
136
+ return;
137
+ const s = v.current;
138
+ if (r) {
139
+ const m = Array.isArray(e) ? e : [];
140
+ if (m.length === 0) {
141
+ o.set("selectedIndex", null);
142
+ return;
143
+ }
144
+ const a = m[m.length - 1], x = le(s, a, g);
145
+ o.set("selectedIndex", x === -1 ? null : x);
146
+ return;
147
+ }
148
+ const f = le(s, e, g);
149
+ o.set("selectedIndex", f === -1 ? null : f);
150
+ }, [r, i, e, v, g, o]), it(e, () => {
151
+ ve(c), Y(e !== _.initialValue), B() ? u.commit(e) : u.commit(e, !0);
152
+ });
153
+ const D = V((t, s) => {
154
+ if (de?.(t, s), !s.isCanceled && (Ce(t), !t && o.state.activeIndex !== null)) {
155
+ const f = T.current[o.state.activeIndex];
156
+ queueMicrotask(() => {
157
+ f?.setAttribute("tabindex", "-1");
158
+ });
159
+ }
160
+ }), H = V(() => {
161
+ Te(!1), o.set("activeIndex", null), Oe(), M?.(!1);
162
+ });
163
+ nt({
164
+ enabled: !z,
165
+ open: i,
166
+ ref: O,
167
+ onComplete() {
168
+ i || H();
169
+ }
170
+ }), n.useImperativeHandle(z, () => ({
171
+ unmount: H
172
+ }), [H]);
173
+ const y = V((t, s) => {
174
+ ce?.(t, s), !s.isCanceled && xe(t);
175
+ }), te = V(() => {
176
+ const t = o.state.listElement || O.current;
177
+ if (!t)
178
+ return;
179
+ const s = t.scrollTop, f = t.scrollTop + t.clientHeight, m = s > 1, a = f < t.scrollHeight - 1;
180
+ o.state.scrollUpArrowVisible !== m && o.set("scrollUpArrowVisible", m), o.state.scrollDownArrowVisible !== a && o.set("scrollDownArrowVisible", a);
181
+ }), d = ct({
182
+ open: i,
183
+ onOpenChange: D,
184
+ elements: {
185
+ reference: Ue,
186
+ floating: Fe
187
+ }
188
+ }), ke = ft(d, {
189
+ enabled: !p && !h,
190
+ event: "mousedown"
191
+ }), qe = mt(d, {
192
+ bubbles: !1
193
+ }), Ne = dt(d, {
194
+ enabled: !p && !h,
195
+ listRef: T,
196
+ activeIndex: Z,
197
+ selectedIndex: $,
198
+ disabledIndices: ie,
199
+ onNavigate(t) {
200
+ t === null && !i || o.set("activeIndex", t);
201
+ },
202
+ // Implement our own listeners since `onPointerLeave` on each option fires while scrolling with
203
+ // the `alignItemWithTrigger=true`, causing a performance issue on Chrome.
204
+ focusItemOnHover: !1
205
+ }), je = pt(d, {
206
+ enabled: !p && !h && (i || !r),
207
+ listRef: J,
208
+ activeIndex: Z,
209
+ selectedIndex: $,
210
+ onMatch(t) {
211
+ i ? o.set("activeIndex", t) : y(v.current[t], se("none"));
212
+ },
213
+ onTypingChange(t) {
214
+ K.current = t;
215
+ }
216
+ }), {
217
+ getReferenceProps: oe,
218
+ getFloatingProps: L,
219
+ getItemProps: ne
220
+ } = gt([ke, qe, Ne, je]), k = n.useMemo(() => ht(oe(), X), [oe, X]);
221
+ Ke(() => {
222
+ o.update({
223
+ popupProps: L(),
224
+ triggerProps: k
225
+ });
226
+ }), C(() => {
227
+ o.update({
228
+ id: b,
229
+ modal: S,
230
+ multiple: r,
231
+ value: e,
232
+ open: i,
233
+ mounted: U,
234
+ transitionStatus: F,
235
+ popupProps: L(),
236
+ triggerProps: k,
237
+ items: E,
238
+ itemToStringLabel: R,
239
+ itemToStringValue: l,
240
+ isItemEqualToValue: g,
241
+ openMethod: Q
242
+ });
243
+ }, [o, b, S, r, e, i, U, F, L, k, E, R, l, g, Q]);
244
+ const ze = n.useMemo(() => ({
245
+ store: o,
246
+ name: c,
247
+ required: P,
248
+ disabled: h,
249
+ readOnly: p,
250
+ multiple: r,
251
+ itemToStringLabel: R,
252
+ itemToStringValue: l,
253
+ highlightItemOnHover: W,
254
+ setValue: y,
255
+ setOpen: D,
256
+ listRef: T,
257
+ popupRef: O,
258
+ scrollHandlerRef: Ve,
259
+ handleScrollArrowVisibility: te,
260
+ scrollArrowsMountedCountRef: we,
261
+ getItemProps: ne,
262
+ events: d.context.events,
263
+ valueRef: Ae,
264
+ valuesRef: v,
265
+ labelsRef: J,
266
+ typingRef: K,
267
+ selectionRef: Me,
268
+ selectedItemTextRef: Se,
269
+ validation: u,
270
+ onOpenChangeComplete: M,
271
+ keyboardActiveRef: Pe,
272
+ alignItemWithTriggerActiveRef: Ee,
273
+ initialValueRef: ee
274
+ }), [o, c, P, h, p, r, R, l, W, y, D, ne, d.context.events, u, M, te]), We = Ge(he, u.inputRef), Ye = r && Array.isArray(e) && e.length > 0, Be = n.useMemo(() => !r || !Array.isArray(e) || !c ? null : e.map((t) => {
275
+ const s = I(t, l);
276
+ return /* @__PURE__ */ q("input", {
277
+ type: "hidden",
278
+ name: c,
279
+ value: s
280
+ }, s);
281
+ }), [r, e, c, l]);
282
+ return /* @__PURE__ */ q(Xe.Provider, {
283
+ value: ze,
284
+ children: /* @__PURE__ */ ut(Ze.Provider, {
285
+ value: d,
286
+ children: [Re, /* @__PURE__ */ q("input", {
287
+ ...u.getInputValidationProps({
288
+ onFocus() {
289
+ o.state.triggerElement?.focus();
290
+ },
291
+ // Handle browser autofill.
292
+ onChange(t) {
293
+ if (t.nativeEvent.defaultPrevented)
294
+ return;
295
+ const s = t.target.value, f = se(Rt, t.nativeEvent);
296
+ function m() {
297
+ if (r)
298
+ return;
299
+ const a = v.current.find((x) => I(x, l).toLowerCase() === s.toLowerCase());
300
+ a != null && (Y(a !== _.initialValue), y(a, f), B() && u.commit(a));
301
+ }
302
+ o.set("forceMount", !0), queueMicrotask(m);
303
+ }
304
+ }),
305
+ id: N || ye || void 0,
306
+ name: r ? void 0 : c,
307
+ value: De,
308
+ disabled: h,
309
+ required: P && !Ye,
310
+ readOnly: p,
311
+ ref: We,
312
+ style: _e,
313
+ tabIndex: -1,
314
+ "aria-hidden": !0
315
+ }), Be]
316
+ })
317
+ });
318
+ }
319
+ export {
320
+ eo as SelectRoot
321
+ };