@rpcbase/ui 0.233.0 → 0.234.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 (203) hide show
  1. package/dist/index167.js +3 -3
  2. package/dist/index172.js +3 -3
  3. package/dist/index175.js +1 -1
  4. package/dist/index176.js +4 -4
  5. package/dist/index182.js +1 -1
  6. package/dist/index184.js +12 -12
  7. package/dist/index185.js +1 -1
  8. package/dist/index187.js +5 -5
  9. package/dist/index189.js +6 -6
  10. package/dist/index190.js +5 -5
  11. package/dist/index193.js +3 -3
  12. package/dist/index194.js +5 -5
  13. package/dist/index198.js +57 -36
  14. package/dist/index198.js.map +1 -1
  15. package/dist/index199.js.map +1 -1
  16. package/dist/index262.js +2 -2
  17. package/dist/index274.js +1 -1
  18. package/dist/index278.js +20 -20
  19. package/dist/index278.js.map +1 -1
  20. package/dist/index279.js +24 -62
  21. package/dist/index279.js.map +1 -1
  22. package/dist/index280.js +16 -6
  23. package/dist/index280.js.map +1 -1
  24. package/dist/index281.js +20 -12
  25. package/dist/index281.js.map +1 -1
  26. package/dist/index282.js +64 -48
  27. package/dist/index282.js.map +1 -1
  28. package/dist/index283.js +7 -4
  29. package/dist/index283.js.map +1 -1
  30. package/dist/index284.js +11 -29
  31. package/dist/index284.js.map +1 -1
  32. package/dist/index285.js +49 -15
  33. package/dist/index285.js.map +1 -1
  34. package/dist/index286.js +4 -6
  35. package/dist/index286.js.map +1 -1
  36. package/dist/index287.js +28 -20
  37. package/dist/index287.js.map +1 -1
  38. package/dist/index288.js +15 -50
  39. package/dist/index288.js.map +1 -1
  40. package/dist/index289.js +5 -25
  41. package/dist/index289.js.map +1 -1
  42. package/dist/index290.js +21 -41
  43. package/dist/index290.js.map +1 -1
  44. package/dist/index291.js +50 -38
  45. package/dist/index291.js.map +1 -1
  46. package/dist/index292.js +26 -45
  47. package/dist/index292.js.map +1 -1
  48. package/dist/index293.js +40 -19
  49. package/dist/index293.js.map +1 -1
  50. package/dist/index294.js +38 -69
  51. package/dist/index294.js.map +1 -1
  52. package/dist/index295.js +45 -18
  53. package/dist/index295.js.map +1 -1
  54. package/dist/index296.js +20 -11
  55. package/dist/index296.js.map +1 -1
  56. package/dist/index297.js +69 -26
  57. package/dist/index297.js.map +1 -1
  58. package/dist/index298.js +16 -12
  59. package/dist/index298.js.map +1 -1
  60. package/dist/index299.js +10 -17
  61. package/dist/index299.js.map +1 -1
  62. package/dist/index300.js +26 -35
  63. package/dist/index300.js.map +1 -1
  64. package/dist/index301.js +12 -261
  65. package/dist/index301.js.map +1 -1
  66. package/dist/index302.js +15 -275
  67. package/dist/index302.js.map +1 -1
  68. package/dist/index303.js +36 -68
  69. package/dist/index303.js.map +1 -1
  70. package/dist/index304.js +256 -93
  71. package/dist/index304.js.map +1 -1
  72. package/dist/index305.js +270 -75
  73. package/dist/index305.js.map +1 -1
  74. package/dist/index306.js +68 -3
  75. package/dist/index306.js.map +1 -1
  76. package/dist/index307.js +96 -26
  77. package/dist/index307.js.map +1 -1
  78. package/dist/index308.js +83 -16
  79. package/dist/index308.js.map +1 -1
  80. package/dist/index309.js +4 -35
  81. package/dist/index309.js.map +1 -1
  82. package/dist/index310.js +28 -15
  83. package/dist/index310.js.map +1 -1
  84. package/dist/index311.js +16 -3
  85. package/dist/index311.js.map +1 -1
  86. package/dist/index312.js +35 -27
  87. package/dist/index312.js.map +1 -1
  88. package/dist/index313.js +16 -28
  89. package/dist/index313.js.map +1 -1
  90. package/dist/index314.js +4 -4
  91. package/dist/index314.js.map +1 -1
  92. package/dist/index315.js +23 -75
  93. package/dist/index315.js.map +1 -1
  94. package/dist/index316.js +25 -266
  95. package/dist/index316.js.map +1 -1
  96. package/dist/index317.js +4 -12
  97. package/dist/index317.js.map +1 -1
  98. package/dist/index318.js +79 -11
  99. package/dist/index318.js.map +1 -1
  100. package/dist/index319.js +267 -23
  101. package/dist/index319.js.map +1 -1
  102. package/dist/index320.js +11 -16
  103. package/dist/index320.js.map +1 -1
  104. package/dist/index321.js +10 -125
  105. package/dist/index321.js.map +1 -1
  106. package/dist/index322.js +24 -4
  107. package/dist/index322.js.map +1 -1
  108. package/dist/index323.js +16 -40
  109. package/dist/index323.js.map +1 -1
  110. package/dist/index324.js +121 -61
  111. package/dist/index324.js.map +1 -1
  112. package/dist/index325.js +6 -14
  113. package/dist/index325.js.map +1 -1
  114. package/dist/index326.js +40 -7
  115. package/dist/index326.js.map +1 -1
  116. package/dist/index327.js +65 -5
  117. package/dist/index327.js.map +1 -1
  118. package/dist/index328.js +14 -4
  119. package/dist/index328.js.map +1 -1
  120. package/dist/index329.js +7 -10
  121. package/dist/index329.js.map +1 -1
  122. package/dist/index330.js +5 -7
  123. package/dist/index330.js.map +1 -1
  124. package/dist/index331.js +3 -133
  125. package/dist/index331.js.map +1 -1
  126. package/dist/index332.js +9 -398
  127. package/dist/index332.js.map +1 -1
  128. package/dist/index333.js +7 -52
  129. package/dist/index333.js.map +1 -1
  130. package/dist/index334.js +133 -11
  131. package/dist/index334.js.map +1 -1
  132. package/dist/index335.js +399 -11
  133. package/dist/index335.js.map +1 -1
  134. package/dist/index336.js +51 -18
  135. package/dist/index336.js.map +1 -1
  136. package/dist/index337.js +11 -28
  137. package/dist/index337.js.map +1 -1
  138. package/dist/index338.js +11 -16
  139. package/dist/index338.js.map +1 -1
  140. package/dist/index339.js +1 -1
  141. package/dist/index346.js +2 -2
  142. package/dist/index347.js +122 -5
  143. package/dist/index347.js.map +1 -1
  144. package/dist/index348.js +31 -121
  145. package/dist/index348.js.map +1 -1
  146. package/dist/index349.js +72 -31
  147. package/dist/index349.js.map +1 -1
  148. package/dist/index350.js +139 -70
  149. package/dist/index350.js.map +1 -1
  150. package/dist/index351.js +35 -116
  151. package/dist/index351.js.map +1 -1
  152. package/dist/index352.js +44 -56
  153. package/dist/index352.js.map +1 -1
  154. package/dist/index353.js +14 -49
  155. package/dist/index353.js.map +1 -1
  156. package/dist/index354.js +6 -15
  157. package/dist/index354.js.map +1 -1
  158. package/dist/index368.js +1 -1
  159. package/dist/index371.js +2 -2
  160. package/dist/index372.js +3 -3
  161. package/dist/index374.js +3 -3
  162. package/dist/index375.js +1 -1
  163. package/dist/index376.js +3 -3
  164. package/dist/index378.js +2 -2
  165. package/dist/index380.js +1 -1
  166. package/dist/index381.js +2 -2
  167. package/dist/index384.js +2 -2
  168. package/dist/index386.js +1 -1
  169. package/dist/index407.js +1 -1
  170. package/dist/index417.js +1 -1
  171. package/dist/index418.js +1 -1
  172. package/dist/index421.js +1 -1
  173. package/dist/index422.js +1 -1
  174. package/dist/index427.js +2 -2
  175. package/dist/index429.js +2 -2
  176. package/dist/index44.js +1 -1
  177. package/dist/index45.js +2 -2
  178. package/dist/index49.js +28 -28
  179. package/dist/index50.js +21 -21
  180. package/dist/index51.js +1 -1
  181. package/dist/index52.js +8 -8
  182. package/dist/index53.js +2 -2
  183. package/dist/index55.js +17 -17
  184. package/dist/index56.js +4 -4
  185. package/dist/index57.js +3 -3
  186. package/dist/index58.js +7 -7
  187. package/dist/index59.js +4 -4
  188. package/dist/index60.js +12 -12
  189. package/dist/index61.js +2 -2
  190. package/dist/index62.js +2 -2
  191. package/dist/index70.js +1 -1
  192. package/dist/index71.js +1 -1
  193. package/dist/index74.js +6 -2
  194. package/dist/index74.js.map +1 -1
  195. package/dist/index75.js +8 -2
  196. package/dist/index75.js.map +1 -1
  197. package/dist/index76.js +5 -5
  198. package/dist/index76.js.map +1 -1
  199. package/dist/index77.js +2 -8
  200. package/dist/index77.js.map +1 -1
  201. package/dist/index78.js +2 -6
  202. package/dist/index78.js.map +1 -1
  203. package/package.json +1 -1
@@ -1 +1 @@
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]}
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]}
package/dist/index294.js CHANGED
@@ -1,74 +1,43 @@
1
- import * as c from "react";
2
- import { serializeValue as a } from "./index364.js";
3
- import { j as i } from "./index30.js";
4
- function s(r) {
5
- return r != null && r.length > 0 && typeof r[0] == "object" && r[0] != null && "items" in r[0];
6
- }
7
- function A(r) {
8
- if (!Array.isArray(r))
9
- return r != null && "null" in r;
10
- const n = r;
11
- if (s(n)) {
12
- for (const l of n)
13
- for (const u of l.items)
14
- if (u && u.value == null && u.label != null)
15
- return !0;
16
- return !1;
17
- }
18
- for (const l of n)
19
- if (l && l.value == null && l.label != null)
20
- return !0;
21
- return !1;
22
- }
23
- function b(r, n) {
24
- if (n && r != null)
25
- return n(r) ?? "";
26
- if (r && typeof r == "object") {
27
- if ("label" in r && r.label != null)
28
- return String(r.label);
29
- if ("value" in r)
30
- return String(r.value);
31
- }
32
- return a(r);
33
- }
34
- function h(r, n) {
35
- return n && r != null ? n(r) ?? "" : r && typeof r == "object" && "value" in r && "label" in r ? a(r.value) : a(r);
36
- }
37
- function p(r, n, l) {
38
- function u() {
39
- return b(r, l);
40
- }
41
- if (l && r != null)
42
- return l(r);
43
- if (r && typeof r == "object" && "label" in r && r.label != null)
44
- return r.label;
45
- if (n && !Array.isArray(n))
46
- return n[r] ?? u();
47
- if (Array.isArray(n)) {
48
- const e = n, t = s(e) ? e.flatMap((f) => f.items) : e;
49
- if (r == null || typeof r != "object") {
50
- const f = t.find((o) => o.value === r);
51
- return f && f.label != null ? f.label : u();
52
- }
53
- if ("value" in r) {
54
- const f = t.find((o) => o && o.value === r.value);
55
- if (f && f.label != null)
56
- return f.label;
1
+ import * as a from "react";
2
+ import { useIsoLayoutEffect as c } from "./index286.js";
3
+ import { AnimationFrame as u } from "./index327.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
+ };
57
14
  }
58
- }
59
- return u();
60
- }
61
- function d(r, n, l) {
62
- return r.reduce((u, e, t) => (t > 0 && u.push(", "), u.push(/* @__PURE__ */ i.jsx(c.Fragment, {
63
- children: p(e, n, l)
64
- }, t)), u), []);
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
+ };
65
39
  }
66
40
  export {
67
- A as hasNullItemLabel,
68
- s as isGroupedItems,
69
- d as resolveMultipleLabels,
70
- p as resolveSelectedLabel,
71
- b as stringifyAsLabel,
72
- h as stringifyAsValue
41
+ g as useTransitionStatus
73
42
  };
74
43
  //# sourceMappingURL=index294.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index294.js","sources":["../../../node_modules/@base-ui/react/esm/internals/resolveValueLabel.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { serializeValue } from \"./serializeValue.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isGroupedItems(items) {\n return items != null && items.length > 0 && typeof items[0] === 'object' && items[0] != null && 'items' in items[0];\n}\n\n/**\n * Checks if the items array contains an item with a null value that has a non-null label.\n */\nexport function hasNullItemLabel(items) {\n if (!Array.isArray(items)) {\n return items != null && 'null' in items;\n }\n const arrayItems = items;\n if (isGroupedItems(arrayItems)) {\n for (const group of arrayItems) {\n for (const item of group.items) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n }\n return false;\n }\n for (const item of arrayItems) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n return false;\n}\nexport function stringifyAsLabel(item, itemToStringLabel) {\n if (itemToStringLabel && item != null) {\n return itemToStringLabel(item) ?? '';\n }\n if (item && typeof item === 'object') {\n if ('label' in item && item.label != null) {\n return String(item.label);\n }\n if ('value' in item) {\n return String(item.value);\n }\n }\n return serializeValue(item);\n}\nexport function stringifyAsValue(item, itemToStringValue) {\n if (itemToStringValue && item != null) {\n return itemToStringValue(item) ?? '';\n }\n if (item && typeof item === 'object' && 'value' in item && 'label' in item) {\n return serializeValue(item.value);\n }\n return serializeValue(item);\n}\nexport function resolveSelectedLabel(value, items, itemToStringLabel) {\n function fallback() {\n return stringifyAsLabel(value, itemToStringLabel);\n }\n if (itemToStringLabel && value != null) {\n return itemToStringLabel(value);\n }\n\n // Custom object with explicit label takes precedence\n if (value && typeof value === 'object' && 'label' in value && value.label != null) {\n return value.label;\n }\n\n // Items provided as plain record map\n if (items && !Array.isArray(items)) {\n return items[value] ?? fallback();\n }\n\n // Items provided as array (flat or grouped)\n if (Array.isArray(items)) {\n const arrayItems = items;\n const flatItems = isGroupedItems(arrayItems) ? arrayItems.flatMap(group => group.items) : arrayItems;\n if (value == null || typeof value !== 'object') {\n const match = flatItems.find(item => item.value === value);\n if (match && match.label != null) {\n return match.label;\n }\n return fallback();\n }\n\n // Object without explicit label: try matching by its `value` property\n if ('value' in value) {\n const match = flatItems.find(item => item && item.value === value.value);\n if (match && match.label != null) {\n return match.label;\n }\n }\n }\n return fallback();\n}\nexport function resolveMultipleLabels(values, items, itemToStringLabel) {\n return values.reduce((acc, value, index) => {\n if (index > 0) {\n acc.push(', ');\n }\n acc.push(/*#__PURE__*/_jsx(React.Fragment, {\n children: resolveSelectedLabel(value, items, itemToStringLabel)\n }, index));\n return acc;\n }, []);\n}"],"names":["isGroupedItems","items","hasNullItemLabel","arrayItems","group","item","stringifyAsLabel","itemToStringLabel","serializeValue","stringifyAsValue","itemToStringValue","resolveSelectedLabel","value","fallback","flatItems","match","resolveMultipleLabels","values","acc","index","_jsx","React"],"mappings":";;;AAKO,SAASA,EAAeC,GAAO;AACpC,SAAOA,KAAS,QAAQA,EAAM,SAAS,KAAK,OAAOA,EAAM,CAAC,KAAM,YAAYA,EAAM,CAAC,KAAK,QAAQ,WAAWA,EAAM,CAAC;AACpH;AAKO,SAASC,EAAiBD,GAAO;AACtC,MAAI,CAAC,MAAM,QAAQA,CAAK;AACtB,WAAOA,KAAS,QAAQ,UAAUA;AAEpC,QAAME,IAAaF;AACnB,MAAID,EAAeG,CAAU,GAAG;AAC9B,eAAWC,KAASD;AAClB,iBAAWE,KAAQD,EAAM;AACvB,YAAIC,KAAQA,EAAK,SAAS,QAAQA,EAAK,SAAS;AAC9C,iBAAO;AAIb,WAAO;AAAA,EACT;AACA,aAAWA,KAAQF;AACjB,QAAIE,KAAQA,EAAK,SAAS,QAAQA,EAAK,SAAS;AAC9C,aAAO;AAGX,SAAO;AACT;AACO,SAASC,EAAiBD,GAAME,GAAmB;AACxD,MAAIA,KAAqBF,KAAQ;AAC/B,WAAOE,EAAkBF,CAAI,KAAK;AAEpC,MAAIA,KAAQ,OAAOA,KAAS,UAAU;AACpC,QAAI,WAAWA,KAAQA,EAAK,SAAS;AACnC,aAAO,OAAOA,EAAK,KAAK;AAE1B,QAAI,WAAWA;AACb,aAAO,OAAOA,EAAK,KAAK;AAAA,EAE5B;AACA,SAAOG,EAAeH,CAAI;AAC5B;AACO,SAASI,EAAiBJ,GAAMK,GAAmB;AACxD,SAAIA,KAAqBL,KAAQ,OACxBK,EAAkBL,CAAI,KAAK,KAEhCA,KAAQ,OAAOA,KAAS,YAAY,WAAWA,KAAQ,WAAWA,IAC7DG,EAAeH,EAAK,KAAK,IAE3BG,EAAeH,CAAI;AAC5B;AACO,SAASM,EAAqBC,GAAOX,GAAOM,GAAmB;AACpE,WAASM,IAAW;AAClB,WAAOP,EAAiBM,GAAOL,CAAiB;AAAA,EAClD;AACA,MAAIA,KAAqBK,KAAS;AAChC,WAAOL,EAAkBK,CAAK;AAIhC,MAAIA,KAAS,OAAOA,KAAU,YAAY,WAAWA,KAASA,EAAM,SAAS;AAC3E,WAAOA,EAAM;AAIf,MAAIX,KAAS,CAAC,MAAM,QAAQA,CAAK;AAC/B,WAAOA,EAAMW,CAAK,KAAKC,EAAQ;AAIjC,MAAI,MAAM,QAAQZ,CAAK,GAAG;AACxB,UAAME,IAAaF,GACba,IAAYd,EAAeG,CAAU,IAAIA,EAAW,QAAQ,CAAAC,MAASA,EAAM,KAAK,IAAID;AAC1F,QAAIS,KAAS,QAAQ,OAAOA,KAAU,UAAU;AAC9C,YAAMG,IAAQD,EAAU,KAAK,CAAAT,MAAQA,EAAK,UAAUO,CAAK;AACzD,aAAIG,KAASA,EAAM,SAAS,OACnBA,EAAM,QAERF,EAAQ;AAAA,IACjB;AAGA,QAAI,WAAWD,GAAO;AACpB,YAAMG,IAAQD,EAAU,KAAK,CAAAT,MAAQA,KAAQA,EAAK,UAAUO,EAAM,KAAK;AACvE,UAAIG,KAASA,EAAM,SAAS;AAC1B,eAAOA,EAAM;AAAA,IAEjB;AAAA,EACF;AACA,SAAOF,EAAQ;AACjB;AACO,SAASG,EAAsBC,GAAQhB,GAAOM,GAAmB;AACtE,SAAOU,EAAO,OAAO,CAACC,GAAKN,GAAOO,OAC5BA,IAAQ,KACVD,EAAI,KAAK,IAAI,GAEfA,EAAI,KAAkBE,gBAAAA,MAAKC,EAAM,UAAU;AAAA,IACzC,UAAUV,EAAqBC,GAAOX,GAAOM,CAAiB;AAAA,EACpE,GAAOY,CAAK,CAAC,GACFD,IACN,CAAA,CAAE;AACP;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index294.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/index295.js CHANGED
@@ -1,21 +1,48 @@
1
- const i = (n, r) => Object.is(n, r);
2
- function u(n, r, t) {
3
- return n == null || r == null ? Object.is(n, r) : t(n, r);
4
- }
5
- function e(n, r, t) {
6
- return !n || n.length === 0 ? !1 : n.some((f) => f === void 0 ? !1 : u(r, f, t));
7
- }
8
- function o(n, r, t) {
9
- return !n || n.length === 0 ? -1 : n.findIndex((f) => f === void 0 ? !1 : u(f, r, t));
10
- }
11
- function I(n, r, t) {
12
- return n.filter((f) => !u(r, f, t));
13
- }
1
+ import { compareItemEquality as s } from "./index298.js";
2
+ import { hasNullItemLabel as u, stringifyAsValue as a } from "./index297.js";
3
+ import { createSelector as r } from "./index353.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
+ };
14
45
  export {
15
- u as compareItemEquality,
16
- i as defaultItemEquality,
17
- o as findItemIndex,
18
- I as removeItem,
19
- e as selectedValueIncludes
46
+ d as selectors
20
47
  };
21
48
  //# sourceMappingURL=index295.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index295.js","sources":["../../../node_modules/@base-ui/react/esm/internals/itemEquality.js"],"sourcesContent":["export const defaultItemEquality = (itemValue, selectedValue) => Object.is(itemValue, selectedValue);\nexport function compareItemEquality(itemValue, selectedValue, comparer) {\n if (itemValue == null || selectedValue == null) {\n return Object.is(itemValue, selectedValue);\n }\n return comparer(itemValue, selectedValue);\n}\nexport function selectedValueIncludes(selectedValues, itemValue, comparer) {\n if (!selectedValues || selectedValues.length === 0) {\n return false;\n }\n return selectedValues.some(selectedValue => {\n if (selectedValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function findItemIndex(itemValues, selectedValue, comparer) {\n if (!itemValues || itemValues.length === 0) {\n return -1;\n }\n return itemValues.findIndex(itemValue => {\n if (itemValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function removeItem(selectedValues, itemValue, comparer) {\n return selectedValues.filter(selectedValue => !compareItemEquality(itemValue, selectedValue, comparer));\n}"],"names":["defaultItemEquality","itemValue","selectedValue","compareItemEquality","comparer","selectedValueIncludes","selectedValues","findItemIndex","itemValues","removeItem"],"mappings":"AAAY,MAACA,IAAsB,CAACC,GAAWC,MAAkB,OAAO,GAAGD,GAAWC,CAAa;AAC5F,SAASC,EAAoBF,GAAWC,GAAeE,GAAU;AACtE,SAAIH,KAAa,QAAQC,KAAiB,OACjC,OAAO,GAAGD,GAAWC,CAAa,IAEpCE,EAASH,GAAWC,CAAa;AAC1C;AACO,SAASG,EAAsBC,GAAgBL,GAAWG,GAAU;AACzE,SAAI,CAACE,KAAkBA,EAAe,WAAW,IACxC,KAEFA,EAAe,KAAK,CAAAJ,MACrBA,MAAkB,SACb,KAEFC,EAAoBF,GAAWC,GAAeE,CAAQ,CAC9D;AACH;AACO,SAASG,EAAcC,GAAYN,GAAeE,GAAU;AACjE,SAAI,CAACI,KAAcA,EAAW,WAAW,IAChC,KAEFA,EAAW,UAAU,CAAAP,MACtBA,MAAc,SACT,KAEFE,EAAoBF,GAAWC,GAAeE,CAAQ,CAC9D;AACH;AACO,SAASK,EAAWH,GAAgBL,GAAWG,GAAU;AAC9D,SAAOE,EAAe,OAAO,CAAAJ,MAAiB,CAACC,EAAoBF,GAAWC,GAAeE,CAAQ,CAAC;AACxG;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index295.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/index296.js CHANGED
@@ -1,15 +1,24 @@
1
- import * as c from "react";
2
- import { useIsoLayoutEffect as o } from "./index283.js";
3
- import { useStableCallback as f } from "./index284.js";
4
- function u(r, n) {
5
- const t = c.useRef(r), e = f(n);
6
- o(() => {
7
- t.current !== r && e(t.current);
8
- }, [r, e]), o(() => {
9
- t.current = r;
10
- }, [r]);
1
+ import * as e from "react";
2
+ import { NOOP as r } from "./index289.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);
11
19
  }
12
20
  export {
13
- u as useValueChanged
21
+ t as FormContext,
22
+ n as useFormContext
14
23
  };
15
24
  //# sourceMappingURL=index296.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index296.js","sources":["../../../node_modules/@base-ui/react/esm/internals/useValueChanged.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nexport function useValueChanged(value, onChange) {\n const valueRef = React.useRef(value);\n const onChangeCallback = useStableCallback(onChange);\n useIsoLayoutEffect(() => {\n if (valueRef.current === value) {\n return;\n }\n onChangeCallback(valueRef.current);\n }, [value, onChangeCallback]);\n useIsoLayoutEffect(() => {\n valueRef.current = value;\n }, [value]);\n}"],"names":["useValueChanged","value","onChange","valueRef","React","onChangeCallback","useStableCallback","useIsoLayoutEffect"],"mappings":";;;AAKO,SAASA,EAAgBC,GAAOC,GAAU;AAC/C,QAAMC,IAAWC,EAAM,OAAOH,CAAK,GAC7BI,IAAmBC,EAAkBJ,CAAQ;AACnD,EAAAK,EAAmB,MAAM;AACvB,IAAIJ,EAAS,YAAYF,KAGzBI,EAAiBF,EAAS,OAAO;AAAA,EACnC,GAAG,CAACF,GAAOI,CAAgB,CAAC,GAC5BE,EAAmB,MAAM;AACvB,IAAAJ,EAAS,UAAUF;AAAA,EACrB,GAAG,CAACA,CAAK,CAAC;AACZ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index296.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]}
package/dist/index297.js CHANGED
@@ -1,31 +1,74 @@
1
- import * as l from "react";
2
- import { useStableCallback as c } from "./index284.js";
3
- import { useEnhancedClickHandler as u } from "./index365.js";
4
- import { isIOS as m } from "./index323.js";
5
- import { useValueChanged as p } from "./index296.js";
6
- function C(e) {
7
- const [o, t] = l.useState(null), s = c((i, a) => {
8
- e || t(a || // On iOS Safari, the hitslop around touch targets means tapping outside an element's
9
- // bounds does not fire `pointerdown` but does fire `mousedown`. The `interactionType`
10
- // will be "" in that case.
11
- (m ? "touch" : ""));
12
- });
13
- p(e, (i) => {
14
- i && !e && t(null);
15
- });
16
- const {
17
- onClick: r,
18
- onPointerDown: n
19
- } = u(s);
20
- return l.useMemo(() => ({
21
- openMethod: o,
22
- triggerProps: {
23
- onClick: r,
24
- onPointerDown: n
1
+ import * as c from "react";
2
+ import { serializeValue as a } from "./index364.js";
3
+ import { j as i } from "./index30.js";
4
+ function s(r) {
5
+ return r != null && r.length > 0 && typeof r[0] == "object" && r[0] != null && "items" in r[0];
6
+ }
7
+ function A(r) {
8
+ if (!Array.isArray(r))
9
+ return r != null && "null" in r;
10
+ const n = r;
11
+ if (s(n)) {
12
+ for (const l of n)
13
+ for (const u of l.items)
14
+ if (u && u.value == null && u.label != null)
15
+ return !0;
16
+ return !1;
17
+ }
18
+ for (const l of n)
19
+ if (l && l.value == null && l.label != null)
20
+ return !0;
21
+ return !1;
22
+ }
23
+ function b(r, n) {
24
+ if (n && r != null)
25
+ return n(r) ?? "";
26
+ if (r && typeof r == "object") {
27
+ if ("label" in r && r.label != null)
28
+ return String(r.label);
29
+ if ("value" in r)
30
+ return String(r.value);
31
+ }
32
+ return a(r);
33
+ }
34
+ function h(r, n) {
35
+ return n && r != null ? n(r) ?? "" : r && typeof r == "object" && "value" in r && "label" in r ? a(r.value) : a(r);
36
+ }
37
+ function p(r, n, l) {
38
+ function u() {
39
+ return b(r, l);
40
+ }
41
+ if (l && r != null)
42
+ return l(r);
43
+ if (r && typeof r == "object" && "label" in r && r.label != null)
44
+ return r.label;
45
+ if (n && !Array.isArray(n))
46
+ return n[r] ?? u();
47
+ if (Array.isArray(n)) {
48
+ const e = n, t = s(e) ? e.flatMap((f) => f.items) : e;
49
+ if (r == null || typeof r != "object") {
50
+ const f = t.find((o) => o.value === r);
51
+ return f && f.label != null ? f.label : u();
52
+ }
53
+ if ("value" in r) {
54
+ const f = t.find((o) => o && o.value === r.value);
55
+ if (f && f.label != null)
56
+ return f.label;
25
57
  }
26
- }), [o, r, n]);
58
+ }
59
+ return u();
60
+ }
61
+ function d(r, n, l) {
62
+ return r.reduce((u, e, t) => (t > 0 && u.push(", "), u.push(/* @__PURE__ */ i.jsx(c.Fragment, {
63
+ children: p(e, n, l)
64
+ }, t)), u), []);
27
65
  }
28
66
  export {
29
- C as useOpenInteractionType
67
+ A as hasNullItemLabel,
68
+ s as isGroupedItems,
69
+ d as resolveMultipleLabels,
70
+ p as resolveSelectedLabel,
71
+ b as stringifyAsLabel,
72
+ h as stringifyAsValue
30
73
  };
31
74
  //# sourceMappingURL=index297.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index297.js","sources":["../../../node_modules/@base-ui/react/esm/utils/useOpenInteractionType.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useEnhancedClickHandler } from '@base-ui/utils/useEnhancedClickHandler';\nimport { isIOS } from '@base-ui/utils/detectBrowser';\nimport { useValueChanged } from \"../internals/useValueChanged.js\";\n\n/**\n * Determines the interaction type (keyboard, mouse, touch, etc.) that opened the component.\n *\n * @param open The open state of the component.\n */\nexport function useOpenInteractionType(open) {\n const [openMethod, setOpenMethod] = React.useState(null);\n const handleTriggerClick = useStableCallback((_, interactionType) => {\n if (!open) {\n setOpenMethod(interactionType || (\n // On iOS Safari, the hitslop around touch targets means tapping outside an element's\n // bounds does not fire `pointerdown` but does fire `mousedown`. The `interactionType`\n // will be \"\" in that case.\n isIOS ? 'touch' : ''));\n }\n });\n useValueChanged(open, previousOpen => {\n if (previousOpen && !open) {\n setOpenMethod(null);\n }\n });\n const {\n onClick,\n onPointerDown\n } = useEnhancedClickHandler(handleTriggerClick);\n return React.useMemo(() => ({\n openMethod,\n triggerProps: {\n onClick,\n onPointerDown\n }\n }), [openMethod, onClick, onPointerDown]);\n}"],"names":["useOpenInteractionType","open","openMethod","setOpenMethod","React","handleTriggerClick","useStableCallback","_","interactionType","isIOS","useValueChanged","previousOpen","onClick","onPointerDown","useEnhancedClickHandler"],"mappings":";;;;;AAaO,SAASA,EAAuBC,GAAM;AAC3C,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAM,SAAS,IAAI,GACjDC,IAAqBC,EAAkB,CAACC,GAAGC,MAAoB;AACnE,IAAKP,KACHE,EAAcK;AAAA;AAAA;AAAA,KAIdC,IAAQ,UAAU,GAAG;AAAA,EAEzB,CAAC;AACD,EAAAC,EAAgBT,GAAM,CAAAU,MAAgB;AACpC,IAAIA,KAAgB,CAACV,KACnBE,EAAc,IAAI;AAAA,EAEtB,CAAC;AACD,QAAM;AAAA,IACJ,SAAAS;AAAA,IACA,eAAAC;AAAA,EACJ,IAAMC,EAAwBT,CAAkB;AAC9C,SAAOD,EAAM,QAAQ,OAAO;AAAA,IAC1B,YAAAF;AAAA,IACA,cAAc;AAAA,MACZ,SAAAU;AAAA,MACA,eAAAC;AAAA,IACN;AAAA,EACA,IAAM,CAACX,GAAYU,GAASC,CAAa,CAAC;AAC1C;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index297.js","sources":["../../../node_modules/@base-ui/react/esm/internals/resolveValueLabel.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { serializeValue } from \"./serializeValue.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isGroupedItems(items) {\n return items != null && items.length > 0 && typeof items[0] === 'object' && items[0] != null && 'items' in items[0];\n}\n\n/**\n * Checks if the items array contains an item with a null value that has a non-null label.\n */\nexport function hasNullItemLabel(items) {\n if (!Array.isArray(items)) {\n return items != null && 'null' in items;\n }\n const arrayItems = items;\n if (isGroupedItems(arrayItems)) {\n for (const group of arrayItems) {\n for (const item of group.items) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n }\n return false;\n }\n for (const item of arrayItems) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n return false;\n}\nexport function stringifyAsLabel(item, itemToStringLabel) {\n if (itemToStringLabel && item != null) {\n return itemToStringLabel(item) ?? '';\n }\n if (item && typeof item === 'object') {\n if ('label' in item && item.label != null) {\n return String(item.label);\n }\n if ('value' in item) {\n return String(item.value);\n }\n }\n return serializeValue(item);\n}\nexport function stringifyAsValue(item, itemToStringValue) {\n if (itemToStringValue && item != null) {\n return itemToStringValue(item) ?? '';\n }\n if (item && typeof item === 'object' && 'value' in item && 'label' in item) {\n return serializeValue(item.value);\n }\n return serializeValue(item);\n}\nexport function resolveSelectedLabel(value, items, itemToStringLabel) {\n function fallback() {\n return stringifyAsLabel(value, itemToStringLabel);\n }\n if (itemToStringLabel && value != null) {\n return itemToStringLabel(value);\n }\n\n // Custom object with explicit label takes precedence\n if (value && typeof value === 'object' && 'label' in value && value.label != null) {\n return value.label;\n }\n\n // Items provided as plain record map\n if (items && !Array.isArray(items)) {\n return items[value] ?? fallback();\n }\n\n // Items provided as array (flat or grouped)\n if (Array.isArray(items)) {\n const arrayItems = items;\n const flatItems = isGroupedItems(arrayItems) ? arrayItems.flatMap(group => group.items) : arrayItems;\n if (value == null || typeof value !== 'object') {\n const match = flatItems.find(item => item.value === value);\n if (match && match.label != null) {\n return match.label;\n }\n return fallback();\n }\n\n // Object without explicit label: try matching by its `value` property\n if ('value' in value) {\n const match = flatItems.find(item => item && item.value === value.value);\n if (match && match.label != null) {\n return match.label;\n }\n }\n }\n return fallback();\n}\nexport function resolveMultipleLabels(values, items, itemToStringLabel) {\n return values.reduce((acc, value, index) => {\n if (index > 0) {\n acc.push(', ');\n }\n acc.push(/*#__PURE__*/_jsx(React.Fragment, {\n children: resolveSelectedLabel(value, items, itemToStringLabel)\n }, index));\n return acc;\n }, []);\n}"],"names":["isGroupedItems","items","hasNullItemLabel","arrayItems","group","item","stringifyAsLabel","itemToStringLabel","serializeValue","stringifyAsValue","itemToStringValue","resolveSelectedLabel","value","fallback","flatItems","match","resolveMultipleLabels","values","acc","index","_jsx","React"],"mappings":";;;AAKO,SAASA,EAAeC,GAAO;AACpC,SAAOA,KAAS,QAAQA,EAAM,SAAS,KAAK,OAAOA,EAAM,CAAC,KAAM,YAAYA,EAAM,CAAC,KAAK,QAAQ,WAAWA,EAAM,CAAC;AACpH;AAKO,SAASC,EAAiBD,GAAO;AACtC,MAAI,CAAC,MAAM,QAAQA,CAAK;AACtB,WAAOA,KAAS,QAAQ,UAAUA;AAEpC,QAAME,IAAaF;AACnB,MAAID,EAAeG,CAAU,GAAG;AAC9B,eAAWC,KAASD;AAClB,iBAAWE,KAAQD,EAAM;AACvB,YAAIC,KAAQA,EAAK,SAAS,QAAQA,EAAK,SAAS;AAC9C,iBAAO;AAIb,WAAO;AAAA,EACT;AACA,aAAWA,KAAQF;AACjB,QAAIE,KAAQA,EAAK,SAAS,QAAQA,EAAK,SAAS;AAC9C,aAAO;AAGX,SAAO;AACT;AACO,SAASC,EAAiBD,GAAME,GAAmB;AACxD,MAAIA,KAAqBF,KAAQ;AAC/B,WAAOE,EAAkBF,CAAI,KAAK;AAEpC,MAAIA,KAAQ,OAAOA,KAAS,UAAU;AACpC,QAAI,WAAWA,KAAQA,EAAK,SAAS;AACnC,aAAO,OAAOA,EAAK,KAAK;AAE1B,QAAI,WAAWA;AACb,aAAO,OAAOA,EAAK,KAAK;AAAA,EAE5B;AACA,SAAOG,EAAeH,CAAI;AAC5B;AACO,SAASI,EAAiBJ,GAAMK,GAAmB;AACxD,SAAIA,KAAqBL,KAAQ,OACxBK,EAAkBL,CAAI,KAAK,KAEhCA,KAAQ,OAAOA,KAAS,YAAY,WAAWA,KAAQ,WAAWA,IAC7DG,EAAeH,EAAK,KAAK,IAE3BG,EAAeH,CAAI;AAC5B;AACO,SAASM,EAAqBC,GAAOX,GAAOM,GAAmB;AACpE,WAASM,IAAW;AAClB,WAAOP,EAAiBM,GAAOL,CAAiB;AAAA,EAClD;AACA,MAAIA,KAAqBK,KAAS;AAChC,WAAOL,EAAkBK,CAAK;AAIhC,MAAIA,KAAS,OAAOA,KAAU,YAAY,WAAWA,KAASA,EAAM,SAAS;AAC3E,WAAOA,EAAM;AAIf,MAAIX,KAAS,CAAC,MAAM,QAAQA,CAAK;AAC/B,WAAOA,EAAMW,CAAK,KAAKC,EAAQ;AAIjC,MAAI,MAAM,QAAQZ,CAAK,GAAG;AACxB,UAAME,IAAaF,GACba,IAAYd,EAAeG,CAAU,IAAIA,EAAW,QAAQ,CAAAC,MAASA,EAAM,KAAK,IAAID;AAC1F,QAAIS,KAAS,QAAQ,OAAOA,KAAU,UAAU;AAC9C,YAAMG,IAAQD,EAAU,KAAK,CAAAT,MAAQA,EAAK,UAAUO,CAAK;AACzD,aAAIG,KAASA,EAAM,SAAS,OACnBA,EAAM,QAERF,EAAQ;AAAA,IACjB;AAGA,QAAI,WAAWD,GAAO;AACpB,YAAMG,IAAQD,EAAU,KAAK,CAAAT,MAAQA,KAAQA,EAAK,UAAUO,EAAM,KAAK;AACvE,UAAIG,KAASA,EAAM,SAAS;AAC1B,eAAOA,EAAM;AAAA,IAEjB;AAAA,EACF;AACA,SAAOF,EAAQ;AACjB;AACO,SAASG,EAAsBC,GAAQhB,GAAOM,GAAmB;AACtE,SAAOU,EAAO,OAAO,CAACC,GAAKN,GAAOO,OAC5BA,IAAQ,KACVD,EAAI,KAAK,IAAI,GAEfA,EAAI,KAAkBE,gBAAAA,MAAKC,EAAM,UAAU;AAAA,IACzC,UAAUV,EAAqBC,GAAOX,GAAOM,CAAiB;AAAA,EACpE,GAAOY,CAAK,CAAC,GACFD,IACN,CAAA,CAAE;AACP;","x_google_ignoreList":[0]}
package/dist/index298.js CHANGED
@@ -1,17 +1,21 @@
1
- import { clamp as s } from "./index328.js";
2
- const f = 1;
3
- function a(n, t) {
4
- return Math.max(0, n - t);
1
+ const i = (n, r) => Object.is(n, r);
2
+ function u(n, r, t) {
3
+ return n == null || r == null ? Object.is(n, r) : t(n, r);
5
4
  }
6
- function u(n, t) {
7
- if (t <= 0)
8
- return 0;
9
- const r = s(n, 0, t), e = r, c = t - r, o = e <= f, i = c <= f;
10
- return o && i ? e <= c ? 0 : t : o ? 0 : i ? t : r;
5
+ function e(n, r, t) {
6
+ return !n || n.length === 0 ? !1 : n.some((f) => f === void 0 ? !1 : u(r, f, t));
7
+ }
8
+ function o(n, r, t) {
9
+ return !n || n.length === 0 ? -1 : n.findIndex((f) => f === void 0 ? !1 : u(f, r, t));
10
+ }
11
+ function I(n, r, t) {
12
+ return n.filter((f) => !u(r, f, t));
11
13
  }
12
14
  export {
13
- f as SCROLL_EDGE_TOLERANCE_PX,
14
- a as getMaxScrollOffset,
15
- u as normalizeScrollOffset
15
+ u as compareItemEquality,
16
+ i as defaultItemEquality,
17
+ o as findItemIndex,
18
+ I as removeItem,
19
+ e as selectedValueIncludes
16
20
  };
17
21
  //# sourceMappingURL=index298.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index298.js","sources":["../../../node_modules/@base-ui/react/esm/utils/scrollEdges.js"],"sourcesContent":["import { clamp } from \"../internals/clamp.js\";\nexport const SCROLL_EDGE_TOLERANCE_PX = 1;\nexport function getMaxScrollOffset(scrollSize, clientSize) {\n return Math.max(0, scrollSize - clientSize);\n}\nexport function normalizeScrollOffset(value, max) {\n if (max <= 0) {\n return 0;\n }\n const clamped = clamp(value, 0, max);\n const startDistance = clamped;\n const endDistance = max - clamped;\n const withinStartTolerance = startDistance <= SCROLL_EDGE_TOLERANCE_PX;\n const withinEndTolerance = endDistance <= SCROLL_EDGE_TOLERANCE_PX;\n if (withinStartTolerance && withinEndTolerance) {\n return startDistance <= endDistance ? 0 : max;\n }\n if (withinStartTolerance) {\n return 0;\n }\n if (withinEndTolerance) {\n return max;\n }\n return clamped;\n}"],"names":["SCROLL_EDGE_TOLERANCE_PX","getMaxScrollOffset","scrollSize","clientSize","normalizeScrollOffset","value","max","clamped","clamp","startDistance","endDistance","withinStartTolerance","withinEndTolerance"],"mappings":";AACY,MAACA,IAA2B;AACjC,SAASC,EAAmBC,GAAYC,GAAY;AACzD,SAAO,KAAK,IAAI,GAAGD,IAAaC,CAAU;AAC5C;AACO,SAASC,EAAsBC,GAAOC,GAAK;AAChD,MAAIA,KAAO;AACT,WAAO;AAET,QAAMC,IAAUC,EAAMH,GAAO,GAAGC,CAAG,GAC7BG,IAAgBF,GAChBG,IAAcJ,IAAMC,GACpBI,IAAuBF,KAAiBT,GACxCY,IAAqBF,KAAeV;AAC1C,SAAIW,KAAwBC,IACnBH,KAAiBC,IAAc,IAAIJ,IAExCK,IACK,IAELC,IACKN,IAEFC;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index298.js","sources":["../../../node_modules/@base-ui/react/esm/internals/itemEquality.js"],"sourcesContent":["export const defaultItemEquality = (itemValue, selectedValue) => Object.is(itemValue, selectedValue);\nexport function compareItemEquality(itemValue, selectedValue, comparer) {\n if (itemValue == null || selectedValue == null) {\n return Object.is(itemValue, selectedValue);\n }\n return comparer(itemValue, selectedValue);\n}\nexport function selectedValueIncludes(selectedValues, itemValue, comparer) {\n if (!selectedValues || selectedValues.length === 0) {\n return false;\n }\n return selectedValues.some(selectedValue => {\n if (selectedValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function findItemIndex(itemValues, selectedValue, comparer) {\n if (!itemValues || itemValues.length === 0) {\n return -1;\n }\n return itemValues.findIndex(itemValue => {\n if (itemValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function removeItem(selectedValues, itemValue, comparer) {\n return selectedValues.filter(selectedValue => !compareItemEquality(itemValue, selectedValue, comparer));\n}"],"names":["defaultItemEquality","itemValue","selectedValue","compareItemEquality","comparer","selectedValueIncludes","selectedValues","findItemIndex","itemValues","removeItem"],"mappings":"AAAY,MAACA,IAAsB,CAACC,GAAWC,MAAkB,OAAO,GAAGD,GAAWC,CAAa;AAC5F,SAASC,EAAoBF,GAAWC,GAAeE,GAAU;AACtE,SAAIH,KAAa,QAAQC,KAAiB,OACjC,OAAO,GAAGD,GAAWC,CAAa,IAEpCE,EAASH,GAAWC,CAAa;AAC1C;AACO,SAASG,EAAsBC,GAAgBL,GAAWG,GAAU;AACzE,SAAI,CAACE,KAAkBA,EAAe,WAAW,IACxC,KAEFA,EAAe,KAAK,CAAAJ,MACrBA,MAAkB,SACb,KAEFC,EAAoBF,GAAWC,GAAeE,CAAQ,CAC9D;AACH;AACO,SAASG,EAAcC,GAAYN,GAAeE,GAAU;AACjE,SAAI,CAACI,KAAcA,EAAW,WAAW,IAChC,KAEFA,EAAW,UAAU,CAAAP,MACtBA,MAAc,SACT,KAEFE,EAAoBF,GAAWC,GAAeE,CAAQ,CAC9D;AACH;AACO,SAASK,EAAWH,GAAgBL,GAAWG,GAAU;AAC9D,SAAOE,EAAe,OAAO,CAAAJ,MAAiB,CAACC,EAAoBF,GAAWC,GAAeE,CAAQ,CAAC;AACxG;","x_google_ignoreList":[0]}
package/dist/index299.js CHANGED
@@ -1,22 +1,15 @@
1
1
  import * as c from "react";
2
- import { s as u } from "./index404.js";
3
- import { w as i } from "./index405.js";
4
- import { isReactVersionAtLeast as S } from "./index347.js";
5
- const a = S(19), m = a ? f : l;
6
- function g(t, e, r, n, o) {
7
- return m(t, e, r, n, o);
8
- }
9
- function p(t, e, r, n, o) {
10
- const s = c.useCallback(() => e(t.getSnapshot(), r, n, o), [t, e, r, n, o]);
11
- return u.useSyncExternalStore(t.subscribe, s, s);
12
- }
13
- function f(t, e, r, n, o) {
14
- return p(t, e, r, n, o);
15
- }
16
- function l(t, e, r, n, o) {
17
- return i.useSyncExternalStoreWithSelector(t.subscribe, t.getSnapshot, t.getSnapshot, (s) => e(s, r, n, o));
2
+ import { useIsoLayoutEffect as o } from "./index286.js";
3
+ import { useStableCallback as f } from "./index287.js";
4
+ function u(r, n) {
5
+ const t = c.useRef(r), e = f(n);
6
+ o(() => {
7
+ t.current !== r && e(t.current);
8
+ }, [r, e]), o(() => {
9
+ t.current = r;
10
+ }, [r]);
18
11
  }
19
12
  export {
20
- g as useStore
13
+ u as useValueChanged
21
14
  };
22
15
  //# sourceMappingURL=index299.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index299.js","sources":["../../../node_modules/@base-ui/utils/esm/store/useStore.js"],"sourcesContent":["import * as React from 'react';\n/* We need to import the shim because React 17 does not support the `useSyncExternalStore` API.\n * More info: https://github.com/mui/mui-x/issues/18303#issuecomment-2958392341 */\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { isReactVersionAtLeast } from \"../reactVersion.js\";\nimport { register, getInstance } from \"../fastHooks.js\";\n/* Some tests fail in R18 with the raw useSyncExternalStore. It may be possible to make it work\n * but for now we only enable it for R19+. */\nconst canUseRawUseSyncExternalStore = isReactVersionAtLeast(19);\nconst useStoreImplementation = canUseRawUseSyncExternalStore ? useStoreFast : useStoreLegacy;\nexport function useStore(store, selector, a1, a2, a3) {\n return useStoreImplementation(store, selector, a1, a2, a3);\n}\nfunction useStoreR19(store, selector, a1, a2, a3) {\n const getSelection = React.useCallback(() => selector(store.getSnapshot(), a1, a2, a3), [store, selector, a1, a2, a3]);\n return useSyncExternalStore(store.subscribe, getSelection, getSelection);\n}\nregister({\n before(instance) {\n instance.syncIndex = 0;\n if (!instance.didInitialize) {\n instance.syncTick = 1;\n instance.syncHooks = [];\n instance.didChangeStore = true;\n instance.getSnapshot = () => {\n let didChange = false;\n for (let i = 0; i < instance.syncHooks.length; i += 1) {\n const hook = instance.syncHooks[i];\n const value = hook.selector(hook.store.state, hook.a1, hook.a2, hook.a3);\n if (hook.didChange || !Object.is(hook.value, value)) {\n didChange = true;\n hook.value = value;\n hook.didChange = false;\n }\n }\n if (didChange) {\n instance.syncTick += 1;\n }\n return instance.syncTick;\n };\n }\n },\n after(instance) {\n if (instance.syncHooks.length > 0) {\n if (instance.didChangeStore) {\n instance.didChangeStore = false;\n instance.subscribe = onStoreChange => {\n const stores = new Set();\n for (const hook of instance.syncHooks) {\n stores.add(hook.store);\n }\n const unsubscribes = [];\n for (const store of stores) {\n unsubscribes.push(store.subscribe(onStoreChange));\n }\n return () => {\n for (const unsubscribe of unsubscribes) {\n unsubscribe();\n }\n };\n };\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useSyncExternalStore(instance.subscribe, instance.getSnapshot, instance.getSnapshot);\n }\n }\n});\nfunction useStoreFast(store, selector, a1, a2, a3) {\n const instance = getInstance();\n if (!instance) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStoreR19(store, selector, a1, a2, a3);\n }\n const index = instance.syncIndex;\n instance.syncIndex += 1;\n let hook;\n if (!instance.didInitialize) {\n hook = {\n store,\n selector,\n a1,\n a2,\n a3,\n value: selector(store.getSnapshot(), a1, a2, a3),\n didChange: false\n };\n instance.syncHooks.push(hook);\n } else {\n hook = instance.syncHooks[index];\n if (hook.store !== store || hook.selector !== selector || !Object.is(hook.a1, a1) || !Object.is(hook.a2, a2) || !Object.is(hook.a3, a3)) {\n if (hook.store !== store) {\n instance.didChangeStore = true;\n }\n hook.store = store;\n hook.selector = selector;\n hook.a1 = a1;\n hook.a2 = a2;\n hook.a3 = a3;\n hook.didChange = true;\n }\n }\n return hook.value;\n}\nfunction useStoreLegacy(store, selector, a1, a2, a3) {\n return useSyncExternalStoreWithSelector(store.subscribe, store.getSnapshot, store.getSnapshot, state => selector(state, a1, a2, a3));\n}"],"names":["canUseRawUseSyncExternalStore","isReactVersionAtLeast","useStoreImplementation","useStoreFast","useStoreLegacy","useStore","store","selector","a1","a2","a3","useStoreR19","getSelection","React","useSyncExternalStore","useSyncExternalStoreWithSelector","state"],"mappings":";;;;AASA,MAAMA,IAAgCC,EAAsB,EAAE,GACxDC,IAAyBF,IAAgCG,IAAeC;AACvE,SAASC,EAASC,GAAOC,GAAUC,GAAIC,GAAIC,GAAI;AACpD,SAAOR,EAAuBI,GAAOC,GAAUC,GAAIC,GAAIC,CAAE;AAC3D;AACA,SAASC,EAAYL,GAAOC,GAAUC,GAAIC,GAAIC,GAAI;AAChD,QAAME,IAAeC,EAAM,YAAY,MAAMN,EAASD,EAAM,eAAeE,GAAIC,GAAIC,CAAE,GAAG,CAACJ,GAAOC,GAAUC,GAAIC,GAAIC,CAAE,CAAC;AACrH,SAAOI,EAAAA,qBAAqBR,EAAM,WAAWM,GAAcA,CAAY;AACzE;AAmDA,SAAST,EAAaG,GAAOC,GAAUC,GAAIC,GAAIC,GAAI;AAI/C,SAAOC,EAAYL,GAAOC,GAAUC,GAAIC,GAAIC,CAAE;AA+BlD;AACA,SAASN,EAAeE,GAAOC,GAAUC,GAAIC,GAAIC,GAAI;AACnD,SAAOK,EAAAA,iCAAiCT,EAAM,WAAWA,EAAM,aAAaA,EAAM,aAAa,CAAAU,MAAST,EAASS,GAAOR,GAAIC,GAAIC,CAAE,CAAC;AACrI;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index299.js","sources":["../../../node_modules/@base-ui/react/esm/internals/useValueChanged.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nexport function useValueChanged(value, onChange) {\n const valueRef = React.useRef(value);\n const onChangeCallback = useStableCallback(onChange);\n useIsoLayoutEffect(() => {\n if (valueRef.current === value) {\n return;\n }\n onChangeCallback(valueRef.current);\n }, [value, onChangeCallback]);\n useIsoLayoutEffect(() => {\n valueRef.current = value;\n }, [value]);\n}"],"names":["useValueChanged","value","onChange","valueRef","React","onChangeCallback","useStableCallback","useIsoLayoutEffect"],"mappings":";;;AAKO,SAASA,EAAgBC,GAAOC,GAAU;AAC/C,QAAMC,IAAWC,EAAM,OAAOH,CAAK,GAC7BI,IAAmBC,EAAkBJ,CAAQ;AACnD,EAAAK,EAAmB,MAAM;AACvB,IAAIJ,EAAS,YAAYF,KAGzBI,EAAiBF,EAAS,OAAO;AAAA,EACnC,GAAG,CAACF,GAAOI,CAAgB,CAAC,GAC5BE,EAAmB,MAAM;AACvB,IAAAJ,EAAS,UAAUF;AAAA,EACrB,GAAG,CAACA,CAAK,CAAC;AACZ;","x_google_ignoreList":[0]}