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

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 (315) hide show
  1. package/CHANGELOG.json +1665 -1
  2. package/CHANGELOG.md +446 -2
  3. package/dist/index.d.ts +407 -129
  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 +17 -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 +7 -0
  19. package/lib/components/FlatTree/index.js.map +1 -0
  20. package/lib/components/FlatTree/renderFlatTree.js +2 -0
  21. package/lib/components/FlatTree/renderFlatTree.js.map +1 -0
  22. package/lib/components/FlatTree/useFlatControllableCheckedItems.js +76 -0
  23. package/lib/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
  24. package/lib/components/FlatTree/useFlatTree.js +3 -0
  25. package/lib/components/FlatTree/useFlatTree.js.map +1 -0
  26. package/lib/components/FlatTree/useFlatTreeContextValues.js +2 -0
  27. package/lib/components/FlatTree/useFlatTreeContextValues.js.map +1 -0
  28. package/lib/components/FlatTree/useFlatTreeNavigation.js +74 -0
  29. package/lib/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
  30. package/lib/components/FlatTree/useFlatTreeStyles.styles.js +20 -0
  31. package/lib/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
  32. package/lib/components/FlatTree/useHeadlessFlatTree.js +125 -0
  33. package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
  34. package/lib/components/Tree/Tree.js +9 -15
  35. package/lib/components/Tree/Tree.js.map +1 -1
  36. package/lib/components/Tree/Tree.types.js +1 -2
  37. package/lib/components/Tree/Tree.types.js.map +1 -1
  38. package/lib/components/Tree/index.js +2 -3
  39. package/lib/components/Tree/index.js.map +1 -1
  40. package/lib/components/Tree/renderTree.js +7 -13
  41. package/lib/components/Tree/renderTree.js.map +1 -1
  42. package/lib/components/Tree/useNestedControllableCheckedItems.js +22 -0
  43. package/lib/components/Tree/useNestedControllableCheckedItems.js.map +1 -0
  44. package/lib/components/Tree/useTree.js +64 -111
  45. package/lib/components/Tree/useTree.js.map +1 -1
  46. package/lib/components/Tree/useTreeContextValues.js +14 -22
  47. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  48. package/lib/components/Tree/useTreeNavigation.js +52 -0
  49. package/lib/components/Tree/useTreeNavigation.js.map +1 -0
  50. package/lib/components/Tree/{useTreeStyles.js → useTreeStyles.styles.js} +7 -3
  51. package/lib/components/Tree/useTreeStyles.styles.js.map +1 -0
  52. package/lib/components/TreeItem/TreeItem.js +16 -9
  53. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  54. package/lib/components/TreeItem/TreeItem.types.js +1 -2
  55. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  56. package/lib/components/TreeItem/index.js +2 -2
  57. package/lib/components/TreeItem/index.js.map +1 -1
  58. package/lib/components/TreeItem/renderTreeItem.js +7 -25
  59. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  60. package/lib/components/TreeItem/useTreeItem.js +159 -234
  61. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  62. package/lib/components/TreeItem/useTreeItemContextValues.js +20 -16
  63. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  64. package/lib/components/TreeItem/useTreeItemStyles.styles.js +100 -0
  65. package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  66. package/lib/components/TreeItemChevron.js +24 -0
  67. package/lib/components/TreeItemChevron.js.map +1 -0
  68. package/lib/components/TreeItemLayout/TreeItemLayout.js +8 -8
  69. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  70. package/lib/components/TreeItemLayout/TreeItemLayout.types.js +1 -2
  71. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  72. package/lib/components/TreeItemLayout/index.js +1 -2
  73. package/lib/components/TreeItemLayout/index.js.map +1 -1
  74. package/lib/components/TreeItemLayout/renderTreeItemLayout.js +8 -21
  75. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  76. package/lib/components/TreeItemLayout/useTreeItemLayout.js +107 -40
  77. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  78. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +237 -0
  79. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  80. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +9 -9
  81. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  82. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -2
  83. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  84. package/lib/components/TreeItemPersonaLayout/index.js +1 -2
  85. package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
  86. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +10 -27
  87. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  88. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +42 -48
  89. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  90. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +9 -10
  91. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  92. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +210 -0
  93. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  94. package/lib/contexts/index.js +0 -1
  95. package/lib/contexts/index.js.map +1 -1
  96. package/lib/contexts/treeContext.js +13 -15
  97. package/lib/contexts/treeContext.js.map +1 -1
  98. package/lib/contexts/treeItemContext.js +16 -10
  99. package/lib/contexts/treeItemContext.js.map +1 -1
  100. package/lib/hooks/useControllableOpenItems.js +28 -0
  101. package/lib/hooks/useControllableOpenItems.js.map +1 -0
  102. package/lib/hooks/useRootTree.js +141 -0
  103. package/lib/hooks/useRootTree.js.map +1 -0
  104. package/lib/hooks/useRovingTabIndexes.js +30 -49
  105. package/lib/hooks/useRovingTabIndexes.js.map +1 -1
  106. package/lib/hooks/useSubtree.js +41 -0
  107. package/lib/hooks/useSubtree.js.map +1 -0
  108. package/lib/index.js +3 -4
  109. package/lib/index.js.map +1 -1
  110. package/lib/utils/ImmutableMap.js +41 -0
  111. package/lib/utils/ImmutableMap.js.map +1 -0
  112. package/lib/utils/ImmutableSet.js +42 -33
  113. package/lib/utils/ImmutableSet.js.map +1 -1
  114. package/lib/utils/assert.js +5 -5
  115. package/lib/utils/assert.js.map +1 -1
  116. package/lib/utils/createCheckedItems.js +18 -0
  117. package/lib/utils/createCheckedItems.js.map +1 -0
  118. package/lib/utils/createHTMLElementWalker.js +67 -0
  119. package/lib/utils/createHTMLElementWalker.js.map +1 -0
  120. package/lib/utils/createHeadlessTree.js +189 -0
  121. package/lib/utils/createHeadlessTree.js.map +1 -0
  122. package/lib/utils/createOpenItems.js +10 -0
  123. package/lib/utils/createOpenItems.js.map +1 -0
  124. package/lib/utils/flattenTree.js +54 -29
  125. package/lib/utils/flattenTree.js.map +1 -1
  126. package/lib/utils/getTreeItemValueFromElement.js +4 -0
  127. package/lib/utils/getTreeItemValueFromElement.js.map +1 -0
  128. package/lib/utils/nextTypeAheadElement.js +11 -12
  129. package/lib/utils/nextTypeAheadElement.js.map +1 -1
  130. package/lib/utils/normalizeOpenItems.js +6 -5
  131. package/lib/utils/normalizeOpenItems.js.map +1 -1
  132. package/lib/utils/tokens.js +14 -14
  133. package/lib/utils/tokens.js.map +1 -1
  134. package/lib/utils/treeItemFilter.js +2 -3
  135. package/lib/utils/treeItemFilter.js.map +1 -1
  136. package/lib-commonjs/FlatTree.js +6 -0
  137. package/lib-commonjs/FlatTree.js.map +1 -0
  138. package/lib-commonjs/Tree.js +3 -5
  139. package/lib-commonjs/Tree.js.map +1 -1
  140. package/lib-commonjs/TreeItem.js +3 -5
  141. package/lib-commonjs/TreeItem.js.map +1 -1
  142. package/lib-commonjs/TreeItemLayout.js +3 -5
  143. package/lib-commonjs/TreeItemLayout.js.map +1 -1
  144. package/lib-commonjs/TreeItemPersonaLayout.js +3 -5
  145. package/lib-commonjs/TreeItemPersonaLayout.js.map +1 -1
  146. package/lib-commonjs/components/FlatTree/FlatTree.js +21 -0
  147. package/lib-commonjs/components/FlatTree/FlatTree.js.map +1 -0
  148. package/lib-commonjs/components/FlatTree/FlatTree.types.js +4 -0
  149. package/lib-commonjs/components/FlatTree/FlatTree.types.js.map +1 -0
  150. package/lib-commonjs/components/FlatTree/index.js +12 -0
  151. package/lib-commonjs/components/FlatTree/index.js.map +1 -0
  152. package/lib-commonjs/components/FlatTree/renderFlatTree.js +10 -0
  153. package/lib-commonjs/components/FlatTree/renderFlatTree.js.map +1 -0
  154. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js +91 -0
  155. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
  156. package/lib-commonjs/components/FlatTree/useFlatTree.js +12 -0
  157. package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -0
  158. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js +10 -0
  159. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js.map +1 -0
  160. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js +82 -0
  161. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
  162. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js +36 -0
  163. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
  164. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js +122 -0
  165. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
  166. package/lib-commonjs/components/Tree/Tree.js +17 -23
  167. package/lib-commonjs/components/Tree/Tree.js.map +1 -1
  168. package/lib-commonjs/components/Tree/Tree.types.js +1 -3
  169. package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
  170. package/lib-commonjs/components/Tree/index.js +8 -10
  171. package/lib-commonjs/components/Tree/index.js.map +1 -1
  172. package/lib-commonjs/components/Tree/renderTree.js +14 -19
  173. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  174. package/lib-commonjs/components/Tree/useNestedControllableCheckedItems.js +37 -0
  175. package/lib-commonjs/components/Tree/useNestedControllableCheckedItems.js.map +1 -0
  176. package/lib-commonjs/components/Tree/useTree.js +70 -115
  177. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  178. package/lib-commonjs/components/Tree/useTreeContextValues.js +19 -26
  179. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  180. package/lib-commonjs/components/Tree/useTreeNavigation.js +60 -0
  181. package/lib-commonjs/components/Tree/useTreeNavigation.js.map +1 -0
  182. package/lib-commonjs/components/Tree/useTreeStyles.styles.js +41 -0
  183. package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -0
  184. package/lib-commonjs/components/TreeItem/TreeItem.js +17 -18
  185. package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
  186. package/lib-commonjs/components/TreeItem/TreeItem.types.js +3 -4
  187. package/lib-commonjs/components/TreeItem/TreeItem.types.js.map +1 -1
  188. package/lib-commonjs/components/TreeItem/index.js +8 -9
  189. package/lib-commonjs/components/TreeItem/index.js.map +1 -1
  190. package/lib-commonjs/components/TreeItem/renderTreeItem.js +14 -33
  191. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  192. package/lib-commonjs/components/TreeItem/useTreeItem.js +169 -250
  193. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  194. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +25 -20
  195. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  196. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +202 -0
  197. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  198. package/lib-commonjs/components/TreeItemChevron.js +33 -0
  199. package/lib-commonjs/components/TreeItemChevron.js.map +1 -0
  200. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +15 -16
  201. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  202. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js +1 -3
  203. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  204. package/lib-commonjs/components/TreeItemLayout/index.js +7 -9
  205. package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
  206. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +14 -28
  207. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  208. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +113 -52
  209. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  210. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +392 -0
  211. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  212. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +17 -18
  213. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  214. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -3
  215. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  216. package/lib-commonjs/components/TreeItemPersonaLayout/index.js +7 -9
  217. package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
  218. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +17 -35
  219. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  220. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +49 -61
  221. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  222. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +16 -15
  223. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  224. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +379 -0
  225. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  226. package/lib-commonjs/contexts/index.js +4 -6
  227. package/lib-commonjs/contexts/index.js.map +1 -1
  228. package/lib-commonjs/contexts/treeContext.js +26 -18
  229. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  230. package/lib-commonjs/contexts/treeItemContext.js +30 -13
  231. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  232. package/lib-commonjs/hooks/useControllableOpenItems.js +39 -0
  233. package/lib-commonjs/hooks/useControllableOpenItems.js.map +1 -0
  234. package/lib-commonjs/hooks/useRootTree.js +145 -0
  235. package/lib-commonjs/hooks/useRootTree.js.map +1 -0
  236. package/lib-commonjs/hooks/useRovingTabIndexes.js +36 -55
  237. package/lib-commonjs/hooks/useRovingTabIndexes.js.map +1 -1
  238. package/lib-commonjs/hooks/useSubtree.js +45 -0
  239. package/lib-commonjs/hooks/useSubtree.js.map +1 -0
  240. package/lib-commonjs/index.js +53 -181
  241. package/lib-commonjs/index.js.map +1 -1
  242. package/lib-commonjs/utils/ImmutableMap.js +49 -0
  243. package/lib-commonjs/utils/ImmutableMap.js.map +1 -0
  244. package/lib-commonjs/utils/ImmutableSet.js +47 -38
  245. package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
  246. package/lib-commonjs/utils/assert.js +11 -9
  247. package/lib-commonjs/utils/assert.js.map +1 -1
  248. package/lib-commonjs/utils/createCheckedItems.js +26 -0
  249. package/lib-commonjs/utils/createCheckedItems.js.map +1 -0
  250. package/lib-commonjs/utils/createHTMLElementWalker.js +75 -0
  251. package/lib-commonjs/utils/createHTMLElementWalker.js.map +1 -0
  252. package/lib-commonjs/utils/createHeadlessTree.js +203 -0
  253. package/lib-commonjs/utils/createHeadlessTree.js.map +1 -0
  254. package/lib-commonjs/utils/createOpenItems.js +18 -0
  255. package/lib-commonjs/utils/createOpenItems.js.map +1 -0
  256. package/lib-commonjs/utils/flattenTree.js +21 -34
  257. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  258. package/lib-commonjs/utils/getTreeItemValueFromElement.js +18 -0
  259. package/lib-commonjs/utils/getTreeItemValueFromElement.js.map +1 -0
  260. package/lib-commonjs/utils/nextTypeAheadElement.js +16 -16
  261. package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
  262. package/lib-commonjs/utils/normalizeOpenItems.js +11 -9
  263. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  264. package/lib-commonjs/utils/tokens.js +29 -20
  265. package/lib-commonjs/utils/tokens.js.map +1 -1
  266. package/lib-commonjs/utils/treeItemFilter.js +7 -7
  267. package/lib-commonjs/utils/treeItemFilter.js.map +1 -1
  268. package/package.json +26 -17
  269. package/lib/components/Tree/useTreeStyles.js.map +0 -1
  270. package/lib/components/TreeItem/useTreeItemStyles.js +0 -203
  271. package/lib/components/TreeItem/useTreeItemStyles.js.map +0 -1
  272. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -98
  273. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  274. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +0 -115
  275. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
  276. package/lib/hooks/index.js +0 -4
  277. package/lib/hooks/index.js.map +0 -1
  278. package/lib/hooks/useFlatTree.js +0 -49
  279. package/lib/hooks/useFlatTree.js.map +0 -1
  280. package/lib/hooks/useFlatTreeNavigation.js +0 -74
  281. package/lib/hooks/useFlatTreeNavigation.js.map +0 -1
  282. package/lib/hooks/useHTMLElementWalker.js +0 -80
  283. package/lib/hooks/useHTMLElementWalker.js.map +0 -1
  284. package/lib/hooks/useNestedTreeNavigation.js +0 -59
  285. package/lib/hooks/useNestedTreeNavigation.js.map +0 -1
  286. package/lib/hooks/useOpenItemsState.js +0 -22
  287. package/lib/hooks/useOpenItemsState.js.map +0 -1
  288. package/lib/utils/createUnfilteredFlatTree.js +0 -77
  289. package/lib/utils/createUnfilteredFlatTree.js.map +0 -1
  290. package/lib/utils/createVisibleFlatTree.js +0 -80
  291. package/lib/utils/createVisibleFlatTree.js.map +0 -1
  292. package/lib-commonjs/components/Tree/useTreeStyles.js +0 -27
  293. package/lib-commonjs/components/Tree/useTreeStyles.js.map +0 -1
  294. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +0 -210
  295. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +0 -1
  296. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -105
  297. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  298. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +0 -122
  299. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
  300. package/lib-commonjs/hooks/index.js +0 -10
  301. package/lib-commonjs/hooks/index.js.map +0 -1
  302. package/lib-commonjs/hooks/useFlatTree.js +0 -56
  303. package/lib-commonjs/hooks/useFlatTree.js.map +0 -1
  304. package/lib-commonjs/hooks/useFlatTreeNavigation.js +0 -81
  305. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +0 -1
  306. package/lib-commonjs/hooks/useHTMLElementWalker.js +0 -88
  307. package/lib-commonjs/hooks/useHTMLElementWalker.js.map +0 -1
  308. package/lib-commonjs/hooks/useNestedTreeNavigation.js +0 -66
  309. package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +0 -1
  310. package/lib-commonjs/hooks/useOpenItemsState.js +0 -29
  311. package/lib-commonjs/hooks/useOpenItemsState.js.map +0 -1
  312. package/lib-commonjs/utils/createUnfilteredFlatTree.js +0 -84
  313. package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +0 -1
  314. package/lib-commonjs/utils/createVisibleFlatTree.js +0 -87
  315. package/lib-commonjs/utils/createVisibleFlatTree.js.map +0 -1
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.TreeItem = void 0;
7
- const React = /*#__PURE__*/require("react");
8
- const useTreeItem_1 = /*#__PURE__*/require("./useTreeItem");
9
- const renderTreeItem_1 = /*#__PURE__*/require("./renderTreeItem");
10
- const useTreeItemStyles_1 = /*#__PURE__*/require("./useTreeItemStyles");
11
- const useTreeItemContextValues_1 = /*#__PURE__*/require("./useTreeItemContextValues");
12
- /**
13
- * TreeItem component - TODO: add more docs
14
- */
15
- exports.TreeItem = /*#__PURE__*/React.forwardRef((props, ref) => {
16
- const state = useTreeItem_1.useTreeItem_unstable(props, ref);
17
- useTreeItemStyles_1.useTreeItemStyles_unstable(state);
18
- const contextValues = useTreeItemContextValues_1.useTreeItemContextValues_unstable(state);
19
- return renderTreeItem_1.renderTreeItem_unstable(state, contextValues);
5
+ Object.defineProperty(exports, "TreeItem", {
6
+ enumerable: true,
7
+ get: ()=>TreeItem
20
8
  });
21
- exports.TreeItem.displayName = 'TreeItem';
22
- //# sourceMappingURL=TreeItem.js.map
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
+ const _useTreeItem = require("./useTreeItem");
12
+ const _renderTreeItem = require("./renderTreeItem");
13
+ const _useTreeItemStylesStyles = require("./useTreeItemStyles.styles");
14
+ const _useTreeItemContextValues = require("./useTreeItemContextValues");
15
+ const TreeItem = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
16
+ const state = (0, _useTreeItem.useTreeItem_unstable)(props, ref);
17
+ (0, _useTreeItemStylesStyles.useTreeItemStyles_unstable)(state);
18
+ const contextValues = (0, _useTreeItemContextValues.useTreeItemContextValues_unstable)(state);
19
+ return (0, _renderTreeItem.renderTreeItem_unstable)(state, contextValues);
20
+ });
21
+ TreeItem.displayName = 'TreeItem';
@@ -1 +1 @@
1
- {"version":3,"names":["React","require","useTreeItem_1","renderTreeItem_1","useTreeItemStyles_1","useTreeItemContextValues_1","exports","TreeItem","forwardRef","props","ref","state","useTreeItem_unstable","useTreeItemStyles_unstable","contextValues","useTreeItemContextValues_unstable","renderTreeItem_unstable","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,MAAAA,KAAA,gBAAAC,OAAA;AACA,MAAAC,aAAA,gBAAAD,OAAA;AACA,MAAAE,gBAAA,gBAAAF,OAAA;AACA,MAAAG,mBAAA,gBAAAH,OAAA;AAGA,MAAAI,0BAAA,gBAAAJ,OAAA;AAEA;;;AAGaK,OAAA,CAAAC,QAAQ,gBAAuCP,KAAK,CAACQ,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAI;EAC1F,MAAMC,KAAK,GAAGT,aAAA,CAAAU,oBAAoB,CAACH,KAAK,EAAEC,GAAG,CAAC;EAE9CN,mBAAA,CAAAS,0BAA0B,CAACF,KAAK,CAAC;EACjC,MAAMG,aAAa,GAAGT,0BAAA,CAAAU,iCAAiC,CAACJ,KAAK,CAAC;EAC9D,OAAOR,gBAAA,CAAAa,uBAAuB,CAACL,KAAK,EAAEG,aAAa,CAAC;AACtD,CAAC,CAAC;AAEFR,OAAA,CAAAC,QAAQ,CAACU,WAAW,GAAG,UAAU"}
1
+ {"version":3,"sources":["TreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport { useTreeItem_unstable } from './useTreeItem';\nimport { renderTreeItem_unstable } from './renderTreeItem';\nimport { useTreeItemStyles_unstable } from './useTreeItemStyles.styles';\nimport { useTreeItemContextValues_unstable } from './useTreeItemContextValues';\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 */ export const TreeItem = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useTreeItem_unstable(props, ref);\n useTreeItemStyles_unstable(state);\n const contextValues = useTreeItemContextValues_unstable(state);\n return renderTreeItem_unstable(state, contextValues);\n});\nTreeItem.displayName = 'TreeItem';\n"],"names":["TreeItem","React","forwardRef","props","ref","state","useTreeItem_unstable","useTreeItemStyles_unstable","contextValues","useTreeItemContextValues_unstable","renderTreeItem_unstable","displayName"],"mappings":";;;;+BAgBiBA;;aAAAA;;;6DAhBM;6BACc;gCACG;yCACG;0CACO;AAYvC,MAAMA,WAAW,WAAW,GAAGC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAM;IACrE,MAAMC,QAAQC,IAAAA,iCAAoB,EAACH,OAAOC;IAC1CG,IAAAA,mDAA0B,EAACF;IAC3B,MAAMG,gBAAgBC,IAAAA,2DAAiC,EAACJ;IACxD,OAAOK,IAAAA,uCAAuB,EAACL,OAAOG;AAC1C;AACAR,SAASW,WAAW,GAAG"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- const tokens_1 = /*#__PURE__*/require("../../utils/tokens");
7
- //# sourceMappingURL=TreeItem.types.js.map
5
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
6
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
@@ -1 +1 @@
1
- {"version":3,"names":["tokens_1","require"],"sources":["../src/packages/react-components/react-tree/src/components/TreeItem/TreeItem.types.ts"],"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"],"mappings":";;;;;AAGA,MAAAA,QAAA,gBAAAC,OAAA"}
1
+ {"version":3,"sources":["TreeItem.types.js"],"sourcesContent":["import * as React from 'react';\n"],"names":[],"mappings":";;;;;6DAAuB"}
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- const tslib_1 = /*#__PURE__*/require("tslib");
7
- tslib_1.__exportStar(require("./TreeItem"), exports);
8
- tslib_1.__exportStar(require("./TreeItem.types"), exports);
9
- tslib_1.__exportStar(require("./renderTreeItem"), exports);
10
- tslib_1.__exportStar(require("./useTreeItem"), exports);
11
- tslib_1.__exportStar(require("./useTreeItemStyles"), exports);
12
- //# sourceMappingURL=index.js.map
5
+ const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
+ _exportStar(require("./TreeItem"), exports);
7
+ _exportStar(require("./TreeItem.types"), exports);
8
+ _exportStar(require("./renderTreeItem"), exports);
9
+ _exportStar(require("./useTreeItem"), exports);
10
+ _exportStar(require("./useTreeItemStyles.styles"), exports);
11
+ _exportStar(require("./useTreeItemContextValues"), exports);
@@ -1 +1 @@
1
- {"version":3,"names":["tslib_1","__exportStar","require","exports"],"sources":["../src/packages/react-components/react-tree/src/components/TreeItem/index.ts"],"sourcesContent":["export * from './TreeItem';\nexport * from './TreeItem.types';\nexport * from './renderTreeItem';\nexport * from './useTreeItem';\nexport * from './useTreeItemStyles';\n"],"mappings":";;;;;;AAAAA,OAAA,CAAAC,YAAA,CAAAC,OAAA,gBAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,sBAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,sBAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,mBAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,yBAAAC,OAAA"}
1
+ {"version":3,"sources":["index.js"],"sourcesContent":["export * from './TreeItem';\nexport * from './TreeItem.types';\nexport * from './renderTreeItem';\nexport * from './useTreeItem';\nexport * from './useTreeItemStyles.styles';\nexport * from './useTreeItemContextValues';\n"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA"}
@@ -1,36 +1,17 @@
1
- "use strict";
2
-
1
+ /** @jsxRuntime classic */ /** @jsx createElement */ "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.renderTreeItem_unstable = void 0;
7
- const React = /*#__PURE__*/require("react");
8
- const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
- const contexts_1 = /*#__PURE__*/require("../../contexts");
10
- const react_button_1 = /*#__PURE__*/require("@fluentui/react-button");
11
- /**
12
- * Render the final JSX of TreeItem
13
- */
14
- const renderTreeItem_unstable = (state, contextValues) => {
15
- const {
16
- slots,
17
- slotProps
18
- } = react_utilities_1.getSlots(state);
19
- return React.createElement(contexts_1.TreeItemProvider, {
20
- value: contextValues.treeItem
21
- }, React.createElement(slots.root, {
22
- ...slotProps.root
23
- }, React.createElement(slots.content, {
24
- ...slotProps.content
25
- }, slots.expandIcon && React.createElement(slots.expandIcon, {
26
- ...slotProps.expandIcon
27
- }), slotProps.content.children, React.createElement(react_button_1.ButtonContextProvider, {
28
- value: contextValues.button
29
- }, slots.actions && React.createElement(slots.actions, {
30
- ...slotProps.actions
31
- }))), state.open && slots.subtree && React.createElement(slots.subtree, {
32
- ...slotProps.subtree
33
- })));
5
+ Object.defineProperty(exports, "renderTreeItem_unstable", {
6
+ enumerable: true,
7
+ get: ()=>renderTreeItem_unstable
8
+ });
9
+ const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
10
+ const _reactUtilities = require("@fluentui/react-utilities");
11
+ const _contexts = require("../../contexts");
12
+ const renderTreeItem_unstable = (state, contextValues)=>{
13
+ (0, _reactUtilities.assertSlots)(state);
14
+ return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeItemProvider, {
15
+ value: contextValues.treeItem
16
+ }, state.root.children));
34
17
  };
35
- exports.renderTreeItem_unstable = renderTreeItem_unstable;
36
- //# sourceMappingURL=renderTreeItem.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","require","react_utilities_1","contexts_1","react_button_1","renderTreeItem_unstable","state","contextValues","slots","slotProps","getSlots","createElement","TreeItemProvider","value","treeItem","root","content","expandIcon","children","ButtonContextProvider","button","actions","open","subtree","exports"],"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,MAAAA,KAAA,gBAAAC,OAAA;AACA,MAAAC,iBAAA,gBAAAD,OAAA;AAEA,MAAAE,UAAA,gBAAAF,OAAA;AACA,MAAAG,cAAA,gBAAAH,OAAA;AAEA;;;AAGO,MAAMI,uBAAuB,GAAGA,CAACC,KAAoB,EAAEC,aAAoC,KAAI;EACpG,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAE,GAAGP,iBAAA,CAAAQ,QAAQ,CAAgBJ,KAAK,CAAC;EAE3D,OACEN,KAAA,CAAAW,aAAA,CAACR,UAAA,CAAAS,gBAAgB;IAACC,KAAK,EAAEN,aAAa,CAACO;EAAQ,GAC7Cd,KAAA,CAAAW,aAAA,CAACH,KAAK,CAACO,IAAI;IAAA,GAAKN,SAAS,CAACM;EAAI,GAC5Bf,KAAA,CAAAW,aAAA,CAACH,KAAK,CAACQ,OAAO;IAAA,GAAKP,SAAS,CAACO;EAAO,GACjCR,KAAK,CAACS,UAAU,IAAIjB,KAAA,CAAAW,aAAA,CAACH,KAAK,CAACS,UAAU;IAAA,GAAKR,SAAS,CAACQ;EAAU,EAAI,EAClER,SAAS,CAACO,OAAO,CAACE,QAAQ,EAC3BlB,KAAA,CAAAW,aAAA,CAACP,cAAA,CAAAe,qBAAqB;IAACN,KAAK,EAAEN,aAAa,CAACa;EAAM,GAC/CZ,KAAK,CAACa,OAAO,IAAIrB,KAAA,CAAAW,aAAA,CAACH,KAAK,CAACa,OAAO;IAAA,GAAKZ,SAAS,CAACY;EAAO,EAAI,CACpC,CACV,EACff,KAAK,CAACgB,IAAI,IAAId,KAAK,CAACe,OAAO,IAAIvB,KAAA,CAAAW,aAAA,CAACH,KAAK,CAACe,OAAO;IAAA,GAAKd,SAAS,CAACc;EAAO,EAAI,CAC7D,CACI;AAEvB,CAAC;AAjBYC,OAAA,CAAAnB,uBAAuB,GAAAA,uBAAA"}
1
+ {"version":3,"sources":["renderTreeItem.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { TreeItemProvider } from '../../contexts';\n/**\n * Render the final JSX of TreeItem\n */ export const renderTreeItem_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(state.root, null, /*#__PURE__*/ createElement(TreeItemProvider, {\n value: contextValues.treeItem\n }, state.root.children));\n};\n"],"names":["renderTreeItem_unstable","state","contextValues","assertSlots","createElement","root","TreeItemProvider","value","treeItem","children"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACvD;0BACK;AAGtB,MAAMA,0BAA0B,CAACC,OAAOC,gBAAgB;IAC/DC,IAAAA,2BAAW,EAACF;IACZ,OAAO,WAAW,GAAGG,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAE,IAAI,EAAE,WAAW,GAAGD,IAAAA,8BAAa,EAACE,0BAAgB,EAAE;QAC/FC,OAAOL,cAAcM,QAAQ;IACjC,GAAGP,MAAMI,IAAI,CAACI,QAAQ;AAC1B"}
@@ -1,257 +1,176 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.useTreeItem_unstable = void 0;
7
- const React = /*#__PURE__*/require("react");
8
- const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
- const react_icons_1 = /*#__PURE__*/require("@fluentui/react-icons");
10
- const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
11
- const react_utilities_2 = /*#__PURE__*/require("@fluentui/react-utilities");
12
- const useTreeItemStyles_1 = /*#__PURE__*/require("./useTreeItemStyles");
13
- const keyboard_keys_1 = /*#__PURE__*/require("@fluentui/keyboard-keys");
14
- const react_utilities_3 = /*#__PURE__*/require("@fluentui/react-utilities");
15
- const react_portal_1 = /*#__PURE__*/require("@fluentui/react-portal");
16
- const index_1 = /*#__PURE__*/require("../../contexts/index");
17
- const tokens_1 = /*#__PURE__*/require("../../utils/tokens");
18
- /**
19
- * Create the state required to render TreeItem.
20
- *
21
- * The returned state can be modified with hooks such as useTreeItemStyles_unstable,
22
- * before being passed to renderTreeItem_unstable.
23
- *
24
- * @param props - props from this instance of TreeItem
25
- * @param ref - reference to root HTMLElement of TreeItem
26
- */
27
- const useTreeItem_unstable = (props, ref) => {
28
- const [children, subtreeChildren] = React.Children.toArray(props.children);
29
- const contextLevel = index_1.useTreeContext_unstable(ctx => ctx.level);
30
- const {
31
- content,
32
- subtree,
33
- expandIcon,
34
- leaf: isLeaf = subtreeChildren === undefined,
35
- actions,
36
- as = 'div',
37
- onClick,
38
- onKeyDown,
39
- ['aria-level']: level = contextLevel,
40
- ...rest
41
- } = props;
42
- const requestOpenChange = index_1.useTreeContext_unstable(ctx => ctx.requestOpenChange);
43
- const requestNavigation = index_1.useTreeContext_unstable(ctx => ctx.requestNavigation);
44
- const id = react_utilities_1.useId('fui-TreeItem-', props.id);
45
- const isBranch = !isLeaf;
46
- const open = index_1.useTreeContext_unstable(ctx => isBranch && ctx.openItems.has(id));
47
- const {
48
- dir,
49
- targetDocument
50
- } = react_shared_contexts_1.useFluent_unstable();
51
- const expandIconRotation = open ? 90 : dir !== 'rtl' ? 0 : 180;
52
- const actionsRef = React.useRef(null);
53
- const expandIconRef = React.useRef(null);
54
- const subtreeRef = React.useRef(null);
55
- const handleArrowRight = event => {
56
- if (!open && isBranch) {
57
- return requestOpenChange({
58
- event,
59
- open: true,
60
- type: tokens_1.treeDataTypes.arrowRight,
61
- target: event.currentTarget
62
- });
63
- }
64
- if (open && isBranch) {
65
- return requestNavigation({
66
- event,
67
- type: tokens_1.treeDataTypes.arrowRight,
68
- target: event.currentTarget
69
- });
70
- }
71
- };
72
- const handleArrowLeft = event => {
73
- if (open && isBranch) {
74
- return requestOpenChange({
75
- event,
76
- open: false,
77
- type: tokens_1.treeDataTypes.arrowLeft,
78
- target: event.currentTarget
79
- });
80
- }
81
- if (!open && level > 1) {
82
- return requestNavigation({
83
- event,
84
- target: event.currentTarget,
85
- type: tokens_1.treeDataTypes.arrowLeft
86
- });
87
- }
88
- };
89
- const handleEnter = event => {
90
- requestOpenChange({
91
- event,
92
- open: isLeaf ? open : !open,
93
- type: tokens_1.treeDataTypes.enter,
94
- target: event.currentTarget
5
+ Object.defineProperty(exports, "useTreeItem_unstable", {
6
+ enumerable: true,
7
+ get: ()=>useTreeItem_unstable
8
+ });
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
+ const _reactUtilities = require("@fluentui/react-utilities");
12
+ const _reactPortal = require("@fluentui/react-portal");
13
+ const _index = require("../../contexts/index");
14
+ const _getTreeItemValueFromElement = require("../../utils/getTreeItemValueFromElement");
15
+ const _keyboardKeys = require("@fluentui/keyboard-keys");
16
+ const _tokens = require("../../utils/tokens");
17
+ function useTreeItem_unstable(props, ref) {
18
+ var _props_value;
19
+ const contextLevel = (0, _index.useTreeContext_unstable)((ctx)=>ctx.level);
20
+ // note, if the value is not externally provided,
21
+ // then selection and expansion will not work properly
22
+ const value = (0, _reactUtilities.useId)('fuiTreeItemValue-', (_props_value = props.value) === null || _props_value === void 0 ? void 0 : _props_value.toString());
23
+ const { onClick , onKeyDown , as ='div' , itemType ='leaf' , 'aria-level': level = contextLevel , ...rest } = props;
24
+ const requestTreeResponse = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestTreeResponse);
25
+ const [isActionsVisible, setActionsVisible] = _react.useState(false);
26
+ const [isAsideVisible, setAsideVisible] = _react.useState(true);
27
+ const handleActionsRef = (actionsElement)=>{
28
+ setAsideVisible(actionsElement === null);
29
+ };
30
+ const actionsRef = _react.useRef(null);
31
+ const expandIconRef = _react.useRef(null);
32
+ const layoutRef = _react.useRef(null);
33
+ const subtreeRef = _react.useRef(null);
34
+ const selectionRef = _react.useRef(null);
35
+ const open = (0, _index.useTreeContext_unstable)((ctx)=>ctx.openItems.has(value));
36
+ const selectionMode = (0, _index.useTreeContext_unstable)((ctx)=>ctx.selectionMode);
37
+ var _ctx_checkedItems_get;
38
+ const checked = (0, _index.useTreeContext_unstable)((ctx)=>(_ctx_checkedItems_get = ctx.checkedItems.get(value)) !== null && _ctx_checkedItems_get !== void 0 ? _ctx_checkedItems_get : false);
39
+ const handleClick = (0, _reactUtilities.useEventCallback)((event)=>{
40
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
41
+ if (event.isDefaultPrevented()) {
42
+ return;
43
+ }
44
+ const isEventFromActions = actionsRef.current && (0, _reactPortal.elementContains)(actionsRef.current, event.target);
45
+ if (isEventFromActions) {
46
+ return;
47
+ }
48
+ const isEventFromSubtree = subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target);
49
+ if (isEventFromSubtree) {
50
+ return;
51
+ }
52
+ const isEventFromSelection = selectionRef.current && (0, _reactPortal.elementContains)(selectionRef.current, event.target);
53
+ if (isEventFromSelection) {
54
+ return;
55
+ }
56
+ const isFromExpandIcon = expandIconRef.current && (0, _reactPortal.elementContains)(expandIconRef.current, event.target);
57
+ requestTreeResponse({
58
+ event,
59
+ value,
60
+ itemType,
61
+ target: event.currentTarget,
62
+ type: isFromExpandIcon ? _tokens.treeDataTypes.ExpandIconClick : _tokens.treeDataTypes.Click
63
+ });
95
64
  });
96
- };
97
- const handleClick = react_utilities_2.useEventCallback(event => {
98
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
99
- const isEventFromActions = actionsRef.current && react_portal_1.elementContains(actionsRef.current, event.target);
100
- if (isEventFromActions) {
101
- return;
102
- }
103
- const isEventFromSubtree = subtreeRef.current && react_portal_1.elementContains(subtreeRef.current, event.target);
104
- if (isEventFromSubtree) {
105
- return;
106
- }
107
- const isFromExpandIcon = expandIconRef.current && react_portal_1.elementContains(expandIconRef.current, event.target);
108
- requestOpenChange({
109
- event,
110
- open: isLeaf ? open : !open,
111
- type: isFromExpandIcon ? tokens_1.treeDataTypes.expandIconClick : tokens_1.treeDataTypes.click,
112
- target: event.currentTarget
65
+ const handleKeyDown = (0, _reactUtilities.useEventCallback)((event)=>{
66
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
67
+ // Ignore keyboard events that do not originate from the current tree item.
68
+ if (event.isDefaultPrevented() || event.currentTarget !== event.target) {
69
+ return;
70
+ }
71
+ switch(event.key){
72
+ case _keyboardKeys.Space:
73
+ if (selectionMode !== 'none') {
74
+ var _selectionRef_current;
75
+ (_selectionRef_current = selectionRef.current) === null || _selectionRef_current === void 0 ? void 0 : _selectionRef_current.click();
76
+ event.preventDefault();
77
+ }
78
+ return;
79
+ case _tokens.treeDataTypes.End:
80
+ case _tokens.treeDataTypes.Home:
81
+ case _tokens.treeDataTypes.Enter:
82
+ case _tokens.treeDataTypes.ArrowUp:
83
+ case _tokens.treeDataTypes.ArrowDown:
84
+ case _tokens.treeDataTypes.ArrowLeft:
85
+ case _tokens.treeDataTypes.ArrowRight:
86
+ return requestTreeResponse({
87
+ event,
88
+ target: event.currentTarget,
89
+ value,
90
+ itemType,
91
+ type: event.key
92
+ });
93
+ }
94
+ const isTypeAheadCharacter = event.key.length === 1 && event.key.match(/\w/) && !event.altKey && !event.ctrlKey && !event.metaKey;
95
+ if (isTypeAheadCharacter) {
96
+ requestTreeResponse({
97
+ event,
98
+ target: event.currentTarget,
99
+ value,
100
+ itemType,
101
+ type: _tokens.treeDataTypes.TypeAhead
102
+ });
103
+ }
113
104
  });
114
- requestNavigation({
115
- event,
116
- target: event.currentTarget,
117
- type: tokens_1.treeDataTypes.click
105
+ const handleActionsVisible = (0, _reactUtilities.useEventCallback)((event)=>{
106
+ const isTargetFromSubtree = Boolean(subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target));
107
+ if (!isTargetFromSubtree) {
108
+ setActionsVisible(true);
109
+ }
118
110
  });
119
- });
120
- const handleKeyDown = react_utilities_2.useEventCallback(event => {
121
- onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
122
- if (event.currentTarget !== event.target) {
123
- return;
124
- }
125
- if (event.isDefaultPrevented()) {
126
- return;
127
- }
128
- switch (event.key) {
129
- case keyboard_keys_1.Enter:
130
- return handleEnter(event);
131
- case keyboard_keys_1.ArrowRight:
132
- return handleArrowRight(event);
133
- case keyboard_keys_1.ArrowLeft:
134
- return handleArrowLeft(event);
135
- case keyboard_keys_1.End:
136
- return requestNavigation({
137
- event,
138
- type: tokens_1.treeDataTypes.end,
139
- target: event.currentTarget
140
- });
141
- case keyboard_keys_1.Home:
142
- return requestNavigation({
143
- event,
144
- type: tokens_1.treeDataTypes.home,
145
- target: event.currentTarget
146
- });
147
- case keyboard_keys_1.ArrowUp:
148
- return requestNavigation({
149
- event,
150
- type: tokens_1.treeDataTypes.arrowUp,
151
- target: event.currentTarget
152
- });
153
- case keyboard_keys_1.ArrowDown:
154
- return requestNavigation({
155
- event,
156
- type: tokens_1.treeDataTypes.arrowDown,
157
- target: event.currentTarget
111
+ const handleActionsInvisible = (0, _reactUtilities.useEventCallback)((event)=>{
112
+ const isTargetFromSubtree = Boolean(subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target));
113
+ const isRelatedTargetFromActions = Boolean(actionsRef.current && (0, _reactPortal.elementContains)(actionsRef.current, event.relatedTarget));
114
+ if (isRelatedTargetFromActions) {
115
+ return setActionsVisible(true);
116
+ }
117
+ if (!isTargetFromSubtree) {
118
+ return setActionsVisible(false);
119
+ }
120
+ });
121
+ const handleChange = (0, _reactUtilities.useEventCallback)((event)=>{
122
+ if (event.isDefaultPrevented()) {
123
+ return;
124
+ }
125
+ const isEventFromSubtree = subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target);
126
+ if (isEventFromSubtree) {
127
+ return;
128
+ }
129
+ requestTreeResponse({
130
+ event,
131
+ value,
132
+ itemType,
133
+ type: 'Change',
134
+ target: event.currentTarget,
135
+ checked: checked === 'mixed' ? true : !checked
158
136
  });
159
- }
160
- const isTypeAheadCharacter = event.key.length === 1 && event.key.match(/\w/) && !event.altKey && !event.ctrlKey && !event.metaKey;
161
- if (isTypeAheadCharacter) {
162
- return requestNavigation({
163
- event,
164
- target: event.currentTarget,
165
- type: tokens_1.treeDataTypes.typeAhead
166
- });
167
- }
168
- });
169
- const [isActionsVisible, setActionsVisible] = React.useState(false);
170
- const showActions = react_utilities_2.useEventCallback(event => {
171
- const isEventFromSubtree = subtreeRef.current && react_portal_1.elementContains(subtreeRef.current, event.target);
172
- if (!isEventFromSubtree) {
173
- setActionsVisible(true);
174
- }
175
- });
176
- const hideActions = react_utilities_2.useEventCallback(event => {
177
- const isEventFromSubtree = subtreeRef.current && react_portal_1.elementContains(subtreeRef.current, event.target);
178
- if (!isEventFromSubtree) {
179
- setActionsVisible(false);
180
- }
181
- });
182
- // Listens to focusout event on the document to ensure treeitem actions visibility on portal scenarios
183
- // TODO: find a better way to ensure this behavior
184
- React.useEffect(() => {
185
- if (actionsRef.current) {
186
- const handleFocusOut = event => {
187
- setActionsVisible(react_portal_1.elementContains(actionsRef.current, event.relatedTarget));
188
- };
189
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('focusout', handleFocusOut, {
190
- passive: true
191
- });
192
- return () => {
193
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('focusout', handleFocusOut);
194
- };
195
- }
196
- }, [targetDocument]);
197
- return {
198
- isLeaf,
199
- open,
200
- level,
201
- buttonSize: 'small',
202
- isActionsVisible: actions ? isActionsVisible : false,
203
- components: {
204
- content: 'div',
205
- root: 'div',
206
- expandIcon: 'span',
207
- actions: 'span',
208
- subtree: 'span'
209
- },
210
- subtree: react_utilities_1.resolveShorthand(subtree, {
211
- required: Boolean(subtreeChildren),
212
- defaultProps: {
213
- children: subtreeChildren,
214
- ref: react_utilities_3.useMergedRefs(subtreeRef, react_utilities_1.isResolvedShorthand(subtree) ? subtree.ref : undefined)
215
- }
216
- }),
217
- content: react_utilities_1.resolveShorthand(content, {
218
- required: true,
219
- defaultProps: {
220
- children
221
- }
222
- }),
223
- root: react_utilities_1.getNativeElementProps(as, {
224
- tabIndex: -1,
225
- ...rest,
226
- id,
227
- ref,
228
- children: null,
229
- 'aria-level': level,
230
- 'aria-expanded': isBranch ? open : undefined,
231
- role: 'treeitem',
232
- onClick: handleClick,
233
- onKeyDown: handleKeyDown,
234
- onMouseOver: actions ? showActions : undefined,
235
- onFocus: actions ? showActions : undefined,
236
- onMouseOut: actions ? hideActions : undefined,
237
- onBlur: actions ? hideActions : undefined
238
- }),
239
- expandIcon: react_utilities_1.resolveShorthand(expandIcon, {
240
- required: isBranch,
241
- defaultProps: {
242
- children: React.createElement(react_icons_1.ChevronRight12Regular, {
243
- style: useTreeItemStyles_1.expandIconInlineStyles[expandIconRotation]
244
- }),
245
- 'aria-hidden': true,
246
- ref: react_utilities_3.useMergedRefs(react_utilities_1.isResolvedShorthand(expandIcon) ? expandIcon.ref : undefined, expandIconRef)
247
- }
248
- }),
249
- actions: react_utilities_1.resolveShorthand(actions, {
250
- defaultProps: {
251
- ref: react_utilities_3.useMergedRefs(react_utilities_1.isResolvedShorthand(actions) ? actions.ref : undefined, actionsRef)
252
- }
253
- })
254
- };
255
- };
256
- exports.useTreeItem_unstable = useTreeItem_unstable;
257
- //# sourceMappingURL=useTreeItem.js.map
137
+ });
138
+ const isBranch = itemType === 'branch';
139
+ return {
140
+ value,
141
+ open,
142
+ checked,
143
+ subtreeRef,
144
+ layoutRef,
145
+ selectionRef,
146
+ expandIconRef,
147
+ actionsRef: (0, _reactUtilities.useMergedRefs)(handleActionsRef, actionsRef),
148
+ itemType,
149
+ level,
150
+ components: {
151
+ root: 'div'
152
+ },
153
+ isAsideVisible,
154
+ isActionsVisible,
155
+ root: _reactUtilities.slot.always((0, _reactUtilities.getNativeElementProps)(as, {
156
+ tabIndex: -1,
157
+ ...rest,
158
+ ref,
159
+ role: 'treeitem',
160
+ 'aria-level': level,
161
+ [_getTreeItemValueFromElement.dataTreeItemValueAttrName]: value,
162
+ 'aria-checked': selectionMode === 'multiselect' ? checked === 'mixed' ? undefined : checked !== null && checked !== void 0 ? checked : false : undefined,
163
+ 'aria-selected': selectionMode === 'single' ? checked : undefined,
164
+ 'aria-expanded': isBranch ? open : undefined,
165
+ onClick: handleClick,
166
+ onKeyDown: handleKeyDown,
167
+ onMouseOver: handleActionsVisible,
168
+ onFocus: handleActionsVisible,
169
+ onMouseOut: handleActionsInvisible,
170
+ onBlur: handleActionsInvisible,
171
+ onChange: handleChange
172
+ }), {
173
+ elementType: 'div'
174
+ })
175
+ };
176
+ }