@fluentui/react-tree 9.0.0-beta.3 → 9.0.0-beta.30

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 (307) hide show
  1. package/CHANGELOG.json +1566 -1
  2. package/CHANGELOG.md +423 -2
  3. package/dist/index.d.ts +408 -131
  4. package/lib/FlatTree.js +1 -0
  5. package/lib/FlatTree.js.map +1 -0
  6. package/lib/Tree.js +0 -1
  7. package/lib/Tree.js.map +1 -1
  8. package/lib/TreeItem.js +0 -1
  9. package/lib/TreeItem.js.map +1 -1
  10. package/lib/TreeItemLayout.js +0 -1
  11. package/lib/TreeItemLayout.js.map +1 -1
  12. package/lib/TreeItemPersonaLayout.js +0 -1
  13. package/lib/TreeItemPersonaLayout.js.map +1 -1
  14. package/lib/components/FlatTree/FlatTree.js +13 -0
  15. package/lib/components/FlatTree/FlatTree.js.map +1 -0
  16. package/lib/components/FlatTree/FlatTree.types.js +1 -0
  17. package/lib/components/FlatTree/FlatTree.types.js.map +1 -0
  18. package/lib/components/FlatTree/index.js +6 -0
  19. package/lib/components/FlatTree/index.js.map +1 -0
  20. package/lib/components/FlatTree/useFlatControllableCheckedItems.js +63 -0
  21. package/lib/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
  22. package/lib/components/FlatTree/useFlatTree.js +3 -0
  23. package/lib/components/FlatTree/useFlatTree.js.map +1 -0
  24. package/lib/components/FlatTree/useFlatTreeNavigation.js +74 -0
  25. package/lib/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
  26. package/lib/components/FlatTree/useFlatTreeStyles.styles.js +20 -0
  27. package/lib/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
  28. package/lib/components/FlatTree/useHeadlessFlatTree.js +117 -0
  29. package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
  30. package/lib/components/Tree/Tree.js +8 -15
  31. package/lib/components/Tree/Tree.js.map +1 -1
  32. package/lib/components/Tree/Tree.types.js +1 -2
  33. package/lib/components/Tree/Tree.types.js.map +1 -1
  34. package/lib/components/Tree/index.js +2 -3
  35. package/lib/components/Tree/index.js.map +1 -1
  36. package/lib/components/Tree/renderTree.js +7 -13
  37. package/lib/components/Tree/renderTree.js.map +1 -1
  38. package/lib/components/Tree/useControllableCheckedItems.js +94 -0
  39. package/lib/components/Tree/useControllableCheckedItems.js.map +1 -0
  40. package/lib/components/Tree/useTree.js +55 -112
  41. package/lib/components/Tree/useTree.js.map +1 -1
  42. package/lib/components/Tree/useTreeContextValues.js +14 -22
  43. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  44. package/lib/components/Tree/useTreeNavigation.js +52 -0
  45. package/lib/components/Tree/useTreeNavigation.js.map +1 -0
  46. package/lib/components/Tree/{useTreeStyles.js → useTreeStyles.styles.js} +7 -3
  47. package/lib/components/Tree/useTreeStyles.styles.js.map +1 -0
  48. package/lib/components/TreeItem/TreeItem.js +16 -9
  49. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  50. package/lib/components/TreeItem/TreeItem.types.js +1 -2
  51. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  52. package/lib/components/TreeItem/index.js +2 -2
  53. package/lib/components/TreeItem/index.js.map +1 -1
  54. package/lib/components/TreeItem/renderTreeItem.js +7 -25
  55. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  56. package/lib/components/TreeItem/useTreeItem.js +163 -234
  57. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  58. package/lib/components/TreeItem/useTreeItemContextValues.js +20 -16
  59. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  60. package/lib/components/TreeItem/useTreeItemStyles.styles.js +100 -0
  61. package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  62. package/lib/components/TreeItemChevron.js +24 -0
  63. package/lib/components/TreeItemChevron.js.map +1 -0
  64. package/lib/components/TreeItemLayout/TreeItemLayout.js +8 -8
  65. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  66. package/lib/components/TreeItemLayout/TreeItemLayout.types.js +1 -2
  67. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  68. package/lib/components/TreeItemLayout/index.js +1 -2
  69. package/lib/components/TreeItemLayout/index.js.map +1 -1
  70. package/lib/components/TreeItemLayout/renderTreeItemLayout.js +8 -21
  71. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  72. package/lib/components/TreeItemLayout/useTreeItemLayout.js +99 -40
  73. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  74. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +237 -0
  75. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  76. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +9 -9
  77. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  78. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -2
  79. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  80. package/lib/components/TreeItemPersonaLayout/index.js +1 -2
  81. package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
  82. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +10 -27
  83. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  84. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +40 -48
  85. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  86. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +9 -10
  87. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  88. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +210 -0
  89. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  90. package/lib/contexts/index.js +0 -1
  91. package/lib/contexts/index.js.map +1 -1
  92. package/lib/contexts/treeContext.js +13 -15
  93. package/lib/contexts/treeContext.js.map +1 -1
  94. package/lib/contexts/treeItemContext.js +16 -10
  95. package/lib/contexts/treeItemContext.js.map +1 -1
  96. package/lib/hooks/useControllableOpenItems.js +28 -0
  97. package/lib/hooks/useControllableOpenItems.js.map +1 -0
  98. package/lib/hooks/useRootTree.js +139 -0
  99. package/lib/hooks/useRootTree.js.map +1 -0
  100. package/lib/hooks/useRovingTabIndexes.js +30 -49
  101. package/lib/hooks/useRovingTabIndexes.js.map +1 -1
  102. package/lib/hooks/useSubtree.js +39 -0
  103. package/lib/hooks/useSubtree.js.map +1 -0
  104. package/lib/index.js +3 -4
  105. package/lib/index.js.map +1 -1
  106. package/lib/utils/ImmutableMap.js +41 -0
  107. package/lib/utils/ImmutableMap.js.map +1 -0
  108. package/lib/utils/ImmutableSet.js +42 -33
  109. package/lib/utils/ImmutableSet.js.map +1 -1
  110. package/lib/utils/assert.js +5 -5
  111. package/lib/utils/assert.js.map +1 -1
  112. package/lib/utils/createCheckedItems.js +18 -0
  113. package/lib/utils/createCheckedItems.js.map +1 -0
  114. package/lib/utils/createHTMLElementWalker.js +67 -0
  115. package/lib/utils/createHTMLElementWalker.js.map +1 -0
  116. package/lib/utils/createHeadlessTree.js +188 -0
  117. package/lib/utils/createHeadlessTree.js.map +1 -0
  118. package/lib/utils/createOpenItems.js +10 -0
  119. package/lib/utils/createOpenItems.js.map +1 -0
  120. package/lib/utils/flattenTree.js +54 -29
  121. package/lib/utils/flattenTree.js.map +1 -1
  122. package/lib/utils/getTreeItemValueFromElement.js +4 -0
  123. package/lib/utils/getTreeItemValueFromElement.js.map +1 -0
  124. package/lib/utils/nextTypeAheadElement.js +11 -12
  125. package/lib/utils/nextTypeAheadElement.js.map +1 -1
  126. package/lib/utils/normalizeOpenItems.js +6 -5
  127. package/lib/utils/normalizeOpenItems.js.map +1 -1
  128. package/lib/utils/tokens.js +14 -14
  129. package/lib/utils/tokens.js.map +1 -1
  130. package/lib/utils/treeItemFilter.js +2 -3
  131. package/lib/utils/treeItemFilter.js.map +1 -1
  132. package/lib-commonjs/FlatTree.js +6 -0
  133. package/lib-commonjs/FlatTree.js.map +1 -0
  134. package/lib-commonjs/Tree.js +3 -5
  135. package/lib-commonjs/Tree.js.map +1 -1
  136. package/lib-commonjs/TreeItem.js +3 -5
  137. package/lib-commonjs/TreeItem.js.map +1 -1
  138. package/lib-commonjs/TreeItemLayout.js +3 -5
  139. package/lib-commonjs/TreeItemLayout.js.map +1 -1
  140. package/lib-commonjs/TreeItemPersonaLayout.js +3 -5
  141. package/lib-commonjs/TreeItemPersonaLayout.js.map +1 -1
  142. package/lib-commonjs/components/FlatTree/FlatTree.js +20 -0
  143. package/lib-commonjs/components/FlatTree/FlatTree.js.map +1 -0
  144. package/lib-commonjs/components/FlatTree/FlatTree.types.js +4 -0
  145. package/lib-commonjs/components/FlatTree/FlatTree.types.js.map +1 -0
  146. package/lib-commonjs/components/FlatTree/index.js +21 -0
  147. package/lib-commonjs/components/FlatTree/index.js.map +1 -0
  148. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js +78 -0
  149. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
  150. package/lib-commonjs/components/FlatTree/useFlatTree.js +12 -0
  151. package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -0
  152. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js +82 -0
  153. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
  154. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js +36 -0
  155. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
  156. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js +114 -0
  157. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
  158. package/lib-commonjs/components/Tree/Tree.js +17 -23
  159. package/lib-commonjs/components/Tree/Tree.js.map +1 -1
  160. package/lib-commonjs/components/Tree/Tree.types.js +1 -3
  161. package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
  162. package/lib-commonjs/components/Tree/index.js +8 -10
  163. package/lib-commonjs/components/Tree/index.js.map +1 -1
  164. package/lib-commonjs/components/Tree/renderTree.js +14 -19
  165. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  166. package/lib-commonjs/components/Tree/useControllableCheckedItems.js +103 -0
  167. package/lib-commonjs/components/Tree/useControllableCheckedItems.js.map +1 -0
  168. package/lib-commonjs/components/Tree/useTree.js +61 -116
  169. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  170. package/lib-commonjs/components/Tree/useTreeContextValues.js +19 -26
  171. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  172. package/lib-commonjs/components/Tree/useTreeNavigation.js +60 -0
  173. package/lib-commonjs/components/Tree/useTreeNavigation.js.map +1 -0
  174. package/lib-commonjs/components/Tree/useTreeStyles.styles.js +41 -0
  175. package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -0
  176. package/lib-commonjs/components/TreeItem/TreeItem.js +17 -18
  177. package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
  178. package/lib-commonjs/components/TreeItem/TreeItem.types.js +3 -4
  179. package/lib-commonjs/components/TreeItem/TreeItem.types.js.map +1 -1
  180. package/lib-commonjs/components/TreeItem/index.js +8 -9
  181. package/lib-commonjs/components/TreeItem/index.js.map +1 -1
  182. package/lib-commonjs/components/TreeItem/renderTreeItem.js +14 -33
  183. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  184. package/lib-commonjs/components/TreeItem/useTreeItem.js +172 -250
  185. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  186. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +25 -20
  187. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  188. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +202 -0
  189. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  190. package/lib-commonjs/components/TreeItemChevron.js +33 -0
  191. package/lib-commonjs/components/TreeItemChevron.js.map +1 -0
  192. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +15 -16
  193. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  194. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js +1 -3
  195. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  196. package/lib-commonjs/components/TreeItemLayout/index.js +7 -9
  197. package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
  198. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +14 -28
  199. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  200. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +105 -52
  201. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  202. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +392 -0
  203. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  204. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +17 -18
  205. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  206. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -3
  207. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  208. package/lib-commonjs/components/TreeItemPersonaLayout/index.js +7 -9
  209. package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
  210. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +17 -35
  211. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  212. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +47 -61
  213. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  214. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +16 -15
  215. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  216. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +379 -0
  217. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  218. package/lib-commonjs/contexts/index.js +4 -6
  219. package/lib-commonjs/contexts/index.js.map +1 -1
  220. package/lib-commonjs/contexts/treeContext.js +26 -18
  221. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  222. package/lib-commonjs/contexts/treeItemContext.js +30 -13
  223. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  224. package/lib-commonjs/hooks/useControllableOpenItems.js +39 -0
  225. package/lib-commonjs/hooks/useControllableOpenItems.js.map +1 -0
  226. package/lib-commonjs/hooks/useRootTree.js +143 -0
  227. package/lib-commonjs/hooks/useRootTree.js.map +1 -0
  228. package/lib-commonjs/hooks/useRovingTabIndexes.js +36 -55
  229. package/lib-commonjs/hooks/useRovingTabIndexes.js.map +1 -1
  230. package/lib-commonjs/hooks/useSubtree.js +43 -0
  231. package/lib-commonjs/hooks/useSubtree.js.map +1 -0
  232. package/lib-commonjs/index.js +53 -181
  233. package/lib-commonjs/index.js.map +1 -1
  234. package/lib-commonjs/utils/ImmutableMap.js +49 -0
  235. package/lib-commonjs/utils/ImmutableMap.js.map +1 -0
  236. package/lib-commonjs/utils/ImmutableSet.js +47 -38
  237. package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
  238. package/lib-commonjs/utils/assert.js +11 -9
  239. package/lib-commonjs/utils/assert.js.map +1 -1
  240. package/lib-commonjs/utils/createCheckedItems.js +26 -0
  241. package/lib-commonjs/utils/createCheckedItems.js.map +1 -0
  242. package/lib-commonjs/utils/createHTMLElementWalker.js +75 -0
  243. package/lib-commonjs/utils/createHTMLElementWalker.js.map +1 -0
  244. package/lib-commonjs/utils/createHeadlessTree.js +202 -0
  245. package/lib-commonjs/utils/createHeadlessTree.js.map +1 -0
  246. package/lib-commonjs/utils/createOpenItems.js +18 -0
  247. package/lib-commonjs/utils/createOpenItems.js.map +1 -0
  248. package/lib-commonjs/utils/flattenTree.js +21 -34
  249. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  250. package/lib-commonjs/utils/getTreeItemValueFromElement.js +18 -0
  251. package/lib-commonjs/utils/getTreeItemValueFromElement.js.map +1 -0
  252. package/lib-commonjs/utils/nextTypeAheadElement.js +16 -16
  253. package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
  254. package/lib-commonjs/utils/normalizeOpenItems.js +11 -9
  255. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  256. package/lib-commonjs/utils/tokens.js +29 -20
  257. package/lib-commonjs/utils/tokens.js.map +1 -1
  258. package/lib-commonjs/utils/treeItemFilter.js +7 -7
  259. package/lib-commonjs/utils/treeItemFilter.js.map +1 -1
  260. package/package.json +26 -17
  261. package/lib/components/Tree/useTreeStyles.js.map +0 -1
  262. package/lib/components/TreeItem/useTreeItemStyles.js +0 -203
  263. package/lib/components/TreeItem/useTreeItemStyles.js.map +0 -1
  264. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -98
  265. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  266. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +0 -115
  267. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
  268. package/lib/hooks/index.js +0 -4
  269. package/lib/hooks/index.js.map +0 -1
  270. package/lib/hooks/useFlatTree.js +0 -49
  271. package/lib/hooks/useFlatTree.js.map +0 -1
  272. package/lib/hooks/useFlatTreeNavigation.js +0 -74
  273. package/lib/hooks/useFlatTreeNavigation.js.map +0 -1
  274. package/lib/hooks/useHTMLElementWalker.js +0 -80
  275. package/lib/hooks/useHTMLElementWalker.js.map +0 -1
  276. package/lib/hooks/useNestedTreeNavigation.js +0 -59
  277. package/lib/hooks/useNestedTreeNavigation.js.map +0 -1
  278. package/lib/hooks/useOpenItemsState.js +0 -22
  279. package/lib/hooks/useOpenItemsState.js.map +0 -1
  280. package/lib/utils/createUnfilteredFlatTree.js +0 -77
  281. package/lib/utils/createUnfilteredFlatTree.js.map +0 -1
  282. package/lib/utils/createVisibleFlatTree.js +0 -80
  283. package/lib/utils/createVisibleFlatTree.js.map +0 -1
  284. package/lib-commonjs/components/Tree/useTreeStyles.js +0 -27
  285. package/lib-commonjs/components/Tree/useTreeStyles.js.map +0 -1
  286. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +0 -210
  287. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +0 -1
  288. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -105
  289. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  290. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +0 -122
  291. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
  292. package/lib-commonjs/hooks/index.js +0 -10
  293. package/lib-commonjs/hooks/index.js.map +0 -1
  294. package/lib-commonjs/hooks/useFlatTree.js +0 -56
  295. package/lib-commonjs/hooks/useFlatTree.js.map +0 -1
  296. package/lib-commonjs/hooks/useFlatTreeNavigation.js +0 -81
  297. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +0 -1
  298. package/lib-commonjs/hooks/useHTMLElementWalker.js +0 -88
  299. package/lib-commonjs/hooks/useHTMLElementWalker.js.map +0 -1
  300. package/lib-commonjs/hooks/useNestedTreeNavigation.js +0 -66
  301. package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +0 -1
  302. package/lib-commonjs/hooks/useOpenItemsState.js +0 -29
  303. package/lib-commonjs/hooks/useOpenItemsState.js.map +0 -1
  304. package/lib-commonjs/utils/createUnfilteredFlatTree.js +0 -84
  305. package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +0 -1
  306. package/lib-commonjs/utils/createVisibleFlatTree.js +0 -87
  307. package/lib-commonjs/utils/createVisibleFlatTree.js.map +0 -1
@@ -0,0 +1,94 @@
1
+ import { useControllableState } from '@fluentui/react-utilities';
2
+ import * as React from 'react';
3
+ import { ImmutableMap } from '../../utils/ImmutableMap';
4
+ import { createCheckedItems } from '../../utils/createCheckedItems';
5
+ export function useControllableCheckedItems(props) {
6
+ return useControllableState({
7
+ initialState: ImmutableMap.empty,
8
+ state: React.useMemo(()=>props.checkedItems && createCheckedItems(props.checkedItems), [
9
+ props.checkedItems
10
+ ]),
11
+ defaultState: ()=>createCheckedItems(props.defaultCheckedItems)
12
+ });
13
+ } // export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {
14
+ // const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);
15
+ // const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);
16
+ // const defaultSelections = React.useMemo(
17
+ // () => initializeSelection(props.defaultCheckedItems ?? []),
18
+ // [props.defaultCheckedItems],
19
+ // );
20
+ // const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({
21
+ // selectionMode: props.selectionMode ?? 'single',
22
+ // selectedItems: selections.checkedSelection,
23
+ // defaultSelectedItems: defaultSelections.checkedSelection,
24
+ // });
25
+ // const [mixedSelection, setMixedSelection] = useControllableState({
26
+ // initialState: ImmutableSet.empty,
27
+ // defaultState: React.useMemo(
28
+ // () => ImmutableSet.create(defaultSelections.mixedSelection),
29
+ // [defaultSelections.mixedSelection],
30
+ // ),
31
+ // state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),
32
+ // });
33
+ // const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {
34
+ // if (props.selectionMode === 'single') {
35
+ // checkedSelectionManager.selectItem(data.value);
36
+ // return;
37
+ // }
38
+ // if (walkerRef.current === null) {
39
+ // return;
40
+ // }
41
+ // const nextSelectedState = !checkedSelectionManager.isSelected(data.value);
42
+ // let treeItemValues = getAllSubTreeItemValues(data).add(data.value);
43
+ // let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;
44
+ // walkerRef.current.currentElement = data.event.currentTarget;
45
+ // while (walkerRef.current.parentElement() !== null) {
46
+ // const descendants = Array.from(
47
+ // walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role="treeitem"]'),
48
+ // ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);
49
+ // const isAllSiblingsEqualSelectionState = descendants.every(item => {
50
+ // return (
51
+ // (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||
52
+ // treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)
53
+ // );
54
+ // });
55
+ // if (isAllSiblingsEqualSelectionState) {
56
+ // treeItemValues = treeItemValues.add(
57
+ // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
58
+ // );
59
+ // mixedValues = mixedValues.delete(
60
+ // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
61
+ // );
62
+ // } else {
63
+ // treeItemValues = treeItemValues
64
+ // .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)
65
+ // .add(data.value);
66
+ // mixedValues = mixedValues.add(
67
+ // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
68
+ // );
69
+ // }
70
+ // }
71
+ // unstable_batchedUpdates(() => {
72
+ // nextSelectedState
73
+ // ? checkedSelectionManager.selectItems(treeItemValues)
74
+ // : checkedSelectionManager.deselectItems(treeItemValues);
75
+ // let nextMixedSelection = ImmutableSet.create(mixedSelection);
76
+ // for (const value of mixedValues) {
77
+ // nextMixedSelection = nextMixedSelection.add(value);
78
+ // }
79
+ // for (const value of treeItemValues) {
80
+ // nextMixedSelection = nextMixedSelection.delete(value);
81
+ // }
82
+ // setMixedSelection(nextMixedSelection);
83
+ // });
84
+ // });
85
+ // return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;
86
+ // }
87
+ // function getAllSubTreeItemValues(data: TreeCheckedChangeData) {
88
+ // const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role="treeitem"]'));
89
+ // const values = new Set<TreeItemValue>();
90
+ // for (const item of subTreeItems) {
91
+ // values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);
92
+ // }
93
+ // return ImmutableSet.dangerouslyCreate(values);
94
+ // }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useControllableCheckedItems.ts"],"sourcesContent":["import { useControllableState } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport type { TreeProps } from './Tree.types';\nimport { ImmutableMap } from '../../utils/ImmutableMap';\nimport { createCheckedItems } from '../../utils/createCheckedItems';\n\nexport type ControllableCheckedItemsOptions = {\n checkedItems?: TreeProps['checkedItems'];\n defaultCheckedItems?: TreeProps['checkedItems'];\n};\n\nexport function useControllableCheckedItems(props: ControllableCheckedItemsOptions) {\n return useControllableState({\n initialState: ImmutableMap.empty,\n state: React.useMemo(() => props.checkedItems && createCheckedItems(props.checkedItems), [props.checkedItems]),\n defaultState: () => createCheckedItems(props.defaultCheckedItems),\n });\n}\n\n// export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {\n// const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n// const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);\n// const defaultSelections = React.useMemo(\n// () => initializeSelection(props.defaultCheckedItems ?? []),\n// [props.defaultCheckedItems],\n// );\n// const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({\n// selectionMode: props.selectionMode ?? 'single',\n// selectedItems: selections.checkedSelection,\n// defaultSelectedItems: defaultSelections.checkedSelection,\n// });\n// const [mixedSelection, setMixedSelection] = useControllableState({\n// initialState: ImmutableSet.empty,\n// defaultState: React.useMemo(\n// () => ImmutableSet.create(defaultSelections.mixedSelection),\n// [defaultSelections.mixedSelection],\n// ),\n// state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),\n// });\n\n// const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {\n// if (props.selectionMode === 'single') {\n// checkedSelectionManager.selectItem(data.value);\n// return;\n// }\n// if (walkerRef.current === null) {\n// return;\n// }\n// const nextSelectedState = !checkedSelectionManager.isSelected(data.value);\n\n// let treeItemValues = getAllSubTreeItemValues(data).add(data.value);\n\n// let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;\n\n// walkerRef.current.currentElement = data.event.currentTarget;\n// while (walkerRef.current.parentElement() !== null) {\n// const descendants = Array.from(\n// walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n// ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);\n// const isAllSiblingsEqualSelectionState = descendants.every(item => {\n// return (\n// (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||\n// treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n// );\n// });\n// if (isAllSiblingsEqualSelectionState) {\n// treeItemValues = treeItemValues.add(\n// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n// );\n// mixedValues = mixedValues.delete(\n// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n// );\n// } else {\n// treeItemValues = treeItemValues\n// .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n// .add(data.value);\n// mixedValues = mixedValues.add(\n// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n// );\n// }\n// }\n// unstable_batchedUpdates(() => {\n// nextSelectedState\n// ? checkedSelectionManager.selectItems(treeItemValues)\n// : checkedSelectionManager.deselectItems(treeItemValues);\n// let nextMixedSelection = ImmutableSet.create(mixedSelection);\n// for (const value of mixedValues) {\n// nextMixedSelection = nextMixedSelection.add(value);\n// }\n// for (const value of treeItemValues) {\n// nextMixedSelection = nextMixedSelection.delete(value);\n// }\n// setMixedSelection(nextMixedSelection);\n// });\n// });\n// return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;\n// }\n\n// function getAllSubTreeItemValues(data: TreeCheckedChangeData) {\n// const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role=\"treeitem\"]'));\n// const values = new Set<TreeItemValue>();\n// for (const item of subTreeItems) {\n// values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);\n// }\n// return ImmutableSet.dangerouslyCreate(values);\n// }\n"],"names":["useControllableState","React","ImmutableMap","createCheckedItems","useControllableCheckedItems","props","initialState","empty","state","useMemo","checkedItems","defaultState","defaultCheckedItems"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,4BAA4B;AACjE,YAAYC,WAAW,QAAQ;AAE/B,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,kBAAkB,QAAQ,iCAAiC;AAOpE,OAAO,SAASC,4BAA4BC,KAAsC,EAAE;IAClF,OAAOL,qBAAqB;QAC1BM,cAAcJ,aAAaK,KAAK;QAChCC,OAAOP,MAAMQ,OAAO,CAAC,IAAMJ,MAAMK,YAAY,IAAIP,mBAAmBE,MAAMK,YAAY,GAAG;YAACL,MAAMK,YAAY;SAAC;QAC7GC,cAAc,IAAMR,mBAAmBE,MAAMO,mBAAmB;IAClE;AACF,CAAC,CAED,2HAA2H;CAC3H,0EAA0E;CAC1E,iHAAiH;CACjH,6CAA6C;CAC7C,kEAAkE;CAClE,mCAAmC;CACnC,OAAO;CACP,sFAAsF;CACtF,sDAAsD;CACtD,kDAAkD;CAClD,gEAAgE;CAChE,QAAQ;CACR,uEAAuE;CACvE,wCAAwC;CACxC,mCAAmC;CACnC,qEAAqE;CACrE,4CAA4C;CAC5C,SAAS;CACT,+GAA+G;CAC/G,QAAQ;CAER,mFAAmF;CACnF,8CAA8C;CAC9C,wDAAwD;CACxD,gBAAgB;CAChB,QAAQ;CACR,wCAAwC;CACxC,gBAAgB;CAChB,QAAQ;CACR,iFAAiF;CAEjF,0EAA0E;CAE1E,yEAAyE;CAEzE,mEAAmE;CACnE,2DAA2D;CAC3D,wCAAwC;CACxC,+FAA+F;CAC/F,uFAAuF;CACvF,6EAA6E;CAC7E,mBAAmB;CACnB,qFAAqF;CACrF,8FAA8F;CAC9F,aAAa;CACb,YAAY;CACZ,gDAAgD;CAChD,+CAA+C;CAC/C,uGAAuG;CACvG,aAAa;CACb,4CAA4C;CAC5C,uGAAuG;CACvG,aAAa;CACb,iBAAiB;CACjB,0CAA0C;CAC1C,+GAA+G;CAC/G,8BAA8B;CAC9B,yCAAyC;CACzC,uGAAuG;CACvG,aAAa;CACb,UAAU;CACV,QAAQ;CACR,sCAAsC;CACtC,0BAA0B;CAC1B,gEAAgE;CAChE,mEAAmE;CACnE,sEAAsE;CACtE,2CAA2C;CAC3C,8DAA8D;CAC9D,UAAU;CACV,8CAA8C;CAC9C,iEAAiE;CACjE,UAAU;CACV,+CAA+C;CAC/C,UAAU;CACV,QAAQ;CACR,qFAAqF;CACrF,IAAI;CAEJ,kEAAkE;CAClE,qGAAqG;CACrG,6CAA6C;CAC7C,uCAAuC;CACvC,iFAAiF;CACjF,MAAM;CACN,mDAAmD;CACnD,IAAI"}
@@ -1,113 +1,56 @@
1
- import { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';
2
- import { useTreeContext_unstable } from '../../contexts';
3
- import { useNestedTreeNavigation, useOpenItemsState } from '../../hooks';
4
- import { treeDataTypes } from '../../utils/tokens';
5
- /**
6
- * Create the state required to render Tree.
7
- *
8
- * The returned state can be modified with hooks such as useTreeStyles_unstable,
9
- * before being passed to renderTree_unstable.
10
- *
11
- * @param props - props from this instance of Tree
12
- * @param ref - reference to root HTMLElement of Tree
13
- */
14
- export const useTree_unstable = (props, ref) => {
15
- const isSubtree = useTreeContext_unstable(ctx => ctx.level > 0);
16
- // as isSubtree is static, this doesn't break rule of hooks
17
- // and if this becomes an issue later on, this can be easily converted
18
- // eslint-disable-next-line react-hooks/rules-of-hooks
19
- return isSubtree ? useSubtree(props, ref) : useRootTree(props, ref);
1
+ import * as React from 'react';
2
+ import { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';
3
+ import { createNextOpenItems, useControllableOpenItems } from '../../hooks/useControllableOpenItems';
4
+ import { useTreeNavigation } from './useTreeNavigation';
5
+ import { useControllableCheckedItems } from './useControllableCheckedItems';
6
+ import { useTreeContext_unstable } from '../../contexts/treeContext';
7
+ import { useRootTree } from '../../hooks/useRootTree';
8
+ import { useSubtree } from '../../hooks/useSubtree';
9
+ import { createHTMLElementWalker } from '../../utils/createHTMLElementWalker';
10
+ import { treeItemFilter } from '../../utils/treeItemFilter';
11
+ export const useTree_unstable = (props, ref)=>{
12
+ const [openItems, setOpenItems] = useControllableOpenItems(props);
13
+ const [checkedItems] = useControllableCheckedItems(props);
14
+ const { navigate , initialize } = useTreeNavigation();
15
+ const walkerRef = React.useRef();
16
+ const initializeWalker = React.useCallback((root)=>{
17
+ if (root) {
18
+ walkerRef.current = createHTMLElementWalker(root, treeItemFilter);
19
+ initialize(walkerRef.current);
20
+ }
21
+ }, [
22
+ initialize
23
+ ]);
24
+ const handleOpenChange = useEventCallback((event, data)=>{
25
+ var _props_onOpenChange;
26
+ (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, event, data);
27
+ setOpenItems(createNextOpenItems(data, openItems));
28
+ });
29
+ const handleCheckedChange = useEventCallback((event, data)=>{
30
+ var _props_onCheckedChange;
31
+ (_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, event, data);
32
+ // TODO: implement next checked items for tree
33
+ });
34
+ const handleNavigation = useEventCallback((event, data)=>{
35
+ var _props_onNavigation_unstable;
36
+ (_props_onNavigation_unstable = props.onNavigation_unstable) === null || _props_onNavigation_unstable === void 0 ? void 0 : _props_onNavigation_unstable.call(props, event, data);
37
+ if (walkerRef.current) {
38
+ navigate(data, walkerRef.current);
39
+ }
40
+ });
41
+ const baseProps = {
42
+ ...props,
43
+ openItems,
44
+ checkedItems,
45
+ onOpenChange: handleOpenChange,
46
+ // eslint-disable-next-line @typescript-eslint/naming-convention
47
+ onNavigation_unstable: handleNavigation,
48
+ onCheckedChange: handleCheckedChange
49
+ };
50
+ const baseRef = useMergedRefs(ref, initializeWalker);
51
+ const isSubtree = useTreeContext_unstable((ctx)=>ctx.level > 0);
52
+ // as isSubTree is static, this doesn't break rule of hooks
53
+ // and if this becomes an issue later on, this can be easily converted
54
+ // eslint-disable-next-line react-hooks/rules-of-hooks
55
+ return isSubtree ? useSubtree(baseProps, baseRef) : useRootTree(baseProps, baseRef);
20
56
  };
21
- /**
22
- * Create the state required to render a sub-level Tree.
23
- *
24
- * @param props - props from this instance of Tree
25
- * @param ref - reference to root HTMLElement of Tree
26
- */
27
- function useSubtree(props, ref) {
28
- const contextAppearance = useTreeContext_unstable(ctx => ctx.appearance);
29
- const contextSize = useTreeContext_unstable(ctx => ctx.size);
30
- const {
31
- appearance = contextAppearance !== null && contextAppearance !== void 0 ? contextAppearance : 'subtle',
32
- size = contextSize !== null && contextSize !== void 0 ? contextSize : 'medium'
33
- } = props;
34
- const parentLevel = useTreeContext_unstable(ctx => ctx.level);
35
- const openItems = useTreeContext_unstable(ctx => ctx.openItems);
36
- const requestOpenChange = useTreeContext_unstable(ctx => ctx.requestOpenChange);
37
- const requestNavigation = useTreeContext_unstable(ctx => ctx.requestNavigation);
38
- return {
39
- components: {
40
- root: 'div'
41
- },
42
- appearance,
43
- size,
44
- level: parentLevel + 1,
45
- root: getNativeElementProps('div', {
46
- ref,
47
- role: 'group',
48
- ...props
49
- }),
50
- openItems,
51
- requestOpenChange,
52
- requestNavigation
53
- };
54
- }
55
- /**
56
- * Create the state required to render the root level Tree.
57
- *
58
- * @param props - props from this instance of Tree
59
- * @param ref - reference to root HTMLElement of Tree
60
- */
61
- function useRootTree(props, ref) {
62
- warnIfNoProperPropsRootTree(props);
63
- const {
64
- appearance = 'subtle',
65
- size = 'medium'
66
- } = props;
67
- const [openItems, updateOpenItems] = useOpenItemsState(props);
68
- const [navigate, navigationRef] = useNestedTreeNavigation();
69
- const requestOpenChange = useEventCallback(data => {
70
- var _a;
71
- (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, data.event, data);
72
- if (data.event.isDefaultPrevented()) {
73
- return;
74
- }
75
- return updateOpenItems(data);
76
- });
77
- const requestNavigation = useEventCallback(data => {
78
- var _a;
79
- (_a = props.onNavigation_unstable) === null || _a === void 0 ? void 0 : _a.call(props, data.event, data);
80
- if (data.event.isDefaultPrevented()) {
81
- return;
82
- }
83
- navigate(data);
84
- if (data.type === treeDataTypes.arrowDown || data.type === treeDataTypes.arrowUp) {
85
- data.event.preventDefault();
86
- }
87
- });
88
- return {
89
- components: {
90
- root: 'div'
91
- },
92
- appearance,
93
- size,
94
- level: 1,
95
- openItems,
96
- requestOpenChange,
97
- requestNavigation,
98
- root: getNativeElementProps('div', {
99
- ref: useMergedRefs(navigationRef, ref),
100
- role: 'tree',
101
- ...props
102
- })
103
- };
104
- }
105
- function warnIfNoProperPropsRootTree(props) {
106
- if (process.env.NODE_ENV === 'development') {
107
- if (!props['aria-label'] && !props['aria-labelledby']) {
108
- // eslint-disable-next-line no-console
109
- console.warn('Tree must have either a `aria-label` or `aria-labelledby` property defined');
110
- }
111
- }
112
- }
113
- //# sourceMappingURL=useTree.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getNativeElementProps","useEventCallback","useMergedRefs","useTreeContext_unstable","useNestedTreeNavigation","useOpenItemsState","treeDataTypes","useTree_unstable","props","ref","isSubtree","ctx","level","useSubtree","useRootTree","contextAppearance","appearance","contextSize","size","parentLevel","openItems","requestOpenChange","requestNavigation","components","root","role","warnIfNoProperPropsRootTree","updateOpenItems","navigate","navigationRef","data","_a","onOpenChange","call","event","isDefaultPrevented","onNavigation_unstable","type","arrowDown","arrowUp","preventDefault","process","env","NODE_ENV","console","warn"],"sources":["../src/packages/react-components/react-tree/src/components/Tree/useTree.ts"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { TreeOpenChangeData, TreeProps, TreeState, TreeNavigationData_unstable } from './Tree.types';\nimport { useTreeContext_unstable } from '../../contexts';\nimport { useNestedTreeNavigation, useOpenItemsState } from '../../hooks';\nimport { treeDataTypes } from '../../utils/tokens';\n\n/**\n * Create the state required to render Tree.\n *\n * The returned state can be modified with hooks such as useTreeStyles_unstable,\n * before being passed to renderTree_unstable.\n *\n * @param props - props from this instance of Tree\n * @param ref - reference to root HTMLElement of Tree\n */\nexport const useTree_unstable = (props: TreeProps, ref: React.Ref<HTMLElement>): TreeState => {\n const isSubtree = useTreeContext_unstable(ctx => ctx.level > 0);\n // as isSubtree is static, this doesn't break rule of hooks\n // and if this becomes an issue later on, this can be easily converted\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isSubtree ? useSubtree(props, ref) : useRootTree(props, ref);\n};\n\n/**\n * Create the state required to render a sub-level Tree.\n *\n * @param props - props from this instance of Tree\n * @param ref - reference to root HTMLElement of Tree\n */\nfunction useSubtree(props: TreeProps, ref: React.Ref<HTMLElement>): TreeState {\n const contextAppearance = useTreeContext_unstable(ctx => ctx.appearance);\n const contextSize = useTreeContext_unstable(ctx => ctx.size);\n\n const { appearance = contextAppearance ?? 'subtle', size = contextSize ?? 'medium' } = props;\n\n const parentLevel = useTreeContext_unstable(ctx => ctx.level);\n const openItems = useTreeContext_unstable(ctx => ctx.openItems);\n const requestOpenChange = useTreeContext_unstable(ctx => ctx.requestOpenChange);\n const requestNavigation = useTreeContext_unstable(ctx => ctx.requestNavigation);\n\n return {\n components: {\n root: 'div',\n },\n appearance,\n size,\n level: parentLevel + 1,\n root: getNativeElementProps('div', {\n ref,\n role: 'group',\n ...props,\n }),\n openItems,\n requestOpenChange,\n requestNavigation,\n };\n}\n\n/**\n * Create the state required to render the root level Tree.\n *\n * @param props - props from this instance of Tree\n * @param ref - reference to root HTMLElement of Tree\n */\nfunction useRootTree(props: TreeProps, ref: React.Ref<HTMLElement>): TreeState {\n warnIfNoProperPropsRootTree(props);\n\n const { appearance = 'subtle', size = 'medium' } = props;\n\n const [openItems, updateOpenItems] = useOpenItemsState(props);\n const [navigate, navigationRef] = useNestedTreeNavigation();\n\n const requestOpenChange = useEventCallback((data: TreeOpenChangeData) => {\n props.onOpenChange?.(data.event, data);\n if (data.event.isDefaultPrevented()) {\n return;\n }\n return updateOpenItems(data);\n });\n\n const requestNavigation = useEventCallback((data: TreeNavigationData_unstable) => {\n props.onNavigation_unstable?.(data.event, data);\n if (data.event.isDefaultPrevented()) {\n return;\n }\n navigate(data);\n if (data.type === treeDataTypes.arrowDown || data.type === treeDataTypes.arrowUp) {\n data.event.preventDefault();\n }\n });\n\n return {\n components: {\n root: 'div',\n },\n appearance,\n size,\n level: 1,\n openItems,\n requestOpenChange,\n requestNavigation,\n root: getNativeElementProps('div', {\n ref: useMergedRefs(navigationRef, ref),\n role: 'tree',\n ...props,\n }),\n };\n}\n\nfunction warnIfNoProperPropsRootTree(props: Pick<TreeProps, 'aria-label' | 'aria-labelledby'>) {\n if (process.env.NODE_ENV === 'development') {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n // eslint-disable-next-line no-console\n console.warn('Tree must have either a `aria-label` or `aria-labelledby` property defined');\n }\n }\n}\n"],"mappings":"AACA,SAASA,qBAAqB,EAAEC,gBAAgB,EAAEC,aAAa,QAAQ,2BAA2B;AAElG,SAASC,uBAAuB,QAAQ,gBAAgB;AACxD,SAASC,uBAAuB,EAAEC,iBAAiB,QAAQ,aAAa;AACxE,SAASC,aAAa,QAAQ,oBAAoB;AAElD;;;;;;;;;AASA,OAAO,MAAMC,gBAAgB,GAAGA,CAACC,KAAgB,EAAEC,GAA2B,KAAe;EAC3F,MAAMC,SAAS,GAAGP,uBAAuB,CAACQ,GAAG,IAAIA,GAAG,CAACC,KAAK,GAAG,CAAC,CAAC;EAC/D;EACA;EACA;EACA,OAAOF,SAAS,GAAGG,UAAU,CAACL,KAAK,EAAEC,GAAG,CAAC,GAAGK,WAAW,CAACN,KAAK,EAAEC,GAAG,CAAC;AACrE,CAAC;AAED;;;;;;AAMA,SAASI,UAAUA,CAACL,KAAgB,EAAEC,GAA2B;EAC/D,MAAMM,iBAAiB,GAAGZ,uBAAuB,CAACQ,GAAG,IAAIA,GAAG,CAACK,UAAU,CAAC;EACxE,MAAMC,WAAW,GAAGd,uBAAuB,CAACQ,GAAG,IAAIA,GAAG,CAACO,IAAI,CAAC;EAE5D,MAAM;IAAEF,UAAU,GAAGD,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI,QAAQ;IAAEG,IAAI,GAAGD,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI;EAAQ,CAAE,GAAGT,KAAK;EAE5F,MAAMW,WAAW,GAAGhB,uBAAuB,CAACQ,GAAG,IAAIA,GAAG,CAACC,KAAK,CAAC;EAC7D,MAAMQ,SAAS,GAAGjB,uBAAuB,CAACQ,GAAG,IAAIA,GAAG,CAACS,SAAS,CAAC;EAC/D,MAAMC,iBAAiB,GAAGlB,uBAAuB,CAACQ,GAAG,IAAIA,GAAG,CAACU,iBAAiB,CAAC;EAC/E,MAAMC,iBAAiB,GAAGnB,uBAAuB,CAACQ,GAAG,IAAIA,GAAG,CAACW,iBAAiB,CAAC;EAE/E,OAAO;IACLC,UAAU,EAAE;MACVC,IAAI,EAAE;KACP;IACDR,UAAU;IACVE,IAAI;IACJN,KAAK,EAAEO,WAAW,GAAG,CAAC;IACtBK,IAAI,EAAExB,qBAAqB,CAAC,KAAK,EAAE;MACjCS,GAAG;MACHgB,IAAI,EAAE,OAAO;MACb,GAAGjB;KACJ,CAAC;IACFY,SAAS;IACTC,iBAAiB;IACjBC;GACD;AACH;AAEA;;;;;;AAMA,SAASR,WAAWA,CAACN,KAAgB,EAAEC,GAA2B;EAChEiB,2BAA2B,CAAClB,KAAK,CAAC;EAElC,MAAM;IAAEQ,UAAU,GAAG,QAAQ;IAAEE,IAAI,GAAG;EAAQ,CAAE,GAAGV,KAAK;EAExD,MAAM,CAACY,SAAS,EAAEO,eAAe,CAAC,GAAGtB,iBAAiB,CAACG,KAAK,CAAC;EAC7D,MAAM,CAACoB,QAAQ,EAAEC,aAAa,CAAC,GAAGzB,uBAAuB,EAAE;EAE3D,MAAMiB,iBAAiB,GAAGpB,gBAAgB,CAAE6B,IAAwB,IAAI;;IACtE,CAAAC,EAAA,GAAAvB,KAAK,CAACwB,YAAY,cAAAD,EAAA,uBAAAA,EAAA,CAAAE,IAAA,CAAlBzB,KAAK,EAAgBsB,IAAI,CAACI,KAAK,EAAEJ,IAAI,CAAC;IACtC,IAAIA,IAAI,CAACI,KAAK,CAACC,kBAAkB,EAAE,EAAE;MACnC;;IAEF,OAAOR,eAAe,CAACG,IAAI,CAAC;EAC9B,CAAC,CAAC;EAEF,MAAMR,iBAAiB,GAAGrB,gBAAgB,CAAE6B,IAAiC,IAAI;;IAC/E,CAAAC,EAAA,GAAAvB,KAAK,CAAC4B,qBAAqB,cAAAL,EAAA,uBAAAA,EAAA,CAAAE,IAAA,CAA3BzB,KAAK,EAAyBsB,IAAI,CAACI,KAAK,EAAEJ,IAAI,CAAC;IAC/C,IAAIA,IAAI,CAACI,KAAK,CAACC,kBAAkB,EAAE,EAAE;MACnC;;IAEFP,QAAQ,CAACE,IAAI,CAAC;IACd,IAAIA,IAAI,CAACO,IAAI,KAAK/B,aAAa,CAACgC,SAAS,IAAIR,IAAI,CAACO,IAAI,KAAK/B,aAAa,CAACiC,OAAO,EAAE;MAChFT,IAAI,CAACI,KAAK,CAACM,cAAc,EAAE;;EAE/B,CAAC,CAAC;EAEF,OAAO;IACLjB,UAAU,EAAE;MACVC,IAAI,EAAE;KACP;IACDR,UAAU;IACVE,IAAI;IACJN,KAAK,EAAE,CAAC;IACRQ,SAAS;IACTC,iBAAiB;IACjBC,iBAAiB;IACjBE,IAAI,EAAExB,qBAAqB,CAAC,KAAK,EAAE;MACjCS,GAAG,EAAEP,aAAa,CAAC2B,aAAa,EAAEpB,GAAG,CAAC;MACtCgB,IAAI,EAAE,MAAM;MACZ,GAAGjB;KACJ;GACF;AACH;AAEA,SAASkB,2BAA2BA,CAAClB,KAAwD;EAC3F,IAAIiC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;IAC1C,IAAI,CAACnC,KAAK,CAAC,YAAY,CAAC,IAAI,CAACA,KAAK,CAAC,iBAAiB,CAAC,EAAE;MACrD;MACAoC,OAAO,CAACC,IAAI,CAAC,4EAA4E,CAAC;;;AAGhG"}
1
+ {"version":3,"sources":["useTree.ts"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport type {\n TreeCheckedChangeData,\n TreeCheckedChangeEvent,\n TreeNavigationData_unstable,\n TreeNavigationEvent_unstable,\n TreeOpenChangeData,\n TreeOpenChangeEvent,\n TreeProps,\n TreeState,\n} from './Tree.types';\nimport { createNextOpenItems, useControllableOpenItems } from '../../hooks/useControllableOpenItems';\nimport { useTreeNavigation } from './useTreeNavigation';\nimport { useControllableCheckedItems } from './useControllableCheckedItems';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nimport { useRootTree } from '../../hooks/useRootTree';\nimport { useSubtree } from '../../hooks/useSubtree';\nimport { HTMLElementWalker, createHTMLElementWalker } from '../../utils/createHTMLElementWalker';\nimport { treeItemFilter } from '../../utils/treeItemFilter';\n\nexport const useTree_unstable = (props: TreeProps, ref: React.Ref<HTMLElement>): TreeState => {\n const [openItems, setOpenItems] = useControllableOpenItems(props);\n const [checkedItems] = useControllableCheckedItems(props);\n const { navigate, initialize } = useTreeNavigation();\n const walkerRef = React.useRef<HTMLElementWalker>();\n const initializeWalker = React.useCallback(\n (root: HTMLElement | null) => {\n if (root) {\n walkerRef.current = createHTMLElementWalker(root, treeItemFilter);\n initialize(walkerRef.current);\n }\n },\n [initialize],\n );\n\n const handleOpenChange = useEventCallback((event: TreeOpenChangeEvent, data: TreeOpenChangeData) => {\n props.onOpenChange?.(event, data);\n setOpenItems(createNextOpenItems(data, openItems));\n });\n const handleCheckedChange = useEventCallback((event: TreeCheckedChangeEvent, data: TreeCheckedChangeData) => {\n props.onCheckedChange?.(event, data);\n // TODO: implement next checked items for tree\n });\n const handleNavigation = useEventCallback(\n (event: TreeNavigationEvent_unstable, data: TreeNavigationData_unstable) => {\n props.onNavigation_unstable?.(event, data);\n if (walkerRef.current) {\n navigate(data, walkerRef.current);\n }\n },\n );\n\n const baseProps = {\n ...props,\n openItems,\n checkedItems,\n onOpenChange: handleOpenChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation,\n onCheckedChange: handleCheckedChange,\n };\n\n const baseRef = useMergedRefs(ref, initializeWalker);\n\n const isSubtree = useTreeContext_unstable(ctx => ctx.level > 0);\n // as isSubTree is static, this doesn't break rule of hooks\n // and if this becomes an issue later on, this can be easily converted\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isSubtree ? useSubtree(baseProps, baseRef) : useRootTree(baseProps, baseRef);\n};\n"],"names":["React","useEventCallback","useMergedRefs","createNextOpenItems","useControllableOpenItems","useTreeNavigation","useControllableCheckedItems","useTreeContext_unstable","useRootTree","useSubtree","createHTMLElementWalker","treeItemFilter","useTree_unstable","props","ref","openItems","setOpenItems","checkedItems","navigate","initialize","walkerRef","useRef","initializeWalker","useCallback","root","current","handleOpenChange","event","data","onOpenChange","handleCheckedChange","onCheckedChange","handleNavigation","onNavigation_unstable","baseProps","baseRef","isSubtree","ctx","level"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,4BAA4B;AAW5E,SAASC,mBAAmB,EAAEC,wBAAwB,QAAQ,uCAAuC;AACrG,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,2BAA2B,QAAQ,gCAAgC;AAC5E,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAA4BC,uBAAuB,QAAQ,sCAAsC;AACjG,SAASC,cAAc,QAAQ,6BAA6B;AAE5D,OAAO,MAAMC,mBAAmB,CAACC,OAAkBC,MAA2C;IAC5F,MAAM,CAACC,WAAWC,aAAa,GAAGZ,yBAAyBS;IAC3D,MAAM,CAACI,aAAa,GAAGX,4BAA4BO;IACnD,MAAM,EAAEK,SAAQ,EAAEC,WAAU,EAAE,GAAGd;IACjC,MAAMe,YAAYpB,MAAMqB,MAAM;IAC9B,MAAMC,mBAAmBtB,MAAMuB,WAAW,CACxC,CAACC,OAA6B;QAC5B,IAAIA,MAAM;YACRJ,UAAUK,OAAO,GAAGf,wBAAwBc,MAAMb;YAClDQ,WAAWC,UAAUK,OAAO;QAC9B,CAAC;IACH,GACA;QAACN;KAAW;IAGd,MAAMO,mBAAmBzB,iBAAiB,CAAC0B,OAA4BC,OAA6B;YAClGf;QAAAA,CAAAA,sBAAAA,MAAMgB,YAAY,cAAlBhB,iCAAAA,KAAAA,IAAAA,oBAAAA,KAAAA,OAAqBc,OAAOC;QAC5BZ,aAAab,oBAAoByB,MAAMb;IACzC;IACA,MAAMe,sBAAsB7B,iBAAiB,CAAC0B,OAA+BC,OAAgC;YAC3Gf;QAAAA,CAAAA,yBAAAA,MAAMkB,eAAe,cAArBlB,oCAAAA,KAAAA,IAAAA,uBAAAA,KAAAA,OAAwBc,OAAOC;IAC/B,+CAA+C;IACjD;IACA,MAAMI,mBAAmB/B,iBACvB,CAAC0B,OAAqCC,OAAsC;YAC1Ef;QAAAA,CAAAA,+BAAAA,MAAMoB,qBAAqB,cAA3BpB,0CAAAA,KAAAA,IAAAA,6BAAAA,KAAAA,OAA8Bc,OAAOC;QACrC,IAAIR,UAAUK,OAAO,EAAE;YACrBP,SAASU,MAAMR,UAAUK,OAAO;QAClC,CAAC;IACH;IAGF,MAAMS,YAAY;QAChB,GAAGrB,KAAK;QACRE;QACAE;QACAY,cAAcH;QACd,gEAAgE;QAChEO,uBAAuBD;QACvBD,iBAAiBD;IACnB;IAEA,MAAMK,UAAUjC,cAAcY,KAAKQ;IAEnC,MAAMc,YAAY7B,wBAAwB8B,CAAAA,MAAOA,IAAIC,KAAK,GAAG;IAC7D,2DAA2D;IAC3D,sEAAsE;IACtE,sDAAsD;IACtD,OAAOF,YAAY3B,WAAWyB,WAAWC,WAAW3B,YAAY0B,WAAWC,QAAQ;AACrF,EAAE"}
@@ -1,26 +1,18 @@
1
1
  export function useTreeContextValues_unstable(state) {
2
- const {
3
- openItems,
4
- level,
5
- appearance,
6
- size,
7
- requestOpenChange,
8
- requestNavigation
9
- } = state;
10
- /**
2
+ const { openItems , checkedItems , selectionMode , level , appearance , size , requestTreeResponse } = state;
3
+ /**
11
4
  * This context is created with "@fluentui/react-context-selector",
12
5
  * there is no sense to memoize it
13
- */
14
- const tree = {
15
- appearance,
16
- size,
17
- level,
18
- openItems,
19
- requestOpenChange,
20
- requestNavigation
21
- };
22
- return {
23
- tree
24
- };
6
+ */ const tree = {
7
+ size,
8
+ level,
9
+ openItems,
10
+ appearance,
11
+ checkedItems,
12
+ selectionMode,
13
+ requestTreeResponse
14
+ };
15
+ return {
16
+ tree
17
+ };
25
18
  }
26
- //# sourceMappingURL=useTreeContextValues.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useTreeContextValues_unstable","state","openItems","level","appearance","size","requestOpenChange","requestNavigation","tree"],"sources":["../src/packages/react-components/react-tree/src/components/Tree/useTreeContextValues.ts"],"sourcesContent":["import { TreeContextValue } from '../../contexts';\nimport type { TreeContextValues, TreeState } from './Tree.types';\n\nexport function useTreeContextValues_unstable(state: TreeState): TreeContextValues {\n const { openItems, level, appearance, size, requestOpenChange, requestNavigation } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */\n const tree: TreeContextValue = {\n appearance,\n size,\n level,\n openItems,\n requestOpenChange,\n requestNavigation,\n };\n\n return { tree };\n}\n"],"mappings":"AAGA,OAAM,SAAUA,6BAA6BA,CAACC,KAAgB;EAC5D,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAEC,UAAU;IAAEC,IAAI;IAAEC,iBAAiB;IAAEC;EAAiB,CAAE,GAAGN,KAAK;EAC1F;;;;EAIA,MAAMO,IAAI,GAAqB;IAC7BJ,UAAU;IACVC,IAAI;IACJF,KAAK;IACLD,SAAS;IACTI,iBAAiB;IACjBC;GACD;EAED,OAAO;IAAEC;EAAI,CAAE;AACjB"}
1
+ {"version":3,"sources":["useTreeContextValues.ts"],"sourcesContent":["import { TreeContextValue } from '../../contexts';\nimport { TreeContextValues, TreeState } from './Tree.types';\n\nexport function useTreeContextValues_unstable(state: TreeState): TreeContextValues {\n const { openItems, checkedItems, selectionMode, level, appearance, size, requestTreeResponse } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */\n const tree: TreeContextValue = {\n size,\n level,\n openItems,\n appearance,\n checkedItems,\n selectionMode,\n requestTreeResponse,\n };\n\n return { tree };\n}\n"],"names":["useTreeContextValues_unstable","state","openItems","checkedItems","selectionMode","level","appearance","size","requestTreeResponse","tree"],"mappings":"AAGA,OAAO,SAASA,8BAA8BC,KAAgB,EAAqB;IACjF,MAAM,EAAEC,UAAS,EAAEC,aAAY,EAAEC,cAAa,EAAEC,MAAK,EAAEC,WAAU,EAAEC,KAAI,EAAEC,oBAAmB,EAAE,GAAGP;IACjG;;;GAGC,GACD,MAAMQ,OAAyB;QAC7BF;QACAF;QACAH;QACAI;QACAH;QACAC;QACAI;IACF;IAEA,OAAO;QAAEC;IAAK;AAChB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { nextTypeAheadElement } from '../../utils/nextTypeAheadElement';
2
+ import { treeDataTypes } from '../../utils/tokens';
3
+ import { treeItemFilter } from '../../utils/treeItemFilter';
4
+ import { useRovingTabIndex } from '../../hooks/useRovingTabIndexes';
5
+ export function useTreeNavigation() {
6
+ const { rove , initialize } = useRovingTabIndex(treeItemFilter);
7
+ const getNextElement = (data, treeItemWalker)=>{
8
+ switch(data.type){
9
+ case treeDataTypes.Click:
10
+ return data.target;
11
+ case treeDataTypes.TypeAhead:
12
+ treeItemWalker.currentElement = data.target;
13
+ return nextTypeAheadElement(treeItemWalker, data.event.key);
14
+ case treeDataTypes.ArrowLeft:
15
+ treeItemWalker.currentElement = data.target;
16
+ return treeItemWalker.parentElement();
17
+ case treeDataTypes.ArrowRight:
18
+ treeItemWalker.currentElement = data.target;
19
+ return treeItemWalker.firstChild();
20
+ case treeDataTypes.End:
21
+ treeItemWalker.currentElement = treeItemWalker.root;
22
+ return lastChildRecursive(treeItemWalker);
23
+ case treeDataTypes.Home:
24
+ treeItemWalker.currentElement = treeItemWalker.root;
25
+ return treeItemWalker.firstChild();
26
+ case treeDataTypes.ArrowDown:
27
+ treeItemWalker.currentElement = data.target;
28
+ return treeItemWalker.nextElement();
29
+ case treeDataTypes.ArrowUp:
30
+ treeItemWalker.currentElement = data.target;
31
+ return treeItemWalker.previousElement();
32
+ }
33
+ };
34
+ function navigate(data, walker) {
35
+ const nextElement = getNextElement(data, walker);
36
+ if (nextElement) {
37
+ rove(nextElement);
38
+ }
39
+ }
40
+ return {
41
+ navigate,
42
+ initialize
43
+ };
44
+ }
45
+ function lastChildRecursive(walker) {
46
+ let lastElement = null;
47
+ let nextElement = null;
48
+ while(nextElement = walker.lastChild()){
49
+ lastElement = nextElement;
50
+ }
51
+ return lastElement;
52
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useTreeNavigation.ts"],"sourcesContent":["import { TreeNavigationData_unstable } from './Tree.types';\nimport { nextTypeAheadElement } from '../../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { treeItemFilter } from '../../utils/treeItemFilter';\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndexes';\nimport { HTMLElementWalker } from '../../utils/createHTMLElementWalker';\n\nexport function useTreeNavigation() {\n const { rove, initialize } = useRovingTabIndex(treeItemFilter);\n\n const getNextElement = (data: TreeNavigationData_unstable, treeItemWalker: HTMLElementWalker) => {\n switch (data.type) {\n case treeDataTypes.Click:\n return data.target;\n case treeDataTypes.TypeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.ArrowLeft:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.parentElement();\n case treeDataTypes.ArrowRight:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.firstChild();\n case treeDataTypes.End:\n treeItemWalker.currentElement = treeItemWalker.root;\n return lastChildRecursive(treeItemWalker);\n case treeDataTypes.Home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.ArrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.ArrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n };\n function navigate(data: TreeNavigationData_unstable, walker: HTMLElementWalker) {\n const nextElement = getNextElement(data, walker);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return { navigate, initialize } as const;\n}\n\nfunction lastChildRecursive(walker: HTMLElementWalker) {\n let lastElement: HTMLElement | null = null;\n let nextElement: HTMLElement | null = null;\n while ((nextElement = walker.lastChild())) {\n lastElement = nextElement;\n }\n return lastElement;\n}\n"],"names":["nextTypeAheadElement","treeDataTypes","treeItemFilter","useRovingTabIndex","useTreeNavigation","rove","initialize","getNextElement","data","treeItemWalker","type","Click","target","TypeAhead","currentElement","event","key","ArrowLeft","parentElement","ArrowRight","firstChild","End","root","lastChildRecursive","Home","ArrowDown","nextElement","ArrowUp","previousElement","navigate","walker","lastElement","lastChild"],"mappings":"AACA,SAASA,oBAAoB,QAAQ,mCAAmC;AACxE,SAASC,aAAa,QAAQ,qBAAqB;AACnD,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,iBAAiB,QAAQ,kCAAkC;AAGpE,OAAO,SAASC,oBAAoB;IAClC,MAAM,EAAEC,KAAI,EAAEC,WAAU,EAAE,GAAGH,kBAAkBD;IAE/C,MAAMK,iBAAiB,CAACC,MAAmCC,iBAAsC;QAC/F,OAAQD,KAAKE,IAAI;YACf,KAAKT,cAAcU,KAAK;gBACtB,OAAOH,KAAKI,MAAM;YACpB,KAAKX,cAAcY,SAAS;gBAC1BJ,eAAeK,cAAc,GAAGN,KAAKI,MAAM;gBAC3C,OAAOZ,qBAAqBS,gBAAgBD,KAAKO,KAAK,CAACC,GAAG;YAC5D,KAAKf,cAAcgB,SAAS;gBAC1BR,eAAeK,cAAc,GAAGN,KAAKI,MAAM;gBAC3C,OAAOH,eAAeS,aAAa;YACrC,KAAKjB,cAAckB,UAAU;gBAC3BV,eAAeK,cAAc,GAAGN,KAAKI,MAAM;gBAC3C,OAAOH,eAAeW,UAAU;YAClC,KAAKnB,cAAcoB,GAAG;gBACpBZ,eAAeK,cAAc,GAAGL,eAAea,IAAI;gBACnD,OAAOC,mBAAmBd;YAC5B,KAAKR,cAAcuB,IAAI;gBACrBf,eAAeK,cAAc,GAAGL,eAAea,IAAI;gBACnD,OAAOb,eAAeW,UAAU;YAClC,KAAKnB,cAAcwB,SAAS;gBAC1BhB,eAAeK,cAAc,GAAGN,KAAKI,MAAM;gBAC3C,OAAOH,eAAeiB,WAAW;YACnC,KAAKzB,cAAc0B,OAAO;gBACxBlB,eAAeK,cAAc,GAAGN,KAAKI,MAAM;gBAC3C,OAAOH,eAAemB,eAAe;QACzC;IACF;IACA,SAASC,SAASrB,IAAiC,EAAEsB,MAAyB,EAAE;QAC9E,MAAMJ,cAAcnB,eAAeC,MAAMsB;QACzC,IAAIJ,aAAa;YACfrB,KAAKqB;QACP,CAAC;IACH;IACA,OAAO;QAAEG;QAAUvB;IAAW;AAChC,CAAC;AAED,SAASiB,mBAAmBO,MAAyB,EAAE;IACrD,IAAIC,cAAkC,IAAI;IAC1C,IAAIL,cAAkC,IAAI;IAC1C,MAAQA,cAAcI,OAAOE,SAAS,GAAK;QACzCD,cAAcL;IAChB;IACA,OAAOK;AACT"}
@@ -8,13 +8,17 @@ const useStyles = /*#__PURE__*/__styles({
8
8
  mc9l5x: "f22iagw",
9
9
  Beiy3e4: "f1vx9l62",
10
10
  Belr9w4: "f1j0q4x9"
11
+ },
12
+ subtree: {
13
+ z8tnut: "fclwglc"
11
14
  }
12
15
  }, {
13
- d: [".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".f1j0q4x9{row-gap:var(--spacingVerticalXXS);}"]
16
+ d: [".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".f1j0q4x9{row-gap:var(--spacingVerticalXXS);}", ".fclwglc{padding-top:var(--spacingVerticalXXS);}"]
14
17
  });
15
18
  export const useTreeStyles_unstable = state => {
16
19
  const styles = useStyles();
17
- state.root.className = mergeClasses(treeClassNames.root, styles.root, state.root.className);
20
+ const isSubTree = state.level > 1;
21
+ state.root.className = mergeClasses(treeClassNames.root, styles.root, isSubTree && styles.subtree, state.root.className);
18
22
  return state;
19
23
  };
20
- //# sourceMappingURL=useTreeStyles.js.map
24
+ //# sourceMappingURL=useTreeStyles.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__styles","mergeClasses","tokens","treeClassNames","root","useStyles","mc9l5x","Beiy3e4","Belr9w4","subtree","z8tnut","d","useTreeStyles_unstable","state","styles","isSubTree","level","className"],"sources":["useTreeStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const treeClassNames = {\n root: 'fui-Tree'\n};\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingVerticalXXS\n },\n subtree: {\n paddingTop: tokens.spacingVerticalXXS\n }\n});\nexport const useTreeStyles_unstable = (state)=>{\n const styles = useStyles();\n const isSubTree = state.level > 1;\n state.root.className = mergeClasses(treeClassNames.root, styles.root, isSubTree && styles.subtree, state.root.className);\n return state;\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,QAAQ,gBAAgB;AACzD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,OAAO,MAAMC,cAAc,GAAG;EAC1BC,IAAI,EAAE;AACV,CAAC;AACD,MAAMC,SAAS,gBAAGL,QAAA;EAAAI,IAAA;IAAAE,MAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;EAAAC,OAAA;IAAAC,MAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,CASjB,CAAC;AACF,OAAO,MAAMC,sBAAsB,GAAIC,KAAK,IAAG;EAC3C,MAAMC,MAAM,GAAGT,SAAS,CAAC,CAAC;EAC1B,MAAMU,SAAS,GAAGF,KAAK,CAACG,KAAK,GAAG,CAAC;EACjCH,KAAK,CAACT,IAAI,CAACa,SAAS,GAAGhB,YAAY,CAACE,cAAc,CAACC,IAAI,EAAEU,MAAM,CAACV,IAAI,EAAEW,SAAS,IAAID,MAAM,CAACL,OAAO,EAAEI,KAAK,CAACT,IAAI,CAACa,SAAS,CAAC;EACxH,OAAOJ,KAAK;AAChB,CAAC"}
@@ -1,16 +1,23 @@
1
1
  import * as React from 'react';
2
2
  import { useTreeItem_unstable } from './useTreeItem';
3
3
  import { renderTreeItem_unstable } from './renderTreeItem';
4
- import { useTreeItemStyles_unstable } from './useTreeItemStyles';
4
+ import { useTreeItemStyles_unstable } from './useTreeItemStyles.styles';
5
5
  import { useTreeItemContextValues_unstable } from './useTreeItemContextValues';
6
6
  /**
7
- * TreeItem component - TODO: add more docs
8
- */
9
- export const TreeItem = /*#__PURE__*/React.forwardRef((props, ref) => {
10
- const state = useTreeItem_unstable(props, ref);
11
- useTreeItemStyles_unstable(state);
12
- const contextValues = useTreeItemContextValues_unstable(state);
13
- return renderTreeItem_unstable(state, contextValues);
7
+ * The `TreeItem` component represents a single item in a tree.
8
+ * It expects a certain order of children to work properly: the first child should be the node itself,
9
+ * and the second child should be a nested subtree in the form of another Tree component or a standalone TreeItem.
10
+ * This order follows the same order as document traversal for the TreeWalker API in JavaScript:
11
+ * https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.
12
+ * The content and layout of a TreeItem can be defined using the TreeItemLayout or TreeItemPersonaLayout component,
13
+ * which should be used as a direct child of TreeItem.
14
+ *
15
+ * When a TreeItem has nested child subtree, an expand/collapse control is displayed,
16
+ * allowing the user to show or hide the children.
17
+ */ export const TreeItem = /*#__PURE__*/ React.forwardRef((props, ref)=>{
18
+ const state = useTreeItem_unstable(props, ref);
19
+ useTreeItemStyles_unstable(state);
20
+ const contextValues = useTreeItemContextValues_unstable(state);
21
+ return renderTreeItem_unstable(state, contextValues);
14
22
  });
15
23
  TreeItem.displayName = 'TreeItem';
16
- //# sourceMappingURL=TreeItem.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useTreeItem_unstable","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItemContextValues_unstable","TreeItem","forwardRef","props","ref","state","contextValues","displayName"],"sources":["../src/packages/react-components/react-tree/src/components/TreeItem/TreeItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useTreeItem_unstable } from './useTreeItem';\nimport { renderTreeItem_unstable } from './renderTreeItem';\nimport { useTreeItemStyles_unstable } from './useTreeItemStyles';\nimport type { TreeItemProps } from './TreeItem.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTreeItemContextValues_unstable } from './useTreeItemContextValues';\n\n/**\n * TreeItem component - TODO: add more docs\n */\nexport const TreeItem: ForwardRefComponent<TreeItemProps> = React.forwardRef((props, ref) => {\n const state = useTreeItem_unstable(props, ref);\n\n useTreeItemStyles_unstable(state);\n const contextValues = useTreeItemContextValues_unstable(state);\n return renderTreeItem_unstable(state, contextValues);\n});\n\nTreeItem.displayName = 'TreeItem';\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,oBAAoB,QAAQ,eAAe;AACpD,SAASC,uBAAuB,QAAQ,kBAAkB;AAC1D,SAASC,0BAA0B,QAAQ,qBAAqB;AAGhE,SAASC,iCAAiC,QAAQ,4BAA4B;AAE9E;;;AAGA,OAAO,MAAMC,QAAQ,gBAAuCL,KAAK,CAACM,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAI;EAC1F,MAAMC,KAAK,GAAGR,oBAAoB,CAACM,KAAK,EAAEC,GAAG,CAAC;EAE9CL,0BAA0B,CAACM,KAAK,CAAC;EACjC,MAAMC,aAAa,GAAGN,iCAAiC,CAACK,KAAK,CAAC;EAC9D,OAAOP,uBAAuB,CAACO,KAAK,EAAEC,aAAa,CAAC;AACtD,CAAC,CAAC;AAEFL,QAAQ,CAACM,WAAW,GAAG,UAAU"}
1
+ {"version":3,"sources":["TreeItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useTreeItem_unstable } from './useTreeItem';\nimport { renderTreeItem_unstable } from './renderTreeItem';\nimport { useTreeItemStyles_unstable } from './useTreeItemStyles.styles';\nimport type { TreeItemProps } from './TreeItem.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTreeItemContextValues_unstable } from './useTreeItemContextValues';\n\n/**\n * The `TreeItem` component represents a single item in a tree.\n * It expects a certain order of children to work properly: the first child should be the node itself,\n * and the second child should be a nested subtree in the form of another Tree component or a standalone TreeItem.\n * This order follows the same order as document traversal for the TreeWalker API in JavaScript:\n * https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.\n * The content and layout of a TreeItem can be defined using the TreeItemLayout or TreeItemPersonaLayout component,\n * which should be used as a direct child of TreeItem.\n *\n * When a TreeItem has nested child subtree, an expand/collapse control is displayed,\n * allowing the user to show or hide the children.\n */\nexport const TreeItem: ForwardRefComponent<TreeItemProps> = React.forwardRef((props, ref) => {\n const state = useTreeItem_unstable(props, ref);\n\n useTreeItemStyles_unstable(state);\n const contextValues = useTreeItemContextValues_unstable(state);\n return renderTreeItem_unstable(state, contextValues);\n});\n\nTreeItem.displayName = 'TreeItem';\n"],"names":["React","useTreeItem_unstable","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItemContextValues_unstable","TreeItem","forwardRef","props","ref","state","contextValues","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ,gBAAgB;AACrD,SAASC,uBAAuB,QAAQ,mBAAmB;AAC3D,SAASC,0BAA0B,QAAQ,6BAA6B;AAGxE,SAASC,iCAAiC,QAAQ,6BAA6B;AAE/E;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,yBAA+CL,MAAMM,UAAU,CAAC,CAACC,OAAOC,MAAQ;IAC3F,MAAMC,QAAQR,qBAAqBM,OAAOC;IAE1CL,2BAA2BM;IAC3B,MAAMC,gBAAgBN,kCAAkCK;IACxD,OAAOP,wBAAwBO,OAAOC;AACxC,GAAG;AAEHL,SAASM,WAAW,GAAG"}
@@ -1,2 +1 @@
1
- import { treeItemLevelToken } from '../../utils/tokens';
2
- //# sourceMappingURL=TreeItem.types.js.map
1
+ import * as React from 'react';
@@ -1 +1 @@
1
- {"version":3,"file":"TreeItem.types.js","sourceRoot":"../src/","sources":["packages/react-components/react-tree/src/components/TreeItem/TreeItem.types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["import type { ComponentProps, ComponentState, ExtractSlotProps, Slot } from '@fluentui/react-utilities';\nimport type { ButtonContextValue } from '@fluentui/react-button';\nimport type { TreeItemContextValue } from '../../contexts';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport * as React from 'react';\n\nexport type TreeItemCSSProperties = React.CSSProperties & { [treeItemLevelToken]?: string | number };\n\nexport type TreeItemSlots = {\n root: Slot<ExtractSlotProps<Slot<'div'> & { style?: TreeItemCSSProperties }>>;\n content: NonNullable<Slot<'div'>>;\n subtree?: Slot<'span'>;\n /**\n * Expand icon slot,\n * by default renders a chevron icon to indicate opening and closing\n */\n expandIcon?: Slot<'span'>;\n /**\n * Actions slot that renders on the end of tree item\n * when the item is hovered/focused\n */\n actions?: Slot<'span'>;\n};\n\nexport type TreeItemContextValues = {\n treeItem: TreeItemContextValue;\n button: ButtonContextValue;\n};\n\n/**\n * TreeItem Props\n */\nexport type TreeItemProps = ComponentProps<Partial<TreeItemSlots>> & {\n /**\n * If a TreeItem is a leaf, it'll not present the `expandIcon` slot by default.\n * This attribute is used to force the decision if a TreeItem is a leaf or not. By not providing this property\n * this will be inferred by the presence of a subtree as part of the TreeItem children.\n */\n leaf?: boolean;\n};\n\n/**\n * State used in rendering TreeItem\n */\nexport type TreeItemState = ComponentState<TreeItemSlots> & {\n open: boolean;\n isLeaf: boolean;\n level: number;\n /**\n * By design, a button included on the actions slot should be small\n */\n buttonSize: 'small';\n isActionsVisible: boolean;\n};\n"]}
1
+ {"version":3,"sources":["TreeItem.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, ExtractSlotProps, Slot } from '@fluentui/react-utilities';\nimport type { TreeItemContextValue } from '../../contexts';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport * as React from 'react';\n\nexport type TreeItemCSSProperties = React.CSSProperties & { [treeItemLevelToken]?: string | number };\n\nexport type TreeItemType = 'leaf' | 'branch';\n\nexport type TreeItemSlots = {\n root: Slot<ExtractSlotProps<Slot<'div'> & { style?: TreeItemCSSProperties }>>;\n};\n\nexport type TreeItemValue = string | number;\n\nexport type TreeItemContextValues = {\n treeItem: TreeItemContextValue;\n};\n\n/**\n * TreeItem Props\n */\nexport type TreeItemProps = ComponentProps<Partial<TreeItemSlots>> & {\n itemType: TreeItemType;\n value?: TreeItemValue;\n};\n\n/**\n * State used in rendering TreeItem\n */\nexport type TreeItemState = ComponentState<TreeItemSlots> &\n TreeItemContextValue & {\n level: number;\n itemType: TreeItemType;\n };\n"],"names":["React"],"mappings":"AAGA,YAAYA,WAAW,QAAQ"}
@@ -2,5 +2,5 @@ export * from './TreeItem';
2
2
  export * from './TreeItem.types';
3
3
  export * from './renderTreeItem';
4
4
  export * from './useTreeItem';
5
- export * from './useTreeItemStyles';
6
- //# sourceMappingURL=index.js.map
5
+ export * from './useTreeItemStyles.styles';
6
+ export * from './useTreeItemContextValues';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["packages/react-components/react-tree/src/components/TreeItem/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './TreeItem';\nexport * from './TreeItem.types';\nexport * from './renderTreeItem';\nexport * from './useTreeItem';\nexport * from './useTreeItemStyles';\n"]}
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './TreeItem';\nexport * from './TreeItem.types';\nexport * from './renderTreeItem';\nexport * from './useTreeItem';\nexport * from './useTreeItemStyles.styles';\nexport * from './useTreeItemContextValues';\n"],"names":[],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,gBAAgB;AAC9B,cAAc,6BAA6B;AAC3C,cAAc,6BAA6B"}
@@ -1,29 +1,11 @@
1
- import * as React from 'react';
2
- import { getSlots } from '@fluentui/react-utilities';
1
+ /** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';
2
+ import { getSlotsNext } from '@fluentui/react-utilities';
3
3
  import { TreeItemProvider } from '../../contexts';
4
- import { ButtonContextProvider } from '@fluentui/react-button';
5
4
  /**
6
5
  * Render the final JSX of TreeItem
7
- */
8
- export const renderTreeItem_unstable = (state, contextValues) => {
9
- const {
10
- slots,
11
- slotProps
12
- } = getSlots(state);
13
- return /*#__PURE__*/React.createElement(TreeItemProvider, {
14
- value: contextValues.treeItem
15
- }, /*#__PURE__*/React.createElement(slots.root, {
16
- ...slotProps.root
17
- }, /*#__PURE__*/React.createElement(slots.content, {
18
- ...slotProps.content
19
- }, slots.expandIcon && /*#__PURE__*/React.createElement(slots.expandIcon, {
20
- ...slotProps.expandIcon
21
- }), slotProps.content.children, /*#__PURE__*/React.createElement(ButtonContextProvider, {
22
- value: contextValues.button
23
- }, slots.actions && /*#__PURE__*/React.createElement(slots.actions, {
24
- ...slotProps.actions
25
- }))), state.open && slots.subtree && /*#__PURE__*/React.createElement(slots.subtree, {
26
- ...slotProps.subtree
27
- })));
6
+ */ export const renderTreeItem_unstable = (state, contextValues)=>{
7
+ const { slots , slotProps } = getSlotsNext(state);
8
+ return /*#__PURE__*/ createElement(slots.root, slotProps.root, /*#__PURE__*/ createElement(TreeItemProvider, {
9
+ value: contextValues.treeItem
10
+ }, slotProps.root.children));
28
11
  };
29
- //# sourceMappingURL=renderTreeItem.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","getSlots","TreeItemProvider","ButtonContextProvider","renderTreeItem_unstable","state","contextValues","slots","slotProps","createElement","value","treeItem","root","content","expandIcon","children","button","actions","open","subtree"],"sources":["../src/packages/react-components/react-tree/src/components/TreeItem/renderTreeItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { TreeItemState, TreeItemSlots, TreeItemContextValues } from './TreeItem.types';\nimport { TreeItemProvider } from '../../contexts';\nimport { ButtonContextProvider } from '@fluentui/react-button';\n\n/**\n * Render the final JSX of TreeItem\n */\nexport const renderTreeItem_unstable = (state: TreeItemState, contextValues: TreeItemContextValues) => {\n const { slots, slotProps } = getSlots<TreeItemSlots>(state);\n\n return (\n <TreeItemProvider value={contextValues.treeItem}>\n <slots.root {...slotProps.root}>\n <slots.content {...slotProps.content}>\n {slots.expandIcon && <slots.expandIcon {...slotProps.expandIcon} />}\n {slotProps.content.children}\n <ButtonContextProvider value={contextValues.button}>\n {slots.actions && <slots.actions {...slotProps.actions} />}\n </ButtonContextProvider>\n </slots.content>\n {state.open && slots.subtree && <slots.subtree {...slotProps.subtree} />}\n </slots.root>\n </TreeItemProvider>\n );\n};\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,2BAA2B;AAEpD,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,qBAAqB,QAAQ,wBAAwB;AAE9D;;;AAGA,OAAO,MAAMC,uBAAuB,GAAGA,CAACC,KAAoB,EAAEC,aAAoC,KAAI;EACpG,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAE,GAAGP,QAAQ,CAAgBI,KAAK,CAAC;EAE3D,oBACEL,KAAA,CAAAS,aAAA,CAACP,gBAAgB;IAACQ,KAAK,EAAEJ,aAAa,CAACK;EAAQ,gBAC7CX,KAAA,CAAAS,aAAA,CAACF,KAAK,CAACK,IAAI;IAAA,GAAKJ,SAAS,CAACI;EAAI,gBAC5BZ,KAAA,CAAAS,aAAA,CAACF,KAAK,CAACM,OAAO;IAAA,GAAKL,SAAS,CAACK;EAAO,GACjCN,KAAK,CAACO,UAAU,iBAAId,KAAA,CAAAS,aAAA,CAACF,KAAK,CAACO,UAAU;IAAA,GAAKN,SAAS,CAACM;EAAU,EAAI,EAClEN,SAAS,CAACK,OAAO,CAACE,QAAQ,eAC3Bf,KAAA,CAAAS,aAAA,CAACN,qBAAqB;IAACO,KAAK,EAAEJ,aAAa,CAACU;EAAM,GAC/CT,KAAK,CAACU,OAAO,iBAAIjB,KAAA,CAAAS,aAAA,CAACF,KAAK,CAACU,OAAO;IAAA,GAAKT,SAAS,CAACS;EAAO,EAAI,CACpC,CACV,EACfZ,KAAK,CAACa,IAAI,IAAIX,KAAK,CAACY,OAAO,iBAAInB,KAAA,CAAAS,aAAA,CAACF,KAAK,CAACY,OAAO;IAAA,GAAKX,SAAS,CAACW;EAAO,EAAI,CAC7D,CACI;AAEvB,CAAC"}
1
+ {"version":3,"sources":["renderTreeItem.tsx"],"sourcesContent":["/** @jsxRuntime classic */\n/** @jsx createElement */\n\nimport { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport type { TreeItemState, TreeItemContextValues, TreeItemSlots } from './TreeItem.types';\nimport { TreeItemProvider } from '../../contexts';\n\n/**\n * Render the final JSX of TreeItem\n */\nexport const renderTreeItem_unstable = (state: TreeItemState, contextValues: TreeItemContextValues) => {\n const { slots, slotProps } = getSlotsNext<TreeItemSlots>(state);\n\n return (\n <slots.root {...slotProps.root}>\n <TreeItemProvider value={contextValues.treeItem}>{slotProps.root.children}</TreeItemProvider>\n </slots.root>\n );\n};\n"],"names":["createElement","getSlotsNext","TreeItemProvider","renderTreeItem_unstable","state","contextValues","slots","slotProps","root","value","treeItem","children"],"mappings":"AAAA,wBAAwB,GACxB,uBAAuB,GAEvB,SAASA,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,gBAAgB,QAAQ,iBAAiB;AAElD;;CAEC,GACD,OAAO,MAAMC,0BAA0B,CAACC,OAAsBC,gBAAyC;IACrG,MAAM,EAAEC,MAAK,EAAEC,UAAS,EAAE,GAAGN,aAA4BG;IAEzD,qBACE,AAdJ,cAcKE,MAAME,IAAI,EAAKD,UAAUC,IAAI,gBAC5B,AAfN,cAeON;QAAiBO,OAAOJ,cAAcK,QAAQ;OAAGH,UAAUC,IAAI,CAACG,QAAQ;AAG/E,EAAE"}