@rpcbase/ui 0.238.0 → 0.239.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 (299) hide show
  1. package/dist/components/AddressAutocompleteInput/index.d.ts.map +1 -1
  2. package/dist/helpers/useMapsLibrary.d.ts.map +1 -1
  3. package/dist/index121.js +10 -10
  4. package/dist/index123.js +2 -2
  5. package/dist/index124.js +3 -3
  6. package/dist/index151.js +4 -4
  7. package/dist/index156.js +1 -1
  8. package/dist/index157.js +1 -1
  9. package/dist/index164.js +1 -1
  10. package/dist/index165.js +6 -6
  11. package/dist/index167.js +1 -1
  12. package/dist/index169.js +1 -1
  13. package/dist/index172.js +3 -3
  14. package/dist/index175.js +1 -1
  15. package/dist/index176.js +4 -4
  16. package/dist/index182.js +1 -1
  17. package/dist/index184.js +12 -12
  18. package/dist/index185.js +1 -1
  19. package/dist/index187.js +5 -5
  20. package/dist/index189.js +6 -6
  21. package/dist/index190.js +5 -5
  22. package/dist/index193.js +3 -3
  23. package/dist/index194.js +5 -5
  24. package/dist/index22.js.map +1 -1
  25. package/dist/index237.js +14 -27
  26. package/dist/index237.js.map +1 -1
  27. package/dist/index238.js +7 -12
  28. package/dist/index238.js.map +1 -1
  29. package/dist/index239.js +9 -24
  30. package/dist/index239.js.map +1 -1
  31. package/dist/index240.js +10 -5
  32. package/dist/index240.js.map +1 -1
  33. package/dist/index241.js +20 -15
  34. package/dist/index241.js.map +1 -1
  35. package/dist/index242.js +10 -7
  36. package/dist/index242.js.map +1 -1
  37. package/dist/index243.js +9 -10
  38. package/dist/index243.js.map +1 -1
  39. package/dist/index244.js +9 -10
  40. package/dist/index244.js.map +1 -1
  41. package/dist/index245.js +4 -21
  42. package/dist/index245.js.map +1 -1
  43. package/dist/index246.js +5 -10
  44. package/dist/index246.js.map +1 -1
  45. package/dist/index247.js +16 -9
  46. package/dist/index247.js.map +1 -1
  47. package/dist/index248.js +8 -8
  48. package/dist/index248.js.map +1 -1
  49. package/dist/index249.js +18 -4
  50. package/dist/index249.js.map +1 -1
  51. package/dist/index250.js +15 -5
  52. package/dist/index250.js.map +1 -1
  53. package/dist/index251.js +12 -16
  54. package/dist/index251.js.map +1 -1
  55. package/dist/index252.js +29 -9
  56. package/dist/index252.js.map +1 -1
  57. package/dist/index253.js +12 -18
  58. package/dist/index253.js.map +1 -1
  59. package/dist/index254.js +25 -15
  60. package/dist/index254.js.map +1 -1
  61. package/dist/index255.js +5 -12
  62. package/dist/index255.js.map +1 -1
  63. package/dist/index256.js +14 -20
  64. package/dist/index256.js.map +1 -1
  65. package/dist/index257.js +146 -58
  66. package/dist/index257.js.map +1 -1
  67. package/dist/index258.js +30 -6
  68. package/dist/index258.js.map +1 -1
  69. package/dist/index259.js +9 -11
  70. package/dist/index259.js.map +1 -1
  71. package/dist/index260.js +44 -46
  72. package/dist/index260.js.map +1 -1
  73. package/dist/index261.js +12 -4
  74. package/dist/index261.js.map +1 -1
  75. package/dist/index262.js +43 -28
  76. package/dist/index262.js.map +1 -1
  77. package/dist/index263.js +93 -14
  78. package/dist/index263.js.map +1 -1
  79. package/dist/index264.js +86 -5
  80. package/dist/index264.js.map +1 -1
  81. package/dist/index265.js +105 -21
  82. package/dist/index265.js.map +1 -1
  83. package/dist/index266.js +51 -50
  84. package/dist/index266.js.map +1 -1
  85. package/dist/index267.js +11 -25
  86. package/dist/index267.js.map +1 -1
  87. package/dist/index268.js +37 -41
  88. package/dist/index268.js.map +1 -1
  89. package/dist/index269.js +8 -39
  90. package/dist/index269.js.map +1 -1
  91. package/dist/index270.js +117 -45
  92. package/dist/index270.js.map +1 -1
  93. package/dist/index271.js +17 -20
  94. package/dist/index271.js.map +1 -1
  95. package/dist/index272.js +14 -69
  96. package/dist/index272.js.map +1 -1
  97. package/dist/index273.js +3 -17
  98. package/dist/index273.js.map +1 -1
  99. package/dist/index274.js +36 -11
  100. package/dist/index274.js.map +1 -1
  101. package/dist/index275.js +20 -27
  102. package/dist/index275.js.map +1 -1
  103. package/dist/index276.js +9 -13
  104. package/dist/index276.js.map +1 -1
  105. package/dist/index277.js +8 -18
  106. package/dist/index277.js.map +1 -1
  107. package/dist/index278.js +20 -37
  108. package/dist/index278.js.map +1 -1
  109. package/dist/index279.js +59 -255
  110. package/dist/index279.js.map +1 -1
  111. package/dist/index280.js +6 -278
  112. package/dist/index280.js.map +1 -1
  113. package/dist/index281.js +10 -67
  114. package/dist/index281.js.map +1 -1
  115. package/dist/index282.js +47 -96
  116. package/dist/index282.js.map +1 -1
  117. package/dist/index283.js +4 -84
  118. package/dist/index283.js.map +1 -1
  119. package/dist/index284.js +29 -3
  120. package/dist/index284.js.map +1 -1
  121. package/dist/index285.js +15 -28
  122. package/dist/index285.js.map +1 -1
  123. package/dist/index286.js +5 -16
  124. package/dist/index286.js.map +1 -1
  125. package/dist/index287.js +22 -35
  126. package/dist/index287.js.map +1 -1
  127. package/dist/index288.js +51 -16
  128. package/dist/index288.js.map +1 -1
  129. package/dist/index289.js +25 -3
  130. package/dist/index289.js.map +1 -1
  131. package/dist/index290.js +41 -26
  132. package/dist/index290.js.map +1 -1
  133. package/dist/index291.js +38 -27
  134. package/dist/index291.js.map +1 -1
  135. package/dist/index292.js +45 -4
  136. package/dist/index292.js.map +1 -1
  137. package/dist/index293.js +20 -78
  138. package/dist/index293.js.map +1 -1
  139. package/dist/index294.js +65 -264
  140. package/dist/index294.js.map +1 -1
  141. package/dist/index295.js +17 -11
  142. package/dist/index295.js.map +1 -1
  143. package/dist/index296.js +11 -10
  144. package/dist/index296.js.map +1 -1
  145. package/dist/index297.js +26 -24
  146. package/dist/index297.js.map +1 -1
  147. package/dist/index298.js +13 -16
  148. package/dist/index298.js.map +1 -1
  149. package/dist/index299.js +15 -122
  150. package/dist/index299.js.map +1 -1
  151. package/dist/index3.js.map +1 -1
  152. package/dist/index300.js +36 -5
  153. package/dist/index300.js.map +1 -1
  154. package/dist/index301.js +260 -38
  155. package/dist/index301.js.map +1 -1
  156. package/dist/index302.js +275 -62
  157. package/dist/index302.js.map +1 -1
  158. package/dist/index303.js +68 -13
  159. package/dist/index303.js.map +1 -1
  160. package/dist/index304.js +99 -7
  161. package/dist/index304.js.map +1 -1
  162. package/dist/index305.js +83 -5
  163. package/dist/index305.js.map +1 -1
  164. package/dist/index306.js +3 -3
  165. package/dist/index306.js.map +1 -1
  166. package/dist/index307.js +29 -10
  167. package/dist/index307.js.map +1 -1
  168. package/dist/index308.js +15 -6
  169. package/dist/index308.js.map +1 -1
  170. package/dist/index309.js +34 -133
  171. package/dist/index309.js.map +1 -1
  172. package/dist/index310.js +15 -398
  173. package/dist/index310.js.map +1 -1
  174. package/dist/index311.js +3 -52
  175. package/dist/index311.js.map +1 -1
  176. package/dist/index312.js +26 -11
  177. package/dist/index312.js.map +1 -1
  178. package/dist/index313.js +27 -10
  179. package/dist/index313.js.map +1 -1
  180. package/dist/index314.js +4 -14
  181. package/dist/index314.js.map +1 -1
  182. package/dist/index315.js +75 -151
  183. package/dist/index315.js.map +1 -1
  184. package/dist/index316.js +267 -28
  185. package/dist/index316.js.map +1 -1
  186. package/dist/index317.js +11 -9
  187. package/dist/index317.js.map +1 -1
  188. package/dist/index318.js +11 -49
  189. package/dist/index318.js.map +1 -1
  190. package/dist/index319.js +25 -11
  191. package/dist/index319.js.map +1 -1
  192. package/dist/index320.js +15 -43
  193. package/dist/index320.js.map +1 -1
  194. package/dist/index321.js +119 -89
  195. package/dist/index321.js.map +1 -1
  196. package/dist/index322.js +5 -86
  197. package/dist/index322.js.map +1 -1
  198. package/dist/index323.js +39 -104
  199. package/dist/index323.js.map +1 -1
  200. package/dist/index324.js +60 -47
  201. package/dist/index324.js.map +1 -1
  202. package/dist/index325.js +13 -11
  203. package/dist/index325.js.map +1 -1
  204. package/dist/index326.js +7 -37
  205. package/dist/index326.js.map +1 -1
  206. package/dist/index327.js +5 -8
  207. package/dist/index327.js.map +1 -1
  208. package/dist/index328.js +3 -116
  209. package/dist/index328.js.map +1 -1
  210. package/dist/index329.js +10 -17
  211. package/dist/index329.js.map +1 -1
  212. package/dist/index330.js +7 -15
  213. package/dist/index330.js.map +1 -1
  214. package/dist/index331.js +133 -3
  215. package/dist/index331.js.map +1 -1
  216. package/dist/index332.js +398 -35
  217. package/dist/index332.js.map +1 -1
  218. package/dist/index333.js +52 -20
  219. package/dist/index333.js.map +1 -1
  220. package/dist/index334.js +11 -9
  221. package/dist/index334.js.map +1 -1
  222. package/dist/index335.js +11 -8
  223. package/dist/index335.js.map +1 -1
  224. package/dist/index336.js +3 -3
  225. package/dist/index339.js +1 -1
  226. package/dist/index346.js +2 -2
  227. package/dist/index347.js +5 -122
  228. package/dist/index347.js.map +1 -1
  229. package/dist/index348.js +121 -31
  230. package/dist/index348.js.map +1 -1
  231. package/dist/index349.js +31 -72
  232. package/dist/index349.js.map +1 -1
  233. package/dist/index350.js +70 -139
  234. package/dist/index350.js.map +1 -1
  235. package/dist/index351.js +116 -35
  236. package/dist/index351.js.map +1 -1
  237. package/dist/index352.js +56 -44
  238. package/dist/index352.js.map +1 -1
  239. package/dist/index353.js +49 -14
  240. package/dist/index353.js.map +1 -1
  241. package/dist/index354.js +15 -6
  242. package/dist/index354.js.map +1 -1
  243. package/dist/index362.js +19 -10
  244. package/dist/index362.js.map +1 -1
  245. package/dist/index363.js +4 -17
  246. package/dist/index363.js.map +1 -1
  247. package/dist/index365.js +12 -4
  248. package/dist/index365.js.map +1 -1
  249. package/dist/index366.js +15 -19
  250. package/dist/index366.js.map +1 -1
  251. package/dist/index367.js +19 -43
  252. package/dist/index367.js.map +1 -1
  253. package/dist/index368.js +40 -13
  254. package/dist/index368.js.map +1 -1
  255. package/dist/index369.js +17 -4
  256. package/dist/index369.js.map +1 -1
  257. package/dist/index370.js +4 -200
  258. package/dist/index370.js.map +1 -1
  259. package/dist/index371.js +197 -74
  260. package/dist/index371.js.map +1 -1
  261. package/dist/index372.js +77 -20
  262. package/dist/index372.js.map +1 -1
  263. package/dist/index374.js +3 -3
  264. package/dist/index375.js +1 -1
  265. package/dist/index376.js +3 -3
  266. package/dist/index378.js +2 -2
  267. package/dist/index380.js +1 -1
  268. package/dist/index381.js +2 -2
  269. package/dist/index384.js +2 -2
  270. package/dist/index386.js +1 -1
  271. package/dist/index407.js +1 -1
  272. package/dist/index44.js +1 -1
  273. package/dist/index45.js +2 -2
  274. package/dist/index49.js +28 -28
  275. package/dist/index50.js +21 -21
  276. package/dist/index51.js +1 -1
  277. package/dist/index52.js +8 -8
  278. package/dist/index53.js +2 -2
  279. package/dist/index55.js +17 -17
  280. package/dist/index56.js +4 -4
  281. package/dist/index57.js +3 -3
  282. package/dist/index58.js +7 -7
  283. package/dist/index59.js +4 -4
  284. package/dist/index60.js +12 -12
  285. package/dist/index61.js +2 -2
  286. package/dist/index62.js +2 -2
  287. package/dist/index70.js +1 -1
  288. package/dist/index71.js +1 -1
  289. package/dist/index74.js +6 -2
  290. package/dist/index74.js.map +1 -1
  291. package/dist/index75.js +8 -2
  292. package/dist/index75.js.map +1 -1
  293. package/dist/index76.js +5 -5
  294. package/dist/index76.js.map +1 -1
  295. package/dist/index77.js +2 -8
  296. package/dist/index77.js.map +1 -1
  297. package/dist/index78.js +2 -6
  298. package/dist/index78.js.map +1 -1
  299. package/package.json +1 -1
@@ -1 +1 @@
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]}
1
+ {"version":3,"file":"index290.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]}
package/dist/index291.js CHANGED
@@ -1,32 +1,43 @@
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;
1
+ import * as a from "react";
2
+ import { useIsoLayoutEffect as c } from "./index283.js";
3
+ import { AnimationFrame as u } from "./index324.js";
4
+ function g(t, s = !1, f = !1) {
5
+ const [n, r] = a.useState(t && s ? "idle" : void 0), [i, d] = a.useState(t);
6
+ return t && !i && (d(!0), r("starting")), !t && i && n !== "ending" && !f && r("ending"), !t && !i && n === "ending" && r(void 0), c(() => {
7
+ if (!t && i && n !== "ending" && f) {
8
+ const e = u.request(() => {
9
+ r("ending");
10
+ });
11
+ return () => {
12
+ u.cancel(e);
13
+ };
20
14
  }
21
- }
22
- return !1;
23
- }
24
- function f(t) {
25
- return "composedPath" in t ? t.composedPath()[0] : t.target;
15
+ }, [t, i, n, f]), c(() => {
16
+ if (!t || s)
17
+ return;
18
+ const e = u.request(() => {
19
+ r(void 0);
20
+ });
21
+ return () => {
22
+ u.cancel(e);
23
+ };
24
+ }, [s, t]), c(() => {
25
+ if (!t || !s)
26
+ return;
27
+ t && i && n !== "idle" && r("starting");
28
+ const e = u.request(() => {
29
+ r("idle");
30
+ });
31
+ return () => {
32
+ u.cancel(e);
33
+ };
34
+ }, [s, t, i, n]), {
35
+ mounted: i,
36
+ setMounted: d,
37
+ transitionStatus: n
38
+ };
26
39
  }
27
40
  export {
28
- a as activeElement,
29
- u as contains,
30
- f as getTarget
41
+ g as useTransitionStatus
31
42
  };
32
43
  //# sourceMappingURL=index291.js.map
@@ -1 +1 @@
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]}
1
+ {"version":3,"file":"index291.js","sources":["../../../node_modules/@base-ui/react/esm/internals/useTransitionStatus.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { AnimationFrame } from '@base-ui/utils/useAnimationFrame';\n/**\n * Provides a status string for CSS animations.\n * @param open - a boolean that determines if the element is open.\n * @param enableIdleState - a boolean that enables the `'idle'` state between `'starting'` and `'ending'`\n */\nexport function useTransitionStatus(open, enableIdleState = false, deferEndingState = false) {\n const [transitionStatus, setTransitionStatus] = React.useState(open && enableIdleState ? 'idle' : undefined);\n const [mounted, setMounted] = React.useState(open);\n if (open && !mounted) {\n setMounted(true);\n setTransitionStatus('starting');\n }\n if (!open && mounted && transitionStatus !== 'ending' && !deferEndingState) {\n setTransitionStatus('ending');\n }\n if (!open && !mounted && transitionStatus === 'ending') {\n setTransitionStatus(undefined);\n }\n useIsoLayoutEffect(() => {\n if (!open && mounted && transitionStatus !== 'ending' && deferEndingState) {\n const frame = AnimationFrame.request(() => {\n setTransitionStatus('ending');\n });\n return () => {\n AnimationFrame.cancel(frame);\n };\n }\n return undefined;\n }, [open, mounted, transitionStatus, deferEndingState]);\n useIsoLayoutEffect(() => {\n if (!open || enableIdleState) {\n return undefined;\n }\n const frame = AnimationFrame.request(() => {\n // Avoid `flushSync` here due to Firefox.\n // See https://github.com/mui/base-ui/pull/3424\n setTransitionStatus(undefined);\n });\n return () => {\n AnimationFrame.cancel(frame);\n };\n }, [enableIdleState, open]);\n useIsoLayoutEffect(() => {\n if (!open || !enableIdleState) {\n return undefined;\n }\n if (open && mounted && transitionStatus !== 'idle') {\n setTransitionStatus('starting');\n }\n const frame = AnimationFrame.request(() => {\n setTransitionStatus('idle');\n });\n return () => {\n AnimationFrame.cancel(frame);\n };\n }, [enableIdleState, open, mounted, transitionStatus]);\n return {\n mounted,\n setMounted,\n transitionStatus\n };\n}"],"names":["useTransitionStatus","open","enableIdleState","deferEndingState","transitionStatus","setTransitionStatus","React","mounted","setMounted","useIsoLayoutEffect","frame","AnimationFrame"],"mappings":";;;AAUO,SAASA,EAAoBC,GAAMC,IAAkB,IAAOC,IAAmB,IAAO;AAC3F,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAM,SAASL,KAAQC,IAAkB,SAAS,MAAS,GACrG,CAACK,GAASC,CAAU,IAAIF,EAAM,SAASL,CAAI;AACjD,SAAIA,KAAQ,CAACM,MACXC,EAAW,EAAI,GACfH,EAAoB,UAAU,IAE5B,CAACJ,KAAQM,KAAWH,MAAqB,YAAY,CAACD,KACxDE,EAAoB,QAAQ,GAE1B,CAACJ,KAAQ,CAACM,KAAWH,MAAqB,YAC5CC,EAAoB,MAAS,GAE/BI,EAAmB,MAAM;AACvB,QAAI,CAACR,KAAQM,KAAWH,MAAqB,YAAYD,GAAkB;AACzE,YAAMO,IAAQC,EAAe,QAAQ,MAAM;AACzC,QAAAN,EAAoB,QAAQ;AAAA,MAC9B,CAAC;AACD,aAAO,MAAM;AACX,QAAAM,EAAe,OAAOD,CAAK;AAAA,MAC7B;AAAA,IACF;AAAA,EAEF,GAAG,CAACT,GAAMM,GAASH,GAAkBD,CAAgB,CAAC,GACtDM,EAAmB,MAAM;AACvB,QAAI,CAACR,KAAQC;AACX;AAEF,UAAMQ,IAAQC,EAAe,QAAQ,MAAM;AAGzC,MAAAN,EAAoB,MAAS;AAAA,IAC/B,CAAC;AACD,WAAO,MAAM;AACX,MAAAM,EAAe,OAAOD,CAAK;AAAA,IAC7B;AAAA,EACF,GAAG,CAACR,GAAiBD,CAAI,CAAC,GAC1BQ,EAAmB,MAAM;AACvB,QAAI,CAACR,KAAQ,CAACC;AACZ;AAEF,IAAID,KAAQM,KAAWH,MAAqB,UAC1CC,EAAoB,UAAU;AAEhC,UAAMK,IAAQC,EAAe,QAAQ,MAAM;AACzC,MAAAN,EAAoB,MAAM;AAAA,IAC5B,CAAC;AACD,WAAO,MAAM;AACX,MAAAM,EAAe,OAAOD,CAAK;AAAA,IAC7B;AAAA,EACF,GAAG,CAACR,GAAiBD,GAAMM,GAASH,CAAgB,CAAC,GAC9C;AAAA,IACL,SAAAG;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAJ;AAAA,EACJ;AACA;","x_google_ignoreList":[0]}
package/dist/index292.js CHANGED
@@ -1,7 +1,48 @@
1
- import * as e from "react";
2
- const t = /* @__PURE__ */ e.createContext(void 0);
3
- process.env.NODE_ENV !== "production" && (t.displayName = "SelectPortalContext");
1
+ import { compareItemEquality as s } from "./index295.js";
2
+ import { hasNullItemLabel as u, stringifyAsValue as a } from "./index294.js";
3
+ import { createSelector as r } from "./index354.js";
4
+ const d = {
5
+ id: r((e) => e.id),
6
+ labelId: r((e) => e.labelId),
7
+ modal: r((e) => e.modal),
8
+ multiple: r((e) => e.multiple),
9
+ items: r((e) => e.items),
10
+ itemToStringLabel: r((e) => e.itemToStringLabel),
11
+ itemToStringValue: r((e) => e.itemToStringValue),
12
+ isItemEqualToValue: r((e) => e.isItemEqualToValue),
13
+ value: r((e) => e.value),
14
+ hasSelectedValue: r((e) => {
15
+ const {
16
+ value: l,
17
+ multiple: t,
18
+ itemToStringValue: o
19
+ } = e;
20
+ return l == null ? !1 : t && Array.isArray(l) ? l.length > 0 : a(l, o) !== "";
21
+ }),
22
+ hasNullItemLabel: r((e, l) => l ? u(e.items) : !1),
23
+ open: r((e) => e.open),
24
+ mounted: r((e) => e.mounted),
25
+ forceMount: r((e) => e.forceMount),
26
+ transitionStatus: r((e) => e.transitionStatus),
27
+ openMethod: r((e) => e.openMethod),
28
+ activeIndex: r((e) => e.activeIndex),
29
+ selectedIndex: r((e) => e.selectedIndex),
30
+ isActive: r((e, l) => e.activeIndex === l),
31
+ isSelected: r((e, l, t) => {
32
+ const o = e.isItemEqualToValue, i = e.value;
33
+ return e.multiple ? Array.isArray(i) && i.some((n) => s(t, n, o)) : e.selectedIndex === l && e.selectedIndex !== null ? !0 : s(t, i, o);
34
+ }),
35
+ isSelectedByFocus: r((e, l) => e.selectedIndex === l),
36
+ popupProps: r((e) => e.popupProps),
37
+ triggerProps: r((e) => e.triggerProps),
38
+ triggerElement: r((e) => e.triggerElement),
39
+ positionerElement: r((e) => e.positionerElement),
40
+ listElement: r((e) => e.listElement),
41
+ scrollUpArrowVisible: r((e) => e.scrollUpArrowVisible),
42
+ scrollDownArrowVisible: r((e) => e.scrollDownArrowVisible),
43
+ hasScrollArrows: r((e) => e.hasScrollArrows)
44
+ };
4
45
  export {
5
- t as SelectPortalContext
46
+ d as selectors
6
47
  };
7
48
  //# sourceMappingURL=index292.js.map
@@ -1 +1 @@
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]}
1
+ {"version":3,"file":"index292.js","sources":["../../../node_modules/@base-ui/react/esm/select/store.js"],"sourcesContent":["import { createSelector } from '@base-ui/utils/store';\nimport { compareItemEquality } from \"../internals/itemEquality.js\";\nimport { hasNullItemLabel, stringifyAsValue } from \"../internals/resolveValueLabel.js\";\nexport const selectors = {\n id: createSelector(state => state.id),\n labelId: createSelector(state => state.labelId),\n modal: createSelector(state => state.modal),\n multiple: createSelector(state => state.multiple),\n items: createSelector(state => state.items),\n itemToStringLabel: createSelector(state => state.itemToStringLabel),\n itemToStringValue: createSelector(state => state.itemToStringValue),\n isItemEqualToValue: createSelector(state => state.isItemEqualToValue),\n value: createSelector(state => state.value),\n hasSelectedValue: createSelector(state => {\n const {\n value,\n multiple,\n itemToStringValue\n } = state;\n if (value == null) {\n return false;\n }\n if (multiple && Array.isArray(value)) {\n return value.length > 0;\n }\n return stringifyAsValue(value, itemToStringValue) !== '';\n }),\n hasNullItemLabel: createSelector((state, enabled) => {\n return enabled ? hasNullItemLabel(state.items) : false;\n }),\n open: createSelector(state => state.open),\n mounted: createSelector(state => state.mounted),\n forceMount: createSelector(state => state.forceMount),\n transitionStatus: createSelector(state => state.transitionStatus),\n openMethod: createSelector(state => state.openMethod),\n activeIndex: createSelector(state => state.activeIndex),\n selectedIndex: createSelector(state => state.selectedIndex),\n isActive: createSelector((state, index) => state.activeIndex === index),\n isSelected: createSelector((state, index, itemValue) => {\n const comparer = state.isItemEqualToValue;\n const storeValue = state.value;\n if (state.multiple) {\n return Array.isArray(storeValue) && storeValue.some(selectedItem => compareItemEquality(itemValue, selectedItem, comparer));\n }\n\n // `selectedIndex` is only updated after the items mount for the first time,\n // the value check avoids a re-render for the initially selected item.\n if (state.selectedIndex === index && state.selectedIndex !== null) {\n return true;\n }\n return compareItemEquality(itemValue, storeValue, comparer);\n }),\n isSelectedByFocus: createSelector((state, index) => {\n return state.selectedIndex === index;\n }),\n popupProps: createSelector(state => state.popupProps),\n triggerProps: createSelector(state => state.triggerProps),\n triggerElement: createSelector(state => state.triggerElement),\n positionerElement: createSelector(state => state.positionerElement),\n listElement: createSelector(state => state.listElement),\n scrollUpArrowVisible: createSelector(state => state.scrollUpArrowVisible),\n scrollDownArrowVisible: createSelector(state => state.scrollDownArrowVisible),\n hasScrollArrows: createSelector(state => state.hasScrollArrows)\n};"],"names":["selectors","createSelector","state","value","multiple","itemToStringValue","stringifyAsValue","enabled","hasNullItemLabel","index","itemValue","comparer","storeValue","selectedItem","compareItemEquality"],"mappings":";;;AAGY,MAACA,IAAY;AAAA,EACvB,IAAIC,EAAe,CAAAC,MAASA,EAAM,EAAE;AAAA,EACpC,SAASD,EAAe,CAAAC,MAASA,EAAM,OAAO;AAAA,EAC9C,OAAOD,EAAe,CAAAC,MAASA,EAAM,KAAK;AAAA,EAC1C,UAAUD,EAAe,CAAAC,MAASA,EAAM,QAAQ;AAAA,EAChD,OAAOD,EAAe,CAAAC,MAASA,EAAM,KAAK;AAAA,EAC1C,mBAAmBD,EAAe,CAAAC,MAASA,EAAM,iBAAiB;AAAA,EAClE,mBAAmBD,EAAe,CAAAC,MAASA,EAAM,iBAAiB;AAAA,EAClE,oBAAoBD,EAAe,CAAAC,MAASA,EAAM,kBAAkB;AAAA,EACpE,OAAOD,EAAe,CAAAC,MAASA,EAAM,KAAK;AAAA,EAC1C,kBAAkBD,EAAe,CAAAC,MAAS;AACxC,UAAM;AAAA,MACJ,OAAAC;AAAA,MACA,UAAAC;AAAA,MACA,mBAAAC;AAAA,IACN,IAAQH;AACJ,WAAIC,KAAS,OACJ,KAELC,KAAY,MAAM,QAAQD,CAAK,IAC1BA,EAAM,SAAS,IAEjBG,EAAiBH,GAAOE,CAAiB,MAAM;AAAA,EACxD,CAAC;AAAA,EACD,kBAAkBJ,EAAe,CAACC,GAAOK,MAChCA,IAAUC,EAAiBN,EAAM,KAAK,IAAI,EAClD;AAAA,EACD,MAAMD,EAAe,CAAAC,MAASA,EAAM,IAAI;AAAA,EACxC,SAASD,EAAe,CAAAC,MAASA,EAAM,OAAO;AAAA,EAC9C,YAAYD,EAAe,CAAAC,MAASA,EAAM,UAAU;AAAA,EACpD,kBAAkBD,EAAe,CAAAC,MAASA,EAAM,gBAAgB;AAAA,EAChE,YAAYD,EAAe,CAAAC,MAASA,EAAM,UAAU;AAAA,EACpD,aAAaD,EAAe,CAAAC,MAASA,EAAM,WAAW;AAAA,EACtD,eAAeD,EAAe,CAAAC,MAASA,EAAM,aAAa;AAAA,EAC1D,UAAUD,EAAe,CAACC,GAAOO,MAAUP,EAAM,gBAAgBO,CAAK;AAAA,EACtE,YAAYR,EAAe,CAACC,GAAOO,GAAOC,MAAc;AACtD,UAAMC,IAAWT,EAAM,oBACjBU,IAAaV,EAAM;AACzB,WAAIA,EAAM,WACD,MAAM,QAAQU,CAAU,KAAKA,EAAW,KAAK,CAAAC,MAAgBC,EAAoBJ,GAAWG,GAAcF,CAAQ,CAAC,IAKxHT,EAAM,kBAAkBO,KAASP,EAAM,kBAAkB,OACpD,KAEFY,EAAoBJ,GAAWE,GAAYD,CAAQ;AAAA,EAC5D,CAAC;AAAA,EACD,mBAAmBV,EAAe,CAACC,GAAOO,MACjCP,EAAM,kBAAkBO,CAChC;AAAA,EACD,YAAYR,EAAe,CAAAC,MAASA,EAAM,UAAU;AAAA,EACpD,cAAcD,EAAe,CAAAC,MAASA,EAAM,YAAY;AAAA,EACxD,gBAAgBD,EAAe,CAAAC,MAASA,EAAM,cAAc;AAAA,EAC5D,mBAAmBD,EAAe,CAAAC,MAASA,EAAM,iBAAiB;AAAA,EAClE,aAAaD,EAAe,CAAAC,MAASA,EAAM,WAAW;AAAA,EACtD,sBAAsBD,EAAe,CAAAC,MAASA,EAAM,oBAAoB;AAAA,EACxE,wBAAwBD,EAAe,CAAAC,MAASA,EAAM,sBAAsB;AAAA,EAC5E,iBAAiBD,EAAe,CAAAC,MAASA,EAAM,eAAe;AAChE;","x_google_ignoreList":[0]}
package/dist/index293.js CHANGED
@@ -1,82 +1,24 @@
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) {
8
- const {
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)
29
- return;
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;
1
+ import * as e from "react";
2
+ import { NOOP as r } from "./index286.js";
3
+ const t = /* @__PURE__ */ e.createContext({
4
+ formRef: {
5
+ current: {
6
+ fields: /* @__PURE__ */ new Map()
7
+ }
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);
78
19
  }
79
20
  export {
80
- k as CompositeList
21
+ t as FormContext,
22
+ n as useFormContext
81
23
  };
82
24
  //# sourceMappingURL=index293.js.map
@@ -1 +1 @@
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]}
1
+ {"version":3,"file":"index293.js","sources":["../../../node_modules/@base-ui/react/esm/internals/form-context/FormContext.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.js\";\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]}