@accelint/design-system 0.8.1 → 0.10.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 (329) hide show
  1. package/dist/components/aria/index.d.ts +32 -3
  2. package/dist/components/aria/index.js +36 -1
  3. package/dist/components/aria/index.js.map +1 -1
  4. package/dist/components/button/button.css.js.map +1 -1
  5. package/dist/components/button/index.d.ts +45 -6
  6. package/dist/components/button/index.js +105 -3
  7. package/dist/components/button/index.js.map +1 -1
  8. package/dist/components/checkbox/checkbox.css.js.map +1 -1
  9. package/dist/components/checkbox/index.d.ts +28 -7
  10. package/dist/components/checkbox/index.js +124 -3
  11. package/dist/components/checkbox/index.js.map +1 -1
  12. package/dist/components/chip/chip.css.js.map +1 -1
  13. package/dist/components/chip/index.d.ts +36 -6
  14. package/dist/components/chip/index.js +171 -3
  15. package/dist/components/chip/index.js.map +1 -1
  16. package/dist/components/collection/index.d.ts +16 -5
  17. package/dist/components/collection/index.js +19 -1
  18. package/dist/components/collection/index.js.map +1 -1
  19. package/dist/components/combo-box/combo-box.css.js.map +1 -1
  20. package/dist/components/combo-box/index.d.ts +13 -5
  21. package/dist/components/combo-box/index.js +116 -3
  22. package/dist/components/combo-box/index.js.map +1 -1
  23. package/dist/components/date-field/date-field.css.js.map +1 -1
  24. package/dist/components/date-field/index.d.ts +13 -5
  25. package/dist/components/date-field/index.js +106 -2
  26. package/dist/components/date-field/index.js.map +1 -1
  27. package/dist/components/date-input/date-input.css.js.map +1 -1
  28. package/dist/components/date-input/index.d.ts +19 -7
  29. package/dist/components/date-input/index.js +144 -2
  30. package/dist/components/date-input/index.js.map +1 -1
  31. package/dist/components/dialog/dialog.css.js.map +1 -1
  32. package/dist/components/dialog/index.d.ts +24 -6
  33. package/dist/components/dialog/index.js +187 -3
  34. package/dist/components/dialog/index.js.map +1 -1
  35. package/dist/components/dialog/types.d.ts +1 -1
  36. package/dist/components/drawer/drawer.css.js.map +1 -1
  37. package/dist/components/drawer/index.d.ts +19 -7
  38. package/dist/components/drawer/index.js +306 -3
  39. package/dist/components/drawer/index.js.map +1 -1
  40. package/dist/components/element/index.d.ts +15 -4
  41. package/dist/components/element/index.js +21 -2
  42. package/dist/components/element/index.js.map +1 -1
  43. package/dist/components/element/types.d.ts +3 -3
  44. package/dist/components/group/group.css.js.map +1 -1
  45. package/dist/components/group/index.d.ts +15 -5
  46. package/dist/components/group/index.js +60 -3
  47. package/dist/components/group/index.js.map +1 -1
  48. package/dist/components/icon/icon.css.js.map +1 -1
  49. package/dist/components/icon/index.d.ts +17 -5
  50. package/dist/components/icon/index.js +39 -3
  51. package/dist/components/icon/index.js.map +1 -1
  52. package/dist/components/index.d.ts +35 -35
  53. package/dist/components/index.js +58 -28
  54. package/dist/components/input/index.d.ts +12 -5
  55. package/dist/components/input/index.js +141 -3
  56. package/dist/components/input/index.js.map +1 -1
  57. package/dist/components/input/input.css.js.map +1 -1
  58. package/dist/components/menu/index.d.ts +29 -5
  59. package/dist/components/menu/index.js +254 -3
  60. package/dist/components/menu/index.js.map +1 -1
  61. package/dist/components/menu/menu.css.js.map +1 -1
  62. package/dist/components/merge-provider/index.d.ts +18 -3
  63. package/dist/components/merge-provider/index.js +43 -2
  64. package/dist/components/merge-provider/index.js.map +1 -1
  65. package/dist/components/number-field/index.d.ts +14 -6
  66. package/dist/components/number-field/index.js +127 -2
  67. package/dist/components/number-field/index.js.map +1 -1
  68. package/dist/components/number-field/number-field.css.d.ts +1 -1
  69. package/dist/components/number-field/number-field.css.js.map +1 -1
  70. package/dist/components/number-field/types.d.ts +1 -1
  71. package/dist/components/options/index.d.ts +25 -5
  72. package/dist/components/options/index.js +255 -3
  73. package/dist/components/options/index.js.map +1 -1
  74. package/dist/components/options/options.css.js.map +1 -1
  75. package/dist/components/picker/index.d.ts +23 -5
  76. package/dist/components/picker/index.js +113 -3
  77. package/dist/components/picker/index.js.map +1 -1
  78. package/dist/components/picker/picker.css.js.map +1 -1
  79. package/dist/components/picker/picker.stories.css.js.map +1 -1
  80. package/dist/components/popover/index.d.ts +14 -6
  81. package/dist/components/popover/index.js +140 -3
  82. package/dist/components/popover/index.js.map +1 -1
  83. package/dist/components/popover/popover.css.js.map +1 -1
  84. package/dist/components/popover/types.d.ts +1 -1
  85. package/dist/components/query-builder/action-element.js.map +1 -1
  86. package/dist/components/query-builder/constants.js.map +1 -1
  87. package/dist/components/query-builder/dataset-sample.js.map +1 -1
  88. package/dist/components/query-builder/group.js +1 -1
  89. package/dist/components/query-builder/group.js.map +1 -1
  90. package/dist/components/query-builder/index.d.ts +7 -7
  91. package/dist/components/query-builder/index.js +198 -5
  92. package/dist/components/query-builder/index.js.map +1 -1
  93. package/dist/components/query-builder/query-builder.css.js.map +1 -1
  94. package/dist/components/query-builder/rule.js +1 -1
  95. package/dist/components/query-builder/rule.js.map +1 -1
  96. package/dist/components/query-builder/utils.js.map +1 -1
  97. package/dist/components/query-builder/value-editor.js.map +1 -1
  98. package/dist/components/query-builder/value-selector.js +1 -1
  99. package/dist/components/query-builder/value-selector.js.map +1 -1
  100. package/dist/components/radio/index.d.ts +22 -6
  101. package/dist/components/radio/index.js +114 -3
  102. package/dist/components/radio/index.js.map +1 -1
  103. package/dist/components/radio/radio.css.js.map +1 -1
  104. package/dist/components/search-field/index.d.ts +15 -6
  105. package/dist/components/search-field/index.js +92 -3
  106. package/dist/components/search-field/index.js.map +1 -1
  107. package/dist/components/search-field/search-field.css.js.map +1 -1
  108. package/dist/components/select/index.d.ts +13 -5
  109. package/dist/components/select/index.js +109 -3
  110. package/dist/components/select/index.js.map +1 -1
  111. package/dist/components/select/select.css.js.map +1 -1
  112. package/dist/components/slider/index.d.ts +41 -7
  113. package/dist/components/slider/index.js +235 -3
  114. package/dist/components/slider/index.js.map +1 -1
  115. package/dist/components/slider/slider.css.d.ts +1 -1
  116. package/dist/components/slider/slider.css.js.map +1 -1
  117. package/dist/components/slider/types.d.ts +1 -1
  118. package/dist/components/switch/index.d.ts +9 -5
  119. package/dist/components/switch/index.js +60 -3
  120. package/dist/components/switch/index.js.map +1 -1
  121. package/dist/components/switch/switch.css.js.map +1 -1
  122. package/dist/components/tabs/index.d.ts +74 -7
  123. package/dist/components/tabs/index.js +259 -3
  124. package/dist/components/tabs/index.js.map +1 -1
  125. package/dist/components/tabs/tabs.css.js.map +1 -1
  126. package/dist/components/text-field/index.d.ts +61 -6
  127. package/dist/components/text-field/index.js +93 -2
  128. package/dist/components/text-field/index.js.map +1 -1
  129. package/dist/components/text-field/text-field.css.js.map +1 -1
  130. package/dist/components/textarea/index.d.ts +18 -5
  131. package/dist/components/textarea/index.js +134 -3
  132. package/dist/components/textarea/index.js.map +1 -1
  133. package/dist/components/textarea/textarea.css.js.map +1 -1
  134. package/dist/components/time-field/index.d.ts +14 -6
  135. package/dist/components/time-field/index.js +103 -2
  136. package/dist/components/time-field/index.js.map +1 -1
  137. package/dist/components/time-field/time-field.css.js.map +1 -1
  138. package/dist/components/tooltip/index.d.ts +29 -6
  139. package/dist/components/tooltip/index.js +112 -3
  140. package/dist/components/tooltip/index.js.map +1 -1
  141. package/dist/components/tooltip/tooltip.css.js.map +1 -1
  142. package/dist/components/tree/index.d.ts +17 -5
  143. package/dist/components/tree/index.js +491 -3
  144. package/dist/components/tree/index.js.map +1 -1
  145. package/dist/components/tree/tree.css.js.map +1 -1
  146. package/dist/components/tree/utils.js.map +1 -1
  147. package/dist/hooks/index.d.ts +12 -12
  148. package/dist/hooks/use-collection-render/index.d.ts +11 -3
  149. package/dist/hooks/use-collection-render/index.js +25 -1
  150. package/dist/hooks/use-collection-render/index.js.map +1 -1
  151. package/dist/hooks/use-context-props/index.d.ts +10 -3
  152. package/dist/hooks/use-context-props/index.js +15 -1
  153. package/dist/hooks/use-context-props/index.js.map +1 -1
  154. package/dist/hooks/use-defaults/index.d.ts +99 -31
  155. package/dist/hooks/use-defaults/index.js +33 -2
  156. package/dist/hooks/use-defaults/index.js.map +1 -1
  157. package/dist/hooks/use-defaults/types.d.ts +6 -6
  158. package/dist/hooks/use-propagating-press/index.d.ts +13 -2
  159. package/dist/hooks/use-propagating-press/index.js +19 -1
  160. package/dist/hooks/use-propagating-press/index.js.map +1 -1
  161. package/dist/hooks/use-slot/index.d.ts +16 -2
  162. package/dist/hooks/use-slot/index.js +18 -1
  163. package/dist/hooks/use-slot/index.js.map +1 -1
  164. package/dist/hooks/use-theme/index.d.ts +37 -8
  165. package/dist/hooks/use-theme/index.js +105 -2
  166. package/dist/hooks/use-theme/index.js.map +1 -1
  167. package/dist/hooks/use-theme/types.d.ts +2 -2
  168. package/dist/hooks/use-theme/use-theme.css.js.map +1 -1
  169. package/dist/hooks/use-tree/index.d.ts +5 -2
  170. package/dist/hooks/use-tree/index.js +262 -1
  171. package/dist/hooks/use-tree/index.js.map +1 -1
  172. package/dist/hooks/use-tree/utils.js.map +1 -1
  173. package/dist/hooks/use-update-effect/index.d.ts +3 -1
  174. package/dist/hooks/use-update-effect/index.js +20 -1
  175. package/dist/hooks/use-update-effect/index.js.map +1 -1
  176. package/dist/index.css +119 -119
  177. package/dist/index.d.ts +47 -47
  178. package/dist/ladle/actions.js.map +1 -1
  179. package/dist/styles/layers.css.d.ts +3 -3
  180. package/dist/styles/layers.css.js.map +1 -1
  181. package/dist/styles/surfaces.css.d.ts +1 -1
  182. package/dist/styles/surfaces.css.js.map +1 -1
  183. package/dist/styles/theme.css.js.map +1 -1
  184. package/dist/styles/typography.css.js.map +1 -1
  185. package/dist/test/setup.js +78 -8
  186. package/dist/test/setup.js.map +1 -1
  187. package/dist/types/use-tree.d.ts +1 -1
  188. package/dist/utils/{css.d.ts → css/index.d.ts} +2 -2
  189. package/dist/utils/{css.js → css/index.js} +5 -5
  190. package/dist/utils/css/index.js.map +1 -0
  191. package/dist/utils/events/index.js +10 -0
  192. package/dist/utils/events/index.js.map +1 -0
  193. package/dist/utils/index.d.ts +4 -4
  194. package/dist/utils/index.js +4 -4
  195. package/dist/utils/{props.d.ts → props/index.d.ts} +2 -2
  196. package/dist/utils/{props.js → props/index.js} +3 -3
  197. package/dist/utils/props/index.js.map +1 -0
  198. package/dist/utils/{validators.d.ts → validators/index.d.ts} +1 -1
  199. package/dist/utils/{validators.js → validators/index.js} +3 -3
  200. package/dist/utils/validators/index.js.map +1 -0
  201. package/dist/vanilla.d.ts +1 -1
  202. package/dist/vanilla.js +1 -1
  203. package/package.json +25 -26
  204. package/dist/components/aria/aria.d.ts +0 -32
  205. package/dist/components/aria/aria.js +0 -39
  206. package/dist/components/aria/aria.js.map +0 -1
  207. package/dist/components/button/button.d.ts +0 -47
  208. package/dist/components/button/button.js +0 -104
  209. package/dist/components/button/button.js.map +0 -1
  210. package/dist/components/checkbox/checkbox.d.ts +0 -30
  211. package/dist/components/checkbox/checkbox.js +0 -123
  212. package/dist/components/checkbox/checkbox.js.map +0 -1
  213. package/dist/components/chip/chip.d.ts +0 -41
  214. package/dist/components/chip/chip.js +0 -171
  215. package/dist/components/chip/chip.js.map +0 -1
  216. package/dist/components/collection/collection.d.ts +0 -17
  217. package/dist/components/collection/collection.js +0 -22
  218. package/dist/components/collection/collection.js.map +0 -1
  219. package/dist/components/combo-box/combo-box.d.ts +0 -21
  220. package/dist/components/combo-box/combo-box.js +0 -116
  221. package/dist/components/combo-box/combo-box.js.map +0 -1
  222. package/dist/components/date-field/date-field.d.ts +0 -20
  223. package/dist/components/date-field/date-field.js +0 -106
  224. package/dist/components/date-field/date-field.js.map +0 -1
  225. package/dist/components/date-input/date-input.d.ts +0 -42
  226. package/dist/components/date-input/date-input.js +0 -128
  227. package/dist/components/date-input/date-input.js.map +0 -1
  228. package/dist/components/dialog/dialog.d.ts +0 -29
  229. package/dist/components/dialog/dialog.js +0 -186
  230. package/dist/components/dialog/dialog.js.map +0 -1
  231. package/dist/components/drawer/drawer.d.ts +0 -28
  232. package/dist/components/drawer/drawer.js +0 -305
  233. package/dist/components/drawer/drawer.js.map +0 -1
  234. package/dist/components/element/element.d.ts +0 -16
  235. package/dist/components/element/element.js +0 -24
  236. package/dist/components/element/element.js.map +0 -1
  237. package/dist/components/group/group.d.ts +0 -16
  238. package/dist/components/group/group.js +0 -61
  239. package/dist/components/group/group.js.map +0 -1
  240. package/dist/components/icon/icon.d.ts +0 -17
  241. package/dist/components/icon/icon.js +0 -39
  242. package/dist/components/icon/icon.js.map +0 -1
  243. package/dist/components/input/input.d.ts +0 -13
  244. package/dist/components/input/input.js +0 -141
  245. package/dist/components/input/input.js.map +0 -1
  246. package/dist/components/menu/menu.d.ts +0 -32
  247. package/dist/components/menu/menu.js +0 -252
  248. package/dist/components/menu/menu.js.map +0 -1
  249. package/dist/components/merge-provider/merge-provider.d.ts +0 -20
  250. package/dist/components/merge-provider/merge-provider.js +0 -46
  251. package/dist/components/merge-provider/merge-provider.js.map +0 -1
  252. package/dist/components/number-field/number-field.d.ts +0 -20
  253. package/dist/components/number-field/number-field.js +0 -125
  254. package/dist/components/number-field/number-field.js.map +0 -1
  255. package/dist/components/options/options.d.ts +0 -28
  256. package/dist/components/options/options.js +0 -253
  257. package/dist/components/options/options.js.map +0 -1
  258. package/dist/components/picker/picker.d.ts +0 -24
  259. package/dist/components/picker/picker.js +0 -113
  260. package/dist/components/picker/picker.js.map +0 -1
  261. package/dist/components/popover/popover.d.ts +0 -22
  262. package/dist/components/popover/popover.js +0 -139
  263. package/dist/components/popover/popover.js.map +0 -1
  264. package/dist/components/query-builder/query-builder.d.ts +0 -23
  265. package/dist/components/query-builder/query-builder.js +0 -200
  266. package/dist/components/query-builder/query-builder.js.map +0 -1
  267. package/dist/components/radio/radio.d.ts +0 -23
  268. package/dist/components/radio/radio.js +0 -114
  269. package/dist/components/radio/radio.js.map +0 -1
  270. package/dist/components/search-field/search-field.d.ts +0 -21
  271. package/dist/components/search-field/search-field.js +0 -92
  272. package/dist/components/search-field/search-field.js.map +0 -1
  273. package/dist/components/select/select.d.ts +0 -20
  274. package/dist/components/select/select.js +0 -109
  275. package/dist/components/select/select.js.map +0 -1
  276. package/dist/components/slider/slider.d.ts +0 -49
  277. package/dist/components/slider/slider.js +0 -230
  278. package/dist/components/slider/slider.js.map +0 -1
  279. package/dist/components/switch/switch.d.ts +0 -10
  280. package/dist/components/switch/switch.js +0 -60
  281. package/dist/components/switch/switch.js.map +0 -1
  282. package/dist/components/tabs/tabs.d.ts +0 -75
  283. package/dist/components/tabs/tabs.js +0 -258
  284. package/dist/components/tabs/tabs.js.map +0 -1
  285. package/dist/components/text-field/text-field.d.ts +0 -64
  286. package/dist/components/text-field/text-field.js +0 -92
  287. package/dist/components/text-field/text-field.js.map +0 -1
  288. package/dist/components/textarea/textarea.d.ts +0 -19
  289. package/dist/components/textarea/textarea.js +0 -134
  290. package/dist/components/textarea/textarea.js.map +0 -1
  291. package/dist/components/time-field/time-field.d.ts +0 -21
  292. package/dist/components/time-field/time-field.js +0 -106
  293. package/dist/components/time-field/time-field.js.map +0 -1
  294. package/dist/components/tooltip/tooltip.d.ts +0 -30
  295. package/dist/components/tooltip/tooltip.js +0 -112
  296. package/dist/components/tooltip/tooltip.js.map +0 -1
  297. package/dist/components/tree/tree.d.ts +0 -29
  298. package/dist/components/tree/tree.js +0 -491
  299. package/dist/components/tree/tree.js.map +0 -1
  300. package/dist/hooks/use-collection-render/use-collection-render.d.ts +0 -11
  301. package/dist/hooks/use-collection-render/use-collection-render.js +0 -28
  302. package/dist/hooks/use-collection-render/use-collection-render.js.map +0 -1
  303. package/dist/hooks/use-context-props/use-context-props.d.ts +0 -10
  304. package/dist/hooks/use-context-props/use-context-props.js +0 -18
  305. package/dist/hooks/use-context-props/use-context-props.js.map +0 -1
  306. package/dist/hooks/use-defaults/use-defaults.d.ts +0 -110
  307. package/dist/hooks/use-defaults/use-defaults.js +0 -36
  308. package/dist/hooks/use-defaults/use-defaults.js.map +0 -1
  309. package/dist/hooks/use-propagating-press/use-propagating-press.d.ts +0 -13
  310. package/dist/hooks/use-propagating-press/use-propagating-press.js +0 -21
  311. package/dist/hooks/use-propagating-press/use-propagating-press.js.map +0 -1
  312. package/dist/hooks/use-slot/use-slot.d.ts +0 -16
  313. package/dist/hooks/use-slot/use-slot.js +0 -21
  314. package/dist/hooks/use-slot/use-slot.js.map +0 -1
  315. package/dist/hooks/use-theme/use-theme.d.ts +0 -77
  316. package/dist/hooks/use-theme/use-theme.js +0 -108
  317. package/dist/hooks/use-theme/use-theme.js.map +0 -1
  318. package/dist/hooks/use-tree/use-tree.d.ts +0 -7
  319. package/dist/hooks/use-tree/use-tree.js +0 -262
  320. package/dist/hooks/use-tree/use-tree.js.map +0 -1
  321. package/dist/hooks/use-update-effect/use-update-effect.d.ts +0 -3
  322. package/dist/hooks/use-update-effect/use-update-effect.js +0 -23
  323. package/dist/hooks/use-update-effect/use-update-effect.js.map +0 -1
  324. package/dist/utils/css.js.map +0 -1
  325. package/dist/utils/events.js +0 -10
  326. package/dist/utils/events.js.map +0 -1
  327. package/dist/utils/props.js.map +0 -1
  328. package/dist/utils/validators.js.map +0 -1
  329. /package/dist/utils/{events.d.ts → events/index.d.ts} +0 -0
@@ -1,6 +1,494 @@
1
1
  import '../../chunk-PZ5AY32C.js';
2
- export { Tree, TreeGroup, TreeItem, TreeStateContext } from './tree.js';
3
- export { treeClassNames, treeColorVars, treeContainers, treeGroupStateVars, treeIndicatorStateVars, treeItemStateVars, treeSpaceVars, treeStateVars } from './tree.css.js';
4
- import './types.js';
2
+ import { noop } from '@accelint/core';
3
+ import { usePress } from '@react-aria/interactions';
4
+ import { createContext, useMemo, useCallback, useContext } from 'react';
5
+ import { Provider, DropIndicator, useDragAndDrop, GridList, ButtonContext as ButtonContext$1, DEFAULT_SLOT, GridListItem } from 'react-aria-components';
6
+ import { useDefaultProps } from '../../hooks/use-defaults/index.js';
7
+ import { useTheme } from '../../hooks/use-theme/index.js';
8
+ import { useTree } from '../../hooks/use-tree/index.js';
9
+ import { bodies } from '../../styles/typography.css.js';
10
+ import { inlineVars } from '../../utils/css/index.js';
11
+ import { mergeClassNames, callRenderProps } from '../../utils/props/index.js';
12
+ import { AriaTextContext } from '../aria/index.js';
13
+ import { ToggleButtonContext, ButtonContext, Button } from '../button/index.js';
14
+ import { CheckboxContext } from '../checkbox/index.js';
15
+ import { GroupContext } from '../group/index.js';
16
+ import { Icon } from '../icon/index.js';
17
+ import { MergeProvider } from '../merge-provider/index.js';
18
+ import { treeClassNames, treeStateVars, treeIndicatorStateVars, treeGroupStateVars, treeItemStateVars } from './tree.css.js';
19
+ import { createDragAndDropHandlers } from './utils.js';
20
+ import { jsx, jsxs } from 'react/jsx-runtime';
21
+
22
+ var emptyTree = {
23
+ key: "",
24
+ parentKey: "",
25
+ children: [],
26
+ value: { id: "", label: "" }
27
+ };
28
+ var defaultMapping = {
29
+ actions: {
30
+ sm: {},
31
+ lg: {}
32
+ },
33
+ button: {
34
+ sm: { size: "sm", variant: "icon" },
35
+ lg: { size: "md", variant: "icon" }
36
+ },
37
+ description: {
38
+ sm: bodies.sm,
39
+ lg: bodies.md
40
+ },
41
+ drag: {
42
+ sm: {},
43
+ lg: {}
44
+ },
45
+ expansion: {
46
+ sm: {},
47
+ lg: {}
48
+ },
49
+ visibility: {
50
+ sm: {},
51
+ lg: {}
52
+ }
53
+ };
54
+ var defaultSize = "lg";
55
+ var TreeStateContext = createContext({
56
+ allowsDragging: true,
57
+ allowsExpansion: true,
58
+ allowsVisibility: false,
59
+ lookup: {},
60
+ selectedKeys: /* @__PURE__ */ new Set(),
61
+ selectionMode: "none",
62
+ tree: emptyTree,
63
+ actions: {
64
+ append: noop,
65
+ getItem: () => emptyTree,
66
+ insert: noop,
67
+ insertAfter: noop,
68
+ insertBefore: noop,
69
+ move: noop,
70
+ prepend: noop,
71
+ remove: noop,
72
+ removeSelectedItems: noop,
73
+ revertIsExpanded: noop,
74
+ setSelectedKeys: noop,
75
+ toggleIsExpanded: noop,
76
+ toggleIsSelected: noop,
77
+ toggleIsViewable: noop,
78
+ update: noop
79
+ }
80
+ });
81
+ function defaultRenderEmptyState({ isDropTarget }) {
82
+ return isDropTarget ? "Add to this group" : "Nothing to see here";
83
+ }
84
+ function Tree(props) {
85
+ props = useDefaultProps(props, "Tree");
86
+ const {
87
+ children: childrenProp,
88
+ allowsDragging = false,
89
+ allowsExpansion = true,
90
+ allowsVisibility = false,
91
+ classNames: classNamesProps,
92
+ disabledBehavior = "all",
93
+ keyboardNavigationBehavior = "arrow",
94
+ mapping: mappingProp,
95
+ nodes,
96
+ provider,
97
+ renderDragPreview,
98
+ renderEmptyState: renderEmptyStateProp = defaultRenderEmptyState,
99
+ selectionBehavior = "replace",
100
+ selectionMode = "none",
101
+ showTreeLines = true,
102
+ size = defaultSize,
103
+ onAction,
104
+ onScroll,
105
+ onSelectionChange,
106
+ onUpdate,
107
+ ...rest
108
+ } = props;
109
+ const state = useTree({
110
+ allowsExpansion,
111
+ allowsVisibility,
112
+ nodes,
113
+ selectionMode,
114
+ onSelectionChange,
115
+ onUpdate
116
+ });
117
+ const theme = useTheme();
118
+ const mapping = useMemo(
119
+ () => ({
120
+ ...defaultMapping,
121
+ ...mappingProp
122
+ }),
123
+ [mappingProp]
124
+ );
125
+ const classNames = useMemo(
126
+ () => mergeClassNames(treeClassNames, theme.Tree, classNamesProps, {
127
+ item: {
128
+ description: mapping.description[size]
129
+ }
130
+ }) ?? {},
131
+ [theme.Tree, classNamesProps, mapping, size]
132
+ );
133
+ const renderEmptyState = useCallback(
134
+ (renderProps) => /* @__PURE__ */ jsx("div", { className: classNames?.empty, children: renderEmptyStateProp(renderProps) }),
135
+ [classNames?.empty, renderEmptyStateProp]
136
+ );
137
+ const context = useMemo(
138
+ () => [
139
+ [
140
+ TreeStateContext,
141
+ {
142
+ ...state,
143
+ allowsDragging,
144
+ classNames,
145
+ disabledBehavior,
146
+ keyboardNavigationBehavior,
147
+ renderDragPreview,
148
+ renderEmptyState,
149
+ selectionBehavior,
150
+ selectionMode,
151
+ showTreeLines,
152
+ size,
153
+ onAction,
154
+ onScroll
155
+ }
156
+ ]
157
+ ],
158
+ [
159
+ state,
160
+ allowsDragging,
161
+ classNames,
162
+ disabledBehavior,
163
+ keyboardNavigationBehavior,
164
+ renderDragPreview,
165
+ renderEmptyState,
166
+ selectionBehavior,
167
+ selectionMode,
168
+ showTreeLines,
169
+ size,
170
+ onAction,
171
+ onScroll
172
+ ]
173
+ );
174
+ const style = useMemo(
175
+ () => inlineVars(treeStateVars, {
176
+ allowsDragging,
177
+ allowsExpansion: state.allowsExpansion,
178
+ allowsVisibility: state.allowsVisibility,
179
+ showTreeLines,
180
+ size
181
+ }),
182
+ [
183
+ allowsDragging,
184
+ state.allowsExpansion,
185
+ state.allowsVisibility,
186
+ showTreeLines,
187
+ size
188
+ ]
189
+ );
190
+ const children = useMemo(() => {
191
+ const treeGroupProps = {
192
+ ...rest,
193
+ id: state.tree.key,
194
+ nodes: state.tree.children
195
+ };
196
+ return provider ? callRenderProps(childrenProp, { ...state, treeGroupProps }) : /* @__PURE__ */ jsx(TreeGroup, { ...treeGroupProps, children: childrenProp });
197
+ }, [rest, provider, childrenProp, state]);
198
+ return /* @__PURE__ */ jsx(Provider, { values: context, children: /* @__PURE__ */ jsx("div", { className: classNames?.tree?.container, style, children: /* @__PURE__ */ jsx("div", { className: classNames?.tree?.tree, children }) }) });
199
+ }
200
+ function TreeGroup({
201
+ id,
202
+ children,
203
+ nodes,
204
+ types = ["all"],
205
+ ...rest
206
+ }) {
207
+ const {
208
+ actions,
209
+ allowsDragging,
210
+ classNames,
211
+ disabledBehavior,
212
+ keyboardNavigationBehavior,
213
+ lookup,
214
+ renderDragPreview,
215
+ renderEmptyState,
216
+ selectedKeys,
217
+ selectionBehavior,
218
+ selectionMode,
219
+ onAction,
220
+ onScroll
221
+ } = useContext(TreeStateContext);
222
+ const acceptedDragTypes = useMemo(
223
+ () => types.map((type) => `tree-${type}`),
224
+ [types]
225
+ );
226
+ const renderDropIndicator = useCallback(
227
+ (target) => /* @__PURE__ */ jsx(
228
+ DropIndicator,
229
+ {
230
+ className: classNames?.indicator?.container,
231
+ style: (renderProps) => inlineVars(treeIndicatorStateVars, {
232
+ ...renderProps,
233
+ dropPosition: "dropPosition" in target ? target.dropPosition : "root"
234
+ }),
235
+ target,
236
+ children: /* @__PURE__ */ jsx("div", { className: classNames?.indicator?.indicator })
237
+ }
238
+ ),
239
+ [classNames?.indicator?.container, classNames?.indicator?.indicator]
240
+ );
241
+ const { dragAndDropHooks } = useDragAndDrop({
242
+ isDisabled: !allowsDragging,
243
+ renderDragPreview,
244
+ renderDropIndicator,
245
+ ...createDragAndDropHandlers(id, acceptedDragTypes, lookup, actions)
246
+ });
247
+ const style = useCallback(
248
+ (renderProps) => inlineVars(treeGroupStateVars, { ...renderProps, count: nodes.length }),
249
+ [nodes.length]
250
+ );
251
+ const indices = useMemo(
252
+ () => nodes.reduce((acc, node, index) => {
253
+ acc[node.key] = index;
254
+ return acc;
255
+ }, {}),
256
+ [nodes]
257
+ );
258
+ return /* @__PURE__ */ jsx(
259
+ GridList,
260
+ {
261
+ ...rest,
262
+ className: classNames?.group,
263
+ disabledBehavior,
264
+ dragAndDropHooks,
265
+ items: nodes,
266
+ keyboardNavigationBehavior,
267
+ renderEmptyState,
268
+ selectedKeys,
269
+ selectionBehavior,
270
+ selectionMode,
271
+ style,
272
+ onAction,
273
+ onScroll,
274
+ children: (item) => /* @__PURE__ */ jsx(
275
+ TreeItem,
276
+ {
277
+ index: indices[item.key] ?? -1,
278
+ node: item,
279
+ isFirstChild: indices[item.key] === 0,
280
+ isLastChild: indices[item.key] === nodes.length - 1,
281
+ children
282
+ }
283
+ )
284
+ }
285
+ );
286
+ }
287
+ var contextBlocker = [
288
+ [ToggleButtonContext, null],
289
+ [AriaTextContext, null],
290
+ [GroupContext, null],
291
+ [CheckboxContext, null],
292
+ [ButtonContext, null],
293
+ [ButtonContext$1, null]
294
+ ];
295
+ function TreeItem({
296
+ children: childrenProp,
297
+ index,
298
+ mapping: mappingProp,
299
+ node,
300
+ isFirstChild,
301
+ isLastChild,
302
+ ...rest
303
+ }) {
304
+ const {
305
+ actions,
306
+ allowsExpansion,
307
+ classNames,
308
+ size: sizeProp
309
+ } = useContext(TreeStateContext);
310
+ const mapping = useMemo(
311
+ () => ({
312
+ ...defaultMapping,
313
+ ...mappingProp
314
+ }),
315
+ [mappingProp]
316
+ );
317
+ const selection = useMemo(() => /* @__PURE__ */ new Set([node.key]), [node.key]);
318
+ const handleToggleExpansion = useCallback(
319
+ () => actions.toggleIsExpanded(selection),
320
+ [actions, selection]
321
+ );
322
+ const handleToggleSelection = useCallback(
323
+ () => actions.toggleIsSelected(selection),
324
+ [actions, selection]
325
+ );
326
+ const handleToggleVisibility = useCallback(
327
+ () => actions.toggleIsViewable(selection),
328
+ [actions, selection]
329
+ );
330
+ const { pressProps } = usePress({
331
+ onPress: handleToggleExpansion
332
+ });
333
+ const style = useCallback(
334
+ (renderProps) => inlineVars(treeItemStateVars, {
335
+ ...renderProps,
336
+ count: node.children.length,
337
+ index,
338
+ isExpanded: "nodes" in node.value ? !!node.value.isExpanded : false,
339
+ isFirstChild,
340
+ isGroup: "nodes" in node.value,
341
+ isLastChild,
342
+ isViewable: !!node.value.isViewable,
343
+ isVisible: !!node.value.isVisible,
344
+ isReadOnly: !!node.value.isReadOnly
345
+ }),
346
+ [node.children.length, node.value, index, isFirstChild, isLastChild]
347
+ );
348
+ const context = useMemo(() => {
349
+ const size = sizeProp ?? defaultSize;
350
+ const buttonProps = mapping.button[size] ?? {};
351
+ return [
352
+ [
353
+ ToggleButtonContext,
354
+ {
355
+ slots: {
356
+ [DEFAULT_SLOT]: buttonProps,
357
+ expansion: {
358
+ ...buttonProps,
359
+ ...mapping.expansion[size],
360
+ classNames: classNames?.item?.expansion,
361
+ isSelected: "nodes" in node.value ? !!node.value.isExpanded : void 0,
362
+ onPress: handleToggleExpansion
363
+ },
364
+ visibility: {
365
+ ...buttonProps,
366
+ ...mapping.visibility[size],
367
+ classNames: classNames?.item?.visibility,
368
+ isSelected: !!node.value.isViewable,
369
+ isDisabled: !!node.value.isReadOnly,
370
+ onPress: handleToggleVisibility
371
+ }
372
+ }
373
+ }
374
+ ],
375
+ [
376
+ AriaTextContext,
377
+ {
378
+ slots: {
379
+ [DEFAULT_SLOT]: {},
380
+ description: {
381
+ ..."nodes" in node.value ? pressProps : {},
382
+ className: classNames?.item?.description,
383
+ children: node.value.label
384
+ }
385
+ }
386
+ }
387
+ ],
388
+ [
389
+ GroupContext,
390
+ {
391
+ slots: {
392
+ [DEFAULT_SLOT]: {},
393
+ actions: {
394
+ classNames: classNames?.item?.actions,
395
+ context: ButtonContext,
396
+ values: buttonProps
397
+ }
398
+ }
399
+ }
400
+ ],
401
+ [
402
+ CheckboxContext,
403
+ {
404
+ slots: {
405
+ [DEFAULT_SLOT]: {},
406
+ selection: {
407
+ classNames: classNames?.item?.selection,
408
+ onChange: handleToggleSelection
409
+ }
410
+ }
411
+ }
412
+ ],
413
+ [
414
+ ButtonContext,
415
+ {
416
+ slots: {
417
+ [DEFAULT_SLOT]: buttonProps,
418
+ drag: {
419
+ ...buttonProps,
420
+ ...mapping.drag[size],
421
+ classNames: classNames?.item?.drag
422
+ },
423
+ // We use a non-interactive Button for the lines to try and simplify the
424
+ // consistent use of space when rendered in alignment with other Buttons
425
+ lines: {
426
+ ...buttonProps,
427
+ classNames: classNames?.item?.lines,
428
+ isDisabled: true
429
+ }
430
+ }
431
+ }
432
+ ],
433
+ // Need to expand the RAC ButtonContext to allow for additional slots
434
+ [ButtonContext$1, { slots: { [DEFAULT_SLOT]: {}, lines: {} } }]
435
+ ];
436
+ }, [
437
+ classNames?.item?.lines,
438
+ classNames?.item?.expansion,
439
+ classNames?.item?.visibility,
440
+ classNames?.item?.description,
441
+ classNames?.item?.actions,
442
+ classNames?.item?.selection,
443
+ classNames?.item?.drag,
444
+ mapping,
445
+ node,
446
+ pressProps,
447
+ sizeProp,
448
+ handleToggleExpansion,
449
+ handleToggleSelection,
450
+ handleToggleVisibility
451
+ ]);
452
+ const children = useCallback(
453
+ (renderProps) => /* @__PURE__ */ jsx(MergeProvider, { values: context, children: /* @__PURE__ */ jsxs("div", { className: classNames?.item?.item, children: [
454
+ node.parentKey && /* @__PURE__ */ jsx(Button, { slot: "lines", children: /* @__PURE__ */ jsx(Icon, {}) }),
455
+ /* @__PURE__ */ jsx("div", { className: classNames?.item?.bar, children: callRenderProps(childrenProp, {
456
+ ...renderProps,
457
+ node
458
+ }) }),
459
+ "nodes" in node.value && (!allowsExpansion || node.value.isExpanded) && /* @__PURE__ */ jsx(Provider, { values: contextBlocker, children: /* @__PURE__ */ jsx(
460
+ TreeGroup,
461
+ {
462
+ id: node.key,
463
+ nodes: node.children,
464
+ types: node.value.types,
465
+ "aria-label": node.value.label,
466
+ children: childrenProp
467
+ }
468
+ ) })
469
+ ] }) }),
470
+ [
471
+ context,
472
+ classNames?.item?.item,
473
+ classNames?.item?.bar,
474
+ node,
475
+ childrenProp,
476
+ allowsExpansion
477
+ ]
478
+ );
479
+ return /* @__PURE__ */ jsx(
480
+ GridListItem,
481
+ {
482
+ ...rest,
483
+ isDisabled: !!node.value.isReadOnly,
484
+ className: classNames?.item?.container,
485
+ style,
486
+ textValue: node.value.label,
487
+ children
488
+ }
489
+ );
490
+ }
491
+
492
+ export { Tree, TreeGroup, TreeItem, TreeStateContext };
5
493
  //# sourceMappingURL=index.js.map
6
494
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
1
+ {"version":3,"sources":["../../../src/components/tree/index.tsx"],"names":["RACButtonContext"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { noop } from '@accelint/core';\nimport { usePress } from '@react-aria/interactions';\nimport type { Key } from '@react-types/shared';\nimport { createContext, useCallback, useContext, useMemo } from 'react';\nimport {\n type ContextValue,\n DEFAULT_SLOT,\n DropIndicator,\n type DropTarget,\n GridList,\n GridListItem,\n type GridListItemRenderProps,\n type GridListRenderProps,\n Provider,\n ButtonContext as RACButtonContext,\n type ButtonProps as RACButtonProps,\n type TextProps,\n useDragAndDrop,\n} from 'react-aria-components';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { useTree } from '../../hooks/use-tree';\nimport { bodies } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport { AriaTextContext } from '../aria';\nimport { Button, ButtonContext, ToggleButtonContext } from '../button';\nimport type { ButtonProps, ToggleButtonProps } from '../button/types';\nimport { CheckboxContext } from '../checkbox';\nimport type { CheckboxProps } from '../checkbox/types';\nimport { GroupContext } from '../group';\nimport type { GroupProps } from '../group/types';\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\n/**\n * By default Tree only works as an uncontrolled input. However, if you need to use the Tree\n * as a controlled input (passing state changes to the \"nodes\" props), you will need to add a\n * \"key\" prop that is a hash of the \"nodes\" prop to trigger a rerender of the component and\n * abandon it's previous state. Unfortunately, the underlying hooks don't provide a good way\n * to update the internal state of the Tree onces it's been initialized.\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 isReadOnly: !!node.value.isReadOnly,\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 isDisabled: !!node.value.isReadOnly,\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 isDisabled={!!node.value.isReadOnly}\n className={classNames?.item?.container}\n style={style}\n textValue={node.value.label}\n >\n {children}\n </GridListItem>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/tree/tree.css.ts"],"names":[],"mappings":";;;AAAO,IAAI,cAAiB,GAAA,EAAC,IAAK,EAAA,EAAC,SAAU,EAAA,8CAAA,EAAgD,EAAA,KAAA,EAAM,qCAAsC,EAAA,KAAA,EAAM,qCAAsC,EAAA,SAAA,EAAU,EAAC,SAAA,EAAU,mDAAmD,EAAA,EAAE,IAAK,EAAA,EAAC,SAAU,EAAA,8CAAA,EAA+C,IAAK,EAAA,yCAAA,EAA0C,GAAI,EAAA,wCAAA,EAAyC,KAAM,EAAA,EAAC,SAAU,EAAA,oDAAA,EAAqD,MAAO,EAAA,iDAAA,EAAmD,EAAA,UAAA,EAAW,EAAC,SAAA,EAAU,yDAAyD,EAAA,EAAE,SAAU,EAAA,EAAC,SAAU,EAAA,wDAAA,EAA0D,EAAA,WAAA,EAAY,gDAAiD,EAAA,OAAA,EAAQ,EAAC,SAAA,EAAU,sDAAsD,EAAA,EAAE,SAAU,EAAA,EAAC,QAAS,EAAA,EAAC,SAAU,EAAA,iEAAA,EAAkE,EAAA,EAAE,IAAK,EAAA,EAAC,SAAU,EAAA,mDAAA,IAAqD;AACn+B,IAAI,gBAAgB,EAAC,GAAA,EAAI,EAAC,UAAW,EAAA,gCAAA,EAAiC,QAAO,4BAA6B,EAAA,KAAA,EAAM,6BAA6B,EAAA,SAAA,EAAU,EAAC,UAAW,EAAA,sCAAA,EAAuC,QAAO,kCAAmC,EAAA,KAAA,EAAM,mCAAkC;AAC5R,IAAI,iBAAiB,EAAC,IAAA,EAAK,qCAAoC,KAAM,EAAA,oCAAA,EAAqC,MAAK,mCAAmC;AAClJ,IAAI,kBAAqB,GAAA,EAAC,KAAM,EAAA,uBAAA,EAAwB,MAAO,EAAA,wBAAA,EAAyB,YAAa,EAAA,8BAAA,EAA+B,OAAQ,EAAA,yBAAA,EAA0B,SAAU,EAAA,2BAAA,EAA4B,gBAAe,gCAAgC;AAC3P,IAAI,sBAAyB,GAAA,EAAC,YAAa,EAAA,8BAAA,EAA+B,cAAa,8BAA8B;AACrH,IAAI,oBAAoB,EAAC,cAAA,EAAe,kCAAiC,KAAM,EAAA,uBAAA,EAAwB,OAAM,uBAAwB,EAAA,aAAA,EAAc,+BAAgC,EAAA,iBAAA,EAAkB,qCAAoC,UAAW,EAAA,4BAAA,EAA6B,YAAW,4BAA6B,EAAA,YAAA,EAAa,gCAA+B,UAAW,EAAA,6BAAA,EAA8B,YAAa,EAAA,+BAAA,EAAgC,WAAU,4BAA6B,EAAA,cAAA,EAAe,mCAAkC,OAAQ,EAAA,0BAAA,EAA2B,WAAU,4BAA6B,EAAA,WAAA,EAAY,gCAA+B,SAAU,EAAA,4BAAA,EAA6B,YAAW,6BAA8B,EAAA,UAAA,EAAW,+BAA8B,UAAW,EAAA,6BAAA,EAA8B,WAAU,4BAA4B;AAC50B,IAAA,aAAA,GAAgB,EAAC,GAAI,EAAA,EAAC,GAAE,uBAAwB,EAAA,CAAA,EAAE,uBAAuB,EAAA,EAAE,WAAY,EAAA,EAAC,GAAE,+BAAgC,EAAA,CAAA,EAAE,iCAAiC,EAAA,KAAA,EAAM,EAAC,CAAE,EAAA,yBAAA,EAA0B,CAAE,EAAA,yBAAA,EAA0B;AAC5N,IAAA,aAAA,GAAgB,EAAC,cAAA,EAAe,gCAAiC,EAAA,eAAA,EAAgB,iCAAkC,EAAA,gBAAA,EAAiB,kCAAmC,EAAA,aAAA,EAAc,+BAAgC,EAAA,IAAA,EAAK,sBAAsB","file":"tree.css.js","sourcesContent":["export var treeClassNames = {tree:{container:'tree_treeClassNames_tree_container__kbtjn31c'},empty:'tree_treeClassNames_empty__kbtjn31d',group:'tree_treeClassNames_group__kbtjn31e',indicator:{indicator:'tree_treeClassNames_indicator_indicator__kbtjn31f'},item:{container:'tree_treeClassNames_item_container__kbtjn31g',item:'tree_treeClassNames_item_item__kbtjn31h',bar:'tree_treeClassNames_item_bar__kbtjn31i',lines:{container:'tree_treeClassNames_item_lines_container__kbtjn31j',button:'tree_treeClassNames_item_lines_button__kbtjn31k'},visibility:{container:'tree_treeClassNames_item_visibility_container__kbtjn31l'},expansion:{container:'tree_treeClassNames_item_expansion_container__kbtjn31m'},description:'tree_treeClassNames_item_description__kbtjn31n',actions:{container:'tree_treeClassNames_item_actions_container__kbtjn31o'},selection:{checkbox:{container:'tree_treeClassNames_item_selection_checkbox_container__kbtjn31p'}},drag:{container:'tree_treeClassNames_item_drag_container__kbtjn31q'}}};\nexport var treeColorVars = {bar:{background:'var(--bar-background__kbtjn33)',border:'var(--bar-border__kbtjn34)',color:'var(--bar-color__kbtjn35)'},indicator:{background:'var(--indicator-background__kbtjn36)',border:'var(--indicator-border__kbtjn37)',color:'var(--indicator-color__kbtjn38)'}};\nexport var treeContainers = {tree:'tree_treeContainers_tree__kbtjn30',group:'tree_treeContainers_group__kbtjn31',item:'tree_treeContainers_item__kbtjn32'};\nexport var treeGroupStateVars = {count:'var(--count__kbtjn3k)',layout:'var(--layout__kbtjn3l)',isDropTarget:'var(--isDropTarget__kbtjn3m)',isEmpty:'var(--isEmpty__kbtjn3n)',isFocused:'var(--isFocused__kbtjn3o)',isFocusVisible:'var(--isFocusVisible__kbtjn3p)'};\nexport var treeIndicatorStateVars = {dropPosition:'var(--dropPosition__kbtjn3q)',isDropTarget:'var(--isDropTarget__kbtjn3r)'};\nexport var treeItemStateVars = {allowsDragging:'var(--allowsDragging__kbtjn3s)',count:'var(--count__kbtjn3t)',index:'var(--index__kbtjn3u)',selectionMode:'var(--selectionMode__kbtjn3v)',selectionBehavior:'var(--selectionBehavior__kbtjn3w)',isDisabled:'var(--isDisabled__kbtjn3x)',isDragging:'var(--isDragging__kbtjn3y)',isDropTarget:'var(--isDropTarget__kbtjn3z)',isExpanded:'var(--isExpanded__kbtjn310)',isFirstChild:'var(--isFirstChild__kbtjn311)',isFocused:'var(--isFocused__kbtjn312)',isFocusVisible:'var(--isFocusVisible__kbtjn313)',isGroup:'var(--isGroup__kbtjn314)',isHovered:'var(--isHovered__kbtjn315)',isLastChild:'var(--isLastChild__kbtjn316)',isPressed:'var(--isPressed__kbtjn317)',isReadOnly:'var(--isReadOnly__kbtjn318)',isSelected:'var(--isSelected__kbtjn319)',isViewable:'var(--isViewable__kbtjn31a)',isVisible:'var(--isVisible__kbtjn31b)'};\nexport var treeSpaceVars = {bar:{x:'var(--bar-x__kbtjn39)',y:'var(--bar-y__kbtjn3a)'},description:{x:'var(--description-x__kbtjn3b)',y:'var(--description-y__kbtjn3c)'},empty:{x:'var(--empty-x__kbtjn3d)',y:'var(--empty-y__kbtjn3e)'}};\nexport var treeStateVars = {allowsDragging:'var(--allowsDragging__kbtjn3f)',allowsExpansion:'var(--allowsExpansion__kbtjn3g)',allowsVisibility:'var(--allowsVisibility__kbtjn3h)',showTreeLines:'var(--showTreeLines__kbtjn3i)',size:'var(--size__kbtjn3j)'};"]}
1
+ {"version":3,"sources":["../../../src/components/tree/tree.css.ts"],"names":[],"mappings":";;;AAAO,IAAI,cAAA,GAAiB,EAAC,IAAA,EAAK,EAAC,SAAA,EAAU,8CAAA,EAA8C,EAAE,KAAA,EAAM,qCAAA,EAAsC,KAAA,EAAM,qCAAA,EAAsC,SAAA,EAAU,EAAC,SAAA,EAAU,mDAAA,EAAmD,EAAE,IAAA,EAAK,EAAC,SAAA,EAAU,8CAAA,EAA+C,IAAA,EAAK,yCAAA,EAA0C,GAAA,EAAI,wCAAA,EAAyC,KAAA,EAAM,EAAC,SAAA,EAAU,oDAAA,EAAqD,MAAA,EAAO,iDAAA,EAAiD,EAAE,UAAA,EAAW,EAAC,SAAA,EAAU,yDAAA,EAAyD,EAAE,SAAA,EAAU,EAAC,SAAA,EAAU,wDAAA,EAAwD,EAAE,WAAA,EAAY,gDAAA,EAAiD,OAAA,EAAQ,EAAC,SAAA,EAAU,sDAAA,EAAsD,EAAE,SAAA,EAAU,EAAC,QAAA,EAAS,EAAC,SAAA,EAAU,iEAAA,EAAiE,EAAC,EAAE,IAAA,EAAK,EAAC,SAAA,EAAU,mDAAA,IAAoD;AACl+B,IAAI,gBAAgB,EAAC,GAAA,EAAI,EAAC,UAAA,EAAW,gCAAA,EAAiC,QAAO,4BAAA,EAA6B,KAAA,EAAM,6BAA2B,EAAE,SAAA,EAAU,EAAC,UAAA,EAAW,sCAAA,EAAuC,QAAO,kCAAA,EAAmC,KAAA,EAAM,mCAAiC;AAC3R,IAAI,iBAAiB,EAAC,IAAA,EAAK,qCAAoC,KAAA,EAAM,oCAAA,EAAqC,MAAK,mCAAA;AAC/G,IAAI,kBAAA,GAAqB,EAAC,KAAA,EAAM,uBAAA,EAAwB,MAAA,EAAO,wBAAA,EAAyB,YAAA,EAAa,8BAAA,EAA+B,OAAA,EAAQ,yBAAA,EAA0B,SAAA,EAAU,2BAAA,EAA4B,gBAAe,gCAAA;AAC3N,IAAI,sBAAA,GAAyB,EAAC,YAAA,EAAa,8BAAA,EAA+B,cAAa,8BAAA;AACvF,IAAI,oBAAoB,EAAC,cAAA,EAAe,kCAAiC,KAAA,EAAM,uBAAA,EAAwB,OAAM,uBAAA,EAAwB,aAAA,EAAc,+BAAA,EAAgC,iBAAA,EAAkB,qCAAoC,UAAA,EAAW,4BAAA,EAA6B,YAAW,4BAAA,EAA6B,YAAA,EAAa,gCAA+B,UAAA,EAAW,6BAAA,EAA8B,YAAA,EAAa,+BAAA,EAAgC,WAAU,4BAAA,EAA6B,cAAA,EAAe,mCAAkC,OAAA,EAAQ,0BAAA,EAA2B,WAAU,4BAAA,EAA6B,WAAA,EAAY,gCAA+B,SAAA,EAAU,4BAAA,EAA6B,YAAW,6BAAA,EAA8B,UAAA,EAAW,+BAA8B,UAAA,EAAW,6BAAA,EAA8B,WAAU,4BAAA;AACpzB,IAAI,aAAA,GAAgB,EAAC,GAAA,EAAI,EAAC,GAAE,uBAAA,EAAwB,CAAA,EAAE,uBAAA,EAAuB,EAAE,WAAA,EAAY,EAAC,GAAE,+BAAA,EAAgC,CAAA,EAAE,iCAA+B,EAAE,KAAA,EAAM,EAAC,CAAA,EAAE,yBAAA,EAA0B,CAAA,EAAE,yBAAA,EAAyB;AAC/N,IAAI,aAAA,GAAgB,EAAC,cAAA,EAAe,gCAAA,EAAiC,eAAA,EAAgB,iCAAA,EAAkC,gBAAA,EAAiB,kCAAA,EAAmC,aAAA,EAAc,+BAAA,EAAgC,IAAA,EAAK,sBAAA","file":"tree.css.js","sourcesContent":["export var treeClassNames = {tree:{container:'tree_treeClassNames_tree_container__kbtjn31c'},empty:'tree_treeClassNames_empty__kbtjn31d',group:'tree_treeClassNames_group__kbtjn31e',indicator:{indicator:'tree_treeClassNames_indicator_indicator__kbtjn31f'},item:{container:'tree_treeClassNames_item_container__kbtjn31g',item:'tree_treeClassNames_item_item__kbtjn31h',bar:'tree_treeClassNames_item_bar__kbtjn31i',lines:{container:'tree_treeClassNames_item_lines_container__kbtjn31j',button:'tree_treeClassNames_item_lines_button__kbtjn31k'},visibility:{container:'tree_treeClassNames_item_visibility_container__kbtjn31l'},expansion:{container:'tree_treeClassNames_item_expansion_container__kbtjn31m'},description:'tree_treeClassNames_item_description__kbtjn31n',actions:{container:'tree_treeClassNames_item_actions_container__kbtjn31o'},selection:{checkbox:{container:'tree_treeClassNames_item_selection_checkbox_container__kbtjn31p'}},drag:{container:'tree_treeClassNames_item_drag_container__kbtjn31q'}}};\nexport var treeColorVars = {bar:{background:'var(--bar-background__kbtjn33)',border:'var(--bar-border__kbtjn34)',color:'var(--bar-color__kbtjn35)'},indicator:{background:'var(--indicator-background__kbtjn36)',border:'var(--indicator-border__kbtjn37)',color:'var(--indicator-color__kbtjn38)'}};\nexport var treeContainers = {tree:'tree_treeContainers_tree__kbtjn30',group:'tree_treeContainers_group__kbtjn31',item:'tree_treeContainers_item__kbtjn32'};\nexport var treeGroupStateVars = {count:'var(--count__kbtjn3k)',layout:'var(--layout__kbtjn3l)',isDropTarget:'var(--isDropTarget__kbtjn3m)',isEmpty:'var(--isEmpty__kbtjn3n)',isFocused:'var(--isFocused__kbtjn3o)',isFocusVisible:'var(--isFocusVisible__kbtjn3p)'};\nexport var treeIndicatorStateVars = {dropPosition:'var(--dropPosition__kbtjn3q)',isDropTarget:'var(--isDropTarget__kbtjn3r)'};\nexport var treeItemStateVars = {allowsDragging:'var(--allowsDragging__kbtjn3s)',count:'var(--count__kbtjn3t)',index:'var(--index__kbtjn3u)',selectionMode:'var(--selectionMode__kbtjn3v)',selectionBehavior:'var(--selectionBehavior__kbtjn3w)',isDisabled:'var(--isDisabled__kbtjn3x)',isDragging:'var(--isDragging__kbtjn3y)',isDropTarget:'var(--isDropTarget__kbtjn3z)',isExpanded:'var(--isExpanded__kbtjn310)',isFirstChild:'var(--isFirstChild__kbtjn311)',isFocused:'var(--isFocused__kbtjn312)',isFocusVisible:'var(--isFocusVisible__kbtjn313)',isGroup:'var(--isGroup__kbtjn314)',isHovered:'var(--isHovered__kbtjn315)',isLastChild:'var(--isLastChild__kbtjn316)',isPressed:'var(--isPressed__kbtjn317)',isReadOnly:'var(--isReadOnly__kbtjn318)',isSelected:'var(--isSelected__kbtjn319)',isViewable:'var(--isViewable__kbtjn31a)',isVisible:'var(--isVisible__kbtjn31b)'};\nexport var treeSpaceVars = {bar:{x:'var(--bar-x__kbtjn39)',y:'var(--bar-y__kbtjn3a)'},description:{x:'var(--description-x__kbtjn3b)',y:'var(--description-y__kbtjn3c)'},empty:{x:'var(--empty-x__kbtjn3d)',y:'var(--empty-y__kbtjn3e)'}};\nexport var treeStateVars = {allowsDragging:'var(--allowsDragging__kbtjn3f)',allowsExpansion:'var(--allowsExpansion__kbtjn3g)',allowsVisibility:'var(--allowsVisibility__kbtjn3h)',showTreeLines:'var(--showTreeLines__kbtjn3i)',size:'var(--size__kbtjn3j)'};"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/tree/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { isTextDropItem } from '@react-aria/dnd';\nimport type {\n DropItem,\n DropOperation,\n Key,\n TextDropItem,\n} from '@react-types/shared';\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"]}
1
+ {"version":3,"sources":["../../../src/components/tree/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { isTextDropItem } from '@react-aria/dnd';\nimport type {\n DropItem,\n DropOperation,\n Key,\n TextDropItem,\n} from '@react-types/shared';\nimport type { DragAndDropOptions } from 'react-aria-components';\nimport type { TreeNode, UseTreeResult } from '../../types/use-tree';\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"]}