@rpcbase/ui 0.251.0 → 0.252.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist/index150.js +3 -3
  2. package/dist/index156.js +1 -1
  3. package/dist/index163.js +2 -2
  4. package/dist/index164.js +7 -7
  5. package/dist/index167.js +1 -1
  6. package/dist/index169.js +1 -1
  7. package/dist/index172.js +3 -3
  8. package/dist/index175.js +1 -1
  9. package/dist/index176.js +4 -4
  10. package/dist/index182.js +1 -1
  11. package/dist/index184.js +4 -4
  12. package/dist/index185.js +13 -13
  13. package/dist/index188.js +5 -5
  14. package/dist/index189.js +1 -1
  15. package/dist/index192.js +2 -2
  16. package/dist/index193.js +6 -6
  17. package/dist/index254.js +155 -20
  18. package/dist/index254.js.map +1 -1
  19. package/dist/index255.js +31 -65
  20. package/dist/index255.js.map +1 -1
  21. package/dist/index256.js +11 -6
  22. package/dist/index256.js.map +1 -1
  23. package/dist/index257.js +49 -5
  24. package/dist/index257.js.map +1 -1
  25. package/dist/index258.js +9 -11
  26. package/dist/index258.js.map +1 -1
  27. package/dist/index259.js +11 -3
  28. package/dist/index259.js.map +1 -1
  29. package/dist/index260.js +41 -48
  30. package/dist/index260.js.map +1 -1
  31. package/dist/index261.js +98 -4
  32. package/dist/index261.js.map +1 -1
  33. package/dist/index262.js +84 -27
  34. package/dist/index262.js.map +1 -1
  35. package/dist/index263.js +103 -14
  36. package/dist/index263.js.map +1 -1
  37. package/dist/index264.js +52 -5
  38. package/dist/index264.js.map +1 -1
  39. package/dist/index265.js +11 -21
  40. package/dist/index265.js.map +1 -1
  41. package/dist/index266.js +4 -53
  42. package/dist/index266.js.map +1 -1
  43. package/dist/index267.js +37 -20
  44. package/dist/index267.js.map +1 -1
  45. package/dist/index268.js +8 -41
  46. package/dist/index268.js.map +1 -1
  47. package/dist/index269.js +132 -36
  48. package/dist/index269.js.map +1 -1
  49. package/dist/index270.js +18 -46
  50. package/dist/index270.js.map +1 -1
  51. package/dist/index271.js +14 -19
  52. package/dist/index271.js.map +1 -1
  53. package/dist/index272.js +3 -70
  54. package/dist/index272.js.map +1 -1
  55. package/dist/index273.js +34 -15
  56. package/dist/index273.js.map +1 -1
  57. package/dist/index274.js +20 -3
  58. package/dist/index274.js.map +1 -1
  59. package/dist/index275.js +9 -11
  60. package/dist/index275.js.map +1 -1
  61. package/dist/index276.js +8 -13
  62. package/dist/index276.js.map +1 -1
  63. package/dist/index277.js +20 -19
  64. package/dist/index277.js.map +1 -1
  65. package/dist/index278.js +65 -35
  66. package/dist/index278.js.map +1 -1
  67. package/dist/index279.js +6 -239
  68. package/dist/index279.js.map +1 -1
  69. package/dist/index280.js +5 -252
  70. package/dist/index280.js.map +1 -1
  71. package/dist/index281.js +10 -67
  72. package/dist/index281.js.map +1 -1
  73. package/dist/index282.js +3 -99
  74. package/dist/index282.js.map +1 -1
  75. package/dist/index283.js +47 -80
  76. package/dist/index283.js.map +1 -1
  77. package/dist/index284.js +4 -4
  78. package/dist/index284.js.map +1 -1
  79. package/dist/index285.js +27 -27
  80. package/dist/index285.js.map +1 -1
  81. package/dist/index286.js +16 -16
  82. package/dist/index286.js.map +1 -1
  83. package/dist/index287.js +6 -35
  84. package/dist/index287.js.map +1 -1
  85. package/dist/index288.js +21 -17
  86. package/dist/index288.js.map +1 -1
  87. package/dist/index289.js +53 -3
  88. package/dist/index289.js.map +1 -1
  89. package/dist/index290.js +20 -26
  90. package/dist/index290.js.map +1 -1
  91. package/dist/index291.js +40 -27
  92. package/dist/index291.js.map +1 -1
  93. package/dist/index292.js +40 -4
  94. package/dist/index292.js.map +1 -1
  95. package/dist/index293.js +46 -79
  96. package/dist/index293.js.map +1 -1
  97. package/dist/index294.js +19 -271
  98. package/dist/index294.js.map +1 -1
  99. package/dist/index295.js +70 -11
  100. package/dist/index295.js.map +1 -1
  101. package/dist/index296.js +18 -11
  102. package/dist/index296.js.map +1 -1
  103. package/dist/index297.js +3 -25
  104. package/dist/index297.js.map +1 -1
  105. package/dist/index298.js +11 -16
  106. package/dist/index298.js.map +1 -1
  107. package/dist/index299.js +12 -124
  108. package/dist/index299.js.map +1 -1
  109. package/dist/index300.js +18 -5
  110. package/dist/index300.js.map +1 -1
  111. package/dist/index301.js +35 -64
  112. package/dist/index301.js.map +1 -1
  113. package/dist/index302.js +240 -14
  114. package/dist/index302.js.map +1 -1
  115. package/dist/index303.js +252 -7
  116. package/dist/index303.js.map +1 -1
  117. package/dist/index304.js +68 -5
  118. package/dist/index304.js.map +1 -1
  119. package/dist/index305.js +99 -3
  120. package/dist/index305.js.map +1 -1
  121. package/dist/index306.js +83 -10
  122. package/dist/index306.js.map +1 -1
  123. package/dist/index307.js +3 -7
  124. package/dist/index307.js.map +1 -1
  125. package/dist/index308.js +24 -128
  126. package/dist/index308.js.map +1 -1
  127. package/dist/index309.js +16 -399
  128. package/dist/index309.js.map +1 -1
  129. package/dist/index310.js +35 -5
  130. package/dist/index310.js.map +1 -1
  131. package/dist/index311.js +16 -51
  132. package/dist/index311.js.map +1 -1
  133. package/dist/index312.js +3 -11
  134. package/dist/index312.js.map +1 -1
  135. package/dist/index313.js +22 -23
  136. package/dist/index313.js.map +1 -1
  137. package/dist/index314.js +27 -10
  138. package/dist/index314.js.map +1 -1
  139. package/dist/index315.js +4 -33
  140. package/dist/index315.js.map +1 -1
  141. package/dist/index316.js +78 -11
  142. package/dist/index316.js.map +1 -1
  143. package/dist/index317.js +268 -45
  144. package/dist/index317.js.map +1 -1
  145. package/dist/index318.js +11 -9
  146. package/dist/index318.js.map +1 -1
  147. package/dist/index319.js +10 -11
  148. package/dist/index319.js.map +1 -1
  149. package/dist/index320.js +25 -43
  150. package/dist/index320.js.map +1 -1
  151. package/dist/index321.js +15 -96
  152. package/dist/index321.js.map +1 -1
  153. package/dist/index322.js +122 -83
  154. package/dist/index322.js.map +1 -1
  155. package/dist/index323.js +4 -104
  156. package/dist/index323.js.map +1 -1
  157. package/dist/index324.js +60 -47
  158. package/dist/index324.js.map +1 -1
  159. package/dist/index325.js +13 -11
  160. package/dist/index325.js.map +1 -1
  161. package/dist/index326.js +7 -4
  162. package/dist/index326.js.map +1 -1
  163. package/dist/index327.js +5 -37
  164. package/dist/index327.js.map +1 -1
  165. package/dist/index328.js +3 -8
  166. package/dist/index328.js.map +1 -1
  167. package/dist/index329.js +10 -154
  168. package/dist/index329.js.map +1 -1
  169. package/dist/index330.js +7 -135
  170. package/dist/index330.js.map +1 -1
  171. package/dist/index331.js +133 -17
  172. package/dist/index331.js.map +1 -1
  173. package/dist/index332.js +398 -14
  174. package/dist/index332.js.map +1 -1
  175. package/dist/index333.js +5 -4
  176. package/dist/index333.js.map +1 -1
  177. package/dist/index334.js +50 -34
  178. package/dist/index334.js.map +1 -1
  179. package/dist/index335.js +11 -20
  180. package/dist/index335.js.map +1 -1
  181. package/dist/index336.js +27 -9
  182. package/dist/index336.js.map +1 -1
  183. package/dist/index337.js +11 -8
  184. package/dist/index337.js.map +1 -1
  185. package/dist/index338.js +2 -2
  186. package/dist/index348.js +2 -2
  187. package/dist/index350.js +4 -4
  188. package/dist/index358.js +5 -5
  189. package/dist/index359.js +1 -1
  190. package/dist/index365.js +5 -4
  191. package/dist/index365.js.map +1 -1
  192. package/dist/index366.js +20 -5
  193. package/dist/index366.js.map +1 -1
  194. package/dist/index367.js +4 -3
  195. package/dist/index367.js.map +1 -1
  196. package/dist/index368.js +5 -11
  197. package/dist/index368.js.map +1 -1
  198. package/dist/index369.js +3 -21
  199. package/dist/index369.js.map +1 -1
  200. package/dist/index370.js +11 -44
  201. package/dist/index370.js.map +1 -1
  202. package/dist/index371.js +20 -17
  203. package/dist/index371.js.map +1 -1
  204. package/dist/index372.js +45 -5
  205. package/dist/index372.js.map +1 -1
  206. package/dist/index373.js +15 -198
  207. package/dist/index373.js.map +1 -1
  208. package/dist/index374.js +5 -74
  209. package/dist/index374.js.map +1 -1
  210. package/dist/index375.js +192 -115
  211. package/dist/index375.js.map +1 -1
  212. package/dist/index376.js +73 -4
  213. package/dist/index376.js.map +1 -1
  214. package/dist/index377.js +122 -19
  215. package/dist/index377.js.map +1 -1
  216. package/dist/index379.js +3 -3
  217. package/dist/index380.js +3 -3
  218. package/dist/index382.js +1 -1
  219. package/dist/index384.js +1 -1
  220. package/dist/index385.js +2 -2
  221. package/dist/index388.js +1 -1
  222. package/dist/index389.js +2 -2
  223. package/dist/index413.js +1 -1
  224. package/dist/index423.js +1 -1
  225. package/dist/index424.js +1 -1
  226. package/dist/index427.js +1 -1
  227. package/dist/index428.js +1 -1
  228. package/dist/index434.js +2 -2
  229. package/dist/index436.js +2 -2
  230. package/dist/index49.js +30 -30
  231. package/dist/index50.js +21 -21
  232. package/dist/index51.js +1 -1
  233. package/dist/index52.js +8 -8
  234. package/dist/index53.js +2 -2
  235. package/dist/index55.js +16 -16
  236. package/dist/index56.js +4 -4
  237. package/dist/index57.js +3 -3
  238. package/dist/index58.js +7 -7
  239. package/dist/index59.js +4 -4
  240. package/dist/index60.js +12 -12
  241. package/dist/index61.js +2 -2
  242. package/dist/index62.js +2 -2
  243. package/package.json +1 -1
package/dist/index294.js CHANGED
@@ -1,276 +1,24 @@
1
- import * as d from "react";
2
- import { getSide as B, getSideAxis as De, getAlignment as Le } from "./index299.js";
3
- import { ownerDocument as ke } from "./index284.js";
4
- import { useIsoLayoutEffect as Q } from "./index261.js";
5
- import { useValueAsRef as z } from "./index263.js";
6
- import { useStableCallback as Qe } from "./index262.js";
7
- import { useDirection as Ze } from "./index307.js";
8
- import { arrow as et } from "./index370.js";
9
- import { hide as tt } from "./index371.js";
10
- import { DEFAULT_SIDES as nt } from "./index372.js";
11
- import { flip as ot, size as it, offset as rt, shift as st, limitShift as ct } from "./index373.js";
12
- import { useFloating as lt } from "./index374.js";
13
- import { autoUpdate as Ce } from "./index309.js";
14
- import { getWindow as at } from "./index308.js";
15
- function Te(a, u, h) {
16
- const n = a === "inline-start" || a === "inline-end";
17
- return {
18
- top: "top",
19
- right: n ? h ? "inline-start" : "inline-end" : "right",
20
- bottom: "bottom",
21
- left: n ? h ? "inline-end" : "inline-start" : "left"
22
- }[u];
23
- }
24
- function Fe(a, u, h) {
25
- const {
26
- rects: n,
27
- placement: c
28
- } = a;
29
- return {
30
- side: Te(u, B(c), h),
31
- align: Le(c) || "center",
32
- anchor: {
33
- width: n.reference.width,
34
- height: n.reference.height
35
- },
36
- positioner: {
37
- width: n.floating.width,
38
- height: n.floating.height
39
- }
40
- };
41
- }
42
- function Pt(a) {
43
- const {
44
- // Public parameters
45
- anchor: u,
46
- positionMethod: h = "absolute",
47
- side: n = "bottom",
48
- sideOffset: c = 0,
49
- align: R = "center",
50
- alignOffset: V = 0,
51
- collisionBoundary: Z,
52
- collisionPadding: ze = 5,
53
- sticky: W = !1,
54
- arrowPadding: ee = 5,
55
- disableAnchorTracking: I = !1,
56
- inline: te,
57
- // Private parameters
58
- keepMounted: D = !1,
59
- floatingRootContext: k,
60
- mounted: o,
61
- collisionAvoidance: U,
62
- shiftCrossAxis: P = !1,
63
- nodeId: Be,
64
- adaptiveOrigin: Y,
65
- lazyFlip: ne = !1,
66
- externalTree: Ve
67
- } = a, [oe, ie] = d.useState(null);
68
- !o && oe !== null && ie(null);
69
- const O = U.side || "flip", v = U.align || "flip", We = U.fallbackAxisSide || "end", re = typeof u == "function" ? u : void 0, Ie = Qe(re), se = re ? Ie : u, C = z(u), Ue = z(o), y = Ze() === "rtl", ce = oe || {
70
- top: "top",
71
- right: "right",
72
- bottom: "bottom",
73
- left: "left",
74
- "inline-end": y ? "left" : "right",
75
- "inline-start": y ? "right" : "left"
76
- }[n], Ye = R === "center" ? ce : `${ce}-${R}`;
77
- let t = ze;
78
- const p = 1, le = n === "bottom" ? p : 0, ae = n === "top" ? p : 0, fe = n === "right" ? p : 0, de = n === "left" ? p : 0;
79
- typeof t == "number" ? t = {
80
- top: t + le,
81
- right: t + de,
82
- bottom: t + ae,
83
- left: t + fe
84
- } : t && (t = {
85
- top: (t.top || 0) + le,
86
- right: (t.right || 0) + de,
87
- bottom: (t.bottom || 0) + ae,
88
- left: (t.left || 0) + fe
89
- });
90
- const F = {
91
- boundary: Z === "clipping-ancestors" ? "clippingAncestors" : Z,
92
- padding: t
93
- }, x = d.useRef(null), X = z(c), j = z(V), Xe = typeof c != "function" ? c : 0, je = typeof V != "function" ? V : 0, b = [];
94
- te && b.push(te), b.push(rt((e) => {
95
- const i = Fe(e, n, y), l = typeof X.current == "function" ? X.current(i) : X.current, r = typeof j.current == "function" ? j.current(i) : j.current;
96
- return {
97
- mainAxis: l,
98
- crossAxis: r,
99
- alignmentAxis: r
100
- };
101
- }, [Xe, je, y, n]));
102
- const ue = v === "none" && O !== "shift", pe = !ue && (W || P || O === "shift"), he = O === "none" ? null : ot({
103
- ...F,
104
- // Ensure the popup flips if it's been limited by its --available-height and it resizes.
105
- // Since the size() padding is smaller than the flip() padding, flip() will take precedence.
106
- padding: {
107
- top: t.top + p,
108
- right: t.right + p,
109
- bottom: t.bottom + p,
110
- left: t.left + p
111
- },
112
- mainAxis: !P && O === "flip",
113
- crossAxis: v === "flip" ? "alignment" : !1,
114
- fallbackAxisSideDirection: We
115
- }), me = ue ? null : st((e) => {
116
- const i = ke(e.elements.floating).documentElement;
117
- return {
118
- ...F,
119
- // Use the Layout Viewport to avoid shifting around when pinch-zooming
120
- // for context menus.
121
- rootBoundary: P ? {
122
- x: 0,
123
- y: 0,
124
- width: i.clientWidth,
125
- height: i.clientHeight
126
- } : void 0,
127
- mainAxis: v !== "none",
128
- crossAxis: pe,
129
- limiter: W || P ? void 0 : ct((l) => {
130
- if (!x.current)
131
- return {};
132
- const {
133
- width: r,
134
- height: f
135
- } = x.current.getBoundingClientRect(), s = De(B(l.placement)), g = s === "y" ? r : f, S = s === "y" ? t.left + t.right : t.top + t.bottom;
136
- return {
137
- offset: g / 2 + S / 2
138
- };
139
- })
140
- };
141
- }, [F, W, P, t, v]);
142
- O === "shift" || v === "shift" || R === "center" ? b.push(me, he) : b.push(he, me), b.push(it({
143
- ...F,
144
- apply({
145
- elements: {
146
- floating: e
147
- },
148
- availableWidth: i,
149
- availableHeight: l,
150
- rects: r
151
- }) {
152
- if (!Ue.current)
153
- return;
154
- const f = e.style;
155
- f.setProperty("--available-width", `${i}px`), f.setProperty("--available-height", `${l}px`);
156
- const s = at(e).devicePixelRatio || 1, {
157
- x: g,
158
- y: S,
159
- width: T,
160
- height: G
161
- } = r.reference, J = (Math.round((g + T) * s) - Math.round(g * s)) / s, K = (Math.round((S + G) * s) - Math.round(S * s)) / s;
162
- f.setProperty("--anchor-width", `${J}px`), f.setProperty("--anchor-height", `${K}px`);
1
+ import * as e from "react";
2
+ import { NOOP as r } from "./index287.js";
3
+ const t = /* @__PURE__ */ e.createContext({
4
+ formRef: {
5
+ current: {
6
+ fields: /* @__PURE__ */ new Map()
163
7
  }
164
- }), et((e) => ({
165
- // `transform-origin` calculations rely on an element existing. If the arrow hasn't been set,
166
- // we'll create a fake element.
167
- element: x.current || ke(e.elements.floating).createElement("div"),
168
- padding: ee,
169
- offsetParent: "floating"
170
- }), [ee]), {
171
- name: "transformOrigin",
172
- fn(e) {
173
- const {
174
- elements: i,
175
- middlewareData: l,
176
- placement: r,
177
- rects: f,
178
- y: s
179
- } = e, g = B(r), S = De(g), T = x.current, G = l.arrow?.x || 0, J = l.arrow?.y || 0, K = T?.clientWidth || 0, _e = T?.clientHeight || 0, N = G + K / 2, Ee = J + _e / 2, qe = Math.abs(l.shift?.y || 0), Ge = f.reference.height / 2, E = typeof c == "function" ? c(Fe(e, n, y)) : c, Je = qe > E, Ke = {
180
- top: `${N}px calc(100% + ${E}px)`,
181
- bottom: `${N}px ${-E}px`,
182
- left: `calc(100% + ${E}px) ${Ee}px`,
183
- right: `${-E}px ${Ee}px`
184
- }[g], Ne = `${N}px ${f.reference.y + Ge - s}px`;
185
- return i.floating.style.setProperty("--transform-origin", pe && S === "y" && Je ? Ne : Ke), {};
186
- }
187
- }, tt, Y), Q(() => {
188
- !o && k && k.update({
189
- referenceElement: null,
190
- floatingElement: null,
191
- domReferenceElement: null,
192
- positionReference: null
193
- });
194
- }, [o, k]);
195
- const _ = d.useMemo(() => ({
196
- elementResize: !I && typeof ResizeObserver < "u",
197
- layoutShift: !I && typeof IntersectionObserver < "u"
198
- }), [I]), {
199
- refs: w,
200
- elements: M,
201
- x: ge,
202
- y: ye,
203
- middlewareData: A,
204
- update: H,
205
- placement: xe,
206
- context: be,
207
- isPositioned: m,
208
- floatingStyles: we
209
- } = lt({
210
- rootContext: k,
211
- open: D ? o : void 0,
212
- placement: Ye,
213
- middleware: b,
214
- strategy: h,
215
- whileElementsMounted: D ? void 0 : (...e) => Ce(...e, _),
216
- nodeId: Be,
217
- externalTree: Ve
218
- }), {
219
- sideX: Ae,
220
- sideY: Se
221
- } = A.adaptiveOrigin || nt, q = m ? h : "fixed", Re = d.useMemo(() => {
222
- const e = Y ? {
223
- position: q,
224
- [Ae]: ge,
225
- [Se]: ye
226
- } : {
227
- position: q,
228
- ...we
229
- };
230
- return m || (e.opacity = 0), e;
231
- }, [Y, q, Ae, ge, Se, ye, we, m]), L = d.useRef(null);
232
- Q(() => {
233
- if (!o)
234
- return;
235
- const e = C.current, i = typeof e == "function" ? e() : e, r = (He(i) ? i.current : i) || null || null;
236
- r !== L.current && (w.setPositionReference(r), L.current = r);
237
- }, [o, w, se, C]), d.useEffect(() => {
238
- if (!o)
239
- return;
240
- const e = C.current;
241
- typeof e != "function" && He(e) && e.current !== L.current && (w.setPositionReference(e.current), L.current = e.current);
242
- }, [o, w, se, C]), d.useEffect(() => {
243
- if (D && o && M.reference && M.floating)
244
- return Ce(M.reference, M.floating, H, _);
245
- }, [D, o, M, H, _]);
246
- const $ = B(xe), Pe = Te(n, $, y), Oe = Le(xe) || "center", ve = !!A.hide?.referenceHidden;
247
- Q(() => {
248
- ne && o && m && ie($);
249
- }, [ne, o, m, $]);
250
- const Me = d.useMemo(() => ({
251
- position: "absolute",
252
- top: A.arrow?.y,
253
- left: A.arrow?.x
254
- }), [A.arrow]), $e = A.arrow?.centerOffset !== 0;
255
- return d.useMemo(() => ({
256
- positionerStyles: Re,
257
- arrowStyles: Me,
258
- arrowRef: x,
259
- arrowUncentered: $e,
260
- side: Pe,
261
- align: Oe,
262
- physicalSide: $,
263
- anchorHidden: ve,
264
- refs: w,
265
- context: be,
266
- isPositioned: m,
267
- update: H
268
- }), [Re, Me, x, $e, Pe, Oe, $, ve, w, be, m, H]);
269
- }
270
- function He(a) {
271
- return a != null && "current" in a;
8
+ },
9
+ errors: {},
10
+ clearErrors: r,
11
+ validationMode: "onSubmit",
12
+ submitAttemptedRef: {
13
+ current: !1
14
+ }
15
+ });
16
+ process.env.NODE_ENV !== "production" && (t.displayName = "FormContext");
17
+ function n() {
18
+ return e.useContext(t);
272
19
  }
273
20
  export {
274
- Pt as useAnchorPositioning
21
+ t as FormContext,
22
+ n as useFormContext
275
23
  };
276
24
  //# sourceMappingURL=index294.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index294.js","sources":["../../../node_modules/@base-ui/react/utils/useAnchorPositioning.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getSide, getAlignment, getSideAxis } from '@floating-ui/utils';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { autoUpdate, flip, limitShift, offset, shift, useFloating, size } from \"../floating-ui-react/index.mjs\";\nimport { useDirection } from \"../internals/direction-context/DirectionContext.mjs\";\nimport { arrow } from \"../floating-ui-react/middleware/arrow.mjs\";\nimport { hide } from \"./hideMiddleware.mjs\";\nimport { DEFAULT_SIDES } from \"./adaptiveOriginMiddleware.mjs\";\nfunction getLogicalSide(sideParam, renderedSide, isRtl) {\n const isLogicalSideParam = sideParam === 'inline-start' || sideParam === 'inline-end';\n const logicalRight = isRtl ? 'inline-start' : 'inline-end';\n const logicalLeft = isRtl ? 'inline-end' : 'inline-start';\n return {\n top: 'top',\n right: isLogicalSideParam ? logicalRight : 'right',\n bottom: 'bottom',\n left: isLogicalSideParam ? logicalLeft : 'left'\n }[renderedSide];\n}\nfunction getOffsetData(state, sideParam, isRtl) {\n const {\n rects,\n placement\n } = state;\n const data = {\n side: getLogicalSide(sideParam, getSide(placement), isRtl),\n align: getAlignment(placement) || 'center',\n anchor: {\n width: rects.reference.width,\n height: rects.reference.height\n },\n positioner: {\n width: rects.floating.width,\n height: rects.floating.height\n }\n };\n return data;\n}\n/**\n * Provides standardized anchor positioning behavior for floating elements. Wraps Floating UI's\n * `useFloating` hook.\n */\nexport function useAnchorPositioning(params) {\n const {\n // Public parameters\n anchor,\n positionMethod = 'absolute',\n side: sideParam = 'bottom',\n sideOffset = 0,\n align = 'center',\n alignOffset = 0,\n collisionBoundary,\n collisionPadding: collisionPaddingParam = 5,\n sticky = false,\n arrowPadding = 5,\n disableAnchorTracking = false,\n inline: inlineMiddleware,\n // Private parameters\n keepMounted = false,\n floatingRootContext,\n mounted,\n collisionAvoidance,\n shiftCrossAxis = false,\n nodeId,\n adaptiveOrigin,\n lazyFlip = false,\n externalTree\n } = params;\n const [mountSide, setMountSide] = React.useState(null);\n if (!mounted && mountSide !== null) {\n setMountSide(null);\n }\n const collisionAvoidanceSide = collisionAvoidance.side || 'flip';\n const collisionAvoidanceAlign = collisionAvoidance.align || 'flip';\n const collisionAvoidanceFallbackAxisSide = collisionAvoidance.fallbackAxisSide || 'end';\n const anchorFn = typeof anchor === 'function' ? anchor : undefined;\n const anchorFnCallback = useStableCallback(anchorFn);\n const anchorDep = anchorFn ? anchorFnCallback : anchor;\n const anchorValueRef = useValueAsRef(anchor);\n const mountedRef = useValueAsRef(mounted);\n const direction = useDirection();\n const isRtl = direction === 'rtl';\n const side = mountSide || {\n top: 'top',\n right: 'right',\n bottom: 'bottom',\n left: 'left',\n 'inline-end': isRtl ? 'left' : 'right',\n 'inline-start': isRtl ? 'right' : 'left'\n }[sideParam];\n const placement = align === 'center' ? side : `${side}-${align}`;\n let collisionPadding = collisionPaddingParam;\n\n // Create a bias to the preferred side.\n // On iOS, when the mobile software keyboard opens, the input is exactly centered\n // in the viewport, but this can cause it to flip to the top undesirably.\n const bias = 1;\n const biasTop = sideParam === 'bottom' ? bias : 0;\n const biasBottom = sideParam === 'top' ? bias : 0;\n const biasLeft = sideParam === 'right' ? bias : 0;\n const biasRight = sideParam === 'left' ? bias : 0;\n if (typeof collisionPadding === 'number') {\n collisionPadding = {\n top: collisionPadding + biasTop,\n right: collisionPadding + biasRight,\n bottom: collisionPadding + biasBottom,\n left: collisionPadding + biasLeft\n };\n } else if (collisionPadding) {\n collisionPadding = {\n top: (collisionPadding.top || 0) + biasTop,\n right: (collisionPadding.right || 0) + biasRight,\n bottom: (collisionPadding.bottom || 0) + biasBottom,\n left: (collisionPadding.left || 0) + biasLeft\n };\n }\n const commonCollisionProps = {\n boundary: collisionBoundary === 'clipping-ancestors' ? 'clippingAncestors' : collisionBoundary,\n padding: collisionPadding\n };\n\n // Using a ref assumes that the arrow element is always present in the DOM for the lifetime of the\n // popup. If this assumption ends up being false, we can switch to state to manage the arrow's\n // presence.\n const arrowRef = React.useRef(null);\n\n // Keep these reactive if they're not functions\n const sideOffsetRef = useValueAsRef(sideOffset);\n const alignOffsetRef = useValueAsRef(alignOffset);\n const sideOffsetDep = typeof sideOffset !== 'function' ? sideOffset : 0;\n const alignOffsetDep = typeof alignOffset !== 'function' ? alignOffset : 0;\n const middleware = [];\n if (inlineMiddleware) {\n middleware.push(inlineMiddleware);\n }\n middleware.push(offset(state => {\n const data = getOffsetData(state, sideParam, isRtl);\n const sideAxis = typeof sideOffsetRef.current === 'function' ? sideOffsetRef.current(data) : sideOffsetRef.current;\n const alignAxis = typeof alignOffsetRef.current === 'function' ? alignOffsetRef.current(data) : alignOffsetRef.current;\n return {\n mainAxis: sideAxis,\n crossAxis: alignAxis,\n alignmentAxis: alignAxis\n };\n }, [sideOffsetDep, alignOffsetDep, isRtl, sideParam]));\n const shiftDisabled = collisionAvoidanceAlign === 'none' && collisionAvoidanceSide !== 'shift';\n const crossAxisShiftEnabled = !shiftDisabled && (sticky || shiftCrossAxis || collisionAvoidanceSide === 'shift');\n const flipMiddleware = collisionAvoidanceSide === 'none' ? null : flip({\n ...commonCollisionProps,\n // Ensure the popup flips if it's been limited by its --available-height and it resizes.\n // Since the size() padding is smaller than the flip() padding, flip() will take precedence.\n padding: {\n top: collisionPadding.top + bias,\n right: collisionPadding.right + bias,\n bottom: collisionPadding.bottom + bias,\n left: collisionPadding.left + bias\n },\n mainAxis: !shiftCrossAxis && collisionAvoidanceSide === 'flip',\n crossAxis: collisionAvoidanceAlign === 'flip' ? 'alignment' : false,\n fallbackAxisSideDirection: collisionAvoidanceFallbackAxisSide\n });\n const shiftMiddleware = shiftDisabled ? null : shift(data => {\n const html = ownerDocument(data.elements.floating).documentElement;\n return {\n ...commonCollisionProps,\n // Use the Layout Viewport to avoid shifting around when pinch-zooming\n // for context menus.\n rootBoundary: shiftCrossAxis ? {\n x: 0,\n y: 0,\n width: html.clientWidth,\n height: html.clientHeight\n } : undefined,\n mainAxis: collisionAvoidanceAlign !== 'none',\n crossAxis: crossAxisShiftEnabled,\n limiter: sticky || shiftCrossAxis ? undefined : limitShift(limitData => {\n if (!arrowRef.current) {\n return {};\n }\n const {\n width,\n height\n } = arrowRef.current.getBoundingClientRect();\n const sideAxis = getSideAxis(getSide(limitData.placement));\n const arrowSize = sideAxis === 'y' ? width : height;\n const offsetAmount = sideAxis === 'y' ? collisionPadding.left + collisionPadding.right : collisionPadding.top + collisionPadding.bottom;\n return {\n offset: arrowSize / 2 + offsetAmount / 2\n };\n })\n };\n }, [commonCollisionProps, sticky, shiftCrossAxis, collisionPadding, collisionAvoidanceAlign]);\n\n // https://floating-ui.com/docs/flip#combining-with-shift\n if (collisionAvoidanceSide === 'shift' || collisionAvoidanceAlign === 'shift' || align === 'center') {\n middleware.push(shiftMiddleware, flipMiddleware);\n } else {\n middleware.push(flipMiddleware, shiftMiddleware);\n }\n middleware.push(size({\n ...commonCollisionProps,\n apply({\n elements: {\n floating\n },\n availableWidth,\n availableHeight,\n rects\n }) {\n if (!mountedRef.current) {\n return;\n }\n const floatingStyle = floating.style;\n floatingStyle.setProperty('--available-width', `${availableWidth}px`);\n floatingStyle.setProperty('--available-height', `${availableHeight}px`);\n\n // Snap anchor dimensions to device pixels to ensure the popup's visual width matches the anchor's one.\n const dpr = ownerWindow(floating).devicePixelRatio || 1;\n const {\n x,\n y,\n width,\n height\n } = rects.reference;\n const anchorWidth = (Math.round((x + width) * dpr) - Math.round(x * dpr)) / dpr;\n const anchorHeight = (Math.round((y + height) * dpr) - Math.round(y * dpr)) / dpr;\n floatingStyle.setProperty('--anchor-width', `${anchorWidth}px`);\n floatingStyle.setProperty('--anchor-height', `${anchorHeight}px`);\n }\n }), arrow(state => ({\n // `transform-origin` calculations rely on an element existing. If the arrow hasn't been set,\n // we'll create a fake element.\n element: arrowRef.current || ownerDocument(state.elements.floating).createElement('div'),\n padding: arrowPadding,\n offsetParent: 'floating'\n }), [arrowPadding]), {\n name: 'transformOrigin',\n fn(state) {\n const {\n elements,\n middlewareData,\n placement: renderedPlacement,\n rects,\n y\n } = state;\n const currentRenderedSide = getSide(renderedPlacement);\n const currentRenderedAxis = getSideAxis(currentRenderedSide);\n const arrowEl = arrowRef.current;\n const arrowX = middlewareData.arrow?.x || 0;\n const arrowY = middlewareData.arrow?.y || 0;\n const arrowWidth = arrowEl?.clientWidth || 0;\n const arrowHeight = arrowEl?.clientHeight || 0;\n const transformX = arrowX + arrowWidth / 2;\n const transformY = arrowY + arrowHeight / 2;\n const shiftY = Math.abs(middlewareData.shift?.y || 0);\n const halfAnchorHeight = rects.reference.height / 2;\n const sideOffsetValue = typeof sideOffset === 'function' ? sideOffset(getOffsetData(state, sideParam, isRtl)) : sideOffset;\n const isOverlappingAnchor = shiftY > sideOffsetValue;\n const adjacentTransformOrigin = {\n top: `${transformX}px calc(100% + ${sideOffsetValue}px)`,\n bottom: `${transformX}px ${-sideOffsetValue}px`,\n left: `calc(100% + ${sideOffsetValue}px) ${transformY}px`,\n right: `${-sideOffsetValue}px ${transformY}px`\n }[currentRenderedSide];\n const overlapTransformOrigin = `${transformX}px ${rects.reference.y + halfAnchorHeight - y}px`;\n elements.floating.style.setProperty('--transform-origin', crossAxisShiftEnabled && currentRenderedAxis === 'y' && isOverlappingAnchor ? overlapTransformOrigin : adjacentTransformOrigin);\n return {};\n }\n }, hide, adaptiveOrigin);\n useIsoLayoutEffect(() => {\n // Ensure positioning doesn't run initially for `keepMounted` elements that\n // aren't initially open.\n if (!mounted && floatingRootContext) {\n floatingRootContext.update({\n referenceElement: null,\n floatingElement: null,\n domReferenceElement: null,\n positionReference: null\n });\n }\n }, [mounted, floatingRootContext]);\n const autoUpdateOptions = React.useMemo(() => ({\n elementResize: !disableAnchorTracking && typeof ResizeObserver !== 'undefined',\n layoutShift: !disableAnchorTracking && typeof IntersectionObserver !== 'undefined'\n }), [disableAnchorTracking]);\n const {\n refs,\n elements,\n x,\n y,\n middlewareData,\n update,\n placement: renderedPlacement,\n context,\n isPositioned,\n floatingStyles: originalFloatingStyles\n } = useFloating({\n rootContext: floatingRootContext,\n open: keepMounted ? mounted : undefined,\n placement,\n middleware,\n strategy: positionMethod,\n whileElementsMounted: keepMounted ? undefined : (...args) => autoUpdate(...args, autoUpdateOptions),\n nodeId,\n externalTree\n });\n const {\n sideX,\n sideY\n } = middlewareData.adaptiveOrigin || DEFAULT_SIDES;\n\n // Default to `fixed` when not positioned to prevent `autoFocus` scroll jumps.\n // This ensures the popup is inside the viewport initially before it gets positioned.\n const resolvedPosition = isPositioned ? positionMethod : 'fixed';\n const floatingStyles = React.useMemo(() => {\n const base = adaptiveOrigin ? {\n position: resolvedPosition,\n [sideX]: x,\n [sideY]: y\n } : {\n position: resolvedPosition,\n ...originalFloatingStyles\n };\n if (!isPositioned) {\n base.opacity = 0;\n }\n return base;\n }, [adaptiveOrigin, resolvedPosition, sideX, x, sideY, y, originalFloatingStyles, isPositioned]);\n const registeredPositionReferenceRef = React.useRef(null);\n useIsoLayoutEffect(() => {\n if (!mounted) {\n return;\n }\n const anchorValue = anchorValueRef.current;\n const resolvedAnchor = typeof anchorValue === 'function' ? anchorValue() : anchorValue;\n const unwrappedElement = (isRef(resolvedAnchor) ? resolvedAnchor.current : resolvedAnchor) || null;\n const finalAnchor = unwrappedElement || null;\n if (finalAnchor !== registeredPositionReferenceRef.current) {\n refs.setPositionReference(finalAnchor);\n registeredPositionReferenceRef.current = finalAnchor;\n }\n }, [mounted, refs, anchorDep, anchorValueRef]);\n React.useEffect(() => {\n if (!mounted) {\n return;\n }\n const anchorValue = anchorValueRef.current;\n\n // Refs from parent components are set after useLayoutEffect runs and are available in useEffect.\n // Therefore, if the anchor is a ref, we need to update the position reference in useEffect.\n if (typeof anchorValue === 'function') {\n return;\n }\n if (isRef(anchorValue) && anchorValue.current !== registeredPositionReferenceRef.current) {\n refs.setPositionReference(anchorValue.current);\n registeredPositionReferenceRef.current = anchorValue.current;\n }\n }, [mounted, refs, anchorDep, anchorValueRef]);\n React.useEffect(() => {\n if (keepMounted && mounted && elements.reference && elements.floating) {\n return autoUpdate(elements.reference, elements.floating, update, autoUpdateOptions);\n }\n return undefined;\n }, [keepMounted, mounted, elements, update, autoUpdateOptions]);\n const renderedSide = getSide(renderedPlacement);\n const logicalRenderedSide = getLogicalSide(sideParam, renderedSide, isRtl);\n const renderedAlign = getAlignment(renderedPlacement) || 'center';\n const anchorHidden = Boolean(middlewareData.hide?.referenceHidden);\n\n // Locks the flip (makes it \"sticky\") so it doesn't prefer a given placement\n // and flips back lazily, not eagerly. Ideal for filtered lists that change\n // the size of the popup dynamically to avoid unwanted flipping when typing.\n useIsoLayoutEffect(() => {\n if (lazyFlip && mounted && isPositioned) {\n setMountSide(renderedSide);\n }\n }, [lazyFlip, mounted, isPositioned, renderedSide]);\n const arrowStyles = React.useMemo(() => ({\n position: 'absolute',\n top: middlewareData.arrow?.y,\n left: middlewareData.arrow?.x\n }), [middlewareData.arrow]);\n const arrowUncentered = middlewareData.arrow?.centerOffset !== 0;\n return React.useMemo(() => ({\n positionerStyles: floatingStyles,\n arrowStyles,\n arrowRef,\n arrowUncentered,\n side: logicalRenderedSide,\n align: renderedAlign,\n physicalSide: renderedSide,\n anchorHidden,\n refs,\n context,\n isPositioned,\n update\n }), [floatingStyles, arrowStyles, arrowRef, arrowUncentered, logicalRenderedSide, renderedAlign, renderedSide, anchorHidden, refs, context, isPositioned, update]);\n}\nfunction isRef(param) {\n return param != null && 'current' in param;\n}"],"names":["getLogicalSide","sideParam","renderedSide","isRtl","isLogicalSideParam","getOffsetData","state","rects","placement","getSide","getAlignment","useAnchorPositioning","params","anchor","positionMethod","sideOffset","align","alignOffset","collisionBoundary","collisionPaddingParam","sticky","arrowPadding","disableAnchorTracking","inlineMiddleware","keepMounted","floatingRootContext","mounted","collisionAvoidance","shiftCrossAxis","nodeId","adaptiveOrigin","lazyFlip","externalTree","mountSide","setMountSide","React","collisionAvoidanceSide","collisionAvoidanceAlign","collisionAvoidanceFallbackAxisSide","anchorFn","anchorFnCallback","useStableCallback","anchorDep","anchorValueRef","useValueAsRef","mountedRef","useDirection","side","collisionPadding","bias","biasTop","biasBottom","biasLeft","biasRight","commonCollisionProps","arrowRef","sideOffsetRef","alignOffsetRef","sideOffsetDep","alignOffsetDep","middleware","offset","data","sideAxis","alignAxis","shiftDisabled","crossAxisShiftEnabled","flipMiddleware","flip","shiftMiddleware","shift","html","ownerDocument","limitShift","limitData","width","height","getSideAxis","arrowSize","offsetAmount","size","floating","availableWidth","availableHeight","floatingStyle","dpr","ownerWindow","x","y","anchorWidth","anchorHeight","arrow","elements","middlewareData","renderedPlacement","currentRenderedSide","currentRenderedAxis","arrowEl","arrowX","arrowY","arrowWidth","arrowHeight","transformX","transformY","shiftY","halfAnchorHeight","sideOffsetValue","isOverlappingAnchor","adjacentTransformOrigin","overlapTransformOrigin","hide","useIsoLayoutEffect","autoUpdateOptions","refs","update","context","isPositioned","originalFloatingStyles","useFloating","args","autoUpdate","sideX","sideY","DEFAULT_SIDES","resolvedPosition","floatingStyles","base","registeredPositionReferenceRef","anchorValue","resolvedAnchor","finalAnchor","isRef","logicalRenderedSide","renderedAlign","anchorHidden","arrowStyles","arrowUncentered","param"],"mappings":";;;;;;;;;;;;;;AAaA,SAASA,GAAeC,GAAWC,GAAcC,GAAO;AACtD,QAAMC,IAAqBH,MAAc,kBAAkBA,MAAc;AAGzE,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAOG,IAJYD,IAAQ,iBAAiB,eAID;AAAA,IAC3C,QAAQ;AAAA,IACR,MAAMC,IALYD,IAAQ,eAAe,iBAKA;AAAA,EAC7C,EAAID,CAAY;AAChB;AACA,SAASG,GAAcC,GAAOL,GAAWE,GAAO;AAC9C,QAAM;AAAA,IACJ,OAAAI;AAAA,IACA,WAAAC;AAAA,EACJ,IAAMF;AAaJ,SAZa;AAAA,IACX,MAAMN,GAAeC,GAAWQ,EAAQD,CAAS,GAAGL,CAAK;AAAA,IACzD,OAAOO,GAAaF,CAAS,KAAK;AAAA,IAClC,QAAQ;AAAA,MACN,OAAOD,EAAM,UAAU;AAAA,MACvB,QAAQA,EAAM,UAAU;AAAA,IAC9B;AAAA,IACI,YAAY;AAAA,MACV,OAAOA,EAAM,SAAS;AAAA,MACtB,QAAQA,EAAM,SAAS;AAAA,IAC7B;AAAA,EACA;AAEA;AAKO,SAASI,GAAqBC,GAAQ;AAC3C,QAAM;AAAA;AAAA,IAEJ,QAAAC;AAAA,IACA,gBAAAC,IAAiB;AAAA,IACjB,MAAMb,IAAY;AAAA,IAClB,YAAAc,IAAa;AAAA,IACb,OAAAC,IAAQ;AAAA,IACR,aAAAC,IAAc;AAAA,IACd,mBAAAC;AAAA,IACA,kBAAkBC,KAAwB;AAAA,IAC1C,QAAAC,IAAS;AAAA,IACT,cAAAC,KAAe;AAAA,IACf,uBAAAC,IAAwB;AAAA,IACxB,QAAQC;AAAA;AAAA,IAER,aAAAC,IAAc;AAAA,IACd,qBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,gBAAAC,IAAiB;AAAA,IACjB,QAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC,KAAW;AAAA,IACX,cAAAC;AAAA,EACJ,IAAMpB,GACE,CAACqB,IAAWC,EAAY,IAAIC,EAAM,SAAS,IAAI;AACrD,EAAI,CAACT,KAAWO,OAAc,QAC5BC,GAAa,IAAI;AAEnB,QAAME,IAAyBT,EAAmB,QAAQ,QACpDU,IAA0BV,EAAmB,SAAS,QACtDW,KAAqCX,EAAmB,oBAAoB,OAC5EY,KAAW,OAAO1B,KAAW,aAAaA,IAAS,QACnD2B,KAAmBC,GAAkBF,EAAQ,GAC7CG,KAAYH,KAAWC,KAAmB3B,GAC1C8B,IAAiBC,EAAc/B,CAAM,GACrCgC,KAAaD,EAAclB,CAAO,GAElCvB,IADY2C,GAAY,MACF,OACtBC,KAAOd,MAAa;AAAA,IACxB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,cAAc9B,IAAQ,SAAS;AAAA,IAC/B,gBAAgBA,IAAQ,UAAU;AAAA,EACtC,EAAIF,CAAS,GACLO,KAAYQ,MAAU,WAAW+B,KAAO,GAAGA,EAAI,IAAI/B,CAAK;AAC9D,MAAIgC,IAAmB7B;AAKvB,QAAM8B,IAAO,GACPC,KAAUjD,MAAc,WAAWgD,IAAO,GAC1CE,KAAalD,MAAc,QAAQgD,IAAO,GAC1CG,KAAWnD,MAAc,UAAUgD,IAAO,GAC1CI,KAAYpD,MAAc,SAASgD,IAAO;AAChD,EAAI,OAAOD,KAAqB,WAC9BA,IAAmB;AAAA,IACjB,KAAKA,IAAmBE;AAAA,IACxB,OAAOF,IAAmBK;AAAA,IAC1B,QAAQL,IAAmBG;AAAA,IAC3B,MAAMH,IAAmBI;AAAA,EAC/B,IACaJ,MACTA,IAAmB;AAAA,IACjB,MAAMA,EAAiB,OAAO,KAAKE;AAAA,IACnC,QAAQF,EAAiB,SAAS,KAAKK;AAAA,IACvC,SAASL,EAAiB,UAAU,KAAKG;AAAA,IACzC,OAAOH,EAAiB,QAAQ,KAAKI;AAAA,EAC3C;AAEE,QAAME,IAAuB;AAAA,IAC3B,UAAUpC,MAAsB,uBAAuB,sBAAsBA;AAAA,IAC7E,SAAS8B;AAAA,EACb,GAKQO,IAAWpB,EAAM,OAAO,IAAI,GAG5BqB,IAAgBZ,EAAc7B,CAAU,GACxC0C,IAAiBb,EAAc3B,CAAW,GAC1CyC,KAAgB,OAAO3C,KAAe,aAAaA,IAAa,GAChE4C,KAAiB,OAAO1C,KAAgB,aAAaA,IAAc,GACnE2C,IAAa,CAAA;AACnB,EAAIrC,MACFqC,EAAW,KAAKrC,EAAgB,GAElCqC,EAAW,KAAKC,GAAO,CAAAvD,MAAS;AAC9B,UAAMwD,IAAOzD,GAAcC,GAAOL,GAAWE,CAAK,GAC5C4D,IAAW,OAAOP,EAAc,WAAY,aAAaA,EAAc,QAAQM,CAAI,IAAIN,EAAc,SACrGQ,IAAY,OAAOP,EAAe,WAAY,aAAaA,EAAe,QAAQK,CAAI,IAAIL,EAAe;AAC/G,WAAO;AAAA,MACL,UAAUM;AAAA,MACV,WAAWC;AAAA,MACX,eAAeA;AAAA,IACrB;AAAA,EACE,GAAG,CAACN,IAAeC,IAAgBxD,GAAOF,CAAS,CAAC,CAAC;AACrD,QAAMgE,KAAgB5B,MAA4B,UAAUD,MAA2B,SACjF8B,KAAwB,CAACD,OAAkB7C,KAAUQ,KAAkBQ,MAA2B,UAClG+B,KAAiB/B,MAA2B,SAAS,OAAOgC,GAAK;AAAA,IACrE,GAAGd;AAAA;AAAA;AAAA,IAGH,SAAS;AAAA,MACP,KAAKN,EAAiB,MAAMC;AAAA,MAC5B,OAAOD,EAAiB,QAAQC;AAAA,MAChC,QAAQD,EAAiB,SAASC;AAAA,MAClC,MAAMD,EAAiB,OAAOC;AAAA,IACpC;AAAA,IACI,UAAU,CAACrB,KAAkBQ,MAA2B;AAAA,IACxD,WAAWC,MAA4B,SAAS,cAAc;AAAA,IAC9D,2BAA2BC;AAAA,EAC/B,CAAG,GACK+B,KAAkBJ,KAAgB,OAAOK,GAAM,CAAAR,MAAQ;AAC3D,UAAMS,IAAOC,GAAcV,EAAK,SAAS,QAAQ,EAAE;AACnD,WAAO;AAAA,MACL,GAAGR;AAAA;AAAA;AAAA,MAGH,cAAc1B,IAAiB;AAAA,QAC7B,GAAG;AAAA,QACH,GAAG;AAAA,QACH,OAAO2C,EAAK;AAAA,QACZ,QAAQA,EAAK;AAAA,MACrB,IAAU;AAAA,MACJ,UAAUlC,MAA4B;AAAA,MACtC,WAAW6B;AAAA,MACX,SAAS9C,KAAUQ,IAAiB,SAAY6C,GAAW,CAAAC,MAAa;AACtE,YAAI,CAACnB,EAAS;AACZ,iBAAO,CAAA;AAET,cAAM;AAAA,UACJ,OAAAoB;AAAA,UACA,QAAAC;AAAA,QACV,IAAYrB,EAAS,QAAQ,sBAAqB,GACpCQ,IAAWc,GAAYpE,EAAQiE,EAAU,SAAS,CAAC,GACnDI,IAAYf,MAAa,MAAMY,IAAQC,GACvCG,IAAehB,MAAa,MAAMf,EAAiB,OAAOA,EAAiB,QAAQA,EAAiB,MAAMA,EAAiB;AACjI,eAAO;AAAA,UACL,QAAQ8B,IAAY,IAAIC,IAAe;AAAA,QACjD;AAAA,MACM,CAAC;AAAA,IACP;AAAA,EACE,GAAG,CAACzB,GAAsBlC,GAAQQ,GAAgBoB,GAAkBX,CAAuB,CAAC;AAG5F,EAAID,MAA2B,WAAWC,MAA4B,WAAWrB,MAAU,WACzF4C,EAAW,KAAKS,IAAiBF,EAAc,IAE/CP,EAAW,KAAKO,IAAgBE,EAAe,GAEjDT,EAAW,KAAKoB,GAAK;AAAA,IACnB,GAAG1B;AAAA,IACH,MAAM;AAAA,MACJ,UAAU;AAAA,QACR,UAAA2B;AAAA,MACR;AAAA,MACM,gBAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,OAAA5E;AAAA,IACN,GAAO;AACD,UAAI,CAACsC,GAAW;AACd;AAEF,YAAMuC,IAAgBH,EAAS;AAC/B,MAAAG,EAAc,YAAY,qBAAqB,GAAGF,CAAc,IAAI,GACpEE,EAAc,YAAY,sBAAsB,GAAGD,CAAe,IAAI;AAGtE,YAAME,IAAMC,GAAYL,CAAQ,EAAE,oBAAoB,GAChD;AAAA,QACJ,GAAAM;AAAA,QACA,GAAAC;AAAA,QACA,OAAAb;AAAA,QACA,QAAAC;AAAA,MACR,IAAUrE,EAAM,WACJkF,KAAe,KAAK,OAAOF,IAAIZ,KAASU,CAAG,IAAI,KAAK,MAAME,IAAIF,CAAG,KAAKA,GACtEK,KAAgB,KAAK,OAAOF,IAAIZ,KAAUS,CAAG,IAAI,KAAK,MAAMG,IAAIH,CAAG,KAAKA;AAC9E,MAAAD,EAAc,YAAY,kBAAkB,GAAGK,CAAW,IAAI,GAC9DL,EAAc,YAAY,mBAAmB,GAAGM,CAAY,IAAI;AAAA,IAClE;AAAA,EACJ,CAAG,GAAGC,GAAM,CAAArF,OAAU;AAAA;AAAA;AAAA,IAGlB,SAASiD,EAAS,WAAWiB,GAAclE,EAAM,SAAS,QAAQ,EAAE,cAAc,KAAK;AAAA,IACvF,SAASe;AAAA,IACT,cAAc;AAAA,EAClB,IAAM,CAACA,EAAY,CAAC,GAAG;AAAA,IACnB,MAAM;AAAA,IACN,GAAGf,GAAO;AACR,YAAM;AAAA,QACJ,UAAAsF;AAAA,QACA,gBAAAC;AAAA,QACA,WAAWC;AAAA,QACX,OAAAvF;AAAA,QACA,GAAAiF;AAAA,MACR,IAAUlF,GACEyF,IAAsBtF,EAAQqF,CAAiB,GAC/CE,IAAsBnB,GAAYkB,CAAmB,GACrDE,IAAU1C,EAAS,SACnB2C,IAASL,EAAe,OAAO,KAAK,GACpCM,IAASN,EAAe,OAAO,KAAK,GACpCO,IAAaH,GAAS,eAAe,GACrCI,KAAcJ,GAAS,gBAAgB,GACvCK,IAAaJ,IAASE,IAAa,GACnCG,KAAaJ,IAASE,KAAc,GACpCG,KAAS,KAAK,IAAIX,EAAe,OAAO,KAAK,CAAC,GAC9CY,KAAmBlG,EAAM,UAAU,SAAS,GAC5CmG,IAAkB,OAAO3F,KAAe,aAAaA,EAAWV,GAAcC,GAAOL,GAAWE,CAAK,CAAC,IAAIY,GAC1G4F,KAAsBH,KAASE,GAC/BE,KAA0B;AAAA,QAC9B,KAAK,GAAGN,CAAU,kBAAkBI,CAAe;AAAA,QACnD,QAAQ,GAAGJ,CAAU,MAAM,CAACI,CAAe;AAAA,QAC3C,MAAM,eAAeA,CAAe,OAAOH,EAAU;AAAA,QACrD,OAAO,GAAG,CAACG,CAAe,MAAMH,EAAU;AAAA,MAClD,EAAQR,CAAmB,GACfc,KAAyB,GAAGP,CAAU,MAAM/F,EAAM,UAAU,IAAIkG,KAAmBjB,CAAC;AAC1F,aAAAI,EAAS,SAAS,MAAM,YAAY,sBAAsB1B,MAAyB8B,MAAwB,OAAOW,KAAsBE,KAAyBD,EAAuB,GACjL,CAAA;AAAA,IACT;AAAA,EACJ,GAAKE,IAAMhF,CAAc,GACvBiF,EAAmB,MAAM;AAGvB,IAAI,CAACrF,KAAWD,KACdA,EAAoB,OAAO;AAAA,MACzB,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACrB,mBAAmB;AAAA,IAC3B,CAAO;AAAA,EAEL,GAAG,CAACC,GAASD,CAAmB,CAAC;AACjC,QAAMuF,IAAoB7E,EAAM,QAAQ,OAAO;AAAA,IAC7C,eAAe,CAACb,KAAyB,OAAO,iBAAmB;AAAA,IACnE,aAAa,CAACA,KAAyB,OAAO,uBAAyB;AAAA,EAC3E,IAAM,CAACA,CAAqB,CAAC,GACrB;AAAA,IACJ,MAAA2F;AAAA,IACA,UAAArB;AAAA,IACA,GAAAL;AAAA,IACA,GAAAC;AAAA,IACA,gBAAAK;AAAA,IACA,QAAAqB;AAAA,IACA,WAAWpB;AAAA,IACX,SAAAqB;AAAA,IACA,cAAAC;AAAA,IACA,gBAAgBC;AAAA,EACpB,IAAMC,GAAY;AAAA,IACd,aAAa7F;AAAA,IACb,MAAMD,IAAcE,IAAU;AAAA,IAC9B,WAAAlB;AAAA,IACA,YAAAoD;AAAA,IACA,UAAU9C;AAAA,IACV,sBAAsBU,IAAc,SAAY,IAAI+F,MAASC,GAAW,GAAGD,GAAMP,CAAiB;AAAA,IAClG,QAAAnF;AAAA,IACA,cAAAG;AAAA,EACJ,CAAG,GACK;AAAA,IACJ,OAAAyF;AAAA,IACA,OAAAC;AAAA,EACJ,IAAM7B,EAAe,kBAAkB8B,IAI/BC,IAAmBR,IAAetG,IAAiB,SACnD+G,KAAiB1F,EAAM,QAAQ,MAAM;AACzC,UAAM2F,IAAOhG,IAAiB;AAAA,MAC5B,UAAU8F;AAAA,MACV,CAACH,EAAK,GAAGlC;AAAA,MACT,CAACmC,EAAK,GAAGlC;AAAA,IACf,IAAQ;AAAA,MACF,UAAUoC;AAAA,MACV,GAAGP;AAAA,IACT;AACI,WAAKD,MACHU,EAAK,UAAU,IAEVA;AAAA,EACT,GAAG,CAAChG,GAAgB8F,GAAkBH,IAAOlC,IAAGmC,IAAOlC,IAAG6B,IAAwBD,CAAY,CAAC,GACzFW,IAAiC5F,EAAM,OAAO,IAAI;AACxD,EAAA4E,EAAmB,MAAM;AACvB,QAAI,CAACrF;AACH;AAEF,UAAMsG,IAAcrF,EAAe,SAC7BsF,IAAiB,OAAOD,KAAgB,aAAaA,EAAW,IAAKA,GAErEE,KADoBC,GAAMF,CAAc,IAAIA,EAAe,UAAUA,MAAmB,QACtD;AACxC,IAAIC,MAAgBH,EAA+B,YACjDd,EAAK,qBAAqBiB,CAAW,GACrCH,EAA+B,UAAUG;AAAA,EAE7C,GAAG,CAACxG,GAASuF,GAAMvE,IAAWC,CAAc,CAAC,GAC7CR,EAAM,UAAU,MAAM;AACpB,QAAI,CAACT;AACH;AAEF,UAAMsG,IAAcrF,EAAe;AAInC,IAAI,OAAOqF,KAAgB,cAGvBG,GAAMH,CAAW,KAAKA,EAAY,YAAYD,EAA+B,YAC/Ed,EAAK,qBAAqBe,EAAY,OAAO,GAC7CD,EAA+B,UAAUC,EAAY;AAAA,EAEzD,GAAG,CAACtG,GAASuF,GAAMvE,IAAWC,CAAc,CAAC,GAC7CR,EAAM,UAAU,MAAM;AACpB,QAAIX,KAAeE,KAAWkE,EAAS,aAAaA,EAAS;AAC3D,aAAO4B,GAAW5B,EAAS,WAAWA,EAAS,UAAUsB,GAAQF,CAAiB;AAAA,EAGtF,GAAG,CAACxF,GAAaE,GAASkE,GAAUsB,GAAQF,CAAiB,CAAC;AAC9D,QAAM9G,IAAeO,EAAQqF,EAAiB,GACxCsC,KAAsBpI,GAAeC,GAAWC,GAAcC,CAAK,GACnEkI,KAAgB3H,GAAaoF,EAAiB,KAAK,UACnDwC,KAAe,EAAQzC,EAAe,MAAM;AAKlD,EAAAkB,EAAmB,MAAM;AACvB,IAAIhF,MAAYL,KAAW0F,KACzBlF,GAAahC,CAAY;AAAA,EAE7B,GAAG,CAAC6B,IAAUL,GAAS0F,GAAclH,CAAY,CAAC;AAClD,QAAMqI,KAAcpG,EAAM,QAAQ,OAAO;AAAA,IACvC,UAAU;AAAA,IACV,KAAK0D,EAAe,OAAO;AAAA,IAC3B,MAAMA,EAAe,OAAO;AAAA,EAChC,IAAM,CAACA,EAAe,KAAK,CAAC,GACpB2C,KAAkB3C,EAAe,OAAO,iBAAiB;AAC/D,SAAO1D,EAAM,QAAQ,OAAO;AAAA,IAC1B,kBAAkB0F;AAAA,IAClB,aAAAU;AAAA,IACA,UAAAhF;AAAA,IACA,iBAAAiF;AAAA,IACA,MAAMJ;AAAA,IACN,OAAOC;AAAA,IACP,cAAcnI;AAAA,IACd,cAAAoI;AAAA,IACA,MAAArB;AAAA,IACA,SAAAE;AAAA,IACA,cAAAC;AAAA,IACA,QAAAF;AAAA,EACJ,IAAM,CAACW,IAAgBU,IAAahF,GAAUiF,IAAiBJ,IAAqBC,IAAenI,GAAcoI,IAAcrB,GAAME,IAASC,GAAcF,CAAM,CAAC;AACnK;AACA,SAASiB,GAAMM,GAAO;AACpB,SAAOA,KAAS,QAAQ,aAAaA;AACvC;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index294.js","sources":["../../../node_modules/@base-ui/react/internals/form-context/FormContext.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.mjs\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n formRef: {\n current: {\n fields: new Map()\n }\n },\n errors: {},\n clearErrors: NOOP,\n validationMode: 'onSubmit',\n submitAttemptedRef: {\n current: false\n }\n});\nif (process.env.NODE_ENV !== \"production\") FormContext.displayName = \"FormContext\";\nexport function useFormContext() {\n return React.useContext(FormContext);\n}"],"names":["FormContext","React","NOOP","useFormContext"],"mappings":";;AAIY,MAACA,IAA2B,gBAAAC,EAAM,cAAc;AAAA,EAC1D,SAAS;AAAA,IACP,SAAS;AAAA,MACP,QAAQ,oBAAI,IAAG;AAAA,IACrB;AAAA,EACA;AAAA,EACE,QAAQ,CAAA;AAAA,EACR,aAAaC;AAAA,EACb,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,IAClB,SAAS;AAAA,EACb;AACA,CAAC;AACG,QAAQ,IAAI,aAAa,iBAAcF,EAAY,cAAc;AAC9D,SAASG,IAAiB;AAC/B,SAAOF,EAAM,WAAWD,CAAW;AACrC;","x_google_ignoreList":[0]}
package/dist/index295.js CHANGED
@@ -1,15 +1,74 @@
1
- import n from "./index190.js";
2
- import * as t from "react";
3
- const o = /* @__PURE__ */ t.createContext(void 0);
4
- process.env.NODE_ENV !== "production" && (o.displayName = "SelectPositionerContext");
5
- function i() {
6
- const e = t.useContext(o);
7
- if (!e)
8
- throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: SelectPositionerContext is missing. SelectPositioner parts must be placed within <Select.Positioner>." : n(59));
9
- return e;
1
+ import * as c from "react";
2
+ import { serializeValue as a } from "./index370.js";
3
+ import { j as i } from "./index30.js";
4
+ function s(r) {
5
+ return r != null && r.length > 0 && typeof r[0] == "object" && r[0] != null && "items" in r[0];
6
+ }
7
+ function A(r) {
8
+ if (!Array.isArray(r))
9
+ return r != null && "null" in r;
10
+ const n = r;
11
+ if (s(n)) {
12
+ for (const l of n)
13
+ for (const u of l.items)
14
+ if (u && u.value == null && u.label != null)
15
+ return !0;
16
+ return !1;
17
+ }
18
+ for (const l of n)
19
+ if (l && l.value == null && l.label != null)
20
+ return !0;
21
+ return !1;
22
+ }
23
+ function b(r, n) {
24
+ if (n && r != null)
25
+ return n(r) ?? "";
26
+ if (r && typeof r == "object") {
27
+ if ("label" in r && r.label != null)
28
+ return String(r.label);
29
+ if ("value" in r)
30
+ return String(r.value);
31
+ }
32
+ return a(r);
33
+ }
34
+ function h(r, n) {
35
+ return n && r != null ? n(r) ?? "" : r && typeof r == "object" && "value" in r && "label" in r ? a(r.value) : a(r);
36
+ }
37
+ function p(r, n, l) {
38
+ function u() {
39
+ return b(r, l);
40
+ }
41
+ if (l && r != null)
42
+ return l(r);
43
+ if (r && typeof r == "object" && "label" in r && r.label != null)
44
+ return r.label;
45
+ if (n && !Array.isArray(n))
46
+ return n[r] ?? u();
47
+ if (Array.isArray(n)) {
48
+ const e = n, t = s(e) ? e.flatMap((f) => f.items) : e;
49
+ if (r == null || typeof r != "object") {
50
+ const f = t.find((o) => o.value === r);
51
+ return f && f.label != null ? f.label : u();
52
+ }
53
+ if ("value" in r) {
54
+ const f = t.find((o) => o && o.value === r.value);
55
+ if (f && f.label != null)
56
+ return f.label;
57
+ }
58
+ }
59
+ return u();
60
+ }
61
+ function d(r, n, l) {
62
+ return r.reduce((u, e, t) => (t > 0 && u.push(", "), u.push(/* @__PURE__ */ i.jsx(c.Fragment, {
63
+ children: p(e, n, l)
64
+ }, t)), u), []);
10
65
  }
11
66
  export {
12
- o as SelectPositionerContext,
13
- i as useSelectPositionerContext
67
+ A as hasNullItemLabel,
68
+ s as isGroupedItems,
69
+ d as resolveMultipleLabels,
70
+ p as resolveSelectedLabel,
71
+ b as stringifyAsLabel,
72
+ h as stringifyAsValue
14
73
  };
15
74
  //# sourceMappingURL=index295.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index295.js","sources":["../../../node_modules/@base-ui/react/select/positioner/SelectPositionerContext.mjs"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const SelectPositionerContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") SelectPositionerContext.displayName = \"SelectPositionerContext\";\nexport function useSelectPositionerContext() {\n const context = React.useContext(SelectPositionerContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: SelectPositionerContext is missing. SelectPositioner parts must be placed within <Select.Positioner>.' : _formatErrorMessage(59));\n }\n return context;\n}"],"names":["SelectPositionerContext","React","useSelectPositionerContext","context","_formatErrorMessage"],"mappings":";;AAIY,MAACA,IAAuC,gBAAAC,EAAM,cAAc,MAAS;AAC7E,QAAQ,IAAI,aAAa,iBAAcD,EAAwB,cAAc;AAC1E,SAASE,IAA6B;AAC3C,QAAMC,IAAUF,EAAM,WAAWD,CAAuB;AACxD,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,mHAAmHC,EAAoB,EAAE,CAAC;AAEpM,SAAOD;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index295.js","sources":["../../../node_modules/@base-ui/react/internals/resolveValueLabel.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { serializeValue } from \"./serializeValue.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isGroupedItems(items) {\n return items != null && items.length > 0 && typeof items[0] === 'object' && items[0] != null && 'items' in items[0];\n}\n\n/**\n * Checks if the items array contains an item with a null value that has a non-null label.\n */\nexport function hasNullItemLabel(items) {\n if (!Array.isArray(items)) {\n return items != null && 'null' in items;\n }\n const arrayItems = items;\n if (isGroupedItems(arrayItems)) {\n for (const group of arrayItems) {\n for (const item of group.items) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n }\n return false;\n }\n for (const item of arrayItems) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n return false;\n}\nexport function stringifyAsLabel(item, itemToStringLabel) {\n if (itemToStringLabel && item != null) {\n return itemToStringLabel(item) ?? '';\n }\n if (item && typeof item === 'object') {\n if ('label' in item && item.label != null) {\n return String(item.label);\n }\n if ('value' in item) {\n return String(item.value);\n }\n }\n return serializeValue(item);\n}\nexport function stringifyAsValue(item, itemToStringValue) {\n if (itemToStringValue && item != null) {\n return itemToStringValue(item) ?? '';\n }\n if (item && typeof item === 'object' && 'value' in item && 'label' in item) {\n return serializeValue(item.value);\n }\n return serializeValue(item);\n}\nexport function resolveSelectedLabel(value, items, itemToStringLabel) {\n function fallback() {\n return stringifyAsLabel(value, itemToStringLabel);\n }\n if (itemToStringLabel && value != null) {\n return itemToStringLabel(value);\n }\n\n // Custom object with explicit label takes precedence\n if (value && typeof value === 'object' && 'label' in value && value.label != null) {\n return value.label;\n }\n\n // Items provided as plain record map\n if (items && !Array.isArray(items)) {\n return items[value] ?? fallback();\n }\n\n // Items provided as array (flat or grouped)\n if (Array.isArray(items)) {\n const arrayItems = items;\n const flatItems = isGroupedItems(arrayItems) ? arrayItems.flatMap(group => group.items) : arrayItems;\n if (value == null || typeof value !== 'object') {\n const match = flatItems.find(item => item.value === value);\n if (match && match.label != null) {\n return match.label;\n }\n return fallback();\n }\n\n // Object without explicit label: try matching by its `value` property\n if ('value' in value) {\n const match = flatItems.find(item => item && item.value === value.value);\n if (match && match.label != null) {\n return match.label;\n }\n }\n }\n return fallback();\n}\nexport function resolveMultipleLabels(values, items, itemToStringLabel) {\n return values.reduce((acc, value, index) => {\n if (index > 0) {\n acc.push(', ');\n }\n acc.push(/*#__PURE__*/_jsx(React.Fragment, {\n children: resolveSelectedLabel(value, items, itemToStringLabel)\n }, index));\n return acc;\n }, []);\n}"],"names":["isGroupedItems","items","hasNullItemLabel","arrayItems","group","item","stringifyAsLabel","itemToStringLabel","serializeValue","stringifyAsValue","itemToStringValue","resolveSelectedLabel","value","fallback","flatItems","match","resolveMultipleLabels","values","acc","index","_jsx","React"],"mappings":";;;AAKO,SAASA,EAAeC,GAAO;AACpC,SAAOA,KAAS,QAAQA,EAAM,SAAS,KAAK,OAAOA,EAAM,CAAC,KAAM,YAAYA,EAAM,CAAC,KAAK,QAAQ,WAAWA,EAAM,CAAC;AACpH;AAKO,SAASC,EAAiBD,GAAO;AACtC,MAAI,CAAC,MAAM,QAAQA,CAAK;AACtB,WAAOA,KAAS,QAAQ,UAAUA;AAEpC,QAAME,IAAaF;AACnB,MAAID,EAAeG,CAAU,GAAG;AAC9B,eAAWC,KAASD;AAClB,iBAAWE,KAAQD,EAAM;AACvB,YAAIC,KAAQA,EAAK,SAAS,QAAQA,EAAK,SAAS;AAC9C,iBAAO;AAIb,WAAO;AAAA,EACT;AACA,aAAWA,KAAQF;AACjB,QAAIE,KAAQA,EAAK,SAAS,QAAQA,EAAK,SAAS;AAC9C,aAAO;AAGX,SAAO;AACT;AACO,SAASC,EAAiBD,GAAME,GAAmB;AACxD,MAAIA,KAAqBF,KAAQ;AAC/B,WAAOE,EAAkBF,CAAI,KAAK;AAEpC,MAAIA,KAAQ,OAAOA,KAAS,UAAU;AACpC,QAAI,WAAWA,KAAQA,EAAK,SAAS;AACnC,aAAO,OAAOA,EAAK,KAAK;AAE1B,QAAI,WAAWA;AACb,aAAO,OAAOA,EAAK,KAAK;AAAA,EAE5B;AACA,SAAOG,EAAeH,CAAI;AAC5B;AACO,SAASI,EAAiBJ,GAAMK,GAAmB;AACxD,SAAIA,KAAqBL,KAAQ,OACxBK,EAAkBL,CAAI,KAAK,KAEhCA,KAAQ,OAAOA,KAAS,YAAY,WAAWA,KAAQ,WAAWA,IAC7DG,EAAeH,EAAK,KAAK,IAE3BG,EAAeH,CAAI;AAC5B;AACO,SAASM,EAAqBC,GAAOX,GAAOM,GAAmB;AACpE,WAASM,IAAW;AAClB,WAAOP,EAAiBM,GAAOL,CAAiB;AAAA,EAClD;AACA,MAAIA,KAAqBK,KAAS;AAChC,WAAOL,EAAkBK,CAAK;AAIhC,MAAIA,KAAS,OAAOA,KAAU,YAAY,WAAWA,KAASA,EAAM,SAAS;AAC3E,WAAOA,EAAM;AAIf,MAAIX,KAAS,CAAC,MAAM,QAAQA,CAAK;AAC/B,WAAOA,EAAMW,CAAK,KAAKC,EAAQ;AAIjC,MAAI,MAAM,QAAQZ,CAAK,GAAG;AACxB,UAAME,IAAaF,GACba,IAAYd,EAAeG,CAAU,IAAIA,EAAW,QAAQ,CAAAC,MAASA,EAAM,KAAK,IAAID;AAC1F,QAAIS,KAAS,QAAQ,OAAOA,KAAU,UAAU;AAC9C,YAAMG,IAAQD,EAAU,KAAK,CAAAT,MAAQA,EAAK,UAAUO,CAAK;AACzD,aAAIG,KAASA,EAAM,SAAS,OACnBA,EAAM,QAERF,EAAQ;AAAA,IACjB;AAGA,QAAI,WAAWD,GAAO;AACpB,YAAMG,IAAQD,EAAU,KAAK,CAAAT,MAAQA,KAAQA,EAAK,UAAUO,EAAM,KAAK;AACvE,UAAIG,KAASA,EAAM,SAAS;AAC1B,eAAOA,EAAM;AAAA,IAEjB;AAAA,EACF;AACA,SAAOF,EAAQ;AACjB;AACO,SAASG,EAAsBC,GAAQhB,GAAOM,GAAmB;AACtE,SAAOU,EAAO,OAAO,CAACC,GAAKN,GAAOO,OAC5BA,IAAQ,KACVD,EAAI,KAAK,IAAI,GAEfA,EAAI,KAAkBE,gBAAAA,MAAKC,EAAM,UAAU;AAAA,IACzC,UAAUV,EAAqBC,GAAOX,GAAOM,CAAiB;AAAA,EACpE,GAAOY,CAAK,CAAC,GACFD,IACN,CAAA,CAAE;AACP;","x_google_ignoreList":[0]}
package/dist/index296.js CHANGED
@@ -1,14 +1,21 @@
1
- function e(o, t) {
2
- o && Object.assign(o.style, t);
3
- }
4
- const i = {
5
- position: "relative",
6
- maxHeight: "100%",
7
- overflowX: "hidden",
8
- overflowY: "auto"
9
- };
1
+ const i = (n, r) => Object.is(n, r);
2
+ function u(n, r, t) {
3
+ return n == null || r == null ? Object.is(n, r) : t(n, r);
4
+ }
5
+ function e(n, r, t) {
6
+ return !n || n.length === 0 ? !1 : n.some((f) => f === void 0 ? !1 : u(r, f, t));
7
+ }
8
+ function o(n, r, t) {
9
+ return !n || n.length === 0 ? -1 : n.findIndex((f) => f === void 0 ? !1 : u(f, r, t));
10
+ }
11
+ function I(n, r, t) {
12
+ return n.filter((f) => !u(r, f, t));
13
+ }
10
14
  export {
11
- i as LIST_FUNCTIONAL_STYLES,
12
- e as clearStyles
15
+ u as compareItemEquality,
16
+ i as defaultItemEquality,
17
+ o as findItemIndex,
18
+ I as removeItem,
19
+ e as selectedValueIncludes
13
20
  };
14
21
  //# sourceMappingURL=index296.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index296.js","sources":["../../../node_modules/@base-ui/react/select/popup/utils.mjs"],"sourcesContent":["export function clearStyles(element, originalStyles) {\n if (element) {\n Object.assign(element.style, originalStyles);\n }\n}\nexport const LIST_FUNCTIONAL_STYLES = {\n position: 'relative',\n maxHeight: '100%',\n overflowX: 'hidden',\n overflowY: 'auto'\n};"],"names":["clearStyles","element","originalStyles","LIST_FUNCTIONAL_STYLES"],"mappings":"AAAO,SAASA,EAAYC,GAASC,GAAgB;AACnD,EAAID,KACF,OAAO,OAAOA,EAAQ,OAAOC,CAAc;AAE/C;AACY,MAACC,IAAyB;AAAA,EACpC,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AACb;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index296.js","sources":["../../../node_modules/@base-ui/react/internals/itemEquality.mjs"],"sourcesContent":["export const defaultItemEquality = (itemValue, selectedValue) => Object.is(itemValue, selectedValue);\nexport function compareItemEquality(itemValue, selectedValue, comparer) {\n if (itemValue == null || selectedValue == null) {\n return Object.is(itemValue, selectedValue);\n }\n return comparer(itemValue, selectedValue);\n}\nexport function selectedValueIncludes(selectedValues, itemValue, comparer) {\n if (!selectedValues || selectedValues.length === 0) {\n return false;\n }\n return selectedValues.some(selectedValue => {\n if (selectedValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function findItemIndex(itemValues, selectedValue, comparer) {\n if (!itemValues || itemValues.length === 0) {\n return -1;\n }\n return itemValues.findIndex(itemValue => {\n if (itemValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function removeItem(selectedValues, itemValue, comparer) {\n return selectedValues.filter(selectedValue => !compareItemEquality(itemValue, selectedValue, comparer));\n}"],"names":["defaultItemEquality","itemValue","selectedValue","compareItemEquality","comparer","selectedValueIncludes","selectedValues","findItemIndex","itemValues","removeItem"],"mappings":"AAAY,MAACA,IAAsB,CAACC,GAAWC,MAAkB,OAAO,GAAGD,GAAWC,CAAa;AAC5F,SAASC,EAAoBF,GAAWC,GAAeE,GAAU;AACtE,SAAIH,KAAa,QAAQC,KAAiB,OACjC,OAAO,GAAGD,GAAWC,CAAa,IAEpCE,EAASH,GAAWC,CAAa;AAC1C;AACO,SAASG,EAAsBC,GAAgBL,GAAWG,GAAU;AACzE,SAAI,CAACE,KAAkBA,EAAe,WAAW,IACxC,KAEFA,EAAe,KAAK,CAAAJ,MACrBA,MAAkB,SACb,KAEFC,EAAoBF,GAAWC,GAAeE,CAAQ,CAC9D;AACH;AACO,SAASG,EAAcC,GAAYN,GAAeE,GAAU;AACjE,SAAI,CAACI,KAAcA,EAAW,WAAW,IAChC,KAEFA,EAAW,UAAU,CAAAP,MACtBA,MAAc,SACT,KAEFE,EAAoBF,GAAWC,GAAeE,CAAQ,CAC9D;AACH;AACO,SAASK,EAAWH,GAAgBL,GAAWG,GAAU;AAC9D,SAAOE,EAAe,OAAO,CAAAJ,MAAiB,CAACC,EAAoBF,GAAWC,GAAeE,CAAQ,CAAC;AACxG;","x_google_ignoreList":[0]}
package/dist/index297.js CHANGED
@@ -1,29 +1,7 @@
1
- import { popupStateMapping as f } from "./index173.js";
2
- import { useRenderElement as m } from "./index172.js";
3
- import { getDisabledMountTransitionStyles as u } from "./index304.js";
4
- function M(e, o, {
5
- styles: n,
6
- transitionStatus: r,
7
- props: i,
8
- refs: p,
9
- hidden: s,
10
- inert: a = !1
11
- }) {
12
- const t = {
13
- ...n
14
- };
15
- return a && (t.pointerEvents = "none"), m("div", e, {
16
- state: o,
17
- ref: p,
18
- props: [{
19
- role: "presentation",
20
- hidden: s,
21
- style: t
22
- }, u(r), i],
23
- stateAttributesMapping: f
24
- });
1
+ function u(t, l, r = (e, n) => e === n) {
2
+ return t.length === l.length && t.every((e, n) => r(e, l[n]));
25
3
  }
26
4
  export {
27
- M as usePositioner
5
+ u as areArraysEqual
28
6
  };
29
7
  //# sourceMappingURL=index297.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index297.js","sources":["../../../node_modules/@base-ui/react/utils/usePositioner.mjs"],"sourcesContent":["'use client';\n\nimport { popupStateMapping } from \"./popupStateMapping.mjs\";\nimport { useRenderElement } from \"../internals/useRenderElement.mjs\";\nimport { getDisabledMountTransitionStyles } from \"./getDisabledMountTransitionStyles.mjs\";\n/**\n * Renders the shared outer Positioner element used by popup components.\n * Applies the common role, hidden state, transition styles, state attributes, and optional inert styling.\n */\nexport function usePositioner(componentProps, state, {\n styles,\n transitionStatus,\n props,\n refs,\n hidden,\n inert = false\n}) {\n const style = {\n ...styles\n };\n if (inert) {\n style.pointerEvents = 'none';\n }\n return useRenderElement('div', componentProps, {\n state,\n ref: refs,\n props: [{\n role: 'presentation',\n hidden,\n style\n }, getDisabledMountTransitionStyles(transitionStatus), props],\n stateAttributesMapping: popupStateMapping\n });\n}"],"names":["usePositioner","componentProps","state","styles","transitionStatus","props","refs","hidden","inert","style","useRenderElement","getDisabledMountTransitionStyles","popupStateMapping"],"mappings":";;;AASO,SAASA,EAAcC,GAAgBC,GAAO;AAAA,EACnD,QAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC,IAAQ;AACV,GAAG;AACD,QAAMC,IAAQ;AAAA,IACZ,GAAGN;AAAA,EACP;AACE,SAAIK,MACFC,EAAM,gBAAgB,SAEjBC,EAAiB,OAAOT,GAAgB;AAAA,IAC7C,OAAAC;AAAA,IACA,KAAKI;AAAA,IACL,OAAO,CAAC;AAAA,MACN,MAAM;AAAA,MACN,QAAAC;AAAA,MACA,OAAAE;AAAA,IACN,GAAOE,EAAiCP,CAAgB,GAAGC,CAAK;AAAA,IAC5D,wBAAwBO;AAAA,EAC5B,CAAG;AACH;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index297.js","sources":["../../../node_modules/@base-ui/react/internals/areArraysEqual.mjs"],"sourcesContent":["export function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {\n return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));\n}"],"names":["areArraysEqual","array1","array2","itemComparer","a","b","value","index"],"mappings":"AAAO,SAASA,EAAeC,GAAQC,GAAQC,IAAe,CAACC,GAAGC,MAAMD,MAAMC,GAAG;AAC/E,SAAOJ,EAAO,WAAWC,EAAO,UAAUD,EAAO,MAAM,CAACK,GAAOC,MAAUJ,EAAaG,GAAOJ,EAAOK,CAAK,CAAC,CAAC;AAC7G;","x_google_ignoreList":[0]}
package/dist/index298.js CHANGED
@@ -1,20 +1,15 @@
1
- import * as e from "react";
2
- import { ownerDocument as m } from "./index284.js";
3
- import { useScrollLock as p } from "./index375.js";
4
- import { useIsoLayoutEffect as h } from "./index261.js";
5
- const S = 20;
6
- function L(t, c, o, l) {
7
- const [s, r] = e.useState(!1);
8
- h(() => {
9
- if (!t || !c || o == null) {
10
- r(!1);
11
- return;
12
- }
13
- const u = m(o).documentElement.clientWidth, f = o.offsetWidth;
14
- r(u > 0 && f > 0 && f >= u - S);
15
- }, [t, c, o]), p(t && (!c || s), l);
1
+ import * as c from "react";
2
+ import { useIsoLayoutEffect as o } from "./index284.js";
3
+ import { useStableCallback as f } from "./index285.js";
4
+ function u(r, n) {
5
+ const t = c.useRef(r), e = f(n);
6
+ o(() => {
7
+ t.current !== r && e(t.current);
8
+ }, [r, e]), o(() => {
9
+ t.current = r;
10
+ }, [r]);
16
11
  }
17
12
  export {
18
- L as useAnchoredPopupScrollLock
13
+ u as useValueChanged
19
14
  };
20
15
  //# sourceMappingURL=index298.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index298.js","sources":["../../../node_modules/@base-ui/react/utils/useAnchoredPopupScrollLock.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useScrollLock } from '@base-ui/utils/useScrollLock';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\n\n// Touch-opened popups normally avoid scroll locking so users can still swipe outside to dismiss.\n// This hook re-enables scroll lock only when the popup is effectively full-width.\n// Treat popups with up to 20px of total horizontal gutter as full-width so common ~10px side\n// padding still locks scroll, since that leaves too little outside space for a reliable swipe.\nconst VIEWPORT_WIDTH_TOLERANCE_PX = 20;\n\n/**\n * Manages scroll lock for anchored popups. For non-touch opens, scroll lock is applied when\n * enabled. For touch opens, scroll lock is applied only when the positioner width is effectively\n * viewport-sized.\n */\nexport function useAnchoredPopupScrollLock(enabled, touchOpen, positionerElement, referenceElement) {\n const [touchOpenShouldLockScroll, setTouchOpenShouldLockScroll] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (!enabled || !touchOpen || positionerElement == null) {\n setTouchOpenShouldLockScroll(false);\n return;\n }\n const viewportWidth = ownerDocument(positionerElement).documentElement.clientWidth;\n const popupWidth = positionerElement.offsetWidth;\n setTouchOpenShouldLockScroll(viewportWidth > 0 && popupWidth > 0 && popupWidth >= viewportWidth - VIEWPORT_WIDTH_TOLERANCE_PX);\n }, [enabled, touchOpen, positionerElement]);\n useScrollLock(enabled && (!touchOpen || touchOpenShouldLockScroll), referenceElement);\n}"],"names":["VIEWPORT_WIDTH_TOLERANCE_PX","useAnchoredPopupScrollLock","enabled","touchOpen","positionerElement","referenceElement","touchOpenShouldLockScroll","setTouchOpenShouldLockScroll","React","useIsoLayoutEffect","viewportWidth","ownerDocument","popupWidth","useScrollLock"],"mappings":";;;;AAWA,MAAMA,IAA8B;AAO7B,SAASC,EAA2BC,GAASC,GAAWC,GAAmBC,GAAkB;AAClG,QAAM,CAACC,GAA2BC,CAA4B,IAAIC,EAAM,SAAS,EAAK;AACtF,EAAAC,EAAmB,MAAM;AACvB,QAAI,CAACP,KAAW,CAACC,KAAaC,KAAqB,MAAM;AACvD,MAAAG,EAA6B,EAAK;AAClC;AAAA,IACF;AACA,UAAMG,IAAgBC,EAAcP,CAAiB,EAAE,gBAAgB,aACjEQ,IAAaR,EAAkB;AACrC,IAAAG,EAA6BG,IAAgB,KAAKE,IAAa,KAAKA,KAAcF,IAAgBV,CAA2B;AAAA,EAC/H,GAAG,CAACE,GAASC,GAAWC,CAAiB,CAAC,GAC1CS,EAAcX,MAAY,CAACC,KAAaG,IAA4BD,CAAgB;AACtF;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index298.js","sources":["../../../node_modules/@base-ui/react/internals/useValueChanged.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nexport function useValueChanged(value, onChange) {\n const valueRef = React.useRef(value);\n const onChangeCallback = useStableCallback(onChange);\n useIsoLayoutEffect(() => {\n if (valueRef.current === value) {\n return;\n }\n onChangeCallback(valueRef.current);\n }, [value, onChangeCallback]);\n useIsoLayoutEffect(() => {\n valueRef.current = value;\n }, [value]);\n}"],"names":["useValueChanged","value","onChange","valueRef","React","onChangeCallback","useStableCallback","useIsoLayoutEffect"],"mappings":";;;AAKO,SAASA,EAAgBC,GAAOC,GAAU;AAC/C,QAAMC,IAAWC,EAAM,OAAOH,CAAK,GAC7BI,IAAmBC,EAAkBJ,CAAQ;AACnD,EAAAK,EAAmB,MAAM;AACvB,IAAIJ,EAAS,YAAYF,KAGzBI,EAAiBF,EAAS,OAAO;AAAA,EACnC,GAAG,CAACF,GAAOI,CAAgB,CAAC,GAC5BE,EAAmB,MAAM;AACvB,IAAAJ,EAAS,UAAUF;AAAA,EACrB,GAAG,CAACA,CAAK,CAAC;AACZ;","x_google_ignoreList":[0]}