ivt 0.3.3 → 0.3.4

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 (257) hide show
  1. package/dist/accordion/index.mjs +19 -1
  2. package/dist/accordion/index.mjs.map +1 -1
  3. package/dist/alert/index.mjs +43 -1
  4. package/dist/alert/index.mjs.map +1 -1
  5. package/dist/alert-dialog/index.mjs +260 -1
  6. package/dist/alert-dialog/index.mjs.map +1 -1
  7. package/dist/avatar/index.mjs +164 -1
  8. package/dist/avatar/index.mjs.map +1 -1
  9. package/dist/badge/index.mjs +6 -1
  10. package/dist/badge/index.mjs.map +1 -1
  11. package/dist/base/index.mjs +760 -1
  12. package/dist/base/index.mjs.map +1 -1
  13. package/dist/button/index.mjs +6 -1
  14. package/dist/button/index.mjs.map +1 -1
  15. package/dist/calendar/index.mjs +11 -1
  16. package/dist/calendar/index.mjs.map +1 -1
  17. package/dist/card/index.mjs +55 -1
  18. package/dist/card/index.mjs.map +1 -1
  19. package/dist/chart/index.mjs +17042 -1
  20. package/dist/chart/index.mjs.map +1 -1
  21. package/dist/checkbox/index.mjs +223 -1
  22. package/dist/checkbox/index.mjs.map +1 -1
  23. package/dist/chunks/_commonjsHelpers-DqEvkrE1.mjs +6 -0
  24. package/dist/chunks/_commonjsHelpers-DqEvkrE1.mjs.map +1 -0
  25. package/dist/chunks/accordion-BMP2PSSC.mjs +455 -0
  26. package/dist/chunks/{accordion-CdshDFZC.mjs.map → accordion-BMP2PSSC.mjs.map} +1 -1
  27. package/dist/chunks/badge-DxuZhgBF.mjs +57 -0
  28. package/dist/chunks/{badge-BYqshEmA.mjs.map → badge-DxuZhgBF.mjs.map} +1 -1
  29. package/dist/chunks/bundle-mjs-tFg__FnT.mjs +4491 -0
  30. package/dist/chunks/{bundle-mjs-9BXytT_r.mjs.map → bundle-mjs-tFg__FnT.mjs.map} +1 -1
  31. package/dist/chunks/button-CX0htulo.mjs +47 -0
  32. package/dist/chunks/{button-DrFZXJ7z.mjs.map → button-CX0htulo.mjs.map} +1 -1
  33. package/dist/chunks/calendar-B4IV5RyM.mjs +7106 -0
  34. package/dist/chunks/calendar-B4IV5RyM.mjs.map +1 -0
  35. package/dist/chunks/check-B7209s3e.mjs +15 -0
  36. package/dist/chunks/{check-CimnOyD7.mjs.map → check-B7209s3e.mjs.map} +1 -1
  37. package/dist/chunks/chevron-down-D84DRJBv.mjs +15 -0
  38. package/dist/chunks/{chevron-down-D3fvbjxE.mjs.map → chevron-down-D84DRJBv.mjs.map} +1 -1
  39. package/dist/chunks/chevron-left-DtL1t1DJ.mjs +15 -0
  40. package/dist/chunks/{chevron-left-CrN7DlXg.mjs.map → chevron-left-DtL1t1DJ.mjs.map} +1 -1
  41. package/dist/chunks/chevron-right-Cdxg1JSQ.mjs +15 -0
  42. package/dist/chunks/{chevron-right-BMSCuDGK.mjs.map → chevron-right-Cdxg1JSQ.mjs.map} +1 -1
  43. package/dist/chunks/chevrons-up-down-DtBUG1i8.mjs +22 -0
  44. package/dist/chunks/{chevrons-up-down-DBgvRkZm.mjs.map → chevrons-up-down-DtBUG1i8.mjs.map} +1 -1
  45. package/dist/chunks/circle-BLWMZ9yp.mjs +17 -0
  46. package/dist/chunks/{circle-CGqt18Bd.mjs.map → circle-BLWMZ9yp.mjs.map} +1 -1
  47. package/dist/chunks/command-C8cVzg-x.mjs +611 -0
  48. package/dist/chunks/command-C8cVzg-x.mjs.map +1 -0
  49. package/dist/chunks/createLucideIcon-Ba0IWqsz.mjs +60 -0
  50. package/dist/chunks/{createLucideIcon-L-tld2uc.mjs.map → createLucideIcon-Ba0IWqsz.mjs.map} +1 -1
  51. package/dist/chunks/dialog-D9vbxUuQ.mjs +80 -0
  52. package/dist/chunks/{dialog-36eqHzT3.mjs.map → dialog-D9vbxUuQ.mjs.map} +1 -1
  53. package/dist/chunks/hover-card-idvDPXrI.mjs +274 -0
  54. package/dist/chunks/{hover-card-Cnd58du6.mjs.map → hover-card-idvDPXrI.mjs.map} +1 -1
  55. package/dist/chunks/index-6JUj2Tld.mjs +18 -0
  56. package/dist/chunks/{index-CRxQlsb9.mjs.map → index-6JUj2Tld.mjs.map} +1 -1
  57. package/dist/chunks/index-B0IElWB4.mjs +51 -0
  58. package/dist/chunks/{index-vmPXTidH.mjs.map → index-B0IElWB4.mjs.map} +1 -1
  59. package/dist/chunks/index-B4VRyyD1.mjs +40 -0
  60. package/dist/chunks/index-B4VRyyD1.mjs.map +1 -0
  61. package/dist/chunks/index-BE-_q4IW.mjs +266 -0
  62. package/dist/chunks/index-BE-_q4IW.mjs.map +1 -0
  63. package/dist/chunks/index-BNxaLFA6.mjs +216 -0
  64. package/dist/chunks/{index-LvOFIVGz.mjs.map → index-BNxaLFA6.mjs.map} +1 -1
  65. package/dist/chunks/index-BZUrHhU8.mjs +7 -0
  66. package/dist/chunks/{index-CLtWFQL5.mjs.map → index-BZUrHhU8.mjs.map} +1 -1
  67. package/dist/chunks/index-B_FsTtnF.mjs +110 -0
  68. package/dist/chunks/{index-CCcl327A.mjs.map → index-B_FsTtnF.mjs.map} +1 -1
  69. package/dist/chunks/index-CAg47KJ6.mjs +13 -0
  70. package/dist/chunks/{index-CXszXOf_.mjs.map → index-CAg47KJ6.mjs.map} +1 -1
  71. package/dist/chunks/index-CXuEm8w1.mjs +12 -0
  72. package/dist/chunks/{index-CU_y1XAz.mjs.map → index-CXuEm8w1.mjs.map} +1 -1
  73. package/dist/chunks/index-C_jFwfR_.mjs +77 -0
  74. package/dist/chunks/{index-CybgQKpz.mjs.map → index-C_jFwfR_.mjs.map} +1 -1
  75. package/dist/chunks/index-CglX-DNW.mjs +21 -0
  76. package/dist/chunks/index-CglX-DNW.mjs.map +1 -0
  77. package/dist/chunks/index-CyMuypYR.mjs +324 -0
  78. package/dist/chunks/{index-DUNcuWJE.mjs.map → index-CyMuypYR.mjs.map} +1 -1
  79. package/dist/chunks/index-D0S6rRRE.mjs +50 -0
  80. package/dist/chunks/{index-w9bxia3O.mjs.map → index-D0S6rRRE.mjs.map} +1 -1
  81. package/dist/chunks/index-D23BhVQG.mjs +859 -0
  82. package/dist/chunks/{index-DZHMFdr0.mjs.map → index-D23BhVQG.mjs.map} +1 -1
  83. package/dist/chunks/index-D2wfJaZh.mjs +145 -0
  84. package/dist/chunks/index-D2wfJaZh.mjs.map +1 -0
  85. package/dist/chunks/index-DNvm9MP3.mjs +34 -0
  86. package/dist/chunks/{index-D2sZp5OP.mjs.map → index-DNvm9MP3.mjs.map} +1 -1
  87. package/dist/chunks/index-Dm4_czlz.mjs +12 -0
  88. package/dist/chunks/index-Dm4_czlz.mjs.map +1 -0
  89. package/dist/chunks/index-PaJVyocC.mjs +151 -0
  90. package/dist/chunks/index-PaJVyocC.mjs.map +1 -0
  91. package/dist/chunks/index-kr6_v_F8.mjs +2370 -0
  92. package/dist/chunks/index-kr6_v_F8.mjs.map +1 -0
  93. package/dist/chunks/index-sz_BcBbA.mjs +1210 -0
  94. package/dist/chunks/index-sz_BcBbA.mjs.map +1 -0
  95. package/dist/chunks/input-DK1slFF1.mjs +14 -0
  96. package/dist/chunks/{input-85UFztMJ.mjs.map → input-DK1slFF1.mjs.map} +1 -1
  97. package/dist/chunks/label-D7ONQdHc.mjs +32 -0
  98. package/dist/chunks/{label-CICFzZIt.mjs.map → label-D7ONQdHc.mjs.map} +1 -1
  99. package/dist/chunks/pagination-BM_IQ6Qk.mjs +106 -0
  100. package/dist/chunks/{pagination-CReDQes6.mjs.map → pagination-BM_IQ6Qk.mjs.map} +1 -1
  101. package/dist/chunks/popover-D3F326FR.mjs +308 -0
  102. package/dist/chunks/{popover-Cn2ZTvKd.mjs.map → popover-D3F326FR.mjs.map} +1 -1
  103. package/dist/chunks/progress-BCl5yD5Q.mjs +99 -0
  104. package/dist/chunks/{progress-CSxQH6-f.mjs.map → progress-BCl5yD5Q.mjs.map} +1 -1
  105. package/dist/chunks/scroll-area-DB3eUx8V.mjs +791 -0
  106. package/dist/chunks/scroll-area-DB3eUx8V.mjs.map +1 -0
  107. package/dist/chunks/select-Cw81y8pT.mjs +104 -0
  108. package/dist/chunks/{select-BR6_N_Yo.mjs.map → select-Cw81y8pT.mjs.map} +1 -1
  109. package/dist/chunks/separator-2k1C7RSn.mjs +48 -0
  110. package/dist/chunks/{separator-BB6-E9Z1.mjs.map → separator-2k1C7RSn.mjs.map} +1 -1
  111. package/dist/chunks/skeleton-qx8-vr62.mjs +13 -0
  112. package/dist/chunks/{skeleton-XPWWiaac.mjs.map → skeleton-qx8-vr62.mjs.map} +1 -1
  113. package/dist/chunks/sortable-D8ayoe_b.mjs +4221 -0
  114. package/dist/chunks/sortable-D8ayoe_b.mjs.map +1 -0
  115. package/dist/chunks/table-BDNUhtz-.mjs +62 -0
  116. package/dist/chunks/{table-LQIHzPHi.mjs.map → table-BDNUhtz-.mjs.map} +1 -1
  117. package/dist/chunks/toggle-CE2ycSdL.mjs +65 -0
  118. package/dist/chunks/{toggle-Co72WXGd.mjs.map → toggle-CE2ycSdL.mjs.map} +1 -1
  119. package/dist/chunks/tooltip-DLD0ycR4.mjs +596 -0
  120. package/dist/chunks/{tooltip-qX2HjdJP.mjs.map → tooltip-DLD0ycR4.mjs.map} +1 -1
  121. package/dist/chunks/tslib.es6-BgHLrbno.mjs +61 -0
  122. package/dist/chunks/{tslib.es6-cMGqxriw.mjs.map → tslib.es6-BgHLrbno.mjs.map} +1 -1
  123. package/dist/chunks/utils-BUelq9Ro.mjs +42 -0
  124. package/dist/chunks/utils-BUelq9Ro.mjs.map +1 -0
  125. package/dist/chunks/x-Bjz0Vo6R.mjs +22 -0
  126. package/dist/chunks/{x-BNLl0E-E.mjs.map → x-Bjz0Vo6R.mjs.map} +1 -1
  127. package/dist/combobox/index.mjs +65 -1
  128. package/dist/combobox/index.mjs.map +1 -1
  129. package/dist/command/index.mjs +23 -1
  130. package/dist/command/index.mjs.map +1 -1
  131. package/dist/data-table/index.mjs +673 -1
  132. package/dist/data-table/index.mjs.map +1 -1
  133. package/dist/dialog/index.mjs +22 -1
  134. package/dist/dialog/index.mjs.map +1 -1
  135. package/dist/dropdown-menu/index.mjs +438 -1
  136. package/dist/dropdown-menu/index.mjs.map +1 -1
  137. package/dist/dropzone/index.mjs +7839 -1
  138. package/dist/dropzone/index.mjs.map +1 -1
  139. package/dist/form/index.mjs +649 -1
  140. package/dist/form/index.mjs.map +1 -1
  141. package/dist/hover-card/index.mjs +18 -1
  142. package/dist/hover-card/index.mjs.map +1 -1
  143. package/dist/icon/index.mjs +317 -1
  144. package/dist/icon/index.mjs.map +1 -1
  145. package/dist/index.css +1 -1
  146. package/dist/input/index.mjs +4 -1
  147. package/dist/input/index.mjs.map +1 -1
  148. package/dist/ivt.css +1 -1
  149. package/dist/label/index.mjs +8 -1
  150. package/dist/label/index.mjs.map +1 -1
  151. package/dist/menubar/index.mjs +583 -1
  152. package/dist/menubar/index.mjs.map +1 -1
  153. package/dist/multi-select/index.mjs +297 -1
  154. package/dist/multi-select/index.mjs.map +1 -1
  155. package/dist/pagination/index.mjs +10 -1
  156. package/dist/pagination/index.mjs.map +1 -1
  157. package/dist/popover/index.mjs +21 -1
  158. package/dist/popover/index.mjs.map +1 -1
  159. package/dist/progress/index.mjs +9 -1
  160. package/dist/progress/index.mjs.map +1 -1
  161. package/dist/radio-group/index.mjs +267 -1
  162. package/dist/radio-group/index.mjs.map +1 -1
  163. package/dist/scroll-area/index.mjs +15 -1
  164. package/dist/scroll-area/index.mjs.map +1 -1
  165. package/dist/select/index.mjs +8 -1
  166. package/dist/select/index.mjs.map +1 -1
  167. package/dist/separator/index.mjs +8 -1
  168. package/dist/separator/index.mjs.map +1 -1
  169. package/dist/sheet/index.mjs +96 -1
  170. package/dist/sheet/index.mjs.map +1 -1
  171. package/dist/skeleton/index.mjs +4 -1
  172. package/dist/skeleton/index.mjs.map +1 -1
  173. package/dist/sonner/index.mjs +1140 -1
  174. package/dist/sonner/index.mjs.map +1 -1
  175. package/dist/sortable/index.mjs +8 -1
  176. package/dist/sortable/index.mjs.map +1 -1
  177. package/dist/table/index.mjs +4 -1
  178. package/dist/table/index.mjs.map +1 -1
  179. package/dist/tabs/index.mjs +193 -1
  180. package/dist/tabs/index.mjs.map +1 -1
  181. package/dist/textarea/index.mjs +13 -1
  182. package/dist/textarea/index.mjs.map +1 -1
  183. package/dist/toast/index.mjs +705 -1
  184. package/dist/toast/index.mjs.map +1 -1
  185. package/dist/toggle/index.mjs +12 -1
  186. package/dist/toggle/index.mjs.map +1 -1
  187. package/dist/toggle-group/index.mjs +219 -1
  188. package/dist/toggle-group/index.mjs.map +1 -1
  189. package/dist/tooltip/index.mjs +20 -1
  190. package/dist/tooltip/index.mjs.map +1 -1
  191. package/package.json +2 -2
  192. package/dist/chunks/_commonjsHelpers-6qLFzZa5.mjs +0 -2
  193. package/dist/chunks/_commonjsHelpers-6qLFzZa5.mjs.map +0 -1
  194. package/dist/chunks/accordion-CdshDFZC.mjs +0 -2
  195. package/dist/chunks/badge-BYqshEmA.mjs +0 -2
  196. package/dist/chunks/bundle-mjs-9BXytT_r.mjs +0 -2
  197. package/dist/chunks/button-DrFZXJ7z.mjs +0 -2
  198. package/dist/chunks/calendar-BY6t8wdJ.mjs +0 -2
  199. package/dist/chunks/calendar-BY6t8wdJ.mjs.map +0 -1
  200. package/dist/chunks/check-CimnOyD7.mjs +0 -2
  201. package/dist/chunks/chevron-down-D3fvbjxE.mjs +0 -2
  202. package/dist/chunks/chevron-left-CrN7DlXg.mjs +0 -2
  203. package/dist/chunks/chevron-right-BMSCuDGK.mjs +0 -2
  204. package/dist/chunks/chevrons-up-down-DBgvRkZm.mjs +0 -2
  205. package/dist/chunks/circle-CGqt18Bd.mjs +0 -2
  206. package/dist/chunks/command-C6ON-ciq.mjs +0 -2
  207. package/dist/chunks/command-C6ON-ciq.mjs.map +0 -1
  208. package/dist/chunks/createLucideIcon-L-tld2uc.mjs +0 -2
  209. package/dist/chunks/dialog-36eqHzT3.mjs +0 -2
  210. package/dist/chunks/hover-card-Cnd58du6.mjs +0 -2
  211. package/dist/chunks/index-B4QsDzeM.mjs +0 -2
  212. package/dist/chunks/index-B4QsDzeM.mjs.map +0 -1
  213. package/dist/chunks/index-BdpYc58_.mjs +0 -2
  214. package/dist/chunks/index-BdpYc58_.mjs.map +0 -1
  215. package/dist/chunks/index-CCcl327A.mjs +0 -2
  216. package/dist/chunks/index-CLtWFQL5.mjs +0 -2
  217. package/dist/chunks/index-COvW87ew.mjs +0 -2
  218. package/dist/chunks/index-COvW87ew.mjs.map +0 -1
  219. package/dist/chunks/index-CRxQlsb9.mjs +0 -2
  220. package/dist/chunks/index-CU_y1XAz.mjs +0 -2
  221. package/dist/chunks/index-CXszXOf_.mjs +0 -2
  222. package/dist/chunks/index-CdJCOoFA.mjs +0 -2
  223. package/dist/chunks/index-CdJCOoFA.mjs.map +0 -1
  224. package/dist/chunks/index-Cpq7N5Ej.mjs +0 -2
  225. package/dist/chunks/index-Cpq7N5Ej.mjs.map +0 -1
  226. package/dist/chunks/index-CybgQKpz.mjs +0 -2
  227. package/dist/chunks/index-D2sZp5OP.mjs +0 -2
  228. package/dist/chunks/index-DOyt-JEx.mjs +0 -2
  229. package/dist/chunks/index-DOyt-JEx.mjs.map +0 -1
  230. package/dist/chunks/index-DUNcuWJE.mjs +0 -2
  231. package/dist/chunks/index-DZHMFdr0.mjs +0 -2
  232. package/dist/chunks/index-LvOFIVGz.mjs +0 -2
  233. package/dist/chunks/index-lvPXnk5F.mjs +0 -2
  234. package/dist/chunks/index-lvPXnk5F.mjs.map +0 -1
  235. package/dist/chunks/index-vmPXTidH.mjs +0 -2
  236. package/dist/chunks/index-w9bxia3O.mjs +0 -2
  237. package/dist/chunks/index-xew3kygQ.mjs +0 -2
  238. package/dist/chunks/index-xew3kygQ.mjs.map +0 -1
  239. package/dist/chunks/input-85UFztMJ.mjs +0 -2
  240. package/dist/chunks/label-CICFzZIt.mjs +0 -2
  241. package/dist/chunks/pagination-CReDQes6.mjs +0 -2
  242. package/dist/chunks/popover-Cn2ZTvKd.mjs +0 -2
  243. package/dist/chunks/progress-CSxQH6-f.mjs +0 -2
  244. package/dist/chunks/scroll-area-CvCz7cL_.mjs +0 -2
  245. package/dist/chunks/scroll-area-CvCz7cL_.mjs.map +0 -1
  246. package/dist/chunks/select-BR6_N_Yo.mjs +0 -2
  247. package/dist/chunks/separator-BB6-E9Z1.mjs +0 -2
  248. package/dist/chunks/skeleton-XPWWiaac.mjs +0 -2
  249. package/dist/chunks/sortable-CqPFGn8Q.mjs +0 -2
  250. package/dist/chunks/sortable-CqPFGn8Q.mjs.map +0 -1
  251. package/dist/chunks/table-LQIHzPHi.mjs +0 -2
  252. package/dist/chunks/toggle-Co72WXGd.mjs +0 -2
  253. package/dist/chunks/tooltip-qX2HjdJP.mjs +0 -2
  254. package/dist/chunks/tslib.es6-cMGqxriw.mjs +0 -2
  255. package/dist/chunks/utils-BctauAA9.mjs +0 -2
  256. package/dist/chunks/utils-BctauAA9.mjs.map +0 -1
  257. package/dist/chunks/x-BNLl0E-E.mjs +0 -2
@@ -0,0 +1,216 @@
1
+ import * as React from 'react';
2
+ import { c as composeEventHandlers } from './index-Dm4_czlz.mjs';
3
+ import { createCollection } from '@radix-ui/react-collection';
4
+ import { u as useComposedRefs } from './index-B4VRyyD1.mjs';
5
+ import { c as createContextScope } from './index-B_FsTtnF.mjs';
6
+ import { u as useId } from './index-6JUj2Tld.mjs';
7
+ import { P as Primitive } from './index-D0S6rRRE.mjs';
8
+ import { u as useCallbackRef } from './index-CAg47KJ6.mjs';
9
+ import { u as useControllableState } from './index-C_jFwfR_.mjs';
10
+ import { u as useDirection } from './index-CXuEm8w1.mjs';
11
+ import { jsx } from 'react/jsx-runtime';
12
+
13
+ var ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus";
14
+ var EVENT_OPTIONS = {
15
+ bubbles: false,
16
+ cancelable: true
17
+ };
18
+ var GROUP_NAME = "RovingFocusGroup";
19
+ var [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);
20
+ var [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(GROUP_NAME, [
21
+ createCollectionScope
22
+ ]);
23
+ var [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);
24
+ var RovingFocusGroup = React.forwardRef((props, forwardedRef)=>{
25
+ return /* @__PURE__ */ jsx(Collection.Provider, {
26
+ scope: props.__scopeRovingFocusGroup,
27
+ children: /* @__PURE__ */ jsx(Collection.Slot, {
28
+ scope: props.__scopeRovingFocusGroup,
29
+ children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, {
30
+ ...props,
31
+ ref: forwardedRef
32
+ })
33
+ })
34
+ });
35
+ });
36
+ RovingFocusGroup.displayName = GROUP_NAME;
37
+ var RovingFocusGroupImpl = React.forwardRef((props, forwardedRef)=>{
38
+ const { __scopeRovingFocusGroup, orientation, loop = false, dir, currentTabStopId: currentTabStopIdProp, defaultCurrentTabStopId, onCurrentTabStopIdChange, onEntryFocus, preventScrollOnEntryFocus = false, ...groupProps } = props;
39
+ const ref = React.useRef(null);
40
+ const composedRefs = useComposedRefs(forwardedRef, ref);
41
+ const direction = useDirection(dir);
42
+ const [currentTabStopId, setCurrentTabStopId] = useControllableState({
43
+ prop: currentTabStopIdProp,
44
+ defaultProp: defaultCurrentTabStopId ?? null,
45
+ onChange: onCurrentTabStopIdChange,
46
+ caller: GROUP_NAME
47
+ });
48
+ const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);
49
+ const handleEntryFocus = useCallbackRef(onEntryFocus);
50
+ const getItems = useCollection(__scopeRovingFocusGroup);
51
+ const isClickFocusRef = React.useRef(false);
52
+ const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);
53
+ React.useEffect(()=>{
54
+ const node = ref.current;
55
+ if (node) {
56
+ node.addEventListener(ENTRY_FOCUS, handleEntryFocus);
57
+ return ()=>node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);
58
+ }
59
+ }, [
60
+ handleEntryFocus
61
+ ]);
62
+ return /* @__PURE__ */ jsx(RovingFocusProvider, {
63
+ scope: __scopeRovingFocusGroup,
64
+ orientation,
65
+ dir: direction,
66
+ loop,
67
+ currentTabStopId,
68
+ onItemFocus: React.useCallback((tabStopId)=>setCurrentTabStopId(tabStopId), [
69
+ setCurrentTabStopId
70
+ ]),
71
+ onItemShiftTab: React.useCallback(()=>setIsTabbingBackOut(true), []),
72
+ onFocusableItemAdd: React.useCallback(()=>setFocusableItemsCount((prevCount)=>prevCount + 1), []),
73
+ onFocusableItemRemove: React.useCallback(()=>setFocusableItemsCount((prevCount)=>prevCount - 1), []),
74
+ children: /* @__PURE__ */ jsx(Primitive.div, {
75
+ tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,
76
+ "data-orientation": orientation,
77
+ ...groupProps,
78
+ ref: composedRefs,
79
+ style: {
80
+ outline: "none",
81
+ ...props.style
82
+ },
83
+ onMouseDown: composeEventHandlers(props.onMouseDown, ()=>{
84
+ isClickFocusRef.current = true;
85
+ }),
86
+ onFocus: composeEventHandlers(props.onFocus, (event)=>{
87
+ const isKeyboardFocus = !isClickFocusRef.current;
88
+ if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {
89
+ const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);
90
+ event.currentTarget.dispatchEvent(entryFocusEvent);
91
+ if (!entryFocusEvent.defaultPrevented) {
92
+ const items = getItems().filter((item)=>item.focusable);
93
+ const activeItem = items.find((item)=>item.active);
94
+ const currentItem = items.find((item)=>item.id === currentTabStopId);
95
+ const candidateItems = [
96
+ activeItem,
97
+ currentItem,
98
+ ...items
99
+ ].filter(Boolean);
100
+ const candidateNodes = candidateItems.map((item)=>item.ref.current);
101
+ focusFirst(candidateNodes, preventScrollOnEntryFocus);
102
+ }
103
+ }
104
+ isClickFocusRef.current = false;
105
+ }),
106
+ onBlur: composeEventHandlers(props.onBlur, ()=>setIsTabbingBackOut(false))
107
+ })
108
+ });
109
+ });
110
+ var ITEM_NAME = "RovingFocusGroupItem";
111
+ var RovingFocusGroupItem = React.forwardRef((props, forwardedRef)=>{
112
+ const { __scopeRovingFocusGroup, focusable = true, active = false, tabStopId, children, ...itemProps } = props;
113
+ const autoId = useId();
114
+ const id = tabStopId || autoId;
115
+ const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);
116
+ const isCurrentTabStop = context.currentTabStopId === id;
117
+ const getItems = useCollection(__scopeRovingFocusGroup);
118
+ const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;
119
+ React.useEffect(()=>{
120
+ if (focusable) {
121
+ onFocusableItemAdd();
122
+ return ()=>onFocusableItemRemove();
123
+ }
124
+ }, [
125
+ focusable,
126
+ onFocusableItemAdd,
127
+ onFocusableItemRemove
128
+ ]);
129
+ return /* @__PURE__ */ jsx(Collection.ItemSlot, {
130
+ scope: __scopeRovingFocusGroup,
131
+ id,
132
+ focusable,
133
+ active,
134
+ children: /* @__PURE__ */ jsx(Primitive.span, {
135
+ tabIndex: isCurrentTabStop ? 0 : -1,
136
+ "data-orientation": context.orientation,
137
+ ...itemProps,
138
+ ref: forwardedRef,
139
+ onMouseDown: composeEventHandlers(props.onMouseDown, (event)=>{
140
+ if (!focusable) event.preventDefault();
141
+ else context.onItemFocus(id);
142
+ }),
143
+ onFocus: composeEventHandlers(props.onFocus, ()=>context.onItemFocus(id)),
144
+ onKeyDown: composeEventHandlers(props.onKeyDown, (event)=>{
145
+ if (event.key === "Tab" && event.shiftKey) {
146
+ context.onItemShiftTab();
147
+ return;
148
+ }
149
+ if (event.target !== event.currentTarget) return;
150
+ const focusIntent = getFocusIntent(event, context.orientation, context.dir);
151
+ if (focusIntent !== void 0) {
152
+ if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;
153
+ event.preventDefault();
154
+ const items = getItems().filter((item)=>item.focusable);
155
+ let candidateNodes = items.map((item)=>item.ref.current);
156
+ if (focusIntent === "last") candidateNodes.reverse();
157
+ else if (focusIntent === "prev" || focusIntent === "next") {
158
+ if (focusIntent === "prev") candidateNodes.reverse();
159
+ const currentIndex = candidateNodes.indexOf(event.currentTarget);
160
+ candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);
161
+ }
162
+ setTimeout(()=>focusFirst(candidateNodes));
163
+ }
164
+ }),
165
+ children: typeof children === "function" ? children({
166
+ isCurrentTabStop,
167
+ hasTabStop: currentTabStopId != null
168
+ }) : children
169
+ })
170
+ });
171
+ });
172
+ RovingFocusGroupItem.displayName = ITEM_NAME;
173
+ var MAP_KEY_TO_FOCUS_INTENT = {
174
+ ArrowLeft: "prev",
175
+ ArrowUp: "prev",
176
+ ArrowRight: "next",
177
+ ArrowDown: "next",
178
+ PageUp: "first",
179
+ Home: "first",
180
+ PageDown: "last",
181
+ End: "last"
182
+ };
183
+ function getDirectionAwareKey(key, dir) {
184
+ if (dir !== "rtl") return key;
185
+ return key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key;
186
+ }
187
+ function getFocusIntent(event, orientation, dir) {
188
+ const key = getDirectionAwareKey(event.key, dir);
189
+ if (orientation === "vertical" && [
190
+ "ArrowLeft",
191
+ "ArrowRight"
192
+ ].includes(key)) return void 0;
193
+ if (orientation === "horizontal" && [
194
+ "ArrowUp",
195
+ "ArrowDown"
196
+ ].includes(key)) return void 0;
197
+ return MAP_KEY_TO_FOCUS_INTENT[key];
198
+ }
199
+ function focusFirst(candidates, preventScroll = false) {
200
+ const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
201
+ for (const candidate of candidates){
202
+ if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
203
+ candidate.focus({
204
+ preventScroll
205
+ });
206
+ if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
207
+ }
208
+ }
209
+ function wrapArray(array, startIndex) {
210
+ return array.map((_, index)=>array[(startIndex + index) % array.length]);
211
+ }
212
+ var Root = RovingFocusGroup;
213
+ var Item = RovingFocusGroupItem;
214
+
215
+ export { Item as I, Root as R, createRovingFocusGroupScope as c };
216
+ //# sourceMappingURL=index-BNxaLFA6.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-LvOFIVGz.mjs","sources":["../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["ENTRY_FOCUS","EVENT_OPTIONS","bubbles","cancelable","GROUP_NAME","Collection","useCollection","createCollectionScope","createCollection","createRovingFocusGroupContext","createRovingFocusGroupScope","createContextScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","React","forwardRef","props","forwardedRef","jsx","Provider","scope","__scopeRovingFocusGroup","children","Slot","RovingFocusGroupImpl","ref","displayName","orientation","loop","dir","currentTabStopId","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","useRef","composedRefs","useComposedRefs","direction","useDirection","setCurrentTabStopId","useControllableState","prop","defaultProp","onChange","caller","isTabbingBackOut","setIsTabbingBackOut","useState","handleEntryFocus","useCallbackRef","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","useEffect","node","current","addEventListener","removeEventListener","onItemFocus","useCallback","tabStopId","onItemShiftTab","onFocusableItemAdd","prevCount","onFocusableItemRemove","Primitive","div","tabIndex","style","outline","onMouseDown","composeEventHandlers","onFocus","event","isKeyboardFocus","target","currentTarget","entryFocusEvent","CustomEvent","dispatchEvent","defaultPrevented","items","filter","item","focusable","focusFirst","find","active","id","Boolean","map","onBlur","ITEM_NAME","RovingFocusGroupItem","itemProps","autoId","useId","context","isCurrentTabStop","ItemSlot","span","preventDefault","onKeyDown","key","shiftKey","focusIntent","getDirectionAwareKey","includes","MAP_KEY_TO_FOCUS_INTENT","getFocusIntent","metaKey","ctrlKey","altKey","candidateNodes","reverse","currentIndex","indexOf","startIndex","array","_","index","length","slice","setTimeout","hasTabStop","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","PageUp","Home","PageDown","End","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","document","activeElement","candidate","focus","Root","Item"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-BNxaLFA6.mjs","sources":["../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":";;;;;;;;;;;;AAaA,IAAM,WAAA,GAAc,+BAAA;AACpB,IAAM,aAAA,GAAgB;IAAE,OAAA,EAAS,KAAA;IAAO,UAAA,EAAY;AAAK,CAAA;AAMzD,IAAM,UAAA,GAAa,kBAAA;AAGnB,IAAM,CAAC,UAAA,EAAY,aAAA,EAAe,qBAAqB,CAAA,GAAI,iBAGzD,UAAU,CAAA;AAGZ,IAAM,CAAC,6BAAA,EAA+B,2BAA2B,CAAA,GAAI,mBACnE,UAAA,EACA;IAAC;AAAqB,CAAA;AA+BxB,IAAM,CAAC,mBAAA,EAAqB,qBAAqB,CAAA,GAC/C,8BAAkD,UAAU,CAAA;AAK9D,IAAM,mBAAyB,KAAA,CAAA,UAAA,CAC7B,CAAC,OAA2C,YAAA,GAAA;AAC1C,IAAA,uBACE,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX;AAAoB,QAAA,KAAA,EAAO,MAAM,uBAAA;AAChC,QAAA,QAAA,kBAAA,GAAA,CAAC,UAAA,CAAW,IAAA,EAAX;AAAgB,YAAA,KAAA,EAAO,MAAM,uBAAA;YAC5B,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA;AAAsB,gBAAA,GAAG,KAAA;gBAAO,GAAA,EAAK;aAAc;SACtD;KACF,CAAA;AAEJ,CAAA,CAAA;AAGF,gBAAA,CAAiB,WAAA,GAAc,UAAA;AAgB/B,IAAM,uBAA6B,KAAA,CAAA,UAAA,CAGjC,CAAC,OAA+C,YAAA,GAAA;IAChD,MAAM,EACJ,uBAAA,EACA,WAAA,EACA,OAAO,KAAA,EACP,GAAA,EACA,gBAAA,EAAkB,oBAAA,EAClB,uBAAA,EACA,wBAAA,EACA,YAAA,EACA,4BAA4B,KAAA,EAC5B,GAAG,UAAA,EACL,GAAI,KAAA;AACJ,IAAA,MAAM,GAAA,GAAY,KAAA,CAAA,MAAA,CAAoC,IAAI,CAAA;IAC1D,MAAM,YAAA,GAAe,eAAA,CAAgB,YAAA,EAAc,GAAG,CAAA;IACtD,MAAM,SAAA,GAAY,aAAa,GAAG,CAAA;AAClC,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,oBAAA,CAAqB;QACnE,IAAA,EAAM,oBAAA;AACN,QAAA,WAAA,EAAa,uBAAA,IAA2B,IAAA;QACxC,QAAA,EAAU,wBAAA;QACV,MAAA,EAAQ;KACT,CAAA;IACD,MAAM,CAAC,kBAAkB,mBAAmB,CAAA,GAAU,KAAA,CAAA,QAAA,CAAS,KAAK,CAAA;IACpE,MAAM,gBAAA,GAAmB,eAAe,YAAY,CAAA;IACpD,MAAM,QAAA,GAAW,cAAc,uBAAuB,CAAA;AACtD,IAAA,MAAM,eAAA,GAAwB,KAAA,CAAA,MAAA,CAAO,KAAK,CAAA;IAC1C,MAAM,CAAC,qBAAqB,sBAAsB,CAAA,GAAU,KAAA,CAAA,QAAA,CAAS,CAAC,CAAA;IAEhE,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,MAAM,IAAA,GAAO,IAAI,OAAA;AACjB,QAAA,IAAI,IAAA,EAAM;YACR,IAAA,CAAK,gBAAA,CAAiB,WAAA,EAAa,gBAAgB,CAAA;AACnD,YAAA,OAAO,IAAM,IAAA,CAAK,mBAAA,CAAoB,aAAa,gBAAgB,CAAA;AACrE,QAAA;IACF,CAAA,EAAG;QAAC;AAAiB,KAAA,CAAA;IAErB,uBACE,GAAA,CAAC,mBAAA,EAAA;QACC,KAAA,EAAO,uBAAA;AACP,QAAA,WAAA;QACA,GAAA,EAAK,SAAA;AACL,QAAA,IAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA,EAAmB,MAAA,WAAA,CACjB,CAAC,SAAA,GAAc,mBAAA,CAAoB,SAAS,CAAA,EAC5C;YAAC;AAAmB,SAAA,CAAA;QAEtB,cAAA,EAAsB,KAAA,CAAA,WAAA,CAAY,IAAM,oBAAoB,IAAI,CAAA,EAAG,EAAE,CAAA;QACrE,kBAAA,EAA0B,KAAA,CAAA,WAAA,CACxB,IAAM,sBAAA,CAAuB,CAAC,SAAA,GAAc,SAAA,GAAY,CAAC,CAAA,EACzD,EAAC,CAAA;QAEH,qBAAA,EAA6B,KAAA,CAAA,WAAA,CAC3B,IAAM,sBAAA,CAAuB,CAAC,SAAA,GAAc,SAAA,GAAY,CAAC,CAAA,EACzD,EAAC,CAAA;AAGH,QAAA,QAAA,kBAAA,GAAA,CAAC,SAAA,CAAU,GAAA,EAAV;AACC,YAAA,QAAA,EAAU,gBAAA,IAAoB,mBAAA,KAAwB,CAAA,GAAI,EAAA,GAAK,CAAA;YAC/D,kBAAA,EAAkB,WAAA;AACjB,YAAA,GAAG,UAAA;YACJ,GAAA,EAAK,YAAA;YACL,KAAA,EAAO;gBAAE,OAAA,EAAS,MAAA;AAAQ,gBAAA,GAAG,MAAM;AAAM,aAAA;AACzC,YAAA,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,WAAA,EAAa,IAAA;AACnD,gBAAA,eAAA,CAAgB,OAAA,GAAU,IAAA;YAC5B,CAAC,CAAA;AACD,YAAA,OAAA,EAAS,oBAAA,CAAqB,KAAA,CAAM,OAAA,EAAS,CAAC,KAAA,GAAA;gBAK5C,MAAM,eAAA,GAAkB,CAAC,eAAA,CAAgB,OAAA;gBAEzC,IAAI,KAAA,CAAM,MAAA,KAAW,KAAA,CAAM,aAAA,IAAiB,eAAA,IAAmB,CAAC,gBAAA,EAAkB;AAChF,oBAAA,MAAM,eAAA,GAAkB,IAAI,WAAA,CAAY,WAAA,EAAa,aAAa,CAAA;AAClE,oBAAA,KAAA,CAAM,aAAA,CAAc,aAAA,CAAc,eAAe,CAAA;oBAEjD,IAAI,CAAC,eAAA,CAAgB,gBAAA,EAAkB;wBACrC,MAAM,KAAA,GAAQ,UAAS,CAAE,MAAA,CAAO,CAAC,IAAA,GAAS,KAAK,SAAS,CAAA;AACxD,wBAAA,MAAM,aAAa,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,GAAS,KAAK,MAAM,CAAA;wBACnD,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,CAAC,IAAA,GAAS,IAAA,CAAK,EAAA,KAAO,gBAAgB,CAAA;AACrE,wBAAA,MAAM,cAAA,GAAiB;AAAC,4BAAA,UAAA;4BAAY,WAAA;+BAAgB;AAAK,yBAAA,CAAE,MAAA,CACzD,OAAA,CAAA;wBAEF,MAAM,cAAA,GAAiB,eAAe,GAAA,CAAI,CAAC,IAAA,GAAS,IAAA,CAAK,GAAA,CAAI,OAAQ,CAAA;AACrE,wBAAA,UAAA,CAAW,gBAAgB,yBAAyB,CAAA;AACtD,oBAAA;AACF,gBAAA;AAEA,gBAAA,eAAA,CAAgB,OAAA,GAAU,KAAA;YAC5B,CAAC,CAAA;AACD,YAAA,MAAA,EAAQ,qBAAqB,KAAA,CAAM,MAAA,EAAQ,IAAM,mBAAA,CAAoB,KAAK,CAAC;AAAA,SAAA;AAC7E,KAAA,CAAA;AAGN,CAAC,CAAA;AAMD,IAAM,SAAA,GAAY,sBAAA;AAalB,IAAM,uBAA6B,KAAA,CAAA,UAAA,CACjC,CAAC,OAA0C,YAAA,GAAA;AACzC,IAAA,MAAM,EACJ,uBAAA,EACA,SAAA,GAAY,IAAA,EACZ,MAAA,GAAS,KAAA,EACT,SAAA,EACA,QAAA,EACA,GAAG,WACL,GAAI,KAAA;AACJ,IAAA,MAAM,SAAS,KAAA,EAAM;AACrB,IAAA,MAAM,KAAK,SAAA,IAAa,MAAA;IACxB,MAAM,OAAA,GAAU,qBAAA,CAAsB,SAAA,EAAW,uBAAuB,CAAA;IACxE,MAAM,gBAAA,GAAmB,OAAA,CAAQ,gBAAA,KAAqB,EAAA;IACtD,MAAM,QAAA,GAAW,cAAc,uBAAuB,CAAA;IAEtD,MAAM,EAAE,kBAAA,EAAoB,qBAAA,EAAuB,gBAAA,EAAiB,GAAI,OAAA;IAElE,KAAA,CAAA,SAAA,CAAU,IAAA;AACd,QAAA,IAAI,SAAA,EAAW;YACb,kBAAA,EAAmB;AACnB,YAAA,OAAO,IAAM,qBAAA,EAAsB;AACrC,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,SAAA;AAAW,QAAA,kBAAA;QAAoB;AAAsB,KAAA,CAAA;AAEzD,IAAA,uBACE,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX;QACC,KAAA,EAAO,uBAAA;AACP,QAAA,EAAA;AACA,QAAA,SAAA;AACA,QAAA,MAAA;AAEA,QAAA,QAAA,kBAAA,GAAA,CAAC,SAAA,CAAU,IAAA,EAAV;YACC,QAAA,EAAU,gBAAA,GAAmB,IAAI,EAAA;AACjC,YAAA,kBAAA,EAAkB,QAAQ,WAAA;AACzB,YAAA,GAAG,SAAA;YACJ,GAAA,EAAK,YAAA;AACL,YAAA,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,WAAA,EAAa,CAAC,KAAA,GAAA;AAGpD,gBAAA,IAAI,CAAC,SAAA,EAAW,KAAA,CAAM,cAAA,EAAe;qBAEhC,OAAA,CAAQ,WAAA,CAAY,EAAE,CAAA;YAC7B,CAAC,CAAA;YACD,OAAA,EAAS,oBAAA,CAAqB,MAAM,OAAA,EAAS,IAAM,OAAA,CAAQ,WAAA,CAAY,EAAE,CAAC,CAAA;AAC1E,YAAA,SAAA,EAAW,oBAAA,CAAqB,KAAA,CAAM,SAAA,EAAW,CAAC,KAAA,GAAA;AAChD,gBAAA,IAAI,MAAM,GAAA,KAAQ,KAAA,IAAS,KAAA,CAAM,QAAA,EAAU;AACzC,oBAAA,OAAA,CAAQ,cAAA,EAAe;AACvB,oBAAA;AACF,gBAAA;AAEA,gBAAA,IAAI,MAAM,MAAA,KAAW,KAAA,CAAM,aAAA,EAAe;AAE1C,gBAAA,MAAM,cAAc,cAAA,CAAe,KAAA,EAAO,QAAQ,WAAA,EAAa,QAAQ,GAAG,CAAA;gBAE1E,IAAI,WAAA,KAAgB,MAAA,EAAW;AAC7B,oBAAA,IAAI,KAAA,CAAM,OAAA,IAAW,KAAA,CAAM,OAAA,IAAW,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,QAAA,EAAU;AACtE,oBAAA,KAAA,CAAM,cAAA,EAAe;oBACrB,MAAM,KAAA,GAAQ,UAAS,CAAE,MAAA,CAAO,CAAC,IAAA,GAAS,KAAK,SAAS,CAAA;oBACxD,IAAI,cAAA,GAAiB,MAAM,GAAA,CAAI,CAAC,IAAA,GAAS,IAAA,CAAK,GAAA,CAAI,OAAQ,CAAA;AAE1D,oBAAA,IAAI,WAAA,KAAgB,MAAA,EAAQ,cAAA,CAAe,OAAA,EAAQ;yBAAA,IAC1C,WAAA,KAAgB,MAAA,IAAU,WAAA,KAAgB,MAAA,EAAQ;AACzD,wBAAA,IAAI,WAAA,KAAgB,MAAA,EAAQ,cAAA,CAAe,OAAA,EAAQ;AACnD,wBAAA,MAAM,YAAA,GAAe,cAAA,CAAe,OAAA,CAAQ,MAAM,aAAa,CAAA;AAC/D,wBAAA,cAAA,GAAiB,OAAA,CAAQ,IAAA,GACrB,SAAA,CAAU,cAAA,EAAgB,YAAA,GAAe,CAAC,CAAA,GAC1C,cAAA,CAAe,KAAA,CAAM,YAAA,GAAe,CAAC,CAAA;AAC3C,oBAAA;oBAMA,UAAA,CAAW,IAAM,UAAA,CAAW,cAAc,CAAC,CAAA;AAC7C,gBAAA;YACF,CAAC,CAAA;YAEA,QAAA,EAAA,OAAO,QAAA,KAAa,UAAA,GACjB,QAAA,CAAS;AAAE,gBAAA,gBAAA;AAAkB,gBAAA,UAAA,EAAY,gBAAA,IAAoB;AAAK,aAAC,CAAA,GACnE;AAAA,SAAA;AACN,KAAA,CAAA;AAGN,CAAA,CAAA;AAGF,oBAAA,CAAqB,WAAA,GAAc,SAAA;AAKnC,IAAM,uBAAA,GAAuD;IAC3D,SAAA,EAAW,MAAA;IAAQ,OAAA,EAAS,MAAA;IAC5B,UAAA,EAAY,MAAA;IAAQ,SAAA,EAAW,MAAA;IAC/B,MAAA,EAAQ,OAAA;IAAS,IAAA,EAAM,OAAA;IACvB,QAAA,EAAU,MAAA;IAAQ,GAAA,EAAK;AACzB,CAAA;AAEA,SAAS,oBAAA,CAAqB,GAAA,EAAa,GAAA,EAAiB;IAC1D,IAAI,GAAA,KAAQ,KAAA,EAAO,OAAO,GAAA;AAC1B,IAAA,OAAO,GAAA,KAAQ,WAAA,GAAc,YAAA,GAAe,GAAA,KAAQ,eAAe,WAAA,GAAc,GAAA;AACnF;AAIA,SAAS,eAAe,KAAA,EAA4B,WAAA,EAA2B,GAAA,EAAiB;AAC9F,IAAA,MAAM,GAAA,GAAM,oBAAA,CAAqB,KAAA,CAAM,GAAA,EAAK,GAAG,CAAA;AAC/C,IAAA,IAAI,gBAAgB,UAAA,IAAc;AAAC,QAAA,WAAA;QAAa;AAAY,KAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,MAAA;AACpF,IAAA,IAAI,gBAAgB,YAAA,IAAgB;AAAC,QAAA,SAAA;QAAW;AAAW,KAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,MAAA;IACnF,OAAO,uBAAA,CAAwB,GAAG,CAAA;AACpC;AAEA,SAAS,UAAA,CAAW,UAAA,EAA2B,aAAA,GAAgB,KAAA,EAAO;IACpE,MAAM,0BAAA,GAA6B,SAAS,aAAA;IAC5C,KAAA,MAAW,aAAa,UAAA,CAAY;QAElC,IAAI,SAAA,KAAc,4BAA4B;AAC9C,QAAA,SAAA,CAAU,KAAA,CAAM;AAAE,YAAA;SAAe,CAAA;AACjC,QAAA,IAAI,QAAA,CAAS,aAAA,KAAkB,0BAAA,EAA4B;AAC7D,IAAA;AACF;AAMA,SAAS,SAAA,CAAa,KAAA,EAAY,UAAA,EAAoB;AACpD,IAAA,OAAO,KAAA,CAAM,GAAA,CAAO,CAAC,GAAG,KAAA,GAAU,KAAA,CAAA,CAAO,UAAA,GAAa,KAAA,IAAS,KAAA,CAAM,MAAM,CAAE,CAAA;AAC/E;AAEA,IAAM,IAAA,GAAO;AACb,IAAM,IAAA,GAAO;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+
3
+ // packages/react/use-layout-effect/src/use-layout-effect.tsx
4
+ var useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : ()=>{};
5
+
6
+ export { useLayoutEffect2 as u };
7
+ //# sourceMappingURL=index-BZUrHhU8.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CLtWFQL5.mjs","sources":["../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs"],"sourcesContent":["// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useLayoutEffect","globalThis","document","React"],"mappings":"wBASA,IAAMA,EAAkBC,YAAYC,SAAiBC,EAAAH,gBAAkB","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-BZUrHhU8.mjs","sources":["../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs"],"sourcesContent":["// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useLayoutEffect"],"mappings":";;;AASA,IAAMA,mBAAkB,UAAA,EAAY,QAAA,GAAiB,MAAA,eAAA,GAAkB,KAAO;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,110 @@
1
+ import * as React from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ // packages/react/context/src/create-context.tsx
5
+ function createContext2(rootComponentName, defaultContext) {
6
+ const Context = React.createContext(defaultContext);
7
+ const Provider = (props)=>{
8
+ const { children, ...context } = props;
9
+ const value = React.useMemo(()=>context, Object.values(context));
10
+ return /* @__PURE__ */ jsx(Context.Provider, {
11
+ value,
12
+ children
13
+ });
14
+ };
15
+ Provider.displayName = rootComponentName + "Provider";
16
+ function useContext2(consumerName) {
17
+ const context = React.useContext(Context);
18
+ if (context) return context;
19
+ if (defaultContext !== void 0) return defaultContext;
20
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
21
+ }
22
+ return [
23
+ Provider,
24
+ useContext2
25
+ ];
26
+ }
27
+ function createContextScope(scopeName, createContextScopeDeps = []) {
28
+ let defaultContexts = [];
29
+ function createContext3(rootComponentName, defaultContext) {
30
+ const BaseContext = React.createContext(defaultContext);
31
+ const index = defaultContexts.length;
32
+ defaultContexts = [
33
+ ...defaultContexts,
34
+ defaultContext
35
+ ];
36
+ const Provider = (props)=>{
37
+ const { scope, children, ...context } = props;
38
+ const Context = scope?.[scopeName]?.[index] || BaseContext;
39
+ const value = React.useMemo(()=>context, Object.values(context));
40
+ return /* @__PURE__ */ jsx(Context.Provider, {
41
+ value,
42
+ children
43
+ });
44
+ };
45
+ Provider.displayName = rootComponentName + "Provider";
46
+ function useContext2(consumerName, scope) {
47
+ const Context = scope?.[scopeName]?.[index] || BaseContext;
48
+ const context = React.useContext(Context);
49
+ if (context) return context;
50
+ if (defaultContext !== void 0) return defaultContext;
51
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
52
+ }
53
+ return [
54
+ Provider,
55
+ useContext2
56
+ ];
57
+ }
58
+ const createScope = ()=>{
59
+ const scopeContexts = defaultContexts.map((defaultContext)=>{
60
+ return React.createContext(defaultContext);
61
+ });
62
+ return function useScope(scope) {
63
+ const contexts = scope?.[scopeName] || scopeContexts;
64
+ return React.useMemo(()=>({
65
+ [`__scope${scopeName}`]: {
66
+ ...scope,
67
+ [scopeName]: contexts
68
+ }
69
+ }), [
70
+ scope,
71
+ contexts
72
+ ]);
73
+ };
74
+ };
75
+ createScope.scopeName = scopeName;
76
+ return [
77
+ createContext3,
78
+ composeContextScopes(createScope, ...createContextScopeDeps)
79
+ ];
80
+ }
81
+ function composeContextScopes(...scopes) {
82
+ const baseScope = scopes[0];
83
+ if (scopes.length === 1) return baseScope;
84
+ const createScope = ()=>{
85
+ const scopeHooks = scopes.map((createScope2)=>({
86
+ useScope: createScope2(),
87
+ scopeName: createScope2.scopeName
88
+ }));
89
+ return function useComposedScopes(overrideScopes) {
90
+ const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName })=>{
91
+ const scopeProps = useScope(overrideScopes);
92
+ const currentScope = scopeProps[`__scope${scopeName}`];
93
+ return {
94
+ ...nextScopes2,
95
+ ...currentScope
96
+ };
97
+ }, {});
98
+ return React.useMemo(()=>({
99
+ [`__scope${baseScope.scopeName}`]: nextScopes
100
+ }), [
101
+ nextScopes
102
+ ]);
103
+ };
104
+ };
105
+ createScope.scopeName = baseScope.scopeName;
106
+ return createScope;
107
+ }
108
+
109
+ export { createContext2 as a, createContextScope as c };
110
+ //# sourceMappingURL=index-B_FsTtnF.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CCcl327A.mjs","sources":["../../node_modules/@radix-ui/react-context/dist/index.mjs"],"sourcesContent":["// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["createContext","rootComponentName","defaultContext","Context","React","Provider","props","children","context","value","useMemo","Object","values","jsx","displayName","consumerName","useContext","Error","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createScope","scopeContexts","map","scope","contexts","BaseContext","index","length","composeContextScopes","scopes","baseScope","scopeHooks","useScope","overrideScopes","nextScopes","reduce"],"mappings":"gEAEA,SAASA,EACPC,EACAC,GAEA,MAAMC,EAAgBC,EAAAJ,cAA4CE,GAE5DG,EAAwEC,IAC5E,MAAMC,SAAEA,KAAaC,GAAYF,EAG3BG,EAAcL,EAAAM,QAAQ,IAAMF,EAASG,OAAOC,OAAOJ,IACzD,OAAOK,EAACV,EAAQE,SAAR,CAAiBI,QAAeF,cAa1C,OAVAF,EAASS,YAAcb,EAAoB,WAUpC,CAACI,EARR,SAAoBU,GAClB,MAAMP,EAAgBJ,EAAAY,WAAWb,GACjC,GAAIK,EAAS,OAAOA,EACpB,QAAuB,IAAnBN,EAA8B,OAAOA,EAEzC,MAAM,IAAIe,MAAM,KAAKF,6BAAwCd,MAC/D,EAGF,CAaA,SAASiB,EAAmBC,EAAmBC,EAAwC,IACrF,IAAIC,EAAyB,GA2C7B,MAAMC,EAA2B,KAC/B,MAAMC,EAAgBF,EAAgBG,IAAKtB,GAC5BE,EAAAJ,cAAcE,IAE7B,OAAO,SAAkBuB,GACvB,MAAMC,EAAWD,IAAQN,IAAcI,EACvC,OAAanB,EAAAM,QACX,KAAA,CAAS,CAAC,UAAUS,KAAc,IAAKM,EAAON,CAACA,GAAYO,KAC3D,CAACD,EAAOC,GAEZ,GAIF,OADAJ,EAAYH,UAAYA,EACjB,CAnDP,SACElB,EACAC,GAEA,MAAMyB,EAAoBvB,EAAAJ,cAA4CE,GAChE0B,EAAQP,EAAgBQ,OAC9BR,EAAkB,IAAIA,EAAiBnB,GAEvC,MAAMG,EAEDC,IACH,MAAMmB,MAAEA,EAAAlB,SAAOA,KAAaC,GAAYF,EAClCH,EAAUsB,IAAQN,KAAaS,IAAUD,EAGzClB,EAAcL,EAAAM,QAAQ,IAAMF,EAASG,OAAOC,OAAOJ,IACzD,OAAOK,EAACV,EAAQE,SAAR,CAAiBI,QAAeF,cAc1C,OAXAF,EAASS,YAAcb,EAAoB,WAWpC,CAACI,EATR,SAAoBU,EAAsBU,GACxC,MAAMtB,EAAUsB,IAAQN,KAAaS,IAAUD,EACzCnB,EAAgBJ,EAAAY,WAAWb,GACjC,GAAIK,EAAS,OAAOA,EACpB,QAAuB,IAAnBN,EAA8B,OAAOA,EAEzC,MAAM,IAAIe,MAAM,KAAKF,6BAAwCd,MAC/D,EAGF,EAoBuB6B,EAAqBR,KAAgBF,GAC9D,CAMA,SAASU,KAAwBC,GAC/B,MAAMC,EAAYD,EAAO,GACzB,GAAsB,IAAlBA,EAAOF,OAAc,OAAOG,EAEhC,MAAMV,EAA2B,KAC/B,MAAMW,EAAaF,EAAOP,IAAKF,IAAAA,CAC7BY,SAAUZ,IACVH,UAAWG,EAAYH,aAGzB,OAAO,SAA2BgB,GAChC,MAAMC,EAAaH,EAAWI,OAAO,CAACD,GAAcF,WAAUf,gBAMrD,IAAKiB,KAFOF,EAASC,GACI,UAAUhB,OAEzC,CAAA,GAEH,OAAaf,EAAAM,QAAQ,KAAA,CAAS,CAAC,UAAUsB,EAAUb,aAAciB,IAAe,CAACA,GACnF,GAIF,OADAd,EAAYH,UAAYa,EAAUb,UAC3BG,CACT","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-B_FsTtnF.mjs","sources":["../../node_modules/@radix-ui/react-context/dist/index.mjs"],"sourcesContent":["// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["createContext","useContext","createScope","nextScopes"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+
3
+ // packages/react/use-callback-ref/src/use-callback-ref.tsx
4
+ function useCallbackRef(callback) {
5
+ const callbackRef = React.useRef(callback);
6
+ React.useEffect(()=>{
7
+ callbackRef.current = callback;
8
+ });
9
+ return React.useMemo(()=>(...args)=>callbackRef.current?.(...args), []);
10
+ }
11
+
12
+ export { useCallbackRef as u };
13
+ //# sourceMappingURL=index-CAg47KJ6.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CXszXOf_.mjs","sources":["../../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs"],"sourcesContent":["// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useCallbackRef","callback","callbackRef","React","useRef","useEffect","current","useMemo","args"],"mappings":"wBAMA,SAASA,EAAkDC,GACzD,MAAMC,EAAoBC,EAAAC,OAAOH,GAOjC,OALME,EAAAE,UAAU,KACdH,EAAYI,QAAUL,IAIXE,EAAAI,QAAQ,IAAO,IAAIC,IAASN,EAAYI,aAAaE,GAAa,GACjF","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-CAg47KJ6.mjs","sources":["../../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs"],"sourcesContent":["// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":";;;AAMA,SAAS,cAAA,CAAkD,QAAA,EAA4B;AACrF,IAAA,MAAM,WAAA,GAAoB,KAAA,CAAA,MAAA,CAAO,QAAQ,CAAA;IAEnC,KAAA,CAAA,SAAA,CAAU,IAAA;AACd,QAAA,WAAA,CAAY,OAAA,GAAU,QAAA;IACxB,CAAC,CAAA;AAGD,IAAA,OAAa,KAAA,CAAA,OAAA,CAAQ,IAAO,CAAA,GAAI,IAAA,GAAS,WAAA,CAAY,OAAA,GAAU,GAAG,IAAI,CAAA,EAAS,EAAE,CAAA;AACnF;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import 'react/jsx-runtime';
3
+
4
+ // packages/react/direction/src/direction.tsx
5
+ var DirectionContext = React.createContext(void 0);
6
+ function useDirection(localDir) {
7
+ const globalDir = React.useContext(DirectionContext);
8
+ return localDir || globalDir || "ltr";
9
+ }
10
+
11
+ export { useDirection as u };
12
+ //# sourceMappingURL=index-CXuEm8w1.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CU_y1XAz.mjs","sources":["../../node_modules/@radix-ui/react-direction/dist/index.mjs"],"sourcesContent":["// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["DirectionContext","React","createContext","useDirection","localDir","globalDir","useContext"],"mappings":"kDAGA,IAAMA,EAAyBC,EAAAC,mBAAqC,GAiBpE,SAASC,EAAaC,GACpB,MAAMC,EAAkBJ,EAAAK,WAAWN,GACnC,OAAOI,GAAYC,GAAa,KAClC","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-CXuEm8w1.mjs","sources":["../../node_modules/@radix-ui/react-direction/dist/index.mjs"],"sourcesContent":["// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":";;;;AAGA,IAAM,gBAAA,GAAyB,KAAA,CAAA,aAAA,CAAqC,MAAS,CAAA;AAiB7E,SAAS,YAAA,CAAa,QAAA,EAAsB;AAC1C,IAAA,MAAM,SAAA,GAAkB,KAAA,CAAA,UAAA,CAAW,gBAAgB,CAAA;AACnD,IAAA,OAAO,YAAY,SAAA,IAAa,KAAA;AAClC;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,77 @@
1
+ import * as React from 'react';
2
+ import { u as useLayoutEffect2 } from './index-BZUrHhU8.mjs';
3
+
4
+ // src/use-controllable-state.tsx
5
+ var useInsertionEffect = React[" useInsertionEffect ".trim().toString()] || useLayoutEffect2;
6
+ function useControllableState({ prop, defaultProp, onChange = ()=>{}, caller }) {
7
+ const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({
8
+ defaultProp,
9
+ onChange
10
+ });
11
+ const isControlled = prop !== void 0;
12
+ const value = isControlled ? prop : uncontrolledProp;
13
+ {
14
+ const isControlledRef = React.useRef(prop !== void 0);
15
+ React.useEffect(()=>{
16
+ const wasControlled = isControlledRef.current;
17
+ if (wasControlled !== isControlled) {
18
+ const from = wasControlled ? "controlled" : "uncontrolled";
19
+ const to = isControlled ? "controlled" : "uncontrolled";
20
+ console.warn(`${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`);
21
+ }
22
+ isControlledRef.current = isControlled;
23
+ }, [
24
+ isControlled,
25
+ caller
26
+ ]);
27
+ }
28
+ const setValue = React.useCallback((nextValue)=>{
29
+ if (isControlled) {
30
+ const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
31
+ if (value2 !== prop) {
32
+ onChangeRef.current?.(value2);
33
+ }
34
+ } else {
35
+ setUncontrolledProp(nextValue);
36
+ }
37
+ }, [
38
+ isControlled,
39
+ prop,
40
+ setUncontrolledProp,
41
+ onChangeRef
42
+ ]);
43
+ return [
44
+ value,
45
+ setValue
46
+ ];
47
+ }
48
+ function useUncontrolledState({ defaultProp, onChange }) {
49
+ const [value, setValue] = React.useState(defaultProp);
50
+ const prevValueRef = React.useRef(value);
51
+ const onChangeRef = React.useRef(onChange);
52
+ useInsertionEffect(()=>{
53
+ onChangeRef.current = onChange;
54
+ }, [
55
+ onChange
56
+ ]);
57
+ React.useEffect(()=>{
58
+ if (prevValueRef.current !== value) {
59
+ onChangeRef.current?.(value);
60
+ prevValueRef.current = value;
61
+ }
62
+ }, [
63
+ value,
64
+ prevValueRef
65
+ ]);
66
+ return [
67
+ value,
68
+ setValue,
69
+ onChangeRef
70
+ ];
71
+ }
72
+ function isFunction(value) {
73
+ return typeof value === "function";
74
+ }
75
+
76
+ export { useControllableState as u };
77
+ //# sourceMappingURL=index-C_jFwfR_.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CybgQKpz.mjs","sources":["../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs"],"sourcesContent":["// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useInsertionEffect","React","trim","toString","useLayoutEffect","useControllableState","prop","defaultProp","onChange","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","value","setValue","useState","prevValueRef","useRef","current","useEffect","useUncontrolledState","isControlled","isControlledRef","wasControlled","useCallback","nextValue","isFunction"],"mappings":"iEAIA,IAAMA,EACHC,EAAc,uBAAuBC,OAAOC,aAAeC,EAYvD,SAASC,GAAwBC,KACtCA,EAAAC,YACAA,EAAAC,SACAA,EAAW,OAAMC,OACjBA,IAEA,MAAOC,EAAkBC,EAAqBC,GA4ChD,UAAiCL,YAC/BA,EAAAC,SACAA,IAMA,MAAOK,EAAOC,GAAkBb,EAAAc,SAASR,GACnCS,EAAqBf,EAAAgB,OAAOJ,GAE5BD,EAAoBX,EAAAgB,OAAOT,GAYjC,OAXAR,EAAmB,KACjBY,EAAYM,QAAUV,GACrB,CAACA,IAEEP,EAAAkB,UAAU,KACVH,EAAaE,UAAYL,IAC3BD,EAAYM,UAAUL,GACtBG,EAAaE,QAAUL,IAExB,CAACA,EAAOG,IAEJ,CAACH,EAAOC,EAAUF,EAC3B,CApE+DQ,CAAqB,CAChFb,cACAC,aAEIa,OAAwB,IAATf,EACfO,EAAQQ,EAAef,EAAOI,EAMO,CACzC,MAAMY,EAAwBrB,EAAAgB,YAAgB,IAATX,GAC/BL,EAAAkB,UAAU,KACd,MAAMI,EAAgBD,EAAgBJ,QACtC,GAAIK,IAAkBF,EAAc,CAMpC,CACAC,EAAgBJ,QAAUG,GACzB,CAACA,EAAcZ,GACpB,CAGA,MAAMK,EAAiBb,EAAAuB,YACpBC,IACC,GAAIJ,EAAc,CAChB,MAAMR,EAwCd,SAAoBA,GAClB,MAAwB,mBAAVA,CAChB,CA1CsBa,CAAWD,GAAaA,EAAUnB,GAAQmB,EACpDZ,IAAUP,GACZM,EAAYM,UAAUL,EAE1B,MACEF,EAAoBc,IAGxB,CAACJ,EAAcf,EAAMK,EAAqBC,IAG5C,MAAO,CAACC,EAAOC,EACjB","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-C_jFwfR_.mjs","sources":["../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs"],"sourcesContent":["// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useLayoutEffect","value"],"mappings":";;;;AAIA,IAAM,kBAAA,GACH,KAAA,CAAc,sBAAA,CAAuB,IAAA,EAAK,CAAE,QAAA,EAAU,CAAA,IAAKA,gBAAA;AAYvD,SAAS,oBAAA,CAAwB,EACtC,IAAA,EACA,WAAA,EACA,QAAA,GAAW,IAAA,CAAO,CAAD,EACjB,MAAA,EACF,EAAsD;AACpD,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAA,EAAqB,WAAW,CAAA,GAAI,oBAAA,CAAqB;AAChF,QAAA,WAAA;AACA,QAAA;KACD,CAAA;IACD,MAAM,YAAA,GAAe,SAAS,MAAA;IAC9B,MAAM,KAAA,GAAQ,eAAe,IAAA,GAAO,gBAAA;AAMpC,IAA2C;AACzC,QAAA,MAAM,kBAAwB,KAAA,CAAA,MAAA,CAAO,IAAA,KAAS,MAAS,CAAA;QACjD,KAAA,CAAA,SAAA,CAAU,IAAA;YACd,MAAM,aAAA,GAAgB,gBAAgB,OAAA;AACtC,YAAA,IAAI,kBAAkB,YAAA,EAAc;gBAClC,MAAM,IAAA,GAAO,gBAAgB,YAAA,GAAe,cAAA;gBAC5C,MAAM,EAAA,GAAK,eAAe,YAAA,GAAe,cAAA;AACzC,gBAAA,OAAA,CAAQ,IAAA,CACN,CAAA,EAAG,MAAM,CAAA,kBAAA,EAAqB,IAAI,CAAA,IAAA,EAAO,EAAE,CAAA,0KAAA,CAAA,CAAA;AAE/C,YAAA;AACA,YAAA,eAAA,CAAgB,OAAA,GAAU,YAAA;QAC5B,CAAA,EAAG;AAAC,YAAA,YAAA;YAAc;AAAO,SAAA,CAAA;AAC3B,IAAA;AAGA,IAAA,MAAM,QAAA,GAAiB,KAAA,CAAA,WAAA,CACrB,CAAC,SAAA,GAAA;AACC,QAAA,IAAI,YAAA,EAAc;AAChB,YAAA,MAAMC,SAAQ,UAAA,CAAW,SAAS,CAAA,GAAI,SAAA,CAAU,IAAI,CAAA,GAAI,SAAA;AACxD,YAAA,IAAIA,WAAU,IAAA,EAAM;gBAClB,WAAA,CAAY,OAAA,GAAUA,MAAK,CAAA;AAC7B,YAAA;QACF,CAAA,MAAO;AACL,YAAA,mBAAA,CAAoB,SAAS,CAAA;AAC/B,QAAA;IACF,CAAA,EACA;AAAC,QAAA,YAAA;AAAc,QAAA,IAAA;AAAM,QAAA,mBAAA;QAAqB;AAAW,KAAA,CAAA;IAGvD,OAAO;AAAC,QAAA,KAAA;QAAO;AAAQ,KAAA;AACzB;AAEA,SAAS,qBAAwB,EAC/B,WAAA,EACA,QAAA,EACF,EAIE;IACA,MAAM,CAAC,OAAO,QAAQ,CAAA,GAAU,KAAA,CAAA,QAAA,CAAS,WAAW,CAAA;AACpD,IAAA,MAAM,YAAA,GAAqB,KAAA,CAAA,MAAA,CAAO,KAAK,CAAA;AAEvC,IAAA,MAAM,WAAA,GAAoB,KAAA,CAAA,MAAA,CAAO,QAAQ,CAAA;AACzC,IAAA,kBAAA,CAAmB,IAAA;AACjB,QAAA,WAAA,CAAY,OAAA,GAAU,QAAA;IACxB,CAAA,EAAG;QAAC;AAAS,KAAA,CAAA;IAEP,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,IAAI,YAAA,CAAa,OAAA,KAAY,KAAA,EAAO;YAClC,WAAA,CAAY,OAAA,GAAU,KAAK,CAAA;AAC3B,YAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AACzB,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,KAAA;QAAO;AAAa,KAAA,CAAA;IAExB,OAAO;AAAC,QAAA,KAAA;AAAO,QAAA,QAAA;QAAU;AAAW,KAAA;AACtC;AAEA,SAAS,UAAA,CAAW,KAAA,EAAkD;AACpE,IAAA,OAAO,OAAO,KAAA,KAAU,UAAA;AAC1B;;;;","x_google_ignoreList":[0]}