@salt-ds/lab 1.0.0-alpha.92 → 1.0.0-alpha.94

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 (204) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/css/salt-lab.css +166 -249
  3. package/dist-cjs/index.js +6 -24
  4. package/dist-cjs/index.js.map +1 -1
  5. package/dist-cjs/toolbar-next/ToolbarContentNext.css.js +6 -0
  6. package/dist-cjs/toolbar-next/ToolbarContentNext.css.js.map +1 -0
  7. package/dist-cjs/toolbar-next/ToolbarContentNext.js +32 -0
  8. package/dist-cjs/toolbar-next/ToolbarContentNext.js.map +1 -0
  9. package/dist-cjs/toolbar-next/ToolbarNext.css.js +6 -0
  10. package/dist-cjs/toolbar-next/ToolbarNext.css.js.map +1 -0
  11. package/dist-cjs/toolbar-next/ToolbarNext.js +394 -0
  12. package/dist-cjs/toolbar-next/ToolbarNext.js.map +1 -0
  13. package/dist-cjs/toolbar-next/ToolbarNextOverflow.css.js +6 -0
  14. package/dist-cjs/toolbar-next/ToolbarNextOverflow.css.js.map +1 -0
  15. package/dist-cjs/toolbar-next/ToolbarNextOverflow.js +705 -0
  16. package/dist-cjs/toolbar-next/ToolbarNextOverflow.js.map +1 -0
  17. package/dist-cjs/toolbar-next/ToolbarNextOverflowFloatingBoundary.js +165 -0
  18. package/dist-cjs/toolbar-next/ToolbarNextOverflowFloatingBoundary.js.map +1 -0
  19. package/dist-cjs/toolbar-next/TooltrayNext.css.js +6 -0
  20. package/dist-cjs/toolbar-next/TooltrayNext.css.js.map +1 -0
  21. package/dist-cjs/toolbar-next/TooltrayNext.js +55 -0
  22. package/dist-cjs/toolbar-next/TooltrayNext.js.map +1 -0
  23. package/dist-cjs/toolbar-next/toolbarNextKeyboardUtils.js +391 -0
  24. package/dist-cjs/toolbar-next/toolbarNextKeyboardUtils.js.map +1 -0
  25. package/dist-cjs/toolbar-next/toolbarNextUtils.js +215 -0
  26. package/dist-cjs/toolbar-next/toolbarNextUtils.js.map +1 -0
  27. package/dist-cjs/toolbar-next/useToolbarNextKeyboardNavigation.js +334 -0
  28. package/dist-cjs/toolbar-next/useToolbarNextKeyboardNavigation.js.map +1 -0
  29. package/dist-cjs/toolbar-next/useToolbarNextOverflow.js +743 -0
  30. package/dist-cjs/toolbar-next/useToolbarNextOverflow.js.map +1 -0
  31. package/dist-es/index.js +3 -12
  32. package/dist-es/index.js.map +1 -1
  33. package/dist-es/toolbar-next/ToolbarContentNext.css.js +4 -0
  34. package/dist-es/toolbar-next/ToolbarContentNext.css.js.map +1 -0
  35. package/dist-es/toolbar-next/ToolbarContentNext.js +30 -0
  36. package/dist-es/toolbar-next/ToolbarContentNext.js.map +1 -0
  37. package/dist-es/toolbar-next/ToolbarNext.css.js +4 -0
  38. package/dist-es/toolbar-next/ToolbarNext.css.js.map +1 -0
  39. package/dist-es/toolbar-next/ToolbarNext.js +392 -0
  40. package/dist-es/toolbar-next/ToolbarNext.js.map +1 -0
  41. package/dist-es/toolbar-next/ToolbarNextOverflow.css.js +4 -0
  42. package/dist-es/toolbar-next/ToolbarNextOverflow.css.js.map +1 -0
  43. package/dist-es/toolbar-next/ToolbarNextOverflow.js +700 -0
  44. package/dist-es/toolbar-next/ToolbarNextOverflow.js.map +1 -0
  45. package/dist-es/toolbar-next/ToolbarNextOverflowFloatingBoundary.js +159 -0
  46. package/dist-es/toolbar-next/ToolbarNextOverflowFloatingBoundary.js.map +1 -0
  47. package/dist-es/toolbar-next/TooltrayNext.css.js +4 -0
  48. package/dist-es/toolbar-next/TooltrayNext.css.js.map +1 -0
  49. package/dist-es/toolbar-next/TooltrayNext.js +53 -0
  50. package/dist-es/toolbar-next/TooltrayNext.js.map +1 -0
  51. package/dist-es/toolbar-next/toolbarNextKeyboardUtils.js +372 -0
  52. package/dist-es/toolbar-next/toolbarNextKeyboardUtils.js.map +1 -0
  53. package/dist-es/toolbar-next/toolbarNextUtils.js +211 -0
  54. package/dist-es/toolbar-next/toolbarNextUtils.js.map +1 -0
  55. package/dist-es/toolbar-next/useToolbarNextKeyboardNavigation.js +332 -0
  56. package/dist-es/toolbar-next/useToolbarNextKeyboardNavigation.js.map +1 -0
  57. package/dist-es/toolbar-next/useToolbarNextOverflow.js +741 -0
  58. package/dist-es/toolbar-next/useToolbarNextOverflow.js.map +1 -0
  59. package/dist-types/index.d.ts +1 -2
  60. package/dist-types/toolbar-next/ToolbarContentNext.d.ts +11 -0
  61. package/dist-types/toolbar-next/ToolbarNext.d.ts +12 -0
  62. package/dist-types/toolbar-next/ToolbarNextOverflow.d.ts +34 -0
  63. package/dist-types/toolbar-next/ToolbarNextOverflowFloatingBoundary.d.ts +16 -0
  64. package/dist-types/toolbar-next/TooltrayNext.d.ts +37 -0
  65. package/dist-types/toolbar-next/index.d.ts +3 -0
  66. package/dist-types/toolbar-next/toolbarNextKeyboardUtils.d.ts +39 -0
  67. package/dist-types/toolbar-next/toolbarNextUtils.d.ts +42 -0
  68. package/dist-types/toolbar-next/useToolbarNextKeyboardNavigation.d.ts +41 -0
  69. package/dist-types/toolbar-next/useToolbarNextOverflow.d.ts +37 -0
  70. package/package.json +2 -2
  71. package/dist-cjs/side-panel/SidePanel.css.js +0 -6
  72. package/dist-cjs/side-panel/SidePanel.css.js.map +0 -1
  73. package/dist-cjs/side-panel/SidePanel.js +0 -197
  74. package/dist-cjs/side-panel/SidePanel.js.map +0 -1
  75. package/dist-cjs/side-panel/SidePanelCloseButton.js +0 -38
  76. package/dist-cjs/side-panel/SidePanelCloseButton.js.map +0 -1
  77. package/dist-cjs/side-panel/SidePanelContent.css.js +0 -6
  78. package/dist-cjs/side-panel/SidePanelContent.css.js.map +0 -1
  79. package/dist-cjs/side-panel/SidePanelContent.js +0 -66
  80. package/dist-cjs/side-panel/SidePanelContent.js.map +0 -1
  81. package/dist-cjs/side-panel/SidePanelHeader.css.js +0 -6
  82. package/dist-cjs/side-panel/SidePanelHeader.css.js.map +0 -1
  83. package/dist-cjs/side-panel/SidePanelHeader.js +0 -26
  84. package/dist-cjs/side-panel/SidePanelHeader.js.map +0 -1
  85. package/dist-cjs/side-panel/SidePanelProvider.js +0 -78
  86. package/dist-cjs/side-panel/SidePanelProvider.js.map +0 -1
  87. package/dist-cjs/side-panel/SidePanelTitle.css.js +0 -6
  88. package/dist-cjs/side-panel/SidePanelTitle.css.js.map +0 -1
  89. package/dist-cjs/side-panel/SidePanelTitle.js +0 -48
  90. package/dist-cjs/side-panel/SidePanelTitle.js.map +0 -1
  91. package/dist-cjs/side-panel/SidePanelTrigger.js +0 -37
  92. package/dist-cjs/side-panel/SidePanelTrigger.js.map +0 -1
  93. package/dist-cjs/side-panel/internal/SidePanelContext.js +0 -32
  94. package/dist-cjs/side-panel/internal/SidePanelContext.js.map +0 -1
  95. package/dist-cjs/side-panel/internal/useIsScrollable.js +0 -50
  96. package/dist-cjs/side-panel/internal/useIsScrollable.js.map +0 -1
  97. package/dist-cjs/side-panel/internal/useSidePanelTabOrder.js +0 -214
  98. package/dist-cjs/side-panel/internal/useSidePanelTabOrder.js.map +0 -1
  99. package/dist-cjs/side-panel/useSidePanel.js +0 -43
  100. package/dist-cjs/side-panel/useSidePanel.js.map +0 -1
  101. package/dist-cjs/tree/Tree.css.js +0 -6
  102. package/dist-cjs/tree/Tree.css.js.map +0 -1
  103. package/dist-cjs/tree/Tree.js +0 -300
  104. package/dist-cjs/tree/Tree.js.map +0 -1
  105. package/dist-cjs/tree/TreeContext.js +0 -31
  106. package/dist-cjs/tree/TreeContext.js.map +0 -1
  107. package/dist-cjs/tree/TreeNode.css.js +0 -6
  108. package/dist-cjs/tree/TreeNode.css.js.map +0 -1
  109. package/dist-cjs/tree/TreeNode.js +0 -103
  110. package/dist-cjs/tree/TreeNode.js.map +0 -1
  111. package/dist-cjs/tree/TreeNodeExpansionIcon.css.js +0 -6
  112. package/dist-cjs/tree/TreeNodeExpansionIcon.css.js.map +0 -1
  113. package/dist-cjs/tree/TreeNodeExpansionIcon.js +0 -62
  114. package/dist-cjs/tree/TreeNodeExpansionIcon.js.map +0 -1
  115. package/dist-cjs/tree/TreeNodeLabel.css.js +0 -6
  116. package/dist-cjs/tree/TreeNodeLabel.css.js.map +0 -1
  117. package/dist-cjs/tree/TreeNodeLabel.js +0 -26
  118. package/dist-cjs/tree/TreeNodeLabel.js.map +0 -1
  119. package/dist-cjs/tree/TreeNodeTrigger.css.js +0 -6
  120. package/dist-cjs/tree/TreeNodeTrigger.css.js.map +0 -1
  121. package/dist-cjs/tree/TreeNodeTrigger.js +0 -153
  122. package/dist-cjs/tree/TreeNodeTrigger.js.map +0 -1
  123. package/dist-cjs/tree/treeModel.js +0 -61
  124. package/dist-cjs/tree/treeModel.js.map +0 -1
  125. package/dist-cjs/tree/useTree.js +0 -337
  126. package/dist-cjs/tree/useTree.js.map +0 -1
  127. package/dist-es/side-panel/SidePanel.css.js +0 -4
  128. package/dist-es/side-panel/SidePanel.css.js.map +0 -1
  129. package/dist-es/side-panel/SidePanel.js +0 -195
  130. package/dist-es/side-panel/SidePanel.js.map +0 -1
  131. package/dist-es/side-panel/SidePanelCloseButton.js +0 -36
  132. package/dist-es/side-panel/SidePanelCloseButton.js.map +0 -1
  133. package/dist-es/side-panel/SidePanelContent.css.js +0 -4
  134. package/dist-es/side-panel/SidePanelContent.css.js.map +0 -1
  135. package/dist-es/side-panel/SidePanelContent.js +0 -64
  136. package/dist-es/side-panel/SidePanelContent.js.map +0 -1
  137. package/dist-es/side-panel/SidePanelHeader.css.js +0 -4
  138. package/dist-es/side-panel/SidePanelHeader.css.js.map +0 -1
  139. package/dist-es/side-panel/SidePanelHeader.js +0 -24
  140. package/dist-es/side-panel/SidePanelHeader.js.map +0 -1
  141. package/dist-es/side-panel/SidePanelProvider.js +0 -76
  142. package/dist-es/side-panel/SidePanelProvider.js.map +0 -1
  143. package/dist-es/side-panel/SidePanelTitle.css.js +0 -4
  144. package/dist-es/side-panel/SidePanelTitle.css.js.map +0 -1
  145. package/dist-es/side-panel/SidePanelTitle.js +0 -46
  146. package/dist-es/side-panel/SidePanelTitle.js.map +0 -1
  147. package/dist-es/side-panel/SidePanelTrigger.js +0 -35
  148. package/dist-es/side-panel/SidePanelTrigger.js.map +0 -1
  149. package/dist-es/side-panel/internal/SidePanelContext.js +0 -29
  150. package/dist-es/side-panel/internal/SidePanelContext.js.map +0 -1
  151. package/dist-es/side-panel/internal/useIsScrollable.js +0 -48
  152. package/dist-es/side-panel/internal/useIsScrollable.js.map +0 -1
  153. package/dist-es/side-panel/internal/useSidePanelTabOrder.js +0 -212
  154. package/dist-es/side-panel/internal/useSidePanelTabOrder.js.map +0 -1
  155. package/dist-es/side-panel/useSidePanel.js +0 -41
  156. package/dist-es/side-panel/useSidePanel.js.map +0 -1
  157. package/dist-es/tree/Tree.css.js +0 -4
  158. package/dist-es/tree/Tree.css.js.map +0 -1
  159. package/dist-es/tree/Tree.js +0 -298
  160. package/dist-es/tree/Tree.js.map +0 -1
  161. package/dist-es/tree/TreeContext.js +0 -26
  162. package/dist-es/tree/TreeContext.js.map +0 -1
  163. package/dist-es/tree/TreeNode.css.js +0 -4
  164. package/dist-es/tree/TreeNode.css.js.map +0 -1
  165. package/dist-es/tree/TreeNode.js +0 -101
  166. package/dist-es/tree/TreeNode.js.map +0 -1
  167. package/dist-es/tree/TreeNodeExpansionIcon.css.js +0 -4
  168. package/dist-es/tree/TreeNodeExpansionIcon.css.js.map +0 -1
  169. package/dist-es/tree/TreeNodeExpansionIcon.js +0 -60
  170. package/dist-es/tree/TreeNodeExpansionIcon.js.map +0 -1
  171. package/dist-es/tree/TreeNodeLabel.css.js +0 -4
  172. package/dist-es/tree/TreeNodeLabel.css.js.map +0 -1
  173. package/dist-es/tree/TreeNodeLabel.js +0 -24
  174. package/dist-es/tree/TreeNodeLabel.js.map +0 -1
  175. package/dist-es/tree/TreeNodeTrigger.css.js +0 -4
  176. package/dist-es/tree/TreeNodeTrigger.css.js.map +0 -1
  177. package/dist-es/tree/TreeNodeTrigger.js +0 -151
  178. package/dist-es/tree/TreeNodeTrigger.js.map +0 -1
  179. package/dist-es/tree/treeModel.js +0 -57
  180. package/dist-es/tree/treeModel.js.map +0 -1
  181. package/dist-es/tree/useTree.js +0 -335
  182. package/dist-es/tree/useTree.js.map +0 -1
  183. package/dist-types/side-panel/SidePanel.d.ts +0 -26
  184. package/dist-types/side-panel/SidePanelCloseButton.d.ts +0 -2
  185. package/dist-types/side-panel/SidePanelContent.d.ts +0 -5
  186. package/dist-types/side-panel/SidePanelHeader.d.ts +0 -5
  187. package/dist-types/side-panel/SidePanelProvider.d.ts +0 -20
  188. package/dist-types/side-panel/SidePanelTitle.d.ts +0 -3
  189. package/dist-types/side-panel/SidePanelTrigger.d.ts +0 -3
  190. package/dist-types/side-panel/index.d.ts +0 -8
  191. package/dist-types/side-panel/internal/SidePanelContext.d.ts +0 -52
  192. package/dist-types/side-panel/internal/index.d.ts +0 -3
  193. package/dist-types/side-panel/internal/useIsScrollable.d.ts +0 -2
  194. package/dist-types/side-panel/internal/useSidePanelTabOrder.d.ts +0 -7
  195. package/dist-types/side-panel/useSidePanel.d.ts +0 -58
  196. package/dist-types/tree/Tree.d.ts +0 -36
  197. package/dist-types/tree/TreeContext.d.ts +0 -77
  198. package/dist-types/tree/TreeNode.d.ts +0 -25
  199. package/dist-types/tree/TreeNodeExpansionIcon.d.ts +0 -4
  200. package/dist-types/tree/TreeNodeLabel.d.ts +0 -4
  201. package/dist-types/tree/TreeNodeTrigger.d.ts +0 -8
  202. package/dist-types/tree/index.d.ts +0 -4
  203. package/dist-types/tree/treeModel.d.ts +0 -24
  204. package/dist-types/tree/useTree.d.ts +0 -68
@@ -1,77 +0,0 @@
1
- import { type Dispatch, type ReactNode, type Ref, type RefObject, type SetStateAction, type SyntheticEvent } from "react";
2
- import type { TreeModel, TreeNodeMeta } from "./useTree";
3
- export interface TreeContextValue {
4
- expandedState: Set<string>;
5
- /** Toggle a node expansion state */
6
- toggleExpanded: (event: SyntheticEvent, value: string) => void;
7
- /** Selected node values */
8
- selectedState: string[];
9
- /** Selected node values as Set for O(1) lookups */
10
- selectedSet: Set<string>;
11
- /** Set selected state directly */
12
- setSelectedState: Dispatch<SetStateAction<string[]>>;
13
- /** Set selected state without expanding selection through hidden descendants */
14
- setVisibleSelectionState: (selected: string[]) => void;
15
- /** Select node */
16
- select: (event: SyntheticEvent, value: string) => void;
17
- /** Whether multiselect mode with checkboxes is enabled */
18
- multiselect: boolean;
19
- /** Disabled state of the tree */
20
- disabled: boolean;
21
- /** Set of disabled node IDs */
22
- disabledIdsSet: Set<string>;
23
- /** Tree model for traversal */
24
- treeModel: TreeModel;
25
- /** Get node metadata from tree model */
26
- getNodeMeta: (value: string) => TreeNodeMeta | undefined;
27
- /** Get parent of a node */
28
- getParent: (value: string) => string | undefined;
29
- /** Get children of a node */
30
- getChildren: (value: string) => string[];
31
- /** Get all descendants of a node */
32
- getDescendants: (value: string) => string[];
33
- /** Get all ancestors of a node */
34
- getAncestors: (value: string) => string[];
35
- /** Memoized visible (navigable) nodes in tree order */
36
- visibleNodes: string[];
37
- /** Memoized tabbable node ID for roving tabindex (computed once at tree level) */
38
- tabbableNodeId: string | undefined;
39
- /** Register a DOM element for focus management */
40
- registerElement: (value: string, element: HTMLElement) => () => void;
41
- /** Get DOM element for a node (if mounted) */
42
- getElement: (value: string) => HTMLElement | undefined;
43
- /** Active node value */
44
- activeNode: string | undefined;
45
- /** Set the active node */
46
- setActiveNode: Dispatch<SetStateAction<string | undefined>>;
47
- /** Set of indeterminate (partially selected) node IDs */
48
- indeterminateState: Set<string>;
49
- }
50
- export declare const TreeProvider: import("react").Provider<TreeContextValue | undefined>;
51
- export declare function useTreeContext(): TreeContextValue;
52
- export interface TreeNodeContextValue {
53
- /** Current node value */
54
- value: string;
55
- /** Current depth level */
56
- level: number;
57
- /** Whether node has children */
58
- hasChildren: boolean;
59
- /** Whether node is expanded */
60
- expanded: boolean;
61
- /** Whether node is disabled */
62
- disabled: boolean;
63
- /** Node id for the li element */
64
- id: string;
65
- /** Ref for the li element rendered by TreeNodeTrigger */
66
- nodeRef: RefObject<HTMLLIElement>;
67
- /** Callback ref that connects TreeNode's forwarded ref to the li element */
68
- setNodeRef: Ref<HTMLLIElement> | null;
69
- /** Whether node is selected */
70
- selected: boolean;
71
- /** Whether node is in indeterminate state (partially selected children) */
72
- indeterminate: boolean;
73
- /** Child TreeNode elements to be rendered inside the group */
74
- nodeChildren: ReactNode;
75
- }
76
- export declare const TreeNodeProvider: import("react").Provider<TreeNodeContextValue | undefined>;
77
- export declare function useTreeNodeContext(): TreeNodeContextValue | undefined;
@@ -1,25 +0,0 @@
1
- import type { IconProps } from "@salt-ds/icons";
2
- import { type ComponentType, type ReactNode } from "react";
3
- export interface TreeNodeProps {
4
- /**
5
- * Unique value representing this node within the tree
6
- */
7
- value: string;
8
- /**
9
- * Label for the node. When provided, TreeNode automatically renders a TreeNodeTrigger.
10
- */
11
- label?: ReactNode;
12
- /**
13
- * Optional icon to display before the label
14
- */
15
- icon?: ComponentType<IconProps>;
16
- /**
17
- * Whether the node is disabled.
18
- */
19
- disabled?: boolean;
20
- /**
21
- * Child nodes or content.
22
- */
23
- children?: ReactNode;
24
- }
25
- export declare const TreeNode: import("react").ForwardRefExoticComponent<TreeNodeProps & import("react").RefAttributes<HTMLLIElement>>;
@@ -1,4 +0,0 @@
1
- import { type ComponentPropsWithoutRef } from "react";
2
- export interface TreeNodeExpansionIconProps extends ComponentPropsWithoutRef<"span"> {
3
- }
4
- export declare const TreeNodeExpansionIcon: import("react").ForwardRefExoticComponent<TreeNodeExpansionIconProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -1,4 +0,0 @@
1
- import { type ComponentPropsWithoutRef } from "react";
2
- export interface TreeNodeLabelProps extends ComponentPropsWithoutRef<"span"> {
3
- }
4
- export declare const TreeNodeLabel: import("react").ForwardRefExoticComponent<TreeNodeLabelProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -1,8 +0,0 @@
1
- import { type ComponentPropsWithoutRef } from "react";
2
- export interface TreeNodeTriggerProps extends ComponentPropsWithoutRef<"li"> {
3
- }
4
- /**
5
- * The forwarded ref points to the inner trigger content span (for tooltip positioning),
6
- * while the <li> handles focus, ARIA, and event handling.
7
- */
8
- export declare const TreeNodeTrigger: import("react").ForwardRefExoticComponent<TreeNodeTriggerProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -1,4 +0,0 @@
1
- export * from "./Tree";
2
- export * from "./TreeNode";
3
- export * from "./TreeNodeLabel";
4
- export * from "./TreeNodeTrigger";
@@ -1,24 +0,0 @@
1
- import { type ReactElement, type ReactNode } from "react";
2
- export interface TreeNodeMeta {
3
- value: string;
4
- parentValue: string | undefined;
5
- hasChildren: boolean;
6
- disabled: boolean;
7
- }
8
- export interface TreeModel {
9
- /** All nodes indexed by value */
10
- nodes: Map<string, TreeNodeMeta>;
11
- /** Ordered list of root node values */
12
- rootValues: string[];
13
- /** Maps parent value to ordered list of child values */
14
- childrenOf: Map<string, string[]>;
15
- }
16
- interface TreeNodeElementProps {
17
- value: string;
18
- disabled?: boolean;
19
- children?: ReactNode;
20
- }
21
- export declare function isTreeNodeElement(child: ReactNode): child is ReactElement<TreeNodeElementProps>;
22
- export declare function flattenTreeNodeChildren(children: ReactNode): ReactNode[];
23
- export declare function buildTreeModel(children: ReactNode): TreeModel;
24
- export {};
@@ -1,68 +0,0 @@
1
- import { type ReactNode, type SyntheticEvent } from "react";
2
- import { type TreeModel, type TreeNodeMeta } from "./treeModel";
3
- export type { TreeModel, TreeNodeMeta } from "./treeModel";
4
- export interface UseTreeProps {
5
- /**
6
- * Default expanded nodes (uncontrolled)
7
- */
8
- defaultExpanded?: string[];
9
- /**
10
- * Expanded nodes (controlled)
11
- */
12
- expanded?: string[];
13
- /**
14
- * Callback on expanded nodes change
15
- */
16
- onExpandedChange?: (event: SyntheticEvent, expanded: string[]) => void;
17
- /**
18
- * Default selected nodes (uncontrolled)
19
- */
20
- defaultSelected?: string[];
21
- /**
22
- * Selected nodes
23
- */
24
- selected?: string[];
25
- /**
26
- * Callback on selected nodes change
27
- */
28
- onSelectionChange?: (event: SyntheticEvent, selected: string[]) => void;
29
- /**
30
- * Sets multiselect mode with checkboxes and allows for multiple node selection
31
- */
32
- multiselect?: boolean;
33
- /**
34
- * Sets tree to disabled state, preventing all interaction
35
- */
36
- disabled?: boolean;
37
- /**
38
- * Tree children used to build the tree model for traversal an state management
39
- */
40
- children?: ReactNode;
41
- }
42
- export declare function useTree(props: UseTreeProps): {
43
- expandedArray: string[];
44
- setExpandedArray: import("react").Dispatch<import("react").SetStateAction<string[]>>;
45
- expandedState: Set<string>;
46
- toggleExpanded: (event: SyntheticEvent, value: string) => void;
47
- selectedState: string[];
48
- selectedSet: Set<string>;
49
- setSelectedState: import("react").Dispatch<import("react").SetStateAction<string[]>>;
50
- setVisibleSelectionState: (selection: string[]) => void;
51
- select: (event: SyntheticEvent, value: string) => void;
52
- multiselect: boolean;
53
- disabled: boolean;
54
- disabledIdsSet: Set<string>;
55
- treeModel: TreeModel;
56
- getNodeMeta: (value: string) => TreeNodeMeta | undefined;
57
- getParent: (value: string) => string | undefined;
58
- getChildren: (parentValue: string) => string[];
59
- getDescendants: (value: string) => string[];
60
- getAncestors: (value: string) => string[];
61
- visibleNodes: string[];
62
- tabbableNodeId: string | undefined;
63
- registerElement: (value: string, element: HTMLElement) => () => void;
64
- getElement: (value: string) => HTMLElement | undefined;
65
- activeNode: string | undefined;
66
- setActiveNode: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
67
- indeterminateState: Set<string>;
68
- };