@fluentui/react-tree 9.0.0-beta.11 → 9.0.0-beta.13

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 (190) hide show
  1. package/CHANGELOG.json +195 -1
  2. package/CHANGELOG.md +46 -2
  3. package/dist/index.d.ts +189 -100
  4. package/lib/TreeItemAside.js +2 -0
  5. package/lib/TreeItemAside.js.map +1 -0
  6. package/lib/components/Tree/Tree.js +1 -1
  7. package/lib/components/Tree/Tree.js.map +1 -1
  8. package/lib/components/Tree/Tree.types.js.map +1 -1
  9. package/lib/components/Tree/index.js +1 -1
  10. package/lib/components/Tree/index.js.map +1 -1
  11. package/lib/components/Tree/renderTree.js +1 -1
  12. package/lib/components/Tree/renderTree.js.map +1 -1
  13. package/lib/components/Tree/useRootTree.js +160 -0
  14. package/lib/components/Tree/useRootTree.js.map +1 -0
  15. package/lib/components/Tree/useSubtree.js +40 -0
  16. package/lib/components/Tree/useSubtree.js.map +1 -0
  17. package/lib/components/Tree/useTree.js +2 -95
  18. package/lib/components/Tree/useTree.js.map +1 -1
  19. package/lib/components/Tree/useTreeContextValues.js +2 -4
  20. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  21. package/lib/components/Tree/useTreeStyles.styles.js +30 -0
  22. package/lib/components/Tree/useTreeStyles.styles.js.map +1 -0
  23. package/lib/components/TreeItem/TreeItem.js +2 -2
  24. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  25. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  26. package/lib/components/TreeItem/index.js +1 -1
  27. package/lib/components/TreeItem/index.js.map +1 -1
  28. package/lib/components/TreeItem/renderTreeItem.js +2 -5
  29. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  30. package/lib/components/TreeItem/useTreeItem.js +65 -175
  31. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  32. package/lib/components/TreeItem/useTreeItemContextValues.js +25 -11
  33. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  34. package/lib/components/TreeItem/useTreeItemStyles.styles.js +102 -0
  35. package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  36. package/lib/components/TreeItemAside/TreeItemAside.js +15 -0
  37. package/lib/components/TreeItemAside/TreeItemAside.js.map +1 -0
  38. package/lib/components/TreeItemAside/TreeItemAside.types.js +2 -0
  39. package/lib/components/TreeItemAside/TreeItemAside.types.js.map +1 -0
  40. package/lib/components/TreeItemAside/index.js +6 -0
  41. package/lib/components/TreeItemAside/index.js.map +1 -0
  42. package/lib/components/TreeItemAside/renderTreeItemAside.js +19 -0
  43. package/lib/components/TreeItemAside/renderTreeItemAside.js.map +1 -0
  44. package/lib/components/TreeItemAside/useTreeItemAside.js +35 -0
  45. package/lib/components/TreeItemAside/useTreeItemAside.js.map +1 -0
  46. package/lib/components/TreeItemAside/useTreeItemAsideStyles.styles.js +47 -0
  47. package/lib/components/TreeItemAside/useTreeItemAsideStyles.styles.js.map +1 -0
  48. package/lib/components/TreeItemChevron.js +27 -0
  49. package/lib/components/TreeItemChevron.js.map +1 -0
  50. package/lib/components/TreeItemLayout/TreeItemLayout.js +1 -1
  51. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  52. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  53. package/lib/components/TreeItemLayout/index.js +1 -1
  54. package/lib/components/TreeItemLayout/index.js.map +1 -1
  55. package/lib/components/TreeItemLayout/renderTreeItemLayout.js +1 -4
  56. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  57. package/lib/components/TreeItemLayout/useTreeItemLayout.js +16 -11
  58. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  59. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +138 -0
  60. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  61. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +1 -1
  62. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  63. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  64. package/lib/components/TreeItemPersonaLayout/index.js +1 -1
  65. package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
  66. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +2 -5
  67. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  68. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +16 -20
  69. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  70. package/lib/components/TreeItemPersonaLayout/{useTreeItemPersonaLayoutStyles.js → useTreeItemPersonaLayoutStyles.styles.js} +51 -30
  71. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  72. package/lib/contexts/treeContext.js +1 -2
  73. package/lib/contexts/treeContext.js.map +1 -1
  74. package/lib/contexts/treeItemContext.js +12 -4
  75. package/lib/contexts/treeItemContext.js.map +1 -1
  76. package/lib/hooks/useFlatTree.js +9 -9
  77. package/lib/hooks/useFlatTree.js.map +1 -1
  78. package/lib/hooks/useFlatTreeNavigation.js +15 -13
  79. package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
  80. package/lib/hooks/useNestedTreeNavigation.js +9 -9
  81. package/lib/hooks/useNestedTreeNavigation.js.map +1 -1
  82. package/lib/hooks/useOpenItemsState.js +3 -4
  83. package/lib/hooks/useOpenItemsState.js.map +1 -1
  84. package/lib/index.js +1 -0
  85. package/lib/index.js.map +1 -1
  86. package/lib/utils/createFlatTreeItems.js +32 -21
  87. package/lib/utils/createFlatTreeItems.js.map +1 -1
  88. package/lib/utils/flattenTree.js +4 -29
  89. package/lib/utils/flattenTree.js.map +1 -1
  90. package/lib/utils/tokens.js +11 -11
  91. package/lib/utils/tokens.js.map +1 -1
  92. package/lib-commonjs/TreeItemAside.js +9 -0
  93. package/lib-commonjs/TreeItemAside.js.map +1 -0
  94. package/lib-commonjs/components/Tree/Tree.js +2 -2
  95. package/lib-commonjs/components/Tree/Tree.js.map +1 -1
  96. package/lib-commonjs/components/Tree/index.js +1 -1
  97. package/lib-commonjs/components/Tree/index.js.map +1 -1
  98. package/lib-commonjs/components/Tree/renderTree.js +1 -1
  99. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  100. package/lib-commonjs/components/Tree/useRootTree.js +151 -0
  101. package/lib-commonjs/components/Tree/useRootTree.js.map +1 -0
  102. package/lib-commonjs/components/Tree/useSubtree.js +41 -0
  103. package/lib-commonjs/components/Tree/useSubtree.js.map +1 -0
  104. package/lib-commonjs/components/Tree/useTree.js +4 -89
  105. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  106. package/lib-commonjs/components/Tree/useTreeContextValues.js +2 -3
  107. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  108. package/lib-commonjs/components/Tree/{useTreeStyles.js → useTreeStyles.styles.js} +21 -4
  109. package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -0
  110. package/lib-commonjs/components/TreeItem/TreeItem.js +2 -2
  111. package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
  112. package/lib-commonjs/components/TreeItem/index.js +1 -1
  113. package/lib-commonjs/components/TreeItem/index.js.map +1 -1
  114. package/lib-commonjs/components/TreeItem/renderTreeItem.js +2 -5
  115. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  116. package/lib-commonjs/components/TreeItem/useTreeItem.js +60 -165
  117. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  118. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +16 -15
  119. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  120. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +208 -0
  121. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  122. package/lib-commonjs/components/TreeItemAside/TreeItemAside.js +21 -0
  123. package/lib-commonjs/components/TreeItemAside/TreeItemAside.js.map +1 -0
  124. package/lib-commonjs/components/TreeItemAside/TreeItemAside.types.js +7 -0
  125. package/lib-commonjs/components/TreeItemAside/TreeItemAside.types.js.map +1 -0
  126. package/lib-commonjs/components/TreeItemAside/index.js +13 -0
  127. package/lib-commonjs/components/TreeItemAside/index.js.map +1 -0
  128. package/lib-commonjs/components/TreeItemAside/renderTreeItemAside.js +22 -0
  129. package/lib-commonjs/components/TreeItemAside/renderTreeItemAside.js.map +1 -0
  130. package/lib-commonjs/components/TreeItemAside/useTreeItemAside.js +33 -0
  131. package/lib-commonjs/components/TreeItemAside/useTreeItemAside.js.map +1 -0
  132. package/lib-commonjs/components/TreeItemAside/useTreeItemAsideStyles.styles.js +92 -0
  133. package/lib-commonjs/components/TreeItemAside/useTreeItemAsideStyles.styles.js.map +1 -0
  134. package/lib-commonjs/components/TreeItemChevron.js +35 -0
  135. package/lib-commonjs/components/TreeItemChevron.js.map +1 -0
  136. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +2 -2
  137. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  138. package/lib-commonjs/components/TreeItemLayout/index.js +1 -1
  139. package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
  140. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +1 -2
  141. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  142. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +14 -9
  143. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  144. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +223 -0
  145. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  146. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +2 -2
  147. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  148. package/lib-commonjs/components/TreeItemPersonaLayout/index.js +1 -1
  149. package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
  150. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +2 -3
  151. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  152. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +14 -14
  153. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  154. package/lib-commonjs/components/TreeItemPersonaLayout/{useTreeItemPersonaLayoutStyles.js → useTreeItemPersonaLayoutStyles.styles.js} +91 -45
  155. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  156. package/lib-commonjs/contexts/treeContext.js +1 -2
  157. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  158. package/lib-commonjs/contexts/treeItemContext.js +12 -4
  159. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  160. package/lib-commonjs/hooks/useFlatTree.js +9 -9
  161. package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
  162. package/lib-commonjs/hooks/useFlatTreeNavigation.js +15 -13
  163. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
  164. package/lib-commonjs/hooks/useNestedTreeNavigation.js +9 -9
  165. package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +1 -1
  166. package/lib-commonjs/hooks/useOpenItemsState.js +3 -6
  167. package/lib-commonjs/hooks/useOpenItemsState.js.map +1 -1
  168. package/lib-commonjs/index.js +6 -0
  169. package/lib-commonjs/index.js.map +1 -1
  170. package/lib-commonjs/utils/createFlatTreeItems.js +33 -25
  171. package/lib-commonjs/utils/createFlatTreeItems.js.map +1 -1
  172. package/lib-commonjs/utils/flattenTree.js +8 -37
  173. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  174. package/lib-commonjs/utils/tokens.js +10 -10
  175. package/lib-commonjs/utils/tokens.js.map +1 -1
  176. package/package.json +15 -14
  177. package/.swcrc +0 -30
  178. package/lib/components/Tree/useTreeStyles.js +0 -20
  179. package/lib/components/Tree/useTreeStyles.js.map +0 -1
  180. package/lib/components/TreeItem/useTreeItemStyles.js +0 -203
  181. package/lib/components/TreeItem/useTreeItemStyles.js.map +0 -1
  182. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -98
  183. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  184. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
  185. package/lib-commonjs/components/Tree/useTreeStyles.js.map +0 -1
  186. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +0 -375
  187. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +0 -1
  188. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -143
  189. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  190. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
@@ -8,100 +8,15 @@ Object.defineProperty(exports, "useTree_unstable", {
8
8
  });
9
9
  const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
10
  const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
- const _reactUtilities = require("@fluentui/react-utilities");
12
11
  const _contexts = require("../../contexts");
13
- const _hooks = require("../../hooks");
14
- const _tokens = require("../../utils/tokens");
12
+ const _useSubtree = require("./useSubtree");
13
+ const _useRootTree = require("./useRootTree");
15
14
  const useTree_unstable = (props, ref)=>{
16
15
  const isSubtree = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.level > 0);
17
16
  // as isSubtree is static, this doesn't break rule of hooks
18
17
  // and if this becomes an issue later on, this can be easily converted
19
18
  // eslint-disable-next-line react-hooks/rules-of-hooks
20
- return isSubtree ? useSubtree(props, ref) : useRootTree(props, ref);
21
- };
22
- /**
23
- * Create the state required to render a sub-level Tree.
24
- *
25
- * @param props - props from this instance of Tree
26
- * @param ref - reference to root HTMLElement of Tree
27
- */ function useSubtree(props, ref) {
28
- const contextAppearance = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.appearance);
29
- const contextSize = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.size);
30
- const { appearance =contextAppearance !== null && contextAppearance !== void 0 ? contextAppearance : 'subtle' , size =contextSize !== null && contextSize !== void 0 ? contextSize : 'medium' } = props;
31
- const parentLevel = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.level);
32
- const openItems = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.openItems);
33
- const requestOpenChange = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.requestOpenChange);
34
- const requestNavigation = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.requestNavigation);
35
- return {
36
- components: {
37
- root: 'div'
38
- },
39
- appearance,
40
- size,
41
- level: parentLevel + 1,
42
- root: (0, _reactUtilities.getNativeElementProps)('div', {
43
- ref,
44
- role: 'group',
45
- ...props
46
- }),
47
- openItems,
48
- requestOpenChange,
49
- requestNavigation
50
- };
51
- }
52
- /**
53
- * Create the state required to render the root level Tree.
54
- *
55
- * @param props - props from this instance of Tree
56
- * @param ref - reference to root HTMLElement of Tree
57
- */ function useRootTree(props, ref) {
58
- warnIfNoProperPropsRootTree(props);
59
- const { appearance ='subtle' , size ='medium' } = props;
60
- const [openItems, updateOpenItems] = (0, _hooks.useOpenItemsState)(props);
61
- const [navigate, navigationRef] = (0, _hooks.useNestedTreeNavigation)();
62
- const requestOpenChange = (0, _reactUtilities.useEventCallback)((data)=>{
63
- var _props_onOpenChange;
64
- (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, data.event, data);
65
- if (data.event.isDefaultPrevented()) {
66
- return;
67
- }
68
- return updateOpenItems(data);
69
- });
70
- const requestNavigation = (0, _reactUtilities.useEventCallback)((data)=>{
71
- var _props_onNavigation_unstable;
72
- (_props_onNavigation_unstable = props.onNavigation_unstable) === null || _props_onNavigation_unstable === void 0 ? void 0 : _props_onNavigation_unstable.call(props, data.event, data);
73
- if (data.event.isDefaultPrevented()) {
74
- return;
75
- }
76
- navigate(data);
77
- if (data.type === _tokens.treeDataTypes.arrowDown || data.type === _tokens.treeDataTypes.arrowUp) {
78
- data.event.preventDefault();
79
- }
80
- });
81
- return {
82
- components: {
83
- root: 'div'
84
- },
85
- appearance,
86
- size,
87
- level: 1,
88
- openItems,
89
- requestOpenChange,
90
- requestNavigation,
91
- root: (0, _reactUtilities.getNativeElementProps)('div', {
92
- ref: (0, _reactUtilities.useMergedRefs)(navigationRef, ref),
93
- role: 'tree',
94
- ...props
95
- })
96
- };
97
- }
98
- function warnIfNoProperPropsRootTree(props) {
99
- if (process.env.NODE_ENV === 'development') {
100
- if (!props['aria-label'] && !props['aria-labelledby']) {
101
- // eslint-disable-next-line no-console
102
- console.warn('Tree must have either a `aria-label` or `aria-labelledby` property defined');
103
- }
104
- }
105
- } //# sourceMappingURL=useTree.js.map
19
+ return isSubtree ? (0, _useSubtree.useSubtree)(props, ref) : (0, _useRootTree.useRootTree)(props, ref);
20
+ }; //# sourceMappingURL=useTree.js.map
106
21
 
107
22
  //# sourceMappingURL=useTree.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/Tree/useTree.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { useTreeContext_unstable } from '../../contexts';\nimport { useNestedTreeNavigation, useOpenItemsState } from '../../hooks';\nimport { treeDataTypes } from '../../utils/tokens';\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, ref) => {\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 * 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, ref) {\n const contextAppearance = useTreeContext_unstable(ctx => ctx.appearance);\n const contextSize = useTreeContext_unstable(ctx => ctx.size);\n const {\n appearance = contextAppearance !== null && contextAppearance !== void 0 ? contextAppearance : 'subtle',\n size = contextSize !== null && contextSize !== void 0 ? contextSize : 'medium'\n } = props;\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 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 * 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, ref) {\n warnIfNoProperPropsRootTree(props);\n const {\n appearance = 'subtle',\n size = 'medium'\n } = props;\n const [openItems, updateOpenItems] = useOpenItemsState(props);\n const [navigate, navigationRef] = useNestedTreeNavigation();\n const requestOpenChange = useEventCallback(data => {\n var _props_onOpenChange;\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, data.event, data);\n if (data.event.isDefaultPrevented()) {\n return;\n }\n return updateOpenItems(data);\n });\n const requestNavigation = useEventCallback(data => {\n var _props_onNavigation_unstable;\n (_props_onNavigation_unstable = props.onNavigation_unstable) === null || _props_onNavigation_unstable === void 0 ? void 0 : _props_onNavigation_unstable.call(props, 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 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}\nfunction warnIfNoProperPropsRootTree(props) {\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//# sourceMappingURL=useTree.js.map"],"names":["useTree_unstable","props","ref","isSubtree","useTreeContext_unstable","ctx","level","useSubtree","useRootTree","contextAppearance","appearance","contextSize","size","parentLevel","openItems","requestOpenChange","requestNavigation","components","root","getNativeElementProps","role","warnIfNoProperPropsRootTree","updateOpenItems","useOpenItemsState","navigate","navigationRef","useNestedTreeNavigation","useEventCallback","data","_props_onOpenChange","onOpenChange","call","event","isDefaultPrevented","_props_onNavigation_unstable","onNavigation_unstable","type","treeDataTypes","arrowDown","arrowUp","preventDefault","useMergedRefs","process","env","NODE_ENV","console","warn"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../lib/components/Tree/useTree.js"],"sourcesContent":["import * as React from 'react';\nimport { useTreeContext_unstable } from '../../contexts';\nimport { useSubtree } from './useSubtree';\nimport { useRootTree } from './useRootTree';\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, ref) => {\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//# sourceMappingURL=useTree.js.map"],"names":["useTree_unstable","props","ref","isSubtree","useTreeContext_unstable","ctx","level","useSubtree","useRootTree"],"mappings":";;;;+BAaaA;;aAAAA;;;6DAbU;0BACiB;4BACb;6BACC;AAUrB,MAAMA,mBAAmB,CAACC,OAAOC,MAAQ;IAC9C,MAAMC,YAAYC,IAAAA,iCAAuB,EAACC,CAAAA,MAAOA,IAAIC,KAAK,GAAG;IAC7D,2DAA2D;IAC3D,sEAAsE;IACtE,sDAAsD;IACtD,OAAOH,YAAYI,IAAAA,sBAAU,EAACN,OAAOC,OAAOM,IAAAA,wBAAW,EAACP,OAAOC,IAAI;AACrE,GACA,mCAAmC"}
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "useTreeContextValues_unstable", {
7
7
  get: ()=>useTreeContextValues_unstable
8
8
  });
9
9
  function useTreeContextValues_unstable(state) {
10
- const { openItems , level , appearance , size , requestOpenChange , requestNavigation } = state;
10
+ const { openItems , level , appearance , size , requestTreeResponse } = state;
11
11
  /**
12
12
  * This context is created with "@fluentui/react-context-selector",
13
13
  * there is no sense to memoize it
@@ -16,8 +16,7 @@ function useTreeContextValues_unstable(state) {
16
16
  size,
17
17
  level,
18
18
  openItems,
19
- requestOpenChange,
20
- requestNavigation
19
+ requestTreeResponse
21
20
  };
22
21
  return {
23
22
  tree
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/Tree/useTreeContextValues.js"],"sourcesContent":["export function useTreeContextValues_unstable(state) {\n const {\n openItems,\n level,\n appearance,\n size,\n requestOpenChange,\n requestNavigation\n } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */\n const tree = {\n appearance,\n size,\n level,\n openItems,\n requestOpenChange,\n requestNavigation\n };\n return {\n tree\n };\n}\n//# sourceMappingURL=useTreeContextValues.js.map"],"names":["useTreeContextValues_unstable","state","openItems","level","appearance","size","requestOpenChange","requestNavigation","tree"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,8BAA8BC,KAAK,EAAE;IACnD,MAAM,EACJC,UAAS,EACTC,MAAK,EACLC,WAAU,EACVC,KAAI,EACJC,kBAAiB,EACjBC,kBAAiB,EAClB,GAAGN;IACJ;;;EAGA,GACA,MAAMO,OAAO;QACXJ;QACAC;QACAF;QACAD;QACAI;QACAC;IACF;IACA,OAAO;QACLC;IACF;AACF,EACA,gDAAgD"}
1
+ {"version":3,"sources":["../../../lib/components/Tree/useTreeContextValues.js"],"sourcesContent":["export function useTreeContextValues_unstable(state) {\n const {\n openItems,\n level,\n appearance,\n size,\n requestTreeResponse\n } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */\n const tree = {\n appearance,\n size,\n level,\n openItems,\n requestTreeResponse\n };\n return {\n tree\n };\n}\n//# sourceMappingURL=useTreeContextValues.js.map"],"names":["useTreeContextValues_unstable","state","openItems","level","appearance","size","requestTreeResponse","tree"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,8BAA8BC,KAAK,EAAE;IACnD,MAAM,EACJC,UAAS,EACTC,MAAK,EACLC,WAAU,EACVC,KAAI,EACJC,oBAAmB,EACpB,GAAGL;IACJ;;;EAGA,GACA,MAAMM,OAAO;QACXH;QACAC;QACAF;QACAD;QACAI;IACF;IACA,OAAO;QACLC;IACF;AACF,EACA,gDAAgD"}
@@ -21,18 +21,35 @@ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
21
21
  mc9l5x: "f22iagw",
22
22
  Beiy3e4: "f1vx9l62",
23
23
  Belr9w4: "f1j0q4x9"
24
+ },
25
+ subtree: {
26
+ Bh6795r: "fqerorx",
27
+ Bnnss6s: "f1neuvcm",
28
+ xawz: "f1s4axba",
29
+ Ijaq50: "f1na4k6z",
30
+ Br312pm: "fwt6ga",
31
+ nk6f5a: "fi45nfw",
32
+ Bw0ie65: "f10ort2y"
24
33
  }
25
34
  }, {
26
35
  d: [
27
36
  ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}",
28
37
  ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}",
29
- ".f1j0q4x9{row-gap:var(--spacingVerticalXXS);}"
38
+ ".f1j0q4x9{row-gap:var(--spacingVerticalXXS);}",
39
+ ".fqerorx{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}",
40
+ ".f1neuvcm{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}",
41
+ ".f1s4axba{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}",
42
+ ".f1na4k6z{grid-row-start:subtree;}",
43
+ ".fwt6ga{grid-column-start:subtree;}",
44
+ ".fi45nfw{grid-row-end:subtree;}",
45
+ ".f10ort2y{grid-column-end:subtree;}"
30
46
  ]
31
47
  });
32
48
  const useTreeStyles_unstable = (state)=>{
33
49
  const styles = useStyles();
34
- state.root.className = (0, _react.mergeClasses)(treeClassNames.root, styles.root, state.root.className);
50
+ const isSubtree = state.level > 0;
51
+ state.root.className = (0, _react.mergeClasses)(treeClassNames.root, styles.root, isSubtree && styles.subtree, state.root.className);
35
52
  return state;
36
- }; //# sourceMappingURL=useTreeStyles.js.map
53
+ }; //# sourceMappingURL=useTreeStyles.styles.js.map
37
54
 
38
- //# sourceMappingURL=useTreeStyles.js.map
55
+ //# sourceMappingURL=useTreeStyles.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/components/Tree/useTreeStyles.styles.js"],"sourcesContent":["import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const treeClassNames = {\n root: 'fui-Tree'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1vx9l62\",\n Belr9w4: \"f1j0q4x9\"\n },\n subtree: {\n Bh6795r: \"fqerorx\",\n Bnnss6s: \"f1neuvcm\",\n xawz: \"f1s4axba\",\n Ijaq50: \"f1na4k6z\",\n Br312pm: \"fwt6ga\",\n nk6f5a: \"fi45nfw\",\n Bw0ie65: \"f10ort2y\"\n }\n}, {\n 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);}\", \".fqerorx{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}\", \".f1neuvcm{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}\", \".f1s4axba{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}\", \".f1na4k6z{grid-row-start:subtree;}\", \".fwt6ga{grid-column-start:subtree;}\", \".fi45nfw{grid-row-end:subtree;}\", \".f10ort2y{grid-column-end:subtree;}\"]\n});\nexport const useTreeStyles_unstable = state => {\n const styles = useStyles();\n const isSubtree = state.level > 0;\n state.root.className = mergeClasses(treeClassNames.root, styles.root, isSubtree && styles.subtree, state.root.className);\n return state;\n};\n//# sourceMappingURL=useTreeStyles.styles.js.map"],"names":["treeClassNames","useTreeStyles_unstable","root","useStyles","__styles","mc9l5x","Beiy3e4","Belr9w4","subtree","Bh6795r","Bnnss6s","xawz","Ijaq50","Br312pm","nk6f5a","Bw0ie65","d","state","styles","isSubtree","level","className","mergeClasses"],"mappings":";;;;;;;;;;;IAEaA,cAAc,MAAdA;IAqBAC,sBAAsB,MAAtBA;;uBAvBsC;AAE5C,MAAMD,iBAAiB;IAC5BE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,SAAS;QACTC,SAAS;IACX;IACAC,SAAS;QACPC,SAAS;QACTC,SAAS;QACTC,MAAM;QACNC,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAwF;QAA6F;QAAiD;QAAqF;QAAuE;QAAoF;QAAsC;QAAuC;QAAmC;KAAsC;AAClnB;AACO,MAAMf,yBAAyBgB,CAAAA,QAAS;IAC7C,MAAMC,SAASf;IACf,MAAMgB,YAAYF,MAAMG,KAAK,GAAG;IAChCH,MAAMf,IAAI,CAACmB,SAAS,GAAGC,IAAAA,mBAAY,EAACtB,eAAeE,IAAI,EAAEgB,OAAOhB,IAAI,EAAEiB,aAAaD,OAAOV,OAAO,EAAES,MAAMf,IAAI,CAACmB,SAAS;IACvH,OAAOJ;AACT,GACA,gDAAgD"}
@@ -10,11 +10,11 @@ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildc
10
10
  const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
11
  const _useTreeItem = require("./useTreeItem");
12
12
  const _renderTreeItem = require("./renderTreeItem");
13
- const _useTreeItemStyles = require("./useTreeItemStyles");
13
+ const _useTreeItemStylesStyles = require("./useTreeItemStyles.styles");
14
14
  const _useTreeItemContextValues = require("./useTreeItemContextValues");
15
15
  const TreeItem = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
16
16
  const state = (0, _useTreeItem.useTreeItem_unstable)(props, ref);
17
- (0, _useTreeItemStyles.useTreeItemStyles_unstable)(state);
17
+ (0, _useTreeItemStylesStyles.useTreeItemStyles_unstable)(state);
18
18
  const contextValues = (0, _useTreeItemContextValues.useTreeItemContextValues_unstable)(state);
19
19
  return (0, _renderTreeItem.renderTreeItem_unstable)(state, contextValues);
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/TreeItem/TreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport { useTreeItem_unstable } from './useTreeItem';\nimport { renderTreeItem_unstable } from './renderTreeItem';\nimport { useTreeItemStyles_unstable } from './useTreeItemStyles';\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 nsted child subtree, an expand/collapse control is displayed,\n * allowing the user to show or hide the children.\n */\nexport 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//# sourceMappingURL=TreeItem.js.map"],"names":["TreeItem","React","forwardRef","props","ref","state","useTreeItem_unstable","useTreeItemStyles_unstable","contextValues","useTreeItemContextValues_unstable","renderTreeItem_unstable","displayName"],"mappings":";;;;+BAiBaA;;aAAAA;;;6DAjBU;6BACc;gCACG;mCACG;0CACO;AAa3C,MAAMA,WAAW,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACpE,MAAMC,QAAQC,IAAAA,iCAAoB,EAACH,OAAOC;IAC1CG,IAAAA,6CAA0B,EAACF;IAC3B,MAAMG,gBAAgBC,IAAAA,2DAAiC,EAACJ;IACxD,OAAOK,IAAAA,uCAAuB,EAACL,OAAOG;AACxC;AACAR,SAASW,WAAW,GAAG,YACvB,oCAAoC"}
1
+ {"version":3,"sources":["../../../lib/components/TreeItem/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 */\nexport 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//# sourceMappingURL=TreeItem.js.map"],"names":["TreeItem","React","forwardRef","props","ref","state","useTreeItem_unstable","useTreeItemStyles_unstable","contextValues","useTreeItemContextValues_unstable","renderTreeItem_unstable","displayName"],"mappings":";;;;+BAiBaA;;aAAAA;;;6DAjBU;6BACc;gCACG;yCACG;0CACO;AAa3C,MAAMA,WAAW,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACpE,MAAMC,QAAQC,IAAAA,iCAAoB,EAACH,OAAOC;IAC1CG,IAAAA,mDAA0B,EAACF;IAC3B,MAAMG,gBAAgBC,IAAAA,2DAAiC,EAACJ;IACxD,OAAOK,IAAAA,uCAAuB,EAACL,OAAOG;AACxC;AACAR,SAASW,WAAW,GAAG,YACvB,oCAAoC"}
@@ -7,7 +7,7 @@ _exportStar(require("./TreeItem"), exports);
7
7
  _exportStar(require("./TreeItem.types"), exports);
8
8
  _exportStar(require("./renderTreeItem"), exports);
9
9
  _exportStar(require("./useTreeItem"), exports);
10
- _exportStar(require("./useTreeItemStyles"), exports);
10
+ _exportStar(require("./useTreeItemStyles.styles"), exports);
11
11
  //# sourceMappingURL=index.js.map
12
12
 
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/TreeItem/index.js"],"sourcesContent":["export * from './TreeItem';\nexport * from './TreeItem.types';\nexport * from './renderTreeItem';\nexport * from './useTreeItem';\nexport * from './useTreeItemStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
1
+ {"version":3,"sources":["../../../lib/components/TreeItem/index.js"],"sourcesContent":["export * from './TreeItem';\nexport * from './TreeItem.types';\nexport * from './renderTreeItem';\nexport * from './useTreeItem';\nexport * from './useTreeItemStyles.styles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
@@ -9,14 +9,11 @@ Object.defineProperty(exports, "renderTreeItem_unstable", {
9
9
  const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
10
10
  const _reactUtilities = require("@fluentui/react-utilities");
11
11
  const _contexts = require("../../contexts");
12
- const _reactButton = require("@fluentui/react-button");
13
12
  const renderTreeItem_unstable = (state, contextValues)=>{
14
13
  const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
15
- return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeItemProvider, {
14
+ return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeItemProvider, {
16
15
  value: contextValues.treeItem
17
- }, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.content, slotProps.content, slots.expandIcon && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.expandIcon, slotProps.expandIcon), slotProps.content.children, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactButton.ButtonContextProvider, {
18
- value: contextValues.button
19
- }, slots.actions && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.actions, slotProps.actions))), state.open && slots.subtree && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.subtree, slotProps.subtree)));
16
+ }, slotProps.root.children));
20
17
  }; //# sourceMappingURL=renderTreeItem.js.map
21
18
 
22
19
  //# sourceMappingURL=renderTreeItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/TreeItem/renderTreeItem.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { TreeItemProvider } from '../../contexts';\nimport { ButtonContextProvider } from '@fluentui/react-button';\n/**\n * Render the final JSX of TreeItem\n */\nexport const renderTreeItem_unstable = (state, contextValues) => {\n const {\n slots,\n slotProps\n } = getSlotsNext(state);\n return /*#__PURE__*/createElement(TreeItemProvider, {\n value: contextValues.treeItem\n }, /*#__PURE__*/createElement(slots.root, slotProps.root, /*#__PURE__*/createElement(slots.content, slotProps.content, slots.expandIcon && /*#__PURE__*/createElement(slots.expandIcon, slotProps.expandIcon), slotProps.content.children, /*#__PURE__*/createElement(ButtonContextProvider, {\n value: contextValues.button\n }, slots.actions && /*#__PURE__*/createElement(slots.actions, slotProps.actions))), state.open && slots.subtree && /*#__PURE__*/createElement(slots.subtree, slotProps.subtree)));\n};\n//# sourceMappingURL=renderTreeItem.js.map"],"names":["renderTreeItem_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","TreeItemProvider","value","treeItem","root","content","expandIcon","children","ButtonContextProvider","button","actions","open","subtree"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAOrCA;;aAAAA;;iCAPqE;gCACrD;0BACI;6BACK;AAI/B,MAAMA,0BAA0B,CAACC,OAAOC,gBAAkB;IAC/D,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,4BAAY,EAACJ;IACjB,OAAO,WAAW,GAAEK,IAAAA,8BAAa,EAACC,0BAAgB,EAAE;QAClDC,OAAON,cAAcO,QAAQ;IAC/B,GAAG,WAAW,GAAEH,IAAAA,8BAAa,EAACH,MAAMO,IAAI,EAAEN,UAAUM,IAAI,EAAE,WAAW,GAAEJ,IAAAA,8BAAa,EAACH,MAAMQ,OAAO,EAAEP,UAAUO,OAAO,EAAER,MAAMS,UAAU,IAAI,WAAW,GAAEN,IAAAA,8BAAa,EAACH,MAAMS,UAAU,EAAER,UAAUQ,UAAU,GAAGR,UAAUO,OAAO,CAACE,QAAQ,EAAE,WAAW,GAAEP,IAAAA,8BAAa,EAACQ,kCAAqB,EAAE;QAC3RN,OAAON,cAAca,MAAM;IAC7B,GAAGZ,MAAMa,OAAO,IAAI,WAAW,GAAEV,IAAAA,8BAAa,EAACH,MAAMa,OAAO,EAAEZ,UAAUY,OAAO,KAAKf,MAAMgB,IAAI,IAAId,MAAMe,OAAO,IAAI,WAAW,GAAEZ,IAAAA,8BAAa,EAACH,MAAMe,OAAO,EAAEd,UAAUc,OAAO;AAChL,GACA,0CAA0C"}
1
+ {"version":3,"sources":["../../../lib/components/TreeItem/renderTreeItem.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { TreeItemProvider } from '../../contexts';\n/**\n * Render the final JSX of TreeItem\n */\nexport const renderTreeItem_unstable = (state, contextValues) => {\n const {\n slots,\n slotProps\n } = getSlotsNext(state);\n return /*#__PURE__*/createElement(slots.root, slotProps.root, /*#__PURE__*/createElement(TreeItemProvider, {\n value: contextValues.treeItem\n }, slotProps.root.children));\n};\n//# sourceMappingURL=renderTreeItem.js.map"],"names":["renderTreeItem_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","root","TreeItemProvider","value","treeItem","children"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAMrCA;;aAAAA;;iCANqE;gCACrD;0BACI;AAI1B,MAAMA,0BAA0B,CAACC,OAAOC,gBAAkB;IAC/D,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,4BAAY,EAACJ;IACjB,OAAO,WAAW,GAAEK,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAEH,UAAUG,IAAI,EAAE,WAAW,GAAED,IAAAA,8BAAa,EAACE,0BAAgB,EAAE;QACzGC,OAAOP,cAAcQ,QAAQ;IAC/B,GAAGN,UAAUG,IAAI,CAACI,QAAQ;AAC5B,GACA,0CAA0C"}
@@ -9,71 +9,29 @@ Object.defineProperty(exports, "useTreeItem_unstable", {
9
9
  const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
10
  const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
11
  const _reactUtilities = require("@fluentui/react-utilities");
12
- const _reactIcons = require("@fluentui/react-icons");
13
- const _reactSharedContexts = require("@fluentui/react-shared-contexts");
14
- const _useTreeItemStyles = require("./useTreeItemStyles");
15
- const _keyboardKeys = require("@fluentui/keyboard-keys");
16
12
  const _reactPortal = require("@fluentui/react-portal");
17
13
  const _index = require("../../contexts/index");
18
14
  const _tokens = require("../../utils/tokens");
19
- const useTreeItem_unstable = (props, ref)=>{
20
- const [children, subtreeChildren] = _react.Children.toArray(props.children);
15
+ function useTreeItem_unstable(props, ref) {
21
16
  const contextLevel = (0, _index.useTreeContext_unstable)((ctx)=>ctx.level);
22
- const { content , subtree , expandIcon , leaf: isLeaf = subtreeChildren === undefined , actions , as ='div' , onClick , onKeyDown , ['aria-level']: level = contextLevel , ...rest } = props;
23
- const requestOpenChange = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestOpenChange);
24
- const requestNavigation = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestNavigation);
25
17
  const id = (0, _reactUtilities.useId)('fui-TreeItem-', props.id);
26
- const isBranch = !isLeaf;
27
- const open = (0, _index.useTreeContext_unstable)((ctx)=>isBranch && ctx.openItems.has(id));
28
- const { dir , targetDocument } = (0, _reactSharedContexts.useFluent_unstable)();
29
- const expandIconRotation = open ? 90 : dir !== 'rtl' ? 0 : 180;
18
+ const { onClick , onKeyDown , as ='div' , value =id , itemType ='leaf' , 'aria-level': level = contextLevel , ...rest } = props;
19
+ const requestTreeResponse = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestTreeResponse);
20
+ const [isActionsVisible, setActionsVisible] = _react.useState(false);
21
+ const [isAsideVisible, setAsideVisible] = _react.useState(true);
22
+ const handleActionsRef = (actions)=>{
23
+ setAsideVisible(actions === null);
24
+ };
25
+ const open = (0, _index.useTreeContext_unstable)((ctx)=>ctx.openItems.has(value));
30
26
  const actionsRef = _react.useRef(null);
31
27
  const expandIconRef = _react.useRef(null);
28
+ const layoutRef = _react.useRef(null);
32
29
  const subtreeRef = _react.useRef(null);
33
- const handleArrowRight = (event)=>{
34
- if (!open && isBranch) {
35
- return requestOpenChange({
36
- event,
37
- open: true,
38
- type: _tokens.treeDataTypes.arrowRight,
39
- target: event.currentTarget
40
- });
41
- }
42
- if (open && isBranch) {
43
- return requestNavigation({
44
- event,
45
- type: _tokens.treeDataTypes.arrowRight,
46
- target: event.currentTarget
47
- });
48
- }
49
- };
50
- const handleArrowLeft = (event)=>{
51
- if (open && isBranch) {
52
- return requestOpenChange({
53
- event,
54
- open: false,
55
- type: _tokens.treeDataTypes.arrowLeft,
56
- target: event.currentTarget
57
- });
58
- }
59
- if (!open && level > 1) {
60
- return requestNavigation({
61
- event,
62
- target: event.currentTarget,
63
- type: _tokens.treeDataTypes.arrowLeft
64
- });
65
- }
66
- };
67
- const handleEnter = (event)=>{
68
- requestOpenChange({
69
- event,
70
- open: isLeaf ? open : !open,
71
- type: _tokens.treeDataTypes.enter,
72
- target: event.currentTarget
73
- });
74
- };
75
30
  const handleClick = (0, _reactUtilities.useEventCallback)((event)=>{
76
31
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
32
+ if (event.isDefaultPrevented()) {
33
+ return;
34
+ }
77
35
  const isEventFromActions = actionsRef.current && (0, _reactPortal.elementContains)(actionsRef.current, event.target);
78
36
  if (isEventFromActions) {
79
37
  return;
@@ -83,155 +41,92 @@ const useTreeItem_unstable = (props, ref)=>{
83
41
  return;
84
42
  }
85
43
  const isFromExpandIcon = expandIconRef.current && (0, _reactPortal.elementContains)(expandIconRef.current, event.target);
86
- requestOpenChange({
44
+ requestTreeResponse({
87
45
  event,
88
- open: isLeaf ? open : !open,
89
- type: isFromExpandIcon ? _tokens.treeDataTypes.expandIconClick : _tokens.treeDataTypes.click,
90
- target: event.currentTarget
91
- });
92
- requestNavigation({
93
- event,
94
- target: event.currentTarget,
95
- type: _tokens.treeDataTypes.click
46
+ itemType,
47
+ value,
48
+ type: isFromExpandIcon ? _tokens.treeDataTypes.ExpandIconClick : _tokens.treeDataTypes.Click
96
49
  });
97
50
  });
98
51
  const handleKeyDown = (0, _reactUtilities.useEventCallback)((event)=>{
99
52
  onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
100
- if (event.currentTarget !== event.target) {
53
+ if (event.isDefaultPrevented()) {
101
54
  return;
102
55
  }
103
- if (event.isDefaultPrevented()) {
56
+ if (event.currentTarget !== event.target) {
104
57
  return;
105
58
  }
106
59
  switch(event.key){
107
- case _keyboardKeys.Enter:
108
- return handleEnter(event);
109
- case _keyboardKeys.ArrowRight:
110
- return handleArrowRight(event);
111
- case _keyboardKeys.ArrowLeft:
112
- return handleArrowLeft(event);
113
- case _keyboardKeys.End:
114
- return requestNavigation({
115
- event,
116
- type: _tokens.treeDataTypes.end,
117
- target: event.currentTarget
118
- });
119
- case _keyboardKeys.Home:
120
- return requestNavigation({
60
+ case _tokens.treeDataTypes.End:
61
+ case _tokens.treeDataTypes.Home:
62
+ case _tokens.treeDataTypes.Enter:
63
+ case _tokens.treeDataTypes.ArrowUp:
64
+ case _tokens.treeDataTypes.ArrowDown:
65
+ case _tokens.treeDataTypes.ArrowLeft:
66
+ case _tokens.treeDataTypes.ArrowRight:
67
+ return requestTreeResponse({
121
68
  event,
122
- type: _tokens.treeDataTypes.home,
123
- target: event.currentTarget
124
- });
125
- case _keyboardKeys.ArrowUp:
126
- return requestNavigation({
127
- event,
128
- type: _tokens.treeDataTypes.arrowUp,
129
- target: event.currentTarget
130
- });
131
- case _keyboardKeys.ArrowDown:
132
- return requestNavigation({
133
- event,
134
- type: _tokens.treeDataTypes.arrowDown,
135
- target: event.currentTarget
69
+ itemType,
70
+ value,
71
+ type: event.key
136
72
  });
137
73
  }
138
74
  const isTypeAheadCharacter = event.key.length === 1 && event.key.match(/\w/) && !event.altKey && !event.ctrlKey && !event.metaKey;
139
75
  if (isTypeAheadCharacter) {
140
- return requestNavigation({
76
+ requestTreeResponse({
141
77
  event,
142
- target: event.currentTarget,
143
- type: _tokens.treeDataTypes.typeAhead
78
+ itemType,
79
+ value,
80
+ type: _tokens.treeDataTypes.TypeAhead
144
81
  });
145
82
  }
146
83
  });
147
- const [isActionsVisible, setActionsVisible] = _react.useState(false);
148
- const showActions = (0, _reactUtilities.useEventCallback)((event)=>{
149
- const isEventFromSubtree = subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target);
150
- if (!isEventFromSubtree) {
84
+ const handleActionsVisible = (0, _reactUtilities.useEventCallback)((event)=>{
85
+ const isTargetFromSubtree = Boolean(subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target));
86
+ if (!isTargetFromSubtree) {
151
87
  setActionsVisible(true);
152
88
  }
153
89
  });
154
- const hideActions = (0, _reactUtilities.useEventCallback)((event)=>{
155
- const isEventFromSubtree = subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target);
156
- if (!isEventFromSubtree) {
157
- setActionsVisible(false);
90
+ const handleActionsInvisible = (0, _reactUtilities.useEventCallback)((event)=>{
91
+ const isTargetFromSubtree = Boolean(subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target));
92
+ const isRelatedTargetFromActions = Boolean(actionsRef.current && (0, _reactPortal.elementContains)(actionsRef.current, event.relatedTarget));
93
+ if (isRelatedTargetFromActions) {
94
+ return setActionsVisible(true);
158
95
  }
159
- });
160
- // Listens to focusout event on the document to ensure treeitem actions visibility on portal scenarios
161
- // TODO: find a better way to ensure this behavior
162
- _react.useEffect(()=>{
163
- if (actionsRef.current) {
164
- const handleFocusOut = (event)=>{
165
- setActionsVisible((0, _reactPortal.elementContains)(actionsRef.current, event.relatedTarget));
166
- };
167
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('focusout', handleFocusOut, {
168
- passive: true
169
- });
170
- return ()=>{
171
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('focusout', handleFocusOut);
172
- };
96
+ if (!isTargetFromSubtree) {
97
+ return setActionsVisible(false);
173
98
  }
174
- }, [
175
- targetDocument
176
- ]);
99
+ });
177
100
  return {
178
- isLeaf,
101
+ value,
179
102
  open,
103
+ subtreeRef,
104
+ actionsRef: (0, _reactUtilities.useMergedRefs)(actionsRef, handleActionsRef),
105
+ expandIconRef,
106
+ layoutRef,
107
+ itemType,
108
+ isActionsVisible,
109
+ isAsideVisible,
180
110
  level,
181
- buttonSize: 'small',
182
- isActionsVisible: actions ? isActionsVisible : false,
183
111
  components: {
184
- content: 'div',
185
- root: 'div',
186
- expandIcon: 'span',
187
- actions: 'span',
188
- subtree: 'span'
112
+ root: 'div'
189
113
  },
190
- subtree: (0, _reactUtilities.resolveShorthand)(subtree, {
191
- required: Boolean(subtreeChildren),
192
- defaultProps: {
193
- children: subtreeChildren,
194
- ref: (0, _reactUtilities.useMergedRefs)(subtreeRef, (0, _reactUtilities.isResolvedShorthand)(subtree) ? subtree.ref : undefined)
195
- }
196
- }),
197
- content: (0, _reactUtilities.resolveShorthand)(content, {
198
- required: true,
199
- defaultProps: {
200
- children
201
- }
202
- }),
203
114
  root: (0, _reactUtilities.getNativeElementProps)(as, {
204
115
  tabIndex: -1,
205
116
  ...rest,
206
117
  id,
207
118
  ref,
208
- children: null,
209
119
  'aria-level': level,
210
- 'aria-expanded': isBranch ? open : undefined,
120
+ 'aria-expanded': itemType === 'branch' ? open : undefined,
211
121
  role: 'treeitem',
212
122
  onClick: handleClick,
213
123
  onKeyDown: handleKeyDown,
214
- onMouseOver: actions ? showActions : undefined,
215
- onFocus: actions ? showActions : undefined,
216
- onMouseOut: actions ? hideActions : undefined,
217
- onBlur: actions ? hideActions : undefined
218
- }),
219
- expandIcon: (0, _reactUtilities.resolveShorthand)(expandIcon, {
220
- required: isBranch,
221
- defaultProps: {
222
- children: /*#__PURE__*/ _react.createElement(_reactIcons.ChevronRight12Regular, {
223
- style: _useTreeItemStyles.expandIconInlineStyles[expandIconRotation]
224
- }),
225
- 'aria-hidden': true,
226
- ref: (0, _reactUtilities.useMergedRefs)((0, _reactUtilities.isResolvedShorthand)(expandIcon) ? expandIcon.ref : undefined, expandIconRef)
227
- }
228
- }),
229
- actions: (0, _reactUtilities.resolveShorthand)(actions, {
230
- defaultProps: {
231
- ref: (0, _reactUtilities.useMergedRefs)((0, _reactUtilities.isResolvedShorthand)(actions) ? actions.ref : undefined, actionsRef)
232
- }
124
+ onMouseOver: handleActionsVisible,
125
+ onFocus: handleActionsVisible,
126
+ onMouseOut: handleActionsInvisible,
127
+ onBlur: handleActionsInvisible
233
128
  })
234
129
  };
235
- }; //# sourceMappingURL=useTreeItem.js.map
130
+ } //# sourceMappingURL=useTreeItem.js.map
236
131
 
237
132
  //# sourceMappingURL=useTreeItem.js.map