@fluentui/react-tree 9.0.0-beta.2 → 9.0.0-beta.20
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.
- package/CHANGELOG.json +1028 -1
- package/CHANGELOG.md +281 -2
- package/dist/index.d.ts +244 -99
- package/lib/Tree.js +0 -1
- package/lib/Tree.js.map +1 -1
- package/lib/TreeItem.js +0 -1
- package/lib/TreeItem.js.map +1 -1
- package/lib/TreeItemAside.js +1 -0
- package/lib/TreeItemAside.js.map +1 -0
- package/lib/TreeItemLayout.js +0 -1
- package/lib/TreeItemLayout.js.map +1 -1
- package/lib/TreeItemPersonaLayout.js +0 -1
- package/lib/TreeItemPersonaLayout.js.map +1 -1
- package/lib/components/Tree/Tree.js +6 -8
- package/lib/components/Tree/Tree.js.map +1 -1
- package/lib/components/Tree/Tree.types.js +1 -2
- package/lib/components/Tree/Tree.types.js.map +1 -1
- package/lib/components/Tree/index.js +1 -2
- package/lib/components/Tree/index.js.map +1 -1
- package/lib/components/Tree/renderTree.js +7 -13
- package/lib/components/Tree/renderTree.js.map +1 -1
- package/lib/components/Tree/useRootTree.js +145 -0
- package/lib/components/Tree/useRootTree.js.map +1 -0
- package/lib/components/Tree/useSubtree.js +35 -0
- package/lib/components/Tree/useSubtree.js.map +1 -0
- package/lib/components/Tree/useTree.js +9 -103
- package/lib/components/Tree/useTree.js.map +1 -1
- package/lib/components/Tree/useTreeContextValues.js +12 -22
- package/lib/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib/components/Tree/useTreeStyles.styles.js +30 -0
- package/lib/components/Tree/useTreeStyles.styles.js.map +1 -0
- package/lib/components/TreeItem/TreeItem.js +16 -9
- package/lib/components/TreeItem/TreeItem.js.map +1 -1
- package/lib/components/TreeItem/TreeItem.types.js +1 -2
- package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
- package/lib/components/TreeItem/index.js +1 -2
- package/lib/components/TreeItem/index.js.map +1 -1
- package/lib/components/TreeItem/renderTreeItem.js +7 -25
- package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItem.js +114 -234
- package/lib/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemContextValues.js +18 -16
- package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemStyles.styles.js +102 -0
- package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
- package/lib/components/TreeItemAside/TreeItemAside.js +13 -0
- package/lib/components/TreeItemAside/TreeItemAside.js.map +1 -0
- package/lib/components/TreeItemAside/TreeItemAside.types.js +1 -0
- package/lib/components/TreeItemAside/TreeItemAside.types.js.map +1 -0
- package/lib/components/TreeItemAside/index.js +5 -0
- package/lib/components/TreeItemAside/index.js.map +1 -0
- package/lib/components/TreeItemAside/renderTreeItemAside.js +14 -0
- package/lib/components/TreeItemAside/renderTreeItemAside.js.map +1 -0
- package/lib/components/TreeItemAside/useTreeItemAside.js +30 -0
- package/lib/components/TreeItemAside/useTreeItemAside.js.map +1 -0
- package/lib/components/TreeItemAside/useTreeItemAsideStyles.styles.js +47 -0
- package/lib/components/TreeItemAside/useTreeItemAsideStyles.styles.js.map +1 -0
- package/lib/components/TreeItemChevron.js +24 -0
- package/lib/components/TreeItemChevron.js.map +1 -0
- package/lib/components/TreeItemLayout/TreeItemLayout.js +8 -8
- package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/TreeItemLayout.types.js +1 -2
- package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
- package/lib/components/TreeItemLayout/index.js +1 -2
- package/lib/components/TreeItemLayout/index.js.map +1 -1
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js +5 -21
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayout.js +38 -39
- package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +138 -0
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +9 -9
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -2
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/index.js +1 -2
- package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +7 -27
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +37 -48
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +9 -10
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/{useTreeItemPersonaLayoutStyles.js → useTreeItemPersonaLayoutStyles.styles.js} +51 -30
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
- package/lib/contexts/index.js +0 -1
- package/lib/contexts/index.js.map +1 -1
- package/lib/contexts/treeContext.js +9 -14
- package/lib/contexts/treeContext.js.map +1 -1
- package/lib/contexts/treeItemContext.js +13 -10
- package/lib/contexts/treeItemContext.js.map +1 -1
- package/lib/hooks/index.js +0 -1
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useFlatTree.js +71 -34
- package/lib/hooks/useFlatTree.js.map +1 -1
- package/lib/hooks/useFlatTreeNavigation.js +62 -62
- package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
- package/lib/hooks/useHTMLElementWalker.js +78 -76
- package/lib/hooks/useHTMLElementWalker.js.map +1 -1
- package/lib/hooks/useNestedTreeNavigation.js +49 -49
- package/lib/hooks/useNestedTreeNavigation.js.map +1 -1
- package/lib/hooks/useOpenItemsState.js +18 -15
- package/lib/hooks/useOpenItemsState.js.map +1 -1
- package/lib/hooks/useRovingTabIndexes.js +46 -45
- package/lib/hooks/useRovingTabIndexes.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/utils/ImmutableSet.js +27 -30
- package/lib/utils/ImmutableSet.js.map +1 -1
- package/lib/utils/assert.js +5 -5
- package/lib/utils/assert.js.map +1 -1
- package/lib/utils/createFlatTreeItems.js +120 -0
- package/lib/utils/createFlatTreeItems.js.map +1 -0
- package/lib/utils/flattenTree.js +58 -28
- package/lib/utils/flattenTree.js.map +1 -1
- package/lib/utils/nextTypeAheadElement.js +11 -12
- package/lib/utils/nextTypeAheadElement.js.map +1 -1
- package/lib/utils/normalizeOpenItems.js +6 -5
- package/lib/utils/normalizeOpenItems.js.map +1 -1
- package/lib/utils/tokens.js +13 -14
- package/lib/utils/tokens.js.map +1 -1
- package/lib/utils/treeItemFilter.js +2 -3
- package/lib/utils/treeItemFilter.js.map +1 -1
- package/lib-commonjs/Tree.js +3 -5
- package/lib-commonjs/Tree.js.map +1 -1
- package/lib-commonjs/TreeItem.js +3 -5
- package/lib-commonjs/TreeItem.js.map +1 -1
- package/lib-commonjs/TreeItemAside.js +6 -0
- package/lib-commonjs/TreeItemAside.js.map +1 -0
- package/lib-commonjs/TreeItemLayout.js +3 -5
- package/lib-commonjs/TreeItemLayout.js.map +1 -1
- package/lib-commonjs/TreeItemPersonaLayout.js +3 -5
- package/lib-commonjs/TreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/Tree/Tree.js +17 -23
- package/lib-commonjs/components/Tree/Tree.js.map +1 -1
- package/lib-commonjs/components/Tree/Tree.types.js +3 -3
- package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
- package/lib-commonjs/components/Tree/index.js +8 -10
- package/lib-commonjs/components/Tree/index.js.map +1 -1
- package/lib-commonjs/components/Tree/renderTree.js +14 -19
- package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useRootTree.js +149 -0
- package/lib-commonjs/components/Tree/useRootTree.js.map +1 -0
- package/lib-commonjs/components/Tree/useSubtree.js +39 -0
- package/lib-commonjs/components/Tree/useSubtree.js.map +1 -0
- package/lib-commonjs/components/Tree/useTree.js +16 -116
- package/lib-commonjs/components/Tree/useTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useTreeContextValues.js +17 -26
- package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js +53 -0
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItem/TreeItem.js +17 -18
- package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/TreeItem.types.js +3 -4
- package/lib-commonjs/components/TreeItem/TreeItem.types.js.map +1 -1
- package/lib-commonjs/components/TreeItem/index.js +7 -9
- package/lib-commonjs/components/TreeItem/index.js.map +1 -1
- package/lib-commonjs/components/TreeItem/renderTreeItem.js +14 -33
- package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItem.js +124 -251
- package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +23 -20
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +206 -0
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/TreeItemAside.js +19 -0
- package/lib-commonjs/components/TreeItemAside/TreeItemAside.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/TreeItemAside.types.js +4 -0
- package/lib-commonjs/components/TreeItemAside/TreeItemAside.types.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/index.js +10 -0
- package/lib-commonjs/components/TreeItemAside/index.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/renderTreeItemAside.js +20 -0
- package/lib-commonjs/components/TreeItemAside/renderTreeItemAside.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/useTreeItemAside.js +31 -0
- package/lib-commonjs/components/TreeItemAside/useTreeItemAside.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/useTreeItemAsideStyles.styles.js +90 -0
- package/lib-commonjs/components/TreeItemAside/useTreeItemAsideStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItemChevron.js +33 -0
- package/lib-commonjs/components/TreeItemChevron.js.map +1 -0
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +15 -16
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js +1 -3
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/index.js +7 -9
- package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +11 -28
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +45 -52
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +221 -0
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +17 -18
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -3
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/index.js +7 -9
- package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +14 -35
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +44 -61
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +16 -15
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +230 -0
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
- package/lib-commonjs/contexts/index.js +4 -6
- package/lib-commonjs/contexts/index.js.map +1 -1
- package/lib-commonjs/contexts/treeContext.js +23 -18
- package/lib-commonjs/contexts/treeContext.js.map +1 -1
- package/lib-commonjs/contexts/treeItemContext.js +27 -13
- package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
- package/lib-commonjs/hooks/index.js +5 -7
- package/lib-commonjs/hooks/index.js.map +1 -1
- package/lib-commonjs/hooks/useFlatTree.js +79 -52
- package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
- package/lib-commonjs/hooks/useFlatTreeNavigation.js +73 -72
- package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
- package/lib-commonjs/hooks/useHTMLElementWalker.js +92 -83
- package/lib-commonjs/hooks/useHTMLElementWalker.js.map +1 -1
- package/lib-commonjs/hooks/useNestedTreeNavigation.js +59 -58
- package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +1 -1
- package/lib-commonjs/hooks/useOpenItemsState.js +27 -22
- package/lib-commonjs/hooks/useOpenItemsState.js.map +1 -1
- package/lib-commonjs/hooks/useRovingTabIndexes.js +54 -53
- package/lib-commonjs/hooks/useRovingTabIndexes.js.map +1 -1
- package/lib-commonjs/index.js +52 -181
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/ImmutableSet.js +37 -38
- package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
- package/lib-commonjs/utils/assert.js +11 -9
- package/lib-commonjs/utils/assert.js.map +1 -1
- package/lib-commonjs/utils/createFlatTreeItems.js +132 -0
- package/lib-commonjs/utils/createFlatTreeItems.js.map +1 -0
- package/lib-commonjs/utils/flattenTree.js +25 -33
- package/lib-commonjs/utils/flattenTree.js.map +1 -1
- package/lib-commonjs/utils/nextTypeAheadElement.js +16 -16
- package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
- package/lib-commonjs/utils/normalizeOpenItems.js +11 -9
- package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
- package/lib-commonjs/utils/tokens.js +28 -20
- package/lib-commonjs/utils/tokens.js.map +1 -1
- package/lib-commonjs/utils/treeItemFilter.js +7 -7
- package/lib-commonjs/utils/treeItemFilter.js.map +1 -1
- package/package.json +23 -17
- package/lib/components/Tree/useTreeStyles.js +0 -20
- package/lib/components/Tree/useTreeStyles.js.map +0 -1
- package/lib/components/TreeItem/useTreeItemStyles.js +0 -203
- package/lib/components/TreeItem/useTreeItemStyles.js.map +0 -1
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -98
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
- package/lib/utils/createUnfilteredFlatTree.js +0 -77
- package/lib/utils/createUnfilteredFlatTree.js.map +0 -1
- package/lib/utils/createVisibleFlatTree.js +0 -80
- package/lib/utils/createVisibleFlatTree.js.map +0 -1
- package/lib-commonjs/components/Tree/useTreeStyles.js +0 -27
- package/lib-commonjs/components/Tree/useTreeStyles.js.map +0 -1
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +0 -210
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +0 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -105
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +0 -122
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
- package/lib-commonjs/utils/createUnfilteredFlatTree.js +0 -84
- package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +0 -1
- package/lib-commonjs/utils/createVisibleFlatTree.js +0 -87
- package/lib-commonjs/utils/createVisibleFlatTree.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { ArrowRight } from '@fluentui/keyboard-keys';
|
|
|
6
6
|
import { ArrowUp } from '@fluentui/keyboard-keys';
|
|
7
7
|
import type { AvatarContextValue } from '@fluentui/react-avatar';
|
|
8
8
|
import type { AvatarSize } from '@fluentui/react-avatar';
|
|
9
|
-
import
|
|
9
|
+
import { ButtonContextValue } from '@fluentui/react-button';
|
|
10
10
|
import type { ComponentProps } from '@fluentui/react-utilities';
|
|
11
11
|
import type { ComponentState } from '@fluentui/react-utilities';
|
|
12
12
|
import { ContextSelector } from '@fluentui/react-context-selector';
|
|
@@ -21,11 +21,51 @@ import { ProviderProps } from 'react';
|
|
|
21
21
|
import * as React_2 from 'react';
|
|
22
22
|
import type { Slot } from '@fluentui/react-utilities';
|
|
23
23
|
import type { SlotClassNames } from '@fluentui/react-utilities';
|
|
24
|
+
import { SlotRenderFunction } from '@fluentui/react-utilities';
|
|
25
|
+
|
|
26
|
+
declare type FlattenedTreeItem<Props extends TreeItemProps<unknown>> = FlatTreeItemProps<NonNullable<Props['value']>> & Props;
|
|
24
27
|
|
|
25
28
|
/**
|
|
26
29
|
* Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* const defaultItems = flattenTree_unstable([
|
|
33
|
+
* {
|
|
34
|
+
* children: <TreeItemLayout>level 1, item 1</TreeItemLayout>,
|
|
35
|
+
* subtree: [
|
|
36
|
+
* {
|
|
37
|
+
* children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,
|
|
38
|
+
* },
|
|
39
|
+
* {
|
|
40
|
+
* children: <TreeItemLayout>level 2, item 2</TreeItemLayout>,
|
|
41
|
+
* },
|
|
42
|
+
* {
|
|
43
|
+
* children: <TreeItemLayout>level 2, item 3</TreeItemLayout>,
|
|
44
|
+
* },
|
|
45
|
+
* ],
|
|
46
|
+
* },
|
|
47
|
+
* {
|
|
48
|
+
* children: <TreeItemLayout>level 1, item 2</TreeItemLayout>,
|
|
49
|
+
* subtree: [
|
|
50
|
+
* {
|
|
51
|
+
* children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,
|
|
52
|
+
* subtree: [
|
|
53
|
+
* {
|
|
54
|
+
* children: <TreeItemLayout>level 3, item 1</TreeItemLayout>,
|
|
55
|
+
* subtree: [
|
|
56
|
+
* {
|
|
57
|
+
* children: <TreeItemLayout>level 4, item 1</TreeItemLayout>,
|
|
58
|
+
* },
|
|
59
|
+
* ],
|
|
60
|
+
* },
|
|
61
|
+
* ],
|
|
62
|
+
* },
|
|
63
|
+
* ],
|
|
64
|
+
* },
|
|
65
|
+
* ]);
|
|
66
|
+
* ```
|
|
27
67
|
*/
|
|
28
|
-
export declare const flattenTree_unstable: (items: NestedTreeItem[]) =>
|
|
68
|
+
export declare const flattenTree_unstable: <Props extends TreeItemProps<unknown>>(items: NestedTreeItem<Props>[]) => FlattenedTreeItem<Props>[];
|
|
29
69
|
|
|
30
70
|
/**
|
|
31
71
|
* FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems
|
|
@@ -37,13 +77,13 @@ export declare const flattenTree_unstable: (items: NestedTreeItem[]) => FlatTree
|
|
|
37
77
|
*
|
|
38
78
|
* On simple scenarios it is advised to simply use a nested structure instead.
|
|
39
79
|
*/
|
|
40
|
-
export declare type FlatTree = {
|
|
80
|
+
export declare type FlatTree<Props extends FlatTreeItemProps<unknown> = FlatTreeItemProps> = {
|
|
41
81
|
/**
|
|
42
82
|
* returns the properties required for the Tree component to work properly.
|
|
43
83
|
* That includes:
|
|
44
84
|
* `openItems`, `onOpenChange`, `onNavigation_unstable` and `ref`
|
|
45
85
|
*/
|
|
46
|
-
getTreeProps(): FlatTreeProps
|
|
86
|
+
getTreeProps(): FlatTreeProps<Props['value']>;
|
|
47
87
|
/**
|
|
48
88
|
* internal method used to react to an `onNavigation` event.
|
|
49
89
|
* This method ensures proper navigation on keyboard and mouse interaction.
|
|
@@ -57,7 +97,7 @@ export declare type FlatTree = {
|
|
|
57
97
|
* event.preventDefault();
|
|
58
98
|
* const nextItem = tree.getNextNavigableItem(data);
|
|
59
99
|
* // scroll to item using virtualization scroll mechanism
|
|
60
|
-
* if (nextItem &&
|
|
100
|
+
* if (nextItem && document.getElementById(nextItem.id)) {
|
|
61
101
|
* listRef.current.scrollToItem(nextItem.index);
|
|
62
102
|
* }
|
|
63
103
|
* // wait for scrolling to happen and then invoke navigate method
|
|
@@ -67,39 +107,51 @@ export declare type FlatTree = {
|
|
|
67
107
|
* };
|
|
68
108
|
*```
|
|
69
109
|
*/
|
|
70
|
-
navigate(data: TreeNavigationData_unstable): void;
|
|
110
|
+
navigate(data: TreeNavigationData_unstable<Props['value']>): void;
|
|
71
111
|
/**
|
|
72
112
|
* returns next item to be focused on a navigation.
|
|
73
113
|
* This method is provided to decouple the element that needs to be focused from
|
|
74
114
|
* the action of focusing it itself.
|
|
115
|
+
*
|
|
116
|
+
* On the case of TypeAhead navigation this method returns the current item.
|
|
75
117
|
*/
|
|
76
|
-
getNextNavigableItem(data: TreeNavigationData_unstable): FlatTreeItem |
|
|
77
|
-
/**
|
|
78
|
-
* returns a single flat tree item by id without iterating over the whole collection
|
|
79
|
-
*/
|
|
80
|
-
getItem(id: string): FlatTreeItem | null;
|
|
118
|
+
getNextNavigableItem(visibleItems: FlatTreeItem<Props>[], data: TreeNavigationData_unstable<Props['value']>): FlatTreeItem<Props> | undefined;
|
|
81
119
|
/**
|
|
82
|
-
*
|
|
120
|
+
* an iterable containing all visually available flat tree items
|
|
83
121
|
*/
|
|
84
|
-
items():
|
|
122
|
+
items(): IterableIterator<FlatTreeItem<Props>>;
|
|
85
123
|
};
|
|
86
124
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
125
|
+
/**
|
|
126
|
+
* The item that is returned by `useFlatTree`, it represents a wrapper around the properties provided to
|
|
127
|
+
* `useFlatTree` but with extra information that might be useful on flat tree scenarios
|
|
128
|
+
*/
|
|
129
|
+
export declare type FlatTreeItem<Props extends FlatTreeItemProps<unknown> = FlatTreeItemProps> = {
|
|
91
130
|
index: number;
|
|
92
|
-
id: string;
|
|
93
131
|
level: number;
|
|
132
|
+
childrenSize: number;
|
|
133
|
+
value: Props['value'];
|
|
134
|
+
parentValue: Props['parentValue'];
|
|
135
|
+
/**
|
|
136
|
+
* A reference to the element that will render the `TreeItem`,
|
|
137
|
+
* this is necessary for nodes with parents (to ensure child to parent navigation),
|
|
138
|
+
* if a node has no parent then this reference will be null.
|
|
139
|
+
*/
|
|
140
|
+
ref: React_2.RefObject<HTMLDivElement>;
|
|
141
|
+
getTreeItemProps(): Required<Pick<Props, 'value' | 'aria-setsize' | 'aria-level' | 'aria-posinset' | 'itemType'>> & Omit<Props, 'parentValue'>;
|
|
94
142
|
};
|
|
95
143
|
|
|
96
|
-
export declare type FlatTreeItemProps =
|
|
97
|
-
|
|
144
|
+
export declare type FlatTreeItemProps<Value = string> = Omit<TreeItemProps<Value>, 'itemType'> & Partial<Pick<TreeItemProps<Value>, 'itemType'>> & {
|
|
145
|
+
value: Value;
|
|
146
|
+
parentValue?: Value;
|
|
98
147
|
};
|
|
99
148
|
|
|
100
|
-
|
|
149
|
+
declare type FlatTreeOptions<Props extends FlatTreeItemProps<unknown> = FlatTreeItemProps> = Pick<TreeProps<Props['value']>, 'openItems' | 'defaultOpenItems' | 'onOpenChange' | 'onNavigation_unstable'>;
|
|
150
|
+
|
|
151
|
+
export declare type FlatTreeProps<Value = string> = Required<Pick<TreeProps<Value>, 'openItems' | 'onOpenChange' | 'onNavigation_unstable'>> & {
|
|
101
152
|
ref: React_2.Ref<HTMLDivElement>;
|
|
102
|
-
|
|
153
|
+
openItems: ImmutableSet<Value>;
|
|
154
|
+
};
|
|
103
155
|
|
|
104
156
|
declare interface ImmutableSet<Value> {
|
|
105
157
|
/**
|
|
@@ -127,10 +179,12 @@ declare interface ImmutableSet<Value> {
|
|
|
127
179
|
[Symbol.iterator](): IterableIterator<Value>;
|
|
128
180
|
}
|
|
129
181
|
|
|
130
|
-
export declare type NestedTreeItem = Omit<
|
|
131
|
-
subtree?: NestedTreeItem[];
|
|
182
|
+
export declare type NestedTreeItem<Props extends TreeItemProps<unknown>> = Omit<Props, 'subtree' | 'itemType'> & {
|
|
183
|
+
subtree?: NestedTreeItem<Props>[];
|
|
132
184
|
};
|
|
133
185
|
|
|
186
|
+
declare type OmitWithoutExpanding<P, K extends string | number | symbol> = P extends unknown ? Omit<P, K> : P;
|
|
187
|
+
|
|
134
188
|
export declare const renderTree_unstable: (state: TreeState, contextValues: TreeContextValues) => JSX.Element;
|
|
135
189
|
|
|
136
190
|
/**
|
|
@@ -138,6 +192,11 @@ export declare const renderTree_unstable: (state: TreeState, contextValues: Tree
|
|
|
138
192
|
*/
|
|
139
193
|
export declare const renderTreeItem_unstable: (state: TreeItemState, contextValues: TreeItemContextValues) => JSX.Element;
|
|
140
194
|
|
|
195
|
+
/**
|
|
196
|
+
* Render the final JSX of TreeItemAside
|
|
197
|
+
*/
|
|
198
|
+
export declare const renderTreeItemAside_unstable: (state: TreeItemAsideState) => JSX.Element | null;
|
|
199
|
+
|
|
141
200
|
/**
|
|
142
201
|
* Render the final JSX of TreeItemLayout
|
|
143
202
|
*/
|
|
@@ -156,7 +215,22 @@ export declare const renderTreeItemPersonaLayout_unstable: (state: TreeItemPerso
|
|
|
156
215
|
* an item representing a folder can be expanded to reveal the contents of the folder,
|
|
157
216
|
* which may be files, folders, or both.
|
|
158
217
|
*/
|
|
159
|
-
export declare const Tree:
|
|
218
|
+
export declare const Tree: React_2.ForwardRefExoticComponent<Omit<TreeSlots, "root"> & Omit<{
|
|
219
|
+
as?: "div" | undefined;
|
|
220
|
+
} & Pick<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React_2.HTMLAttributes<HTMLDivElement>> & {
|
|
221
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React_2.RefObject<HTMLDivElement> | null | undefined;
|
|
222
|
+
} & {
|
|
223
|
+
children?: React_2.ReactNode | SlotRenderFunction<Pick<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React_2.HTMLAttributes<HTMLDivElement>> & {
|
|
224
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React_2.RefObject<HTMLDivElement> | null | undefined;
|
|
225
|
+
}>;
|
|
226
|
+
}, "ref"> & {
|
|
227
|
+
appearance?: "transparent" | "subtle" | "subtle-alpha" | undefined;
|
|
228
|
+
size?: "small" | "medium" | undefined;
|
|
229
|
+
openItems?: Iterable<string> | undefined;
|
|
230
|
+
defaultOpenItems?: Iterable<string> | undefined;
|
|
231
|
+
onOpenChange?(event: React_2.KeyboardEvent<HTMLElement> | React_2.MouseEvent<HTMLElement, MouseEvent>, data: TreeOpenChangeData<string>): void;
|
|
232
|
+
onNavigation_unstable?(event: React_2.KeyboardEvent<HTMLElement> | React_2.MouseEvent<HTMLElement, MouseEvent>, data: TreeNavigationData_unstable<string>): void;
|
|
233
|
+
} & React_2.RefAttributes<HTMLDivElement>> & (<Value = string>(props: TreeProps<Value>) => JSX.Element);
|
|
160
234
|
|
|
161
235
|
export declare const treeClassNames: SlotClassNames<TreeSlots>;
|
|
162
236
|
|
|
@@ -164,12 +238,11 @@ export declare type TreeContextValue = {
|
|
|
164
238
|
level: number;
|
|
165
239
|
appearance: 'subtle' | 'subtle-alpha' | 'transparent';
|
|
166
240
|
size: 'small' | 'medium';
|
|
167
|
-
openItems: ImmutableSet<
|
|
241
|
+
openItems: ImmutableSet<unknown>;
|
|
168
242
|
/**
|
|
169
|
-
*
|
|
243
|
+
* requests root Tree component to respond to some tree item event,
|
|
170
244
|
*/
|
|
171
|
-
|
|
172
|
-
requestNavigation(data: TreeNavigationData_unstable): void;
|
|
245
|
+
requestTreeResponse(request: TreeItemRequest<unknown>): void;
|
|
173
246
|
};
|
|
174
247
|
|
|
175
248
|
declare type TreeContextValues = {
|
|
@@ -177,29 +250,96 @@ declare type TreeContextValues = {
|
|
|
177
250
|
};
|
|
178
251
|
|
|
179
252
|
/**
|
|
180
|
-
* TreeItem component
|
|
253
|
+
* The `TreeItem` component represents a single item in a tree.
|
|
254
|
+
* It expects a certain order of children to work properly: the first child should be the node itself,
|
|
255
|
+
* and the second child should be a nested subtree in the form of another Tree component or a standalone TreeItem.
|
|
256
|
+
* This order follows the same order as document traversal for the TreeWalker API in JavaScript:
|
|
257
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.
|
|
258
|
+
* The content and layout of a TreeItem can be defined using the TreeItemLayout or TreeItemPersonaLayout component,
|
|
259
|
+
* which should be used as a direct child of TreeItem.
|
|
260
|
+
*
|
|
261
|
+
* When a TreeItem has nested child subtree, an expand/collapse control is displayed,
|
|
262
|
+
* allowing the user to show or hide the children.
|
|
263
|
+
*/
|
|
264
|
+
export declare const TreeItem: React_2.ForwardRefExoticComponent<Omit<Partial<TreeItemSlots>, "root"> & Omit<{
|
|
265
|
+
as?: "div" | undefined;
|
|
266
|
+
} & Pick<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React_2.HTMLAttributes<HTMLDivElement>> & {
|
|
267
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React_2.RefObject<HTMLDivElement> | null | undefined;
|
|
268
|
+
} & {
|
|
269
|
+
children?: React_2.ReactNode | SlotRenderFunction<Pick<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React_2.HTMLAttributes<HTMLDivElement>> & {
|
|
270
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React_2.RefObject<HTMLDivElement> | null | undefined;
|
|
271
|
+
}>;
|
|
272
|
+
} & {
|
|
273
|
+
style?: TreeItemCSSProperties | undefined;
|
|
274
|
+
}, "ref"> & {
|
|
275
|
+
value?: string | undefined;
|
|
276
|
+
itemType: TreeItemType;
|
|
277
|
+
} & React_2.RefAttributes<HTMLDivElement>> & (<Value = string>(props: TreeItemProps<Value>) => JSX.Element);
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* TreeItemAside component - represents a custom set of actionable elements that will be visible when a certain
|
|
281
|
+
* `TreeItem` is currently "active".
|
|
282
|
+
*/
|
|
283
|
+
export declare const TreeItemAside: ForwardRefComponent<TreeItemAsideProps>;
|
|
284
|
+
|
|
285
|
+
export declare const treeItemAsideClassNames: SlotClassNames<TreeItemAsideSlots>;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* TreeItemAside Props
|
|
289
|
+
*/
|
|
290
|
+
export declare type TreeItemAsideProps = ComponentProps<TreeItemAsideSlots> & {
|
|
291
|
+
/**
|
|
292
|
+
* boolean indicating if the aside content should behave as "actions"
|
|
293
|
+
*
|
|
294
|
+
* actionable elements are normally buttons, menus, or other focusable elements.
|
|
295
|
+
* Those elements are only visibly available if the given tree item is currently active.
|
|
296
|
+
*/
|
|
297
|
+
actions?: boolean;
|
|
298
|
+
/**
|
|
299
|
+
* Forces visibility of the aside content, even if they're actions
|
|
300
|
+
*/
|
|
301
|
+
visible?: true;
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
export declare type TreeItemAsideSlots = {
|
|
305
|
+
root: Slot<'div'>;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* State used in rendering TreeItemAside
|
|
181
310
|
*/
|
|
182
|
-
export declare
|
|
311
|
+
export declare type TreeItemAsideState = ComponentState<TreeItemAsideSlots> & {
|
|
312
|
+
actions: boolean;
|
|
313
|
+
visible: boolean;
|
|
314
|
+
buttonContextValue: ButtonContextValue;
|
|
315
|
+
};
|
|
183
316
|
|
|
184
317
|
export declare const treeItemClassNames: SlotClassNames<TreeItemSlots>;
|
|
185
318
|
|
|
186
319
|
declare type TreeItemContextValue = {
|
|
187
320
|
isActionsVisible: boolean;
|
|
321
|
+
isAsideVisible: boolean;
|
|
322
|
+
actionsRef: React_2.Ref<HTMLDivElement>;
|
|
323
|
+
expandIconRef: React_2.Ref<HTMLDivElement>;
|
|
324
|
+
layoutRef: React_2.Ref<HTMLDivElement>;
|
|
325
|
+
subtreeRef: React_2.Ref<HTMLDivElement>;
|
|
326
|
+
value: unknown;
|
|
327
|
+
itemType: TreeItemType;
|
|
328
|
+
open: boolean;
|
|
188
329
|
};
|
|
189
330
|
|
|
190
331
|
declare type TreeItemContextValues = {
|
|
191
332
|
treeItem: TreeItemContextValue;
|
|
192
|
-
button: ButtonContextValue;
|
|
193
333
|
};
|
|
194
334
|
|
|
195
335
|
declare type TreeItemCSSProperties = React_2.CSSProperties & {
|
|
196
336
|
[treeItemLevelToken]?: string | number;
|
|
197
337
|
};
|
|
198
338
|
|
|
199
|
-
export declare type TreeItemId = string | number;
|
|
200
|
-
|
|
201
339
|
/**
|
|
202
|
-
* TreeItemLayout component
|
|
340
|
+
* The `TreeItemLayout` component is used as a child of `TreeItem` to define the content and layout of a tree item.
|
|
341
|
+
* It provides a consistent visual structure for tree items in a `Tree` component.
|
|
342
|
+
* This component should only be used as a direct child of `TreeItem`.
|
|
203
343
|
*/
|
|
204
344
|
export declare const TreeItemLayout: ForwardRefComponent<TreeItemLayoutProps>;
|
|
205
345
|
|
|
@@ -212,26 +352,32 @@ export declare type TreeItemLayoutProps = ComponentProps<Partial<TreeItemLayoutS
|
|
|
212
352
|
|
|
213
353
|
export declare type TreeItemLayoutSlots = {
|
|
214
354
|
root: Slot<'div'>;
|
|
355
|
+
/**
|
|
356
|
+
* Expand icon slot,
|
|
357
|
+
* by default renders a chevron icon to indicate opening and closing
|
|
358
|
+
*/
|
|
359
|
+
expandIcon?: Slot<'div'>;
|
|
215
360
|
/**
|
|
216
361
|
* Icon slot that renders right before main content
|
|
217
362
|
*/
|
|
218
|
-
iconBefore?: Slot<'
|
|
363
|
+
iconBefore?: Slot<'div'>;
|
|
219
364
|
/**
|
|
220
365
|
* Icon slot that renders right after main content
|
|
221
366
|
*/
|
|
222
|
-
iconAfter?: Slot<'
|
|
223
|
-
aside?: Slot<'span'>;
|
|
367
|
+
iconAfter?: Slot<'div'>;
|
|
224
368
|
};
|
|
225
369
|
|
|
226
370
|
/**
|
|
227
371
|
* State used in rendering TreeItemLayout
|
|
228
372
|
*/
|
|
229
|
-
export declare type TreeItemLayoutState = ComponentState<TreeItemLayoutSlots
|
|
373
|
+
export declare type TreeItemLayoutState = ComponentState<TreeItemLayoutSlots>;
|
|
230
374
|
|
|
231
375
|
export declare const treeItemLevelToken: "--fluent-TreeItem--level";
|
|
232
376
|
|
|
233
377
|
/**
|
|
234
|
-
* TreeItemPersonaLayout component
|
|
378
|
+
* The `TreeItemPersonaLayout` component is used as a child of `TreeItem` to display a `TreeItem` with a media (typically an avatar) and a description.
|
|
379
|
+
* It provides a more visually appealing representation of a `TreeItem` and is typically used to display a list of people or topics.
|
|
380
|
+
* This component should only be used as a direct child of `TreeItem`.
|
|
235
381
|
*/
|
|
236
382
|
export declare const TreeItemPersonaLayout: ForwardRefComponent<TreeItemPersonaLayoutProps>;
|
|
237
383
|
|
|
@@ -247,120 +393,101 @@ declare type TreeItemPersonaLayoutContextValues = {
|
|
|
247
393
|
export declare type TreeItemPersonaLayoutProps = ComponentProps<Partial<TreeItemPersonaLayoutSlots>>;
|
|
248
394
|
|
|
249
395
|
export declare type TreeItemPersonaLayoutSlots = {
|
|
250
|
-
root: Slot<'
|
|
396
|
+
root: NonNullable<Slot<'div'>>;
|
|
397
|
+
/**
|
|
398
|
+
* Expand icon slot,
|
|
399
|
+
* by default renders a chevron icon to indicate opening and closing
|
|
400
|
+
*/
|
|
401
|
+
expandIcon?: Slot<'div'>;
|
|
251
402
|
/**
|
|
252
403
|
* Avatar to display.
|
|
253
404
|
*/
|
|
254
|
-
media: NonNullable<Slot<'
|
|
405
|
+
media: NonNullable<Slot<'div'>>;
|
|
255
406
|
/**
|
|
256
407
|
* Main text. Children of the root slot are automatically rendered here
|
|
257
408
|
*/
|
|
258
|
-
main: Slot<'
|
|
409
|
+
main: NonNullable<Slot<'div'>>;
|
|
259
410
|
/**
|
|
260
411
|
* Secondary text that describes or complements the main text
|
|
261
412
|
*/
|
|
262
|
-
description?: Slot<'
|
|
263
|
-
/**
|
|
264
|
-
* aside text that works as extra textual information
|
|
265
|
-
*/
|
|
266
|
-
aside?: Slot<'span'>;
|
|
413
|
+
description?: Slot<'div'>;
|
|
267
414
|
/**
|
|
268
415
|
* A layout wrapper for the main and description slots
|
|
269
416
|
*/
|
|
270
|
-
content: Slot<'div'
|
|
417
|
+
content: NonNullable<Slot<'div'>>;
|
|
271
418
|
};
|
|
272
419
|
|
|
273
420
|
/**
|
|
274
421
|
* State used in rendering TreeItemPersonaLayout
|
|
275
422
|
*/
|
|
276
|
-
export declare type TreeItemPersonaLayoutState = ComponentState<TreeItemPersonaLayoutSlots> &
|
|
423
|
+
export declare type TreeItemPersonaLayoutState = ComponentState<TreeItemPersonaLayoutSlots> & {
|
|
277
424
|
avatarSize: AvatarSize;
|
|
278
425
|
};
|
|
279
426
|
|
|
280
427
|
/**
|
|
281
428
|
* TreeItem Props
|
|
282
429
|
*/
|
|
283
|
-
export declare type TreeItemProps = ComponentProps<Partial<TreeItemSlots>> & {
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
* This attribute is used to force the decision if a TreeItem is a leaf or not. By not providing this property
|
|
287
|
-
* this will be inferred by the presence of a subtree as part of the TreeItem children.
|
|
288
|
-
*/
|
|
289
|
-
leaf?: boolean;
|
|
430
|
+
export declare type TreeItemProps<Value = string> = ComponentProps<Partial<TreeItemSlots>> & {
|
|
431
|
+
value?: Value;
|
|
432
|
+
itemType: TreeItemType;
|
|
290
433
|
};
|
|
291
434
|
|
|
292
|
-
export declare const TreeItemProvider: React_2.Provider<TreeItemContextValue | undefined
|
|
435
|
+
export declare const TreeItemProvider: React_2.Provider<TreeItemContextValue | undefined> & React_2.FC<React_2.ProviderProps<TreeItemContextValue | undefined>>;
|
|
436
|
+
|
|
437
|
+
declare type TreeItemRequest<Value> = {
|
|
438
|
+
itemType: TreeItemType;
|
|
439
|
+
} & (OmitWithoutExpanding<TreeOpenChangeData<Value>, 'open' | 'target'> | OmitWithoutExpanding<TreeNavigationData_unstable<Value>, 'target'>);
|
|
293
440
|
|
|
294
441
|
export declare type TreeItemSlots = {
|
|
295
442
|
root: Slot<ExtractSlotProps<Slot<'div'> & {
|
|
296
443
|
style?: TreeItemCSSProperties;
|
|
297
444
|
}>>;
|
|
298
|
-
content: NonNullable<Slot<'div'>>;
|
|
299
|
-
subtree?: Slot<'span'>;
|
|
300
|
-
/**
|
|
301
|
-
* Expand icon slot,
|
|
302
|
-
* by default renders a chevron icon to indicate opening and closing
|
|
303
|
-
*/
|
|
304
|
-
expandIcon?: Slot<'span'>;
|
|
305
|
-
/**
|
|
306
|
-
* Actions slot that renders on the end of tree item
|
|
307
|
-
* when the item is hovered/focused
|
|
308
|
-
*/
|
|
309
|
-
actions?: Slot<'span'>;
|
|
310
445
|
};
|
|
311
446
|
|
|
312
447
|
/**
|
|
313
448
|
* State used in rendering TreeItem
|
|
314
449
|
*/
|
|
315
|
-
export declare type TreeItemState = ComponentState<TreeItemSlots> & {
|
|
316
|
-
open: boolean;
|
|
317
|
-
isLeaf: boolean;
|
|
450
|
+
export declare type TreeItemState = ComponentState<TreeItemSlots> & TreeItemContextValue & {
|
|
318
451
|
level: number;
|
|
319
|
-
|
|
320
|
-
* By design, a button included on the actions slot should be small
|
|
321
|
-
*/
|
|
322
|
-
buttonSize: 'small';
|
|
323
|
-
isActionsVisible: boolean;
|
|
452
|
+
itemType: TreeItemType;
|
|
324
453
|
};
|
|
325
454
|
|
|
326
|
-
|
|
327
|
-
|
|
455
|
+
declare type TreeItemType = 'leaf' | 'branch';
|
|
456
|
+
|
|
457
|
+
export declare type TreeNavigationData_unstable<Value = string> = {
|
|
458
|
+
value: Value;
|
|
328
459
|
target: HTMLElement;
|
|
460
|
+
} & ({
|
|
461
|
+
event: React_2.MouseEvent<HTMLElement>;
|
|
329
462
|
type: 'Click';
|
|
330
463
|
} | {
|
|
331
464
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
332
|
-
target: HTMLElement;
|
|
333
465
|
type: 'TypeAhead';
|
|
334
466
|
} | {
|
|
335
467
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
336
|
-
target: HTMLElement;
|
|
337
468
|
type: typeof ArrowRight;
|
|
338
469
|
} | {
|
|
339
470
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
340
|
-
target: HTMLElement;
|
|
341
471
|
type: typeof ArrowLeft;
|
|
342
472
|
} | {
|
|
343
473
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
344
|
-
target: HTMLElement;
|
|
345
474
|
type: typeof ArrowUp;
|
|
346
475
|
} | {
|
|
347
476
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
348
|
-
target: HTMLElement;
|
|
349
477
|
type: typeof ArrowDown;
|
|
350
478
|
} | {
|
|
351
479
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
352
|
-
target: HTMLElement;
|
|
353
480
|
type: typeof Home;
|
|
354
481
|
} | {
|
|
355
482
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
356
|
-
target: HTMLElement;
|
|
357
483
|
type: typeof End;
|
|
358
|
-
};
|
|
484
|
+
});
|
|
359
485
|
|
|
360
486
|
export declare type TreeNavigationEvent_unstable = TreeNavigationData_unstable['event'];
|
|
361
487
|
|
|
362
|
-
export declare type TreeOpenChangeData = {
|
|
488
|
+
export declare type TreeOpenChangeData<Value = string> = {
|
|
363
489
|
open: boolean;
|
|
490
|
+
value: Value;
|
|
364
491
|
} & ({
|
|
365
492
|
event: React_2.MouseEvent<HTMLElement>;
|
|
366
493
|
target: HTMLElement;
|
|
@@ -385,7 +512,7 @@ export declare type TreeOpenChangeData = {
|
|
|
385
512
|
|
|
386
513
|
export declare type TreeOpenChangeEvent = TreeOpenChangeData['event'];
|
|
387
514
|
|
|
388
|
-
export declare type TreeProps = ComponentProps<TreeSlots> & {
|
|
515
|
+
export declare type TreeProps<Value = string> = ComponentProps<TreeSlots> & {
|
|
389
516
|
/**
|
|
390
517
|
* A tree item can have various appearances:
|
|
391
518
|
* - 'subtle' (default): The default tree item styles.
|
|
@@ -404,13 +531,13 @@ export declare type TreeProps = ComponentProps<TreeSlots> & {
|
|
|
404
531
|
* Controls the state of the open tree items.
|
|
405
532
|
* These property is ignored for subtrees.
|
|
406
533
|
*/
|
|
407
|
-
openItems?: Iterable<
|
|
534
|
+
openItems?: Iterable<Value>;
|
|
408
535
|
/**
|
|
409
536
|
* This refers to a list of ids of opened tree items.
|
|
410
537
|
* Default value for the uncontrolled state of open tree items.
|
|
411
538
|
* These property is ignored for subtrees.
|
|
412
539
|
*/
|
|
413
|
-
defaultOpenItems?: Iterable<
|
|
540
|
+
defaultOpenItems?: Iterable<Value>;
|
|
414
541
|
/**
|
|
415
542
|
* Callback fired when the component changes value from open state.
|
|
416
543
|
* These property is ignored for subtrees.
|
|
@@ -419,7 +546,7 @@ export declare type TreeProps = ComponentProps<TreeSlots> & {
|
|
|
419
546
|
* @param data - A data object with relevant information,
|
|
420
547
|
* such as open value and type of interaction that created the event.
|
|
421
548
|
*/
|
|
422
|
-
onOpenChange?(event: TreeOpenChangeEvent, data: TreeOpenChangeData): void;
|
|
549
|
+
onOpenChange?(event: TreeOpenChangeEvent, data: TreeOpenChangeData<Value>): void;
|
|
423
550
|
/**
|
|
424
551
|
* Callback fired when navigation happens inside the component.
|
|
425
552
|
* These property is ignored for subtrees.
|
|
@@ -429,7 +556,7 @@ export declare type TreeProps = ComponentProps<TreeSlots> & {
|
|
|
429
556
|
* @param event - a React's Synthetic event
|
|
430
557
|
* @param data - A data object with relevant information,
|
|
431
558
|
*/
|
|
432
|
-
onNavigation_unstable?(event: TreeNavigationEvent_unstable, data: TreeNavigationData_unstable): void;
|
|
559
|
+
onNavigation_unstable?(event: TreeNavigationEvent_unstable, data: TreeNavigationData_unstable<Value>): void;
|
|
433
560
|
};
|
|
434
561
|
|
|
435
562
|
export declare const TreeProvider: Provider<TreeContextValue | undefined> & FC<ProviderProps<TreeContextValue | undefined>>;
|
|
@@ -441,7 +568,9 @@ export declare type TreeSlots = {
|
|
|
441
568
|
/**
|
|
442
569
|
* State used in rendering Tree
|
|
443
570
|
*/
|
|
444
|
-
export declare type TreeState = ComponentState<TreeSlots> & TreeContextValue
|
|
571
|
+
export declare type TreeState = ComponentState<TreeSlots> & TreeContextValue & {
|
|
572
|
+
open: boolean;
|
|
573
|
+
};
|
|
445
574
|
|
|
446
575
|
/**
|
|
447
576
|
* this hook provides FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems
|
|
@@ -452,10 +581,10 @@ export declare type TreeState = ComponentState<TreeSlots> & TreeContextValue;
|
|
|
452
581
|
* It should be used on cases where more complex interactions with a Tree is required.
|
|
453
582
|
* On simple scenarios it is advised to simply use a nested structure instead.
|
|
454
583
|
*
|
|
455
|
-
* @param
|
|
584
|
+
* @param flatTreeItemProps - a list of tree items
|
|
456
585
|
* @param options - in case control over the internal openItems is required
|
|
457
586
|
*/
|
|
458
|
-
export declare function useFlatTree_unstable(
|
|
587
|
+
export declare function useFlatTree_unstable<Props extends FlatTreeItemProps<unknown> = FlatTreeItemProps>(flatTreeItemProps: Props[], options?: FlatTreeOptions<Props>): FlatTree<Props>;
|
|
459
588
|
|
|
460
589
|
/**
|
|
461
590
|
* Create the state required to render Tree.
|
|
@@ -481,9 +610,25 @@ export declare function useTreeContextValues_unstable(state: TreeState): TreeCon
|
|
|
481
610
|
* @param props - props from this instance of TreeItem
|
|
482
611
|
* @param ref - reference to root HTMLElement of TreeItem
|
|
483
612
|
*/
|
|
484
|
-
export declare
|
|
613
|
+
export declare function useTreeItem_unstable<Value = string>(props: TreeItemProps<Value>, ref: React_2.Ref<HTMLDivElement>): TreeItemState;
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* Create the state required to render TreeItemAside.
|
|
617
|
+
*
|
|
618
|
+
* The returned state can be modified with hooks such as useTreeItemAsideStyles_unstable,
|
|
619
|
+
* before being passed to renderTreeItemAside_unstable.
|
|
620
|
+
*
|
|
621
|
+
* @param props - props from this instance of TreeItemAside
|
|
622
|
+
* @param ref - reference to root HTMLElement of TreeItemAside
|
|
623
|
+
*/
|
|
624
|
+
export declare const useTreeItemAside_unstable: (props: TreeItemAsideProps, ref: React_2.Ref<HTMLElement>) => TreeItemAsideState;
|
|
625
|
+
|
|
626
|
+
/**
|
|
627
|
+
* Apply styling to the TreeItemAside slots based on the state
|
|
628
|
+
*/
|
|
629
|
+
export declare const useTreeItemAsideStyles_unstable: (state: TreeItemAsideState) => TreeItemAsideState;
|
|
485
630
|
|
|
486
|
-
export declare const useTreeItemContext_unstable: () =>
|
|
631
|
+
export declare const useTreeItemContext_unstable: <T>(selector: ContextSelector<TreeItemContextValue, T>) => T;
|
|
487
632
|
|
|
488
633
|
/**
|
|
489
634
|
* Create the state required to render TreeItemLayout.
|
package/lib/Tree.js
CHANGED
package/lib/Tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["Tree.ts"],"sourcesContent":["export * from './components/Tree/index';\n"],"names":[],"mappings":"AAAA,cAAc,0BAA0B"}
|
package/lib/TreeItem.js
CHANGED
package/lib/TreeItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["TreeItem.ts"],"sourcesContent":["export * from './components/TreeItem/index';\n"],"names":[],"mappings":"AAAA,cAAc,8BAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components/TreeItemAside/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["TreeItemAside.ts"],"sourcesContent":["export * from './components/TreeItemAside/index';\n"],"names":[],"mappings":"AAAA,cAAc,mCAAmC"}
|
package/lib/TreeItemLayout.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["TreeItemLayout.ts"],"sourcesContent":["export * from './components/TreeItemLayout/index';\n"],"names":[],"mappings":"AAAA,cAAc,oCAAoC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["TreeItemPersonaLayout.ts"],"sourcesContent":["export * from './components/TreeItemPersonaLayout/index';\n"],"names":[],"mappings":"AAAA,cAAc,2CAA2C"}
|