@salt-ds/lab 1.0.0-alpha.93 → 1.0.0-alpha.95
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.md +214 -0
- package/css/salt-lab.css +190 -143
- package/dist-cjs/index.js +12 -58
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/mega-menu/MegaMenuGroup.js +2 -5
- package/dist-cjs/mega-menu/MegaMenuGroup.js.map +1 -1
- package/dist-cjs/mega-menu/MegaMenuGroups.css.js +6 -0
- package/dist-cjs/mega-menu/MegaMenuGroups.css.js.map +1 -0
- package/dist-cjs/mega-menu/{MegaMenuSection.js → MegaMenuGroups.js} +8 -8
- package/dist-cjs/mega-menu/MegaMenuGroups.js.map +1 -0
- package/dist-cjs/mega-menu/MegaMenuHeader.js +0 -1
- package/dist-cjs/mega-menu/MegaMenuHeader.js.map +1 -1
- package/dist-cjs/mega-menu/MegaMenuItem.css.js +1 -1
- package/dist-cjs/mega-menu/MegaMenuItem.js +6 -5
- package/dist-cjs/mega-menu/MegaMenuItem.js.map +1 -1
- package/dist-cjs/mega-menu/MegaMenuSupportingActions.css.js +6 -0
- package/dist-cjs/mega-menu/MegaMenuSupportingActions.css.js.map +1 -0
- package/dist-cjs/mega-menu/MegaMenuSupportingActions.js +31 -0
- package/dist-cjs/mega-menu/MegaMenuSupportingActions.js.map +1 -0
- package/dist-cjs/mega-menu/MegaMenuSupportingContent.css.js +6 -0
- package/dist-cjs/mega-menu/MegaMenuSupportingContent.css.js.map +1 -0
- package/dist-cjs/mega-menu/MegaMenuSupportingContent.js +31 -0
- package/dist-cjs/mega-menu/MegaMenuSupportingContent.js.map +1 -0
- package/dist-cjs/mega-menu/useMegaMenuKeyboard.js +2 -2
- package/dist-cjs/mega-menu/useMegaMenuKeyboard.js.map +1 -1
- package/dist-cjs/toolbar-next/ToolbarContentNext.css.js +6 -0
- package/dist-cjs/toolbar-next/ToolbarContentNext.css.js.map +1 -0
- package/dist-cjs/toolbar-next/ToolbarContentNext.js +32 -0
- package/dist-cjs/toolbar-next/ToolbarContentNext.js.map +1 -0
- package/dist-cjs/toolbar-next/ToolbarNext.css.js +6 -0
- package/dist-cjs/toolbar-next/ToolbarNext.css.js.map +1 -0
- package/dist-cjs/toolbar-next/ToolbarNext.js +394 -0
- package/dist-cjs/toolbar-next/ToolbarNext.js.map +1 -0
- package/dist-cjs/toolbar-next/ToolbarNextOverflow.css.js +6 -0
- package/dist-cjs/toolbar-next/ToolbarNextOverflow.css.js.map +1 -0
- package/dist-cjs/toolbar-next/ToolbarNextOverflow.js +706 -0
- package/dist-cjs/toolbar-next/ToolbarNextOverflow.js.map +1 -0
- package/dist-cjs/toolbar-next/ToolbarNextOverflowFloatingBoundary.js +165 -0
- package/dist-cjs/toolbar-next/ToolbarNextOverflowFloatingBoundary.js.map +1 -0
- package/dist-cjs/toolbar-next/TooltrayNext.css.js +6 -0
- package/dist-cjs/toolbar-next/TooltrayNext.css.js.map +1 -0
- package/dist-cjs/toolbar-next/TooltrayNext.js +55 -0
- package/dist-cjs/toolbar-next/TooltrayNext.js.map +1 -0
- package/dist-cjs/toolbar-next/toolbarNextKeyboardUtils.js +409 -0
- package/dist-cjs/toolbar-next/toolbarNextKeyboardUtils.js.map +1 -0
- package/dist-cjs/toolbar-next/toolbarNextUtils.js +215 -0
- package/dist-cjs/toolbar-next/toolbarNextUtils.js.map +1 -0
- package/dist-cjs/toolbar-next/useToolbarNextKeyboardNavigation.js +312 -0
- package/dist-cjs/toolbar-next/useToolbarNextKeyboardNavigation.js.map +1 -0
- package/dist-cjs/toolbar-next/useToolbarNextOverflow.js +743 -0
- package/dist-cjs/toolbar-next/useToolbarNextOverflow.js.map +1 -0
- package/dist-es/index.js +6 -12
- package/dist-es/index.js.map +1 -1
- package/dist-es/mega-menu/MegaMenuGroup.js +2 -5
- package/dist-es/mega-menu/MegaMenuGroup.js.map +1 -1
- package/dist-es/mega-menu/MegaMenuGroups.css.js +4 -0
- package/dist-es/mega-menu/MegaMenuGroups.css.js.map +1 -0
- package/dist-es/mega-menu/{MegaMenuSection.js → MegaMenuGroups.js} +7 -7
- package/dist-es/mega-menu/MegaMenuGroups.js.map +1 -0
- package/dist-es/mega-menu/MegaMenuHeader.js +0 -1
- package/dist-es/mega-menu/MegaMenuHeader.js.map +1 -1
- package/dist-es/mega-menu/MegaMenuItem.css.js +1 -1
- package/dist-es/mega-menu/MegaMenuItem.js +7 -6
- package/dist-es/mega-menu/MegaMenuItem.js.map +1 -1
- package/dist-es/mega-menu/MegaMenuSupportingActions.css.js +4 -0
- package/dist-es/mega-menu/MegaMenuSupportingActions.css.js.map +1 -0
- package/dist-es/mega-menu/MegaMenuSupportingActions.js +29 -0
- package/dist-es/mega-menu/MegaMenuSupportingActions.js.map +1 -0
- package/dist-es/mega-menu/MegaMenuSupportingContent.css.js +4 -0
- package/dist-es/mega-menu/MegaMenuSupportingContent.css.js.map +1 -0
- package/dist-es/mega-menu/MegaMenuSupportingContent.js +29 -0
- package/dist-es/mega-menu/MegaMenuSupportingContent.js.map +1 -0
- package/dist-es/mega-menu/useMegaMenuKeyboard.js +2 -2
- package/dist-es/mega-menu/useMegaMenuKeyboard.js.map +1 -1
- package/dist-es/toolbar-next/ToolbarContentNext.css.js +4 -0
- package/dist-es/toolbar-next/ToolbarContentNext.css.js.map +1 -0
- package/dist-es/toolbar-next/ToolbarContentNext.js +30 -0
- package/dist-es/toolbar-next/ToolbarContentNext.js.map +1 -0
- package/dist-es/toolbar-next/ToolbarNext.css.js +4 -0
- package/dist-es/toolbar-next/ToolbarNext.css.js.map +1 -0
- package/dist-es/toolbar-next/ToolbarNext.js +392 -0
- package/dist-es/toolbar-next/ToolbarNext.js.map +1 -0
- package/dist-es/toolbar-next/ToolbarNextOverflow.css.js +4 -0
- package/dist-es/toolbar-next/ToolbarNextOverflow.css.js.map +1 -0
- package/dist-es/toolbar-next/ToolbarNextOverflow.js +701 -0
- package/dist-es/toolbar-next/ToolbarNextOverflow.js.map +1 -0
- package/dist-es/toolbar-next/ToolbarNextOverflowFloatingBoundary.js +159 -0
- package/dist-es/toolbar-next/ToolbarNextOverflowFloatingBoundary.js.map +1 -0
- package/dist-es/toolbar-next/TooltrayNext.css.js +4 -0
- package/dist-es/toolbar-next/TooltrayNext.css.js.map +1 -0
- package/dist-es/toolbar-next/TooltrayNext.js +53 -0
- package/dist-es/toolbar-next/TooltrayNext.js.map +1 -0
- package/dist-es/toolbar-next/toolbarNextKeyboardUtils.js +390 -0
- package/dist-es/toolbar-next/toolbarNextKeyboardUtils.js.map +1 -0
- package/dist-es/toolbar-next/toolbarNextUtils.js +211 -0
- package/dist-es/toolbar-next/toolbarNextUtils.js.map +1 -0
- package/dist-es/toolbar-next/useToolbarNextKeyboardNavigation.js +310 -0
- package/dist-es/toolbar-next/useToolbarNextKeyboardNavigation.js.map +1 -0
- package/dist-es/toolbar-next/useToolbarNextOverflow.js +741 -0
- package/dist-es/toolbar-next/useToolbarNextOverflow.js.map +1 -0
- package/dist-types/index.d.ts +1 -5
- package/dist-types/mega-menu/MegaMenuGroups.d.ts +8 -0
- package/dist-types/mega-menu/MegaMenuItem.d.ts +3 -2
- package/dist-types/mega-menu/MegaMenuSupportingActions.d.ts +8 -0
- package/dist-types/mega-menu/MegaMenuSupportingContent.d.ts +8 -0
- package/dist-types/mega-menu/index.d.ts +3 -3
- package/dist-types/toolbar-next/ToolbarContentNext.d.ts +11 -0
- package/dist-types/toolbar-next/ToolbarNext.d.ts +12 -0
- package/dist-types/toolbar-next/ToolbarNextOverflow.d.ts +34 -0
- package/dist-types/toolbar-next/ToolbarNextOverflowFloatingBoundary.d.ts +16 -0
- package/dist-types/toolbar-next/TooltrayNext.d.ts +37 -0
- package/dist-types/toolbar-next/index.d.ts +3 -0
- package/dist-types/toolbar-next/toolbarNextKeyboardUtils.d.ts +39 -0
- package/dist-types/toolbar-next/toolbarNextUtils.d.ts +42 -0
- package/dist-types/toolbar-next/useToolbarNextKeyboardNavigation.d.ts +42 -0
- package/dist-types/toolbar-next/useToolbarNextOverflow.d.ts +37 -0
- package/package.json +2 -4
- package/dist-cjs/calendar/index.js +0 -61
- package/dist-cjs/calendar/index.js.map +0 -1
- package/dist-cjs/date-input/index.js +0 -23
- package/dist-cjs/date-input/index.js.map +0 -1
- package/dist-cjs/date-picker/index.js +0 -106
- package/dist-cjs/date-picker/index.js.map +0 -1
- package/dist-cjs/localization-provider/index.js +0 -26
- package/dist-cjs/localization-provider/index.js.map +0 -1
- package/dist-cjs/mega-menu/MegaMenuContent.css.js +0 -6
- package/dist-cjs/mega-menu/MegaMenuContent.css.js.map +0 -1
- package/dist-cjs/mega-menu/MegaMenuContent.js +0 -33
- package/dist-cjs/mega-menu/MegaMenuContent.js.map +0 -1
- package/dist-cjs/mega-menu/MegaMenuItemContent.css.js +0 -6
- package/dist-cjs/mega-menu/MegaMenuItemContent.css.js.map +0 -1
- package/dist-cjs/mega-menu/MegaMenuItemContent.js +0 -23
- package/dist-cjs/mega-menu/MegaMenuItemContent.js.map +0 -1
- package/dist-cjs/mega-menu/MegaMenuSection.css.js +0 -6
- package/dist-cjs/mega-menu/MegaMenuSection.css.js.map +0 -1
- package/dist-cjs/mega-menu/MegaMenuSection.js.map +0 -1
- package/dist-cjs/tree/Tree.css.js +0 -6
- package/dist-cjs/tree/Tree.css.js.map +0 -1
- package/dist-cjs/tree/Tree.js +0 -303
- package/dist-cjs/tree/Tree.js.map +0 -1
- package/dist-cjs/tree/TreeContext.js +0 -31
- package/dist-cjs/tree/TreeContext.js.map +0 -1
- package/dist-cjs/tree/TreeNode.css.js +0 -6
- package/dist-cjs/tree/TreeNode.css.js.map +0 -1
- package/dist-cjs/tree/TreeNode.js +0 -103
- package/dist-cjs/tree/TreeNode.js.map +0 -1
- package/dist-cjs/tree/TreeNodeExpansionIcon.css.js +0 -6
- package/dist-cjs/tree/TreeNodeExpansionIcon.css.js.map +0 -1
- package/dist-cjs/tree/TreeNodeExpansionIcon.js +0 -62
- package/dist-cjs/tree/TreeNodeExpansionIcon.js.map +0 -1
- package/dist-cjs/tree/TreeNodeLabel.css.js +0 -6
- package/dist-cjs/tree/TreeNodeLabel.css.js.map +0 -1
- package/dist-cjs/tree/TreeNodeLabel.js +0 -26
- package/dist-cjs/tree/TreeNodeLabel.js.map +0 -1
- package/dist-cjs/tree/TreeNodeTrigger.css.js +0 -6
- package/dist-cjs/tree/TreeNodeTrigger.css.js.map +0 -1
- package/dist-cjs/tree/TreeNodeTrigger.js +0 -153
- package/dist-cjs/tree/TreeNodeTrigger.js.map +0 -1
- package/dist-cjs/tree/treeModel.js +0 -61
- package/dist-cjs/tree/treeModel.js.map +0 -1
- package/dist-cjs/tree/useTree.js +0 -337
- package/dist-cjs/tree/useTree.js.map +0 -1
- package/dist-cjs/utils/deprecatedExport.js +0 -30
- package/dist-cjs/utils/deprecatedExport.js.map +0 -1
- package/dist-es/calendar/index.js +0 -50
- package/dist-es/calendar/index.js.map +0 -1
- package/dist-es/date-input/index.js +0 -20
- package/dist-es/date-input/index.js.map +0 -1
- package/dist-es/date-picker/index.js +0 -85
- package/dist-es/date-picker/index.js.map +0 -1
- package/dist-es/localization-provider/index.js +0 -20
- package/dist-es/localization-provider/index.js.map +0 -1
- package/dist-es/mega-menu/MegaMenuContent.css.js +0 -4
- package/dist-es/mega-menu/MegaMenuContent.css.js.map +0 -1
- package/dist-es/mega-menu/MegaMenuContent.js +0 -31
- package/dist-es/mega-menu/MegaMenuContent.js.map +0 -1
- package/dist-es/mega-menu/MegaMenuItemContent.css.js +0 -4
- package/dist-es/mega-menu/MegaMenuItemContent.css.js.map +0 -1
- package/dist-es/mega-menu/MegaMenuItemContent.js +0 -21
- package/dist-es/mega-menu/MegaMenuItemContent.js.map +0 -1
- package/dist-es/mega-menu/MegaMenuSection.css.js +0 -4
- package/dist-es/mega-menu/MegaMenuSection.css.js.map +0 -1
- package/dist-es/mega-menu/MegaMenuSection.js.map +0 -1
- package/dist-es/tree/Tree.css.js +0 -4
- package/dist-es/tree/Tree.css.js.map +0 -1
- package/dist-es/tree/Tree.js +0 -301
- package/dist-es/tree/Tree.js.map +0 -1
- package/dist-es/tree/TreeContext.js +0 -26
- package/dist-es/tree/TreeContext.js.map +0 -1
- package/dist-es/tree/TreeNode.css.js +0 -4
- package/dist-es/tree/TreeNode.css.js.map +0 -1
- package/dist-es/tree/TreeNode.js +0 -101
- package/dist-es/tree/TreeNode.js.map +0 -1
- package/dist-es/tree/TreeNodeExpansionIcon.css.js +0 -4
- package/dist-es/tree/TreeNodeExpansionIcon.css.js.map +0 -1
- package/dist-es/tree/TreeNodeExpansionIcon.js +0 -60
- package/dist-es/tree/TreeNodeExpansionIcon.js.map +0 -1
- package/dist-es/tree/TreeNodeLabel.css.js +0 -4
- package/dist-es/tree/TreeNodeLabel.css.js.map +0 -1
- package/dist-es/tree/TreeNodeLabel.js +0 -24
- package/dist-es/tree/TreeNodeLabel.js.map +0 -1
- package/dist-es/tree/TreeNodeTrigger.css.js +0 -4
- package/dist-es/tree/TreeNodeTrigger.css.js.map +0 -1
- package/dist-es/tree/TreeNodeTrigger.js +0 -151
- package/dist-es/tree/TreeNodeTrigger.js.map +0 -1
- package/dist-es/tree/treeModel.js +0 -57
- package/dist-es/tree/treeModel.js.map +0 -1
- package/dist-es/tree/useTree.js +0 -335
- package/dist-es/tree/useTree.js.map +0 -1
- package/dist-es/utils/deprecatedExport.js +0 -27
- package/dist-es/utils/deprecatedExport.js.map +0 -1
- package/dist-types/calendar/index.d.ts +0 -13
- package/dist-types/date-input/index.d.ts +0 -3
- package/dist-types/localization-provider/index.d.ts +0 -9
- package/dist-types/mega-menu/MegaMenuContent.d.ts +0 -8
- package/dist-types/mega-menu/MegaMenuItemContent.d.ts +0 -8
- package/dist-types/mega-menu/MegaMenuSection.d.ts +0 -8
- package/dist-types/tree/Tree.d.ts +0 -36
- package/dist-types/tree/TreeContext.d.ts +0 -77
- package/dist-types/tree/TreeNode.d.ts +0 -25
- package/dist-types/tree/TreeNodeExpansionIcon.d.ts +0 -4
- package/dist-types/tree/TreeNodeLabel.d.ts +0 -4
- package/dist-types/tree/TreeNodeTrigger.d.ts +0 -8
- package/dist-types/tree/index.d.ts +0 -4
- package/dist-types/tree/treeModel.d.ts +0 -24
- package/dist-types/tree/useTree.d.ts +0 -68
package/dist-es/tree/useTree.js
DELETED
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
import { useControlled } from '@salt-ds/core';
|
|
2
|
-
import { useMemo, useRef, useCallback, useState, useEffect } from 'react';
|
|
3
|
-
import { buildTreeModel } from './treeModel.js';
|
|
4
|
-
|
|
5
|
-
function arraysEqual(a, b) {
|
|
6
|
-
if (a.length !== b.length) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
return a.every((value, index) => value === b[index]);
|
|
10
|
-
}
|
|
11
|
-
function expandSelectionWithDescendants(selection, model, disabledIds) {
|
|
12
|
-
const expanded = new Set(selection);
|
|
13
|
-
function addDescendants(parentValue) {
|
|
14
|
-
const children = model.childrenOf.get(parentValue) ?? [];
|
|
15
|
-
for (const child of children) {
|
|
16
|
-
if (!disabledIds.has(child)) {
|
|
17
|
-
expanded.add(child);
|
|
18
|
-
addDescendants(child);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
for (const value of selection) {
|
|
23
|
-
addDescendants(value);
|
|
24
|
-
}
|
|
25
|
-
return Array.from(expanded);
|
|
26
|
-
}
|
|
27
|
-
function expandSelectionUpwards(selection, model, disabledIds) {
|
|
28
|
-
const selectedSet = new Set(selection);
|
|
29
|
-
for (const [value, meta] of model.nodes) {
|
|
30
|
-
if (meta.hasChildren && !selectedSet.has(value) && !disabledIds.has(value)) {
|
|
31
|
-
const children = model.childrenOf.get(value) ?? [];
|
|
32
|
-
const enabledChildren = children.filter((c) => !disabledIds.has(c));
|
|
33
|
-
if (enabledChildren.length > 0 && enabledChildren.every((c) => selectedSet.has(c))) {
|
|
34
|
-
selectedSet.add(value);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return Array.from(selectedSet);
|
|
39
|
-
}
|
|
40
|
-
function useTree(props) {
|
|
41
|
-
const {
|
|
42
|
-
defaultExpanded = [],
|
|
43
|
-
expanded: expandedProp,
|
|
44
|
-
onExpandedChange,
|
|
45
|
-
defaultSelected = [],
|
|
46
|
-
selected: selectedProp,
|
|
47
|
-
onSelectionChange,
|
|
48
|
-
multiselect = false,
|
|
49
|
-
disabled = false,
|
|
50
|
-
children
|
|
51
|
-
} = props;
|
|
52
|
-
const clampedDefaultSelected = multiselect ? defaultSelected : defaultSelected.slice(0, 1);
|
|
53
|
-
const clampedSelectedProp = selectedProp && !multiselect ? selectedProp.slice(0, 1) : selectedProp;
|
|
54
|
-
const treeModel = useMemo(() => buildTreeModel(children), [children]);
|
|
55
|
-
const elementsRef = useRef(/* @__PURE__ */ new Map());
|
|
56
|
-
const suppressUncontrolledSelectionExpansionRef = useRef(false);
|
|
57
|
-
const disabledIdsSet = useMemo(() => {
|
|
58
|
-
const set = /* @__PURE__ */ new Set();
|
|
59
|
-
for (const [value, meta] of treeModel.nodes) {
|
|
60
|
-
if (meta.disabled) set.add(value);
|
|
61
|
-
}
|
|
62
|
-
return set;
|
|
63
|
-
}, [treeModel]);
|
|
64
|
-
const [expandedArray, setExpandedArray] = useControlled({
|
|
65
|
-
controlled: expandedProp,
|
|
66
|
-
default: defaultExpanded,
|
|
67
|
-
name: "Tree",
|
|
68
|
-
state: "expanded"
|
|
69
|
-
});
|
|
70
|
-
const expandedState = useMemo(() => new Set(expandedArray), [expandedArray]);
|
|
71
|
-
const expandedDefaultSelected = useMemo(() => {
|
|
72
|
-
if (!multiselect || clampedDefaultSelected.length === 0) {
|
|
73
|
-
return clampedDefaultSelected;
|
|
74
|
-
}
|
|
75
|
-
let expanded = expandSelectionWithDescendants(
|
|
76
|
-
clampedDefaultSelected,
|
|
77
|
-
treeModel,
|
|
78
|
-
disabledIdsSet
|
|
79
|
-
);
|
|
80
|
-
expanded = expandSelectionUpwards(expanded, treeModel, disabledIdsSet);
|
|
81
|
-
return expanded;
|
|
82
|
-
}, [clampedDefaultSelected, treeModel, disabledIdsSet, multiselect]);
|
|
83
|
-
const [selectedState, setSelectedState, selectedControlled] = useControlled({
|
|
84
|
-
controlled: clampedSelectedProp,
|
|
85
|
-
default: expandedDefaultSelected,
|
|
86
|
-
name: "Tree",
|
|
87
|
-
state: "selected"
|
|
88
|
-
});
|
|
89
|
-
const setVisibleSelectionState = useCallback((selection) => {
|
|
90
|
-
suppressUncontrolledSelectionExpansionRef.current = true;
|
|
91
|
-
setSelectedState(selection);
|
|
92
|
-
}, []);
|
|
93
|
-
const selectedSet = useMemo(() => new Set(selectedState), [selectedState]);
|
|
94
|
-
const [activeNode, setActiveNode] = useState(void 0);
|
|
95
|
-
const registerElement = useCallback((value, element) => {
|
|
96
|
-
elementsRef.current.set(value, element);
|
|
97
|
-
return () => {
|
|
98
|
-
if (elementsRef.current.get(value) === element) {
|
|
99
|
-
elementsRef.current.delete(value);
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
}, []);
|
|
103
|
-
const getElement = useCallback((value) => {
|
|
104
|
-
return elementsRef.current.get(value);
|
|
105
|
-
}, []);
|
|
106
|
-
const getNodeMeta = useCallback(
|
|
107
|
-
(value) => {
|
|
108
|
-
return treeModel.nodes.get(value);
|
|
109
|
-
},
|
|
110
|
-
[treeModel]
|
|
111
|
-
);
|
|
112
|
-
const getParent = useCallback(
|
|
113
|
-
(value) => {
|
|
114
|
-
var _a;
|
|
115
|
-
return (_a = treeModel.nodes.get(value)) == null ? void 0 : _a.parentValue;
|
|
116
|
-
},
|
|
117
|
-
[treeModel]
|
|
118
|
-
);
|
|
119
|
-
const getChildren = useCallback(
|
|
120
|
-
(parentValue) => {
|
|
121
|
-
return treeModel.childrenOf.get(parentValue) ?? [];
|
|
122
|
-
},
|
|
123
|
-
[treeModel]
|
|
124
|
-
);
|
|
125
|
-
const getDescendants = useCallback(
|
|
126
|
-
(value) => {
|
|
127
|
-
const descendants = [];
|
|
128
|
-
function traverse(parentValue) {
|
|
129
|
-
const children2 = treeModel.childrenOf.get(parentValue) ?? [];
|
|
130
|
-
for (const child of children2) {
|
|
131
|
-
if (!disabledIdsSet.has(child)) {
|
|
132
|
-
descendants.push(child);
|
|
133
|
-
traverse(child);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
traverse(value);
|
|
138
|
-
return descendants;
|
|
139
|
-
},
|
|
140
|
-
[treeModel, disabledIdsSet]
|
|
141
|
-
);
|
|
142
|
-
const getAncestors = useCallback(
|
|
143
|
-
(value) => {
|
|
144
|
-
var _a, _b;
|
|
145
|
-
const ancestors = [];
|
|
146
|
-
let current = (_a = treeModel.nodes.get(value)) == null ? void 0 : _a.parentValue;
|
|
147
|
-
while (current) {
|
|
148
|
-
ancestors.push(current);
|
|
149
|
-
current = (_b = treeModel.nodes.get(current)) == null ? void 0 : _b.parentValue;
|
|
150
|
-
}
|
|
151
|
-
return ancestors;
|
|
152
|
-
},
|
|
153
|
-
[treeModel]
|
|
154
|
-
);
|
|
155
|
-
const toggleExpanded = useCallback(
|
|
156
|
-
(event, value) => {
|
|
157
|
-
const isExpanding = !expandedState.has(value);
|
|
158
|
-
const newExpanded = isExpanding ? [...expandedArray, value] : expandedArray.filter((v) => v !== value);
|
|
159
|
-
setExpandedArray(newExpanded);
|
|
160
|
-
onExpandedChange == null ? void 0 : onExpandedChange(event, newExpanded);
|
|
161
|
-
},
|
|
162
|
-
[expandedArray, expandedState, onExpandedChange]
|
|
163
|
-
);
|
|
164
|
-
const calculateIndeterminateState = useCallback(
|
|
165
|
-
(selected) => {
|
|
166
|
-
const indeterminate = /* @__PURE__ */ new Set();
|
|
167
|
-
const selectedSet2 = new Set(selected);
|
|
168
|
-
for (const selectedValue of selected) {
|
|
169
|
-
let current = getParent(selectedValue);
|
|
170
|
-
while (current) {
|
|
171
|
-
const children2 = getChildren(current);
|
|
172
|
-
const enabledChildren = children2.filter(
|
|
173
|
-
(child) => !disabledIdsSet.has(child)
|
|
174
|
-
);
|
|
175
|
-
if (enabledChildren.length === 0) {
|
|
176
|
-
current = getParent(current);
|
|
177
|
-
continue;
|
|
178
|
-
}
|
|
179
|
-
const selectedChildren = enabledChildren.filter(
|
|
180
|
-
(child) => selectedSet2.has(child)
|
|
181
|
-
);
|
|
182
|
-
const allChildrenSelected = selectedChildren.length === enabledChildren.length;
|
|
183
|
-
const someChildrenSelected = selectedChildren.length > 0;
|
|
184
|
-
const someChildrenIndeterminate = enabledChildren.some(
|
|
185
|
-
(child) => indeterminate.has(child)
|
|
186
|
-
);
|
|
187
|
-
if (someChildrenIndeterminate || someChildrenSelected && !allChildrenSelected) {
|
|
188
|
-
indeterminate.add(current);
|
|
189
|
-
}
|
|
190
|
-
current = getParent(current);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return indeterminate;
|
|
194
|
-
},
|
|
195
|
-
[getParent, getChildren, disabledIdsSet]
|
|
196
|
-
);
|
|
197
|
-
const indeterminateState = useMemo(() => {
|
|
198
|
-
const state = multiselect ? calculateIndeterminateState(selectedState) : /* @__PURE__ */ new Set();
|
|
199
|
-
return state;
|
|
200
|
-
}, [multiselect, selectedState, calculateIndeterminateState]);
|
|
201
|
-
useEffect(() => {
|
|
202
|
-
if (suppressUncontrolledSelectionExpansionRef.current) {
|
|
203
|
-
suppressUncontrolledSelectionExpansionRef.current = false;
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
if (selectedControlled || !multiselect || selectedState.length === 0) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
let expanded = expandSelectionWithDescendants(
|
|
210
|
-
selectedState,
|
|
211
|
-
treeModel,
|
|
212
|
-
disabledIdsSet
|
|
213
|
-
);
|
|
214
|
-
expanded = expandSelectionUpwards(expanded, treeModel, disabledIdsSet);
|
|
215
|
-
if (!arraysEqual(selectedState, expanded)) {
|
|
216
|
-
setSelectedState(expanded);
|
|
217
|
-
}
|
|
218
|
-
}, [
|
|
219
|
-
selectedControlled,
|
|
220
|
-
multiselect,
|
|
221
|
-
selectedState,
|
|
222
|
-
treeModel,
|
|
223
|
-
disabledIdsSet
|
|
224
|
-
]);
|
|
225
|
-
const updateAncestors = (currentSet, value) => {
|
|
226
|
-
const ancestors = getAncestors(value);
|
|
227
|
-
for (const ancestor of ancestors) {
|
|
228
|
-
const children2 = treeModel.childrenOf.get(ancestor) ?? [];
|
|
229
|
-
const enabledChildren = children2.filter(
|
|
230
|
-
(child) => !disabledIdsSet.has(child)
|
|
231
|
-
);
|
|
232
|
-
if (enabledChildren.length === 0) continue;
|
|
233
|
-
const allSelected = enabledChildren.every(
|
|
234
|
-
(child) => currentSet.has(child)
|
|
235
|
-
);
|
|
236
|
-
if (allSelected) {
|
|
237
|
-
currentSet.add(ancestor);
|
|
238
|
-
} else {
|
|
239
|
-
currentSet.delete(ancestor);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
return Array.from(currentSet);
|
|
243
|
-
};
|
|
244
|
-
const getMultiSelectState = (value) => {
|
|
245
|
-
const currentSet = new Set(selectedState);
|
|
246
|
-
const descendants = getDescendants(value);
|
|
247
|
-
if (currentSet.has(value)) {
|
|
248
|
-
currentSet.delete(value);
|
|
249
|
-
const descendantSet = new Set(descendants);
|
|
250
|
-
for (const d of descendantSet) {
|
|
251
|
-
currentSet.delete(d);
|
|
252
|
-
}
|
|
253
|
-
} else {
|
|
254
|
-
currentSet.add(value);
|
|
255
|
-
for (const d of descendants) {
|
|
256
|
-
if (!currentSet.has(d)) {
|
|
257
|
-
currentSet.add(d);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return updateAncestors(currentSet, value);
|
|
262
|
-
};
|
|
263
|
-
const select = useCallback(
|
|
264
|
-
(event, value) => {
|
|
265
|
-
if (disabled || disabledIdsSet.has(value)) return;
|
|
266
|
-
let newSelected;
|
|
267
|
-
if (multiselect) {
|
|
268
|
-
newSelected = getMultiSelectState(value);
|
|
269
|
-
} else {
|
|
270
|
-
const isCurrentlySelected = selectedSet.has(value);
|
|
271
|
-
newSelected = isCurrentlySelected ? [] : [value];
|
|
272
|
-
}
|
|
273
|
-
setSelectedState(newSelected);
|
|
274
|
-
onSelectionChange == null ? void 0 : onSelectionChange(event, newSelected);
|
|
275
|
-
},
|
|
276
|
-
[disabled, disabledIdsSet, multiselect, selectedState, onSelectionChange]
|
|
277
|
-
);
|
|
278
|
-
const visibleNodes = useMemo(() => {
|
|
279
|
-
const visible = [];
|
|
280
|
-
function traverse(values) {
|
|
281
|
-
for (const value of values) {
|
|
282
|
-
visible.push(value);
|
|
283
|
-
const nodeMeta = treeModel.nodes.get(value);
|
|
284
|
-
if ((nodeMeta == null ? void 0 : nodeMeta.hasChildren) && expandedState.has(value)) {
|
|
285
|
-
const children2 = treeModel.childrenOf.get(value) ?? [];
|
|
286
|
-
traverse(children2);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
traverse(treeModel.rootValues);
|
|
291
|
-
return visible;
|
|
292
|
-
}, [treeModel, expandedState]);
|
|
293
|
-
const tabbableNodeId = useMemo(() => {
|
|
294
|
-
if (activeNode) {
|
|
295
|
-
return activeNode;
|
|
296
|
-
}
|
|
297
|
-
const firstSelectedVisible = visibleNodes.find(
|
|
298
|
-
(node) => selectedSet.has(node)
|
|
299
|
-
);
|
|
300
|
-
if (firstSelectedVisible !== void 0) {
|
|
301
|
-
return firstSelectedVisible;
|
|
302
|
-
}
|
|
303
|
-
return visibleNodes[0];
|
|
304
|
-
}, [activeNode, selectedSet, visibleNodes]);
|
|
305
|
-
return {
|
|
306
|
-
expandedArray,
|
|
307
|
-
setExpandedArray,
|
|
308
|
-
expandedState,
|
|
309
|
-
toggleExpanded,
|
|
310
|
-
selectedState,
|
|
311
|
-
selectedSet,
|
|
312
|
-
setSelectedState,
|
|
313
|
-
setVisibleSelectionState,
|
|
314
|
-
select,
|
|
315
|
-
multiselect,
|
|
316
|
-
disabled,
|
|
317
|
-
disabledIdsSet,
|
|
318
|
-
treeModel,
|
|
319
|
-
getNodeMeta,
|
|
320
|
-
getParent,
|
|
321
|
-
getChildren,
|
|
322
|
-
getDescendants,
|
|
323
|
-
getAncestors,
|
|
324
|
-
visibleNodes,
|
|
325
|
-
tabbableNodeId,
|
|
326
|
-
registerElement,
|
|
327
|
-
getElement,
|
|
328
|
-
activeNode,
|
|
329
|
-
setActiveNode,
|
|
330
|
-
indeterminateState
|
|
331
|
-
};
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
export { useTree };
|
|
335
|
-
//# sourceMappingURL=useTree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTree.js","sources":["../src/tree/useTree.ts"],"sourcesContent":["import { useControlled } from \"@salt-ds/core\";\nimport {\n type ReactNode,\n type SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { buildTreeModel, type TreeModel, type TreeNodeMeta } from \"./treeModel\";\n\nexport type { TreeModel, TreeNodeMeta } from \"./treeModel\";\n\nexport interface UseTreeProps {\n /**\n * Default expanded nodes (uncontrolled)\n */\n defaultExpanded?: string[];\n /**\n * Expanded nodes (controlled)\n */\n expanded?: string[];\n /**\n * Callback on expanded nodes change\n */\n onExpandedChange?: (event: SyntheticEvent, expanded: string[]) => void;\n /**\n * Default selected nodes (uncontrolled)\n */\n defaultSelected?: string[];\n /**\n * Selected nodes\n */\n selected?: string[];\n /**\n * Callback on selected nodes change\n */\n onSelectionChange?: (event: SyntheticEvent, selected: string[]) => void;\n /**\n * Sets multiselect mode with checkboxes and allows for multiple node selection\n */\n multiselect?: boolean;\n /**\n * Sets tree to disabled state, preventing all interaction\n */\n disabled?: boolean;\n /**\n * Tree children used to build the tree model for traversal an state management\n */\n children?: ReactNode;\n}\n\nfunction arraysEqual(a: string[], b: string[]): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n return a.every((value, index) => value === b[index]);\n}\n\nfunction expandSelectionWithDescendants(\n selection: string[],\n model: TreeModel,\n disabledIds: Set<string>,\n): string[] {\n const expanded = new Set(selection);\n\n function addDescendants(parentValue: string): void {\n const children = model.childrenOf.get(parentValue) ?? [];\n for (const child of children) {\n if (!disabledIds.has(child)) {\n expanded.add(child);\n addDescendants(child);\n }\n }\n }\n\n for (const value of selection) {\n addDescendants(value);\n }\n\n return Array.from(expanded);\n}\n\nfunction expandSelectionUpwards(\n selection: string[],\n model: TreeModel,\n disabledIds: Set<string>,\n): string[] {\n const selectedSet = new Set(selection);\n\n for (const [value, meta] of model.nodes) {\n if (\n meta.hasChildren &&\n !selectedSet.has(value) &&\n !disabledIds.has(value)\n ) {\n const children = model.childrenOf.get(value) ?? [];\n const enabledChildren = children.filter((c) => !disabledIds.has(c));\n\n if (\n enabledChildren.length > 0 &&\n enabledChildren.every((c) => selectedSet.has(c))\n ) {\n selectedSet.add(value);\n }\n }\n }\n\n return Array.from(selectedSet);\n}\n\nexport function useTree(props: UseTreeProps) {\n const {\n defaultExpanded = [],\n expanded: expandedProp,\n onExpandedChange,\n defaultSelected = [],\n selected: selectedProp,\n onSelectionChange,\n multiselect = false,\n disabled = false,\n children,\n } = props;\n\n const clampedDefaultSelected = multiselect\n ? defaultSelected\n : defaultSelected.slice(0, 1);\n\n const clampedSelectedProp =\n selectedProp && !multiselect ? selectedProp.slice(0, 1) : selectedProp;\n\n const treeModel = useMemo(() => buildTreeModel(children), [children]);\n const elementsRef = useRef<Map<string, HTMLElement>>(new Map());\n const suppressUncontrolledSelectionExpansionRef = useRef(false);\n\n const disabledIdsSet = useMemo(() => {\n const set = new Set<string>();\n for (const [value, meta] of treeModel.nodes) {\n if (meta.disabled) set.add(value);\n }\n return set;\n }, [treeModel]);\n\n const [expandedArray, setExpandedArray] = useControlled({\n controlled: expandedProp,\n default: defaultExpanded,\n name: \"Tree\",\n state: \"expanded\",\n });\n\n // Convert array to Set for more efficient lookups during rendering and nav\n const expandedState = useMemo(() => new Set(expandedArray), [expandedArray]);\n\n const expandedDefaultSelected = useMemo(() => {\n if (!multiselect || clampedDefaultSelected.length === 0) {\n return clampedDefaultSelected;\n }\n\n let expanded = expandSelectionWithDescendants(\n clampedDefaultSelected,\n treeModel,\n disabledIdsSet,\n );\n\n expanded = expandSelectionUpwards(expanded, treeModel, disabledIdsSet);\n\n return expanded;\n }, [clampedDefaultSelected, treeModel, disabledIdsSet, multiselect]);\n\n const [selectedState, setSelectedState, selectedControlled] = useControlled({\n controlled: clampedSelectedProp,\n default: expandedDefaultSelected,\n name: \"Tree\",\n state: \"selected\",\n });\n\n const setVisibleSelectionState = useCallback((selection: string[]) => {\n suppressUncontrolledSelectionExpansionRef.current = true;\n setSelectedState(selection);\n }, []);\n\n const selectedSet = useMemo(() => new Set(selectedState), [selectedState]);\n\n const [activeNode, setActiveNode] = useState<string | undefined>(undefined);\n\n const registerElement = useCallback((value: string, element: HTMLElement) => {\n elementsRef.current.set(value, element);\n\n return () => {\n if (elementsRef.current.get(value) === element) {\n elementsRef.current.delete(value);\n }\n };\n }, []);\n\n const getElement = useCallback((value: string): HTMLElement | undefined => {\n return elementsRef.current.get(value);\n }, []);\n\n const getNodeMeta = useCallback(\n (value: string): TreeNodeMeta | undefined => {\n return treeModel.nodes.get(value);\n },\n [treeModel],\n );\n\n const getParent = useCallback(\n (value: string): string | undefined => {\n return treeModel.nodes.get(value)?.parentValue;\n },\n [treeModel],\n );\n\n const getChildren = useCallback(\n (parentValue: string): string[] => {\n return treeModel.childrenOf.get(parentValue) ?? [];\n },\n [treeModel],\n );\n\n // Depth-first search (with pre-order traversal)\n const getDescendants = useCallback(\n (value: string): string[] => {\n const descendants: string[] = [];\n\n function traverse(parentValue: string): void {\n const children = treeModel.childrenOf.get(parentValue) ?? [];\n for (const child of children) {\n if (!disabledIdsSet.has(child)) {\n descendants.push(child);\n traverse(child);\n }\n }\n }\n\n traverse(value);\n return descendants;\n },\n [treeModel, disabledIdsSet],\n );\n\n const getAncestors = useCallback(\n (value: string): string[] => {\n const ancestors: string[] = [];\n let current = treeModel.nodes.get(value)?.parentValue;\n\n while (current) {\n ancestors.push(current);\n current = treeModel.nodes.get(current)?.parentValue;\n }\n\n return ancestors;\n },\n [treeModel],\n );\n\n const toggleExpanded = useCallback(\n (event: SyntheticEvent, value: string) => {\n const isExpanding = !expandedState.has(value);\n const newExpanded = isExpanding\n ? [...expandedArray, value]\n : expandedArray.filter((v) => v !== value);\n\n setExpandedArray(newExpanded);\n onExpandedChange?.(event, newExpanded);\n },\n [expandedArray, expandedState, onExpandedChange],\n );\n\n const calculateIndeterminateState = useCallback(\n (selected: string[]): Set<string> => {\n const indeterminate = new Set<string>();\n const selectedSet = new Set(selected);\n\n for (const selectedValue of selected) {\n let current = getParent(selectedValue);\n\n while (current) {\n const children = getChildren(current);\n const enabledChildren = children.filter(\n (child) => !disabledIdsSet.has(child),\n );\n\n if (enabledChildren.length === 0) {\n current = getParent(current);\n continue;\n }\n\n const selectedChildren = enabledChildren.filter((child) =>\n selectedSet.has(child),\n );\n const allChildrenSelected =\n selectedChildren.length === enabledChildren.length;\n const someChildrenSelected = selectedChildren.length > 0;\n\n const someChildrenIndeterminate = enabledChildren.some((child) =>\n indeterminate.has(child),\n );\n\n if (\n someChildrenIndeterminate ||\n (someChildrenSelected && !allChildrenSelected)\n ) {\n indeterminate.add(current);\n }\n\n current = getParent(current);\n }\n }\n\n return indeterminate;\n },\n [getParent, getChildren, disabledIdsSet],\n );\n\n const indeterminateState = useMemo(() => {\n const state = multiselect\n ? calculateIndeterminateState(selectedState)\n : new Set<string>();\n return state;\n }, [multiselect, selectedState, calculateIndeterminateState]);\n\n useEffect(() => {\n if (suppressUncontrolledSelectionExpansionRef.current) {\n suppressUncontrolledSelectionExpansionRef.current = false;\n return;\n }\n\n if (selectedControlled || !multiselect || selectedState.length === 0) {\n return;\n }\n\n let expanded = expandSelectionWithDescendants(\n selectedState,\n treeModel,\n disabledIdsSet,\n );\n expanded = expandSelectionUpwards(expanded, treeModel, disabledIdsSet);\n\n if (!arraysEqual(selectedState, expanded)) {\n setSelectedState(expanded);\n }\n }, [\n selectedControlled,\n multiselect,\n selectedState,\n treeModel,\n disabledIdsSet,\n ]);\n\n const updateAncestors = (\n currentSet: Set<string>,\n value: string,\n ): string[] => {\n const ancestors = getAncestors(value);\n\n for (const ancestor of ancestors) {\n const children = treeModel.childrenOf.get(ancestor) ?? [];\n const enabledChildren = children.filter(\n (child) => !disabledIdsSet.has(child),\n );\n\n if (enabledChildren.length === 0) continue;\n\n const allSelected = enabledChildren.every((child) =>\n currentSet.has(child),\n );\n\n if (allSelected) {\n currentSet.add(ancestor);\n } else {\n currentSet.delete(ancestor);\n }\n }\n\n return Array.from(currentSet);\n };\n\n const getMultiSelectState = (value: string) => {\n const currentSet = new Set(selectedState);\n const descendants = getDescendants(value);\n\n if (currentSet.has(value)) {\n currentSet.delete(value);\n const descendantSet = new Set(descendants);\n for (const d of descendantSet) {\n currentSet.delete(d);\n }\n } else {\n currentSet.add(value);\n for (const d of descendants) {\n if (!currentSet.has(d)) {\n currentSet.add(d);\n }\n }\n }\n\n return updateAncestors(currentSet, value);\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: getMultiSelectState/updateAncestors are intentionally not memoized - their captured values (selectedState, treeModel, etc.) are already in deps\n const select = useCallback(\n (event: SyntheticEvent, value: string) => {\n if (disabled || disabledIdsSet.has(value)) return;\n\n let newSelected: string[];\n\n if (multiselect) {\n newSelected = getMultiSelectState(value);\n } else {\n const isCurrentlySelected = selectedSet.has(value);\n newSelected = isCurrentlySelected ? [] : [value];\n }\n\n setSelectedState(newSelected);\n onSelectionChange?.(event, newSelected);\n },\n [disabled, disabledIdsSet, multiselect, selectedState, onSelectionChange],\n );\n\n // Visible nodes in depth-first order matching visual tree order\n const visibleNodes = useMemo((): string[] => {\n const visible: string[] = [];\n\n function traverse(values: string[]): void {\n for (const value of values) {\n visible.push(value);\n\n const nodeMeta = treeModel.nodes.get(value);\n if (nodeMeta?.hasChildren && expandedState.has(value)) {\n const children = treeModel.childrenOf.get(value) ?? [];\n traverse(children);\n }\n }\n }\n\n traverse(treeModel.rootValues);\n return visible;\n }, [treeModel, expandedState]);\n\n const tabbableNodeId = useMemo((): string | undefined => {\n if (activeNode) {\n return activeNode;\n }\n\n const firstSelectedVisible = visibleNodes.find((node) =>\n selectedSet.has(node),\n );\n\n if (firstSelectedVisible !== undefined) {\n return firstSelectedVisible;\n }\n\n return visibleNodes[0];\n }, [activeNode, selectedSet, visibleNodes]);\n\n return {\n expandedArray,\n setExpandedArray,\n expandedState,\n toggleExpanded,\n selectedState,\n selectedSet,\n setSelectedState,\n setVisibleSelectionState,\n select,\n multiselect,\n disabled,\n disabledIdsSet,\n treeModel,\n getNodeMeta,\n getParent,\n getChildren,\n getDescendants,\n getAncestors,\n visibleNodes,\n tabbableNodeId,\n registerElement,\n getElement,\n activeNode,\n setActiveNode,\n indeterminateState,\n };\n}\n"],"names":["children","selectedSet"],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { forwardRef, createElement } from 'react';
|
|
2
|
-
|
|
3
|
-
const warnedKeys = /* @__PURE__ */ new Set();
|
|
4
|
-
const warnOnce = (key, message) => {
|
|
5
|
-
if (process.env.NODE_ENV === "production") return;
|
|
6
|
-
if (warnedKeys.has(key)) return;
|
|
7
|
-
warnedKeys.add(key);
|
|
8
|
-
console.warn(message);
|
|
9
|
-
};
|
|
10
|
-
function deprecatedComponent(Component, displayName, deprecationKey, message) {
|
|
11
|
-
const Wrapped = forwardRef((props, ref) => {
|
|
12
|
-
warnOnce(deprecationKey, message);
|
|
13
|
-
return createElement(Component, { ...props, ref });
|
|
14
|
-
});
|
|
15
|
-
Wrapped.displayName = displayName;
|
|
16
|
-
return Wrapped;
|
|
17
|
-
}
|
|
18
|
-
function deprecatedFunction(hook, deprecationKey, message) {
|
|
19
|
-
const wrapped = (...args) => {
|
|
20
|
-
warnOnce(deprecationKey, message);
|
|
21
|
-
return hook(...args);
|
|
22
|
-
};
|
|
23
|
-
return wrapped;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export { deprecatedComponent, deprecatedFunction };
|
|
27
|
-
//# sourceMappingURL=deprecatedExport.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecatedExport.js","sources":["../src/utils/deprecatedExport.ts"],"sourcesContent":["import { type ComponentType, createElement, forwardRef } from \"react\";\n\nconst warnedKeys = new Set<string>();\n\nconst warnOnce = (key: string, message: string) => {\n if (process.env.NODE_ENV === \"production\") return;\n if (warnedKeys.has(key)) return;\n warnedKeys.add(key);\n // eslint-disable-next-line no-console\n console.warn(message);\n};\n\n/**\n * Wrap a component so that a deprecation warning is logged on first render\n * instead of at import time.\n */\nexport function deprecatedComponent<P extends object>(\n Component: ComponentType<P>,\n displayName: string,\n deprecationKey: string,\n message: string,\n) {\n const Wrapped = forwardRef<unknown, P>((props, ref) => {\n warnOnce(deprecationKey, message);\n return createElement(Component, { ...props, ref } as P);\n });\n Wrapped.displayName = displayName;\n return Wrapped as unknown as typeof Component;\n}\n\n/**\n * Wrap a hook or plain function so that a deprecation warning is logged on\n * first call instead of at import time.\n */\nexport function deprecatedFunction<T extends (...args: any[]) => any>(\n hook: T,\n deprecationKey: string,\n message: string,\n): T {\n const wrapped = (...args: any[]) => {\n warnOnce(deprecationKey, message);\n return hook(...args);\n };\n return wrapped as T;\n}\n"],"names":[],"mappings":";;AAEA,MAAM,UAAA,uBAAiB,GAAA,EAAY;AAEnC,MAAM,QAAA,GAAW,CAAC,GAAA,EAAa,OAAA,KAAoB;AACjD,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AAC3C,EAAA,IAAI,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG;AACzB,EAAA,UAAA,CAAW,IAAI,GAAG,CAAA;AAElB,EAAA,OAAA,CAAQ,KAAK,OAAO,CAAA;AACtB,CAAA;AAMO,SAAS,mBAAA,CACd,SAAA,EACA,WAAA,EACA,cAAA,EACA,OAAA,EACA;AACA,EAAA,MAAM,OAAA,GAAU,UAAA,CAAuB,CAAC,KAAA,EAAO,GAAA,KAAQ;AACrD,IAAA,QAAA,CAAS,gBAAgB,OAAO,CAAA;AAChC,IAAA,OAAO,cAAc,SAAA,EAAW,EAAE,GAAG,KAAA,EAAO,KAAU,CAAA;AAAA,EACxD,CAAC,CAAA;AACD,EAAA,OAAA,CAAQ,WAAA,GAAc,WAAA;AACtB,EAAA,OAAO,OAAA;AACT;AAMO,SAAS,kBAAA,CACd,IAAA,EACA,cAAA,EACA,OAAA,EACG;AACH,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,KAAgB;AAClC,IAAA,QAAA,CAAS,gBAAgB,OAAO,CAAA;AAChC,IAAA,OAAO,IAAA,CAAK,GAAG,IAAI,CAAA;AAAA,EACrB,CAAA;AACA,EAAA,OAAO,OAAA;AACT;;;;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { DateFrameworkType } from "@salt-ds/date-adapters";
|
|
2
|
-
import { useCalendar as _useCalendar, useCalendarDay as _useCalendarDay, useCalendarSelection as _useCalendarSelection, useCalendarSelectionDay as _useCalendarSelectionDay, useDateSelectionAnnouncer as _useDateSelectionAnnouncer, type DateRangeSelection } from "@salt-ds/date-components";
|
|
3
|
-
export declare const Calendar: import("react").ComponentType<import("@salt-ds/date-components").CalendarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
4
|
-
export declare const CalendarGrid: import("react").ComponentType<import("@salt-ds/date-components").CalendarGridProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
|
-
export declare const CalendarNavigation: import("react").ComponentType<Omit<import("@salt-ds/date-components").CalendarNavigationProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
6
|
-
export declare const CalendarWeekHeader: import("react").ComponentType<Omit<import("@salt-ds/date-components").CalendarWeekHeaderProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
7
|
-
export declare const useCalendar: typeof _useCalendar;
|
|
8
|
-
export declare const useCalendarDay: typeof _useCalendarDay;
|
|
9
|
-
export declare const useCalendarSelection: typeof _useCalendarSelection;
|
|
10
|
-
export declare const useCalendarSelectionDay: typeof _useCalendarSelectionDay;
|
|
11
|
-
export declare const useDateSelectionAnnouncer: typeof _useDateSelectionAnnouncer;
|
|
12
|
-
export declare function isDateRangeSelection<TDate extends DateFrameworkType = DateFrameworkType>(value: unknown): value is DateRangeSelection<TDate>;
|
|
13
|
-
export type { CalendarBaseProps, CalendarDayProps, CalendarGridProps, CalendarMultiselectOffsetProps, CalendarMultiselectRangeProps, CalendarMultiselectSingleProps, CalendarNavigationProps, CalendarOffsetProps, CalendarProps, CalendarRangeProps, CalendarSingleProps, CalendarWeekHeaderProps, CreateAnnouncement, DateRangeSelection, DayStatus, renderCalendarDayProps, SelectionVariant, SingleDateSelection, UseCalendarMultiselectOffsetProps, UseCalendarMultiselectRangeProps, UseCalendarMultiselectSingleProps, UseCalendarOffsetProps, UseCalendarProps, UseCalendarRangeProps, UseCalendarReturn, UseCalendarSelectionBaseProps, UseCalendarSelectionMultiselectOffsetProps, UseCalendarSelectionMultiselectRangeProps, UseCalendarSelectionMultiselectSingleProps, UseCalendarSelectionOffsetProps, UseCalendarSelectionProps, UseCalendarSelectionRangeProps, UseCalendarSelectionSingleProps, UseCalendarSingleProps, useCalendarDayProps, } from "@salt-ds/date-components";
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const DateInputRange: import("react").ComponentType<import("@salt-ds/date-components").DateInputRangeProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
2
|
-
export declare const DateInputSingle: import("react").ComponentType<import("@salt-ds/date-components").DateInputSingleProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
3
|
-
export type { DateInputRangeDetails, DateInputRangeProps, DateInputRangeValue, DateInputSingleDetails, DateInputSingleProps, DateParserField, } from "@salt-ds/date-components";
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { DateFrameworkType } from "@salt-ds/date-adapters";
|
|
2
|
-
import { type LocalizationProviderProps, type LocalizationProviderValue } from "@salt-ds/date-components";
|
|
3
|
-
export declare function LocalizationProvider<TDate extends DateFrameworkType = DateFrameworkType, TLocale = undefined>(props: LocalizationProviderProps<TDate, TLocale>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
export declare namespace LocalizationProvider {
|
|
5
|
-
var displayName: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function useLocalization<TDate extends DateFrameworkType = DateFrameworkType>(): LocalizationProviderValue<TDate>;
|
|
8
|
-
export type { LocalizationProviderContext as LocalizationProviderContextType, LocalizationProviderProps, LocalizationProviderValue, } from "@salt-ds/date-components";
|
|
9
|
-
export { LocalizationProviderContext } from "@salt-ds/date-components";
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef, type ReactNode } from "react";
|
|
2
|
-
export interface MegaMenuContentProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
-
/**
|
|
4
|
-
* The content of the region.
|
|
5
|
-
*/
|
|
6
|
-
children?: ReactNode;
|
|
7
|
-
}
|
|
8
|
-
export declare const MegaMenuContent: import("react").ForwardRefExoticComponent<MegaMenuContentProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef, type ReactNode } from "react";
|
|
2
|
-
export interface MegaMenuItemContentProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
-
/**
|
|
4
|
-
* The content of Mega Menu Item.
|
|
5
|
-
*/
|
|
6
|
-
children?: ReactNode;
|
|
7
|
-
}
|
|
8
|
-
export declare const MegaMenuItemContent: import("react").ForwardRefExoticComponent<MegaMenuItemContentProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
-
export interface MegaMenuSectionProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
-
/**
|
|
4
|
-
* The content of the mega menu section.
|
|
5
|
-
*/
|
|
6
|
-
children?: ReactNode;
|
|
7
|
-
}
|
|
8
|
-
export declare const MegaMenuSection: import("react").ForwardRefExoticComponent<MegaMenuSectionProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef, type SyntheticEvent } from "react";
|
|
2
|
-
export interface TreeProps extends ComponentPropsWithoutRef<"ul"> {
|
|
3
|
-
/**
|
|
4
|
-
* Default expanded nodes (uncontrolled)
|
|
5
|
-
*/
|
|
6
|
-
defaultExpanded?: string[];
|
|
7
|
-
/**
|
|
8
|
-
* Expanded nodes (controlled)
|
|
9
|
-
*/
|
|
10
|
-
expanded?: string[];
|
|
11
|
-
/**
|
|
12
|
-
* Callback on expanded nodes change
|
|
13
|
-
*/
|
|
14
|
-
onExpandedChange?: (event: SyntheticEvent, expanded: string[]) => void;
|
|
15
|
-
/**
|
|
16
|
-
* Default selected nodes (uncontrolled)
|
|
17
|
-
*/
|
|
18
|
-
defaultSelected?: string[];
|
|
19
|
-
/**
|
|
20
|
-
* Selected nodes
|
|
21
|
-
*/
|
|
22
|
-
selected?: string[];
|
|
23
|
-
/**
|
|
24
|
-
* Callback on selected nodes change
|
|
25
|
-
*/
|
|
26
|
-
onSelectionChange?: (event: SyntheticEvent, selected: string[]) => void;
|
|
27
|
-
/**
|
|
28
|
-
* Sets multiselect mode with checkboxes and allows for multiple node selection
|
|
29
|
-
*/
|
|
30
|
-
multiselect?: boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Sets tree to disabled state, preventing all interaction
|
|
33
|
-
*/
|
|
34
|
-
disabled?: boolean;
|
|
35
|
-
}
|
|
36
|
-
export declare const Tree: import("react").ForwardRefExoticComponent<TreeProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
@@ -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>>;
|