@carbon/react 1.63.2 → 1.64.0-rc.0
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/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1523 -1160
- package/es/components/{Slug → AILabel}/index.js +47 -35
- package/es/components/{AiSkeleton/AiSkeletonIcon.d.ts → AISkeleton/AISkeletonIcon.d.ts} +4 -4
- package/es/components/{AiSkeleton/AiSkeletonIcon.js → AISkeleton/AISkeletonIcon.js} +5 -5
- package/es/components/{AiSkeleton/AiSkeletonPlaceholder.d.ts → AISkeleton/AISkeletonPlaceholder.d.ts} +4 -4
- package/es/components/{AiSkeleton/AiSkeletonPlaceholder.js → AISkeleton/AISkeletonPlaceholder.js} +5 -5
- package/es/components/{AiSkeleton/AiSkeletonText.d.ts → AISkeleton/AISkeletonText.d.ts} +4 -4
- package/es/components/{AiSkeleton/AiSkeletonText.js → AISkeleton/AISkeletonText.js} +3 -3
- package/es/components/AISkeleton/index.d.ts +10 -0
- package/es/components/CheckboxGroup/CheckboxGroup.js +1 -1
- package/es/components/ComboBox/ComboBox.js +4 -4
- package/es/components/ComposedModal/ComposedModal.js +1 -1
- package/es/components/DataTable/DataTable.js +1 -1
- package/es/components/DatePickerInput/DatePickerInput.js +1 -1
- package/es/components/Dropdown/Dropdown.js +12 -6
- package/es/components/FluidMultiSelect/FluidMultiSelect.js +4 -2
- package/es/components/Menu/MenuItem.js +45 -63
- package/es/components/Modal/Modal.js +1 -1
- package/es/components/MultiSelect/FilterableMultiSelect.js +44 -23
- package/es/components/MultiSelect/MultiSelect.js +6 -4
- package/es/components/NumberInput/NumberInput.js +2 -2
- package/es/components/OverflowMenu/OverflowMenu.js +2 -1
- package/es/components/OverflowMenu/next/index.js +2 -1
- package/es/components/RadioButtonGroup/RadioButtonGroup.js +1 -1
- package/es/components/RadioTile/RadioTile.js +1 -1
- package/es/components/Select/Select.js +1 -1
- package/es/components/Tabs/Tabs.js +3 -3
- package/es/components/Tag/DismissibleTag.js +1 -1
- package/es/components/Tag/OperationalTag.js +1 -1
- package/es/components/Tag/SelectableTag.js +3 -1
- package/es/components/Tag/Tag.js +1 -1
- package/es/components/TextArea/TextArea.js +1 -1
- package/es/components/TextInput/PasswordInput.js +5 -0
- package/es/components/TextInput/TextInput.js +1 -1
- package/es/components/Tile/Tile.js +2 -2
- package/es/components/TreeView/TreeNode.d.ts +150 -0
- package/es/components/TreeView/TreeNode.js +22 -15
- package/es/components/TreeView/TreeView.d.ts +59 -0
- package/es/components/TreeView/TreeView.js +37 -23
- package/es/components/TreeView/index.d.ts +11 -0
- package/es/components/UIShell/SwitcherItem.d.ts +4 -0
- package/es/components/UIShell/SwitcherItem.js +7 -1
- package/es/index.d.ts +4 -2
- package/es/index.js +6 -6
- package/es/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +143 -0
- package/es/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +39 -0
- package/lib/components/{Slug → AILabel}/index.js +49 -37
- package/lib/components/{AiSkeleton/AiSkeletonIcon.d.ts → AISkeleton/AISkeletonIcon.d.ts} +4 -4
- package/lib/components/{AiSkeleton/AiSkeletonIcon.js → AISkeleton/AISkeletonIcon.js} +5 -5
- package/lib/components/{AiSkeleton/AiSkeletonPlaceholder.d.ts → AISkeleton/AISkeletonPlaceholder.d.ts} +4 -4
- package/lib/components/{AiSkeleton/AiSkeletonPlaceholder.js → AISkeleton/AISkeletonPlaceholder.js} +5 -5
- package/lib/components/{AiSkeleton/AiSkeletonText.d.ts → AISkeleton/AISkeletonText.d.ts} +4 -4
- package/lib/components/{AiSkeleton/AiSkeletonText.js → AISkeleton/AISkeletonText.js} +3 -3
- package/lib/components/AISkeleton/index.d.ts +10 -0
- package/lib/components/CheckboxGroup/CheckboxGroup.js +1 -1
- package/lib/components/ComboBox/ComboBox.js +4 -4
- package/lib/components/ComposedModal/ComposedModal.js +1 -1
- package/lib/components/DataTable/DataTable.js +2 -2
- package/lib/components/DatePickerInput/DatePickerInput.js +1 -1
- package/lib/components/Dropdown/Dropdown.js +12 -6
- package/lib/components/FluidMultiSelect/FluidMultiSelect.js +4 -2
- package/lib/components/Menu/MenuItem.js +44 -62
- package/lib/components/Modal/Modal.js +1 -1
- package/lib/components/MultiSelect/FilterableMultiSelect.js +43 -22
- package/lib/components/MultiSelect/MultiSelect.js +6 -4
- package/lib/components/NumberInput/NumberInput.js +2 -2
- package/lib/components/OverflowMenu/OverflowMenu.js +2 -1
- package/lib/components/OverflowMenu/next/index.js +2 -1
- package/lib/components/RadioButtonGroup/RadioButtonGroup.js +1 -1
- package/lib/components/RadioTile/RadioTile.js +1 -1
- package/lib/components/Select/Select.js +1 -1
- package/lib/components/Tabs/Tabs.js +2 -2
- package/lib/components/Tag/DismissibleTag.js +1 -1
- package/lib/components/Tag/OperationalTag.js +1 -1
- package/lib/components/Tag/SelectableTag.js +3 -1
- package/lib/components/Tag/Tag.js +1 -1
- package/lib/components/TextArea/TextArea.js +1 -1
- package/lib/components/TextInput/PasswordInput.js +5 -0
- package/lib/components/TextInput/TextInput.js +1 -1
- package/lib/components/Tile/Tile.js +2 -2
- package/lib/components/TreeView/TreeNode.d.ts +150 -0
- package/lib/components/TreeView/TreeNode.js +24 -17
- package/lib/components/TreeView/TreeView.d.ts +59 -0
- package/lib/components/TreeView/TreeView.js +39 -25
- package/lib/components/TreeView/index.d.ts +11 -0
- package/lib/components/UIShell/SwitcherItem.d.ts +4 -0
- package/lib/components/UIShell/SwitcherItem.js +7 -1
- package/lib/index.d.ts +4 -2
- package/lib/index.js +20 -14
- package/lib/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +148 -0
- package/lib/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +47 -0
- package/package.json +4 -4
- package/scss/components/ai-label/_ai-label.scss +9 -0
- package/scss/components/ai-label/_index.scss +9 -0
- package/es/components/AiSkeleton/index.d.ts +0 -10
- package/es/components/DataTable/tools/instanceId.js +0 -20
- package/lib/components/AiSkeleton/index.d.ts +0 -10
- package/lib/components/DataTable/tools/instanceId.js +0 -24
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2016, 2023
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React, { ComponentType, FunctionComponent } from 'react';
|
|
8
|
+
export type TreeNodeProps = {
|
|
9
|
+
/**
|
|
10
|
+
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
11
|
+
* The ID of the active node in the tree
|
|
12
|
+
*/
|
|
13
|
+
active?: string | number;
|
|
14
|
+
/**
|
|
15
|
+
* Specify the children of the TreeNode
|
|
16
|
+
*/
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Specify an optional className to be applied to the TreeNode
|
|
20
|
+
*/
|
|
21
|
+
className?: string;
|
|
22
|
+
/**
|
|
23
|
+
* **[Experimental]** The default expansion state of the node.
|
|
24
|
+
* *This is only supported with the `enable-treeview-controllable` feature flag!*
|
|
25
|
+
*/
|
|
26
|
+
defaultIsExpanded?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
29
|
+
* TreeNode depth to determine spacing
|
|
30
|
+
*/
|
|
31
|
+
depth?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Specify if the TreeNode is disabled
|
|
34
|
+
*/
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Specify the TreeNode's ID. Must be unique in the DOM and is used for props.active and props.selected
|
|
38
|
+
*/
|
|
39
|
+
id?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Specify if the TreeNode is expanded (only applicable to parent nodes)
|
|
42
|
+
*/
|
|
43
|
+
isExpanded?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Rendered label for the TreeNode
|
|
46
|
+
*/
|
|
47
|
+
label: React.ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Callback function for when the node receives or loses focus
|
|
50
|
+
*/
|
|
51
|
+
onNodeFocusEvent?: (event: React.FocusEvent<HTMLLIElement>) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Callback function for when the node is selected
|
|
54
|
+
*/
|
|
55
|
+
onSelect?: (event: React.MouseEvent, node?: TreeNodeProps) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Callback function for when a parent node is expanded or collapsed
|
|
58
|
+
*/
|
|
59
|
+
onToggle?: (event: React.MouseEvent, node?: TreeNodeProps) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Callback function for when any node in the tree is selected
|
|
62
|
+
*/
|
|
63
|
+
onTreeSelect?: (event: React.MouseEvent, node?: TreeNodeProps) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Optional prop to allow each node to have an associated icon.
|
|
66
|
+
* Can be a React component class
|
|
67
|
+
*/
|
|
68
|
+
renderIcon?: ComponentType | FunctionComponent;
|
|
69
|
+
/**
|
|
70
|
+
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
71
|
+
* Array containing all selected node IDs in the tree
|
|
72
|
+
*/
|
|
73
|
+
selected?: Array<string | number>;
|
|
74
|
+
/**
|
|
75
|
+
* Specify the value of the TreeNode
|
|
76
|
+
*/
|
|
77
|
+
value?: string;
|
|
78
|
+
} & Omit<React.LiHTMLAttributes<HTMLLIElement>, 'onSelect'>;
|
|
79
|
+
declare const TreeNode: React.ForwardRefExoticComponent<{
|
|
80
|
+
/**
|
|
81
|
+
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
82
|
+
* The ID of the active node in the tree
|
|
83
|
+
*/
|
|
84
|
+
active?: string | number | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Specify the children of the TreeNode
|
|
87
|
+
*/
|
|
88
|
+
children?: React.ReactNode;
|
|
89
|
+
/**
|
|
90
|
+
* Specify an optional className to be applied to the TreeNode
|
|
91
|
+
*/
|
|
92
|
+
className?: string | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* **[Experimental]** The default expansion state of the node.
|
|
95
|
+
* *This is only supported with the `enable-treeview-controllable` feature flag!*
|
|
96
|
+
*/
|
|
97
|
+
defaultIsExpanded?: boolean | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
100
|
+
* TreeNode depth to determine spacing
|
|
101
|
+
*/
|
|
102
|
+
depth?: number | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Specify if the TreeNode is disabled
|
|
105
|
+
*/
|
|
106
|
+
disabled?: boolean | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Specify the TreeNode's ID. Must be unique in the DOM and is used for props.active and props.selected
|
|
109
|
+
*/
|
|
110
|
+
id?: string | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Specify if the TreeNode is expanded (only applicable to parent nodes)
|
|
113
|
+
*/
|
|
114
|
+
isExpanded?: boolean | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* Rendered label for the TreeNode
|
|
117
|
+
*/
|
|
118
|
+
label: React.ReactNode;
|
|
119
|
+
/**
|
|
120
|
+
* Callback function for when the node receives or loses focus
|
|
121
|
+
*/
|
|
122
|
+
onNodeFocusEvent?: ((event: React.FocusEvent<HTMLLIElement>) => void) | undefined;
|
|
123
|
+
/**
|
|
124
|
+
* Callback function for when the node is selected
|
|
125
|
+
*/
|
|
126
|
+
onSelect?: ((event: React.MouseEvent, node?: TreeNodeProps) => void) | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Callback function for when a parent node is expanded or collapsed
|
|
129
|
+
*/
|
|
130
|
+
onToggle?: ((event: React.MouseEvent, node?: TreeNodeProps) => void) | undefined;
|
|
131
|
+
/**
|
|
132
|
+
* Callback function for when any node in the tree is selected
|
|
133
|
+
*/
|
|
134
|
+
onTreeSelect?: ((event: React.MouseEvent, node?: TreeNodeProps) => void) | undefined;
|
|
135
|
+
/**
|
|
136
|
+
* Optional prop to allow each node to have an associated icon.
|
|
137
|
+
* Can be a React component class
|
|
138
|
+
*/
|
|
139
|
+
renderIcon?: React.ComponentType<{}> | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
142
|
+
* Array containing all selected node IDs in the tree
|
|
143
|
+
*/
|
|
144
|
+
selected?: (string | number)[] | undefined;
|
|
145
|
+
/**
|
|
146
|
+
* Specify the value of the TreeNode
|
|
147
|
+
*/
|
|
148
|
+
value?: string | undefined;
|
|
149
|
+
} & Omit<React.LiHTMLAttributes<HTMLLIElement>, "onSelect"> & React.RefAttributes<HTMLLIElement>>;
|
|
150
|
+
export default TreeNode;
|
|
@@ -10,29 +10,29 @@
|
|
|
10
10
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
11
|
|
|
12
12
|
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
|
13
|
-
var React = require('react');
|
|
14
|
-
var PropTypes = require('prop-types');
|
|
15
13
|
var iconsReact = require('@carbon/icons-react');
|
|
16
14
|
var cx = require('classnames');
|
|
17
|
-
var
|
|
18
|
-
var
|
|
15
|
+
var PropTypes = require('prop-types');
|
|
16
|
+
var React = require('react');
|
|
19
17
|
var useControllableState = require('../../internal/useControllableState.js');
|
|
18
|
+
var usePrefix = require('../../internal/usePrefix.js');
|
|
19
|
+
var uniqueId = require('../../tools/uniqueId.js');
|
|
20
20
|
var index = require('../FeatureFlags/index.js');
|
|
21
21
|
var match = require('../../internal/keyboard/match.js');
|
|
22
22
|
var keys = require('../../internal/keyboard/keys.js');
|
|
23
23
|
|
|
24
24
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
25
25
|
|
|
26
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
27
|
-
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
28
26
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
27
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
28
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
29
29
|
|
|
30
30
|
const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
|
|
31
31
|
let {
|
|
32
32
|
active,
|
|
33
33
|
children,
|
|
34
34
|
className,
|
|
35
|
-
depth,
|
|
35
|
+
depth: propDepth,
|
|
36
36
|
disabled,
|
|
37
37
|
id: nodeId,
|
|
38
38
|
isExpanded,
|
|
@@ -43,10 +43,13 @@ const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =
|
|
|
43
43
|
onToggle,
|
|
44
44
|
onTreeSelect,
|
|
45
45
|
renderIcon: Icon,
|
|
46
|
-
selected,
|
|
46
|
+
selected: propSelected,
|
|
47
47
|
value,
|
|
48
48
|
...rest
|
|
49
49
|
} = _ref;
|
|
50
|
+
// These are provided by the parent TreeView component
|
|
51
|
+
const depth = propDepth;
|
|
52
|
+
const selected = propSelected;
|
|
50
53
|
const enableTreeviewControllable = index.useFeatureFlag('enable-treeview-controllable');
|
|
51
54
|
const {
|
|
52
55
|
current: id
|
|
@@ -151,7 +154,7 @@ const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =
|
|
|
151
154
|
* When focus is on a leaf node or a closed parent node, move focus to
|
|
152
155
|
* its parent node (unless its depth is level 1)
|
|
153
156
|
*/
|
|
154
|
-
findParentTreeNode(currentNode.current
|
|
157
|
+
findParentTreeNode(currentNode.current?.parentNode)?.focus();
|
|
155
158
|
}
|
|
156
159
|
}
|
|
157
160
|
if (children && match.match(event, keys.ArrowRight)) {
|
|
@@ -160,7 +163,7 @@ const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =
|
|
|
160
163
|
* When focus is on an expanded parent node, move focus to the first
|
|
161
164
|
* child node
|
|
162
165
|
*/
|
|
163
|
-
currentNode.current
|
|
166
|
+
(currentNode.current?.lastChild?.firstChild).focus();
|
|
164
167
|
} else {
|
|
165
168
|
if (!enableTreeviewControllable) {
|
|
166
169
|
onToggle?.(event, {
|
|
@@ -227,8 +230,8 @@ const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =
|
|
|
227
230
|
}, [children, depth, Icon, isExpanded, enableTreeviewControllable, setExpanded]);
|
|
228
231
|
const treeNodeProps = {
|
|
229
232
|
...rest,
|
|
230
|
-
['aria-current']: isActive ||
|
|
231
|
-
['aria-selected']: disabled ?
|
|
233
|
+
['aria-current']: isActive || undefined,
|
|
234
|
+
['aria-selected']: disabled ? undefined : isSelected,
|
|
232
235
|
['aria-disabled']: disabled,
|
|
233
236
|
className: treeNodeClasses,
|
|
234
237
|
id,
|
|
@@ -236,8 +239,9 @@ const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =
|
|
|
236
239
|
onClick: handleClick,
|
|
237
240
|
onFocus: handleFocusEvent,
|
|
238
241
|
onKeyDown: handleKeyDown,
|
|
239
|
-
|
|
240
|
-
|
|
242
|
+
role: 'treeitem',
|
|
243
|
+
// @ts-ignore
|
|
244
|
+
ref: currentNode
|
|
241
245
|
};
|
|
242
246
|
if (!children) {
|
|
243
247
|
return /*#__PURE__*/React__default["default"].createElement("li", treeNodeProps, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
@@ -257,7 +261,9 @@ const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =
|
|
|
257
261
|
className: `${prefix}--tree-node__label`,
|
|
258
262
|
ref: currentNodeLabel
|
|
259
263
|
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
260
|
-
className: `${prefix}--tree-parent-node__toggle
|
|
264
|
+
className: `${prefix}--tree-parent-node__toggle`
|
|
265
|
+
// @ts-ignore
|
|
266
|
+
,
|
|
261
267
|
disabled: disabled,
|
|
262
268
|
onClick: handleToggleClick
|
|
263
269
|
}, /*#__PURE__*/React__default["default"].createElement(iconsReact.CaretDown, {
|
|
@@ -332,11 +338,13 @@ TreeNode.propTypes = {
|
|
|
332
338
|
* Optional prop to allow each node to have an associated icon.
|
|
333
339
|
* Can be a React component class
|
|
334
340
|
*/
|
|
341
|
+
// @ts-ignore
|
|
335
342
|
renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
|
|
336
343
|
/**
|
|
337
344
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
338
345
|
* Array containing all selected node IDs in the tree
|
|
339
346
|
*/
|
|
347
|
+
// @ts-ignore
|
|
340
348
|
selected: PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])),
|
|
341
349
|
/**
|
|
342
350
|
* Specify the value of the TreeNode
|
|
@@ -344,6 +352,5 @@ TreeNode.propTypes = {
|
|
|
344
352
|
value: PropTypes__default["default"].string
|
|
345
353
|
};
|
|
346
354
|
TreeNode.displayName = 'TreeNode';
|
|
347
|
-
var TreeNode$1 = TreeNode;
|
|
348
355
|
|
|
349
|
-
exports["default"] = TreeNode
|
|
356
|
+
exports["default"] = TreeNode;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2016, 2023
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import TreeNode from './TreeNode';
|
|
9
|
+
export type TreeViewProps = {
|
|
10
|
+
/**
|
|
11
|
+
* Mark the active node in the tree, represented by its ID
|
|
12
|
+
*/
|
|
13
|
+
active?: string | number;
|
|
14
|
+
/**
|
|
15
|
+
* Specify the children of the TreeView
|
|
16
|
+
*/
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Specify an optional className to be applied to the TreeView
|
|
20
|
+
*/
|
|
21
|
+
className?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Specify whether or not the label should be hidden
|
|
24
|
+
*/
|
|
25
|
+
hideLabel?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Provide the label text that will be read by a screen reader
|
|
28
|
+
*/
|
|
29
|
+
label: string;
|
|
30
|
+
/**
|
|
31
|
+
* **[Experimental]** Specify the selection mode of the tree.
|
|
32
|
+
* If `multiselect` is `false` then only one node can be selected at a time
|
|
33
|
+
*/
|
|
34
|
+
multiselect?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* **[Experimental]** Callback function that is called when any node is activated.
|
|
37
|
+
* *This is only supported with the `enable-treeview-controllable` feature flag!*
|
|
38
|
+
*/
|
|
39
|
+
onActivate?: (activated?: string | number) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Callback function that is called when any node is selected
|
|
42
|
+
*/
|
|
43
|
+
onSelect?: (selected: Array<string | number>, payload: any) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Array representing all selected node IDs in the tree
|
|
46
|
+
*/
|
|
47
|
+
selected?: Array<string | number>;
|
|
48
|
+
/**
|
|
49
|
+
* Specify the size of the tree from a list of available sizes.
|
|
50
|
+
*/
|
|
51
|
+
size?: 'xs' | 'sm';
|
|
52
|
+
} & React.HTMLAttributes<HTMLUListElement>;
|
|
53
|
+
type TreeViewComponent = {
|
|
54
|
+
(props: TreeViewProps): JSX.Element;
|
|
55
|
+
propTypes?: any;
|
|
56
|
+
TreeNode: typeof TreeNode;
|
|
57
|
+
};
|
|
58
|
+
declare const TreeView: TreeViewComponent;
|
|
59
|
+
export default TreeView;
|
|
@@ -10,23 +10,24 @@
|
|
|
10
10
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
11
|
|
|
12
12
|
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
|
13
|
-
var React = require('react');
|
|
14
|
-
var PropTypes = require('prop-types');
|
|
15
13
|
var cx = require('classnames');
|
|
16
|
-
var
|
|
17
|
-
var
|
|
14
|
+
var PropTypes = require('prop-types');
|
|
15
|
+
var React = require('react');
|
|
18
16
|
var useControllableState = require('../../internal/useControllableState.js');
|
|
17
|
+
var usePrefix = require('../../internal/usePrefix.js');
|
|
18
|
+
var uniqueId = require('../../tools/uniqueId.js');
|
|
19
19
|
var index = require('../FeatureFlags/index.js');
|
|
20
|
+
var TreeNode = require('./TreeNode.js');
|
|
20
21
|
var match = require('../../internal/keyboard/match.js');
|
|
21
22
|
var keys = require('../../internal/keyboard/keys.js');
|
|
22
23
|
|
|
23
24
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
24
25
|
|
|
25
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
26
|
-
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
27
26
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
27
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
28
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
const TreeView = _ref => {
|
|
30
31
|
let {
|
|
31
32
|
active: prespecifiedActive,
|
|
32
33
|
children,
|
|
@@ -46,6 +47,7 @@ function TreeView(_ref) {
|
|
|
46
47
|
} = React.useRef(rest.id || uniqueId["default"]());
|
|
47
48
|
const prefix = usePrefix.usePrefix();
|
|
48
49
|
const treeClasses = cx__default["default"](className, `${prefix}--tree`, {
|
|
50
|
+
// @ts-ignore - will always be false according to prop types
|
|
49
51
|
[`${prefix}--tree--${size}`]: size !== 'default'
|
|
50
52
|
});
|
|
51
53
|
const treeRootRef = React.useRef(null);
|
|
@@ -71,9 +73,7 @@ function TreeView(_ref) {
|
|
|
71
73
|
}
|
|
72
74
|
function handleTreeSelect(event) {
|
|
73
75
|
let node = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
74
|
-
const
|
|
75
|
-
id: nodeId
|
|
76
|
-
} = node;
|
|
76
|
+
const nodeId = node.id;
|
|
77
77
|
if (multiselect && (event.metaKey || event.ctrlKey)) {
|
|
78
78
|
if (!selected.includes(nodeId)) {
|
|
79
79
|
setSelected(selected.concat(nodeId));
|
|
@@ -117,14 +117,15 @@ function TreeView(_ref) {
|
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
let focusTarget = false;
|
|
120
|
-
const nodesWithProps = React__default["default"].Children.map(children,
|
|
120
|
+
const nodesWithProps = React__default["default"].Children.map(children, _node => {
|
|
121
|
+
const node = _node;
|
|
121
122
|
const sharedNodeProps = {
|
|
122
123
|
active,
|
|
123
124
|
depth: 0,
|
|
124
125
|
onNodeFocusEvent: handleFocusEvent,
|
|
125
126
|
onTreeSelect: handleTreeSelect,
|
|
126
127
|
selected,
|
|
127
|
-
tabIndex: !node.props.disabled && -1 ||
|
|
128
|
+
tabIndex: !node.props.disabled && -1 || undefined
|
|
128
129
|
};
|
|
129
130
|
if (!focusTarget && !node.props.disabled) {
|
|
130
131
|
sharedNodeProps.tabIndex = 0;
|
|
@@ -136,40 +137,47 @@ function TreeView(_ref) {
|
|
|
136
137
|
});
|
|
137
138
|
function handleKeyDown(event) {
|
|
138
139
|
event.stopPropagation();
|
|
139
|
-
if (match.matches(event, [keys.ArrowUp, keys.ArrowDown, keys.Home, keys.End,
|
|
140
|
+
if (match.matches(event, [keys.ArrowUp, keys.ArrowDown, keys.Home, keys.End,
|
|
141
|
+
// @ts-ignore - `matches` doesn't like the object syntax without missing properties
|
|
142
|
+
{
|
|
140
143
|
code: 'KeyA'
|
|
141
144
|
}])) {
|
|
142
145
|
event.preventDefault();
|
|
143
146
|
}
|
|
147
|
+
if (!treeWalker.current) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
144
150
|
treeWalker.current.currentNode = event.target;
|
|
145
|
-
let nextFocusNode;
|
|
151
|
+
let nextFocusNode = null;
|
|
146
152
|
if (match.match(event, keys.ArrowUp)) {
|
|
147
153
|
nextFocusNode = treeWalker.current.previousNode();
|
|
148
154
|
}
|
|
149
155
|
if (match.match(event, keys.ArrowDown)) {
|
|
150
156
|
nextFocusNode = treeWalker.current.nextNode();
|
|
151
157
|
}
|
|
158
|
+
// @ts-ignore - `matches` doesn't like the object syntax without missing properties
|
|
152
159
|
if (match.matches(event, [keys.Home, keys.End, {
|
|
153
160
|
code: 'KeyA'
|
|
154
161
|
}])) {
|
|
155
162
|
const nodeIds = [];
|
|
156
163
|
if (match.matches(event, [keys.Home, keys.End])) {
|
|
157
|
-
if (multiselect && event.shiftKey && event.ctrlKey && !treeWalker.current.currentNode.getAttribute('aria-disabled')) {
|
|
164
|
+
if (multiselect && event.shiftKey && event.ctrlKey && treeWalker.current.currentNode instanceof Element && !treeWalker.current.currentNode.getAttribute('aria-disabled')) {
|
|
158
165
|
nodeIds.push(treeWalker.current.currentNode?.id);
|
|
159
166
|
}
|
|
160
167
|
while (match.match(event, keys.Home) ? treeWalker.current.previousNode() : treeWalker.current.nextNode()) {
|
|
161
168
|
nextFocusNode = treeWalker.current.currentNode;
|
|
162
|
-
if (multiselect && event.shiftKey && event.ctrlKey && !nextFocusNode.getAttribute('aria-disabled')) {
|
|
169
|
+
if (multiselect && event.shiftKey && event.ctrlKey && nextFocusNode instanceof Element && !nextFocusNode.getAttribute('aria-disabled')) {
|
|
163
170
|
nodeIds.push(nextFocusNode?.id);
|
|
164
171
|
}
|
|
165
172
|
}
|
|
166
173
|
}
|
|
174
|
+
// @ts-ignore - `matches` doesn't like the object syntax without missing properties
|
|
167
175
|
if (match.match(event, {
|
|
168
176
|
code: 'KeyA'
|
|
169
177
|
}) && event.ctrlKey) {
|
|
170
178
|
treeWalker.current.currentNode = treeWalker.current.root;
|
|
171
179
|
while (treeWalker.current.nextNode()) {
|
|
172
|
-
if (!treeWalker.current.currentNode.getAttribute('aria-disabled')) {
|
|
180
|
+
if (treeWalker.current.currentNode instanceof Element && !treeWalker.current.currentNode.getAttribute('aria-disabled')) {
|
|
173
181
|
nodeIds.push(treeWalker.current.currentNode?.id);
|
|
174
182
|
}
|
|
175
183
|
}
|
|
@@ -178,14 +186,19 @@ function TreeView(_ref) {
|
|
|
178
186
|
}
|
|
179
187
|
if (nextFocusNode && nextFocusNode !== event.target) {
|
|
180
188
|
resetNodeTabIndices();
|
|
181
|
-
nextFocusNode
|
|
182
|
-
|
|
189
|
+
if (nextFocusNode instanceof HTMLElement) {
|
|
190
|
+
nextFocusNode.tabIndex = 0;
|
|
191
|
+
nextFocusNode.focus();
|
|
192
|
+
}
|
|
183
193
|
}
|
|
184
194
|
rest?.onKeyDown?.(event);
|
|
185
195
|
}
|
|
186
196
|
React.useEffect(() => {
|
|
187
197
|
treeWalker.current = treeWalker.current ?? document.createTreeWalker(treeRootRef?.current, NodeFilter.SHOW_ELEMENT, {
|
|
188
198
|
acceptNode: function (node) {
|
|
199
|
+
if (!(node instanceof Element)) {
|
|
200
|
+
return NodeFilter.FILTER_SKIP;
|
|
201
|
+
}
|
|
189
202
|
if (node.classList.contains(`${prefix}--tree-node--disabled`)) {
|
|
190
203
|
return NodeFilter.FILTER_REJECT;
|
|
191
204
|
}
|
|
@@ -208,20 +221,20 @@ function TreeView(_ref) {
|
|
|
208
221
|
}, []);
|
|
209
222
|
useActiveAndSelectedOnMount();
|
|
210
223
|
const labelId = `${treeId}__label`;
|
|
211
|
-
const TreeLabel = () => !hideLabel
|
|
224
|
+
const TreeLabel = () => !hideLabel ? /*#__PURE__*/React__default["default"].createElement("label", {
|
|
212
225
|
id: labelId,
|
|
213
226
|
className: `${prefix}--label`
|
|
214
|
-
}, label);
|
|
227
|
+
}, label) : null;
|
|
215
228
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(TreeLabel, null), /*#__PURE__*/React__default["default"].createElement("ul", _rollupPluginBabelHelpers["extends"]({}, rest, {
|
|
216
|
-
"aria-label": hideLabel ? label :
|
|
217
|
-
"aria-labelledby": !hideLabel ? labelId :
|
|
218
|
-
"aria-multiselectable": multiselect ||
|
|
229
|
+
"aria-label": hideLabel ? label : undefined,
|
|
230
|
+
"aria-labelledby": !hideLabel ? labelId : undefined,
|
|
231
|
+
"aria-multiselectable": multiselect || undefined,
|
|
219
232
|
className: treeClasses,
|
|
220
233
|
onKeyDown: handleKeyDown,
|
|
221
234
|
ref: treeRootRef,
|
|
222
235
|
role: "tree"
|
|
223
236
|
}), nodesWithProps));
|
|
224
|
-
}
|
|
237
|
+
};
|
|
225
238
|
TreeView.propTypes = {
|
|
226
239
|
/**
|
|
227
240
|
* Mark the active node in the tree, represented by its ID
|
|
@@ -266,5 +279,6 @@ TreeView.propTypes = {
|
|
|
266
279
|
*/
|
|
267
280
|
size: PropTypes__default["default"].oneOf(['xs', 'sm'])
|
|
268
281
|
};
|
|
282
|
+
TreeView.TreeNode = TreeNode["default"];
|
|
269
283
|
|
|
270
284
|
exports["default"] = TreeView;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2016, 2023
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import TreeNode, { TreeNodeProps } from './TreeNode';
|
|
8
|
+
import TreeView, { TreeViewProps } from './TreeView';
|
|
9
|
+
export { TreeNode, TreeView };
|
|
10
|
+
export type { TreeViewProps, TreeNodeProps };
|
|
11
|
+
export default TreeView;
|
|
@@ -47,6 +47,10 @@ interface BaseSwitcherItemProps {
|
|
|
47
47
|
* Specify where to open the link.
|
|
48
48
|
*/
|
|
49
49
|
target?: HTMLAttributeAnchorTarget;
|
|
50
|
+
/**
|
|
51
|
+
* The rel property for the link.
|
|
52
|
+
*/
|
|
53
|
+
rel?: string;
|
|
50
54
|
}
|
|
51
55
|
interface SwitcherItemWithAriaLabel extends BaseSwitcherItemProps {
|
|
52
56
|
'aria-label': string;
|
|
@@ -39,6 +39,7 @@ const SwitcherItem = /*#__PURE__*/React.forwardRef(function SwitcherItem(props,
|
|
|
39
39
|
onKeyDown = () => {},
|
|
40
40
|
href,
|
|
41
41
|
target,
|
|
42
|
+
rel,
|
|
42
43
|
...rest
|
|
43
44
|
} = props;
|
|
44
45
|
const prefix = usePrefix.usePrefix();
|
|
@@ -77,6 +78,7 @@ const SwitcherItem = /*#__PURE__*/React.forwardRef(function SwitcherItem(props,
|
|
|
77
78
|
},
|
|
78
79
|
href: href,
|
|
79
80
|
target: target,
|
|
81
|
+
rel: rel,
|
|
80
82
|
ref: forwardRef
|
|
81
83
|
}, rest, {
|
|
82
84
|
className: linkClassName,
|
|
@@ -121,7 +123,11 @@ SwitcherItem.propTypes = {
|
|
|
121
123
|
/**
|
|
122
124
|
* Specify where to open the link.
|
|
123
125
|
*/
|
|
124
|
-
target: PropTypes__default["default"].string
|
|
126
|
+
target: PropTypes__default["default"].string,
|
|
127
|
+
/**
|
|
128
|
+
* The rel property for the link.
|
|
129
|
+
*/
|
|
130
|
+
rel: PropTypes__default["default"].string
|
|
125
131
|
};
|
|
126
132
|
|
|
127
133
|
exports["default"] = SwitcherItem;
|
package/lib/index.d.ts
CHANGED
|
@@ -116,9 +116,11 @@ export { OverflowMenuV2 as unstable_OverflowMenuV2 } from './components/Overflow
|
|
|
116
116
|
export { PageSelector as unstable_PageSelector, Pagination as unstable_Pagination, } from './components/Pagination/experimental';
|
|
117
117
|
export * from './components/Popover';
|
|
118
118
|
export * from './components/ProgressBar';
|
|
119
|
-
export {
|
|
119
|
+
export { AILabel, AILabelContent, AILabelActions } from './components/AILabel';
|
|
120
|
+
export { AILabel as unstable__Slug, AILabelContent as unstable__SlugContent, AILabelActions as unstable__SlugActions, } from './components/AILabel';
|
|
120
121
|
export { ChatButton as unstable__ChatButton, ChatButtonSkeleton as unstable__ChatButtonSkeleton, } from './components/ChatButton';
|
|
121
|
-
export {
|
|
122
|
+
export { AISkeletonText, AISkeletonIcon, AISkeletonPlaceholder, } from './components/AISkeleton';
|
|
123
|
+
export { AISkeletonText as unstable__AiSkeletonText, AISkeletonIcon as unstable__AiSkeletonIcon, AISkeletonPlaceholder as unstable__AiSkeletonPlaceholder, } from './components/AISkeleton';
|
|
122
124
|
export * from './components/Stack';
|
|
123
125
|
export * from './components/Tooltip';
|
|
124
126
|
export { Text as unstable_Text, TextDirection as unstable_TextDirection, } from './components/Text';
|
package/lib/index.js
CHANGED
|
@@ -130,6 +130,8 @@ var Toggle = require('./components/Toggle/Toggle.js');
|
|
|
130
130
|
var Toggle_Skeleton = require('./components/Toggle/Toggle.Skeleton.js');
|
|
131
131
|
var ToggleSmall_Skeleton = require('./components/ToggleSmall/ToggleSmall.Skeleton.js');
|
|
132
132
|
var index$b = require('./components/Toggletip/index.js');
|
|
133
|
+
var TreeNode = require('./components/TreeView/TreeNode.js');
|
|
134
|
+
var TreeView = require('./components/TreeView/TreeView.js');
|
|
133
135
|
var Content = require('./components/UIShell/Content.js');
|
|
134
136
|
var Header = require('./components/UIShell/Header.js');
|
|
135
137
|
var HeaderContainer = require('./components/UIShell/HeaderContainer.js');
|
|
@@ -168,10 +170,10 @@ var index$1 = require('./components/Layout/index.js');
|
|
|
168
170
|
var index$2 = require('./components/OverflowMenuV2/index.js');
|
|
169
171
|
var index$f = require('./components/Popover/index.js');
|
|
170
172
|
var ProgressBar = require('./components/ProgressBar/ProgressBar.js');
|
|
171
|
-
var index$3 = require('./components/
|
|
172
|
-
var
|
|
173
|
-
var
|
|
174
|
-
var
|
|
173
|
+
var index$3 = require('./components/AILabel/index.js');
|
|
174
|
+
var AISkeletonPlaceholder = require('./components/AISkeleton/AISkeletonPlaceholder.js');
|
|
175
|
+
var AISkeletonIcon = require('./components/AISkeleton/AISkeletonIcon.js');
|
|
176
|
+
var AISkeletonText = require('./components/AISkeleton/AISkeletonText.js');
|
|
175
177
|
var DefinitionTooltip = require('./components/Tooltip/DefinitionTooltip.js');
|
|
176
178
|
var Tooltip = require('./components/Tooltip/Tooltip.js');
|
|
177
179
|
require('./components/Text/index.js');
|
|
@@ -192,7 +194,6 @@ var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
|
|
|
192
194
|
var Slider_Skeleton = require('./components/Slider/Slider.Skeleton.js');
|
|
193
195
|
var TextInput_Skeleton = require('./components/TextInput/TextInput.Skeleton.js');
|
|
194
196
|
var TextInput = require('./components/TextInput/TextInput.js');
|
|
195
|
-
var TreeView = require('./components/TreeView/TreeView.js');
|
|
196
197
|
var FluidComboBox = require('./components/FluidComboBox/FluidComboBox.js');
|
|
197
198
|
var FluidComboBox_Skeleton = require('./components/FluidComboBox/FluidComboBox.Skeleton.js');
|
|
198
199
|
var FluidDatePicker = require('./components/FluidDatePicker/FluidDatePicker.js');
|
|
@@ -238,7 +239,6 @@ var TableToolbarSearch = require('./components/DataTable/TableToolbarSearch.js')
|
|
|
238
239
|
var TableToolbarMenu = require('./components/DataTable/TableToolbarMenu.js');
|
|
239
240
|
var FilterableMultiSelect = require('./components/MultiSelect/FilterableMultiSelect.js');
|
|
240
241
|
var MultiSelect = require('./components/MultiSelect/MultiSelect.js');
|
|
241
|
-
var TreeNode = require('./components/TreeView/TreeNode.js');
|
|
242
242
|
|
|
243
243
|
|
|
244
244
|
|
|
@@ -394,6 +394,8 @@ exports.ToggletipActions = index$b.ToggletipActions;
|
|
|
394
394
|
exports.ToggletipButton = index$b.ToggletipButton;
|
|
395
395
|
exports.ToggletipContent = index$b.ToggletipContent;
|
|
396
396
|
exports.ToggletipLabel = index$b.ToggletipLabel;
|
|
397
|
+
exports.TreeNode = TreeNode["default"];
|
|
398
|
+
exports.TreeView = TreeView["default"];
|
|
397
399
|
exports.Content = Content["default"];
|
|
398
400
|
exports.Header = Header["default"];
|
|
399
401
|
exports.HeaderContainer = HeaderContainer["default"];
|
|
@@ -438,12 +440,18 @@ exports.unstable_OverflowMenuV2 = index$2.OverflowMenuV2;
|
|
|
438
440
|
exports.Popover = index$f.Popover;
|
|
439
441
|
exports.PopoverContent = index$f.PopoverContent;
|
|
440
442
|
exports.ProgressBar = ProgressBar["default"];
|
|
441
|
-
exports.
|
|
442
|
-
exports.
|
|
443
|
-
exports.
|
|
444
|
-
exports.
|
|
445
|
-
exports.
|
|
446
|
-
exports.
|
|
443
|
+
exports.AILabel = index$3.AILabel;
|
|
444
|
+
exports.AILabelActions = index$3.AILabelActions;
|
|
445
|
+
exports.AILabelContent = index$3.AILabelContent;
|
|
446
|
+
exports.unstable__Slug = index$3.AILabel;
|
|
447
|
+
exports.unstable__SlugActions = index$3.AILabelActions;
|
|
448
|
+
exports.unstable__SlugContent = index$3.AILabelContent;
|
|
449
|
+
exports.AISkeletonPlaceholder = AISkeletonPlaceholder["default"];
|
|
450
|
+
exports.unstable__AiSkeletonPlaceholder = AISkeletonPlaceholder["default"];
|
|
451
|
+
exports.AISkeletonIcon = AISkeletonIcon["default"];
|
|
452
|
+
exports.unstable__AiSkeletonIcon = AISkeletonIcon["default"];
|
|
453
|
+
exports.AISkeletonText = AISkeletonText["default"];
|
|
454
|
+
exports.unstable__AiSkeletonText = AISkeletonText["default"];
|
|
447
455
|
exports.DefinitionTooltip = DefinitionTooltip.DefinitionTooltip;
|
|
448
456
|
exports.Tooltip = Tooltip.Tooltip;
|
|
449
457
|
exports.GlobalTheme = index$g.GlobalTheme;
|
|
@@ -468,7 +476,6 @@ exports.useContextMenu = useContextMenu["default"];
|
|
|
468
476
|
exports.SliderSkeleton = Slider_Skeleton["default"];
|
|
469
477
|
exports.TextInputSkeleton = TextInput_Skeleton["default"];
|
|
470
478
|
exports.TextInput = TextInput["default"];
|
|
471
|
-
exports.TreeView = TreeView["default"];
|
|
472
479
|
exports.unstable__FluidComboBox = FluidComboBox["default"];
|
|
473
480
|
exports.unstable__FluidComboBoxSkeleton = FluidComboBox_Skeleton["default"];
|
|
474
481
|
exports.unstable__FluidDatePicker = FluidDatePicker["default"];
|
|
@@ -514,4 +521,3 @@ exports.TableToolbarSearch = TableToolbarSearch["default"];
|
|
|
514
521
|
exports.TableToolbarMenu = TableToolbarMenu["default"];
|
|
515
522
|
exports.FilterableMultiSelect = FilterableMultiSelect["default"];
|
|
516
523
|
exports.MultiSelect = MultiSelect["default"];
|
|
517
|
-
exports.TreeNode = TreeNode["default"];
|