@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,286 @@
1
+ import * as m from "react";
2
+ import { isHTMLElement as be } from "./index94.js";
3
+ import { useValueAsRef as A } from "./index176.js";
4
+ import { useStableCallback as ae } from "./index95.js";
5
+ import { useIsoLayoutEffect as L } from "./index97.js";
6
+ import { useFloatingParentNodeId as ze, useFloatingTree as Ge } from "./index145.js";
7
+ import { createChangeEventDetails as X } from "./index113.js";
8
+ import { enqueueFocus as We } from "./index239.js";
9
+ import { ARROW_DOWN as ee, ARROW_LEFT as W, ARROW_RIGHT as _, ARROW_UP as Te } from "./index246.js";
10
+ import { isIndexOutOfListBounds as Me, getMinListIndex as fe, getMaxListIndex as Pe, createGridCellMap as _e, isListIndexDisabled as de, getGridNavigatedIndex as qe, getGridCellIndexOfCorner as He, getGridCellIndices as $e, findNonDisabledListIndex as Y } from "./index247.js";
11
+ import { getFloatingFocusElement as Be, isTypeableCombobox as Ue, activeElement as ve, getDocument as je, contains as Ce, getTarget as Je } from "./index173.js";
12
+ import { stopEvent as T, isVirtualClick as Qe, isVirtualPointerEvent as Xe } from "./index222.js";
13
+ import { listNavigation as me, focusOut as Ye } from "./index114.js";
14
+ const Ze = "Escape";
15
+ function re(o, p, c) {
16
+ switch (o) {
17
+ case "vertical":
18
+ return p;
19
+ case "horizontal":
20
+ return c;
21
+ default:
22
+ return p || c;
23
+ }
24
+ }
25
+ function Z(o, p) {
26
+ return re(p, o === Te || o === ee, o === W || o === _);
27
+ }
28
+ function pe(o, p, c) {
29
+ return re(p, o === ee, c ? o === W : o === _) || o === "Enter" || o === " " || o === "";
30
+ }
31
+ function er(o, p, c) {
32
+ return re(p, c ? o === W : o === _, o === ee);
33
+ }
34
+ function rr(o, p, c, s) {
35
+ const g = c ? o === _ : o === W, O = o === Te;
36
+ return p === "both" || p === "horizontal" && s && s > 1 ? o === Ze : re(p, g, O);
37
+ }
38
+ function pr(o, p) {
39
+ const c = "rootStore" in o ? o.rootStore : o, s = c.useState("open"), g = c.useState("floatingElement"), O = c.useState("domReferenceElement"), ge = c.context.dataRef, {
40
+ listRef: n,
41
+ activeIndex: y,
42
+ onNavigate: Se = () => {
43
+ },
44
+ enabled: E = !0,
45
+ selectedIndex: N = null,
46
+ allowEscape: te = !1,
47
+ loopFocus: q = !1,
48
+ nested: b = !1,
49
+ rtl: x = !1,
50
+ virtual: f = !1,
51
+ focusItemOnOpen: M = "auto",
52
+ focusItemOnHover: ne = !0,
53
+ openOnArrowKeyDown: oe = !0,
54
+ disabledIndices: R = void 0,
55
+ orientation: d = "vertical",
56
+ parentOrientation: Ie,
57
+ cols: S = 1,
58
+ scrollItemIntoView: Fe = !0,
59
+ itemSizes: Ae,
60
+ dense: Le = !1,
61
+ id: Re,
62
+ resetOnPointerLeave: Ne = !0,
63
+ externalTree: ke
64
+ } = p;
65
+ process.env.NODE_ENV !== "production" && (te && (q || console.warn("`useListNavigation` looping must be enabled to allow escaping."), f || console.warn("`useListNavigation` must be virtual to allow escaping.")), d === "vertical" && S > 1 && console.warn("In grid list navigation mode (`cols` > 1), the `orientation` should", 'be either "horizontal" or "both".'));
66
+ const De = Be(g), k = A(De), H = ze(), P = Ge(ke);
67
+ L(() => {
68
+ ge.current.orientation = d;
69
+ }, [ge, d]);
70
+ const ie = Ue(O), v = m.useRef(M), t = m.useRef(N ?? -1), C = m.useRef(null), F = m.useRef(!0), l = ae((e) => {
71
+ Se(t.current === -1 ? null : t.current, e);
72
+ }), he = m.useRef(l), D = m.useRef(!!g), Oe = m.useRef(s), h = m.useRef(!1), $ = m.useRef(!1), ce = A(R), B = A(s), Ke = A(Fe), K = A(N), xe = A(Ne), ue = ae(() => {
73
+ function e(a) {
74
+ f ? P?.events.emit("virtualfocus", a) : We(a, {
75
+ sync: h.current,
76
+ preventScroll: !0
77
+ });
78
+ }
79
+ const i = n.current[t.current], r = $.current;
80
+ i && e(i), (h.current ? (a) => a() : requestAnimationFrame)(() => {
81
+ const a = n.current[t.current] || i;
82
+ if (!a)
83
+ return;
84
+ i || e(a);
85
+ const I = Ke.current;
86
+ I && // eslint-disable-next-line @typescript-eslint/no-use-before-define
87
+ se && (r || !F.current) && a.scrollIntoView?.(typeof I == "boolean" ? {
88
+ block: "nearest",
89
+ inline: "nearest"
90
+ } : I);
91
+ });
92
+ });
93
+ L(() => {
94
+ E && (s && g ? (t.current = N ?? -1, v.current && N != null && ($.current = !0, l())) : D.current && (t.current = -1, he.current()));
95
+ }, [E, s, g, N, l]), L(() => {
96
+ if (E) {
97
+ if (!s) {
98
+ h.current = !1;
99
+ return;
100
+ }
101
+ if (g)
102
+ if (y == null) {
103
+ if (h.current = !1, K.current != null)
104
+ return;
105
+ if (D.current && (t.current = -1, ue()), (!Oe.current || !D.current) && v.current && (C.current != null || v.current === !0 && C.current == null)) {
106
+ let e = 0;
107
+ const i = () => {
108
+ n.current[0] == null ? (e < 2 && (e ? requestAnimationFrame : queueMicrotask)(i), e += 1) : (t.current = C.current == null || pe(C.current, d, x) || b ? fe(n) : Pe(n), C.current = null, l());
109
+ };
110
+ i();
111
+ }
112
+ } else Me(n, y) || (t.current = y, ue(), $.current = !1);
113
+ }
114
+ }, [E, s, g, y, K, b, n, d, x, l, ue, ce]), L(() => {
115
+ if (!E || g || !P || f || !D.current)
116
+ return;
117
+ const e = P.nodesRef.current, i = e.find((a) => a.id === H)?.context?.elements.floating, r = ve(je(g)), u = e.some((a) => a.context && Ce(a.context.elements.floating, r));
118
+ i && !u && F.current && i.focus({
119
+ preventScroll: !0
120
+ });
121
+ }, [E, g, P, H, f]), L(() => {
122
+ he.current = l, Oe.current = s, D.current = !!g;
123
+ }), L(() => {
124
+ s || (C.current = null, v.current = M);
125
+ }, [s, M]);
126
+ const Ee = y != null, se = m.useMemo(() => {
127
+ function e(r) {
128
+ if (!B.current)
129
+ return;
130
+ const u = n.current.indexOf(r.currentTarget);
131
+ u !== -1 && t.current !== u && (t.current = u, l(r));
132
+ }
133
+ return {
134
+ onFocus(r) {
135
+ h.current = !0, e(r);
136
+ },
137
+ onClick: ({
138
+ currentTarget: r
139
+ }) => r.focus({
140
+ preventScroll: !0
141
+ }),
142
+ // Safari
143
+ onMouseMove(r) {
144
+ h.current = !0, $.current = !1, ne && e(r);
145
+ },
146
+ onPointerLeave(r) {
147
+ if (!B.current || !F.current || r.pointerType === "touch")
148
+ return;
149
+ h.current = !0;
150
+ const u = r.relatedTarget;
151
+ !ne || n.current.includes(u) || xe.current && (t.current = -1, l(r), f || k.current?.focus({
152
+ preventScroll: !0
153
+ }));
154
+ }
155
+ };
156
+ }, [B, k, ne, n, l, xe, f]), U = m.useCallback(() => Ie ?? P?.nodesRef.current.find((e) => e.id === H)?.context?.dataRef?.current.orientation, [H, P, Ie]), V = ae((e) => {
157
+ if (F.current = !1, h.current = !0, e.which === 229 || !B.current && e.currentTarget === k.current)
158
+ return;
159
+ if (b && rr(e.key, d, x, S)) {
160
+ Z(e.key, U()) || T(e), c.setOpen(!1, X(me, e.nativeEvent)), be(O) && (f ? P?.events.emit("virtualfocus", O) : O.focus());
161
+ return;
162
+ }
163
+ const i = t.current, r = fe(n, R), u = Pe(n, R);
164
+ if (ie || (e.key === "Home" && (T(e), t.current = r, l(e)), e.key === "End" && (T(e), t.current = u, l(e))), S > 1) {
165
+ const a = Ae || Array.from({
166
+ length: n.current.length
167
+ }, () => ({
168
+ width: 1,
169
+ height: 1
170
+ })), I = _e(a, S, Le), z = I.findIndex((w) => w != null && !de(n, w, R)), le = I.reduce((w, G, Ve) => G != null && !de(n, G, R) ? Ve : w, -1), Q = I[qe({
171
+ current: I.map((w) => w != null ? n.current[w] : null)
172
+ }, {
173
+ event: e,
174
+ orientation: d,
175
+ loopFocus: q,
176
+ rtl: x,
177
+ cols: S,
178
+ // treat undefined (empty grid spaces) as disabled indices so we
179
+ // don't end up in them
180
+ disabledIndices: $e([...(typeof R != "function" ? R : null) || n.current.map((w, G) => de(n, G, R) ? G : void 0), void 0], I),
181
+ minIndex: z,
182
+ maxIndex: le,
183
+ prevIndex: He(
184
+ t.current > u ? r : t.current,
185
+ a,
186
+ I,
187
+ S,
188
+ // use a corner matching the edge closest to the direction
189
+ // we're moving in so we don't end up in the same item. Prefer
190
+ // top/left over bottom/right.
191
+ // eslint-disable-next-line no-nested-ternary
192
+ e.key === ee ? "bl" : e.key === (x ? W : _) ? "tr" : "tl"
193
+ ),
194
+ stopEvent: !0
195
+ })];
196
+ if (Q != null && (t.current = Q, l(e)), d === "both")
197
+ return;
198
+ }
199
+ if (Z(e.key, d)) {
200
+ if (T(e), s && !f && ve(e.currentTarget.ownerDocument) === e.currentTarget) {
201
+ t.current = pe(e.key, d, x) ? r : u, l(e);
202
+ return;
203
+ }
204
+ pe(e.key, d, x) ? q ? i >= u ? te && i !== n.current.length ? t.current = -1 : (h.current = !1, t.current = r) : t.current = Y(n, {
205
+ startingIndex: i,
206
+ disabledIndices: R
207
+ }) : t.current = Math.min(u, Y(n, {
208
+ startingIndex: i,
209
+ disabledIndices: R
210
+ })) : q ? i <= r ? te && i !== -1 ? t.current = n.current.length : (h.current = !1, t.current = u) : t.current = Y(n, {
211
+ startingIndex: i,
212
+ decrement: !0,
213
+ disabledIndices: R
214
+ }) : t.current = Math.max(r, Y(n, {
215
+ startingIndex: i,
216
+ decrement: !0,
217
+ disabledIndices: R
218
+ })), Me(n, t.current) && (t.current = -1), l(e);
219
+ }
220
+ }), j = m.useMemo(() => f && s && Ee && {
221
+ "aria-activedescendant": `${Re}-${y}`
222
+ }, [f, s, Ee, Re, y]), we = m.useMemo(() => ({
223
+ "aria-orientation": d === "both" ? void 0 : d,
224
+ ...ie ? {} : j,
225
+ onKeyDown(e) {
226
+ if (e.key === "Tab" && e.shiftKey && s && !f) {
227
+ const i = Je(e.nativeEvent);
228
+ if (i && !Ce(k.current, i))
229
+ return;
230
+ T(e), c.setOpen(!1, X(Ye, e.nativeEvent)), be(O) && O.focus();
231
+ return;
232
+ }
233
+ V(e);
234
+ },
235
+ onPointerMove() {
236
+ F.current = !0;
237
+ }
238
+ }), [j, V, k, d, ie, c, s, f, O]), J = m.useMemo(() => {
239
+ function e(r) {
240
+ M === "auto" && Qe(r.nativeEvent) && (v.current = !f);
241
+ }
242
+ function i(r) {
243
+ v.current = M, M === "auto" && Xe(r.nativeEvent) && (v.current = !0);
244
+ }
245
+ return {
246
+ onKeyDown(r) {
247
+ const u = c.select("open");
248
+ F.current = !1;
249
+ const a = r.key.startsWith("Arrow"), I = er(r.key, U(), x), z = Z(r.key, d), le = (b ? I : z) || r.key === "Enter" || r.key.trim() === "";
250
+ if (f && u)
251
+ return V(r);
252
+ if (!(!u && !oe && a)) {
253
+ if (le) {
254
+ const Q = Z(r.key, U());
255
+ C.current = b && Q ? null : r.key;
256
+ }
257
+ if (b) {
258
+ I && (T(r), u ? (t.current = fe(n, ce.current), l(r)) : c.setOpen(!0, X(me, r.nativeEvent, r.currentTarget)));
259
+ return;
260
+ }
261
+ z && (K.current != null && (t.current = K.current), T(r), !u && oe ? c.setOpen(!0, X(me, r.nativeEvent, r.currentTarget)) : V(r), u && l(r));
262
+ }
263
+ },
264
+ onFocus(r) {
265
+ c.select("open") && !f && (t.current = -1, l(r));
266
+ },
267
+ onPointerDown: i,
268
+ onPointerEnter: i,
269
+ onMouseDown: e,
270
+ onClick: e
271
+ };
272
+ }, [V, ce, M, n, b, l, c, oe, d, U, x, K, f]), ye = m.useMemo(() => ({
273
+ ...j,
274
+ ...J
275
+ }), [j, J]);
276
+ return m.useMemo(() => E ? {
277
+ reference: ye,
278
+ floating: we,
279
+ item: se,
280
+ trigger: J
281
+ } : {}, [E, ye, we, J, se]);
282
+ }
283
+ export {
284
+ Ze as ESCAPE,
285
+ pr as useListNavigation
286
+ };
@@ -0,0 +1,56 @@
1
+ import * as o from "react";
2
+ import { useStableCallback as S } from "./index95.js";
3
+ import { useIsoLayoutEffect as T } from "./index97.js";
4
+ import { useTimeout as D } from "./index148.js";
5
+ import { EMPTY_ARRAY as U } from "./index106.js";
6
+ import { stopEvent as O } from "./index222.js";
7
+ function H(l, b) {
8
+ const g = "rootStore" in l ? l.rootStore : l, c = g.useState("open"), u = g.context.dataRef, {
9
+ listRef: E,
10
+ activeIndex: p,
11
+ onMatch: A,
12
+ onTypingChange: R,
13
+ enabled: h = !0,
14
+ findMatch: L = null,
15
+ resetMs: F = 750,
16
+ ignoreKeys: P = U,
17
+ selectedIndex: y = null
18
+ } = b, m = D(), r = o.useRef(""), i = o.useRef(y ?? p ?? -1), f = o.useRef(null);
19
+ T(() => {
20
+ c && (m.clear(), f.current = null, r.current = "");
21
+ }, [c, m]), T(() => {
22
+ c && r.current === "" && (i.current = y ?? p ?? -1);
23
+ }, [c, y, p]);
24
+ const n = S((e) => {
25
+ e ? u.current.typing || (u.current.typing = e, R?.(e)) : u.current.typing && (u.current.typing = e, R?.(e));
26
+ }), a = S((e) => {
27
+ function C(s, x, I) {
28
+ const K = L ? L(x, I) : x.find((Y) => Y?.toLocaleLowerCase().indexOf(I.toLocaleLowerCase()) === 0);
29
+ return K ? s.indexOf(K) : -1;
30
+ }
31
+ const t = E.current;
32
+ if (r.current.length > 0 && r.current[0] !== " " && (C(t, t, r.current) === -1 ? n(!1) : e.key === " " && O(e)), t == null || P.includes(e.key) || // Character key.
33
+ e.key.length !== 1 || // Modifier key.
34
+ e.ctrlKey || e.metaKey || e.altKey)
35
+ return;
36
+ c && e.key !== " " && (O(e), n(!0)), t.every((s) => s ? s[0]?.toLocaleLowerCase() !== s[1]?.toLocaleLowerCase() : !0) && r.current === e.key && (r.current = "", i.current = f.current), r.current += e.key, m.start(F, () => {
37
+ r.current = "", i.current = f.current, n(!1);
38
+ });
39
+ const w = i.current, d = C(t, [...t.slice((w || 0) + 1), ...t.slice(0, (w || 0) + 1)], r.current);
40
+ d !== -1 ? (A?.(d), f.current = d) : e.key !== " " && (r.current = "", n(!1));
41
+ }), k = o.useMemo(() => ({
42
+ onKeyDown: a
43
+ }), [a]), M = o.useMemo(() => ({
44
+ onKeyDown: a,
45
+ onKeyUp(e) {
46
+ e.key === " " && n(!1);
47
+ }
48
+ }), [a, n]);
49
+ return o.useMemo(() => h ? {
50
+ reference: k,
51
+ floating: M
52
+ } : {}, [h, k, M]);
53
+ }
54
+ export {
55
+ H as useTypeahead
56
+ };
@@ -0,0 +1,6 @@
1
+ function e(n) {
2
+ return n?.ownerDocument || document;
3
+ }
4
+ export {
5
+ e as ownerDocument
6
+ };
@@ -0,0 +1,17 @@
1
+ import { createEventEmitter as n } from "./index218.js";
2
+ class d {
3
+ nodesRef = {
4
+ current: []
5
+ };
6
+ events = n();
7
+ addNode(e) {
8
+ this.nodesRef.current.push(e);
9
+ }
10
+ removeNode(e) {
11
+ const t = this.nodesRef.current.findIndex((r) => r === e);
12
+ t !== -1 && this.nodesRef.current.splice(t, 1);
13
+ }
14
+ }
15
+ export {
16
+ d as FloatingTreeStore
17
+ };
@@ -0,0 +1,18 @@
1
+ function l(e) {
2
+ const t = e.getBoundingClientRect();
3
+ if (process.env.NODE_ENV === "test")
4
+ return t;
5
+ const o = window.getComputedStyle(e, "::before"), n = window.getComputedStyle(e, "::after");
6
+ if (!(o.content !== "none" || n.content !== "none"))
7
+ return t;
8
+ const i = parseFloat(o.width) || 0, r = parseFloat(o.height) || 0, a = parseFloat(n.width) || 0, c = parseFloat(n.height) || 0, d = Math.max(t.width, i, a), f = Math.max(t.height, r, c), s = d - t.width, h = f - t.height;
9
+ return {
10
+ left: t.left - s / 2,
11
+ right: t.right + s / 2,
12
+ top: t.top - h / 2,
13
+ bottom: t.bottom + h / 2
14
+ };
15
+ }
16
+ export {
17
+ l as getPseudoElementBounds
18
+ };
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { useRenderElement as c } from "./index86.js";
3
+ import { useCompositeItem as u } from "./index219.js";
4
+ import { EMPTY_OBJECT as d, EMPTY_ARRAY as t } from "./index106.js";
5
+ function M(e) {
6
+ const {
7
+ render: l,
8
+ className: E,
9
+ state: o = d,
10
+ props: r = t,
11
+ refs: s = t,
12
+ metadata: m,
13
+ stateAttributesMapping: p,
14
+ tag: i = "div",
15
+ ...a
16
+ } = e, {
17
+ compositeProps: n,
18
+ compositeRef: f
19
+ } = u({
20
+ metadata: m
21
+ });
22
+ return c(i, e, {
23
+ state: o,
24
+ ref: [...s, f],
25
+ props: [n, ...r, a],
26
+ stateAttributesMapping: p
27
+ });
28
+ }
29
+ export {
30
+ M as CompositeItem
31
+ };
@@ -0,0 +1,10 @@
1
+ import { isHTMLElement as r, isLastTraversableNode as e, getParentNode as i } from "./index94.js";
2
+ function n(t) {
3
+ if (r(t) && t.hasAttribute("data-rootownerid"))
4
+ return t.getAttribute("data-rootownerid") ?? void 0;
5
+ if (!e(t))
6
+ return n(i(t));
7
+ }
8
+ export {
9
+ n as findRootOwnerId
10
+ };
@@ -0,0 +1,25 @@
1
+ import * as c from "react";
2
+ import { ownerDocument as i } from "./index162.js";
3
+ import { EMPTY_OBJECT as s } from "./index106.js";
4
+ function a(u) {
5
+ const {
6
+ enabled: t = !0,
7
+ mouseDownAction: r,
8
+ open: n
9
+ } = u, e = c.useRef(!1);
10
+ return c.useMemo(() => t ? {
11
+ onMouseDown: (o) => {
12
+ (r === "open" && !n || r === "close" && n) && (e.current = !0, i(o.currentTarget).addEventListener("click", () => {
13
+ e.current = !1;
14
+ }, {
15
+ once: !0
16
+ }));
17
+ },
18
+ onClick: (o) => {
19
+ e.current && (e.current = !1, o.preventBaseUIHandler());
20
+ }
21
+ } : s, [t, r, n]);
22
+ }
23
+ export {
24
+ a as useMixedToggleClickHandler
25
+ };
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import * as r from "react";
3
+ import { useIsoLayoutEffect as a } from "./index97.js";
4
+ import { isSafari as u } from "./index194.js";
5
+ import { visuallyHidden as i } from "./index174.js";
6
+ import { jsx as f } from "react/jsx-runtime";
7
+ const n = /* @__PURE__ */ r.forwardRef(function(e, t) {
8
+ const [o, s] = r.useState();
9
+ return a(() => {
10
+ u && s("button");
11
+ }, []), /* @__PURE__ */ f("span", {
12
+ ...e,
13
+ ref: t,
14
+ style: i,
15
+ "aria-hidden": o ? void 0 : !0,
16
+ ...{
17
+ tabIndex: 0,
18
+ // Role is only for VoiceOver
19
+ role: o
20
+ },
21
+ "data-base-ui-focus-guard": ""
22
+ });
23
+ });
24
+ process.env.NODE_ENV !== "production" && (n.displayName = "FocusGuard");
25
+ export {
26
+ n as FocusGuard
27
+ };
@@ -0,0 +1,163 @@
1
+ import * as H from "react";
2
+ import * as te from "react-dom";
3
+ import { isElement as re } from "./index94.js";
4
+ import { useValueAsRef as N } from "./index176.js";
5
+ import { useStableCallback as Y } from "./index95.js";
6
+ import { createChangeEventDetails as C } from "./index113.js";
7
+ import { getDelay as V } from "./index245.js";
8
+ import { useFloatingTree as ne } from "./index145.js";
9
+ import { useHoverInteractionSharedState as oe, safePolygonIdentifier as ce } from "./index244.js";
10
+ import { triggerHover as L } from "./index114.js";
11
+ import { getDocument as z, contains as O } from "./index173.js";
12
+ import { isMouseLikePointerType as B } from "./index222.js";
13
+ function W(l) {
14
+ return typeof l == "function" ? l() : l;
15
+ }
16
+ const se = {
17
+ current: null
18
+ };
19
+ function Re(l, G = {}) {
20
+ const t = "rootStore" in l ? l.rootStore : l, {
21
+ dataRef: a,
22
+ events: A
23
+ } = t.context, {
24
+ enabled: x = !0,
25
+ delay: J = 0,
26
+ handleClose: K = null,
27
+ mouseOnly: D = !1,
28
+ restMs: Q = 0,
29
+ move: X = !0,
30
+ triggerElementRef: b = se,
31
+ externalTree: U,
32
+ isActiveTrigger: _ = !0
33
+ } = G, w = ne(U), {
34
+ pointerTypeRef: o,
35
+ interactedInsideRef: Z,
36
+ handlerRef: d,
37
+ blockMouseMoveRef: p,
38
+ performedPointerEventsMutationRef: j,
39
+ unbindMouseMoveRef: P,
40
+ restTimeoutPendingRef: f,
41
+ openChangeTimeout: c,
42
+ restTimeout: m,
43
+ handleCloseOptionsRef: $
44
+ } = oe(t), v = N(K), M = N(J), T = N(Q);
45
+ _ && ($.current = v.current?.__options);
46
+ const y = Y(() => Z.current ? !0 : a.current.openEvent ? ["click", "mousedown"].includes(a.current.openEvent.type) : !1), S = H.useCallback((e, r = !0) => {
47
+ const s = V(M.current, "close", o.current);
48
+ s && !d.current ? c.start(s, () => t.setOpen(!1, C(L, e))) : r && (c.clear(), t.setOpen(!1, C(L, e)));
49
+ }, [M, d, t, o, c]), F = Y(() => {
50
+ P.current(), d.current = void 0;
51
+ }), k = Y(() => {
52
+ if (j.current) {
53
+ const e = z(t.select("domReferenceElement")).body;
54
+ e.style.pointerEvents = "", e.removeAttribute(ce), j.current = !1;
55
+ }
56
+ });
57
+ H.useEffect(() => {
58
+ if (!x)
59
+ return;
60
+ function e(r) {
61
+ r.open || (c.clear(), m.clear(), p.current = !0, f.current = !1);
62
+ }
63
+ return A.on("openchange", e), () => {
64
+ A.off("openchange", e);
65
+ };
66
+ }, [x, A, c, m, p, f]);
67
+ const q = Y((e) => {
68
+ if (y() || !a.current.floatingContext)
69
+ return;
70
+ const r = t.context.triggerElements;
71
+ if (e.relatedTarget && r.hasElement(e.relatedTarget))
72
+ return;
73
+ const s = b.current;
74
+ v.current?.({
75
+ ...a.current.floatingContext,
76
+ tree: w,
77
+ x: e.clientX,
78
+ y: e.clientY,
79
+ onClose() {
80
+ k(), F(), !y() && s === t.select("domReferenceElement") && S(e);
81
+ }
82
+ })(e);
83
+ });
84
+ return H.useEffect(() => {
85
+ if (!x)
86
+ return;
87
+ const e = b.current ?? (_ ? t.select("domReferenceElement") : null);
88
+ if (!re(e))
89
+ return;
90
+ function r(n) {
91
+ if (c.clear(), p.current = !1, D && !B(o.current) || W(T.current) > 0 && !V(M.current, "open"))
92
+ return;
93
+ const g = V(M.current, "open", o.current), u = t.select("domReferenceElement"), i = t.context.triggerElements, E = (i.hasElement(n.target) || i.hasMatchingElement((ee) => O(ee, n.target))) && (!u || !O(u, n.target)), R = n.currentTarget ?? null, h = !t.select("open") || E;
94
+ g ? c.start(g, () => {
95
+ h && t.setOpen(!0, C(L, n, R));
96
+ }) : h && t.setOpen(!0, C(L, n, R));
97
+ }
98
+ function s(n) {
99
+ if (y()) {
100
+ k();
101
+ return;
102
+ }
103
+ P.current();
104
+ const g = t.select("domReferenceElement"), u = z(g);
105
+ m.clear(), f.current = !1;
106
+ const i = t.context.triggerElements;
107
+ if (n.relatedTarget && i.hasElement(n.relatedTarget))
108
+ return;
109
+ if (v.current && a.current.floatingContext) {
110
+ t.select("open") || c.clear();
111
+ const R = b.current;
112
+ d.current = v.current({
113
+ ...a.current.floatingContext,
114
+ tree: w,
115
+ x: n.clientX,
116
+ y: n.clientY,
117
+ onClose() {
118
+ k(), F(), !y() && R === t.select("domReferenceElement") && S(n, !0);
119
+ }
120
+ });
121
+ const h = d.current;
122
+ h(n), u.addEventListener("mousemove", h), P.current = () => {
123
+ u.removeEventListener("mousemove", h);
124
+ };
125
+ return;
126
+ }
127
+ (o.current !== "touch" || !O(t.select("floatingElement"), n.relatedTarget)) && S(n);
128
+ }
129
+ function I(n) {
130
+ q(n);
131
+ }
132
+ return t.select("open") && e.addEventListener("mouseleave", I), X && e.addEventListener("mousemove", r, {
133
+ once: !0
134
+ }), e.addEventListener("mouseenter", r), e.addEventListener("mouseleave", s), () => {
135
+ e.removeEventListener("mouseleave", I), X && e.removeEventListener("mousemove", r), e.removeEventListener("mouseenter", r), e.removeEventListener("mouseleave", s);
136
+ };
137
+ }, [F, k, p, a, M, S, t, x, v, q, _, y, D, X, o, T, m, f, c, b, w, P, d]), H.useMemo(() => {
138
+ function e(r) {
139
+ o.current = r.pointerType;
140
+ }
141
+ return {
142
+ onPointerDown: e,
143
+ onPointerEnter: e,
144
+ onMouseMove(r) {
145
+ const {
146
+ nativeEvent: s
147
+ } = r, I = r.currentTarget, n = t.select("domReferenceElement"), g = t.context.triggerElements, u = t.select("open"), i = (g.hasElement(r.target) || g.hasMatchingElement((R) => O(R, r.target))) && (!n || !O(n, r.target));
148
+ if (D && !B(o.current) || u && !i || W(T.current) === 0 || !i && f.current && r.movementX ** 2 + r.movementY ** 2 < 2)
149
+ return;
150
+ m.clear();
151
+ function E() {
152
+ !p.current && (!u || i) && t.setOpen(!0, C(L, s, I));
153
+ }
154
+ o.current === "touch" ? te.flushSync(() => {
155
+ E();
156
+ }) : i && u ? E() : (f.current = !0, m.start(W(T.current), E));
157
+ }
158
+ };
159
+ }, [p, D, t, o, T, m, f]);
160
+ }
161
+ export {
162
+ Re as useHoverReferenceInteraction
163
+ };