@accelint/design-system 0.2.1 → 0.3.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 (370) hide show
  1. package/dist/chunk-4CPMP3H7.js +418 -0
  2. package/dist/chunk-4CPMP3H7.js.map +1 -0
  3. package/dist/{styles.css → index.css} +1163 -1057
  4. package/dist/index.css.map +1 -0
  5. package/dist/index.d.ts +871 -8
  6. package/dist/index.js +5278 -66
  7. package/dist/index.js.map +1 -1
  8. package/dist/vanilla-DUNpoS8t.d.ts +2514 -0
  9. package/dist/vanilla.d.ts +9 -30
  10. package/dist/vanilla.js +3 -27
  11. package/dist/vanilla.js.map +1 -0
  12. package/package.json +10 -13
  13. package/dist/assets/components/button/button.css +0 -55
  14. package/dist/assets/components/checkbox/checkbox.css +0 -73
  15. package/dist/assets/components/chip/chip.css +0 -62
  16. package/dist/assets/components/combo-box/combo-box.css +0 -66
  17. package/dist/assets/components/dialog/dialog.css +0 -51
  18. package/dist/assets/components/drawer/drawer.css +0 -135
  19. package/dist/assets/components/group/group.css +0 -33
  20. package/dist/assets/components/icon/icon.css +0 -19
  21. package/dist/assets/components/input/input.css +0 -29
  22. package/dist/assets/components/menu/menu.css +0 -85
  23. package/dist/assets/components/options/options.css +0 -82
  24. package/dist/assets/components/picker/picker.css +0 -47
  25. package/dist/assets/components/popover/popover.css +0 -26
  26. package/dist/assets/components/query-builder/query-builder.css +0 -129
  27. package/dist/assets/components/radio/radio.css +0 -67
  28. package/dist/assets/components/search-field/search-field.css +0 -62
  29. package/dist/assets/components/select/select.css +0 -33
  30. package/dist/assets/components/switch/switch.css +0 -62
  31. package/dist/assets/components/tabs/tabs.css +0 -144
  32. package/dist/assets/components/textarea/textarea.css +0 -32
  33. package/dist/assets/components/tooltip/tooltip.css +0 -54
  34. package/dist/assets/components/tree/tree.css +0 -157
  35. package/dist/assets/hooks/use-theme/use-theme.css +0 -6
  36. package/dist/assets/src/components/button/button.css.ts.vanilla-9uttMYGm.css +0 -55
  37. package/dist/assets/src/components/checkbox/checkbox.css.ts.vanilla-Bewmypyn.css +0 -73
  38. package/dist/assets/src/components/chip/chip.css.ts.vanilla-CsGhxrlu.css +0 -62
  39. package/dist/assets/src/components/combo-box/combo-box.css.ts.vanilla-BNEPKjPm.css +0 -66
  40. package/dist/assets/src/components/dialog/dialog.css.ts.vanilla-CG0m-NJD.css +0 -51
  41. package/dist/assets/src/components/drawer/drawer.css.ts.vanilla-DEfHnoNS.css +0 -135
  42. package/dist/assets/src/components/group/group.css.ts.vanilla-DR69xgQy.css +0 -33
  43. package/dist/assets/src/components/icon/icon.css.ts.vanilla-CoUAfp2F.css +0 -19
  44. package/dist/assets/src/components/input/input.css.ts.vanilla-DoK5h9SX.css +0 -29
  45. package/dist/assets/src/components/menu/menu.css.ts.vanilla-LoWLg-jE.css +0 -85
  46. package/dist/assets/src/components/options/options.css.ts.vanilla-CWWFBTou.css +0 -82
  47. package/dist/assets/src/components/picker/picker.css.ts.vanilla-Fe0YXv-c.css +0 -47
  48. package/dist/assets/src/components/popover/popover.css.ts.vanilla-C5YGwwVD.css +0 -26
  49. package/dist/assets/src/components/query-builder/query-builder.css.ts.vanilla-B3P9cbCv.css +0 -129
  50. package/dist/assets/src/components/radio/radio.css.ts.vanilla-gi-KedQc.css +0 -67
  51. package/dist/assets/src/components/search-field/search-field.css.ts.vanilla-B_JL53f8.css +0 -62
  52. package/dist/assets/src/components/select/select.css.ts.vanilla-C94A60jf.css +0 -33
  53. package/dist/assets/src/components/switch/switch.css.ts.vanilla-DkQwtRa6.css +0 -62
  54. package/dist/assets/src/components/tabs/tabs.css.ts.vanilla-BygIflpl.css +0 -144
  55. package/dist/assets/src/components/textarea/textarea.css.ts.vanilla-Ba6E5HFc.css +0 -32
  56. package/dist/assets/src/components/tooltip/tooltip.css.ts.vanilla-BntxAlwN.css +0 -54
  57. package/dist/assets/src/components/tree/tree.css.ts.vanilla-SLmhk0zZ.css +0 -157
  58. package/dist/assets/src/hooks/use-theme/use-theme.css.ts.vanilla-zkVHnGkP.css +0 -6
  59. package/dist/assets/src/styles/layers.css.ts.vanilla-B2GUgnOF.css +0 -21
  60. package/dist/assets/src/styles/reset.css.ts.vanilla-C8PShXm0.css +0 -31
  61. package/dist/assets/src/styles/space.css.ts.vanilla-Md6Whc4G.css +0 -18
  62. package/dist/assets/src/styles/surfaces.css.ts.vanilla-Ckztx7VT.css +0 -24
  63. package/dist/assets/src/styles/theme.css.ts.vanilla-aDPSIzBK.css +0 -208
  64. package/dist/assets/src/styles/typography.css.ts.vanilla-DRT9H7rd.css +0 -150
  65. package/dist/assets/styles/layers.css +0 -21
  66. package/dist/assets/styles/reset.css +0 -31
  67. package/dist/assets/styles/space.css +0 -18
  68. package/dist/assets/styles/surfaces.css +0 -24
  69. package/dist/assets/styles/theme.css +0 -208
  70. package/dist/assets/styles/typography.css +0 -150
  71. package/dist/components/aria/aria.d.ts +0 -19
  72. package/dist/components/aria/aria.js +0 -36
  73. package/dist/components/aria/aria.js.map +0 -1
  74. package/dist/components/aria/index.d.ts +0 -1
  75. package/dist/components/button/button.css.d.ts +0 -33
  76. package/dist/components/button/button.d.ts +0 -39
  77. package/dist/components/button/button.js +0 -71
  78. package/dist/components/button/button.js.map +0 -1
  79. package/dist/components/button/button.vanilla.js +0 -8
  80. package/dist/components/button/button.vanilla.js.map +0 -1
  81. package/dist/components/button/index.d.ts +0 -3
  82. package/dist/components/button/types.d.ts +0 -28
  83. package/dist/components/checkbox/checkbox.css.d.ts +0 -35
  84. package/dist/components/checkbox/checkbox.d.ts +0 -21
  85. package/dist/components/checkbox/checkbox.js +0 -68
  86. package/dist/components/checkbox/checkbox.js.map +0 -1
  87. package/dist/components/checkbox/checkbox.vanilla.js +0 -9
  88. package/dist/components/checkbox/checkbox.vanilla.js.map +0 -1
  89. package/dist/components/checkbox/index.d.ts +0 -3
  90. package/dist/components/checkbox/types.d.ts +0 -38
  91. package/dist/components/chip/chip.css.d.ts +0 -31
  92. package/dist/components/chip/chip.d.ts +0 -30
  93. package/dist/components/chip/chip.js +0 -106
  94. package/dist/components/chip/chip.js.map +0 -1
  95. package/dist/components/chip/chip.vanilla.js +0 -8
  96. package/dist/components/chip/chip.vanilla.js.map +0 -1
  97. package/dist/components/chip/index.d.ts +0 -3
  98. package/dist/components/chip/types.d.ts +0 -31
  99. package/dist/components/collection/collection.d.ts +0 -13
  100. package/dist/components/collection/collection.js +0 -15
  101. package/dist/components/collection/collection.js.map +0 -1
  102. package/dist/components/collection/index.d.ts +0 -1
  103. package/dist/components/combo-box/combo-box.css.d.ts +0 -22
  104. package/dist/components/combo-box/combo-box.d.ts +0 -8
  105. package/dist/components/combo-box/combo-box.js +0 -87
  106. package/dist/components/combo-box/combo-box.js.map +0 -1
  107. package/dist/components/combo-box/combo-box.vanilla.js +0 -8
  108. package/dist/components/combo-box/combo-box.vanilla.js.map +0 -1
  109. package/dist/components/combo-box/index.d.ts +0 -3
  110. package/dist/components/combo-box/types.d.ts +0 -32
  111. package/dist/components/dialog/dialog.css.d.ts +0 -34
  112. package/dist/components/dialog/dialog.d.ts +0 -18
  113. package/dist/components/dialog/dialog.js +0 -146
  114. package/dist/components/dialog/dialog.js.map +0 -1
  115. package/dist/components/dialog/dialog.vanilla.js +0 -8
  116. package/dist/components/dialog/dialog.vanilla.js.map +0 -1
  117. package/dist/components/dialog/index.d.ts +0 -3
  118. package/dist/components/dialog/types.d.ts +0 -48
  119. package/dist/components/drawer/drawer.css.d.ts +0 -33
  120. package/dist/components/drawer/drawer.d.ts +0 -13
  121. package/dist/components/drawer/drawer.js +0 -199
  122. package/dist/components/drawer/drawer.js.map +0 -1
  123. package/dist/components/drawer/drawer.vanilla.js +0 -10
  124. package/dist/components/drawer/drawer.vanilla.js.map +0 -1
  125. package/dist/components/drawer/index.d.ts +0 -3
  126. package/dist/components/drawer/types.d.ts +0 -71
  127. package/dist/components/element/element.d.ts +0 -11
  128. package/dist/components/element/element.js +0 -21
  129. package/dist/components/element/element.js.map +0 -1
  130. package/dist/components/element/index.d.ts +0 -2
  131. package/dist/components/element/types.d.ts +0 -21
  132. package/dist/components/group/group.css.d.ts +0 -14
  133. package/dist/components/group/group.d.ts +0 -10
  134. package/dist/components/group/group.js +0 -44
  135. package/dist/components/group/group.js.map +0 -1
  136. package/dist/components/group/group.vanilla.js +0 -7
  137. package/dist/components/group/group.vanilla.js.map +0 -1
  138. package/dist/components/group/index.d.ts +0 -3
  139. package/dist/components/group/types.d.ts +0 -35
  140. package/dist/components/icon/icon.css.d.ts +0 -18
  141. package/dist/components/icon/icon.d.ts +0 -12
  142. package/dist/components/icon/icon.js +0 -26
  143. package/dist/components/icon/icon.js.map +0 -1
  144. package/dist/components/icon/icon.vanilla.js +0 -8
  145. package/dist/components/icon/icon.vanilla.js.map +0 -1
  146. package/dist/components/icon/index.d.ts +0 -3
  147. package/dist/components/icon/types.d.ts +0 -13
  148. package/dist/components/index.d.ts +0 -26
  149. package/dist/components/input/index.d.ts +0 -3
  150. package/dist/components/input/input.css.d.ts +0 -29
  151. package/dist/components/input/input.d.ts +0 -8
  152. package/dist/components/input/input.js +0 -93
  153. package/dist/components/input/input.js.map +0 -1
  154. package/dist/components/input/input.vanilla.js +0 -8
  155. package/dist/components/input/input.vanilla.js.map +0 -1
  156. package/dist/components/input/types.d.ts +0 -44
  157. package/dist/components/menu/index.d.ts +0 -3
  158. package/dist/components/menu/menu.css.d.ts +0 -75
  159. package/dist/components/menu/menu.d.ts +0 -24
  160. package/dist/components/menu/menu.js +0 -155
  161. package/dist/components/menu/menu.js.map +0 -1
  162. package/dist/components/menu/menu.vanilla.js +0 -8
  163. package/dist/components/menu/menu.vanilla.js.map +0 -1
  164. package/dist/components/menu/types.d.ts +0 -48
  165. package/dist/components/merge-provider/index.d.ts +0 -2
  166. package/dist/components/merge-provider/merge-provider.d.ts +0 -14
  167. package/dist/components/merge-provider/merge-provider.js +0 -40
  168. package/dist/components/merge-provider/merge-provider.js.map +0 -1
  169. package/dist/components/merge-provider/types.d.ts +0 -5
  170. package/dist/components/options/index.d.ts +0 -3
  171. package/dist/components/options/options.css.d.ts +0 -79
  172. package/dist/components/options/options.d.ts +0 -20
  173. package/dist/components/options/options.js +0 -152
  174. package/dist/components/options/options.js.map +0 -1
  175. package/dist/components/options/options.vanilla.js +0 -10
  176. package/dist/components/options/options.vanilla.js.map +0 -1
  177. package/dist/components/options/types.d.ts +0 -49
  178. package/dist/components/picker/index.d.ts +0 -3
  179. package/dist/components/picker/picker.css.d.ts +0 -32
  180. package/dist/components/picker/picker.d.ts +0 -18
  181. package/dist/components/picker/picker.js +0 -46
  182. package/dist/components/picker/picker.js.map +0 -1
  183. package/dist/components/picker/picker.stories.css.d.ts +0 -3
  184. package/dist/components/picker/picker.vanilla.js +0 -9
  185. package/dist/components/picker/picker.vanilla.js.map +0 -1
  186. package/dist/components/picker/types.d.ts +0 -28
  187. package/dist/components/popover/index.d.ts +0 -3
  188. package/dist/components/popover/popover.css.d.ts +0 -31
  189. package/dist/components/popover/popover.d.ts +0 -8
  190. package/dist/components/popover/popover.js +0 -110
  191. package/dist/components/popover/popover.js.map +0 -1
  192. package/dist/components/popover/popover.vanilla.js +0 -7
  193. package/dist/components/popover/popover.vanilla.js.map +0 -1
  194. package/dist/components/popover/types.d.ts +0 -32
  195. package/dist/components/query-builder/action-element.d.ts +0 -2
  196. package/dist/components/query-builder/action-element.js +0 -12
  197. package/dist/components/query-builder/action-element.js.map +0 -1
  198. package/dist/components/query-builder/constants.d.ts +0 -4
  199. package/dist/components/query-builder/constants.js +0 -20
  200. package/dist/components/query-builder/constants.js.map +0 -1
  201. package/dist/components/query-builder/dataset-sample.d.ts +0 -91
  202. package/dist/components/query-builder/group.d.ts +0 -5
  203. package/dist/components/query-builder/group.js +0 -87
  204. package/dist/components/query-builder/group.js.map +0 -1
  205. package/dist/components/query-builder/index.d.ts +0 -5
  206. package/dist/components/query-builder/query-builder.css.d.ts +0 -91
  207. package/dist/components/query-builder/query-builder.d.ts +0 -2
  208. package/dist/components/query-builder/query-builder.js +0 -129
  209. package/dist/components/query-builder/query-builder.js.map +0 -1
  210. package/dist/components/query-builder/query-builder.vanilla.js +0 -10
  211. package/dist/components/query-builder/query-builder.vanilla.js.map +0 -1
  212. package/dist/components/query-builder/rule.d.ts +0 -3
  213. package/dist/components/query-builder/rule.js +0 -112
  214. package/dist/components/query-builder/rule.js.map +0 -1
  215. package/dist/components/query-builder/types.d.ts +0 -128
  216. package/dist/components/query-builder/utils.d.ts +0 -29
  217. package/dist/components/query-builder/utils.js +0 -22
  218. package/dist/components/query-builder/utils.js.map +0 -1
  219. package/dist/components/query-builder/value-editor.d.ts +0 -4
  220. package/dist/components/query-builder/value-editor.js +0 -74
  221. package/dist/components/query-builder/value-editor.js.map +0 -1
  222. package/dist/components/query-builder/value-selector.d.ts +0 -2
  223. package/dist/components/query-builder/value-selector.js +0 -28
  224. package/dist/components/query-builder/value-selector.js.map +0 -1
  225. package/dist/components/radio/index.d.ts +0 -3
  226. package/dist/components/radio/radio.css.d.ts +0 -34
  227. package/dist/components/radio/radio.d.ts +0 -16
  228. package/dist/components/radio/radio.js +0 -63
  229. package/dist/components/radio/radio.js.map +0 -1
  230. package/dist/components/radio/radio.vanilla.js +0 -8
  231. package/dist/components/radio/radio.vanilla.js.map +0 -1
  232. package/dist/components/radio/types.d.ts +0 -29
  233. package/dist/components/search-field/index.d.ts +0 -3
  234. package/dist/components/search-field/search-field.css.d.ts +0 -16
  235. package/dist/components/search-field/search-field.d.ts +0 -9
  236. package/dist/components/search-field/search-field.js +0 -60
  237. package/dist/components/search-field/search-field.js.map +0 -1
  238. package/dist/components/search-field/search-field.vanilla.js +0 -7
  239. package/dist/components/search-field/search-field.vanilla.js.map +0 -1
  240. package/dist/components/search-field/types.d.ts +0 -29
  241. package/dist/components/select/index.d.ts +0 -3
  242. package/dist/components/select/select.css.d.ts +0 -25
  243. package/dist/components/select/select.d.ts +0 -8
  244. package/dist/components/select/select.js +0 -80
  245. package/dist/components/select/select.js.map +0 -1
  246. package/dist/components/select/select.vanilla.js +0 -8
  247. package/dist/components/select/select.vanilla.js.map +0 -1
  248. package/dist/components/select/types.d.ts +0 -30
  249. package/dist/components/switch/index.d.ts +0 -3
  250. package/dist/components/switch/switch.css.d.ts +0 -25
  251. package/dist/components/switch/switch.d.ts +0 -4
  252. package/dist/components/switch/switch.js +0 -34
  253. package/dist/components/switch/switch.js.map +0 -1
  254. package/dist/components/switch/switch.vanilla.js +0 -8
  255. package/dist/components/switch/switch.vanilla.js.map +0 -1
  256. package/dist/components/switch/types.d.ts +0 -17
  257. package/dist/components/tabs/index.d.ts +0 -3
  258. package/dist/components/tabs/tabs.css.d.ts +0 -49
  259. package/dist/components/tabs/tabs.d.ts +0 -68
  260. package/dist/components/tabs/tabs.js +0 -108
  261. package/dist/components/tabs/tabs.js.map +0 -1
  262. package/dist/components/tabs/tabs.vanilla.js +0 -11
  263. package/dist/components/tabs/tabs.vanilla.js.map +0 -1
  264. package/dist/components/tabs/types.d.ts +0 -82
  265. package/dist/components/textarea/index.d.ts +0 -3
  266. package/dist/components/textarea/textarea.css.d.ts +0 -31
  267. package/dist/components/textarea/textarea.d.ts +0 -14
  268. package/dist/components/textarea/textarea.js +0 -86
  269. package/dist/components/textarea/textarea.js.map +0 -1
  270. package/dist/components/textarea/textarea.vanilla.js +0 -8
  271. package/dist/components/textarea/textarea.vanilla.js.map +0 -1
  272. package/dist/components/textarea/types.d.ts +0 -39
  273. package/dist/components/tooltip/index.d.ts +0 -3
  274. package/dist/components/tooltip/tooltip.css.d.ts +0 -23
  275. package/dist/components/tooltip/tooltip.d.ts +0 -23
  276. package/dist/components/tooltip/tooltip.js +0 -69
  277. package/dist/components/tooltip/tooltip.js.map +0 -1
  278. package/dist/components/tooltip/tooltip.vanilla.js +0 -8
  279. package/dist/components/tooltip/tooltip.vanilla.js.map +0 -1
  280. package/dist/components/tooltip/types.d.ts +0 -39
  281. package/dist/components/tree/index.d.ts +0 -3
  282. package/dist/components/tree/tree.css.d.ts +0 -73
  283. package/dist/components/tree/tree.d.ts +0 -5
  284. package/dist/components/tree/tree.js +0 -337
  285. package/dist/components/tree/tree.js.map +0 -1
  286. package/dist/components/tree/tree.vanilla.js +0 -11
  287. package/dist/components/tree/tree.vanilla.js.map +0 -1
  288. package/dist/components/tree/types.d.ts +0 -114
  289. package/dist/components/tree/utils.d.ts +0 -8
  290. package/dist/components/tree/utils.js +0 -75
  291. package/dist/components/tree/utils.js.map +0 -1
  292. package/dist/hooks/index.d.ts +0 -8
  293. package/dist/hooks/use-collection-render/index.d.ts +0 -1
  294. package/dist/hooks/use-collection-render/use-collection-render.d.ts +0 -9
  295. package/dist/hooks/use-collection-render/use-collection-render.js +0 -20
  296. package/dist/hooks/use-collection-render/use-collection-render.js.map +0 -1
  297. package/dist/hooks/use-context-props/index.d.ts +0 -1
  298. package/dist/hooks/use-context-props/use-context-props.d.ts +0 -7
  299. package/dist/hooks/use-context-props/use-context-props.js +0 -15
  300. package/dist/hooks/use-context-props/use-context-props.js.map +0 -1
  301. package/dist/hooks/use-defaults/index.d.ts +0 -2
  302. package/dist/hooks/use-defaults/types.d.ts +0 -67
  303. package/dist/hooks/use-defaults/use-defaults.d.ts +0 -56
  304. package/dist/hooks/use-defaults/use-defaults.js +0 -21
  305. package/dist/hooks/use-defaults/use-defaults.js.map +0 -1
  306. package/dist/hooks/use-propagating-press/index.d.ts +0 -1
  307. package/dist/hooks/use-propagating-press/use-propagating-press.d.ts +0 -9
  308. package/dist/hooks/use-propagating-press/use-propagating-press.js +0 -14
  309. package/dist/hooks/use-propagating-press/use-propagating-press.js.map +0 -1
  310. package/dist/hooks/use-slot/index.d.ts +0 -1
  311. package/dist/hooks/use-slot/use-slot.d.ts +0 -13
  312. package/dist/hooks/use-slot/use-slot.js +0 -18
  313. package/dist/hooks/use-slot/use-slot.js.map +0 -1
  314. package/dist/hooks/use-theme/index.d.ts +0 -2
  315. package/dist/hooks/use-theme/types.d.ts +0 -86
  316. package/dist/hooks/use-theme/use-theme.css.d.ts +0 -1
  317. package/dist/hooks/use-theme/use-theme.d.ts +0 -13
  318. package/dist/hooks/use-theme/use-theme.js +0 -64
  319. package/dist/hooks/use-theme/use-theme.js.map +0 -1
  320. package/dist/hooks/use-theme/use-theme.vanilla.js +0 -4
  321. package/dist/hooks/use-theme/use-theme.vanilla.js.map +0 -1
  322. package/dist/hooks/use-tree/index.d.ts +0 -1
  323. package/dist/hooks/use-tree/use-tree.d.ts +0 -2
  324. package/dist/hooks/use-tree/use-tree.js +0 -217
  325. package/dist/hooks/use-tree/use-tree.js.map +0 -1
  326. package/dist/hooks/use-tree/utils.d.ts +0 -6
  327. package/dist/hooks/use-tree/utils.js +0 -77
  328. package/dist/hooks/use-tree/utils.js.map +0 -1
  329. package/dist/hooks/use-update-effect/index.d.ts +0 -1
  330. package/dist/hooks/use-update-effect/use-update-effect.d.ts +0 -1
  331. package/dist/hooks/use-update-effect/use-update-effect.js +0 -20
  332. package/dist/hooks/use-update-effect/use-update-effect.js.map +0 -1
  333. package/dist/ladle/actions.d.ts +0 -1
  334. package/dist/ladle/index.d.ts +0 -1
  335. package/dist/styles/index.d.ts +0 -6
  336. package/dist/styles/layers.css.d.ts +0 -16
  337. package/dist/styles/layers.vanilla.js +0 -4
  338. package/dist/styles/layers.vanilla.js.map +0 -1
  339. package/dist/styles/reset.css.d.ts +0 -1
  340. package/dist/styles/space.css.d.ts +0 -1
  341. package/dist/styles/surfaces.css.d.ts +0 -4
  342. package/dist/styles/surfaces.vanilla.js +0 -4
  343. package/dist/styles/surfaces.vanilla.js.map +0 -1
  344. package/dist/styles/theme.css.d.ts +0 -334
  345. package/dist/styles/theme.vanilla.js +0 -31
  346. package/dist/styles/theme.vanilla.js.map +0 -1
  347. package/dist/styles/typography.css.d.ts +0 -17
  348. package/dist/styles/typography.vanilla.js +0 -8
  349. package/dist/styles/typography.vanilla.js.map +0 -1
  350. package/dist/test/setup.d.ts +0 -1
  351. package/dist/types/deckgl.d.ts +0 -1
  352. package/dist/types/generic.d.ts +0 -3
  353. package/dist/types/index.d.ts +0 -6
  354. package/dist/types/props.d.ts +0 -4
  355. package/dist/types/react-aria.d.ts +0 -91
  356. package/dist/types/use-tree.d.ts +0 -52
  357. package/dist/types/vanilla-extract.d.ts +0 -15
  358. package/dist/utils/css.d.ts +0 -139
  359. package/dist/utils/css.js +0 -145
  360. package/dist/utils/css.js.map +0 -1
  361. package/dist/utils/events.d.ts +0 -10
  362. package/dist/utils/events.js +0 -5
  363. package/dist/utils/events.js.map +0 -1
  364. package/dist/utils/index.d.ts +0 -4
  365. package/dist/utils/props.d.ts +0 -29
  366. package/dist/utils/props.js +0 -108
  367. package/dist/utils/props.js.map +0 -1
  368. package/dist/utils/validators.d.ts +0 -49
  369. package/dist/utils/validators.js +0 -37
  370. package/dist/utils/validators.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"sources":["../src/hooks/use-collection-render/use-collection-render.tsx","../src/utils/events.ts","../src/utils/props.ts","../src/hooks/use-context-props/use-context-props.ts","../src/hooks/use-defaults/use-defaults.tsx","../src/hooks/use-propagating-press/use-propagating-press.ts","../src/hooks/use-slot/use-slot.ts","../src/hooks/use-theme/use-theme.css.ts","../src/hooks/use-theme/use-theme.tsx","../src/hooks/use-update-effect/use-update-effect.ts","../src/hooks/use-tree/utils.ts","../src/hooks/use-tree/use-tree.ts","../src/components/aria/aria.tsx","../src/components/icon/icon.tsx","../src/components/button/button.tsx","../src/components/checkbox/checkbox.tsx","../src/components/chip/chip.tsx","../src/components/merge-provider/merge-provider.tsx","../src/components/collection/collection.tsx","../src/components/input/input.tsx","../src/components/options/options.tsx","../src/components/combo-box/combo-box.tsx","../src/components/element/element.tsx","../src/components/group/group.tsx","../src/components/dialog/dialog.tsx","../src/components/tabs/tabs.tsx","../src/components/tooltip/tooltip.tsx","../src/components/drawer/drawer.tsx","../src/components/menu/menu.tsx","../src/components/number-field/number-field.tsx","../src/components/picker/picker.tsx","../src/components/popover/popover.tsx","../src/components/query-builder/constants.ts","../src/components/radio/radio.tsx","../src/components/select/select.tsx","../src/components/switch/switch.tsx","../src/components/textarea/textarea.tsx","../src/components/query-builder/utils.ts","../src/components/query-builder/action-element.tsx","../src/components/query-builder/group.tsx","../src/components/query-builder/rule.tsx","../src/components/query-builder/value-selector.tsx","../src/components/query-builder/value-editor.tsx","../src/components/query-builder/query-builder.tsx","../src/components/search-field/search-field.tsx","../src/components/text-field/text-field.tsx","../src/components/tree/utils.ts","../src/components/tree/tree.tsx"],"names":["mergePropsWithoutStyles","defaults","useMemo","Provider","createContext","useContext","useRef","useState","clsx","useLayoutEffect","jsx","lookup","tree","getItem","update","value","useCallback","AriaSection","AriaSelectValue","forwardRef","Icon","Button","RACButton","LinkButton","ToggleButton","RACToggleButton","Checkbox","jsxs","RACCheckbox","CheckboxGroup","RACCheckboxGroup","defaultMapping","ChipItem","RACTextContext","ChipGroup","Fragment","Input","RACInputContext","Options","ComboBox","RACComboBox","Element","Group","type","Dialog","RACDialog","useEffect","Tabs","useContextProps","RACTabs","TabList","Children","RACTabList","Tab","RACTab","TabPanels","TabPanel","RACTabPanel","Tooltip","RACTooltip","TooltipTarget","noop","useIsSSR","isOpen","DrawerDialog","DEFAULT_SLOT","defaultSize","Menu","Popover","MenuList","Collection","UNSTABLE_CollectionRendererContext","RACMenu","MenuItem","RACMenuItem","NumberField","RACNumberField","Picker","Section","ListBox","PickerItem","ListBoxItem","RACPopover","Radio","RACRadio","RadioGroup","RACRadioGroup","Select","AriaSelect","Switch","RACSwitch","TextArea","RACTextAreaContext","useControlledState","useFocusRing","useHover","useStopEventPropagation","TestID","RQBuilder","SearchField","RACSearchField","TextField","LabelContext","RACTextField","RACButtonContext","usePress"],"mappings":"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","file":"index.js","sourcesContent":["import { useCachedChildren } from '@react-aria/collections';\nimport type { ItemDropTarget } from '@react-types/shared';\nimport type { ReactNode } from 'react';\nimport type { Collection, Node } from 'react-stately';\n\n/**\n * Copied from RAC, unexported hook: https://github.com/adobe/react-spectrum/blob/main/packages/react-aria-components/src/Collection.tsx#L148\n *\n * Hook serves as the basis of the root and branch renderers for Collections: https://github.com/adobe/react-spectrum/blob/main/packages/react-aria-components/src/Collection.tsx#L139\n */\nexport function useCollectionRender(\n collection: Collection<Node<unknown>>,\n parent: Node<unknown> | null,\n renderDropIndicator?: (target: ItemDropTarget) => ReactNode,\n) {\n return useCachedChildren({\n items: parent ? collection.getChildren!(parent.key) : collection,\n dependencies: [renderDropIndicator],\n children(node) {\n const rendered = node.render!(node);\n\n if (!renderDropIndicator || node.type !== 'item') {\n return rendered;\n }\n\n const { key } = node;\n const keyAfter = collection.getKeyAfter(key);\n\n return (\n <>\n {renderDropIndicator({ type: 'item', key, dropPosition: 'before' })}\n {rendered}\n {(keyAfter == null ||\n collection.getItem(keyAfter)?.type !== 'item') &&\n renderDropIndicator({ type: 'item', key, dropPosition: 'after' })}\n </>\n );\n },\n });\n}\n","// Support React Aria's BaseEvent & PressEvent (and any others the might share the same interface)\ntype ContinuableEvent = {\n continuePropagation: () => void;\n};\n\n/**\n * The default behavior of events within React Aria is to stop progagation\n *\n * To reenable propagation, continuePropagation must be called\n */\nexport function continuePropagation(event: ContinuableEvent) {\n event.continuePropagation();\n}\n","import { clsx } from 'clsx';\nimport { mergeWith } from 'lodash';\nimport type { CSSProperties } from 'react';\nimport { mergeProps as mergePropsWithoutStyles } from 'react-aria';\nimport { composeRenderProps } from 'react-aria-components';\nimport { z } from 'zod';\nimport type {\n ClassNameRenderProps,\n ClassNames,\n RenderProps,\n StylePropRenderProps,\n AsType,\n} from '../types';\n\ntype Props<T extends object> = AsType<T> | null | undefined;\n\n/**\n * Recursively process merging of all class name render props\n */\nfunction processClassNameRenderProps<T extends RenderProps<object>>(\n value: string,\n renderProps: ClassNameRenderProps<object>,\n ...propsToMerge: Props<T>[]\n): string {\n if (!propsToMerge.length) {\n return '';\n }\n\n const [props, ...rest] = propsToMerge;\n\n return clsx(\n value,\n composeRenderProps<string, ClassNameRenderProps<object>, string>(\n props?.className ?? '',\n (prev) => processClassNameRenderProps(prev, renderProps, ...rest),\n )(renderProps),\n );\n}\n\n/**\n * Compose class name render props to be processed and merged\n */\nfunction mergeRenderClassName<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n return composeRenderProps<string, ClassNameRenderProps<object>, string>(\n (renderProps) => renderProps.defaultClassName ?? '',\n (prev, renderProps) =>\n processClassNameRenderProps(prev, renderProps, ...propsToMerge),\n );\n}\n\n/**\n * Merge static class names\n */\nfunction mergeStaticClassName<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n return clsx(\n propsToMerge.reduce<string[]>((acc, props) => {\n if (typeof props?.className !== 'string') {\n return acc;\n }\n\n return [...acc, props.className];\n }, []),\n );\n}\n\n/**\n * Determine if a static or composed merge of class names is necesary based on the presence of functions\n */\nfunction mergeClassNameProps<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n const anyFunctions = propsToMerge.some(\n (props) => typeof props?.className === 'function',\n );\n\n const anyPrimitives = propsToMerge.some(\n (props) => typeof props?.className === 'string',\n );\n\n if (!(anyFunctions || anyPrimitives)) {\n return undefined;\n }\n\n return anyFunctions\n ? mergeRenderClassName(...propsToMerge)\n : mergeStaticClassName(...propsToMerge);\n}\n\nconst classNamesValidator: z.ZodType<ClassNames> = z.record(\n z.string(),\n z.union([z.string(), z.lazy(() => classNamesValidator)]),\n);\n\nconst propsValidator = z.object({\n classNames: classNamesValidator,\n});\n\n/**\n * Deep merges classNames objects within props\n */\nfunction mergeClassNamesProps<T extends object>(...propsToMerge: Props<T>[]) {\n return propsToMerge.reduce<ClassNames | undefined>((acc, props) => {\n const result = propsValidator.safeParse(props);\n\n if (result.success) {\n return acc\n ? mergeWith(acc, result.data.classNames, (accValue, srcValue) =>\n (!accValue || typeof accValue === 'string') &&\n (!srcValue || typeof srcValue === 'string')\n ? clsx(accValue, srcValue)\n : undefined,\n )\n : result.data.classNames;\n }\n\n return acc;\n }, undefined);\n}\n\n/**\n * Deep merges classNames objects by concatenating class values\n *\n * @example\n * mergeClassNames({ foo: 'foo' }, { foo: 'FOO', bar: 'bar' })\n * // returns { foo: 'foo FOO', bar: 'bar' }\n */\nexport function mergeClassNames<T extends ClassNames>(\n ...classNamesToMerge: (T | null | undefined)[]\n) {\n return mergeClassNamesProps(\n ...classNamesToMerge.map((classNames) => ({ classNames })),\n ) as T | undefined;\n}\n\n/**\n * Recursively process merging of all style render props\n */\nfunction processStyleRenderProps<T extends RenderProps<object>>(\n value: CSSProperties,\n renderProps: StylePropRenderProps<object>,\n ...propsToMerge: Props<T>[]\n): CSSProperties {\n if (!propsToMerge.length) {\n return {};\n }\n\n const [props, ...rest] = propsToMerge;\n\n return {\n ...value,\n ...composeRenderProps<\n CSSProperties,\n StylePropRenderProps<object>,\n CSSProperties\n >(props?.style ?? {}, (prev) =>\n processStyleRenderProps(prev, renderProps, ...rest),\n )(renderProps),\n };\n}\n\n/**\n * Compose style render props to be processed and merged\n */\nfunction mergeRenderStyle<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n return composeRenderProps<\n CSSProperties,\n StylePropRenderProps<object>,\n CSSProperties\n >(\n (renderProps) => renderProps.defaultStyle ?? {},\n (prev, renderProps) =>\n processStyleRenderProps(prev, renderProps, ...propsToMerge),\n );\n}\n\n/**\n * Merge static styles\n */\nfunction mergeStaticStyle<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n return propsToMerge.reduce<CSSProperties>((acc, props) => {\n if (!props?.style) {\n return acc;\n }\n\n return {\n ...acc,\n ...props.style,\n };\n }, {});\n}\n\n/**\n * Determine if a static or composed merge of styles is necesary based on the presence of functions\n */\nfunction mergeStyleProps<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n const anyFunctions = propsToMerge.some(\n (props) => typeof props?.style === 'function',\n );\n\n const anyObjects = propsToMerge.some(\n (props) => typeof props?.style === 'object' && props.style != null,\n );\n\n if (!(anyFunctions || anyObjects)) {\n return undefined;\n }\n\n return anyFunctions\n ? mergeRenderStyle(...propsToMerge)\n : mergeStaticStyle(...propsToMerge);\n}\n\n/**\n * Extends the base margeProps functionality to also merge styles and handle class/style render props\n */\nexport function mergeProps<T extends object>(...propsToMerge: Props<T>[]): T {\n const className = mergeClassNameProps(...propsToMerge);\n const classNames = mergeClassNamesProps(...propsToMerge);\n const style = mergeStyleProps(...propsToMerge);\n\n return {\n ...(mergePropsWithoutStyles(...propsToMerge) as T),\n ...(className ? { className } : {}),\n ...(classNames ? { classNames } : {}),\n ...(style ? { style } : {}),\n };\n}\n\n/**\n * A helper for not having to reimplement the type check for a renderProp value being a function or not everywhere\n */\nexport function callRenderProps<T extends object, R>(\n value: R | ((renderProps: T) => R),\n values: T,\n) {\n if (typeof value === 'function') {\n return (value as (renderProps: T) => R)(values);\n }\n\n return value;\n}\n\n/**\n * A helper function to pair with React Aria's render props. Typically\n * implemented with children, className and styles\n *\n * Allows for the injection of additional renderProps that a component\n * from React Aria may not already provide\n *\n * If the value isn't a renderProp function, then it is passed through unchanged\n */\nexport function wrapRenderProps<T extends object, U extends object, R>(\n value: R | ((renderProps: T & U) => R),\n inject?: U,\n) {\n if (typeof value === 'function') {\n return (renderProps: T) =>\n (value as (renderProps: T & U) => R)({\n ...renderProps,\n ...inject,\n } as T & U);\n }\n\n return value;\n}\n","import { mergeRefs, useObjectRef } from '@react-aria/utils';\nimport {\n type Context,\n type ForwardedRef,\n type RefObject,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n type SlotProps,\n useSlottedContext,\n} from 'react-aria-components';\nimport { mergeProps } from '../../utils';\n\n/**\n * Reimplementation of React Aria's useContextProps, to utilize our own\n * mergeProps which handles renderProps and classNames\n */\nexport function useContextProps<T, U extends SlotProps, E extends Element>(\n props: T & SlotProps,\n ref: ForwardedRef<E>,\n context: Context<ContextValue<U, E>>,\n): [T, RefObject<E | null>] {\n const value = (useSlottedContext(context, props.slot) ?? {}) as Partial<T> & {\n ref?: ForwardedRef<E>;\n };\n\n const { ref: contextRef, ...contextProps } = value;\n\n return [\n mergeProps(contextProps as Partial<T>, props) as T,\n useObjectRef(useMemo(() => mergeRefs(ref, contextRef), [ref, contextRef])),\n ];\n}\n","import { createContext, useContext, useMemo } from 'react';\nimport { mergeProps } from '../../utils';\nimport type { DefaultsContext, DefaultsProviderProps } from './types';\n\nconst defaultsContext = createContext<DefaultsContext>({});\n\n/**\n * Access globally established component prop defaults\n */\nexport function useDefaults() {\n return useContext(defaultsContext);\n}\n\n/**\n * Select default props from context and merge with provided props\n * with provided props taking precedence\n */\nexport function useDefaultProps<\n K extends keyof DefaultsContext,\n P extends DefaultsContext[K],\n>(props: P, key: K): P {\n const defaults = useDefaults();\n\n const defaultProps = useMemo(\n () => (defaults[key] ?? {}) as Partial<P>,\n [defaults, key],\n );\n\n return useMemo(\n () => mergeProps(defaultProps, props) as P,\n [defaultProps, props],\n );\n}\n\n/**\n * Set default props for any component, to be merged in with props at point\n * of implementation. Global defaults take lower priority than props from\n * composition context or props attached to instance\n *\n * Nested instances of this provider will shallow merge defaults from parent\n * context, with the defaults prop taking precedence\n */\nexport function DefaultsProvider({\n children,\n defaults: defaultsProp,\n}: DefaultsProviderProps) {\n const defaults = useDefaults();\n\n const context = useMemo(\n () => ({ ...defaults, ...defaultsProp }),\n [defaults, defaultsProp],\n );\n\n const { Provider } = defaultsContext;\n\n return <Provider value={context}>{children}</Provider>;\n}\n","import { type PressHookProps, usePress } from 'react-aria';\nimport { continuePropagation, mergeProps } from '../../utils';\n\n/**\n * The default behavior of usePress is to stop all propagation of press events\n *\n * To allow the more typical behavior of event propagation by default, this hook\n * continues propagation of press events. This allows for nested press event\n * listeners to not block press event listeners higher in the heirarchy\n */\nexport function usePropagatingPress(props: PressHookProps) {\n return usePress(\n mergeProps(\n {\n onPress: continuePropagation,\n onPressEnd: continuePropagation,\n onPressStart: continuePropagation,\n onPressUp: continuePropagation,\n },\n props,\n ),\n );\n}\n","import {\n type RefCallback,\n useCallback,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\n/**\n * Detects whether a slot has been utilized\n *\n * Example:\n * Parent component implements RAC Provider, with a slotted context\n * Child component implements slot prop matching provided slot in context\n * Parent is able to see that the slot has been fulfilled\n *\n * Copied from RAC: https://github.com/adobe/react-spectrum/blob/main/packages/react-aria-components/src/utils.tsx#L213\n * Due to not being exported, but quite handy\n */\nexport function useSlot(): [RefCallback<Element>, boolean] {\n // Assume we do have the slot in the initial render.\n let [hasSlot, setHasSlot] = useState(true);\n let hasRun = useRef(false);\n\n // A callback ref which will run when the slotted element mounts.\n // This should happen before the useLayoutEffect below.\n let ref = useCallback((el: HTMLElement | null) => {\n hasRun.current = true;\n setHasSlot(!!el);\n }, []);\n\n // If the callback hasn't been called, then reset to false.\n useLayoutEffect(() => {\n if (!hasRun.current) {\n setHasSlot(false);\n }\n }, []);\n\n return [ref, hasSlot];\n}\n","import 'src/styles/layers.css.ts.vanilla.css?source=#H4sIAAAAAAAAA62SSQ6DMAxF9z1FT4DK1EFsuEkUwLSMKQ6i4vaVqsalsAAFb7x5/m9h/7iWI+DxM7VA0NAL0VVJ15Wn6BD/0RxlAy+Fldlw1zecLxkkFjKpQRvi7ckuiFO7BvrMYs/AgFnsGxgyiwMDz8zi0MDLdrHux4n1uj2YquapWmh7Ct92hZdoUhrJrqbaJOxqKk7KrqbqZOxqKg/M1WoAxCL7tSRf33DmZPLMu1WcHvawitNTCqs4Hb60itNxq+gN/XvV29IFAAA=';\nimport 'src/hooks/use-theme/use-theme.css.ts.vanilla.css?source=QGxheWVyIGxheWVyc19mcmFtZXdvcmtfX3FrYnFxajEubGF5ZXJzX3N0eWxlc19fcWticXFqODsKQGxheWVyIGxheWVyc19mcmFtZXdvcmtfX3FrYnFxajEubGF5ZXJzX3N0eWxlc19fcWticXFqOCB7CiAgLnVzZS10aGVtZV9yb290X181aXB3N2EwIHsKICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogIH0KfQ==';\nexport var root = 'use-theme_root__5ipw7a0';","import { useLayoutEffect } from '@react-aria/utils';\nimport { clsx } from 'clsx';\nimport { createContext, useContext, useMemo, useRef, useState } from 'react';\nimport {\n defaultGenericColors,\n defaultElevations,\n defaultFocus,\n defaultRadius,\n defaultSemanticColors,\n defaultSizes,\n defaultSpace,\n defaultTypography,\n defaultZIndex,\n} from '../../styles';\nimport type { Contract } from '../../types';\nimport { computeContract } from '../../utils';\nimport type { ThemeContext, ThemeProviderProps } from './types';\nimport { root } from './use-theme.css';\n\nconst defaultTheme: ThemeContext = {};\nconst themeContext = createContext<ThemeContext>(defaultTheme);\nconst themeCssContext = createContext<CSSStyleDeclaration | null>(null);\n\n/**\n * Computes CSS values into DeckGL compatible formats using the optionally provided contract\n *\n * This function allows for the reuse of CSS contract tokens within React context for non-CSS\n * use cases. This ensures synchronized theming across the entire rendering stack\n */\nexport function useTheme<T extends Contract>(\n contract?: T,\n): ThemeContext & {\n contract?: ReturnType<typeof computeContract<T>>;\n} {\n const theme = useContext(themeContext);\n const css = useContext(themeCssContext);\n\n return useMemo(\n () => ({\n ...theme,\n ...(!!contract && !!css\n ? {\n contract: computeContract(contract, css),\n }\n : {}),\n }),\n [theme, contract, css],\n );\n}\n\nfunction localInheritOrDefault(\n localClass?: string,\n inherit?: boolean,\n defaultClass?: string,\n) {\n return localClass ?? (!inherit && defaultClass);\n}\n\nexport function ThemeProvider({\n children,\n className: classNameProp,\n inherit,\n style: styleProp,\n theme: themeProp = defaultTheme,\n vars,\n}: ThemeProviderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [css, setCss] = useState<CSSStyleDeclaration | null>(null);\n const parent = useTheme();\n\n const className = useMemo(\n () =>\n clsx(\n root,\n classNameProp,\n inherit && parent.className,\n themeProp.className,\n localInheritOrDefault(\n vars?.colors?.generic,\n inherit,\n defaultGenericColors,\n ),\n localInheritOrDefault(\n vars?.colors?.semantic,\n inherit,\n defaultSemanticColors,\n ),\n localInheritOrDefault(vars?.elevation, inherit, defaultElevations),\n localInheritOrDefault(vars?.focus, inherit, defaultFocus),\n localInheritOrDefault(vars?.radius, inherit, defaultRadius),\n localInheritOrDefault(vars?.sizes, inherit, defaultSizes),\n localInheritOrDefault(vars?.space, inherit, defaultSpace),\n localInheritOrDefault(vars?.typography, inherit, defaultTypography),\n localInheritOrDefault(vars?.zIndex, inherit, defaultZIndex),\n ),\n [\n classNameProp,\n inherit,\n parent.className,\n themeProp.className,\n vars?.colors?.generic,\n vars?.colors?.semantic,\n vars?.elevation,\n vars?.focus,\n vars?.radius,\n vars?.sizes,\n vars?.space,\n vars?.typography,\n vars?.zIndex,\n ],\n );\n\n const style = useMemo(\n () => ({\n ...(inherit ? parent.style : {}),\n ...themeProp.style,\n ...styleProp,\n }),\n [inherit, parent.style, themeProp.style, styleProp],\n );\n\n const theme = useMemo(\n () => ({\n ...(inherit ? parent : themeProp),\n className,\n style,\n }),\n [inherit, parent, themeProp, className, style],\n );\n\n useLayoutEffect(() => {\n if (ref.current) {\n setCss(window.getComputedStyle(ref.current));\n }\n }, [className, style]);\n\n const { Provider: ClassesProvider } = themeContext;\n const { Provider: CssProvider } = themeCssContext;\n\n return (\n <div ref={ref} className={className} style={style}>\n <ClassesProvider value={theme}>\n <CssProvider value={css}>{children}</CssProvider>\n </ClassesProvider>\n </div>\n );\n}\n","import { useEffect, useRef } from 'react';\n\nfunction useIsFirstMount(): boolean {\n const isFirst = useRef(true);\n\n if (isFirst.current) {\n isFirst.current = false;\n\n return true;\n }\n\n return isFirst.current;\n}\n\nexport function useUpdateEffect(effect: () => void, deps: any) {\n const isFirstMount = useIsFirstMount();\n\n useEffect(() => {\n if (!isFirstMount) {\n return effect();\n }\n }, deps);\n}\n","import type { Key } from 'react-aria';\nimport type { TreeNode, TreeNodes } from '../../types';\n\nexport function getChildren<T>(node: TreeNodes<T>) {\n return 'nodes' in node ? node.nodes : [];\n}\n\nexport function getKey<T>(node: TreeNodes<T>) {\n return node.id;\n}\n\nexport function mapTree<T>(\n node: TreeNode<T>,\n callback: (node: TreeNode<T>) => TreeNode<T> | undefined | void,\n): TreeNode<T> {\n let changed = false;\n\n const children = node.children.map((child) => {\n const update = mapTree(child, callback);\n\n if (update !== child) {\n changed = true;\n }\n\n return update;\n });\n\n if (changed) {\n node = {\n ...node,\n children,\n };\n }\n\n return callback(node) ?? node;\n}\n\ntype VisibilityUpdateContext = {\n forceIsViewable: boolean;\n parent: {\n isViewable: boolean;\n isVisible: boolean;\n };\n toggle: Key[];\n};\n\nexport function toggleVisibility<T>(\n nodes: TreeNode<T>[],\n target: Key = '',\n isViewable?: boolean,\n): TreeNode<T>[] {\n const toggle: Key[] = [];\n\n let result = toggleVisibilityInternal(nodes, target, isViewable, {\n forceIsViewable: false,\n parent: { isViewable: true, isVisible: true },\n toggle,\n });\n\n while ((target = toggle.shift() ?? '')) {\n result = toggleVisibilityInternal(result, target, undefined, {\n forceIsViewable: false,\n parent: { isViewable: true, isVisible: true },\n toggle,\n });\n }\n\n return result;\n}\n\nfunction toggleVisibilityInternal<T>(\n nodes: TreeNode<T>[],\n target: Key,\n state: boolean | undefined,\n { forceIsViewable, parent, toggle }: VisibilityUpdateContext,\n): TreeNode<T>[] {\n return nodes.map((node) => {\n const isViewable =\n forceIsViewable ||\n (target === node.key\n ? (state ?? !node.value.isViewable)\n : node.value.isViewable);\n\n const isVisible = parent.isVisible && isViewable;\n const willUpdateIsViewable = node.value.isViewable != isViewable;\n\n // Toggle on parent if child of inactive parent is toggled on\n if (\n node.parentKey &&\n willUpdateIsViewable &&\n isViewable &&\n !parent.isVisible\n ) {\n toggle.push(node.parentKey);\n }\n\n // Toggle off parent if last active child is toggled off\n if (\n node.parentKey &&\n willUpdateIsViewable &&\n !isViewable &&\n parent.isVisible &&\n areSiblingsUnviewable(nodes, node)\n ) {\n toggle.push(node.parentKey);\n }\n\n return {\n ...node,\n children: toggleVisibilityInternal(node.children, target, state, {\n // Toggle all children on if all are inactive and parent is toggled on\n forceIsViewable:\n forceIsViewable ||\n (willUpdateIsViewable &&\n !!isViewable &&\n areUnviewable(node.children)),\n parent: {\n isViewable: !!isViewable,\n isVisible: !!isVisible,\n },\n toggle,\n }),\n value: {\n ...node.value,\n isViewable,\n isVisible,\n },\n };\n });\n}\n\nfunction areUnviewable<T>(nodes: TreeNode<T>[]): boolean {\n return nodes.every(\n ({ children, value }) =>\n !value.isViewable && (!children.length || areUnviewable<T>(children)),\n );\n}\n\nfunction areSiblingsUnviewable<T>(nodes: TreeNode<T>[], node: TreeNode<T>) {\n return areUnviewable(nodes.filter((n) => n !== node));\n}\n","import { isEqual } from 'lodash';\nimport { useCallback, useId, useMemo, useRef } from 'react';\nimport { type Key, useTreeData } from 'react-stately';\nimport { useUpdateEffect } from '../use-update-effect';\nimport type {\n TreeActions,\n TreeNode,\n TreeNodes,\n UseTreeOptions,\n UseTreeResult,\n} from '../../types';\nimport { getChildren, getKey, mapTree, toggleVisibility } from './utils';\n\nexport function useTree<T>({\n allowsExpansion = true,\n allowsVisibility = false,\n nodes,\n selectionMode = 'none',\n onSelectionChange,\n onUpdate,\n}: UseTreeOptions<T>): UseTreeResult<T> {\n const rootKey = useId();\n const nodesRef = useRef(nodes);\n\n const list = useTreeData({\n initialItems: nodes,\n getChildren,\n getKey,\n });\n\n // Allow nodes prop to override list items\n useUpdateEffect(() => {\n if (isEqual(nodesRef.current, nodes)) return;\n\n nodesRef.current = nodes;\n\n list.remove(...list.items.map(({ key }) => key));\n\n if (nodes.length) {\n list.append(null, ...nodes);\n }\n }, [nodes]);\n\n useUpdateEffect(() => {\n if (selectionMode === 'none' && list.selectedKeys.size) {\n list.setSelectedKeys(new Set());\n }\n }, [selectionMode, list.selectedKeys.size]);\n\n /**\n * useTreeData doesn't update the state of TreeNode.value when updates\n * are made to children.\n *\n * Given the structure:\n * Foo\n * - Bar\n * - Cat\n *\n * There will be TreeNodes for each item, with a value that represents\n * the original node passed in. If an update occurs to one of the child\n * nodes (Bar, Cat), then Foo node's value is NOT updated to reflect that\n * change. This means that each node is the source of truth only for itself\n * and not any of its children.\n *\n * To provide a completely accurate tree, we need to override the getItem\n * and update methods, as well as replace the list.items with a tree that\n * is completely accurate at all times. This requires storing (depth first)\n * each node in a lookup, so that parent node's values can be updated to\n * reflect the current state of their children.\n */\n const { lookup, tree, getItem, update } = useMemo(() => {\n const lookup: Record<Key, TreeNode<T>> = {};\n\n let tree = mapTree(\n {\n key: rootKey,\n children: list.items,\n } as TreeNode<T>,\n (node) => {\n if (node.key === rootKey) return;\n\n node = lookup[node.key] = getItem(node.key);\n\n return node;\n },\n );\n\n if (allowsVisibility) {\n tree = mapTree(\n {\n key: rootKey,\n children: toggleVisibility(tree.children),\n } as TreeNode<T>,\n (node) => {\n if (node.key === rootKey) return;\n\n lookup[node.key] = node;\n\n return node;\n },\n );\n }\n\n function getItem(key: Key): TreeNode<T> {\n let node = lookup[key];\n\n if (node) return node;\n\n node = list.getItem(key);\n\n if ('nodes' in node.value) {\n return {\n ...node,\n value: {\n ...node.value,\n nodes: node.children.flatMap((child) => {\n const value = lookup[child.key]?.value;\n\n if (value) {\n return [value];\n }\n\n return [];\n }),\n },\n };\n }\n\n return node;\n }\n\n function update(key: Key, patch: Partial<TreeNodes<T>>) {\n const node = getItem(key);\n\n let value: TreeNode<T>['value'];\n\n if ('nodes' in node.value) {\n value = {\n ...node.value,\n ...patch,\n // Disallow a parent update to change child values\n nodes: node.children.flatMap((child) => {\n const value = lookup[child.key]?.value;\n\n if (value) {\n return [value];\n }\n\n return [];\n }),\n };\n } else {\n value = {\n ...node.value,\n ...patch,\n };\n }\n\n /**\n * We must immediately update the state of the lookup due to the\n * possibility of a queue of state changes and we can't allow for\n * a parent to update and wipe out a previous child update\n */\n lookup[key] = {\n ...node,\n value,\n };\n\n list.update(key, value);\n }\n\n return { lookup, tree, getItem, update };\n }, [rootKey, list, allowsVisibility]);\n\n const treeRef = useRef(tree);\n\n /**\n * Because tree is a computed value and there are so many methods\n * that update list.items, it's far simpler to fire the onUpdate\n * during the render cycle. However, this means that onUpdate can\n * only be used for side effect purposes and should not trigger\n * state updates\n */\n useUpdateEffect(() => {\n if (isEqual(treeRef.current, tree)) return;\n\n treeRef.current = tree;\n\n onUpdate?.(tree.children.map(({ value }) => value));\n }, [tree]);\n\n const previousExpansionValuesRef = useRef<\n {\n key: Key;\n patch: { isExpanded?: boolean };\n }[]\n >([]);\n\n const revertIsExpanded = useCallback(() => {\n if (!previousExpansionValuesRef.current.length) return;\n\n previousExpansionValuesRef.current.forEach(({ key, patch }) =>\n update(key, patch),\n );\n\n previousExpansionValuesRef.current = [];\n }, [update]);\n\n const toggleIsExpanded = useCallback<TreeActions<T>['toggleIsExpanded']>(\n (selection = 'all', isExpanded = undefined, isRevertable = false) => {\n if (!allowsExpansion && !isRevertable) return;\n\n if (!isRevertable) {\n previousExpansionValuesRef.current = [];\n }\n\n function toggle({ key, value }: TreeNode<T>) {\n if (key === rootKey || !('nodes' in value)) return;\n\n if (isRevertable) {\n previousExpansionValuesRef.current.push({\n key,\n patch: { isExpanded: value.isExpanded },\n });\n }\n\n update(key, { isExpanded: isExpanded ?? !value.isExpanded });\n }\n\n if (selection === 'all') {\n return mapTree(tree, toggle);\n }\n\n mapTree(tree, (node) => {\n if (!selection.has(node.key)) return;\n\n toggle(node);\n });\n },\n [allowsExpansion, tree, rootKey, update],\n );\n\n const toggleIsSelected = useCallback<TreeActions<T>['toggleIsSelected']>(\n (selection = 'all', isSelected = undefined) => {\n if (\n selectionMode === 'none' ||\n (selectionMode === 'single' &&\n (selection === 'all' || selection.size > 1))\n ) {\n return;\n }\n\n const all = Object.values(lookup);\n\n let keys =\n selection === 'all' ? new Set(all.map(({ key }) => key)) : selection;\n\n if (isSelected != null) {\n keys = isSelected ? keys : new Set();\n\n list.setSelectedKeys(keys);\n\n return onSelectionChange?.(\n (selection === 'all' || keys.size === all.length) && isSelected\n ? 'all'\n : keys,\n );\n }\n\n keys = new Set([\n ...(selectionMode === 'multiple'\n ? [...list.selectedKeys].filter(\n (key) => !(selection as Set<Key>).has(key),\n )\n : []),\n ...[...keys].filter((key) => !list.selectedKeys.has(key)),\n ]);\n\n list.setSelectedKeys(keys);\n\n onSelectionChange?.(\n selection === 'all' && keys.size === all.length ? 'all' : keys,\n );\n },\n [selectionMode, lookup, list, onSelectionChange],\n );\n\n const toggleIsViewable = useCallback<TreeActions<T>['toggleIsViewable']>(\n (selection = 'all', isViewable = undefined) => {\n if (!allowsVisibility) return;\n\n if (selection === 'all') {\n return mapTree(tree, ({ key, value }) => {\n if (key === rootKey) return;\n\n update(key, {\n isViewable: isViewable ?? !value.isViewable,\n });\n });\n }\n\n mapTree(\n {\n key: rootKey,\n children: Array.from(selection).reduce(\n (acc, key) => toggleVisibility(acc, key, isViewable),\n tree.children,\n ),\n } as TreeNode<T>,\n ({ key, value }) => {\n if (key === rootKey) return;\n\n update(key, { isViewable: value.isViewable });\n },\n );\n },\n [allowsVisibility, tree, rootKey, update],\n );\n\n return useMemo(() => {\n const { items: _, selectedKeys, ...rest } = list;\n\n return {\n actions: {\n ...rest,\n getItem,\n revertIsExpanded,\n toggleIsExpanded,\n toggleIsSelected,\n toggleIsViewable,\n update,\n },\n allowsExpansion,\n allowsVisibility,\n lookup,\n selectedKeys,\n selectionMode,\n tree,\n };\n }, [\n list,\n allowsExpansion,\n allowsVisibility,\n lookup,\n selectionMode,\n tree,\n getItem,\n revertIsExpanded,\n toggleIsExpanded,\n toggleIsSelected,\n toggleIsViewable,\n update,\n ]);\n}\n","import {\n createContext,\n forwardRef,\n type ForwardedRef,\n type RefAttributes,\n type ReactNode,\n} from 'react';\nimport {\n FieldError,\n Group,\n Header,\n Heading,\n Keyboard,\n Label,\n Section,\n SelectValue,\n Separator,\n Text,\n type ContextValue,\n type SectionProps,\n type SelectValueProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks';\n\n/**\n * To better align with the guidance from RAC about establishing a unique\n * context for components to avoid conflict of props being provided by RAC\n * and C2DS components, this wrapping utility accepts an RAC and returns\n * a wrapped version along with the new context for the C2DS to use\n */\nfunction wrap<P extends object, E extends HTMLElement>(\n Component: (props: P & RefAttributes<E>) => ReactNode,\n) {\n const Context = createContext<ContextValue<P, E>>(null);\n\n return {\n // biome-ignore lint/style/useNamingConvention: intentional\n Component: forwardRef<E, P>(function WrappedComponent(props, ref) {\n [props, ref] = useContextProps(props, ref, Context);\n\n return <Component {...props} ref={ref} />;\n }),\n Context,\n };\n}\n\nexport const { Component: AriaFieldError, Context: AriaFieldErrorContext } =\n wrap(FieldError);\n\nexport const { Component: AriaGroup, Context: AriaGroupContext } = wrap(Group);\n\nexport const { Component: AriaHeader, Context: AriaHeaderContext } =\n wrap(Header);\n\nexport const { Component: AriaHeading, Context: AriaHeadingContext } =\n wrap(Heading);\n\nexport const { Component: AriaKeyboard, Context: AriaKeyboardContext } =\n wrap(Keyboard);\n\nexport const { Component: AriaLabel, Context: AriaLabelContext } = wrap(Label);\n\nexport const { Component: AriaSeparator, Context: AriaSeparatorContext } =\n wrap(Separator);\n\nexport const { Component: AriaText, Context: AriaTextContext } = wrap(Text);\n\n/**\n * Due to the complexity of types and technical constraints of TS, it's not\n * possible for the above wrapping utility to support components that accept\n * generic parameters. This means that these components must be manually wrapped\n */\n\nexport const AriaSectionContext =\n createContext<ContextValue<SectionProps<object>, HTMLElement>>(null);\n\nexport const AriaSection = forwardRef(function AriaSection<T extends object>(\n props: SectionProps<T>,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, AriaSectionContext);\n\n return <Section {...props} ref={ref} />;\n});\n\nexport const AriaSelectValueContext =\n createContext<ContextValue<SelectValueProps<object>, HTMLSpanElement>>(null);\n\nexport const AriaSelectValue = forwardRef(function AriaSelectValue<\n T extends object,\n>(props: SelectValueProps<T>, ref: ForwardedRef<HTMLSpanElement>) {\n [props, ref] = useContextProps(props, ref, AriaSelectValueContext);\n\n return <SelectValue {...props} ref={ref} />;\n});\n","import { type ForwardedRef, createContext, forwardRef, useMemo } from 'react';\nimport type { ContextValue } from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { inlineVars, mergeClassNames } from '../../utils';\nimport { iconClassNames, iconStateVars } from './icon.css';\nimport type { IconProps } from './types';\n\nexport const IconContext =\n createContext<ContextValue<IconProps, HTMLDivElement>>(null);\n\nexport const Icon = forwardRef(function Icon(\n props: IconProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, IconContext);\n\n props = useDefaultProps(props, 'Icon');\n\n const {\n children,\n classNames: classNamesProp,\n color,\n fill,\n size = 'relative',\n stroke,\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(iconClassNames, theme.Icon, classNamesProp),\n [theme.Icon, classNamesProp],\n );\n\n const style = useMemo(\n () =>\n inlineVars(iconStateVars, {\n color,\n fill,\n size,\n stroke,\n }),\n [color, fill, size, stroke],\n );\n\n return (\n <div ref={ref} className={classNames?.container} style={style}>\n <div className={classNames?.icon}>{children}</div>\n </div>\n );\n});\n","import { clsx } from 'clsx';\nimport { noop } from 'lodash';\nimport {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type Context,\n type ForwardedRef,\n} from 'react';\nimport {\n Link,\n Provider,\n Button as RACButton,\n ToggleButton as RACToggleButton,\n type ButtonRenderProps,\n type ContextValue,\n type LinkRenderProps,\n type ToggleButtonRenderProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { bodies, surfaces } from '../../styles';\nimport type { OmitProtectedProps } from '../../types';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { IconContext, type IconProps } from '../icon';\nimport { buttonClassNames, buttonStateVars } from './button.css';\nimport type {\n ButtonMapping,\n ButtonProps,\n ButtonSizes,\n LinkButtonProps,\n ToggleButtonProps,\n} from './types';\n\nconst noopToggleState = { isSelected: false, setSelected: noop, toggle: noop };\nconst buttonSizes: ButtonSizes[] = ['xs', 'sm', 'md', 'lg', 'xl'];\n\nconst defaultMapping: ButtonMapping = {\n font: bodies,\n icon: buttonSizes.reduce(\n (acc, size) => {\n acc[size] = { size };\n\n return acc;\n },\n {} as Record<ButtonSizes, OmitProtectedProps<IconProps>>,\n ),\n};\n\nfunction useButton<\n P extends ButtonProps | LinkButtonProps | ToggleButtonProps,\n E extends HTMLElement,\n>(\n props: P,\n ref: ForwardedRef<E>,\n context: Context<ContextValue<P, E>>,\n key: 'Button' | 'LinkButton' | 'ToggleButton',\n) {\n [props, ref] = useContextProps(props, ref, context);\n\n props = useDefaultProps(props, key);\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n color = 'primary',\n mapping: mappingProp,\n size = 'md',\n variant = 'solid',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(buttonClassNames, theme.Button, classNamesProp, {\n button: clsx(\n mapping.font[size],\n variant === 'floating' && surfaces.default.proud,\n ),\n }),\n [theme.Button, classNamesProp, mapping.font, size, variant],\n );\n\n const style = useCallback(\n (\n renderProps:\n | ButtonRenderProps\n | LinkRenderProps\n | ToggleButtonRenderProps,\n ) =>\n inlineVars(buttonStateVars, {\n isCurrent: false,\n isSelected: false,\n ...renderProps,\n color,\n size,\n variant,\n }),\n [color, size, variant],\n );\n\n const values = useMemo<\n [[typeof IconContext, ContextValue<IconProps, HTMLDivElement>]]\n >(() => [[IconContext, mapping.icon[size]]], [mapping.icon, size]);\n\n const children = useCallback(\n (\n renderProps:\n | ButtonRenderProps\n | LinkRenderProps\n | ToggleButtonRenderProps,\n ) => (\n <Provider values={values}>\n <span className={classNames?.button}>\n {callRenderProps(childrenProp, {\n state: noopToggleState,\n isCurrent: false,\n isPending: false,\n isSelected: false,\n ...renderProps,\n })}\n </span>\n </Provider>\n ),\n [values, classNames?.button, childrenProp],\n );\n\n return useMemo(\n () => ({ ...rest, ref, children, className: classNames?.container, style }),\n [rest, ref, children, classNames?.container, style],\n );\n}\n\nexport const ButtonContext =\n createContext<ContextValue<ButtonProps, HTMLButtonElement>>(null);\n\nexport const Button = forwardRef(function Button(\n props: ButtonProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n const buttonProps = useButton(props, ref, ButtonContext, 'Button');\n\n return <RACButton {...buttonProps} />;\n});\n\nexport const LinkButtonContext =\n createContext<ContextValue<LinkButtonProps, HTMLAnchorElement>>(null);\n\nexport const LinkButton = forwardRef(function LinkButton(\n props: LinkButtonProps,\n ref: ForwardedRef<HTMLAnchorElement>,\n) {\n const buttonProps = useButton(props, ref, LinkButtonContext, 'LinkButton');\n\n return <Link {...buttonProps} />;\n});\n\nexport const ToggleButtonContext =\n createContext<ContextValue<ToggleButtonProps, HTMLButtonElement>>(null);\n\nexport const ToggleButton = forwardRef(function ToggleButton(\n props: ToggleButtonProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n const buttonProps = useButton(\n props,\n ref,\n ToggleButtonContext,\n 'ToggleButton',\n );\n\n return <RACToggleButton {...buttonProps} />;\n});\n","import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n} from 'react';\nimport {\n Provider,\n Checkbox as RACCheckbox,\n CheckboxGroup as RACCheckboxGroup,\n TextContext,\n type ContextValue,\n type LabelProps,\n type TextProps,\n} from 'react-aria-components';\nimport {\n useContextProps,\n useDefaultProps,\n useSlot,\n useTheme,\n} from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaLabelContext, AriaTextContext } from '../aria';\nimport { IconContext, type IconProps } from '../icon';\nimport {\n checkboxClassNames,\n checkboxGroupStateVars,\n checkboxStateVars,\n} from './checkbox.css';\nimport type {\n CheckboxGroupProps,\n CheckboxGroupRenderProps,\n CheckboxProps,\n CheckboxRenderProps,\n} from './types';\n\nexport const CheckboxContext =\n createContext<ContextValue<CheckboxProps, HTMLLabelElement>>(null);\n\nexport const Checkbox = forwardRef(function Checkbox(\n props: CheckboxProps,\n ref: ForwardedRef<HTMLLabelElement>,\n) {\n [props, ref] = useContextProps(props, ref, CheckboxContext);\n\n props = useDefaultProps(props, 'Checkbox');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput = 'end',\n ...rest\n } = props;\n\n const [iconRef, hasIcon] = useSlot();\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(checkboxClassNames, theme.Checkbox, classNamesProp),\n [theme.Checkbox, classNamesProp],\n );\n\n const style = useCallback(\n ({ ...renderProps }: CheckboxRenderProps) =>\n inlineVars(checkboxStateVars, {\n ...renderProps,\n alignInput,\n }),\n [alignInput],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [typeof TextContext, ContextValue<TextProps, HTMLElement>],\n ]\n >(\n () => [\n [AriaTextContext, { className: classNames?.checkbox?.label }],\n [\n IconContext,\n {\n ref: iconRef,\n classNames: classNames?.checkbox?.icon,\n },\n ],\n [TextContext, null],\n ],\n [classNames?.checkbox?.label, classNames?.checkbox?.icon, iconRef],\n );\n\n const children = useCallback(\n (renderProps: CheckboxRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.checkbox?.checkbox}>\n {!hasIcon && (\n <span className={classNames?.checkbox?.icon?.container} />\n )}\n {callRenderProps(childrenProp, renderProps)}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.checkbox, hasIcon, values],\n );\n\n return (\n <RACCheckbox\n {...rest}\n ref={ref}\n className={classNames?.checkbox?.container}\n style={style}\n >\n {children}\n </RACCheckbox>\n );\n});\n\nexport const CheckboxGroupContext =\n createContext<ContextValue<CheckboxGroupProps, HTMLDivElement>>(null);\n\nexport const CheckboxGroup = forwardRef(function CheckboxGroup(\n props: CheckboxGroupProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, CheckboxGroupContext);\n\n props = useDefaultProps(props, 'CheckboxGroup');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput = 'end',\n orientation = 'vertical',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(checkboxClassNames, theme.Checkbox, classNamesProp),\n [classNamesProp, theme.Checkbox],\n );\n\n const style = useCallback(\n (renderProps: CheckboxGroupRenderProps) =>\n inlineVars(checkboxGroupStateVars, {\n ...renderProps,\n orientation,\n }),\n [orientation],\n );\n\n const values = useMemo<\n [\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof CheckboxContext, ContextValue<CheckboxProps, HTMLLabelElement>],\n ]\n >(\n () => [\n [AriaLabelContext, { className: classNames?.group?.label }],\n [\n CheckboxContext,\n {\n classNames,\n alignInput,\n },\n ],\n ],\n [alignInput, classNames],\n );\n\n const children = useCallback(\n (renderProps: CheckboxGroupRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.group?.group}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.group, values],\n );\n\n return (\n <RACCheckboxGroup\n {...rest}\n ref={ref}\n className={classNames?.group?.container}\n style={style}\n >\n {children}\n </RACCheckboxGroup>\n );\n});\n","import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n} from 'react';\nimport {\n Provider,\n TextContext as RACTextContext,\n Tag,\n TagGroup,\n TagList,\n type ContextValue,\n type TagRenderProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaTextContext } from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { chipClassNames, chipStateVars } from './chip.css';\nimport type {\n ChipGroupProps,\n ChipItemProps,\n ChipListProps,\n ChipMapping,\n ChipProps,\n} from './types';\n\nconst defaults: Required<Pick<ChipProps, 'color' | 'size'>> = {\n color: 'info',\n size: 'sm',\n};\n\nconst defaultMapping: ChipMapping = {\n font: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n remove: {\n sm: { size: 'sm', variant: 'icon' },\n lg: { size: 'sm', variant: 'icon' },\n },\n};\n\nexport function Chip(props: ChipProps) {\n props = useDefaultProps(props, 'Chip');\n\n const {\n children,\n classNames: classNamesProp,\n color = defaults.color,\n mapping: mappingProp,\n size = defaults.size,\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(chipClassNames, theme.Chip, classNamesProp, {\n chip: mapping.font[size],\n }),\n [theme.Chip, classNamesProp, mapping, size],\n );\n\n const values = useMemo<\n [[typeof AriaTextContext, ContextValue<TextProps, HTMLElement>]]\n >(\n () => [[AriaTextContext, { className: classNames?.label }]],\n [classNames?.label],\n );\n\n const style = useMemo(\n () =>\n inlineVars(chipStateVars, {\n allowsRemoving: false,\n color,\n selectionBehavior: 'toggle',\n selectionMode: 'none',\n size,\n isDisabled: false,\n isFocused: false,\n isFocusVisible: false,\n isHovered: false,\n isPressed: false,\n isSelected: false,\n }),\n [color, size],\n );\n\n return (\n <Provider values={values}>\n <div className={classNames?.container} style={style}>\n <div className={classNames?.chip}>{children}</div>\n </div>\n </Provider>\n );\n}\n\nexport const ChipContext =\n createContext<ContextValue<ChipItemProps, HTMLDivElement>>(null);\n\n/**\n * Must be used in conjunction with ChipList & ChipGroup and\n * cannot be used outside of ChipList, else will throw error\n *\n * Color & Size props can be passed in from ChipGroup and overriden\n * on each instance of this components\n *\n * Order of precedence (from lowest to highest):\n * Design System Defaults of Chip\n * Global Defaults of ChipGroup\n * Instance of ChipGroup\n * Global Defaults of ChipItem\n * Instance of ChipItem\n */\nexport const ChipItem = forwardRef(function ChipItem(\n props: ChipItemProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, ChipContext);\n props = useDefaultProps(props, 'Chip');\n\n const {\n children: childrenProp,\n id,\n classNames: classNamesProp,\n color = defaults.color,\n size = defaults.size,\n textValue,\n mapping: mappingProp,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(chipClassNames, theme.Chip, classNamesProp, {\n chip: mapping.font[size],\n }),\n [theme.Chip, classNamesProp, mapping, size],\n );\n\n const values = useMemo<\n [\n [typeof RACTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n ]\n >(\n () => [\n // Because ChipGroup (TagGroup) implements a TextContext, we need to block it inside of the Chip\n // so that there isn't a conflict of with our AriaTextContext. Otherwise there are slot errors\n [RACTextContext, null],\n [AriaTextContext, { className: classNames?.label }],\n [\n ButtonContext,\n {\n ...mapping.remove[size],\n classNames: { button: classNames?.remove },\n slot: 'remove',\n },\n ],\n ],\n [classNames?.label, classNames?.remove, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: TagRenderProps) =>\n inlineVars(chipStateVars, {\n ...renderProps,\n color,\n size,\n }),\n [color, size],\n );\n\n const children = useCallback(\n (renderProps: TagRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.chip}>\n {callRenderProps(childrenProp, renderProps)}\n </div>\n </Provider>\n ),\n [values, classNames?.chip, childrenProp],\n );\n\n return (\n <Tag\n {...rest}\n ref={ref}\n id={id ?? textValue}\n className={classNames?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </Tag>\n );\n});\n\n/**\n * Must be used in conjunction with ChipItem & ChipGroup and\n * cannot be used outside of ChipGroup, else will throw error\n */\nexport function ChipList<T extends object>({\n classNames: classNamesProp,\n ...rest\n}: ChipListProps<T>) {\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(chipClassNames, theme.Chip, classNamesProp),\n [theme.Chip, classNamesProp],\n );\n\n return <TagList<T> {...rest} className={classNames?.list} />;\n}\n\nexport const ChipGroupContext =\n createContext<ContextValue<ChipGroupProps, HTMLDivElement>>(null);\n\n/**\n * Color & Size props are passed down to ChipItem but can be overridden\n * on each component if desired\n */\nexport const ChipGroup = forwardRef(function ChipGroup(\n props: ChipGroupProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, ChipGroupContext);\n props = useDefaultProps(props, 'ChipGroup');\n\n const { children, classNames: classNamesProp, color, size, ...rest } = props;\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(chipClassNames, theme.Chip, classNamesProp),\n [theme.Chip, classNamesProp],\n );\n\n const values = useMemo<\n [[typeof ChipContext, ContextValue<ChipItemProps, HTMLDivElement>]]\n >(\n () => [[ChipContext, { classNames, color, size }]],\n [classNames, color, size],\n );\n\n return (\n <TagGroup {...rest} ref={ref} className={classNames?.group}>\n <Provider values={values}>{children}</Provider>\n </TagGroup>\n );\n});\n","import type { Context, ReactNode } from 'react';\nimport { mergeProps } from '../../utils';\nimport type { MergeProviderProps } from './types';\n\nfunction merge<T>(context: Context<T>, next: T, children: ReactNode) {\n return function Consumer(prev: T) {\n let merged = next;\n\n if (\n prev != null &&\n next != null &&\n typeof prev === 'object' &&\n typeof next === 'object'\n ) {\n const prevSlots =\n 'slots' in prev && (prev.slots as Record<string | symbol, object>);\n\n const nextSlots =\n 'slots' in next && (next.slots as Record<string | symbol, object>);\n\n if (prevSlots && nextSlots) {\n merged = {\n ...prev,\n ...next,\n slots: {\n ...prevSlots,\n ...nextSlots,\n ...Reflect.ownKeys(nextSlots).reduce<\n Record<string | symbol, object>\n >((acc, key) => {\n const value = nextSlots[key];\n\n if (Object.hasOwn(prevSlots, key)) {\n acc[key] = mergeProps(prevSlots[key], value);\n }\n\n return acc;\n }, {}),\n },\n } as T;\n } else if (!prevSlots && !nextSlots) {\n merged = mergeProps(prev as object, next as object) as T;\n }\n }\n\n return <context.Provider value={merged}>{children}</context.Provider>;\n };\n}\n\n/**\n * Merges provided contexts with parent contexts, if available and of the same structure\n * If parent context doesn't exist or differs in structure (slotted vs non-slotted) from\n * the context being provided, the provided context will override the parent context\n *\n * This is typically used in conjunction with React Aria Component's contexts, where a\n * RAC may provide a slotted context (ex: ButtonContext, with a slot of \"remove\") where\n * that slot has a number of attributes and event listeners, but we want to merge in our\n * own to supplement things for stylistic or additional functionality purposes\n *\n * See tests for examples\n */\nexport function MergeProvider<A, B, C, D, E, F, G, H, I, J, K>({\n values,\n children,\n}: MergeProviderProps<A, B, C, D, E, F, G, H, I, J, K>) {\n for (let [context, next] of values) {\n children = (\n <context.Consumer>\n {merge(context as Context<typeof next>, next, children)}\n </context.Consumer>\n );\n }\n\n return <>{children}</>;\n}\n","import { useContext, type Context } from 'react';\nimport type { CollectionRenderer } from 'react-aria-components';\nimport type { Collection, Node } from 'react-stately';\nimport { useCollectionRender } from '../../hooks';\nimport { MergeProvider, type MergeProviderProps } from '../merge-provider';\n\n/**\n * Replace the default collection renderer to allow for injection of\n * context props for multiple composed components. Also enables use of\n * Section as wrapper of list items at the top level as a styleable\n * element within the RAC container\n */\nexport function createCollectionRenderer<\n C extends { readonly collection: Collection<Node<unknown>> },\n V extends MergeProviderProps['values'],\n>(context: Context<C>, values: V): CollectionRenderer {\n return {\n // biome-ignore lint/style/useNamingConvention: intentional\n CollectionRoot: ({ renderDropIndicator }) => (\n <MergeProvider values={values}>\n {useCollectionRender(\n useContext(context)?.collection,\n null,\n renderDropIndicator,\n )}\n </MergeProvider>\n ),\n // biome-ignore lint/style/useNamingConvention: intentional\n CollectionBranch: ({ collection, parent, renderDropIndicator }) => (\n <MergeProvider values={values}>\n {useCollectionRender(collection, parent, renderDropIndicator)}\n </MergeProvider>\n ),\n };\n}\n","import { useControlledState } from '@react-stately/utils';\nimport {\n type ChangeEvent,\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport { useFocusRing, useHover } from 'react-aria';\nimport {\n type ContextValue,\n InputContext as RACInputContext,\n type InputProps as RACInputProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { inputs } from '../../styles';\nimport { inlineVars, mergeClassNames, mergeProps } from '../../utils';\nimport { inputClassNames, inputStateVars } from './input.css';\nimport type { InputMapping, InputProps } from './types';\n\nconst defaultMapping: InputMapping = {\n sizer: {\n sm: inputs.sm,\n lg: inputs.lg,\n },\n input: {\n sm: inputs.sm,\n lg: inputs.lg,\n },\n};\n\nexport const InputContext =\n createContext<ContextValue<InputProps, HTMLInputElement>>(null);\n\n/**\n * Only intended for generic text-like inputs, see types in props for list\n * Other more specific inputs should be handled by other components\n */\nexport const Input = forwardRef(function Input(\n props: InputProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n [props, ref] = useContextProps(props, ref, RACInputContext);\n\n // Disallow props possibly provided by React Aria context\n // could be render props functions we don't want to support\n delete (props as RACInputProps).className;\n delete (props as RACInputProps).style;\n\n // Duplicate context prop merging to support React Aria's context\n // and our own which establishes a superset type for the props\n [props, ref] = useContextProps(props, ref, InputContext);\n\n props = useDefaultProps(props, 'Input');\n\n const {\n classNames: classNamesProp,\n defaultValue = '',\n disabled: isDisabled = false,\n mapping: mappingProp,\n placeholder,\n readOnly: isReadOnly = false,\n required: isRequired = false,\n size = 'lg',\n type = 'text',\n value: valueProp,\n onChange,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n 'aria-invalid': ariaInvalid,\n ...rest\n } = props;\n\n const [value, setValue] = useControlledState(valueProp, defaultValue);\n const length = (`${value ?? ''}`.length || placeholder?.length) ?? 0;\n const isInvalid = !!ariaInvalid && ariaInvalid !== 'false';\n const isPlaceholder = !!placeholder && !value;\n const isEmpty = !value;\n\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n autoFocus: props.autoFocus,\n isTextInput: true,\n });\n\n const { hoverProps, isHovered } = useHover({\n isDisabled,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n });\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(inputClassNames, theme.Input, classNamesProp, {\n sizer: mapping.sizer[size],\n input: mapping.input[size],\n }),\n [theme.Input, classNamesProp, mapping, size],\n );\n\n const mergedProps = useMemo(\n () => mergeProps(rest, focusProps, hoverProps),\n [focusProps, hoverProps, rest],\n );\n\n const style = useMemo(\n () =>\n inlineVars(inputStateVars, {\n length,\n size,\n type,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n }),\n [\n length,\n size,\n type,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n ],\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n\n if (!event.defaultPrevented) {\n setValue(event.target.value);\n }\n },\n [onChange, setValue],\n );\n\n return (\n <div className={classNames?.container} style={style}>\n <div className={classNames?.sizer}>\n <input\n {...mergedProps}\n ref={ref}\n className={classNames?.input}\n disabled={isDisabled}\n placeholder={placeholder}\n readOnly={isReadOnly}\n required={isRequired}\n type={type}\n value={value}\n onChange={handleChange}\n aria-invalid={ariaInvalid}\n />\n </div>\n </div>\n );\n});\n","import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n type HTMLAttributes,\n} from 'react';\nimport {\n Collection,\n ListBox,\n ListBoxItem,\n ListStateContext,\n Popover,\n Provider,\n UNSTABLE_CollectionRendererContext,\n type CollectionRenderer,\n type ContextValue,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n type PopoverRenderProps,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n} from 'react-aria-components';\nimport {\n useContextProps,\n useDefaultProps,\n useSlot,\n useTheme,\n} from '../../hooks';\nimport { bodies, headings } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext, type IconProps } from '../icon';\nimport {\n optionsClassNames,\n optionsItemStateVars,\n optionsStateVars,\n} from './options.css';\nimport type {\n OptionsItemProps,\n OptionsListProps,\n OptionsMapping,\n OptionsProps,\n} from './types';\n\nconst defaultMapping: OptionsMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n header: {\n sm: headings.v4,\n lg: headings.v5,\n },\n label: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n shortcut: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const OptionsContext =\n createContext<ContextValue<OptionsProps, HTMLElement>>(null);\n\nexport const Options = forwardRef(function Options(\n props: OptionsProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsContext);\n props = useDefaultProps(props, 'Options');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {\n options: {\n container: theme.className, // required to consume global theme within Popover\n },\n }),\n [theme.className, theme.Options, classNamesProp],\n );\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const style = useCallback(\n ({ ...renderProps }: PopoverRenderProps) => ({\n ...theme.style, // required to consume global styles within Popover\n ...inlineVars(optionsStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof OptionsListContext,\n ContextValue<OptionsListProps<object>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[OptionsListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.options?.options}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.options?.options, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.options?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const OptionsListContext =\n createContext<ContextValue<OptionsListProps<object>, HTMLDivElement>>(null);\n\ntype OptionsListContexts = [\n [\n typeof OptionsItemContext,\n ContextValue<OptionsItemProps<object>, HTMLDivElement>,\n ],\n [typeof AriaSectionContext, ContextValue<SectionProps<object>, HTMLElement>],\n [\n typeof AriaHeaderContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n [typeof AriaSeparatorContext, ContextValue<SeparatorProps, HTMLElement>],\n];\n\nexport const OptionsList = forwardRef(function OptionList<T extends object>(\n props: OptionsListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsListContext);\n props = useDefaultProps(props, 'OptionsList');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n items,\n mapping: mappingProp,\n selectionMode = 'single',\n size = defaultSize,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Options, classNamesProp, mapping, size],\n );\n\n const values = useMemo<OptionsListContexts>(\n () => [\n [OptionsItemContext, { classNames, size, mapping }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, size, mapping],\n );\n\n const style = useCallback(\n (renderProps: ListBoxRenderProps) =>\n inlineVars(optionsItemStateVars, { ...renderProps, size }),\n [size],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <AriaSection className={classNames?.list?.list}>\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </AriaSection>\n );\n }, [classNames?.list?.list, childrenProp, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n () => createCollectionRenderer(ListStateContext, values),\n [values],\n );\n\n return (\n <UNSTABLE_CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n </UNSTABLE_CollectionRendererContext.Provider>\n );\n});\n\nexport const OptionsItemContext =\n createContext<ContextValue<OptionsItemProps<object>, HTMLDivElement>>(null);\n\nexport const OptionsItem = forwardRef(function OptionItem<T extends object>(\n props: OptionsItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsItemContext);\n props = useDefaultProps(props, 'OptionsItem');\n\n const {\n id,\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, classNamesProp, theme.Options, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Options, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(optionsItemStateVars, {\n ...renderProps,\n size,\n hasDescription,\n }),\n [hasDescription, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [\n typeof AriaKeyboardContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n ]\n >(\n () => [\n [\n AriaTextContext,\n {\n slots: {\n label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [IconContext, { classNames: classNames?.item?.icon }],\n [AriaKeyboardContext, { className: classNames?.item?.shortcut }],\n ],\n [\n classNames?.item?.label,\n descriptionRef,\n classNames?.item?.description,\n classNames?.item?.icon,\n classNames?.item?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => {\n const content = callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n });\n\n return (\n <Provider values={values}>\n <div className={classNames?.item?.item}>\n {typeof content === 'string' ? (\n <AriaText slot='label'>{content}</AriaText>\n ) : (\n content\n )}\n </div>\n </Provider>\n );\n },\n [childrenProp, classNames?.item?.item, size, values],\n );\n\n return (\n <ListBoxItem<T>\n {...rest}\n id={id ?? textValue}\n ref={ref as ForwardedRef<T>}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n","import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n} from 'react';\nimport {\n Provider,\n ComboBox as RACComboBox,\n type ComboBoxRenderProps,\n type ContextValue,\n type FieldErrorProps,\n type LabelProps,\n type GroupProps as RACGroupProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n AriaFieldErrorContext,\n AriaGroupContext,\n AriaLabelContext,\n AriaTextContext,\n} from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { InputContext, type InputProps } from '../input';\nimport { OptionsContext, type OptionsProps } from '../options';\nimport { comboBoxClassNames, comboBoxStateVars } from './combo-box.css';\nimport type { ComboBoxMapping, ComboBoxProps } from './types';\n\nconst defaultMapping: ComboBoxMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n toggle: {\n sm: { size: 'sm', variant: 'icon' },\n lg: { size: 'md', variant: 'icon' },\n },\n};\n\nexport const ComboBoxContext =\n createContext<ContextValue<ComboBoxProps<object>, HTMLDivElement>>(null);\n\nexport const ComboBox = forwardRef(function ComboBox<T extends object>(\n props: ComboBoxProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, ComboBoxContext);\n props = useDefaultProps(props, 'ComboBox');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = 'lg',\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(comboBoxClassNames, theme.ComboBox, classNamesProp, {\n description: mapping.description[size],\n error: mapping.error[size],\n }),\n [theme.ComboBox, classNamesProp, mapping, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof AriaGroupContext, ContextValue<RACGroupProps, HTMLDivElement>],\n [typeof InputContext, ContextValue<InputProps, HTMLInputElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n [typeof OptionsContext, ContextValue<OptionsProps, HTMLElement>],\n ]\n >(\n () => [\n [\n AriaLabelContext,\n {\n className: classNames?.label,\n },\n ],\n [\n AriaGroupContext,\n {\n className: classNames?.group,\n },\n ],\n [InputContext, { classNames: classNames?.input, size }],\n [\n ButtonContext,\n {\n ...mapping.toggle[size],\n classNames: classNames?.toggle,\n },\n ],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n [OptionsContext, { classNames: classNames?.options, size }],\n ],\n [classNames, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: ComboBoxRenderProps) =>\n inlineVars(comboBoxStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n\n const children = useCallback(\n (renderProps: ComboBoxRenderProps) => (\n <div className={classNames?.comboBox}>\n <Provider values={values}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </Provider>\n </div>\n ),\n [classNames?.comboBox, values, childrenProp],\n );\n\n return (\n <RACComboBox\n {...props}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </RACComboBox>\n );\n});\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext, forwardRef, type ForwardedRef } from 'react';\nimport { type ContextValue, Provider } from 'react-aria-components';\nimport { useContextProps } from '../../hooks';\nimport { MergeProvider } from '../merge-provider';\nimport type { ElementProps } from './types';\n\nexport const ElementContext =\n createContext<\n ContextValue<\n ElementProps<any, any, any, any, any, any, any, any, any, any, any>,\n HTMLElement\n >\n >(null);\n\n/**\n * This generic component serves as any easy way for more complex components\n * to establish stylable content areas within their layout with optional\n * targetted contexts for any subcomponents\n *\n * See Dialog & Drawer as examples\n */\nexport const Element = forwardRef(function Element<\n A,\n B,\n C,\n D,\n E,\n F,\n G,\n H,\n I,\n J,\n K,\n>(\n props: ElementProps<A, B, C, D, E, F, G, H, I, J, K>,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, ElementContext);\n\n const { as: El = 'div', values, mergeValues, ...rest } = props;\n\n // @ts-expect-error Can't narrow props type to match element or ref, making this less dynamic runs into union complexity and performance issues\n let children = <El {...rest} ref={ref} />;\n\n if (mergeValues) {\n children = <MergeProvider values={mergeValues}>{children}</MergeProvider>;\n }\n\n if (values) {\n children = <Provider values={values}>{children}</Provider>;\n }\n\n return children;\n});\n","import {\n Children,\n createContext,\n forwardRef,\n useMemo,\n type ForwardedRef,\n type ReactElement,\n} from 'react';\nimport type { ContextValue } from 'react-aria-components';\nimport { useContextProps, useTheme } from '../../hooks';\nimport { inlineVars, mergeClassNames } from '../../utils';\nimport { MergeProvider } from '../merge-provider';\nimport { groupClassNames, groupStateVars } from './group.css';\nimport type { GroupProps } from './types';\n\nexport const GroupContext =\n // Unforunately, using \"unknown\" or \"object\" here creates complex type issues with <Provider />\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n createContext<ContextValue<GroupProps<any, Element>, HTMLDivElement>>(null);\n\n/**\n * This generic component allows for collective prop distribution to a collection of components of the same type\n *\n * @example A list of <Button />s and you want to control their size instead of passing the same props to each\n */\nexport const Group = forwardRef(function Group<T, E extends Element>(\n props: GroupProps<T, E>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, GroupContext);\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n context,\n orientation = 'horizontal',\n reverse = false,\n values: valuesProp,\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(groupClassNames, theme.Group, classNamesProp),\n [theme.Group, classNamesProp],\n );\n\n const style = useMemo(() => {\n const types = Children.toArray(childrenProp).reduce<Set<string>>(\n (acc, child) => {\n if (\n child &&\n typeof child !== 'boolean' &&\n typeof child !== 'number' &&\n typeof child !== 'string'\n ) {\n const type = (child as ReactElement).type;\n // @ts-expect-error TS doesn't know about \"render\" type\n const name = typeof type !== 'string' ? type.render?.name : type;\n\n if (name) {\n acc.add(name);\n }\n }\n\n return acc;\n },\n new Set<string>(),\n );\n\n const type = { 0: 'Empty', 1: [...types].at(0) }[types.size] ?? 'Mixed';\n\n return inlineVars(groupStateVars, {\n count: Children.count(childrenProp),\n orientation,\n reverse,\n type,\n });\n }, [childrenProp, orientation, reverse]);\n\n const values = useMemo<\n [[Exclude<typeof context, undefined>, ContextValue<T, E>]]\n >(() => [[context!, valuesProp]], [context, valuesProp]);\n\n const children = useMemo(\n () => (\n <div ref={ref} className={classNames?.container} style={style}>\n <div className={classNames?.group}>{childrenProp}</div>\n </div>\n ),\n [ref, classNames?.container, classNames?.group, style, childrenProp],\n );\n\n return context && valuesProp ? (\n <MergeProvider values={values}>{children}</MergeProvider>\n ) : (\n children\n );\n});\n","import { useIsSSR } from '@react-aria/ssr';\nimport {\n createContext,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ForwardedRef,\n type HTMLAttributes,\n} from 'react';\nimport {\n DEFAULT_SLOT,\n Modal,\n ModalOverlay,\n Provider,\n Dialog as RACDialog,\n type ContextValue,\n type ModalRenderProps,\n} from 'react-aria-components';\nimport {\n useContextProps,\n useDefaultProps,\n useSlot,\n useTheme,\n} from '../../hooks';\nimport { headings } from '../../styles';\nimport type { OmitProtectedProps } from '../../types';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaHeadingContext } from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { ElementContext, type ElementProps } from '../element';\nimport { GroupContext, type GroupProps } from '../group';\nimport { dialogClassNames, dialogStateVars } from './dialog.css';\nimport type { DialogMapping, DialogProps, DialogSizes } from './types';\n\nconst dialogSizes: DialogSizes[] = ['sm', 'lg'];\n\nconst defaultMapping: DialogMapping = {\n heading: {\n sm: { className: headings.v4 },\n lg: { className: headings.v2 },\n },\n actions: {\n context: ButtonContext,\n orientation: 'horizontal',\n reverse: true,\n },\n primary: dialogSizes.reduce(\n (acc, size) => {\n acc[size] = { size };\n\n return acc;\n },\n {} as Record<DialogSizes, OmitProtectedProps<ButtonProps>>,\n ),\n secondary: dialogSizes.reduce(\n (acc, size) => {\n acc[size] = { size, variant: 'bare' };\n\n return acc;\n },\n {} as Record<DialogSizes, OmitProtectedProps<ButtonProps>>,\n ),\n};\n\nexport const DialogContext =\n createContext<ContextValue<DialogProps, HTMLDivElement>>(null);\n\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, DialogContext);\n props = useDefaultProps(props, 'Dialog');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n parentRef,\n role,\n size = 'lg',\n ...rest\n } = props;\n\n const theme = useTheme();\n const isSSR = useIsSSR();\n const [portal, setPortal] = useState(isSSR ? null : document.body);\n\n const isGlobal = useMemo(\n () => !isSSR && portal === document.body,\n [isSSR, portal],\n );\n\n const mapping = useMemo(\n () => ({ ...defaultMapping, ...mappingProp }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(dialogClassNames, theme.Dialog, classNamesProp, {\n container: isGlobal ? theme.className : undefined,\n }),\n [theme.Dialog, classNamesProp, isGlobal, theme.className],\n );\n\n const [headerRef, hasHeader] = useSlot();\n\n const style = useCallback(\n ({ state, ...renderProps }: ModalRenderProps) => ({\n ...(isGlobal ? theme.style : {}),\n ...inlineVars(dialogStateVars, {\n hasHeader,\n size,\n ...renderProps,\n isGlobal,\n }),\n }),\n [size, theme.style, isGlobal, hasHeader],\n );\n\n const values = useMemo<\n [\n [\n typeof ElementContext,\n ContextValue<\n ElementProps<\n ContextValue<HTMLAttributes<HTMLElement>, HTMLHeadingElement>,\n ContextValue<\n GroupProps<ButtonProps, HTMLButtonElement>,\n HTMLDivElement\n >\n >,\n HTMLElement\n >,\n ],\n ]\n >(\n () => [\n [\n ElementContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n header: {\n as: 'header',\n className: classNames?.header,\n ref: headerRef,\n values: [\n [\n AriaHeadingContext,\n {\n ...mapping.heading[size],\n slot: 'title',\n },\n ],\n [GroupContext, null],\n ],\n },\n content: { className: classNames?.content },\n footer: {\n as: 'footer',\n className: classNames?.footer,\n values: [\n [AriaHeadingContext, null],\n [\n GroupContext,\n {\n values: {\n slots: {\n [DEFAULT_SLOT]: mapping.primary[size] ?? {},\n secondary: mapping.secondary[size] ?? {},\n },\n },\n ...mapping.actions,\n },\n ],\n ],\n },\n },\n },\n ],\n ],\n [\n classNames?.header,\n classNames?.content,\n classNames?.footer,\n headerRef,\n mapping.actions,\n mapping.heading,\n mapping.primary,\n mapping.secondary,\n size,\n ],\n );\n\n const children = useCallback(\n (renderProps: ModalRenderProps) => (\n <Provider values={values}>\n <Modal className={classNames?.modal}>\n <RACDialog className={classNames?.dialog} role={role}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n isGlobal,\n isOpen: renderProps.state.isOpen,\n })}\n </RACDialog>\n </Modal>\n </Provider>\n ),\n [\n values,\n classNames?.modal,\n classNames?.dialog,\n role,\n childrenProp,\n isGlobal,\n ],\n );\n\n useEffect(() => {\n const node = parentRef?.current;\n const port = isSSR ? null : document.createElement('div');\n\n if (node && port) {\n port.classList.add(classNames?.portal ?? '');\n\n node.appendChild(port);\n\n setPortal(port);\n }\n\n return () => {\n port?.remove();\n\n setPortal(isSSR ? null : document.body);\n };\n }, [isSSR, parentRef, classNames?.portal]);\n\n if (!portal) return null;\n\n return (\n <ModalOverlay\n {...rest}\n ref={ref}\n className={classNames?.container}\n style={style}\n UNSTABLE_portalContainer={portal}\n >\n {children}\n </ModalOverlay>\n );\n});\n","import {\n Children,\n createContext,\n type ForwardedRef,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n Provider,\n Tab as RACTab,\n TabList as RACTabList,\n TabPanel as RACTabPanel,\n Tabs as RACTabs,\n type SlotProps,\n useContextProps,\n} from 'react-aria-components';\nimport type { RequiredDeep } from 'type-fest';\nimport { useDefaultProps, usePropagatingPress, useTheme } from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n tabListStateVars,\n tabPanelsStateVars,\n tabPanelStateVars,\n tabsClassNames,\n tabStateVars,\n} from './tabs.css';\nimport type {\n TabsClassNames,\n TabListProps,\n TabPanelProps,\n TabPanelRenderProps,\n TabPanelsProps,\n TabProps,\n TabRenderProps,\n TabsProps,\n} from './types';\n\nexport const TEST_IDS: RequiredDeep<TabsClassNames> = {\n tabs: 'tabs',\n list: {\n container: 'tabs.list.container',\n list: 'tabs.list',\n },\n tab: {\n container: 'tabs.tab.container',\n tab: 'tabs.tab',\n },\n panels: {\n container: 'tabs.panels.container',\n panels: 'tabs.panels',\n },\n panel: {\n container: 'tabs.panel.container',\n panel: 'tabs.panel',\n },\n};\n\nexport const TabsContext =\n createContext<ContextValue<TabsProps, HTMLDivElement>>(null);\n\n/**\n * A required wrapper for other Tabs components, which manages\n * and provides the state context. Other Tabs components will\n * throw an error if not wrapped with this component\n *\n * NOTE: TabList & TabPanels do not have to be direct children\n * of this component. Additional layout can be introduced around\n * this components children\n */\nexport const Tabs = forwardRef(function Tabs(\n props: TabsProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabsContext);\n props = useDefaultProps(props, 'Tabs');\n\n const { classNames: classNamesProp, ...rest } = props;\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const values = useMemo<\n [\n [\n typeof TabListContext,\n ContextValue<TabListProps<unknown>, HTMLDivElement>,\n ],\n [typeof TabPanelsContext, ContextValue<TabPanelsProps, HTMLDivElement>],\n ]\n >(\n () => [\n [TabListContext, { classNames }],\n [TabPanelsContext, { classNames }],\n ],\n [classNames],\n );\n\n return (\n <Provider values={values}>\n <RACTabs\n {...rest}\n ref={ref}\n className={classNames?.tabs}\n data-testid={TEST_IDS.tabs}\n />\n </Provider>\n );\n});\n\nexport const TabListContext =\n createContext<ContextValue<TabListProps<unknown>, HTMLDivElement>>(null);\n\n/**\n * Parent of Tab\n */\nexport const TabList = forwardRef(function TabList<T extends object>(\n props: TabListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabListContext);\n props = useDefaultProps(props, 'TabList');\n\n const {\n children,\n classNames: classNamesProp,\n anchor = 'end',\n items,\n orientation = 'horizontal',\n size = 'lg',\n variant = 'border',\n align = orientation === 'horizontal' ? 'center' : 'start',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const values = useMemo<[[typeof TabContext, Omit<TabProps, 'id'>]]>(\n () => [[TabContext, { classNames }]],\n [classNames],\n );\n\n const style = useMemo(\n () =>\n inlineVars(tabListStateVars, {\n align,\n anchor,\n count: items ? Array.from(items).length : Children.count(children),\n orientation,\n size,\n variant,\n }),\n [align, anchor, items, children, orientation, size, variant],\n );\n\n return (\n <Provider values={values}>\n <div\n className={classNames?.list?.container}\n style={style}\n data-testid={TEST_IDS.list.container}\n >\n <RACTabList<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.list}\n items={items}\n data-testid={TEST_IDS.list.list}\n >\n {children}\n </RACTabList>\n </div>\n </Provider>\n );\n});\n\nexport const TabContext =\n createContext<ContextValue<Omit<TabProps & SlotProps, 'id'>, HTMLDivElement>>(\n null,\n );\n\n/**\n * Must be a direct child of TabList\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabContext);\n props = useDefaultProps(props, 'Tab');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n onPress,\n onPressChange,\n onPressEnd,\n onPressStart,\n onPressUp,\n ...rest\n } = props;\n\n const { pressProps } = usePropagatingPress({\n onPress,\n onPressChange,\n onPressEnd,\n onPressStart,\n onPressUp,\n });\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: TabRenderProps) => inlineVars(tabStateVars, renderProps),\n [],\n );\n\n const children = useCallback(\n (renderProps: TabRenderProps) => (\n <div\n {...pressProps}\n className={classNames?.tab?.tab}\n data-testid={TEST_IDS.tab.tab}\n >\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [pressProps, classNames?.tab?.tab, childrenProp],\n );\n\n return (\n <RACTab\n {...rest}\n ref={ref}\n className={classNames?.tab?.container}\n style={style}\n data-testid={TEST_IDS.tab.container}\n >\n {children}\n </RACTab>\n );\n});\n\nexport const TabPanelsContext =\n createContext<ContextValue<TabPanelsProps, HTMLDivElement>>(null);\n\n/**\n * Parent of TabPanel, but only required if using shouldForceMount=true\n */\nexport const TabPanels = forwardRef(function TabPanels(\n props: TabPanelsProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabPanelsContext);\n props = useDefaultProps(props, 'TabPanels');\n\n const {\n children,\n classNames: classNamesProp,\n shouldForceMount = false,\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useMemo(\n () => inlineVars(tabPanelsStateVars, { shouldForceMount }),\n [shouldForceMount],\n );\n\n const values = useMemo<\n [\n [\n typeof TabPanelContext,\n ContextValue<Omit<TabPanelProps, 'id'>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[TabPanelContext, { classNames, shouldForceMount }]],\n [classNames, shouldForceMount],\n );\n\n return (\n <Provider values={values}>\n <div\n ref={ref}\n className={classNames?.panels?.container}\n style={style}\n data-testid={TEST_IDS.panels.container}\n >\n <div\n className={classNames?.panels?.panels}\n data-testid={TEST_IDS.panels.panels}\n >\n {children}\n </div>\n </div>\n </Provider>\n );\n});\n\nexport const TabPanelContext =\n createContext<ContextValue<Omit<TabPanelProps, 'id'>, HTMLDivElement>>(null);\n\n/**\n * Must be direct child of TabPanels if TabPanel implements shouldForceMount=true\n *\n * Othewise can be used anywhere inside of Tabs. TabPanels may be desirable to use\n * if theme implements any styles that adjust layout\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabPanelContext);\n props = useDefaultProps(props, 'TabPanel');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n shouldForceMount = false,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: TabPanelRenderProps) =>\n inlineVars(tabPanelStateVars, { ...renderProps, shouldForceMount }),\n [shouldForceMount],\n );\n\n const children = useCallback(\n (renderProps: TabPanelRenderProps) => (\n <div\n className={classNames?.panel?.panel}\n data-testid={TEST_IDS.panel.panel}\n >\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [childrenProp, classNames?.panel?.panel],\n );\n\n return (\n <RACTabPanel\n {...rest}\n ref={ref}\n className={classNames?.panel?.container}\n shouldForceMount={shouldForceMount}\n style={style}\n data-testid={TEST_IDS.panel.container}\n >\n {children}\n </RACTabPanel>\n );\n});\n","import {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport { useFocusable } from 'react-aria';\nimport {\n type ContextValue,\n Tooltip as RACTooltip,\n type TooltipRenderProps,\n useContextProps,\n} from 'react-aria-components';\nimport { useDefaultProps, useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n tooltipClassNames,\n tooltipStateVars,\n tooltipTargetStateVars,\n} from './tooltip.css';\nimport type { TooltipMapping, TooltipProps, TooltipTargetProps } from './types';\n\nconst defaultMapping: TooltipMapping = {\n font: bodies.xs,\n};\n\nexport const TooltipContext =\n createContext<ContextValue<TooltipProps, HTMLDivElement>>(null);\n\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TooltipContext);\n\n props = useDefaultProps(props, 'Tooltip');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n containerPadding,\n crossOffset,\n mapping: mappingProp,\n offset,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(tooltipClassNames, theme.Tooltip, classNamesProp, {\n tooltip: {\n container: theme.className,\n tooltip: mapping.font,\n },\n }),\n [theme.Tooltip, classNamesProp, theme.className, mapping],\n );\n\n const style = useCallback(\n ({ state, ...renderProps }: TooltipRenderProps) => ({\n ...theme.style,\n ...inlineVars(tooltipStateVars, {\n containerPadding,\n crossOffset,\n offset,\n ...renderProps,\n isOpen: state.isOpen,\n }),\n }),\n [theme.style, containerPadding, crossOffset, offset],\n );\n\n const children = useCallback(\n (renderProps: TooltipRenderProps) => (\n <div className={classNames?.tooltip?.tooltip}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n isOpen: renderProps.state.isOpen,\n })}\n </div>\n ),\n [classNames?.tooltip?.tooltip, childrenProp],\n );\n\n return (\n <RACTooltip\n {...rest}\n ref={ref}\n className={classNames?.tooltip?.container}\n style={style}\n >\n {children}\n </RACTooltip>\n );\n});\n\nexport const TooltipTargetContext =\n createContext<ContextValue<TooltipTargetProps, HTMLDivElement>>(null);\n\n/**\n * This target component is only needed if attempting to add a Tooltip\n * to a non-focusable element/component\n */\nexport const TooltipTarget = forwardRef(function TooltipTarget(\n props: TooltipTargetProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TooltipTargetContext);\n\n props = useDefaultProps(props, 'TooltipTarget');\n\n const {\n children,\n classNames: classNamesProp,\n focusable = true,\n relative = 'self',\n } = props;\n\n const { focusableProps } = useFocusable({}, ref);\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tooltipClassNames, theme.Tooltip, classNamesProp),\n [theme.Tooltip, classNamesProp],\n );\n\n const style = useMemo(\n () =>\n inlineVars(tooltipTargetStateVars, {\n focusable,\n relative,\n }),\n [focusable, relative],\n );\n\n return (\n <div className={classNames?.target?.container} style={style}>\n <div\n {...focusableProps}\n ref={ref}\n className={classNames?.target?.target}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={focusable ? 0 : undefined}\n >\n {children}\n </div>\n </div>\n );\n});\n","import { toBoolean } from '@accelint/converters';\nimport { useIsSSR } from '@react-aria/ssr';\nimport { noop } from 'lodash';\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport { useFocusWithin, useOverlay, type PressEvent } from 'react-aria';\nimport {\n DEFAULT_SLOT,\n Provider,\n type ContextValue,\n} from 'react-aria-components';\nimport { useOverlayTriggerState } from 'react-stately';\nimport {\n useContextProps,\n useDefaultProps,\n useSlot,\n useTheme,\n} from '../../hooks';\nimport { headings } from '../../styles';\nimport {\n callRenderProps,\n inlineVars,\n mergeClassNames,\n mergeProps,\n} from '../../utils';\nimport { AriaHeadingContext } from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { ElementContext, type ElementProps } from '../element';\nimport { Tab, TabList, Tabs, type TabRenderProps } from '../tabs';\nimport {\n TooltipContext,\n TooltipTargetContext,\n type TooltipProps,\n type TooltipTargetProps,\n} from '../tooltip';\nimport {\n drawerClassNames,\n drawerDialogStateVars,\n drawerStateVars,\n} from './drawer.css';\nimport type {\n DrawerContextValue,\n DrawerDialogProps,\n DrawerMapping,\n DrawerProps,\n DrawerTabListProps,\n DrawerTabProps,\n} from './types';\n\nconst DrawerContext = createContext<DrawerContextValue>({\n anchor: 'right',\n layoutShift: false,\n isOpen: false,\n close: noop,\n open: noop,\n setOpen: noop,\n toggle: noop,\n});\n\nexport function Drawer(props: DrawerProps) {\n props = useDefaultProps(props, 'Drawer');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n anchor = 'right',\n defaultOpen = false,\n layoutShift = false,\n shouldCloseOnBlur = false,\n isDismissable = true,\n isKeyboardDismissDisabled = false,\n isOpen: isOpenProp,\n onOpenChange,\n } = props;\n\n const theme = useTheme();\n const isSSR = useIsSSR();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n // Remove focus when Drawer closes\n const handleOpenChange = useCallback(\n (isOpen: boolean) => {\n if (!isOpen) {\n const focused = isSSR ? null : document.activeElement;\n\n if (\n focused &&\n 'blur' in focused &&\n typeof focused.blur === 'function'\n ) {\n focused.blur();\n }\n }\n\n onOpenChange?.(isOpen);\n },\n [isSSR, onOpenChange],\n );\n\n const state = useOverlayTriggerState({\n defaultOpen,\n isOpen: isOpenProp,\n onOpenChange: handleOpenChange,\n });\n\n const { isOpen, close, open } = state;\n const ref = useRef<HTMLDivElement>(null);\n\n const { overlayProps } = useOverlay(\n {\n isOpen,\n shouldCloseOnBlur,\n isDismissable,\n isKeyboardDismissDisabled,\n onClose: close,\n },\n ref,\n );\n\n // TODO: it may be desirable to disallow focus within the closed Drawer instead\n // If focus forces the Drawer open\n const { focusWithinProps } = useFocusWithin({\n onFocusWithin: open,\n });\n\n const context = useMemo(\n () => ({ ...state, anchor, layoutShift }),\n [state, anchor, layoutShift],\n );\n\n const values = useMemo<\n [\n [typeof DrawerContext, DrawerContextValue],\n [\n typeof DrawerDialogContext,\n ContextValue<DrawerDialogProps, HTMLDivElement>,\n ],\n ]\n >(\n () => [\n [DrawerContext, context],\n [DrawerDialogContext, { classNames }],\n ],\n [context, classNames],\n );\n\n const style = useMemo(\n () =>\n inlineVars(drawerStateVars, {\n anchor,\n layoutShift,\n isOpen,\n }),\n [anchor, layoutShift, isOpen],\n );\n\n const children = useMemo(\n () => callRenderProps(childrenProp, state),\n [childrenProp, state],\n );\n\n return (\n <Provider values={values}>\n <div\n {...mergeProps(overlayProps, focusWithinProps)}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n <Tabs classNames={classNames?.tabs}>{children}</Tabs>\n </div>\n </Provider>\n );\n}\n\nexport function DrawerTabList<T extends object>(props: DrawerTabListProps<T>) {\n props = useDefaultProps(props, 'DrawerTabList');\n\n const { children, classNames: classNamesProp, variant = 'fill' } = props;\n const { anchor } = useContext(DrawerContext);\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n const values = useMemo<\n [\n [typeof TooltipContext, ContextValue<TooltipProps, HTMLDivElement>],\n [\n typeof TooltipTargetContext,\n ContextValue<TooltipTargetProps, HTMLDivElement>,\n ],\n ]\n >(\n () => [\n [TooltipContext, { placement: anchor === 'left' ? 'right' : 'left' }],\n [TooltipTargetContext, { focusable: false, relative: 'parent' }],\n ],\n [anchor],\n );\n\n return (\n <Provider values={values}>\n <TabList<T>\n classNames={classNames?.tabs}\n align='center'\n anchor={anchor === 'left' ? 'start' : 'end'}\n orientation='vertical'\n variant={variant}\n >\n {children}\n </TabList>\n </Provider>\n );\n}\n\nexport function DrawerTab(props: DrawerTabProps) {\n props = useDefaultProps(props, 'DrawerTab');\n\n const { children: childrenProp, classNames: classNamesProp, ...rest } = props;\n const { isOpen, open, toggle } = useContext(DrawerContext);\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n // Must bind to press start (instead of later press events) due to Tab changing selected state on start\n const handlePressStart = useCallback(\n (event: PressEvent) => {\n const { selected } = event.target.parentElement?.dataset ?? {};\n\n if (toBoolean(selected)) {\n toggle();\n } else {\n open();\n }\n },\n [open, toggle],\n );\n\n const children = useCallback(\n (renderProps: TabRenderProps) =>\n callRenderProps(childrenProp, { ...renderProps, isOpen }),\n [childrenProp, isOpen],\n );\n\n return (\n <Tab\n {...rest}\n classNames={classNames?.tabs}\n onPressStart={handlePressStart}\n >\n {children}\n </Tab>\n );\n}\n\nconst defaultMapping: DrawerMapping = {\n heading: {\n child: headings.v4,\n parent: headings.v3,\n },\n back: {\n variant: 'icon',\n },\n close: {\n variant: 'icon',\n },\n};\n\nexport const DrawerDialogContext =\n createContext<ContextValue<DrawerDialogProps, HTMLDivElement>>(null);\n\nexport const DrawerDialog = forwardRef(function DrawerDialog(\n props: DrawerDialogProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, DrawerDialogContext);\n\n const {\n children,\n classNames: classNamesProp,\n mapping: mappingProp,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const { close } = useContext(DrawerContext);\n const [backRef, hasBack] = useSlot();\n const [titleRef, hasTitle] = useSlot();\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({ ...defaultMapping, ...mappingProp }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp, {\n header: {\n title: hasBack ? mapping.heading.child : mapping.heading.parent,\n },\n }),\n [theme.Drawer, classNamesProp, hasBack, mapping],\n );\n\n const style = useMemo(\n () =>\n inlineVars(drawerDialogStateVars, {\n isChild: !!hasBack,\n }),\n [hasBack],\n );\n\n const values = useMemo<\n [\n [\n typeof ElementContext,\n ContextValue<\n ElementProps<\n ContextValue<ButtonProps, HTMLButtonElement>,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLHeadingElement>\n >,\n HTMLElement\n >,\n ],\n ]\n >(\n () => [\n [\n ElementContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n header: {\n as: 'header',\n className: classNames?.header?.header,\n values: [\n [\n ButtonContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n back: {\n ...mapping.back,\n ref: backRef,\n classNames: classNames?.header?.back,\n },\n close: {\n ...mapping.close,\n classNames: classNames?.header?.close,\n onPress: close,\n },\n },\n },\n ],\n [\n AriaHeadingContext,\n {\n slots: {\n title: {\n ref: titleRef,\n className: classNames?.header?.title,\n },\n },\n },\n ],\n ],\n },\n content: { className: classNames?.content },\n footer: { as: 'footer', className: classNames?.footer },\n },\n },\n ],\n ],\n [\n classNames?.header?.header,\n classNames?.header?.back,\n classNames?.header?.close,\n classNames?.header?.title,\n classNames?.content,\n classNames?.footer,\n backRef,\n close,\n mapping,\n titleRef,\n ],\n );\n\n // biome-ignore lint/complexity/useSimplifiedLogicExpression: intentional\n if (!ariaLabel && !ariaLabelledBy && !hasTitle) {\n console.warn(\n 'If a Drawer does not contain a <Heading slot=\"title\">, it must have an aria-label or aria-labelledby attribute for accessibility.',\n );\n }\n\n return (\n <Provider values={values}>\n <div\n {...rest}\n className={classNames?.dialog?.container}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div className={classNames?.dialog?.dialog}>{children}</div>\n </div>\n </Provider>\n );\n});\n","import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n type HTMLAttributes,\n} from 'react';\nimport {\n Collection,\n DEFAULT_SLOT,\n MenuStateContext,\n Popover,\n Provider,\n Menu as RACMenu,\n MenuItem as RACMenuItem,\n UNSTABLE_CollectionRendererContext,\n type CollectionRenderer,\n type ContextValue,\n type PopoverRenderProps,\n type MenuItemRenderProps as RACMenuItemRenderProps,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n} from 'react-aria-components';\nimport {\n useContextProps,\n useDefaultProps,\n useSlot,\n useTheme,\n} from '../../hooks';\nimport { bodies, headings } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext, type IconProps } from '../icon';\nimport { menuClassNames, menuItemStateVars, menuStateVars } from './menu.css';\nimport type {\n MenuItemProps,\n MenuListProps,\n MenuMapping,\n MenuProps,\n} from './types';\n\nconst defaultMapping: MenuMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n header: {\n sm: headings.v4,\n lg: headings.v5,\n },\n label: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n shortcut: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const MenuContext =\n createContext<ContextValue<MenuProps, HTMLElement>>(null);\n\n/**\n * Menu component that supports display and selection of menu items via a trigger (right-click or click)\n * Customization of React Aria's Menu and Menu Item components https://react-spectrum.adobe.com/react-aria/Menu.html\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n menu: { container: theme.className }, // required to consume global theme within Popover\n }),\n [classNamesProp, theme.Menu, theme.className],\n );\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const style = useCallback(\n (renderProps: PopoverRenderProps) => ({\n ...theme.style, // required to consume global styles within Popover\n ...inlineVars(menuStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof MenuListContext,\n ContextValue<MenuListProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[MenuListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.menu?.menu}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.menu?.menu, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.menu?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const MenuListContext =\n createContext<ContextValue<MenuListProps<unknown>, HTMLDivElement>>(null);\n\ntype MenuListContexts = [\n [\n typeof MenuItemContext,\n ContextValue<MenuItemProps<unknown>, HTMLDivElement>,\n ],\n [typeof AriaSectionContext, ContextValue<SectionProps<object>, HTMLElement>],\n [\n typeof AriaHeaderContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n [typeof AriaSeparatorContext, ContextValue<SeparatorProps, HTMLElement>],\n];\n\nexport const MenuList = forwardRef(function MenuList<T extends object>(\n props: MenuListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuListContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n items,\n mapping: mappingProp,\n selectionMode = 'single',\n size = defaultSize,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, theme.Menu, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Menu, classNamesProp, mapping.header, size],\n );\n\n const values = useMemo<MenuListContexts>(\n () => [\n [MenuItemContext, { classNames, mapping, size }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, mapping, size],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <AriaSection className={classNames?.list?.list}>\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </AriaSection>\n );\n }, [childrenProp, classNames?.list?.list, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n () => createCollectionRenderer(MenuStateContext, values),\n [values],\n );\n\n return (\n <UNSTABLE_CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <RACMenu<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </RACMenu>\n </Provider>\n </UNSTABLE_CollectionRendererContext.Provider>\n );\n});\n\nexport const MenuItemContext =\n createContext<ContextValue<MenuItemProps<unknown>, HTMLDivElement>>(null);\n\nexport const MenuItem = forwardRef(function MenuItem<T extends object>(\n props: MenuItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuItemContext);\n props = useDefaultProps(props, 'MenuItem');\n\n const {\n id,\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Menu, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: RACMenuItemRenderProps) =>\n inlineVars(menuItemStateVars, { ...renderProps, size, hasDescription }),\n [hasDescription, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [\n typeof AriaKeyboardContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n ]\n >(\n () => [\n [\n AriaTextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [\n IconContext,\n {\n slots: {\n [DEFAULT_SLOT]: { classNames: classNames?.item?.icon },\n more: { classNames: classNames?.item?.more },\n },\n },\n ],\n [AriaKeyboardContext, { className: classNames?.item?.shortcut }],\n ],\n [\n classNames?.item?.label,\n descriptionRef,\n classNames?.item?.description,\n classNames?.item?.icon,\n classNames?.item?.more,\n classNames?.item?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: RACMenuItemRenderProps) => {\n const content = callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n });\n\n return (\n <Provider values={values}>\n <div className={classNames?.item?.item}>\n {typeof content === 'string' ? (\n <AriaText slot='label'>{content}</AriaText>\n ) : (\n content\n )}\n </div>\n </Provider>\n );\n },\n [childrenProp, classNames?.item?.item, size, values],\n );\n\n return (\n <RACMenuItem<T>\n {...rest}\n id={id ?? textValue}\n ref={ref as ForwardedRef<T>}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </RACMenuItem>\n );\n});\n","import {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n type FieldErrorProps,\n LabelContext,\n type LabelProps,\n type NumberFieldRenderProps,\n Provider,\n type GroupProps as RACGroupProps,\n NumberField as RACNumberField,\n type TextProps,\n} from 'react-aria-components';\nimport {\n AriaFieldErrorContext,\n AriaGroupContext,\n type AriaLabelContext,\n AriaTextContext,\n ButtonContext,\n type ButtonProps,\n InputContext,\n type InputProps,\n} from '../../components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n numberFieldClassNames,\n numberFieldStateVars,\n} from './number-field.css';\nimport type { NumberFieldMapping, NumberFieldProps } from './types';\n\nconst defaultMapping: NumberFieldMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n increment: {\n sm: { size: 'xs', variant: 'bare' },\n lg: { size: 'sm', variant: 'bare' },\n },\n decrement: {\n sm: { size: 'xs', variant: 'bare' },\n lg: { size: 'sm', variant: 'bare' },\n },\n};\n\nexport const NumberFieldContext =\n createContext<ContextValue<NumberFieldProps, HTMLDivElement>>(null);\n\nexport const NumberField = forwardRef(function NumberField(\n props: NumberFieldProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, NumberFieldContext);\n\n props = useDefaultProps(props, 'NumberField');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = 'lg',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(\n numberFieldClassNames,\n theme.NumberField,\n classNamesProp,\n {\n description: mapping.description[size],\n error: mapping.error[size],\n },\n ),\n [theme.NumberField, classNamesProp, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: NumberFieldRenderProps) =>\n inlineVars(numberFieldStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n const values = useMemo<\n [\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n [typeof AriaGroupContext, ContextValue<RACGroupProps, HTMLDivElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n [typeof InputContext, ContextValue<InputProps, HTMLInputElement>],\n ]\n >(\n () => [\n [LabelContext, { className: classNames?.label }],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n [\n AriaGroupContext,\n {\n className: classNames?.group,\n },\n ],\n [\n ButtonContext,\n {\n slots: {\n increment: {\n ...mapping.increment[size],\n classNames: classNames?.increment,\n },\n decrement: {\n ...mapping.decrement[size],\n classNames: classNames?.decrement,\n },\n },\n },\n ],\n [InputContext, { classNames: classNames?.input, size }],\n ],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: NumberFieldRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.numberField}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.numberField, values],\n );\n return (\n <RACNumberField\n {...rest}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </RACNumberField>\n );\n});\n","import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n} from 'react';\nimport {\n Collection,\n ListBox,\n ListBoxItem,\n Provider,\n Section,\n useContextProps,\n type ContextValue,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n} from 'react-aria-components';\nimport { useDefaultProps, useTheme } from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n pickerClassNames,\n pickerItemStateVars,\n pickerStateVars,\n} from './picker.css';\nimport type { PickerItemProps, PickerProps } from './types';\n\nexport const PickerContext =\n createContext<ContextValue<PickerProps<unknown>, HTMLDivElement>>(null);\n\nexport const PickerItemContext =\n createContext<ContextValue<PickerItemProps<unknown>, HTMLDivElement>>(null);\n\n/**\n * Generic stylable picker that supports the functionality (sans drag and drop) of\n * React Aria's ListBox: https://react-spectrum.adobe.com/react-aria/ListBox.html\n *\n * NOTE: The picker items does not support sections or separators\n */\nexport const Picker = forwardRef(function Picker<T extends object>(\n props: PickerProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerContext);\n\n props = useDefaultProps(props, 'Picker');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n columns,\n items,\n layout = 'stack',\n orientation = 'horizontal',\n selectionMode = 'single',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const values = useMemo<\n [\n [\n typeof PickerItemContext,\n ContextValue<PickerItemProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(() => [[PickerItemContext, { classNames }]], [classNames]);\n\n const style = useCallback(\n ({ state, ...renderProps }: ListBoxRenderProps) =>\n inlineVars(pickerStateVars, {\n ...renderProps,\n columns,\n layout,\n orientation,\n }),\n [columns, layout, orientation],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <Section\n className={classNames?.list?.list}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </Section>\n );\n }, [childrenProp, items, classNames?.list?.list, ariaLabel, ariaLabelledBy]);\n\n return (\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n layout={layout}\n orientation={orientation}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n );\n});\n\nexport const PickerItem = forwardRef(function PickerItem<T extends object>(\n props: PickerItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerItemContext);\n\n const {\n children: childrenProp,\n id,\n classNames: classNamesProp,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(pickerItemStateVars, renderProps),\n [],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => (\n <div className={classNames?.item?.item}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [childrenProp, classNames?.item?.item],\n );\n\n return (\n <ListBoxItem<T>\n {...rest}\n ref={ref as ForwardedRef<T>}\n id={id ?? textValue}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n","import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n type HTMLAttributes,\n} from 'react';\nimport {\n DEFAULT_SLOT,\n Dialog as RACDialog,\n Provider,\n Popover as RACPopover,\n useContextProps,\n type ContextValue,\n type PopoverRenderProps as RACPopoverRenderProps,\n} from 'react-aria-components';\nimport { useDefaultProps, useSlot, useTheme } from '../../hooks';\nimport { headings } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaHeadingContext } from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { ElementContext, type ElementProps } from '../element';\nimport { GroupContext, type GroupProps } from '../group';\nimport { popoverClassNames, popoverStateVars } from './popover.css';\nimport type { PopoverMapping, PopoverProps } from './types';\n\nconst defaultMapping: PopoverMapping = {\n heading: headings.v4,\n actions: {\n context: ButtonContext,\n orientation: 'horizontal',\n reverse: true,\n },\n primary: {\n size: 'sm',\n },\n secondary: { size: 'sm', variant: 'bare' },\n};\n\nexport const PopoverContext =\n createContext<ContextValue<PopoverProps, HTMLElement>>(null);\n\nexport const Popover = forwardRef(function Popover(\n props: PopoverProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, PopoverContext);\n props = useDefaultProps(props, 'Popover');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({ ...defaultMapping, ...mappingProp }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(popoverClassNames, theme.Popover, classNamesProp, {\n popover: {\n container: theme.className, // required to consume global theme within Popover\n },\n }),\n [theme.className, theme.Popover, classNamesProp],\n );\n\n const [headerRef, hasHeader] = useSlot();\n\n const style = useCallback(\n (renderProps: RACPopoverRenderProps) =>\n inlineVars(popoverStateVars, {\n ...theme.style, // required to consume global styles within Popover\n ...renderProps,\n hasHeader,\n }),\n [theme.style, hasHeader],\n );\n\n const values = useMemo<\n [\n [\n typeof ElementContext,\n ContextValue<\n ElementProps<\n ContextValue<HTMLAttributes<HTMLElement>, HTMLHeadingElement>,\n ContextValue<\n GroupProps<ButtonProps, HTMLButtonElement>,\n HTMLDivElement\n >\n >,\n HTMLElement\n >,\n ],\n ]\n >(\n () => [\n [\n ElementContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n header: {\n as: 'header',\n className: classNames?.header,\n ref: headerRef,\n values: [\n [\n AriaHeadingContext,\n {\n className: mapping.heading,\n slot: 'title',\n },\n ],\n [GroupContext, null],\n ],\n },\n content: { className: classNames?.content },\n footer: {\n as: 'footer',\n className: classNames?.footer,\n values: [\n [AriaHeadingContext, null],\n [\n GroupContext,\n {\n values: {\n slots: {\n [DEFAULT_SLOT]: mapping.primary ?? {},\n secondary: mapping.secondary ?? {},\n },\n },\n ...mapping.actions,\n },\n ],\n ],\n },\n },\n },\n ],\n ],\n [\n classNames?.header,\n classNames?.content,\n classNames?.footer,\n headerRef,\n mapping.actions,\n mapping.heading,\n mapping.primary,\n mapping.secondary,\n ],\n );\n\n const children = useCallback(\n (renderProps: RACPopoverRenderProps) => (\n <Provider values={values}>\n <RACDialog className={classNames?.popover?.popover}>\n {({ close }) =>\n callRenderProps(childrenProp, {\n ...renderProps,\n close,\n defaultChildren: null,\n })\n }\n </RACDialog>\n </Provider>\n ),\n [childrenProp, classNames?.popover?.popover, values],\n );\n\n return (\n <RACPopover\n {...rest}\n ref={ref}\n className={classNames?.popover?.container}\n style={style}\n >\n {children}\n </RACPopover>\n );\n});\n","import { createContext } from 'react';\nimport type { QueryBuilderContextValue } from './types';\n\nexport const defaultSize = 'sm';\n\nexport const QueryBuilderContext = createContext<QueryBuilderContextValue>({\n controlElements: {\n ruleGroupBodyElements: () => null,\n ruleGroupFooterElements: () => null,\n ruleGroupHeaderElements: () => null,\n },\n size: defaultSize,\n});\n\nexport const multiValueOperators = [\n 'between',\n 'notBetween',\n 'during',\n 'overlapped',\n 'overlaps',\n];\n","import {\n createContext,\n type ForwardedRef,\n forwardRef,\n useMemo,\n useCallback,\n} from 'react';\nimport {\n RadioGroup as RACRadioGroup,\n Radio as RACRadio,\n type ContextValue,\n Provider,\n type LabelProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaLabelContext } from '../aria';\nimport {\n radioClassNames,\n radioGroupStateVars,\n radioStateVars,\n} from './radio.css';\nimport type {\n RadioGroupRenderProps,\n RadioGroupProps,\n RadioProps,\n RadioRenderProps,\n RadioContextProps,\n} from './types';\n\nexport const RadioContext =\n createContext<ContextValue<RadioContextProps, HTMLLabelElement>>(null);\n\nexport const Radio = forwardRef(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>,\n) {\n [props, ref] = useContextProps(props, ref, RadioContext);\n props = useDefaultProps(props, 'Radio');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput = 'end',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(radioClassNames, theme.Radio, classNamesProp),\n [classNamesProp, theme.Radio],\n );\n\n const style = useCallback(\n (renderProps: RadioRenderProps) =>\n inlineVars(radioStateVars, {\n ...renderProps,\n alignInput,\n }),\n [alignInput],\n );\n\n const children = useCallback(\n (renderProps: RadioRenderProps) => (\n <span className={classNames?.radio?.radio}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </span>\n ),\n [childrenProp, classNames?.radio],\n );\n\n return (\n <RACRadio\n {...rest}\n ref={ref}\n style={style}\n className={classNames?.radio?.container}\n >\n {children}\n </RACRadio>\n );\n});\n\nexport const RadioGroupContext =\n createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\n\nexport const RadioGroup = forwardRef(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n\n props = useDefaultProps(props, 'RadioGroup');\n\n const theme = useTheme();\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput = 'end',\n orientation = 'vertical',\n ...rest\n } = props;\n\n const classNames = useMemo(\n () => mergeClassNames(radioClassNames, theme.Radio, classNamesProp),\n [classNamesProp, theme.Radio],\n );\n\n const style = useCallback(\n (renderProps: RadioGroupRenderProps) =>\n inlineVars(radioGroupStateVars, {\n ...renderProps,\n alignInput,\n orientation,\n }),\n [alignInput, orientation],\n );\n\n const values = useMemo<\n [\n [typeof RadioContext, ContextValue<RadioContextProps, HTMLLabelElement>],\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n ]\n >(\n () => [\n [\n RadioContext,\n {\n classNames,\n alignInput,\n },\n ],\n [\n AriaLabelContext,\n {\n className: classNames?.label,\n },\n ],\n ],\n [alignInput, classNames],\n );\n\n const children = useCallback(\n (renderProps: RadioGroupRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.group?.group}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.group, values],\n );\n\n return (\n <RACRadioGroup\n {...rest}\n ref={ref}\n className={classNames?.group?.container}\n style={style}\n orientation={orientation}\n >\n {children}\n </RACRadioGroup>\n );\n});\n","import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n} from 'react';\nimport {\n Select as AriaSelect,\n Provider,\n type ContextValue,\n type FieldErrorProps,\n type LabelProps,\n type SelectRenderProps as RACSelectRenderProps,\n type SelectValueProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n AriaFieldErrorContext,\n AriaLabelContext,\n AriaSelectValueContext,\n AriaTextContext,\n} from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { OptionsContext, type OptionsProps } from '../options';\nimport { selectClassNames, selectStateVars } from './select.css';\nimport type { SelectMapping, SelectProps } from './types';\n\nconst defaultMapping: SelectMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n toggle: {\n sm: { size: 'sm', variant: 'hollow' },\n lg: { size: 'md', variant: 'hollow' },\n },\n};\n\nexport const SelectContext =\n createContext<ContextValue<SelectProps<object>, HTMLDivElement>>(null);\n\nexport const Select = forwardRef(function Select<T extends object>(\n props: SelectProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, SelectContext);\n props = useDefaultProps(props, 'Select');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = 'lg',\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(selectClassNames, theme.Select, classNamesProp, {\n description: mapping.description[size],\n error: mapping.error[size],\n }),\n [classNamesProp, theme.Select, mapping, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n [\n typeof AriaSelectValueContext,\n ContextValue<SelectValueProps<object>, HTMLSpanElement>,\n ],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n [typeof OptionsContext, ContextValue<OptionsProps, HTMLElement>],\n ]\n >(\n () => [\n [AriaLabelContext, { className: classNames?.label }],\n [\n ButtonContext,\n {\n ...mapping.toggle[size],\n classNames: classNames?.toggle,\n },\n ],\n [\n AriaSelectValueContext,\n {\n className: classNames?.value,\n },\n ],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n [OptionsContext, { classNames: classNames?.options, size }],\n ],\n [classNames, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: RACSelectRenderProps) =>\n inlineVars(selectStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n\n const children = useCallback(\n (renderProps: RACSelectRenderProps) => (\n <div className={classNames?.select}>\n <Provider values={values}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </Provider>\n </div>\n ),\n [childrenProp, values, classNames?.select],\n );\n\n return (\n <AriaSelect\n {...props}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </AriaSelect>\n );\n});\n","import {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport { type ContextValue, Switch as RACSwitch } from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { switchClassNames, switchStateVars } from './switch.css';\nimport type { SwitchProps, SwitchRenderProps } from './types';\n\nexport const SwitchContext =\n createContext<ContextValue<SwitchProps, HTMLLabelElement>>(null);\n\nexport const Switch = forwardRef(function Switch(\n props: SwitchProps,\n ref: ForwardedRef<HTMLLabelElement>,\n) {\n [props, ref] = useContextProps(props, ref, SwitchContext);\n\n props = useDefaultProps(props, 'Switch');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(switchClassNames, theme.Switch, classNamesProp),\n [theme.Switch, classNamesProp],\n );\n\n const style = useCallback(\n ({ state, ...renderProps }: SwitchRenderProps) =>\n inlineVars(switchStateVars, {\n ...renderProps,\n alignInput,\n }),\n [alignInput],\n );\n\n const children = useCallback(\n (renderProps: SwitchRenderProps) => {\n const child = callRenderProps(childrenProp, renderProps);\n\n return (\n <span className={classNames?.switch}>\n {child && <span className={classNames?.label}>{child}</span>}\n <span className={classNames?.indicator} />\n </span>\n );\n },\n [\n childrenProp,\n classNames?.switch,\n classNames?.label,\n classNames?.indicator,\n ],\n );\n\n return (\n <RACSwitch\n {...rest}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </RACSwitch>\n );\n});\n","import { useControlledState } from '@react-stately/utils';\nimport {\n type FormEvent,\n type ForwardedRef,\n createContext,\n forwardRef,\n useMemo,\n useCallback,\n useEffect,\n} from 'react';\nimport { useFocusRing, useHover } from 'react-aria';\nimport {\n type ContextValue,\n TextAreaContext as RACTextAreaContext,\n type TextAreaProps as RACTextAreaProps,\n useContextProps,\n} from 'react-aria-components';\nimport { useDefaultProps, useTheme } from '../../hooks';\nimport { inputs } from '../../styles';\nimport { inlineVars, mergeClassNames, mergeProps } from '../../utils';\nimport { textAreaClassNames, textAreaStateVars } from './textarea.css';\nimport type { TextAreaMapping, TextAreaProps } from './types';\n\nconst defaultMapping: TextAreaMapping = {\n font: inputs,\n};\n\nexport const TextAreaContext =\n createContext<ContextValue<TextAreaProps, HTMLTextAreaElement>>(null);\n\n/**\n * We implement a textarea as a content editable span to provide\n * improved UX, where the input area automatically grows with input\n * content length. This can be overriden by applying max-height\n * and overflow CSS, if desired.\n *\n * This also has the side effect of changing the target element in\n * the ref and event handlers. The normal `event.target.value` is not\n * available, and must be substituted with `event.currentTarget.textContent`\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps,\n ref: ForwardedRef<HTMLTextAreaElement>,\n) {\n [props, ref] = useContextProps(props, ref, RACTextAreaContext);\n\n // Disallow props possibly provided by React Aria context\n // could be render props functions we don't want to support\n delete (props as RACTextAreaProps).className;\n delete (props as RACTextAreaProps).style;\n\n // Duplicate context prop merging to support React Aria's context\n // and our own which establishes a superset type for the props\n [props, ref] = useContextProps(props, ref, TextAreaContext);\n props = useDefaultProps(props, 'TextArea');\n\n const {\n classNames: classNamesProp,\n defaultValue = '',\n disabled: isDisabled = false,\n mapping: mappingProp,\n placeholder,\n readOnly: isReadOnly = false,\n required: isRequired = false,\n resize = 'none',\n size = 'lg',\n value: valueProp,\n onChange,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n 'aria-invalid': ariaInvalid,\n ...rest\n } = props;\n\n const [value, setValue] = useControlledState(valueProp, defaultValue);\n const isInvalid = !!ariaInvalid && ariaInvalid !== 'false';\n const isPlaceholder = !!placeholder && !value;\n const isEmpty = !value;\n\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n autoFocus: props.autoFocus,\n isTextInput: true,\n });\n\n const { hoverProps, isHovered } = useHover({\n isDisabled,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n });\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(textAreaClassNames, theme.TextArea, classNamesProp, {\n textarea: mapping.font[size],\n }),\n [theme.TextArea, classNamesProp, mapping.font, size],\n );\n\n const mergedProps = useMemo(\n () => mergeProps(rest, focusProps, hoverProps),\n [focusProps, hoverProps, rest],\n );\n\n const style = useMemo(\n () =>\n inlineVars(textAreaStateVars, {\n resize,\n size,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n }),\n [\n resize,\n size,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n ],\n );\n\n const handleChange = useCallback(\n (event: FormEvent<HTMLSpanElement>) => {\n onChange?.(event);\n\n if (!event.defaultPrevented) {\n setValue(event.currentTarget.textContent ?? '');\n }\n },\n [onChange, setValue],\n );\n\n /**\n * In order to provide the UX of an \"input\" that auto grows in height\n * thats driven by content, we implement a content-editable span instead\n * of a textarea. However, this has the side effect that it must be\n * updated as an \"uncontrolled\" element, otherwise the cursor resets\n * to the beginning of the input area after every keystroke if the value\n * is passed in as \"children\"\n */\n useEffect(() => {\n if (typeof ref !== 'function' && ref?.current) {\n ref.current.textContent = `${value ?? ''}`;\n }\n }, [ref, value]);\n\n return (\n <div className={classNames?.container} style={style}>\n <span\n {...mergedProps}\n {...hoverProps}\n ref={ref}\n className={classNames?.textarea}\n contentEditable={!isDisabled && !isReadOnly}\n role='textbox'\n suppressContentEditableWarning\n onInput={handleChange}\n aria-invalid={ariaInvalid}\n data-placeholder={placeholder}\n />\n </div>\n );\n});\n","import { noop } from 'lodash';\nimport type { MouseEvent } from 'react';\nimport type { PressEvent } from 'react-aria';\nimport type {\n RuleType,\n RuleValidator,\n ValidationResult,\n} from 'react-querybuilder';\n\n/**\n * This is required because the C2DS Button supports an onPress event but\n * QueryBuilder provides a callback that expects a MouseEvent and will error\n * out if preventDefault is not available as a method.\n * @param event\n */\nexport const pressToMouseEvent = (event: PressEvent) =>\n ({\n ...event,\n preventDefault: noop,\n stopPropagation: noop,\n }) as unknown as MouseEvent;\n\n/**\n * Validates according to the validator function\n *\n * For single-value rules (e.g. 5 is a number), validator function should provide a single conditional\n * const singleValidator = z.string().min(1);\n *\n * For multi-value rules (e.g. using operators such as \"between\" or \"during), validator func can optionally\n * be a union conditional https://zod.dev/?id=unions to allow validation against either a single value or multiple.\n * Right and left validators in the tuple do not need to be the same.\n *\n * const multiValidator = z.union([\n * singleValidator,\n * z.tuple([singleValidator, singleValidator])\n * ])\n *\n * @param rule\n * @param validator\n */\nexport const getValidationResult = (\n rule: RuleType,\n validator?: RuleValidator,\n): ValidationResult => {\n if (!validator) {\n return { valid: true };\n }\n\n const result = validator(rule);\n\n if (typeof result === 'boolean') {\n return { valid: result };\n }\n\n return {\n valid: result.valid,\n reasons: result.valid ? [] : result.reasons,\n };\n};\n","import { useCallback, useMemo } from 'react';\nimport type { PressEvent } from 'react-aria';\nimport { Button } from '../button';\nimport type { ActionProps } from './types';\nimport { pressToMouseEvent } from './utils';\n\nexport function ActionElement({\n disabled,\n disabledTranslation,\n title: titleProp,\n handleOnClick,\n}: ActionProps) {\n const handlePress = useCallback(\n (event: PressEvent) => handleOnClick(pressToMouseEvent(event)),\n [handleOnClick],\n );\n\n const title = useMemo(\n () =>\n disabledTranslation?.title && disabled\n ? disabledTranslation.title\n : titleProp,\n [disabledTranslation?.title, disabled, titleProp],\n );\n\n return (\n <Button isDisabled={disabled && !disabledTranslation} onPress={handlePress}>\n {title}\n </Button>\n );\n}\n","import { Fragment, useContext, useMemo } from 'react';\nimport {\n type RuleGroupArray,\n type RuleGroupICArray,\n type RuleGroupProps,\n TestID,\n isRuleGroup,\n isRuleGroupType,\n pathsAreEqual,\n useRuleGroup,\n useStopEventPropagation,\n} from 'react-querybuilder';\nimport { inlineVars } from '../../utils';\nimport { QueryBuilderContext } from './constants';\nimport { queryBuilderGroupStateVars } from './query-builder.css';\nimport type { RuleGroupElementsProps } from './types';\n\n/**\n * Rules have 5 non-optional functional pieces:\n * - Field\n * - Operator (conditional)\n * - Value Source (conditional)\n * - Value (conditional)\n * - Remove\n */\nconst CORE_FUNCTIONS_COUNT = 5;\n\nexport function RuleGroup(props: RuleGroupProps) {\n const {\n classNames,\n controlElements: {\n ruleGroupBodyElements: RuleGroupBodyElements,\n ruleGroupFooterElements: RuleGroupFooterElements,\n ruleGroupHeaderElements: RuleGroupHeaderElements,\n },\n } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n enableDragAndDrop,\n showCloneButtons,\n showLockButtons,\n showShiftActions,\n },\n } = props;\n\n const after = useMemo(\n () =>\n [showCloneButtons, showLockButtons].reduce(\n (acc, flag) => acc + (flag ? 1 : 0),\n 0,\n ),\n [showCloneButtons, showLockButtons],\n );\n\n const before = useMemo(\n () =>\n [enableDragAndDrop, showShiftActions].reduce(\n (acc, flag) => acc + (flag ? 1 : 0),\n 0,\n ),\n [enableDragAndDrop, showShiftActions],\n );\n\n const columns = useMemo(\n () => CORE_FUNCTIONS_COUNT + before + after,\n [after, before],\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderGroupStateVars, {\n after,\n before,\n columns,\n isDisabled: false,\n }),\n [after, before, columns],\n );\n\n const group = useRuleGroup(props);\n const addRule = useStopEventPropagation(group.addRule);\n const addGroup = useStopEventPropagation(group.addGroup);\n const cloneGroup = useStopEventPropagation(group.cloneGroup);\n const toggleLockGroup = useStopEventPropagation(group.toggleLockGroup);\n const removeGroup = useStopEventPropagation(group.removeGroup);\n const shiftGroupUp = useStopEventPropagation(group.shiftGroupUp);\n const shiftGroupDown = useStopEventPropagation(group.shiftGroupDown);\n\n const elementProps = useMemo(\n () => ({\n ...(group as RuleGroupElementsProps),\n addGroup,\n addRule,\n cloneGroup,\n removeGroup,\n shiftGroupDown,\n shiftGroupUp,\n toggleLockGroup,\n }),\n [\n addGroup,\n addRule,\n cloneGroup,\n group,\n removeGroup,\n shiftGroupDown,\n shiftGroupUp,\n toggleLockGroup,\n ],\n );\n\n return (\n <div className={classNames?.group?.container} style={style}>\n <div\n ref={group.previewRef}\n className={group.outerClassName}\n data-dragmonitorid={group.dragMonitorId}\n data-dropmonitorid={group.dropMonitorId}\n data-level={group.path.length}\n data-path={JSON.stringify(group.path)}\n data-rule-group-id={group.id}\n data-testid={TestID.ruleGroup}\n >\n <div ref={group.dropRef} className={group.classNames.header}>\n <RuleGroupHeaderElements {...elementProps} />\n </div>\n <div className={group.classNames.body}>\n <RuleGroupBodyElements {...elementProps} />\n </div>\n <div className={classNames?.group?.footer}>\n <RuleGroupFooterElements {...elementProps} />\n </div>\n </div>\n </div>\n );\n}\n\nexport function RuleGroupHeaderComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const { classNames } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n controls: {\n shiftActions: ShiftActionsControlElement,\n dragHandle: DragHandleControlElement,\n combinatorSelector: CombinatorSelectorControlElement,\n notToggle: NotToggleControlElement,\n cloneGroupAction: CloneGroupActionControlElement,\n lockGroupAction: LockGroupActionControlElement,\n removeGroupAction: RemoveGroupActionControlElement,\n },\n },\n } = ruleGroup;\n\n const titles = useMemo(\n () => ({\n shiftUp: ruleGroup.translations.shiftActionUp.title,\n shiftDown: ruleGroup.translations.shiftActionDown.title,\n }),\n [\n ruleGroup.translations.shiftActionDown.title,\n ruleGroup.translations.shiftActionUp.title,\n ],\n );\n\n const labels = useMemo(\n () => ({\n shiftUp: ruleGroup.translations.shiftActionUp.label,\n shiftDown: ruleGroup.translations.shiftActionDown.label,\n }),\n [\n ruleGroup.translations.shiftActionDown.label,\n ruleGroup.translations.shiftActionUp.label,\n ],\n );\n\n return (\n <>\n {ruleGroup.schema.showShiftActions && ruleGroup.path.length > 0 && (\n <div className={classNames?.group?.shift}>\n <ShiftActionsControlElement\n key={TestID.shiftActions}\n testID={TestID.shiftActions}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n titles={titles}\n labels={labels}\n className={ruleGroup.classNames.shiftActions}\n disabled={ruleGroup.disabled}\n shiftUp={ruleGroup.shiftGroupUp}\n shiftDown={ruleGroup.shiftGroupDown}\n shiftUpDisabled={ruleGroup.shiftUpDisabled}\n shiftDownDisabled={ruleGroup.shiftDownDisabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleOrGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {ruleGroup.path.length > 0 && ruleGroup.schema.enableDragAndDrop && (\n <div className={classNames?.group?.drag}>\n <DragHandleControlElement\n key={TestID.dragHandle}\n testID={TestID.dragHandle}\n ref={ruleGroup.dragRef}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n title={ruleGroup.translations.dragHandle.title}\n label={ruleGroup.translations.dragHandle.label}\n className={ruleGroup.classNames.dragHandle}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleOrGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {!ruleGroup.schema.showCombinatorsBetweenRules &&\n !ruleGroup.schema.independentCombinators && (\n <div className={classNames?.group?.combinator}>\n <CombinatorSelectorControlElement\n key={TestID.combinators}\n testID={TestID.combinators}\n options={ruleGroup.schema.combinators}\n value={ruleGroup.combinator}\n title={ruleGroup.translations.combinators.title}\n className={ruleGroup.classNames.combinators}\n handleOnChange={ruleGroup.onCombinatorChange}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.schema.showNotToggle && (\n <div className={classNames?.group?.toggle}>\n <NotToggleControlElement\n key={TestID.notToggle}\n testID={TestID.notToggle}\n className={ruleGroup.classNames.notToggle}\n title={ruleGroup.translations.notToggle.title}\n label={ruleGroup.translations.notToggle.label}\n checked={ruleGroup.ruleGroup.not}\n handleOnChange={ruleGroup.onNotToggleChange}\n level={ruleGroup.path.length}\n disabled={ruleGroup.disabled}\n path={ruleGroup.path}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {ruleGroup.schema.showCloneButtons && ruleGroup.path.length >= 1 && (\n <div className={classNames?.group?.clone}>\n <CloneGroupActionControlElement\n key={TestID.cloneGroup}\n testID={TestID.cloneGroup}\n label={ruleGroup.translations.cloneRuleGroup.label}\n title={ruleGroup.translations.cloneRuleGroup.title}\n className={ruleGroup.classNames.cloneGroup}\n handleOnClick={ruleGroup.cloneGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.schema.showLockButtons && (\n <div className={classNames?.group?.lock}>\n <LockGroupActionControlElement\n key={TestID.lockGroup}\n testID={TestID.lockGroup}\n label={ruleGroup.translations.lockGroup.label}\n title={ruleGroup.translations.lockGroup.title}\n className={ruleGroup.classNames.lockGroup}\n handleOnClick={ruleGroup.toggleLockGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n disabledTranslation={\n ruleGroup.parentDisabled\n ? undefined\n : ruleGroup.translations.lockGroupDisabled\n }\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.path.length > 0 && (\n <div className={classNames?.group?.remove}>\n <RemoveGroupActionControlElement\n key={TestID.removeGroup}\n testID={TestID.removeGroup}\n label={ruleGroup.translations.removeGroup.label}\n title={ruleGroup.translations.removeGroup.title}\n className={ruleGroup.classNames.removeGroup}\n handleOnClick={ruleGroup.removeGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n </>\n );\n}\n\nexport function RuleGroupBodyComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const {\n schema: {\n controls: {\n ruleGroup: RuleGroupControlElement,\n rule: RuleControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n {(ruleGroup.ruleGroup.rules as RuleGroupICArray | RuleGroupArray).map(\n (rule, idx, { length: ruleArrayLength }) => {\n const thisPathMemo = ruleGroup.pathsMemo[idx];\n const thisPath = thisPathMemo?.path ?? [];\n\n const thisPathDisabled =\n !thisPathMemo ||\n thisPathMemo.disabled ||\n (typeof rule !== 'string' && rule.disabled);\n\n const shiftUpDisabled = pathsAreEqual([0], thisPath);\n\n const shiftDownDisabled =\n ruleGroup.path.length === 0 && idx === ruleArrayLength - 1;\n\n const key =\n typeof rule === 'string' ? [...thisPath, rule].join('-') : rule.id;\n\n return (\n <Fragment key={key}>\n {isRuleGroup(rule) && (\n <RuleGroupControlElement\n key={TestID.ruleGroup}\n id={rule.id}\n schema={ruleGroup.schema}\n actions={ruleGroup.actions}\n path={thisPath}\n translations={ruleGroup.translations}\n ruleGroup={rule}\n rules={rule.rules}\n combinator={\n isRuleGroupType(rule) ? rule.combinator : undefined\n }\n not={!!rule.not}\n disabled={thisPathDisabled}\n parentDisabled={\n ruleGroup.parentDisabled || ruleGroup.disabled\n }\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={ruleGroup.context}\n />\n )}\n {typeof rule !== 'string' && !isRuleGroup(rule) && (\n <RuleControlElement\n key={TestID.rule}\n id={rule.id!}\n rule={rule}\n field={rule.field}\n operator={rule.operator}\n value={rule.value}\n valueSource={rule.valueSource}\n schema={ruleGroup.schema}\n actions={ruleGroup.actions}\n path={thisPath}\n disabled={thisPathDisabled}\n parentDisabled={\n ruleGroup.parentDisabled || ruleGroup.disabled\n }\n translations={ruleGroup.translations}\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={ruleGroup.context}\n />\n )}\n </Fragment>\n );\n },\n )}\n </>\n );\n}\n\nexport function RuleGroupFooterComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const { classNames } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n controls: {\n addGroupAction: AddGroupActionControlElement,\n addRuleAction: AddRuleActionControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n <div className={classNames?.rule?.add}>\n <AddRuleActionControlElement\n key={TestID.addRule}\n testID={TestID.addRule}\n label={ruleGroup.translations.addRule.label}\n title={ruleGroup.translations.addRule.title}\n className={ruleGroup.classNames.addRule}\n handleOnClick={ruleGroup.addRule}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n <div className={classNames?.group?.add}>\n <AddGroupActionControlElement\n key={TestID.addGroup}\n testID={TestID.addGroup}\n label={ruleGroup.translations.addGroup.label}\n title={ruleGroup.translations.addGroup.title}\n className={ruleGroup.classNames.addGroup}\n handleOnClick={ruleGroup.addGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n </>\n );\n}\n","import { useContext, useMemo } from 'react';\nimport {\n type RuleProps,\n TestID,\n useRule,\n useStopEventPropagation,\n} from 'react-querybuilder';\nimport { inlineVars } from '../../utils';\nimport { AriaText } from '../aria';\nimport { QueryBuilderContext } from './constants';\nimport { queryBuilderRuleStateVars } from './query-builder.css';\nimport { getValidationResult } from './utils';\n\nexport function Rule(props: RuleProps) {\n const { classNames } = useContext(QueryBuilderContext);\n const rule = useRule(props);\n const cloneRule = useStopEventPropagation(rule.cloneRule);\n const toggleLockRule = useStopEventPropagation(rule.toggleLockRule);\n const removeRule = useStopEventPropagation(rule.removeRule);\n const shiftRuleUp = useStopEventPropagation(rule.shiftRuleUp);\n const shiftRuleDown = useStopEventPropagation(rule.shiftRuleDown);\n\n const { valid: isValid, reasons } = getValidationResult(\n props.rule,\n rule.fieldData?.validator,\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderRuleStateVars, {\n isDisabled: rule.disabled,\n isDragging: rule.isDragging,\n isDropTarget: rule.isOver,\n }),\n [rule.disabled, rule.isDragging, rule.isOver],\n );\n\n return (\n <div className={classNames?.rule?.container} style={style}>\n <div\n ref={rule.dndRef}\n className={rule.outerClassName}\n data-dragmonitorid={rule.dragMonitorId}\n data-dropmonitorid={rule.dropMonitorId}\n data-level={rule.path.length}\n data-path={JSON.stringify(rule.path)}\n data-rule-id={rule.id}\n data-testid={TestID.rule}\n >\n <RuleComponents\n {...rule}\n cloneRule={cloneRule}\n removeRule={removeRule}\n shiftRuleDown={shiftRuleDown}\n shiftRuleUp={shiftRuleUp}\n toggleLockRule={toggleLockRule}\n />\n </div>\n {!isValid &&\n reasons?.map((reason) => (\n <AriaText key={reason} className={classNames?.rule?.error}>\n {reason}\n </AriaText>\n ))}\n </div>\n );\n}\n\nexport function RuleComponents({\n classNames: classNamesProp,\n cloneRule,\n context,\n disabled,\n dragRef,\n fieldData,\n generateOnChangeHandler,\n hideValueControls,\n inputType,\n operators,\n parentDisabled,\n path,\n removeRule,\n rule,\n schema,\n shiftDownDisabled,\n shiftUpDisabled,\n shiftRuleDown,\n shiftRuleUp,\n toggleLockRule,\n translations,\n validationResult,\n valueEditorSeparator,\n valueEditorType,\n valueSourceOptions,\n valueSources,\n values,\n}: RuleProps & ReturnType<typeof useRule>) {\n const { classNames, consistentColumns } = useContext(QueryBuilderContext);\n\n const {\n controls: {\n shiftActions: ShiftActionsControlElement,\n dragHandle: DragHandleControlElement,\n fieldSelector: FieldSelectorControlElement,\n operatorSelector: OperatorSelectorControlElement,\n valueSourceSelector: ValueSourceSelectorControlElement,\n valueEditor: ValueEditorControlElement,\n cloneRuleAction: CloneRuleActionControlElement,\n lockRuleAction: LockRuleActionControlElement,\n removeRuleAction: RemoveRuleActionControlElement,\n },\n enableDragAndDrop,\n showCloneButtons,\n showLockButtons,\n showShiftActions,\n } = schema;\n\n const titles = useMemo(\n () => ({\n shiftUp: translations.shiftActionUp.title,\n shiftDown: translations.shiftActionDown.title,\n }),\n [translations.shiftActionDown.title, translations.shiftActionUp.title],\n );\n\n const labels = useMemo(\n () => ({\n shiftUp: translations.shiftActionUp.label,\n shiftDown: translations.shiftActionDown.label,\n }),\n [translations.shiftActionDown.label, translations.shiftActionUp.label],\n );\n\n const renderOperator =\n schema.autoSelectField ||\n rule.field !== translations.fields.placeholderName;\n\n const operator = useMemo(() => {\n if (renderOperator) {\n return (\n <div className={classNames?.rule?.operator}>\n <OperatorSelectorControlElement\n testID={TestID.operators}\n field={rule.field}\n fieldData={fieldData}\n title={translations.operators.title}\n options={operators}\n value={rule.operator}\n className={classNamesProp.operators}\n handleOnChange={generateOnChangeHandler('operator')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderOperator && consistentColumns ? (\n <div className={classNames?.rule?.operator} />\n ) : null;\n }, [\n OperatorSelectorControlElement,\n classNames?.rule?.operator,\n classNamesProp.operators,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n operators,\n path,\n renderOperator,\n rule,\n schema,\n translations.operators.title,\n validationResult,\n ]);\n\n const renderValue =\n renderOperator &&\n (schema.autoSelectOperator ||\n rule.operator !== translations.operators.placeholderName) &&\n !hideValueControls;\n\n const value = useMemo(() => {\n if (renderValue) {\n return (\n <div className={classNames?.rule?.values}>\n <ValueEditorControlElement\n testID={TestID.valueEditor}\n field={rule.field}\n fieldData={fieldData}\n title={translations.value.title}\n operator={rule.operator}\n value={rule.value}\n valueSource={rule.valueSource ?? 'value'}\n type={valueEditorType}\n inputType={inputType}\n values={values}\n listsAsArrays={schema.listsAsArrays}\n parseNumbers={schema.parseNumbers}\n separator={valueEditorSeparator}\n className={classNamesProp.value}\n handleOnChange={generateOnChangeHandler('value')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderValue && consistentColumns ? (\n <div className={classNames?.rule?.values} />\n ) : null;\n }, [\n ValueEditorControlElement,\n classNames?.rule?.values,\n classNamesProp.value,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n inputType,\n path,\n renderValue,\n rule,\n schema,\n translations.value.title,\n validationResult,\n valueEditorSeparator,\n valueEditorType,\n values,\n ]);\n\n const renderValueSources =\n renderValue &&\n !['null', 'notNull'].includes(rule.operator) &&\n valueSources.length > 1;\n\n const sources = useMemo(() => {\n if (renderValueSources) {\n return (\n <div className={classNames?.rule?.source}>\n <ValueSourceSelectorControlElement\n testID={TestID.valueSourceSelector}\n field={rule.field}\n fieldData={fieldData}\n title={translations.valueSourceSelector.title}\n options={valueSourceOptions}\n value={rule.valueSource ?? 'value'}\n className={classNamesProp.valueSource}\n handleOnChange={generateOnChangeHandler('valueSource')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderValueSources && consistentColumns ? (\n <div className={classNames?.rule?.source} />\n ) : null;\n }, [\n ValueSourceSelectorControlElement,\n classNames?.rule?.source,\n classNamesProp.valueSource,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n path,\n renderValueSources,\n rule,\n schema,\n translations.valueSourceSelector.title,\n validationResult,\n valueSourceOptions,\n ]);\n\n return (\n <>\n {showShiftActions && (\n <div className={classNames?.rule?.shift}>\n <ShiftActionsControlElement\n testID={TestID.shiftActions}\n level={path.length}\n path={path}\n titles={titles}\n labels={labels}\n className={classNamesProp.shiftActions}\n disabled={disabled}\n shiftUp={shiftRuleUp}\n shiftDown={shiftRuleDown}\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={context}\n validation={validationResult}\n schema={schema}\n ruleOrGroup={rule}\n />\n </div>\n )}\n {enableDragAndDrop && (\n <div className={classNames?.rule?.drag}>\n <DragHandleControlElement\n testID={TestID.dragHandle}\n ref={dragRef}\n level={path.length}\n path={path}\n title={translations.dragHandle.title}\n label={translations.dragHandle.label}\n className={classNamesProp.dragHandle}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n ruleOrGroup={rule}\n />\n </div>\n )}\n <div className={classNames?.rule?.field}>\n <FieldSelectorControlElement\n testID={TestID.fields}\n options={schema.fields}\n title={translations.fields.title}\n value={rule.field}\n operator={rule.operator}\n className={classNamesProp.fields}\n handleOnChange={generateOnChangeHandler('field')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n {operator}\n {sources}\n {value}\n {showCloneButtons && (\n <div className={classNames?.rule?.clone}>\n <CloneRuleActionControlElement\n testID={TestID.cloneRule}\n label={translations.cloneRule.label}\n title={translations.cloneRule.title}\n className={classNamesProp.cloneRule}\n handleOnClick={cloneRule}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n )}\n {showLockButtons && (\n <div className={classNames?.rule?.lock}>\n <LockRuleActionControlElement\n testID={TestID.lockRule}\n label={translations.lockRule.label}\n title={translations.lockRule.title}\n className={classNamesProp.lockRule}\n handleOnClick={toggleLockRule}\n level={path.length}\n path={path}\n disabled={disabled}\n disabledTranslation={\n parentDisabled ? undefined : translations.lockRuleDisabled\n }\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n )}\n <div className={classNames?.rule?.remove}>\n <RemoveRuleActionControlElement\n testID={TestID.removeRule}\n label={translations.removeRule.label}\n title={translations.removeRule.title}\n className={classNamesProp.removeRule}\n handleOnClick={removeRule}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n </>\n );\n}\n","import { useCallback, useContext, useMemo } from 'react';\nimport type { Key } from 'react-aria';\nimport type { Selection } from 'react-aria-components';\nimport {\n type FullOption,\n isOptionGroupArray,\n useValueSelector,\n type ValueSelectorProps,\n} from 'react-querybuilder';\nimport { callRenderProps } from '../../utils';\nimport { AriaHeader, AriaSection, AriaSelectValue } from '../aria';\nimport { Button } from '../button';\nimport { Options, OptionsItem, OptionsList } from '../options';\nimport { Select } from '../select';\nimport { QueryBuilderContext } from './constants';\n\nexport function ValueSelector<T extends FullOption = FullOption>({\n handleOnChange,\n listsAsArrays,\n options: optionsProp,\n multiple,\n title,\n validation,\n value,\n ...rest\n}: ValueSelectorProps<T>) {\n const { icons, size } = useContext(QueryBuilderContext);\n\n const { onChange, val } = useValueSelector({\n handleOnChange,\n listsAsArrays,\n multiple,\n value,\n });\n\n const handleSelectionChange = useCallback(\n (selection: Key) => onChange(`${selection}`),\n [onChange],\n );\n\n const handleMultiSelectChange = useCallback(\n (keys: Selection) => onChange([...keys].join(', ')),\n [onChange],\n );\n\n const options = useMemo(\n () =>\n isOptionGroupArray(optionsProp)\n ? optionsProp.map((section) => (\n <AriaSection key={section.label}>\n <AriaHeader>{section.label}</AriaHeader>\n {section.options.map((option) => (\n <OptionsItem id={option.name} key={option.name}>\n {option.label}\n </OptionsItem>\n ))}\n </AriaSection>\n ))\n : optionsProp.map((option) => (\n <OptionsItem id={option.name} key={option.name}>\n {option.label}\n </OptionsItem>\n )),\n [optionsProp],\n );\n\n return multiple ? (\n <OptionsList // TODO: Replace with ChipField when it exists\n {...rest}\n selectedKeys={val}\n selectionMode='multiple'\n size={size}\n onSelectionChange={handleMultiSelectChange}\n aria-label={title}\n >\n {options}\n </OptionsList>\n ) : (\n <Select\n {...rest}\n selectedKey={Array.isArray(val) ? val[0] : val}\n size={size}\n isInvalid={title === 'Value' && !validation}\n onSelectionChange={handleSelectionChange}\n aria-label={title}\n >\n {(renderProps) => (\n <>\n <Button>\n <AriaSelectValue>\n {({ selectedText }) => selectedText}\n </AriaSelectValue>\n {callRenderProps(icons?.select, renderProps)}\n </Button>\n <Options>\n <OptionsList>{options}</OptionsList>\n </Options>\n </>\n )}\n </Select>\n );\n}\n","import {\n type ChangeEvent,\n type FormEvent,\n useCallback,\n useContext,\n} from 'react';\nimport { useValueEditor, type ValueEditorProps } from 'react-querybuilder';\nimport { Checkbox } from '../checkbox';\nimport { Input, type InputType } from '../input';\nimport { Radio, RadioGroup } from '../radio';\nimport { Switch } from '../switch';\nimport { TextArea } from '../textarea';\nimport { multiValueOperators, QueryBuilderContext } from './constants';\nimport type { QueryBuilderValueEditors } from './types';\nimport { getValidationResult } from './utils';\nimport { ValueSelector } from './value-selector';\n\nfunction CheckboxValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { icons } = useContext(QueryBuilderContext);\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Checkbox\n isDisabled={disabled}\n isSelected={value}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n >\n {icons?.checkbox}\n </Checkbox>\n );\n}\n\nfunction RadioGroupValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n values,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <RadioGroup\n value={value}\n isDisabled={disabled}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n >\n {values?.map((option) => (\n <Radio key={option.name} value={option.value}>\n {option.label}\n </Radio>\n ))}\n </RadioGroup>\n );\n}\n\nconst defaultOptions: unknown[] = [];\n\nfunction SelectValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n type,\n value,\n values = defaultOptions,\n ...rest\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <ValueSelector\n {...rest}\n disabled={disabled}\n multiple={type === 'multiselect'}\n options={values}\n title={name}\n validation={!valid}\n value={value}\n handleOnChange={handleOnChange}\n />\n );\n}\n\nfunction SwitchValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Switch\n isDisabled={disabled}\n isSelected={Boolean(value)}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction TextValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n inputType,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) =>\n handleOnChange(event.target.value),\n [handleOnChange],\n );\n\n return (\n <Input\n disabled={disabled}\n placeholder={placeholder}\n type={(inputType as InputType) ?? 'text'}\n value={value}\n onChange={handleChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction TextareaValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n const handleChange = useCallback(\n (event: FormEvent<HTMLSpanElement>) =>\n handleOnChange(event.currentTarget.textContent),\n [handleOnChange],\n );\n\n return (\n <TextArea\n disabled={disabled}\n placeholder={placeholder}\n value={value}\n onChange={handleChange}\n aria-label={name}\n aria-invalid={!valid}\n />\n );\n}\n\nexport const defaultValueEditors: QueryBuilderValueEditors = {\n checkbox: CheckboxValueEditor,\n multiselect: SelectValueEditor,\n radio: RadioGroupValueEditor,\n select: SelectValueEditor,\n switch: SwitchValueEditor,\n text: TextValueEditor,\n textarea: TextareaValueEditor,\n};\n\nexport function ValueEditor(props: ValueEditorProps) {\n const {\n fieldData: { id, valueEditorType },\n operator,\n rule: ruleProp,\n } = props;\n\n const { classNames, valueEditors } = useContext(QueryBuilderContext);\n\n const { valueAsArray, multiValueHandler } = useValueEditor({\n ...props,\n skipHook: true,\n });\n\n const rule = useCallback(\n (index: number) => ({\n ...ruleProp,\n value: valueAsArray[index],\n }),\n [ruleProp, valueAsArray],\n );\n\n const handleRangeStartChange = useCallback(\n (value: string) => multiValueHandler(value, 0),\n [multiValueHandler],\n );\n\n const handleRangeEndChange = useCallback(\n (value: string) => multiValueHandler(value, 1),\n [multiValueHandler],\n );\n\n const type =\n (typeof valueEditorType === 'function'\n ? valueEditorType(operator)\n : valueEditorType) ?? 'text';\n\n const Editor = valueEditors?.[type];\n\n if (operator === 'null' || operator === 'notNull' || !Editor) {\n return null;\n }\n\n if (multiValueOperators.includes(operator)) {\n return (\n <>\n {['start', 'end'].map((term, index) => (\n <div key={`${id}-${term}`} className={classNames?.rule?.value}>\n <Editor\n {...props}\n rule={rule(index)}\n value={valueAsArray[index]}\n handleOnChange={\n !index ? handleRangeStartChange : handleRangeEndChange\n }\n />\n </div>\n ))}\n </>\n );\n }\n\n return (\n <div className={classNames?.rule?.value}>\n <Editor {...props} />\n </div>\n );\n}\n","import { useMemo } from 'react';\nimport { Provider } from 'react-aria-components';\nimport { QueryBuilder as RQBuilder } from 'react-querybuilder';\nimport { useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { inlineVars, mergeClassNames } from '../../utils';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { CheckboxContext, type CheckboxProps } from '../checkbox';\nimport { InputContext, type InputProps } from '../input';\nimport { RadioGroupContext, type RadioGroupProps } from '../radio';\nimport { SelectContext, type SelectProps } from '../select';\nimport { SwitchContext, type SwitchProps } from '../switch';\nimport { TextAreaContext, type TextAreaProps } from '../textarea';\nimport { ActionElement } from './action-element';\nimport { defaultSize, QueryBuilderContext } from './constants';\nimport {\n RuleGroup,\n RuleGroupBodyComponents,\n RuleGroupFooterComponents,\n RuleGroupHeaderComponents,\n} from './group';\nimport {\n queryBuilderClassNames,\n queryBuilderStateVars,\n} from './query-builder.css';\nimport { Rule } from './rule';\nimport type {\n QueryBuilderContextValue,\n QueryBuilderMapping,\n QueryBuilderProps,\n} from './types';\nimport { defaultValueEditors, ValueEditor } from './value-editor';\nimport { ValueSelector } from './value-selector';\n\nconst defaultMapping: QueryBuilderMapping = {\n button: {\n sm: { size: 'sm', variant: 'solid' },\n lg: { size: 'md', variant: 'solid' },\n },\n input: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n select: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n textarea: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nexport function QueryBuilder({\n classNames: classNamesProp,\n consistentColumns = true,\n controlElements: controlElementsProp,\n disabled,\n icons,\n mapping: mappingProp,\n size = defaultSize,\n valueEditors: valueEditorsProp,\n ...rest\n}: QueryBuilderProps) {\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(\n queryBuilderClassNames,\n theme.QueryBuilder,\n classNamesProp,\n {\n rule: { error: mapping?.error?.[size] },\n },\n ),\n [mapping?.error, size, theme.QueryBuilder, classNamesProp],\n );\n\n const controlClassNames = useMemo(() => {\n const {\n addGroup,\n addRule,\n cloneGroup,\n cloneRule,\n dragHandle,\n lockGroup,\n lockRule,\n removeGroup,\n removeRule,\n queryBuilder,\n group,\n rule,\n } = classNames ?? {};\n\n return {\n addGroup,\n addRule,\n cloneGroup,\n cloneRule,\n dragHandle,\n lockGroup,\n lockRule,\n removeGroup,\n removeRule,\n queryBuilder: queryBuilder?.queryBuilder,\n ruleGroup: group?.group,\n header: group?.header,\n body: group?.body,\n rule: rule?.rule,\n };\n }, [classNames]);\n\n const controlElements = useMemo(\n () => ({\n actionElement: ActionElement,\n rule: Rule,\n ruleGroup: RuleGroup,\n valueEditor: ValueEditor,\n valueSelector: ValueSelector,\n ...controlElementsProp,\n }),\n [controlElementsProp],\n );\n\n const valueEditors = useMemo(\n () => ({\n ...defaultValueEditors,\n ...valueEditorsProp,\n }),\n [valueEditorsProp],\n );\n\n const context = useMemo<\n [\n [typeof QueryBuilderContext, QueryBuilderContextValue],\n [typeof ButtonContext, ButtonProps],\n [typeof CheckboxContext, CheckboxProps],\n [typeof InputContext, InputProps],\n [typeof RadioGroupContext, RadioGroupProps],\n [typeof SelectContext, SelectProps<object>],\n [typeof SwitchContext, SwitchProps],\n [typeof TextAreaContext, TextAreaProps],\n ]\n >(\n () => [\n [\n QueryBuilderContext,\n {\n classNames,\n consistentColumns,\n controlElements: {\n ruleGroupBodyElements: RuleGroupBodyComponents,\n ruleGroupFooterElements: RuleGroupFooterComponents,\n ruleGroupHeaderElements: RuleGroupHeaderComponents,\n },\n icons,\n mapping,\n size,\n valueEditors,\n },\n ],\n [\n ButtonContext,\n { ...mapping?.button?.[size], classNames: classNames?.button },\n ],\n [CheckboxContext, { classNames: classNames?.checkbox }],\n [\n InputContext,\n { ...mapping?.input?.[size], classNames: classNames?.input },\n ],\n [RadioGroupContext, { classNames: classNames?.radio }],\n [\n SelectContext,\n { ...mapping?.select?.[size], classNames: classNames?.select },\n ],\n [SwitchContext, { classNames: classNames?.switch }],\n [\n TextAreaContext,\n { ...mapping?.textarea?.[size], classNames: classNames?.textarea },\n ],\n ],\n [classNames, consistentColumns, icons, mapping, size, valueEditors],\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderStateVars, {\n isDisabled: typeof disabled === 'boolean' ? disabled : false,\n }),\n [disabled],\n );\n\n return (\n <Provider values={context}>\n <div className={classNames?.queryBuilder?.container} style={style}>\n <RQBuilder\n {...rest}\n controlElements={controlElements}\n controlClassnames={controlClassNames}\n disabled={disabled}\n listsAsArrays\n />\n </div>\n </Provider>\n );\n}\n","import {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n Provider,\n type GroupProps as RACGroupProps,\n SearchField as RACSearchField,\n type SearchFieldRenderProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaGroupContext } from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { IconContext, type IconProps } from '../icon';\nimport { InputContext, type InputProps } from '../input';\nimport {\n searchFieldClassNames,\n searchFieldStateVars,\n} from './search-field.css';\nimport type { SearchFieldMapping, SearchFieldProps } from './types';\n\nconst defaultMapping: SearchFieldMapping = {\n icon: {\n sm: { size: 'xs' },\n lg: { size: 'sm' },\n },\n clear: {\n sm: { size: 'xs', variant: 'icon' },\n lg: { size: 'sm', variant: 'icon' },\n },\n};\n\nexport const SearchFieldContext =\n createContext<ContextValue<SearchFieldProps, HTMLDivElement>>(null);\n\nexport const SearchField = forwardRef(function SearchField(\n props: SearchFieldProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, SearchFieldContext);\n props = useDefaultProps(props, 'SearchField');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = 'lg',\n variant = 'solid',\n isDisabled,\n isReadOnly,\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(searchFieldClassNames, theme.SearchField, classNamesProp),\n [theme.SearchField, classNamesProp],\n );\n\n const values = useMemo<\n [\n [typeof AriaGroupContext, ContextValue<RACGroupProps, HTMLDivElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [typeof InputContext, ContextValue<InputProps, HTMLInputElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n ]\n >(\n () => [\n [AriaGroupContext, { className: classNames?.group }],\n [IconContext, { ...mapping.icon[size], classNames: classNames?.icon }],\n [InputContext, { classNames: classNames?.input, size }],\n [\n ButtonContext,\n {\n ...mapping.clear[size],\n classNames: classNames?.clear,\n isDisabled: isDisabled ?? isReadOnly,\n },\n ],\n ],\n [classNames, mapping, isDisabled, isReadOnly, size],\n );\n\n const style = useCallback(\n ({ state, ...renderProps }: SearchFieldRenderProps) =>\n inlineVars(searchFieldStateVars, {\n ...renderProps,\n variant,\n }),\n [variant],\n );\n\n const children = useCallback(\n (renderProps: SearchFieldRenderProps) => (\n <Provider values={values}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </Provider>\n ),\n [childrenProp, values],\n );\n\n return (\n <RACSearchField\n {...props}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </RACSearchField>\n );\n});\n","import {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n type FieldErrorProps,\n LabelContext,\n type LabelProps,\n Provider,\n TextField as RACTextField,\n type TextFieldRenderProps,\n type TextProps,\n} from 'react-aria-components';\nimport {\n AriaFieldErrorContext,\n type AriaLabelContext,\n AriaTextContext,\n InputContext,\n type InputProps,\n} from '../../components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { textFieldClassNames, textFieldStateVars } from './text-field.css';\nimport type { TextFieldMapping, TextFieldProps } from './types';\n\nconst defaultMapping: TextFieldMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nexport const TextFieldContext =\n createContext<ContextValue<TextFieldProps, HTMLDivElement>>(null);\n\nexport const TextField = forwardRef(function TextField(\n props: TextFieldProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TextFieldContext);\n\n props = useDefaultProps(props, 'TextField');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = 'lg',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(textFieldClassNames, theme.TextField, classNamesProp, {\n description: mapping.description[size],\n error: mapping.error[size],\n }),\n [theme.TextField, classNamesProp, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: TextFieldRenderProps) =>\n inlineVars(textFieldStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n const values = useMemo<\n [\n [typeof InputContext, ContextValue<InputProps, HTMLInputElement>],\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n ]\n >(\n () => [\n [InputContext, { classNames: classNames?.input, size }],\n [LabelContext, { className: classNames?.label }],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n ],\n [classNames, size],\n );\n\n const children = useCallback(\n (renderProps: TextFieldRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.textField}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.textField, values],\n );\n return (\n <RACTextField\n {...rest}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </RACTextField>\n );\n});\n","import {\n type DropItem,\n type DropOperation,\n type Key,\n type TextDropItem,\n isTextDropItem,\n} from 'react-aria';\nimport type { DragAndDropOptions } from 'react-aria-components';\nimport type { TreeNode, UseTreeResult } from '../../types';\n\nexport function createDragAndDropHandlers<T>(\n id: Key,\n acceptedDragTypes: string[],\n lookup: Record<Key, TreeNode<T>>,\n actions: UseTreeResult<T>['actions'],\n): DragAndDropOptions {\n return {\n acceptedDragTypes,\n getDropOperation,\n getItems: (keys: Set<Key>) =>\n [...keys].map((key) => {\n const node = lookup[key]?.value;\n\n if (!node) {\n return {};\n }\n\n const payload = JSON.stringify(node);\n\n return [\n 'all',\n 'type' in node ? node.type : undefined,\n ...('types' in node ? (node.types ?? []) : []),\n ].reduce<Record<string, string>>((acc, type) => {\n if (!type) return acc;\n\n acc[`tree-${type}`] = payload;\n\n return acc;\n }, {});\n }),\n onDragEnd: () => actions.revertIsExpanded(),\n onDragStart: ({ keys }) => actions.toggleIsExpanded(keys, false, true),\n onInsert: ({ items, target }) => {\n // Wrap async return function where void expected, fuck SQ\n (async () => {\n const processedItems = await processDroppedItems(\n items,\n acceptedDragTypes,\n );\n\n actions.remove(...processedItems.map((item) => item.id));\n\n if (target.dropPosition === 'before') {\n actions.insertBefore(target.key, ...processedItems);\n } else if (target.dropPosition === 'after') {\n actions.insertAfter(target.key, ...processedItems);\n }\n })();\n },\n onReorder({ keys, target }) {\n const values = Array.from(keys).flatMap((key) => {\n const value = lookup[key]?.value;\n\n if (value) {\n return [value];\n }\n\n return [];\n });\n\n actions.remove(...keys);\n\n if (target.dropPosition === 'before') {\n actions.insertBefore(target.key, ...values);\n } else if (target.dropPosition === 'after') {\n actions.insertAfter(target.key, ...values);\n }\n },\n onRootDrop: ({ items }) => {\n // See above, thanks SQ for ensuring high quality code\n (async () => {\n const processedItems = await processDroppedItems(\n items,\n acceptedDragTypes,\n );\n\n actions.remove(...processedItems.map((item) => item.id));\n\n actions.append(id, ...processedItems);\n })();\n },\n };\n}\n\nexport function getDropOperation(): DropOperation {\n return 'move';\n}\n\nexport async function processDroppedItems(\n items: DropItem[],\n acceptedDragTypes: string[],\n) {\n return await Promise.all(\n items\n .filter(isTextDropItem)\n .map((item) => processDroppedItem(item, acceptedDragTypes)),\n );\n}\n\nexport async function processDroppedItem(\n item: TextDropItem,\n acceptedDragTypes: string[],\n) {\n const payload = await getDroppedItemPayload(item, acceptedDragTypes);\n\n return payload\n ? JSON.parse(payload)\n : Promise.reject(new Error('No supported type payload'));\n}\n\nexport async function getDroppedItemPayload(\n item: TextDropItem,\n acceptedDragTypes: string[],\n) {\n return await Promise.any(\n acceptedDragTypes.map(\n async (type) =>\n (await item.getText(type)) ??\n Promise.reject(new Error('Unsupported type')),\n ),\n );\n}\n","import { noop } from 'lodash';\nimport { createContext, useCallback, useContext, useMemo } from 'react';\nimport { usePress, type Key } from 'react-aria';\nimport {\n DEFAULT_SLOT,\n DropIndicator,\n GridList,\n GridListItem,\n Provider,\n ButtonContext as RACButtonContext,\n useDragAndDrop,\n type ContextValue,\n type DropTarget,\n type GridListItemRenderProps,\n type GridListRenderProps,\n type ButtonProps as RACButtonProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useDefaultProps, useTheme, useTree } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaTextContext } from '../aria';\nimport {\n Button,\n ButtonContext,\n ToggleButtonContext,\n type ButtonProps,\n type ToggleButtonProps,\n} from '../button';\nimport { CheckboxContext, type CheckboxProps } from '../checkbox';\nimport { GroupContext, type GroupProps } from '../group';\nimport { Icon } from '../icon';\nimport { MergeProvider } from '../merge-provider';\nimport {\n treeClassNames,\n treeGroupStateVars,\n treeIndicatorStateVars,\n treeItemStateVars,\n treeStateVars,\n} from './tree.css';\nimport type {\n TreeGroupProps,\n TreeIndicatorRenderProps,\n TreeItemProps,\n TreeMapping,\n TreeProps,\n TreeStateContextValue,\n} from './types';\nimport { createDragAndDropHandlers } from './utils';\n\nconst emptyTree = {\n key: '',\n parentKey: '',\n children: [],\n value: { id: '', label: '' },\n};\n\nconst defaultMapping: TreeMapping = {\n actions: {\n sm: {},\n lg: {},\n },\n button: {\n sm: { size: 'sm', variant: 'icon' },\n lg: { size: 'md', variant: 'icon' },\n },\n description: {\n sm: bodies.sm,\n lg: bodies.md,\n },\n drag: {\n sm: {},\n lg: {},\n },\n expansion: {\n sm: {},\n lg: {},\n },\n visibility: {\n sm: {},\n lg: {},\n },\n};\n\nconst defaultSize = 'lg';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const TreeStateContext = createContext<TreeStateContextValue<any>>({\n allowsDragging: true,\n allowsExpansion: true,\n allowsVisibility: false,\n lookup: {},\n selectedKeys: new Set(),\n selectionMode: 'none',\n tree: emptyTree,\n actions: {\n append: noop,\n getItem: () => emptyTree,\n insert: noop,\n insertAfter: noop,\n insertBefore: noop,\n move: noop,\n prepend: noop,\n remove: noop,\n removeSelectedItems: noop,\n revertIsExpanded: noop,\n setSelectedKeys: noop,\n toggleIsExpanded: noop,\n toggleIsSelected: noop,\n toggleIsViewable: noop,\n update: noop,\n },\n});\n\nfunction defaultRenderEmptyState({ isDropTarget }: GridListRenderProps) {\n return isDropTarget ? 'Add to this group' : 'Nothing to see here';\n}\n\nexport function Tree<T>(props: TreeProps<T>) {\n props = useDefaultProps(props as TreeProps<unknown>, 'Tree') as TreeProps<T>;\n\n const {\n children: childrenProp,\n allowsDragging = false,\n allowsExpansion = true,\n allowsVisibility = false,\n classNames: classNamesProps,\n disabledBehavior = 'all',\n keyboardNavigationBehavior = 'arrow',\n mapping: mappingProp,\n nodes,\n provider,\n renderDragPreview,\n renderEmptyState: renderEmptyStateProp = defaultRenderEmptyState,\n selectionBehavior = 'replace',\n selectionMode = 'none',\n showTreeLines = true,\n size = defaultSize,\n onAction,\n onScroll,\n onSelectionChange,\n onUpdate,\n ...rest\n } = props;\n\n const state = useTree({\n allowsExpansion,\n allowsVisibility,\n nodes,\n selectionMode,\n onSelectionChange,\n onUpdate,\n });\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(treeClassNames, theme.Tree, classNamesProps, {\n item: {\n description: mapping.description[size],\n },\n }) ?? {},\n [theme.Tree, classNamesProps, mapping, size],\n );\n\n const renderEmptyState = useCallback(\n (renderProps: GridListRenderProps) => (\n <div className={classNames?.empty}>\n {renderEmptyStateProp(renderProps)}\n </div>\n ),\n [classNames?.empty, renderEmptyStateProp],\n );\n\n const context = useMemo<\n [[typeof TreeStateContext, TreeStateContextValue<T>]]\n >(\n () => [\n [\n TreeStateContext,\n {\n ...state,\n allowsDragging,\n classNames,\n disabledBehavior,\n keyboardNavigationBehavior,\n renderDragPreview,\n renderEmptyState,\n selectionBehavior,\n selectionMode,\n showTreeLines,\n size,\n onAction,\n onScroll,\n },\n ],\n ],\n [\n state,\n allowsDragging,\n classNames,\n disabledBehavior,\n keyboardNavigationBehavior,\n renderDragPreview,\n renderEmptyState,\n selectionBehavior,\n selectionMode,\n showTreeLines,\n size,\n onAction,\n onScroll,\n ],\n );\n\n const style = useMemo(\n () =>\n inlineVars(treeStateVars, {\n allowsDragging,\n allowsExpansion: state.allowsExpansion,\n allowsVisibility: state.allowsVisibility,\n showTreeLines,\n size,\n }),\n [\n allowsDragging,\n state.allowsExpansion,\n state.allowsVisibility,\n showTreeLines,\n size,\n ],\n );\n\n const children = useMemo(() => {\n const treeGroupProps = {\n ...rest,\n id: state.tree.key,\n nodes: state.tree.children,\n };\n\n return provider ? (\n callRenderProps(childrenProp, { ...state, treeGroupProps })\n ) : (\n <TreeGroup {...treeGroupProps}>{childrenProp}</TreeGroup>\n );\n }, [rest, provider, childrenProp, state]);\n\n return (\n <Provider values={context}>\n <div className={classNames?.tree?.container} style={style}>\n <div className={classNames?.tree?.tree}>{children}</div>\n </div>\n </Provider>\n );\n}\n\nexport function TreeGroup<T>({\n id,\n children,\n nodes,\n types = ['all'],\n ...rest\n}: TreeGroupProps<T>) {\n const {\n actions,\n allowsDragging,\n classNames,\n disabledBehavior,\n keyboardNavigationBehavior,\n lookup,\n renderDragPreview,\n renderEmptyState,\n selectedKeys,\n selectionBehavior,\n selectionMode,\n onAction,\n onScroll,\n } = useContext(TreeStateContext);\n\n const acceptedDragTypes = useMemo(\n () => types.map((type) => `tree-${type}`),\n [types],\n );\n\n // This function cannot be treated as a component and will throw errors if implemented as one (with hooks)\n const renderDropIndicator = useCallback(\n (target: DropTarget) => (\n <DropIndicator\n className={classNames?.indicator?.container}\n // eslint-disable-next-line react-perf/jsx-no-new-function-as-prop, react/jsx-no-bind\n style={(renderProps: TreeIndicatorRenderProps) =>\n inlineVars(treeIndicatorStateVars, {\n ...renderProps,\n dropPosition:\n 'dropPosition' in target ? target.dropPosition : 'root',\n })\n }\n target={target}\n >\n <div className={classNames?.indicator?.indicator} />\n </DropIndicator>\n ),\n [classNames?.indicator?.container, classNames?.indicator?.indicator],\n );\n\n const { dragAndDropHooks } = useDragAndDrop({\n isDisabled: !allowsDragging,\n renderDragPreview,\n renderDropIndicator,\n ...createDragAndDropHandlers(id, acceptedDragTypes, lookup, actions),\n });\n\n const style = useCallback(\n (renderProps: GridListRenderProps) =>\n inlineVars(treeGroupStateVars, { ...renderProps, count: nodes.length }),\n [nodes.length],\n );\n\n const indices = useMemo(\n () =>\n nodes.reduce<Record<Key, number>>((acc, node, index) => {\n acc[node.key] = index;\n\n return acc;\n }, {}),\n [nodes],\n );\n\n return (\n <GridList\n {...rest}\n className={classNames?.group}\n disabledBehavior={disabledBehavior}\n dragAndDropHooks={dragAndDropHooks}\n items={nodes}\n keyboardNavigationBehavior={keyboardNavigationBehavior}\n renderEmptyState={renderEmptyState}\n selectedKeys={selectedKeys}\n selectionBehavior={selectionBehavior}\n selectionMode={selectionMode}\n style={style}\n onAction={onAction}\n onScroll={onScroll}\n >\n {(item) => (\n <TreeItem\n index={indices[item.key] ?? -1}\n node={item}\n isFirstChild={indices[item.key] === 0}\n isLastChild={indices[item.key] === nodes.length - 1}\n >\n {children}\n </TreeItem>\n )}\n </GridList>\n );\n}\n\ntype TreeItemContexts = [\n [\n typeof ToggleButtonContext,\n ContextValue<ToggleButtonProps, HTMLButtonElement>,\n ],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLSpanElement>],\n [\n typeof GroupContext,\n ContextValue<GroupProps<ButtonProps, HTMLButtonElement>, HTMLDivElement>,\n ],\n [typeof CheckboxContext, ContextValue<CheckboxProps, HTMLLabelElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n [typeof RACButtonContext, ContextValue<RACButtonProps, HTMLButtonElement>],\n];\n\nconst contextBlocker: TreeItemContexts = [\n [ToggleButtonContext, null],\n [AriaTextContext, null],\n [GroupContext, null],\n [CheckboxContext, null],\n [ButtonContext, null],\n [RACButtonContext, null],\n];\n\nexport function TreeItem<T>({\n children: childrenProp,\n index,\n mapping: mappingProp,\n node,\n isFirstChild,\n isLastChild,\n ...rest\n}: TreeItemProps<T>) {\n const {\n actions,\n allowsExpansion,\n classNames,\n size: sizeProp,\n } = useContext(TreeStateContext);\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const selection = useMemo(() => new Set([node.key]), [node.key]);\n\n const handleToggleExpansion = useCallback(\n () => actions.toggleIsExpanded(selection),\n [actions, selection],\n );\n\n const handleToggleSelection = useCallback(\n () => actions.toggleIsSelected(selection),\n [actions, selection],\n );\n\n const handleToggleVisibility = useCallback(\n () => actions.toggleIsViewable(selection),\n [actions, selection],\n );\n\n const { pressProps } = usePress({\n onPress: handleToggleExpansion,\n });\n\n const style = useCallback(\n (renderProps: GridListItemRenderProps) =>\n inlineVars(treeItemStateVars, {\n ...renderProps,\n count: node.children.length,\n index,\n isExpanded: 'nodes' in node.value ? !!node.value.isExpanded : false,\n isFirstChild,\n isGroup: 'nodes' in node.value,\n isLastChild,\n isViewable: !!node.value.isViewable,\n isVisible: !!node.value.isVisible,\n }),\n [node.children.length, node.value, index, isFirstChild, isLastChild],\n );\n\n const context = useMemo<TreeItemContexts>(() => {\n const size = sizeProp ?? defaultSize;\n const buttonProps = mapping.button[size] ?? {};\n\n return [\n [\n ToggleButtonContext,\n {\n slots: {\n [DEFAULT_SLOT]: buttonProps,\n expansion: {\n ...buttonProps,\n ...mapping.expansion[size],\n classNames: classNames?.item?.expansion,\n isSelected:\n 'nodes' in node.value ? !!node.value.isExpanded : undefined,\n onPress: handleToggleExpansion,\n },\n visibility: {\n ...buttonProps,\n ...mapping.visibility[size],\n classNames: classNames?.item?.visibility,\n isSelected: !!node.value.isViewable,\n onPress: handleToggleVisibility,\n },\n },\n },\n ],\n [\n AriaTextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n description: {\n ...('nodes' in node.value ? pressProps : {}),\n className: classNames?.item?.description,\n children: node.value.label,\n },\n },\n },\n ],\n [\n GroupContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n actions: {\n classNames: classNames?.item?.actions,\n context: ButtonContext,\n values: buttonProps,\n },\n },\n },\n ],\n [\n CheckboxContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n selection: {\n classNames: classNames?.item?.selection,\n onChange: handleToggleSelection,\n },\n },\n },\n ],\n [\n ButtonContext,\n {\n slots: {\n [DEFAULT_SLOT]: buttonProps,\n drag: {\n ...buttonProps,\n ...mapping.drag[size],\n classNames: classNames?.item?.drag,\n },\n // We use a non-interactive Button for the lines to try and simplify the\n // consistent use of space when rendered in alignment with other Buttons\n lines: {\n ...buttonProps,\n classNames: classNames?.item?.lines,\n isDisabled: true,\n },\n },\n },\n ],\n // Need to expand the RAC ButtonContext to allow for additional slots\n [RACButtonContext, { slots: { [DEFAULT_SLOT]: {}, lines: {} } }],\n ];\n }, [\n classNames?.item?.lines,\n classNames?.item?.expansion,\n classNames?.item?.visibility,\n classNames?.item?.description,\n classNames?.item?.actions,\n classNames?.item?.selection,\n classNames?.item?.drag,\n mapping,\n node,\n pressProps,\n sizeProp,\n handleToggleExpansion,\n handleToggleSelection,\n handleToggleVisibility,\n ]);\n\n /**\n * We need to block the above contexts from being passed into the TreeGroup\n * so that each TreeItem has a distinct context. We only use MergeProvider\n * for the above contexts because the GridListItem provides contexts that\n * we need to merge with\n */\n const children = useCallback(\n (renderProps: GridListItemRenderProps) => (\n <MergeProvider values={context}>\n <div className={classNames?.item?.item}>\n {node.parentKey && (\n <Button slot='lines'>\n <Icon />\n </Button>\n )}\n <div className={classNames?.item?.bar}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n node,\n })}\n </div>\n {'nodes' in node.value &&\n (!allowsExpansion || node.value.isExpanded) && (\n <Provider values={contextBlocker}>\n <TreeGroup\n id={node.key}\n nodes={node.children}\n types={node.value.types}\n aria-label={node.value.label}\n >\n {childrenProp}\n </TreeGroup>\n </Provider>\n )}\n </div>\n </MergeProvider>\n ),\n [\n context,\n classNames?.item?.item,\n classNames?.item?.bar,\n node,\n childrenProp,\n allowsExpansion,\n ],\n );\n\n return (\n <GridListItem\n {...rest}\n className={classNames?.item?.container}\n style={style}\n textValue={node.value.label}\n >\n {children}\n </GridListItem>\n );\n}\n"]}