@rpcbase/ui 0.234.0 → 0.235.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 (270) hide show
  1. package/dist/components/FilesUploadField/index.d.ts.map +1 -1
  2. package/dist/index151.js +4 -4
  3. package/dist/index156.js +1 -1
  4. package/dist/index157.js +1 -1
  5. package/dist/index164.js +1 -1
  6. package/dist/index165.js +6 -6
  7. package/dist/index167.js +4 -4
  8. package/dist/index169.js +1 -1
  9. package/dist/index172.js +9 -9
  10. package/dist/index175.js +1 -1
  11. package/dist/index176.js +4 -4
  12. package/dist/index178.js +1 -1
  13. package/dist/index182.js +1 -1
  14. package/dist/index184.js +12 -12
  15. package/dist/index187.js +6 -6
  16. package/dist/index189.js +3 -3
  17. package/dist/index190.js +1 -1
  18. package/dist/index193.js +3 -3
  19. package/dist/index194.js +5 -5
  20. package/dist/index256.js +20 -14
  21. package/dist/index256.js.map +1 -1
  22. package/dist/index257.js +58 -146
  23. package/dist/index257.js.map +1 -1
  24. package/dist/index258.js +6 -30
  25. package/dist/index258.js.map +1 -1
  26. package/dist/index259.js +11 -9
  27. package/dist/index259.js.map +1 -1
  28. package/dist/index260.js +46 -44
  29. package/dist/index260.js.map +1 -1
  30. package/dist/index261.js +4 -12
  31. package/dist/index261.js.map +1 -1
  32. package/dist/index262.js +28 -43
  33. package/dist/index262.js.map +1 -1
  34. package/dist/index263.js +14 -93
  35. package/dist/index263.js.map +1 -1
  36. package/dist/index264.js +5 -86
  37. package/dist/index264.js.map +1 -1
  38. package/dist/index265.js +21 -105
  39. package/dist/index265.js.map +1 -1
  40. package/dist/index266.js +50 -51
  41. package/dist/index266.js.map +1 -1
  42. package/dist/index267.js +25 -11
  43. package/dist/index267.js.map +1 -1
  44. package/dist/index268.js +41 -37
  45. package/dist/index268.js.map +1 -1
  46. package/dist/index269.js +39 -8
  47. package/dist/index269.js.map +1 -1
  48. package/dist/index270.js +45 -117
  49. package/dist/index270.js.map +1 -1
  50. package/dist/index271.js +20 -17
  51. package/dist/index271.js.map +1 -1
  52. package/dist/index272.js +69 -14
  53. package/dist/index272.js.map +1 -1
  54. package/dist/index273.js +17 -3
  55. package/dist/index273.js.map +1 -1
  56. package/dist/index274.js +11 -36
  57. package/dist/index274.js.map +1 -1
  58. package/dist/index275.js +27 -20
  59. package/dist/index275.js.map +1 -1
  60. package/dist/index276.js +13 -9
  61. package/dist/index276.js.map +1 -1
  62. package/dist/index277.js +18 -8
  63. package/dist/index277.js.map +1 -1
  64. package/dist/index278.js +35 -18
  65. package/dist/index278.js.map +1 -1
  66. package/dist/index279.js +260 -26
  67. package/dist/index279.js.map +1 -1
  68. package/dist/index280.js +277 -15
  69. package/dist/index280.js.map +1 -1
  70. package/dist/index281.js +69 -20
  71. package/dist/index281.js.map +1 -1
  72. package/dist/index282.js +92 -59
  73. package/dist/index282.js.map +1 -1
  74. package/dist/index283.js +83 -6
  75. package/dist/index283.js.map +1 -1
  76. package/dist/index284.js +3 -11
  77. package/dist/index284.js.map +1 -1
  78. package/dist/index285.js +27 -48
  79. package/dist/index285.js.map +1 -1
  80. package/dist/index286.js +17 -4
  81. package/dist/index286.js.map +1 -1
  82. package/dist/index287.js +35 -30
  83. package/dist/index287.js.map +1 -1
  84. package/dist/index288.js +15 -15
  85. package/dist/index288.js.map +1 -1
  86. package/dist/index289.js +3 -5
  87. package/dist/index289.js.map +1 -1
  88. package/dist/index290.js +25 -20
  89. package/dist/index290.js.map +1 -1
  90. package/dist/index291.js +26 -49
  91. package/dist/index291.js.map +1 -1
  92. package/dist/index292.js +4 -26
  93. package/dist/index292.js.map +1 -1
  94. package/dist/index293.js +76 -39
  95. package/dist/index293.js.map +1 -1
  96. package/dist/index294.js +265 -35
  97. package/dist/index294.js.map +1 -1
  98. package/dist/index295.js +12 -45
  99. package/dist/index295.js.map +1 -1
  100. package/dist/index296.js +10 -20
  101. package/dist/index296.js.map +1 -1
  102. package/dist/index297.js +25 -70
  103. package/dist/index297.js.map +1 -1
  104. package/dist/index298.js +16 -17
  105. package/dist/index298.js.map +1 -1
  106. package/dist/index299.js +125 -11
  107. package/dist/index299.js.map +1 -1
  108. package/dist/index300.js +5 -27
  109. package/dist/index300.js.map +1 -1
  110. package/dist/index301.js +39 -12
  111. package/dist/index301.js.map +1 -1
  112. package/dist/index302.js +63 -16
  113. package/dist/index302.js.map +1 -1
  114. package/dist/index303.js +13 -36
  115. package/dist/index303.js.map +1 -1
  116. package/dist/index304.js +7 -262
  117. package/dist/index304.js.map +1 -1
  118. package/dist/index305.js +5 -278
  119. package/dist/index305.js.map +1 -1
  120. package/dist/index306.js +3 -68
  121. package/dist/index306.js.map +1 -1
  122. package/dist/index307.js +10 -99
  123. package/dist/index307.js.map +1 -1
  124. package/dist/index308.js +7 -83
  125. package/dist/index308.js.map +1 -1
  126. package/dist/index309.js +133 -3
  127. package/dist/index309.js.map +1 -1
  128. package/dist/index310.js +399 -29
  129. package/dist/index310.js.map +1 -1
  130. package/dist/index311.js +52 -16
  131. package/dist/index311.js.map +1 -1
  132. package/dist/index312.js +12 -35
  133. package/dist/index312.js.map +1 -1
  134. package/dist/index313.js +11 -16
  135. package/dist/index313.js.map +1 -1
  136. package/dist/index314.js +13 -3
  137. package/dist/index314.js.map +1 -1
  138. package/dist/index315.js +150 -22
  139. package/dist/index315.js.map +1 -1
  140. package/dist/index316.js +27 -25
  141. package/dist/index316.js.map +1 -1
  142. package/dist/index317.js +10 -4
  143. package/dist/index317.js.map +1 -1
  144. package/dist/index318.js +44 -74
  145. package/dist/index318.js.map +1 -1
  146. package/dist/index319.js +10 -268
  147. package/dist/index319.js.map +1 -1
  148. package/dist/index320.js +44 -11
  149. package/dist/index320.js.map +1 -1
  150. package/dist/index321.js +95 -10
  151. package/dist/index321.js.map +1 -1
  152. package/dist/index322.js +86 -25
  153. package/dist/index322.js.map +1 -1
  154. package/dist/index323.js +104 -15
  155. package/dist/index323.js.map +1 -1
  156. package/dist/index324.js +50 -123
  157. package/dist/index324.js.map +1 -1
  158. package/dist/index325.js +11 -5
  159. package/dist/index325.js.map +1 -1
  160. package/dist/index326.js +34 -37
  161. package/dist/index326.js.map +1 -1
  162. package/dist/index327.js +8 -65
  163. package/dist/index327.js.map +1 -1
  164. package/dist/index328.js +116 -13
  165. package/dist/index328.js.map +1 -1
  166. package/dist/index329.js +17 -7
  167. package/dist/index329.js.map +1 -1
  168. package/dist/index330.js +15 -5
  169. package/dist/index330.js.map +1 -1
  170. package/dist/index331.js +3 -3
  171. package/dist/index331.js.map +1 -1
  172. package/dist/index332.js +36 -10
  173. package/dist/index332.js.map +1 -1
  174. package/dist/index333.js +20 -7
  175. package/dist/index333.js.map +1 -1
  176. package/dist/index334.js +9 -133
  177. package/dist/index334.js.map +1 -1
  178. package/dist/index335.js +7 -398
  179. package/dist/index335.js.map +1 -1
  180. package/dist/index336.js +8 -52
  181. package/dist/index336.js.map +1 -1
  182. package/dist/index337.js +11 -11
  183. package/dist/index337.js.map +1 -1
  184. package/dist/index338.js +8 -11
  185. package/dist/index338.js.map +1 -1
  186. package/dist/index339.js +13 -8
  187. package/dist/index339.js.map +1 -1
  188. package/dist/index340.js +3 -11
  189. package/dist/index340.js.map +1 -1
  190. package/dist/index341.js +3 -8
  191. package/dist/index341.js.map +1 -1
  192. package/dist/index342.js +16 -12
  193. package/dist/index342.js.map +1 -1
  194. package/dist/index343.js +19 -3
  195. package/dist/index343.js.map +1 -1
  196. package/dist/index344.js +28 -3
  197. package/dist/index344.js.map +1 -1
  198. package/dist/index345.js +15 -16
  199. package/dist/index345.js.map +1 -1
  200. package/dist/index346.js +2 -2
  201. package/dist/index347.js +8 -8
  202. package/dist/index348.js +4 -4
  203. package/dist/index349.js +3 -3
  204. package/dist/index350.js +5 -5
  205. package/dist/index352.js +1 -1
  206. package/dist/index362.js +10 -19
  207. package/dist/index362.js.map +1 -1
  208. package/dist/index363.js +17 -4
  209. package/dist/index363.js.map +1 -1
  210. package/dist/index364.js +5 -11
  211. package/dist/index364.js.map +1 -1
  212. package/dist/index365.js +4 -17
  213. package/dist/index365.js.map +1 -1
  214. package/dist/index366.js +20 -5
  215. package/dist/index366.js.map +1 -1
  216. package/dist/index367.js +43 -19
  217. package/dist/index367.js.map +1 -1
  218. package/dist/index368.js +13 -40
  219. package/dist/index368.js.map +1 -1
  220. package/dist/index369.js +4 -17
  221. package/dist/index369.js.map +1 -1
  222. package/dist/index370.js +200 -4
  223. package/dist/index370.js.map +1 -1
  224. package/dist/index371.js +74 -197
  225. package/dist/index371.js.map +1 -1
  226. package/dist/index372.js +20 -77
  227. package/dist/index372.js.map +1 -1
  228. package/dist/index374.js +3 -3
  229. package/dist/index375.js +1 -1
  230. package/dist/index376.js +3 -3
  231. package/dist/index378.js +2 -2
  232. package/dist/index380.js +1 -1
  233. package/dist/index381.js +2 -2
  234. package/dist/index407.js +1 -1
  235. package/dist/index417.js +1 -1
  236. package/dist/index418.js +1 -1
  237. package/dist/index421.js +1 -1
  238. package/dist/index422.js +1 -1
  239. package/dist/index427.js +2 -2
  240. package/dist/index429.js +2 -2
  241. package/dist/index44.js +1 -1
  242. package/dist/index45.js +2 -2
  243. package/dist/index49.js +28 -28
  244. package/dist/index50.js +21 -21
  245. package/dist/index51.js +1 -1
  246. package/dist/index52.js +8 -8
  247. package/dist/index53.js +2 -2
  248. package/dist/index55.js +17 -17
  249. package/dist/index56.js +4 -4
  250. package/dist/index57.js +3 -3
  251. package/dist/index58.js +7 -7
  252. package/dist/index59.js +4 -4
  253. package/dist/index60.js +12 -12
  254. package/dist/index61.js +2 -2
  255. package/dist/index62.js +2 -2
  256. package/dist/index70.js +1 -1
  257. package/dist/index71.js +1 -1
  258. package/dist/index74.js +2 -6
  259. package/dist/index74.js.map +1 -1
  260. package/dist/index75.js +2 -8
  261. package/dist/index75.js.map +1 -1
  262. package/dist/index76.js +5 -5
  263. package/dist/index76.js.map +1 -1
  264. package/dist/index77.js +8 -2
  265. package/dist/index77.js.map +1 -1
  266. package/dist/index78.js +6 -2
  267. package/dist/index78.js.map +1 -1
  268. package/dist/index8.js +533 -698
  269. package/dist/index8.js.map +1 -1
  270. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index288.js","sources":["../../../node_modules/@base-ui/utils/esm/useValueAsRef.js"],"sourcesContent":["'use client';\n\nimport { useIsoLayoutEffect } from \"./useIsoLayoutEffect.js\";\nimport { useRefWithInit } from \"./useRefWithInit.js\";\n\n/**\n * Untracks the provided value by turning it into a ref to remove its reactivity.\n *\n * Used to access the passed value inside `React.useEffect` without causing the effect to re-run when the value changes.\n */\nexport function useValueAsRef(value) {\n const latest = useRefWithInit(createLatestRef, value).current;\n latest.next = value;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useIsoLayoutEffect(latest.effect);\n return latest;\n}\nfunction createLatestRef(value) {\n const latest = {\n current: value,\n next: value,\n effect: () => {\n latest.current = latest.next;\n }\n };\n return latest;\n}"],"names":["useValueAsRef","value","latest","useRefWithInit","createLatestRef","useIsoLayoutEffect"],"mappings":";;AAUO,SAASA,EAAcC,GAAO;AACnC,QAAMC,IAASC,EAAeC,GAAiBH,CAAK,EAAE;AACtD,SAAAC,EAAO,OAAOD,GAGdI,EAAmBH,EAAO,MAAM,GACzBA;AACT;AACA,SAASE,EAAgBH,GAAO;AAC9B,QAAMC,IAAS;AAAA,IACb,SAASD;AAAA,IACT,MAAMA;AAAA,IACN,QAAQ,MAAM;AACZ,MAAAC,EAAO,UAAUA,EAAO;AAAA,IAC1B;AAAA,EACJ;AACE,SAAOA;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index288.js","sources":["../../../node_modules/@base-ui/react/esm/utils/getPseudoElementBounds.js"],"sourcesContent":["import { ownerWindow } from '@base-ui/utils/owner';\nexport function getPseudoElementBounds(element) {\n const elementRect = element.getBoundingClientRect();\n\n // Avoid \"Not implemented: window.getComputedStyle(elt, pseudoElt)\"\n if (process.env.NODE_ENV !== 'production') {\n return elementRect;\n }\n const win = ownerWindow(element);\n const beforeStyles = win.getComputedStyle(element, '::before');\n const afterStyles = win.getComputedStyle(element, '::after');\n const hasPseudoElements = beforeStyles.content !== 'none' || afterStyles.content !== 'none';\n if (!hasPseudoElements) {\n return elementRect;\n }\n\n // Get dimensions of pseudo-elements\n const beforeWidth = parseFloat(beforeStyles.width) || 0;\n const beforeHeight = parseFloat(beforeStyles.height) || 0;\n const afterWidth = parseFloat(afterStyles.width) || 0;\n const afterHeight = parseFloat(afterStyles.height) || 0;\n\n // Calculate max dimensions including pseudo-elements\n const totalWidth = Math.max(elementRect.width, beforeWidth, afterWidth);\n const totalHeight = Math.max(elementRect.height, beforeHeight, afterHeight);\n\n // Calculate the differences to extend the bounds\n const widthDiff = totalWidth - elementRect.width;\n const heightDiff = totalHeight - elementRect.height;\n return {\n left: elementRect.left - widthDiff / 2,\n right: elementRect.right + widthDiff / 2,\n top: elementRect.top - heightDiff / 2,\n bottom: elementRect.bottom + heightDiff / 2\n };\n}"],"names":["getPseudoElementBounds","element","elementRect","win","ownerWindow","beforeStyles","afterStyles","beforeWidth","beforeHeight","afterWidth","afterHeight","totalWidth","totalHeight","widthDiff","heightDiff"],"mappings":";AACO,SAASA,EAAuBC,GAAS;AAC9C,QAAMC,IAAcD,EAAQ,sBAAqB;AAGjD,MAAI,QAAQ,IAAI,aAAa;AAC3B,WAAOC;AAET,QAAMC,IAAMC,EAAYH,CAAO,GACzBI,IAAeF,EAAI,iBAAiBF,GAAS,UAAU,GACvDK,IAAcH,EAAI,iBAAiBF,GAAS,SAAS;AAE3D,MAAI,EADsBI,EAAa,YAAY,UAAUC,EAAY,YAAY;AAEnF,WAAOJ;AAIT,QAAMK,IAAc,WAAWF,EAAa,KAAK,KAAK,GAChDG,IAAe,WAAWH,EAAa,MAAM,KAAK,GAClDI,IAAa,WAAWH,EAAY,KAAK,KAAK,GAC9CI,IAAc,WAAWJ,EAAY,MAAM,KAAK,GAGhDK,IAAa,KAAK,IAAIT,EAAY,OAAOK,GAAaE,CAAU,GAChEG,IAAc,KAAK,IAAIV,EAAY,QAAQM,GAAcE,CAAW,GAGpEG,IAAYF,IAAaT,EAAY,OACrCY,IAAaF,IAAcV,EAAY;AAC7C,SAAO;AAAA,IACL,MAAMA,EAAY,OAAOW,IAAY;AAAA,IACrC,OAAOX,EAAY,QAAQW,IAAY;AAAA,IACvC,KAAKX,EAAY,MAAMY,IAAa;AAAA,IACpC,QAAQZ,EAAY,SAASY,IAAa;AAAA,EAC9C;AACA;","x_google_ignoreList":[0]}
package/dist/index289.js CHANGED
@@ -1,9 +1,7 @@
1
- function e() {
1
+ function l(e, r) {
2
+ return e ?? r;
2
3
  }
3
- const t = Object.freeze([]), c = Object.freeze({});
4
4
  export {
5
- t as EMPTY_ARRAY,
6
- c as EMPTY_OBJECT,
7
- e as NOOP
5
+ l as resolveAriaLabelledBy
8
6
  };
9
7
  //# sourceMappingURL=index289.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index289.js","sources":["../../../node_modules/@base-ui/utils/esm/empty.js"],"sourcesContent":["export function NOOP() {}\nexport const EMPTY_ARRAY = Object.freeze([]);\nexport const EMPTY_OBJECT = Object.freeze({});"],"names":["NOOP","EMPTY_ARRAY","EMPTY_OBJECT"],"mappings":"AAAO,SAASA,IAAO;AAAC;AACZ,MAACC,IAAc,OAAO,OAAO,CAAA,CAAE,GAC9BC,IAAe,OAAO,OAAO,CAAA,CAAE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index289.js","sources":["../../../node_modules/@base-ui/react/esm/utils/resolveAriaLabelledBy.js"],"sourcesContent":["'use client';\n\nexport function getDefaultLabelId(id) {\n return id == null ? undefined : `${id}-label`;\n}\nexport function resolveAriaLabelledBy(fieldLabelId, localLabelId) {\n return fieldLabelId ?? localLabelId;\n}"],"names":["resolveAriaLabelledBy","fieldLabelId","localLabelId"],"mappings":"AAKO,SAASA,EAAsBC,GAAcC,GAAc;AAChE,SAAOD,KAAgBC;AACzB;","x_google_ignoreList":[0]}
package/dist/index290.js CHANGED
@@ -1,25 +1,30 @@
1
- import o from "./index191.js";
2
- import * as e from "react";
3
- const n = /* @__PURE__ */ e.createContext(null);
4
- process.env.NODE_ENV !== "production" && (n.displayName = "SelectRootContext");
5
- const c = /* @__PURE__ */ e.createContext(null);
6
- process.env.NODE_ENV !== "production" && (c.displayName = "SelectFloatingContext");
7
- function s() {
8
- const t = e.useContext(n);
9
- if (t === null)
10
- throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: SelectRootContext is missing. Select parts must be placed within <Select.Root>." : o(60));
11
- return t;
1
+ import { isHTMLElement as i } from "./index309.js";
2
+ import { FOCUSABLE_ATTRIBUTE as u, TYPEABLE_SELECTOR as n } from "./index385.js";
3
+ function a(t, r) {
4
+ if (r == null)
5
+ return !1;
6
+ if ("composedPath" in t)
7
+ return t.composedPath().includes(r);
8
+ const o = t;
9
+ return o.target != null && r.contains(o.target);
12
10
  }
13
- function i() {
14
- const t = e.useContext(c);
15
- if (t === null)
16
- throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: SelectFloatingContext is missing. Select parts must be placed within <Select.Root>." : o(61));
17
- return t;
11
+ function b(t) {
12
+ return t.matches("html,body");
13
+ }
14
+ function e(t) {
15
+ return i(t) && t.matches(n);
16
+ }
17
+ function f(t) {
18
+ return t ? t.getAttribute("role") === "combobox" && e(t) : !1;
19
+ }
20
+ function T(t) {
21
+ return t ? t.hasAttribute(u) ? t : t.querySelector(`[${u}]`) || t : null;
18
22
  }
19
23
  export {
20
- c as SelectFloatingContext,
21
- n as SelectRootContext,
22
- i as useSelectFloatingContext,
23
- s as useSelectRootContext
24
+ T as getFloatingFocusElement,
25
+ a as isEventTargetWithin,
26
+ b as isRootElement,
27
+ f as isTypeableCombobox,
28
+ e as isTypeableElement
24
29
  };
25
30
  //# sourceMappingURL=index290.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index290.js","sources":["../../../node_modules/@base-ui/react/esm/select/root/SelectRootContext.js"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const SelectRootContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") SelectRootContext.displayName = \"SelectRootContext\";\nexport const SelectFloatingContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") SelectFloatingContext.displayName = \"SelectFloatingContext\";\nexport function useSelectRootContext() {\n const context = React.useContext(SelectRootContext);\n if (context === null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: SelectRootContext is missing. Select parts must be placed within <Select.Root>.' : _formatErrorMessage(60));\n }\n return context;\n}\nexport function useSelectFloatingContext() {\n const context = React.useContext(SelectFloatingContext);\n if (context === null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: SelectFloatingContext is missing. Select parts must be placed within <Select.Root>.' : _formatErrorMessage(61));\n }\n return context;\n}"],"names":["SelectRootContext","React","SelectFloatingContext","useSelectRootContext","context","_formatErrorMessage","useSelectFloatingContext"],"mappings":";;AAIY,MAACA,IAAiC,gBAAAC,EAAM,cAAc,IAAI;AAClE,QAAQ,IAAI,aAAa,iBAAcD,EAAkB,cAAc;AAC/D,MAACE,IAAqC,gBAAAD,EAAM,cAAc,IAAI;AACtE,QAAQ,IAAI,aAAa,iBAAcC,EAAsB,cAAc;AACxE,SAASC,IAAuB;AACrC,QAAMC,IAAUH,EAAM,WAAWD,CAAiB;AAClD,MAAII,MAAY;AACd,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,6FAA6FC,EAAoB,EAAE,CAAC;AAE9K,SAAOD;AACT;AACO,SAASE,IAA2B;AACzC,QAAMF,IAAUH,EAAM,WAAWC,CAAqB;AACtD,MAAIE,MAAY;AACd,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,iGAAiGC,EAAoB,EAAE,CAAC;AAElL,SAAOD;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index290.js","sources":["../../../node_modules/@base-ui/react/esm/floating-ui-react/utils/element.js"],"sourcesContent":["import { isElement, isHTMLElement } from '@floating-ui/utils/dom';\nimport { isJSDOM } from '@base-ui/utils/detectBrowser';\nimport { FOCUSABLE_ATTRIBUTE, TYPEABLE_SELECTOR } from \"./constants.js\";\nimport { activeElement, contains, getTarget } from \"../../internals/shadowDom.js\";\nexport { activeElement, contains, getTarget };\nexport function isTargetInsideEnabledTrigger(target, triggerElements) {\n if (!isElement(target)) {\n return false;\n }\n const targetElement = target;\n if (triggerElements.hasElement(targetElement)) {\n return !targetElement.hasAttribute('data-trigger-disabled');\n }\n for (const [, trigger] of triggerElements.entries()) {\n if (contains(trigger, targetElement)) {\n return !trigger.hasAttribute('data-trigger-disabled');\n }\n }\n return false;\n}\nexport function isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const eventAgain = event;\n return eventAgain.target != null && node.contains(eventAgain.target);\n}\nexport function isRootElement(element) {\n return element.matches('html,body');\n}\nexport function isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nexport function isInteractiveElement(element) {\n return element?.closest(`button,a[href],[role=\"button\"],select,[tabindex]:not([tabindex=\"-1\"]),${TYPEABLE_SELECTOR}`) != null;\n}\nexport function isTypeableCombobox(element) {\n if (!element) {\n return false;\n }\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\nexport function matchesFocusVisible(element) {\n // We don't want to block focus from working with `visibleOnly`\n // (JSDOM doesn't match `:focus-visible` when the element has `:focus`)\n if (!element || isJSDOM) {\n return true;\n }\n try {\n return element.matches(':focus-visible');\n } catch (_e) {\n return true;\n }\n}\nexport function getFloatingFocusElement(floatingElement) {\n if (!floatingElement) {\n return null;\n }\n // Try to find the element that has `{...getFloatingProps()}` spread on it.\n // This indicates the floating element is acting as a positioning wrapper, and\n // so focus should be managed on the child element with the event handlers and\n // aria props.\n return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(`[${FOCUSABLE_ATTRIBUTE}]`) || floatingElement;\n}"],"names":["isEventTargetWithin","event","node","eventAgain","isRootElement","element","isTypeableElement","isHTMLElement","TYPEABLE_SELECTOR","isTypeableCombobox","getFloatingFocusElement","floatingElement","FOCUSABLE_ATTRIBUTE"],"mappings":";;AAoBO,SAASA,EAAoBC,GAAOC,GAAM;AAC/C,MAAIA,KAAQ;AACV,WAAO;AAET,MAAI,kBAAkBD;AACpB,WAAOA,EAAM,eAAe,SAASC,CAAI;AAI3C,QAAMC,IAAaF;AACnB,SAAOE,EAAW,UAAU,QAAQD,EAAK,SAASC,EAAW,MAAM;AACrE;AACO,SAASC,EAAcC,GAAS;AACrC,SAAOA,EAAQ,QAAQ,WAAW;AACpC;AACO,SAASC,EAAkBD,GAAS;AACzC,SAAOE,EAAcF,CAAO,KAAKA,EAAQ,QAAQG,CAAiB;AACpE;AAIO,SAASC,EAAmBJ,GAAS;AAC1C,SAAKA,IAGEA,EAAQ,aAAa,MAAM,MAAM,cAAcC,EAAkBD,CAAO,IAFtE;AAGX;AAaO,SAASK,EAAwBC,GAAiB;AACvD,SAAKA,IAOEA,EAAgB,aAAaC,CAAmB,IAAID,IAAkBA,EAAgB,cAAc,IAAIC,CAAmB,GAAG,KAAKD,IANjI;AAOX;","x_google_ignoreList":[0]}
package/dist/index291.js CHANGED
@@ -1,55 +1,32 @@
1
- import d from "./index191.js";
2
- import * as n from "react";
3
- import { NOOP as e, EMPTY_OBJECT as a } from "./index289.js";
4
- import { DEFAULT_FIELD_ROOT_STATE as l, DEFAULT_FIELD_STATE_ATTRIBUTES as i, DEFAULT_VALIDITY_STATE as s } from "./index312.js";
5
- const r = /* @__PURE__ */ n.createContext({
6
- invalid: void 0,
7
- name: void 0,
8
- validityData: {
9
- state: s,
10
- errors: [],
11
- error: "",
12
- value: "",
13
- initialValue: null
14
- },
15
- setValidityData: e,
16
- disabled: void 0,
17
- touched: i.touched,
18
- setTouched: e,
19
- dirty: i.dirty,
20
- setDirty: e,
21
- filled: i.filled,
22
- setFilled: e,
23
- focused: i.focused,
24
- setFocused: e,
25
- validate: () => null,
26
- validationMode: "onSubmit",
27
- validationDebounceTime: 0,
28
- shouldValidateOnChange: () => !1,
29
- state: l,
30
- markedDirtyRef: {
31
- current: !1
32
- },
33
- registerFieldControl: e,
34
- validation: {
35
- getValidationProps: (t = a) => t,
36
- getInputValidationProps: (t = a) => t,
37
- inputRef: {
38
- current: null
39
- },
40
- commit: async () => {
1
+ import { isShadowRoot as r } from "./index309.js";
2
+ function a(t) {
3
+ let e = t.activeElement;
4
+ for (; e?.shadowRoot?.activeElement != null; )
5
+ e = e.shadowRoot.activeElement;
6
+ return e;
7
+ }
8
+ function u(t, e) {
9
+ if (!t || !e)
10
+ return !1;
11
+ const n = e.getRootNode?.();
12
+ if (t.contains(e))
13
+ return !0;
14
+ if (n && r(n)) {
15
+ let o = e;
16
+ for (; o; ) {
17
+ if (t === o)
18
+ return !0;
19
+ o = o.parentNode || o.host;
41
20
  }
42
21
  }
43
- });
44
- process.env.NODE_ENV !== "production" && (r.displayName = "FieldRootContext");
45
- function m(t = !0) {
46
- const o = n.useContext(r);
47
- if (o.setValidityData === e && !t)
48
- throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>." : d(28));
49
- return o;
22
+ return !1;
23
+ }
24
+ function f(t) {
25
+ return "composedPath" in t ? t.composedPath()[0] : t.target;
50
26
  }
51
27
  export {
52
- r as FieldRootContext,
53
- m as useFieldRootContext
28
+ a as activeElement,
29
+ u as contains,
30
+ f as getTarget
54
31
  };
55
32
  //# sourceMappingURL=index291.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index291.js","sources":["../../../node_modules/@base-ui/react/esm/internals/field-root-context/FieldRootContext.js"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { NOOP } from \"../noop.js\";\nimport { DEFAULT_FIELD_ROOT_STATE, DEFAULT_FIELD_STATE_ATTRIBUTES, DEFAULT_VALIDITY_STATE } from \"../field-constants/constants.js\";\nexport const FieldRootContext = /*#__PURE__*/React.createContext({\n invalid: undefined,\n name: undefined,\n validityData: {\n state: DEFAULT_VALIDITY_STATE,\n errors: [],\n error: '',\n value: '',\n initialValue: null\n },\n setValidityData: NOOP,\n disabled: undefined,\n touched: DEFAULT_FIELD_STATE_ATTRIBUTES.touched,\n setTouched: NOOP,\n dirty: DEFAULT_FIELD_STATE_ATTRIBUTES.dirty,\n setDirty: NOOP,\n filled: DEFAULT_FIELD_STATE_ATTRIBUTES.filled,\n setFilled: NOOP,\n focused: DEFAULT_FIELD_STATE_ATTRIBUTES.focused,\n setFocused: NOOP,\n validate: () => null,\n validationMode: 'onSubmit',\n validationDebounceTime: 0,\n shouldValidateOnChange: () => false,\n state: DEFAULT_FIELD_ROOT_STATE,\n markedDirtyRef: {\n current: false\n },\n registerFieldControl: NOOP,\n validation: {\n getValidationProps: (props = EMPTY_OBJECT) => props,\n getInputValidationProps: (props = EMPTY_OBJECT) => props,\n inputRef: {\n current: null\n },\n commit: async () => {}\n }\n});\nif (process.env.NODE_ENV !== \"production\") FieldRootContext.displayName = \"FieldRootContext\";\nexport function useFieldRootContext(optional = true) {\n const context = React.useContext(FieldRootContext);\n if (context.setValidityData === NOOP && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.' : _formatErrorMessage(28));\n }\n return context;\n}"],"names":["FieldRootContext","React","DEFAULT_VALIDITY_STATE","NOOP","DEFAULT_FIELD_STATE_ATTRIBUTES","DEFAULT_FIELD_ROOT_STATE","props","EMPTY_OBJECT","useFieldRootContext","optional","context","_formatErrorMessage"],"mappings":";;;;AAOY,MAACA,IAAgC,gBAAAC,EAAM,cAAc;AAAA,EAC/D,SAAS;AAAA,EACT,MAAM;AAAA,EACN,cAAc;AAAA,IACZ,OAAOC;AAAA,IACP,QAAQ,CAAA;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,cAAc;AAAA,EAClB;AAAA,EACE,iBAAiBC;AAAA,EACjB,UAAU;AAAA,EACV,SAASC,EAA+B;AAAA,EACxC,YAAYD;AAAA,EACZ,OAAOC,EAA+B;AAAA,EACtC,UAAUD;AAAA,EACV,QAAQC,EAA+B;AAAA,EACvC,WAAWD;AAAA,EACX,SAASC,EAA+B;AAAA,EACxC,YAAYD;AAAA,EACZ,UAAU,MAAM;AAAA,EAChB,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,wBAAwB,MAAM;AAAA,EAC9B,OAAOE;AAAA,EACP,gBAAgB;AAAA,IACd,SAAS;AAAA,EACb;AAAA,EACE,sBAAsBF;AAAA,EACtB,YAAY;AAAA,IACV,oBAAoB,CAACG,IAAQC,MAAiBD;AAAA,IAC9C,yBAAyB,CAACA,IAAQC,MAAiBD;AAAA,IACnD,UAAU;AAAA,MACR,SAAS;AAAA,IACf;AAAA,IACI,QAAQ,YAAY;AAAA,IAAC;AAAA,EACzB;AACA,CAAC;AACG,QAAQ,IAAI,aAAa,iBAAcN,EAAiB,cAAc;AACnE,SAASQ,EAAoBC,IAAW,IAAM;AACnD,QAAMC,IAAUT,EAAM,WAAWD,CAAgB;AACjD,MAAIU,EAAQ,oBAAoBP,KAAQ,CAACM;AACvC,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,0FAA0FE,EAAoB,EAAE,CAAC;AAE3K,SAAOD;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index291.js","sources":["../../../node_modules/@base-ui/react/esm/internals/shadowDom.js"],"sourcesContent":["import { isShadowRoot } from '@floating-ui/utils/dom';\nexport function activeElement(doc) {\n let element = doc.activeElement;\n while (element?.shadowRoot?.activeElement != null) {\n element = element.shadowRoot.activeElement;\n }\n return element;\n}\nexport function contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode?.();\n\n // First, attempt with the faster native method.\n if (parent.contains(child)) {\n return true;\n }\n\n // Then fall back to traversing out of shadow roots when needed.\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nexport function getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS assumes `composedPath()` always exists, but older browsers without\n // shadow DOM support still fall back to `target`.\n return event.target;\n}"],"names":["activeElement","doc","element","contains","parent","child","rootNode","isShadowRoot","next","getTarget","event"],"mappings":";AACO,SAASA,EAAcC,GAAK;AACjC,MAAIC,IAAUD,EAAI;AAClB,SAAOC,GAAS,YAAY,iBAAiB;AAC3C,IAAAA,IAAUA,EAAQ,WAAW;AAE/B,SAAOA;AACT;AACO,SAASC,EAASC,GAAQC,GAAO;AACtC,MAAI,CAACD,KAAU,CAACC;AACd,WAAO;AAET,QAAMC,IAAWD,EAAM,cAAW;AAGlC,MAAID,EAAO,SAASC,CAAK;AACvB,WAAO;AAIT,MAAIC,KAAYC,EAAaD,CAAQ,GAAG;AACtC,QAAIE,IAAOH;AACX,WAAOG,KAAM;AACX,UAAIJ,MAAWI;AACb,eAAO;AAET,MAAAA,IAAOA,EAAK,cAAcA,EAAK;AAAA,IACjC;AAAA,EACF;AACA,SAAO;AACT;AACO,SAASC,EAAUC,GAAO;AAC/B,SAAI,kBAAkBA,IACbA,EAAM,aAAY,EAAG,CAAC,IAKxBA,EAAM;AACf;","x_google_ignoreList":[0]}
package/dist/index292.js CHANGED
@@ -1,29 +1,7 @@
1
- import * as f from "react";
2
- import { useIsoLayoutEffect as l } from "./index286.js";
3
- import { useFieldRootContext as d } from "./index291.js";
4
- function p(o, c) {
5
- const {
6
- enabled: n = !0,
7
- getValue: u,
8
- id: i,
9
- value: s
10
- } = c, {
11
- registerFieldControl: e
12
- } = d(), t = f.useRef(null);
13
- t.current || (t.current = /* @__PURE__ */ Symbol()), l(() => {
14
- const r = t.current;
15
- if (!(!r || !n))
16
- return e(r, {
17
- controlRef: o,
18
- getValue: u,
19
- id: i,
20
- value: s
21
- }), () => {
22
- e(r, void 0);
23
- };
24
- }, [o, n, u, i, e, s]);
25
- }
1
+ import * as e from "react";
2
+ const t = /* @__PURE__ */ e.createContext(void 0);
3
+ process.env.NODE_ENV !== "production" && (t.displayName = "SelectPortalContext");
26
4
  export {
27
- p as useRegisterFieldControl
5
+ t as SelectPortalContext
28
6
  };
29
7
  //# sourceMappingURL=index292.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index292.js","sources":["../../../node_modules/@base-ui/react/esm/internals/field-register-control/useRegisterFieldControl.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useFieldRootContext } from \"../field-root-context/FieldRootContext.js\";\nexport function useRegisterFieldControl(controlRef, params) {\n const {\n enabled = true,\n getValue,\n id,\n value\n } = params;\n const {\n registerFieldControl\n } = useFieldRootContext();\n const sourceRef = React.useRef(null);\n if (!sourceRef.current) {\n sourceRef.current = Symbol();\n }\n useIsoLayoutEffect(() => {\n const source = sourceRef.current;\n if (!source || !enabled) {\n return undefined;\n }\n registerFieldControl(source, {\n controlRef,\n getValue,\n id,\n value\n });\n return () => {\n registerFieldControl(source, undefined);\n };\n }, [controlRef, enabled, getValue, id, registerFieldControl, value]);\n}"],"names":["useRegisterFieldControl","controlRef","params","enabled","getValue","id","value","registerFieldControl","useFieldRootContext","sourceRef","React","useIsoLayoutEffect","source"],"mappings":";;;AAKO,SAASA,EAAwBC,GAAYC,GAAQ;AAC1D,QAAM;AAAA,IACJ,SAAAC,IAAU;AAAA,IACV,UAAAC;AAAA,IACA,IAAAC;AAAA,IACA,OAAAC;AAAA,EACJ,IAAMJ,GACE;AAAA,IACJ,sBAAAK;AAAA,EACJ,IAAMC,EAAmB,GACjBC,IAAYC,EAAM,OAAO,IAAI;AACnC,EAAKD,EAAU,YACbA,EAAU,UAAU,uBAAM,IAE5BE,EAAmB,MAAM;AACvB,UAAMC,IAASH,EAAU;AACzB,QAAI,GAACG,KAAU,CAACT;AAGhB,aAAAI,EAAqBK,GAAQ;AAAA,QAC3B,YAAAX;AAAA,QACA,UAAAG;AAAA,QACA,IAAAC;AAAA,QACA,OAAAC;AAAA,MACN,CAAK,GACM,MAAM;AACX,QAAAC,EAAqBK,GAAQ,MAAS;AAAA,MACxC;AAAA,EACF,GAAG,CAACX,GAAYE,GAASC,GAAUC,GAAIE,GAAsBD,CAAK,CAAC;AACrE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index292.js","sources":["../../../node_modules/@base-ui/react/esm/select/portal/SelectPortalContext.js"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const SelectPortalContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") SelectPortalContext.displayName = \"SelectPortalContext\";\nexport function useSelectPortalContext() {\n const value = React.useContext(SelectPortalContext);\n if (value === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Select.Portal> is missing.' : _formatErrorMessage(58));\n }\n return value;\n}"],"names":["SelectPortalContext","React"],"mappings":";AAIY,MAACA,IAAmC,gBAAAC,EAAM,cAAc,MAAS;AACzE,QAAQ,IAAI,aAAa,iBAAcD,EAAoB,cAAc;","x_google_ignoreList":[0]}
package/dist/index293.js CHANGED
@@ -1,45 +1,82 @@
1
- import * as i from "react";
2
- import { useIsoLayoutEffect as b } from "./index286.js";
3
- import { useStableCallback as R } from "./index287.js";
4
- import { useRefWithInit as E } from "./index283.js";
5
- import { isElement as x } from "./index334.js";
6
- import { useBaseUiId as C } from "./index178.js";
7
- import { useLabelableContext as g } from "./index311.js";
8
- import { NOOP as p } from "./index289.js";
9
- function F(I = {}) {
1
+ import * as a from "react";
2
+ import { useRefWithInit as T } from "./index258.js";
3
+ import { useStableCallback as l } from "./index262.js";
4
+ import { useIsoLayoutEffect as f } from "./index261.js";
5
+ import { CompositeListContext as b } from "./index366.js";
6
+ import { j as D } from "./index30.js";
7
+ function k(h) {
10
8
  const {
11
- id: e,
12
- implicit: l = !1,
13
- controlRef: s
14
- } = I, {
15
- controlId: c,
16
- registerControlId: t
17
- } = g(), o = C(e), d = l ? c : void 0, u = E(() => /* @__PURE__ */ Symbol("labelable-control")), f = i.useRef(!1), a = i.useRef(e != null), n = R(() => {
18
- !f.current || t === p || (f.current = !1, t(u.current, void 0));
19
- });
20
- return b(() => {
21
- if (t === p)
22
- return;
23
- let r;
24
- if (l) {
25
- const m = s?.current;
26
- x(m) && m.closest("label") != null ? r = e ?? null : r = d ?? o;
27
- } else if (e != null)
28
- a.current = !0, r = e;
29
- else if (a.current)
30
- r = o;
31
- else {
32
- n();
9
+ children: N,
10
+ elementsRef: t,
11
+ labelsRef: o,
12
+ onMapChange: R
13
+ } = h, E = l(R), O = a.useRef(0), d = T(P).current, i = T(L).current, [p, M] = a.useState(0), c = a.useRef(p), C = l((e, u) => {
14
+ i.set(e, u ?? null), c.current += 1, M(c.current);
15
+ }), I = l((e) => {
16
+ i.delete(e), c.current += 1, M(c.current);
17
+ }), r = a.useMemo(() => {
18
+ const e = /* @__PURE__ */ new Map();
19
+ return Array.from(i.keys()).filter((n) => n.isConnected).sort(S).forEach((n, m) => {
20
+ const s = i.get(n) ?? {};
21
+ e.set(n, {
22
+ ...s,
23
+ index: m
24
+ });
25
+ }), e;
26
+ }, [i, p]);
27
+ f(() => {
28
+ if (typeof MutationObserver != "function" || r.size === 0)
33
29
  return;
34
- }
35
- if (r === void 0) {
36
- n();
37
- return;
38
- }
39
- f.current = !0, t(u.current, r);
40
- }, [e, s, d, t, l, o, u, n]), i.useEffect(() => n, [n]), c ?? o;
30
+ const e = new MutationObserver((u) => {
31
+ const n = /* @__PURE__ */ new Set(), m = (s) => n.has(s) ? n.delete(s) : n.add(s);
32
+ u.forEach((s) => {
33
+ s.removedNodes.forEach(m), s.addedNodes.forEach(m);
34
+ }), n.size === 0 && (c.current += 1, M(c.current));
35
+ });
36
+ return r.forEach((u, n) => {
37
+ n.parentElement && e.observe(n.parentElement, {
38
+ childList: !0
39
+ });
40
+ }), () => {
41
+ e.disconnect();
42
+ };
43
+ }, [r]), f(() => {
44
+ c.current === p && (t.current.length !== r.size && (t.current.length = r.size), o && o.current.length !== r.size && (o.current.length = r.size), O.current = r.size), E(r);
45
+ }, [E, r, t, o, p]), f(() => () => {
46
+ t.current = [];
47
+ }, [t]), f(() => () => {
48
+ o && (o.current = []);
49
+ }, [o]);
50
+ const g = l((e) => (d.add(e), () => {
51
+ d.delete(e);
52
+ }));
53
+ f(() => {
54
+ d.forEach((e) => e(r));
55
+ }, [d, r]);
56
+ const _ = a.useMemo(() => ({
57
+ register: C,
58
+ unregister: I,
59
+ subscribeMapChange: g,
60
+ elementsRef: t,
61
+ labelsRef: o,
62
+ nextIndexRef: O
63
+ }), [C, I, g, t, o, O]);
64
+ return /* @__PURE__ */ D.jsx(b.Provider, {
65
+ value: _,
66
+ children: N
67
+ });
68
+ }
69
+ function L() {
70
+ return /* @__PURE__ */ new Map();
71
+ }
72
+ function P() {
73
+ return /* @__PURE__ */ new Set();
74
+ }
75
+ function S(h, N) {
76
+ const t = h.compareDocumentPosition(N);
77
+ return t & Node.DOCUMENT_POSITION_FOLLOWING || t & Node.DOCUMENT_POSITION_CONTAINED_BY ? -1 : t & Node.DOCUMENT_POSITION_PRECEDING || t & Node.DOCUMENT_POSITION_CONTAINS ? 1 : 0;
41
78
  }
42
79
  export {
43
- F as useLabelableId
80
+ k as CompositeList
44
81
  };
45
82
  //# sourceMappingURL=index293.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index293.js","sources":["../../../node_modules/@base-ui/react/esm/internals/labelable-provider/useLabelableId.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { NOOP } from \"../noop.js\";\nimport { useBaseUiId } from \"../useBaseUiId.js\";\nimport { useLabelableContext } from \"./LabelableContext.js\";\nexport function useLabelableId(params = {}) {\n const {\n id,\n implicit = false,\n controlRef\n } = params;\n const {\n controlId,\n registerControlId\n } = useLabelableContext();\n const defaultId = useBaseUiId(id);\n const controlIdForEffect = implicit ? controlId : undefined;\n const controlSourceRef = useRefWithInit(() => Symbol('labelable-control'));\n const hasRegisteredRef = React.useRef(false);\n const hadExplicitIdRef = React.useRef(id != null);\n const unregisterControlId = useStableCallback(() => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSourceRef.current, undefined);\n });\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n let nextId;\n if (implicit) {\n const elem = controlRef?.current;\n if (isElement(elem) && elem.closest('label') != null) {\n nextId = id ?? null;\n } else {\n nextId = controlIdForEffect ?? defaultId;\n }\n } else if (id != null) {\n hadExplicitIdRef.current = true;\n nextId = id;\n } else if (hadExplicitIdRef.current) {\n nextId = defaultId;\n } else {\n unregisterControlId();\n return undefined;\n }\n if (nextId === undefined) {\n unregisterControlId();\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, nextId);\n return undefined;\n }, [id, controlRef, controlIdForEffect, registerControlId, implicit, defaultId, controlSourceRef, unregisterControlId]);\n React.useEffect(() => {\n return unregisterControlId;\n }, [unregisterControlId]);\n return controlId ?? defaultId;\n}"],"names":["useLabelableId","params","id","implicit","controlRef","controlId","registerControlId","useLabelableContext","defaultId","useBaseUiId","controlIdForEffect","controlSourceRef","useRefWithInit","hasRegisteredRef","React","hadExplicitIdRef","unregisterControlId","useStableCallback","NOOP","useIsoLayoutEffect","nextId","elem","isElement"],"mappings":";;;;;;;;AAUO,SAASA,EAAeC,IAAS,IAAI;AAC1C,QAAM;AAAA,IACJ,IAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,YAAAC;AAAA,EACJ,IAAMH,GACE;AAAA,IACJ,WAAAI;AAAA,IACA,mBAAAC;AAAA,EACJ,IAAMC,EAAmB,GACjBC,IAAYC,EAAYP,CAAE,GAC1BQ,IAAqBP,IAAWE,IAAY,QAC5CM,IAAmBC,EAAe,MAAM,uBAAO,mBAAmB,CAAC,GACnEC,IAAmBC,EAAM,OAAO,EAAK,GACrCC,IAAmBD,EAAM,OAAOZ,KAAM,IAAI,GAC1Cc,IAAsBC,EAAkB,MAAM;AAClD,IAAI,CAACJ,EAAiB,WAAWP,MAAsBY,MAGvDL,EAAiB,UAAU,IAC3BP,EAAkBK,EAAiB,SAAS,MAAS;AAAA,EACvD,CAAC;AACD,SAAAQ,EAAmB,MAAM;AACvB,QAAIb,MAAsBY;AACxB;AAEF,QAAIE;AACJ,QAAIjB,GAAU;AACZ,YAAMkB,IAAOjB,GAAY;AACzB,MAAIkB,EAAUD,CAAI,KAAKA,EAAK,QAAQ,OAAO,KAAK,OAC9CD,IAASlB,KAAM,OAEfkB,IAASV,KAAsBF;AAAA,IAEnC,WAAWN,KAAM;AACf,MAAAa,EAAiB,UAAU,IAC3BK,IAASlB;AAAA,aACAa,EAAiB;AAC1B,MAAAK,IAASZ;AAAA,SACJ;AACL,MAAAQ,EAAmB;AACnB;AAAA,IACF;AACA,QAAII,MAAW,QAAW;AACxB,MAAAJ,EAAmB;AACnB;AAAA,IACF;AACA,IAAAH,EAAiB,UAAU,IAC3BP,EAAkBK,EAAiB,SAASS,CAAM;AAAA,EAEpD,GAAG,CAAClB,GAAIE,GAAYM,GAAoBJ,GAAmBH,GAAUK,GAAWG,GAAkBK,CAAmB,CAAC,GACtHF,EAAM,UAAU,MACPE,GACN,CAACA,CAAmB,CAAC,GACjBX,KAAaG;AACtB;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index293.js","sources":["../../../node_modules/@base-ui/react/esm/internals/composite/list/CompositeList.js"],"sourcesContent":["/* eslint-disable no-bitwise */\n'use client';\n\nimport * as React from 'react';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { CompositeListContext } from \"./CompositeListContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Provides context for a list of items in a composite component.\n * @internal\n */\nexport function CompositeList(props) {\n const {\n children,\n elementsRef,\n labelsRef,\n onMapChange: onMapChangeProp\n } = props;\n const onMapChange = useStableCallback(onMapChangeProp);\n const nextIndexRef = React.useRef(0);\n const listeners = useRefWithInit(createListeners).current;\n\n // We use a stable `map` to avoid O(n^2) re-allocation costs for large lists.\n // `mapTick` is our re-render trigger mechanism. We also need to update the\n // elements and label refs, but there's a lot of async work going on and sometimes\n // the effect that handles `onMapChange` gets called after those refs have been\n // filled, and we don't want to lose those values by setting their lengths to `0`.\n // We also need to have them at the proper length because floating-ui uses that\n // information for list navigation.\n\n const map = useRefWithInit(createMap).current;\n // `mapTick` uses a counter rather than objects for low precision-loss risk and better memory efficiency\n const [mapTick, setMapTick] = React.useState(0);\n const lastTickRef = React.useRef(mapTick);\n const register = useStableCallback((node, metadata) => {\n map.set(node, metadata ?? null);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const unregister = useStableCallback(node => {\n map.delete(node);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const sortedMap = React.useMemo(() => {\n // `mapTick` is the `useMemo` trigger as `map` is stable.\n disableEslintWarning(mapTick);\n const newMap = new Map();\n // Filter out disconnected elements before sorting to avoid inconsistent\n // compareDocumentPosition results when elements are detached from the DOM.\n const sortedNodes = Array.from(map.keys()).filter(node => node.isConnected).sort(sortByDocumentPosition);\n sortedNodes.forEach((node, index) => {\n const metadata = map.get(node) ?? {};\n newMap.set(node, {\n ...metadata,\n index\n });\n });\n return newMap;\n }, [map, mapTick]);\n useIsoLayoutEffect(() => {\n if (typeof MutationObserver !== 'function' || sortedMap.size === 0) {\n return undefined;\n }\n const mutationObserver = new MutationObserver(entries => {\n const diff = new Set();\n const updateDiff = node => diff.has(node) ? diff.delete(node) : diff.add(node);\n entries.forEach(entry => {\n entry.removedNodes.forEach(updateDiff);\n entry.addedNodes.forEach(updateDiff);\n });\n if (diff.size === 0) {\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n }\n });\n sortedMap.forEach((_, node) => {\n if (node.parentElement) {\n mutationObserver.observe(node.parentElement, {\n childList: true\n });\n }\n });\n return () => {\n mutationObserver.disconnect();\n };\n }, [sortedMap]);\n useIsoLayoutEffect(() => {\n const shouldUpdateLengths = lastTickRef.current === mapTick;\n if (shouldUpdateLengths) {\n if (elementsRef.current.length !== sortedMap.size) {\n elementsRef.current.length = sortedMap.size;\n }\n if (labelsRef && labelsRef.current.length !== sortedMap.size) {\n labelsRef.current.length = sortedMap.size;\n }\n nextIndexRef.current = sortedMap.size;\n }\n onMapChange(sortedMap);\n }, [onMapChange, sortedMap, elementsRef, labelsRef, mapTick]);\n useIsoLayoutEffect(() => {\n return () => {\n elementsRef.current = [];\n };\n }, [elementsRef]);\n useIsoLayoutEffect(() => {\n return () => {\n if (labelsRef) {\n labelsRef.current = [];\n }\n };\n }, [labelsRef]);\n const subscribeMapChange = useStableCallback(fn => {\n listeners.add(fn);\n return () => {\n listeners.delete(fn);\n };\n });\n useIsoLayoutEffect(() => {\n listeners.forEach(l => l(sortedMap));\n }, [listeners, sortedMap]);\n const contextValue = React.useMemo(() => ({\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n }), [register, unregister, subscribeMapChange, elementsRef, labelsRef, nextIndexRef]);\n return /*#__PURE__*/_jsx(CompositeListContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nfunction createMap() {\n return new Map();\n}\nfunction createListeners() {\n return new Set();\n}\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction disableEslintWarning(_) {}"],"names":["CompositeList","props","children","elementsRef","labelsRef","onMapChangeProp","onMapChange","useStableCallback","nextIndexRef","React","listeners","useRefWithInit","createListeners","map","createMap","mapTick","setMapTick","lastTickRef","register","node","metadata","unregister","sortedMap","newMap","sortByDocumentPosition","index","useIsoLayoutEffect","mutationObserver","entries","diff","updateDiff","entry","_","subscribeMapChange","fn","l","contextValue","_jsx","CompositeListContext","a","b","position"],"mappings":"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","x_google_ignoreList":[0]}