@itwin/itwinui-react 1.31.0 → 1.33.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/CHANGELOG.md +25 -0
- package/cjs/core/ButtonGroup/ButtonGroup.d.ts +8 -1
- package/cjs/core/ButtonGroup/ButtonGroup.js +7 -3
- package/cjs/core/Checkbox/Checkbox.d.ts +13 -0
- package/cjs/core/Checkbox/Checkbox.js +15 -22
- package/cjs/core/ColorPicker/ColorSwatch.d.ts +1 -1
- package/cjs/core/ComboBox/ComboBox.d.ts +17 -1
- package/cjs/core/ComboBox/ComboBox.js +55 -20
- package/cjs/core/ExpandableBlock/ExpandableBlock.d.ts +6 -0
- package/cjs/core/ExpandableBlock/ExpandableBlock.js +3 -2
- package/cjs/core/Footer/Footer.d.ts +14 -2
- package/cjs/core/Footer/Footer.js +40 -17
- package/cjs/core/InputGroup/InputGroup.js +12 -2
- package/cjs/core/LabeledSelect/LabeledSelect.js +10 -4
- package/cjs/core/Menu/Menu.js +3 -3
- package/cjs/core/Menu/MenuItem.js +1 -1
- package/cjs/core/Radio/Radio.d.ts +13 -0
- package/cjs/core/Radio/Radio.js +7 -8
- package/cjs/core/StatusMessage/StatusMessage.d.ts +24 -0
- package/cjs/core/StatusMessage/StatusMessage.js +39 -0
- package/cjs/core/StatusMessage/index.d.ts +4 -0
- package/cjs/core/StatusMessage/index.js +10 -0
- package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.js +1 -1
- package/cjs/core/Tree/Tree.d.ts +123 -0
- package/cjs/core/Tree/Tree.js +177 -0
- package/cjs/core/Tree/TreeContext.d.ts +25 -0
- package/cjs/core/Tree/TreeContext.js +20 -0
- package/cjs/core/Tree/TreeNode.d.ts +87 -0
- package/cjs/core/Tree/TreeNode.js +169 -0
- package/cjs/core/Tree/TreeNodeExpander.d.ts +8 -0
- package/cjs/core/Tree/TreeNodeExpander.js +46 -0
- package/cjs/core/Tree/index.d.ts +6 -0
- package/cjs/core/Tree/index.js +13 -0
- package/cjs/core/index.d.ts +4 -0
- package/cjs/core/index.js +7 -1
- package/cjs/core/utils/components/InputContainer.d.ts +1 -0
- package/cjs/core/utils/components/InputContainer.js +8 -7
- package/cjs/core/utils/components/Popover.js +1 -1
- package/cjs/core/utils/functions/focusable.js +6 -2
- package/esm/core/ButtonGroup/ButtonGroup.d.ts +8 -1
- package/esm/core/ButtonGroup/ButtonGroup.js +7 -3
- package/esm/core/Checkbox/Checkbox.d.ts +13 -0
- package/esm/core/Checkbox/Checkbox.js +15 -22
- package/esm/core/ColorPicker/ColorSwatch.d.ts +1 -1
- package/esm/core/ComboBox/ComboBox.d.ts +17 -1
- package/esm/core/ComboBox/ComboBox.js +56 -21
- package/esm/core/ExpandableBlock/ExpandableBlock.d.ts +6 -0
- package/esm/core/ExpandableBlock/ExpandableBlock.js +3 -2
- package/esm/core/Footer/Footer.d.ts +14 -2
- package/esm/core/Footer/Footer.js +40 -17
- package/esm/core/InputGroup/InputGroup.js +12 -2
- package/esm/core/LabeledSelect/LabeledSelect.js +10 -4
- package/esm/core/Menu/Menu.js +3 -3
- package/esm/core/Menu/MenuItem.js +1 -1
- package/esm/core/Radio/Radio.d.ts +13 -0
- package/esm/core/Radio/Radio.js +7 -8
- package/esm/core/StatusMessage/StatusMessage.d.ts +24 -0
- package/esm/core/StatusMessage/StatusMessage.js +32 -0
- package/esm/core/StatusMessage/index.d.ts +4 -0
- package/esm/core/StatusMessage/index.js +6 -0
- package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +1 -1
- package/esm/core/Tree/Tree.d.ts +123 -0
- package/esm/core/Tree/Tree.js +170 -0
- package/esm/core/Tree/TreeContext.d.ts +25 -0
- package/esm/core/Tree/TreeContext.js +13 -0
- package/esm/core/Tree/TreeNode.d.ts +87 -0
- package/esm/core/Tree/TreeNode.js +162 -0
- package/esm/core/Tree/TreeNodeExpander.d.ts +8 -0
- package/esm/core/Tree/TreeNodeExpander.js +39 -0
- package/esm/core/Tree/index.d.ts +6 -0
- package/esm/core/Tree/index.js +7 -0
- package/esm/core/index.d.ts +4 -0
- package/esm/core/index.js +2 -0
- package/esm/core/utils/components/InputContainer.d.ts +1 -0
- package/esm/core/utils/components/InputContainer.js +8 -7
- package/esm/core/utils/components/Popover.js +1 -1
- package/esm/core/utils/functions/focusable.js +6 -2
- package/package.json +2 -2
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.TreeNode = void 0;
|
|
29
|
+
/*---------------------------------------------------------------------------------------------
|
|
30
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
31
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
|
+
*--------------------------------------------------------------------------------------------*/
|
|
33
|
+
var react_1 = __importDefault(require("react"));
|
|
34
|
+
var utils_1 = require("../utils");
|
|
35
|
+
require("@itwin/itwinui-css/css/tree.css");
|
|
36
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
37
|
+
var TreeNodeExpander_1 = require("./TreeNodeExpander");
|
|
38
|
+
var TreeContext_1 = require("./TreeContext");
|
|
39
|
+
/**
|
|
40
|
+
* `TreeNode` component to display node content within a `Tree`.
|
|
41
|
+
* Must be used inside `Tree` component to correctly set node `depth` and `subNodes`.
|
|
42
|
+
* @example
|
|
43
|
+
<TreeNode
|
|
44
|
+
nodeId={props.nodeId}
|
|
45
|
+
label={props.node.label}
|
|
46
|
+
sublabel={props.node.sublabel}
|
|
47
|
+
onExpanded={onExpanded}
|
|
48
|
+
onSelected={onSelectedNodeChange}
|
|
49
|
+
isDisabled={props.isDisabled}
|
|
50
|
+
isExpanded={props.isExpanded}
|
|
51
|
+
isSelected={props.isSelected}
|
|
52
|
+
checkbox={
|
|
53
|
+
<Checkbox variant='eyeball' disabled={props.isDisabled} />
|
|
54
|
+
}
|
|
55
|
+
icon={<SvgPlaceholder />}
|
|
56
|
+
/>
|
|
57
|
+
*/
|
|
58
|
+
var TreeNode = function (props) {
|
|
59
|
+
var nodeId = props.nodeId, label = props.label, sublabel = props.sublabel, children = props.children, className = props.className, icon = props.icon, _a = props.hasSubNodes, hasSubNodes = _a === void 0 ? false : _a, _b = props.isDisabled, isDisabled = _b === void 0 ? false : _b, _c = props.isExpanded, isExpanded = _c === void 0 ? false : _c, _d = props.isSelected, isSelected = _d === void 0 ? false : _d, onSelected = props.onSelected, onExpanded = props.onExpanded, checkbox = props.checkbox, expander = props.expander, rest = __rest(props, ["nodeId", "label", "sublabel", "children", "className", "icon", "hasSubNodes", "isDisabled", "isExpanded", "isSelected", "onSelected", "onExpanded", "checkbox", "expander"]);
|
|
60
|
+
(0, utils_1.useTheme)();
|
|
61
|
+
var _e = (0, TreeContext_1.useTreeContext)(), nodeDepth = _e.nodeDepth, _f = _e.subNodeIds, subNodeIds = _f === void 0 ? [] : _f, parentNodeId = _e.parentNodeId, groupSize = _e.groupSize, indexInGroup = _e.indexInGroup;
|
|
62
|
+
var _g = react_1.default.useState(false), isFocused = _g[0], setIsFocused = _g[1];
|
|
63
|
+
var nodeRef = react_1.default.useRef(null);
|
|
64
|
+
var styleDepth = react_1.default.useMemo(function () {
|
|
65
|
+
var _a, _b, _c;
|
|
66
|
+
return ((_c = (_b = (_a = (0, utils_1.getWindow)()) === null || _a === void 0 ? void 0 : _a.CSS) === null || _b === void 0 ? void 0 : _b.supports) === null || _c === void 0 ? void 0 : _c.call(_b, "--level: " + nodeDepth))
|
|
67
|
+
? { '--level': nodeDepth }
|
|
68
|
+
: { marginLeft: nodeDepth ? nodeDepth * 28 : 0 };
|
|
69
|
+
}, [nodeDepth]);
|
|
70
|
+
var onKeyDown = function (event) {
|
|
71
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
72
|
+
var isNodeFocused = nodeRef.current === ((_a = nodeRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.activeElement);
|
|
73
|
+
switch (event.key) {
|
|
74
|
+
case 'ArrowLeft': {
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
if (isNodeFocused) {
|
|
77
|
+
if (isExpanded) {
|
|
78
|
+
onExpanded(nodeId, false);
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
if (parentNodeId) {
|
|
82
|
+
var parentNode = (_b = nodeRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.querySelector("#" + parentNodeId);
|
|
83
|
+
parentNode === null || parentNode === void 0 ? void 0 : parentNode.focus();
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
// If it is top level node (doesn't have parent node), then do nothing.
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
var focusableElements = (0, utils_1.getFocusableElements)(nodeRef.current);
|
|
90
|
+
var currentIndex = focusableElements.indexOf((_c = nodeRef.current) === null || _c === void 0 ? void 0 : _c.ownerDocument.activeElement);
|
|
91
|
+
if (currentIndex === 0) {
|
|
92
|
+
(_d = nodeRef.current) === null || _d === void 0 ? void 0 : _d.focus();
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
(_e = focusableElements[currentIndex - 1]) === null || _e === void 0 ? void 0 : _e.focus();
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case 'ArrowRight': {
|
|
100
|
+
event.preventDefault();
|
|
101
|
+
var focusableElements = (0, utils_1.getFocusableElements)(nodeRef.current);
|
|
102
|
+
if (isNodeFocused) {
|
|
103
|
+
if (!isExpanded && hasSubNodes) {
|
|
104
|
+
onExpanded(nodeId, true);
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
(_f = focusableElements[0]) === null || _f === void 0 ? void 0 : _f.focus();
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
var currentIndex = focusableElements.indexOf((_g = nodeRef.current) === null || _g === void 0 ? void 0 : _g.ownerDocument.activeElement);
|
|
111
|
+
if (currentIndex < focusableElements.length - 1) {
|
|
112
|
+
focusableElements[currentIndex + 1].focus();
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case ' ':
|
|
118
|
+
case 'Spacebar':
|
|
119
|
+
case 'Enter': {
|
|
120
|
+
// Ignore if it is called on the element inside, e.g. checkbox or expander
|
|
121
|
+
if (event.target !== nodeRef.current) {
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
event.preventDefault();
|
|
125
|
+
if (!isDisabled) {
|
|
126
|
+
onSelected === null || onSelected === void 0 ? void 0 : onSelected(nodeId, !isSelected);
|
|
127
|
+
}
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
default:
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
var onExpanderClick = react_1.default.useCallback(function (event) {
|
|
135
|
+
onExpanded(nodeId, !isExpanded);
|
|
136
|
+
event.stopPropagation();
|
|
137
|
+
}, [isExpanded, nodeId, onExpanded]);
|
|
138
|
+
return (react_1.default.createElement("li", __assign({ role: 'treeitem', className: (0, classnames_1.default)('iui-tree-item', className), id: nodeId, "aria-expanded": hasSubNodes ? isExpanded : undefined, "aria-disabled": isDisabled, "aria-selected": isSelected, "aria-level": nodeDepth + 1, "aria-setsize": groupSize, "aria-posinset": indexInGroup + 1, tabIndex: -1, onFocus: function (e) {
|
|
139
|
+
setIsFocused(true);
|
|
140
|
+
// Prevents from triggering onFocus on parent Tree
|
|
141
|
+
e.stopPropagation();
|
|
142
|
+
}, onBlur: function () {
|
|
143
|
+
setIsFocused(false);
|
|
144
|
+
}, ref: nodeRef, onKeyDown: onKeyDown }, rest),
|
|
145
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)('iui-tree-node', {
|
|
146
|
+
'iui-active': isSelected,
|
|
147
|
+
'iui-disabled': isDisabled,
|
|
148
|
+
}), style: styleDepth, onClick: function () { return !isDisabled && (onSelected === null || onSelected === void 0 ? void 0 : onSelected(nodeId, !isSelected)); } },
|
|
149
|
+
checkbox && react_1.default.isValidElement(checkbox)
|
|
150
|
+
? react_1.default.cloneElement(checkbox, {
|
|
151
|
+
className: (0, classnames_1.default)('iui-tree-node-checkbox', checkbox.props.className),
|
|
152
|
+
tabIndex: isFocused ? 0 : -1,
|
|
153
|
+
})
|
|
154
|
+
: checkbox,
|
|
155
|
+
react_1.default.createElement("div", { className: 'iui-tree-node-content' },
|
|
156
|
+
hasSubNodes && expander,
|
|
157
|
+
hasSubNodes && !expander && (react_1.default.createElement(TreeNodeExpander_1.TreeNodeExpander, { isExpanded: isExpanded, disabled: isDisabled, onClick: onExpanderClick, tabIndex: isFocused ? 0 : -1 })),
|
|
158
|
+
icon &&
|
|
159
|
+
react_1.default.cloneElement(icon, {
|
|
160
|
+
className: (0, classnames_1.default)('iui-tree-node-content-icon', icon.props.className),
|
|
161
|
+
}),
|
|
162
|
+
react_1.default.createElement("span", { className: 'iui-tree-node-content-label' },
|
|
163
|
+
react_1.default.createElement("div", { className: 'iui-tree-node-content-title' }, label),
|
|
164
|
+
sublabel && (react_1.default.createElement("div", { className: 'iui-tree-node-content-caption' }, sublabel))),
|
|
165
|
+
children)),
|
|
166
|
+
hasSubNodes && (react_1.default.createElement("ul", { className: 'iui-sub-tree', role: 'group', "aria-owns": subNodeIds.join(',') }))));
|
|
167
|
+
};
|
|
168
|
+
exports.TreeNode = TreeNode;
|
|
169
|
+
exports.default = exports.TreeNode;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IconButtonProps } from '../Buttons/IconButton';
|
|
3
|
+
import '@itwin/itwinui-css/css/tree.css';
|
|
4
|
+
export declare type TreeNodeExpanderProps = {
|
|
5
|
+
isExpanded?: boolean;
|
|
6
|
+
} & IconButtonProps;
|
|
7
|
+
export declare const TreeNodeExpander: (props: TreeNodeExpanderProps) => JSX.Element;
|
|
8
|
+
export default TreeNodeExpander;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.TreeNodeExpander = void 0;
|
|
29
|
+
/*---------------------------------------------------------------------------------------------
|
|
30
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
31
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
|
+
*--------------------------------------------------------------------------------------------*/
|
|
33
|
+
var react_1 = __importDefault(require("react"));
|
|
34
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
35
|
+
var ChevronRight_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/ChevronRight"));
|
|
36
|
+
var IconButton_1 = require("../Buttons/IconButton");
|
|
37
|
+
require("@itwin/itwinui-css/css/tree.css");
|
|
38
|
+
var TreeNodeExpander = function (props) {
|
|
39
|
+
var isExpanded = props.isExpanded, rest = __rest(props, ["isExpanded"]);
|
|
40
|
+
return (react_1.default.createElement(IconButton_1.IconButton, __assign({ styleType: 'borderless', size: 'small', "aria-label": isExpanded ? 'Collapse' : 'Expand' }, rest),
|
|
41
|
+
react_1.default.createElement(ChevronRight_1.default, { className: (0, classnames_1.default)('iui-tree-node-content-expander-icon', {
|
|
42
|
+
'iui-tree-node-content-expander-icon-expanded': isExpanded,
|
|
43
|
+
}) })));
|
|
44
|
+
};
|
|
45
|
+
exports.TreeNodeExpander = TreeNodeExpander;
|
|
46
|
+
exports.default = exports.TreeNodeExpander;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { Tree } from './Tree';
|
|
2
|
+
export type { TreeProps, NodeData, NodeRenderProps } from './Tree';
|
|
3
|
+
export { TreeNode } from './TreeNode';
|
|
4
|
+
export type { TreeNodeProps } from './TreeNode';
|
|
5
|
+
export { TreeNodeExpander } from './TreeNodeExpander';
|
|
6
|
+
export type { TreeNodeExpanderProps } from './TreeNodeExpander';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TreeNodeExpander = exports.TreeNode = exports.Tree = void 0;
|
|
4
|
+
/*---------------------------------------------------------------------------------------------
|
|
5
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
+
*--------------------------------------------------------------------------------------------*/
|
|
8
|
+
var Tree_1 = require("./Tree");
|
|
9
|
+
Object.defineProperty(exports, "Tree", { enumerable: true, get: function () { return Tree_1.Tree; } });
|
|
10
|
+
var TreeNode_1 = require("./TreeNode");
|
|
11
|
+
Object.defineProperty(exports, "TreeNode", { enumerable: true, get: function () { return TreeNode_1.TreeNode; } });
|
|
12
|
+
var TreeNodeExpander_1 = require("./TreeNodeExpander");
|
|
13
|
+
Object.defineProperty(exports, "TreeNodeExpander", { enumerable: true, get: function () { return TreeNodeExpander_1.TreeNodeExpander; } });
|
package/cjs/core/index.d.ts
CHANGED
|
@@ -62,6 +62,8 @@ export { SideNavigation, SidenavButton, SidenavSubmenu, SidenavSubmenuHeader, }
|
|
|
62
62
|
export type { SideNavigationProps, SidenavButtonProps, SidenavSubmenuProps, SidenavSubmenuHeaderProps, } from './SideNavigation';
|
|
63
63
|
export { Slider } from './Slider';
|
|
64
64
|
export type { SliderProps } from './Slider';
|
|
65
|
+
export { StatusMessage } from './StatusMessage';
|
|
66
|
+
export type { StatusMessageProps } from './StatusMessage';
|
|
65
67
|
export { Table, tableFilters, FilterButtonBar, DefaultCell, EditableCell, TablePaginator, } from './Table';
|
|
66
68
|
export type { TableProps, TableFilterProps, TableFilterValue, DateRangeFilterOptions, FilterButtonBarProps, DefaultCellProps, EditableCellProps, TablePaginatorProps, TablePaginatorRendererProps, } from './Table';
|
|
67
69
|
export { Tag, TagContainer } from './Tag';
|
|
@@ -80,6 +82,8 @@ export { ToggleSwitch } from './ToggleSwitch';
|
|
|
80
82
|
export type { ToggleSwitchProps } from './ToggleSwitch';
|
|
81
83
|
export { Tooltip } from './Tooltip';
|
|
82
84
|
export type { TooltipProps } from './Tooltip';
|
|
85
|
+
export { Tree, TreeNode, TreeNodeExpander } from './Tree';
|
|
86
|
+
export type { TreeProps, TreeNodeProps, TreeNodeExpanderProps, NodeData, NodeRenderProps, } from './Tree';
|
|
83
87
|
export { Anchor, Body, Headline, Leading, Small, Subheading, Title, Blockquote, Code, Kbd, KbdKeys, Text, } from './Typography';
|
|
84
88
|
export type { BodyProps, HeadlineProps, LeadingProps, SmallProps, SubheadingProps, TitleProps, BlockquoteProps, CodeProps, KbdProps, TextProps, } from './Typography';
|
|
85
89
|
export { UserIcon } from './UserIcon';
|
package/cjs/core/index.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ModalButtonBar = exports.Modal = exports.MenuExtraContent = exports.MenuDivider = exports.MenuItem = exports.Menu = exports.LabeledTextarea = exports.LabeledSelect = exports.InputGroup = exports.LabeledInput = exports.Label = exports.Input = exports.InformationPanelContent = exports.InformationPanelBody = exports.InformationPanelHeader = exports.InformationPanelWrapper = exports.InformationPanel = exports.HorizontalTab = exports.HorizontalTabs = exports.Tab = exports.VerticalTabs = exports.HeaderLogo = exports.HeaderButton = exports.HeaderBreadcrumbs = exports.Header = exports.Footer = exports.FileUploadTemplate = exports.FileUpload = exports.Fieldset = exports.ExpandableBlock = exports.ErrorPage = exports.DropdownMenu = exports.generateLocalizedStrings = exports.DatePicker = exports.ComboBox = exports.ColorPalette = exports.ColorInputPanel = exports.ColorBuilder = exports.ColorSwatch = exports.ColorPicker = exports.Checkbox = exports.ButtonGroup = exports.SplitButton = exports.IdeasButton = exports.IconButton = exports.DropdownButton = exports.Button = exports.Breadcrumbs = exports.Badge = exports.Alert = void 0;
|
|
7
|
-
exports.MiddleTextTruncation = exports.ColorValue = exports.useTheme = exports.getUserColor = exports.Wizard = exports.UserIconGroup = exports.UserIcon = exports.Text = exports.KbdKeys = exports.Kbd = exports.Code = exports.Blockquote = exports.Title = exports.Subheading = exports.Small = exports.Leading = exports.Headline = exports.Body = exports.Anchor = exports.Tooltip = exports.ToggleSwitch = exports.ThemeProvider = exports.toaster = exports.TimePicker = exports.Tile = exports.Textarea = exports.TagContainer = exports.Tag = exports.TablePaginator = exports.EditableCell = exports.DefaultCell = exports.FilterButtonBar = exports.tableFilters = exports.Table = exports.Slider = exports.SidenavSubmenuHeader = exports.SidenavSubmenu = exports.SidenavButton = exports.SideNavigation = exports.Select = exports.RadioTileGroup = exports.RadioTile = exports.Radio = exports.ProgressRadial = exports.ProgressLinear = void 0;
|
|
7
|
+
exports.MiddleTextTruncation = exports.ColorValue = exports.useTheme = exports.getUserColor = exports.Wizard = exports.UserIconGroup = exports.UserIcon = exports.Text = exports.KbdKeys = exports.Kbd = exports.Code = exports.Blockquote = exports.Title = exports.Subheading = exports.Small = exports.Leading = exports.Headline = exports.Body = exports.Anchor = exports.TreeNodeExpander = exports.TreeNode = exports.Tree = exports.Tooltip = exports.ToggleSwitch = exports.ThemeProvider = exports.toaster = exports.TimePicker = exports.Tile = exports.Textarea = exports.TagContainer = exports.Tag = exports.TablePaginator = exports.EditableCell = exports.DefaultCell = exports.FilterButtonBar = exports.tableFilters = exports.Table = exports.StatusMessage = exports.Slider = exports.SidenavSubmenuHeader = exports.SidenavSubmenu = exports.SidenavButton = exports.SideNavigation = exports.Select = exports.RadioTileGroup = exports.RadioTile = exports.Radio = exports.ProgressRadial = exports.ProgressLinear = void 0;
|
|
8
8
|
/*---------------------------------------------------------------------------------------------
|
|
9
9
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
10
10
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -102,6 +102,8 @@ Object.defineProperty(exports, "SidenavSubmenu", { enumerable: true, get: functi
|
|
|
102
102
|
Object.defineProperty(exports, "SidenavSubmenuHeader", { enumerable: true, get: function () { return SideNavigation_1.SidenavSubmenuHeader; } });
|
|
103
103
|
var Slider_1 = require("./Slider");
|
|
104
104
|
Object.defineProperty(exports, "Slider", { enumerable: true, get: function () { return Slider_1.Slider; } });
|
|
105
|
+
var StatusMessage_1 = require("./StatusMessage");
|
|
106
|
+
Object.defineProperty(exports, "StatusMessage", { enumerable: true, get: function () { return StatusMessage_1.StatusMessage; } });
|
|
105
107
|
var Table_1 = require("./Table");
|
|
106
108
|
Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return Table_1.Table; } });
|
|
107
109
|
Object.defineProperty(exports, "tableFilters", { enumerable: true, get: function () { return Table_1.tableFilters; } });
|
|
@@ -126,6 +128,10 @@ var ToggleSwitch_1 = require("./ToggleSwitch");
|
|
|
126
128
|
Object.defineProperty(exports, "ToggleSwitch", { enumerable: true, get: function () { return ToggleSwitch_1.ToggleSwitch; } });
|
|
127
129
|
var Tooltip_1 = require("./Tooltip");
|
|
128
130
|
Object.defineProperty(exports, "Tooltip", { enumerable: true, get: function () { return Tooltip_1.Tooltip; } });
|
|
131
|
+
var Tree_1 = require("./Tree");
|
|
132
|
+
Object.defineProperty(exports, "Tree", { enumerable: true, get: function () { return Tree_1.Tree; } });
|
|
133
|
+
Object.defineProperty(exports, "TreeNode", { enumerable: true, get: function () { return Tree_1.TreeNode; } });
|
|
134
|
+
Object.defineProperty(exports, "TreeNodeExpander", { enumerable: true, get: function () { return Tree_1.TreeNodeExpander; } });
|
|
129
135
|
var Typography_1 = require("./Typography");
|
|
130
136
|
Object.defineProperty(exports, "Anchor", { enumerable: true, get: function () { return Typography_1.Anchor; } });
|
|
131
137
|
Object.defineProperty(exports, "Body", { enumerable: true, get: function () { return Typography_1.Body; } });
|
|
@@ -9,6 +9,7 @@ export declare type InputContainerProps<T extends React.ElementType = 'div'> = {
|
|
|
9
9
|
icon?: JSX.Element;
|
|
10
10
|
isLabelInline?: boolean;
|
|
11
11
|
isIconInline?: boolean;
|
|
12
|
+
statusMessage?: React.ReactNode;
|
|
12
13
|
} & React.ComponentPropsWithoutRef<T>;
|
|
13
14
|
/**
|
|
14
15
|
* Input container to wrap inputs with label, and add optional message and icon.
|
|
@@ -39,23 +39,24 @@ var classnames_1 = __importDefault(require("classnames"));
|
|
|
39
39
|
var InputContainer = function (props) {
|
|
40
40
|
var _a;
|
|
41
41
|
var _b;
|
|
42
|
-
var _c = props.as, Element = _c === void 0 ? 'div' : _c, label = props.label, disabled = props.disabled, required = props.required, status = props.status, message = props.message, icon = props.icon, isLabelInline = props.isLabelInline, isIconInline = props.isIconInline, children = props.children, className = props.className, style = props.style, rest = __rest(props, ["as", "label", "disabled", "required", "status", "message", "icon", "isLabelInline", "isIconInline", "children", "className", "style"]);
|
|
42
|
+
var _c = props.as, Element = _c === void 0 ? 'div' : _c, label = props.label, disabled = props.disabled, required = props.required, status = props.status, message = props.message, icon = props.icon, isLabelInline = props.isLabelInline, isIconInline = props.isIconInline, children = props.children, className = props.className, style = props.style, statusMessage = props.statusMessage, rest = __rest(props, ["as", "label", "disabled", "required", "status", "message", "icon", "isLabelInline", "isIconInline", "children", "className", "style", "statusMessage"]);
|
|
43
43
|
return (react_1.default.createElement(Element, __assign({ className: (0, classnames_1.default)('iui-input-container', (_a = {
|
|
44
44
|
'iui-disabled': disabled
|
|
45
45
|
},
|
|
46
46
|
_a["iui-" + status] = !!status,
|
|
47
47
|
_a['iui-inline-label'] = isLabelInline,
|
|
48
48
|
_a['iui-inline-icon'] = isIconInline,
|
|
49
|
-
_a['iui-with-message'] = !!message && !isLabelInline,
|
|
49
|
+
_a['iui-with-message'] = (!!message || !!icon || !!statusMessage) && !isLabelInline,
|
|
50
50
|
_a), className), style: style }, rest),
|
|
51
51
|
label && (react_1.default.createElement("div", { className: (0, classnames_1.default)('iui-label', {
|
|
52
52
|
'iui-required': required,
|
|
53
53
|
}) }, label)),
|
|
54
54
|
children,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
statusMessage ? (statusMessage) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
56
|
+
icon &&
|
|
57
|
+
react_1.default.cloneElement(icon, {
|
|
58
|
+
className: (0, classnames_1.default)('iui-input-icon', (_b = icon.props) === null || _b === void 0 ? void 0 : _b.className),
|
|
59
|
+
}),
|
|
60
|
+
message && !isLabelInline && (react_1.default.createElement("div", { className: 'iui-message' }, message))))));
|
|
60
61
|
};
|
|
61
62
|
exports.InputContainer = InputContainer;
|
|
@@ -59,7 +59,7 @@ exports.Popover = react_1.default.forwardRef(function (props, ref) {
|
|
|
59
59
|
},
|
|
60
60
|
}); },
|
|
61
61
|
};
|
|
62
|
-
var computedProps = __assign(__assign({ allowHTML: true, animation: false, appendTo:
|
|
62
|
+
var computedProps = __assign(__assign({ allowHTML: true, animation: false, appendTo: function (el) { return el.ownerDocument.body; }, arrow: false, duration: 0, interactive: true, role: undefined, offset: [0, 0], maxWidth: '', zIndex: 99999 }, props), { className: (0, classnames_1.default)('iui-popover', props.className), plugins: __spreadArray([
|
|
63
63
|
lazyLoad,
|
|
64
64
|
removeTabIndex,
|
|
65
65
|
exports.hideOnEscOrTab
|
|
@@ -15,7 +15,9 @@ var getTabbableElements = function (container) {
|
|
|
15
15
|
}
|
|
16
16
|
var elements = container.querySelectorAll(tabbableElementsSelector);
|
|
17
17
|
return Array.from(elements).filter(function (el) {
|
|
18
|
-
return !el.hasAttribute('disabled') &&
|
|
18
|
+
return !el.hasAttribute('disabled') &&
|
|
19
|
+
!el.classList.contains('iui-disabled') &&
|
|
20
|
+
el.getAttribute('aria-disabled') !== 'true';
|
|
19
21
|
});
|
|
20
22
|
};
|
|
21
23
|
exports.getTabbableElements = getTabbableElements;
|
|
@@ -28,7 +30,9 @@ var getFocusableElements = function (container) {
|
|
|
28
30
|
}
|
|
29
31
|
var elements = container.querySelectorAll(tabbableElementsSelector + ", [tabindex=\"-1\"]");
|
|
30
32
|
return Array.from(elements).filter(function (el) {
|
|
31
|
-
return !el.hasAttribute('disabled') &&
|
|
33
|
+
return !el.hasAttribute('disabled') &&
|
|
34
|
+
!el.classList.contains('iui-disabled') &&
|
|
35
|
+
el.getAttribute('aria-disabled') !== 'true';
|
|
32
36
|
});
|
|
33
37
|
};
|
|
34
38
|
exports.getFocusableElements = getFocusableElements;
|
|
@@ -13,6 +13,8 @@ export declare type ButtonGroupProps = {
|
|
|
13
13
|
* and returns the `ReactNode` to render.
|
|
14
14
|
*
|
|
15
15
|
* The placement of this button can be controlled using the `overflowPlacement` prop.
|
|
16
|
+
*
|
|
17
|
+
* *Note: this will not work with `orientation='vertical'`.*
|
|
16
18
|
*/
|
|
17
19
|
overflowButton?: (firstOverflowingIndex: number) => React.ReactNode;
|
|
18
20
|
/**
|
|
@@ -20,6 +22,11 @@ export declare type ButtonGroupProps = {
|
|
|
20
22
|
* @default 'end'
|
|
21
23
|
*/
|
|
22
24
|
overflowPlacement?: 'start' | 'end';
|
|
25
|
+
/**
|
|
26
|
+
* Should the buttons be placed in a horizontal or vertical layout?
|
|
27
|
+
* @default 'horizontal'
|
|
28
|
+
*/
|
|
29
|
+
orientation?: 'horizontal' | 'vertical';
|
|
23
30
|
} & React.ComponentPropsWithRef<'div'>;
|
|
24
31
|
/**
|
|
25
32
|
* Group buttons together for common actions.
|
|
@@ -49,5 +56,5 @@ export declare type ButtonGroupProps = {
|
|
|
49
56
|
* {buttons}
|
|
50
57
|
* </ButtonGroup>
|
|
51
58
|
*/
|
|
52
|
-
export declare const ButtonGroup: React.ForwardRefExoticComponent<Pick<ButtonGroupProps, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "overflowButton" | "overflowPlacement"> & React.RefAttributes<HTMLDivElement>>;
|
|
59
|
+
export declare const ButtonGroup: React.ForwardRefExoticComponent<Pick<ButtonGroupProps, "orientation" | "key" | keyof React.HTMLAttributes<HTMLDivElement> | "overflowButton" | "overflowPlacement"> & React.RefAttributes<HTMLDivElement>>;
|
|
53
60
|
export default ButtonGroup;
|
|
@@ -57,12 +57,16 @@ import '@itwin/itwinui-css/css/button.css';
|
|
|
57
57
|
* </ButtonGroup>
|
|
58
58
|
*/
|
|
59
59
|
export var ButtonGroup = React.forwardRef(function (props, ref) {
|
|
60
|
-
var children = props.children, className = props.className, style = props.style, overflowButton = props.overflowButton, _a = props.overflowPlacement, overflowPlacement = _a === void 0 ? 'end' : _a, rest = __rest(props, ["children", "className", "style", "overflowButton", "overflowPlacement"]);
|
|
60
|
+
var children = props.children, className = props.className, style = props.style, overflowButton = props.overflowButton, _a = props.overflowPlacement, overflowPlacement = _a === void 0 ? 'end' : _a, _b = props.orientation, orientation = _b === void 0 ? 'horizontal' : _b, rest = __rest(props, ["children", "className", "style", "overflowButton", "overflowPlacement", "orientation"]);
|
|
61
61
|
var items = React.useMemo(function () { var _a; return (_a = React.Children.map(children, function (child) { return React.createElement("div", null, child); })) !== null && _a !== void 0 ? _a : []; }, [children]);
|
|
62
62
|
useTheme();
|
|
63
|
-
var
|
|
63
|
+
var _c = useOverflow(items, !overflowButton), overflowRef = _c[0], visibleCount = _c[1];
|
|
64
64
|
var refs = useMergedRefs(overflowRef, ref);
|
|
65
|
-
return (React.createElement("div", __assign({ className: cx(
|
|
65
|
+
return (React.createElement("div", __assign({ className: cx({
|
|
66
|
+
'iui-button-group': orientation === 'horizontal',
|
|
67
|
+
'iui-button-group-vertical': orientation === 'vertical',
|
|
68
|
+
}, className), style: __assign(__assign({}, (!!overflowButton &&
|
|
69
|
+
orientation === 'horizontal' && { width: '100%' })), style), "aria-orientation": orientation, ref: refs }, rest), !!overflowButton && visibleCount < items.length ? (React.createElement(React.Fragment, null,
|
|
66
70
|
overflowButton && overflowPlacement === 'start' && (React.createElement("div", null, overflowButton(visibleCount))),
|
|
67
71
|
items.slice(0, visibleCount - 1),
|
|
68
72
|
overflowButton && overflowPlacement === 'end' && (React.createElement("div", null, overflowButton(visibleCount))))) : (items)));
|
|
@@ -30,16 +30,23 @@ export declare type CheckboxProps = {
|
|
|
30
30
|
isLoading?: boolean;
|
|
31
31
|
/**
|
|
32
32
|
* Custom CSS class name for the checkmark element.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated As of 1.32.0, this is applied on the actual checkbox `<input>` element.
|
|
35
|
+
* The checkmark has been moved into a pseudo-element.
|
|
33
36
|
*/
|
|
34
37
|
checkmarkClassName?: string;
|
|
35
38
|
/**
|
|
36
39
|
* Custom CSS Style for the checkmark element.
|
|
40
|
+
*
|
|
41
|
+
* @deprecated As of 1.32.0, this is applied on the actual checkbox `<input>` element.
|
|
42
|
+
* The checkmark has been moved into a pseudo-element.
|
|
37
43
|
*/
|
|
38
44
|
checkmarkStyle?: React.CSSProperties;
|
|
39
45
|
} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'>;
|
|
40
46
|
/**
|
|
41
47
|
* Simple input checkbox
|
|
42
48
|
* @example
|
|
49
|
+
* <Checkbox />
|
|
43
50
|
* <Checkbox label='Basic Checkbox' />
|
|
44
51
|
* <Checkbox label='Disabled Checkbox' disabled />
|
|
45
52
|
* <Checkbox label='Checked' checked />
|
|
@@ -78,10 +85,16 @@ export declare const Checkbox: React.ForwardRefExoticComponent<{
|
|
|
78
85
|
isLoading?: boolean | undefined;
|
|
79
86
|
/**
|
|
80
87
|
* Custom CSS class name for the checkmark element.
|
|
88
|
+
*
|
|
89
|
+
* @deprecated As of 1.32.0, this is applied on the actual checkbox `<input>` element.
|
|
90
|
+
* The checkmark has been moved into a pseudo-element.
|
|
81
91
|
*/
|
|
82
92
|
checkmarkClassName?: string | undefined;
|
|
83
93
|
/**
|
|
84
94
|
* Custom CSS Style for the checkmark element.
|
|
95
|
+
*
|
|
96
|
+
* @deprecated As of 1.32.0, this is applied on the actual checkbox `<input>` element.
|
|
97
|
+
* The checkmark has been moved into a pseudo-element.
|
|
85
98
|
*/
|
|
86
99
|
checkmarkStyle?: React.CSSProperties | undefined;
|
|
87
100
|
} & Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -32,6 +32,7 @@ import '@itwin/itwinui-css/css/inputs.css';
|
|
|
32
32
|
/**
|
|
33
33
|
* Simple input checkbox
|
|
34
34
|
* @example
|
|
35
|
+
* <Checkbox />
|
|
35
36
|
* <Checkbox label='Basic Checkbox' />
|
|
36
37
|
* <Checkbox label='Disabled Checkbox' disabled />
|
|
37
38
|
* <Checkbox label='Checked' checked />
|
|
@@ -41,8 +42,8 @@ import '@itwin/itwinui-css/css/inputs.css';
|
|
|
41
42
|
* <Checkbox label='Visibility Checkbox' variant='eyeball' />
|
|
42
43
|
*/
|
|
43
44
|
export var Checkbox = React.forwardRef(function (props, ref) {
|
|
44
|
-
var _a;
|
|
45
|
-
var className = props.className,
|
|
45
|
+
var _a, _b;
|
|
46
|
+
var className = props.className, _c = props.disabled, disabled = _c === void 0 ? false : _c, _d = props.indeterminate, indeterminate = _d === void 0 ? false : _d, label = props.label, status = props.status, _e = props.variant, variant = _e === void 0 ? 'default' : _e, setFocus = props.setFocus, _f = props.isLoading, isLoading = _f === void 0 ? false : _f, style = props.style, checkmarkClassName = props.checkmarkClassName, checkmarkStyle = props.checkmarkStyle, rest = __rest(props, ["className", "disabled", "indeterminate", "label", "status", "variant", "setFocus", "isLoading", "style", "checkmarkClassName", "checkmarkStyle"]);
|
|
46
47
|
useTheme();
|
|
47
48
|
var inputElementRef = React.useRef(null);
|
|
48
49
|
var refs = useMergedRefs(inputElementRef, ref);
|
|
@@ -59,27 +60,19 @@ export var Checkbox = React.forwardRef(function (props, ref) {
|
|
|
59
60
|
: inputElementRef.current.checked;
|
|
60
61
|
}
|
|
61
62
|
});
|
|
62
|
-
var
|
|
63
|
-
React.createElement("
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
React.createElement(
|
|
68
|
-
|
|
69
|
-
React.createElement("path", { d: 'm8 0a1 1 0 0 0 -1 1v2.07135a8.91637 8.91637 0 0 0 -7 4.92865 8.91637 8.91637 0 0 0 7 4.92865v2.07135a1 1 0 0 0 2 0v-14a1 1 0 0 0 -1-1zm-1.5 4.9a1.55426 1.55426 0 0 1 .5.087v2.81451a1.40746 1.40746 0 0 1 -.5.09849 1.538 1.538 0 0 1 -1.5-1.5 1.53794 1.53794 0 0 1 1.5-1.5zm-2.3 5.4a6.97279 6.97279 0 0 1 -2.5-2.3 6.89429 6.89429 0 0 1 2.4-2.4c.1 0 .1-.1.2-.1a3.194 3.194 0 0 0 -.3 1.4 4.0047 4.0047 0 0 0 3 3.857v.65289a6.37491 6.37491 0 0 1 -2.8-1.10989z' })),
|
|
70
|
-
React.createElement("path", { className: 'iui-uncheck', d: 'm1.70671 12.879 11.17218-11.17219 1.4142 1.4142-11.17218 11.17218zm.99329-1.679 1.1-1.1a5.06317 5.06317 0 0 1 -2-2.1 7.48268 7.48268 0 0 1 6.2-3.5 4.86877 4.86877 0 0 1 1.2.1l1.3-1.3a10.07431 10.07431 0 0 0 -2.5-.3 8.84129 8.84129 0 0 0 -8 5 8.42455 8.42455 0 0 0 2.7 3.2zm10.7-6.4-1.1 1.1a7.08625 7.08625 0 0 1 2 2.1 7.50323 7.50323 0 0 1 -6.2 3.5 8.31665 8.31665 0 0 1 -1.3-.2l-1.3 1.3a8.909 8.909 0 0 0 6.4-.5 9.04344 9.04344 0 0 0 4.1-4.1 9.168 9.168 0 0 0 -2.6-3.2z' })));
|
|
71
|
-
return (React.createElement("label", { className: cx('iui-checkbox', (_a = {
|
|
63
|
+
var checkbox = (React.createElement(React.Fragment, null,
|
|
64
|
+
React.createElement("input", __assign({ className: cx('iui-checkbox', {
|
|
65
|
+
'iui-checkbox-visibility': variant === 'eyeball',
|
|
66
|
+
'iui-loading': isLoading,
|
|
67
|
+
}, className && (_a = {}, _a[className] = !label, _a), checkmarkClassName), style: __assign(__assign({}, (!label && style)), checkmarkStyle), disabled: disabled || isLoading, type: 'checkbox', ref: refs }, rest)),
|
|
68
|
+
isLoading && React.createElement(ProgressRadial, { size: 'x-small', indeterminate: true })));
|
|
69
|
+
return !label ? (checkbox) : (React.createElement("label", { className: cx('iui-checkbox-wrapper', (_b = {
|
|
72
70
|
'iui-disabled': disabled
|
|
73
71
|
},
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
React.createElement("
|
|
79
|
-
React.createElement("span", { className: cx('iui-checkbox-checkmark', checkmarkClassName), style: checkmarkStyle },
|
|
80
|
-
isLoading && React.createElement(ProgressRadial, { indeterminate: true }),
|
|
81
|
-
!isLoading &&
|
|
82
|
-
(variant === 'default' ? defaultCheckbox : visibilityCheckbox)),
|
|
83
|
-
label && React.createElement("span", { className: 'iui-label' }, label)));
|
|
72
|
+
_b["iui-" + status] = !!status,
|
|
73
|
+
_b['iui-loading'] = isLoading,
|
|
74
|
+
_b), className), style: style },
|
|
75
|
+
checkbox,
|
|
76
|
+
label && React.createElement("span", { className: 'iui-checkbox-label' }, label)));
|
|
84
77
|
});
|
|
85
78
|
export default Checkbox;
|
|
@@ -17,5 +17,5 @@ export declare type ColorSwatchProps = {
|
|
|
17
17
|
* <ColorSwatch color='#23450b' onClick={onClick}/>
|
|
18
18
|
* <ColorSwatch color={{ r: 255, g: 255, b: 0 }} onClick={onClick}/>
|
|
19
19
|
*/
|
|
20
|
-
export declare const ColorSwatch: React.ForwardRefExoticComponent<Pick<ColorSwatchProps, "dir" | "slot" | "style" | "title" | "id" | "role" | "children" | "className" | "accessKey" | "draggable" | "hidden" | "lang" | "translate" | "prefix" | "contentEditable" | "inputMode" | "tabIndex" | "onFocus" | "color" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-
|
|
20
|
+
export declare const ColorSwatch: React.ForwardRefExoticComponent<Pick<ColorSwatchProps, "dir" | "slot" | "style" | "title" | "id" | "aria-disabled" | "role" | "children" | "className" | "accessKey" | "draggable" | "hidden" | "lang" | "translate" | "prefix" | "contentEditable" | "inputMode" | "tabIndex" | "onFocus" | "color" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "contextMenu" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "is" | "isActive"> & React.RefAttributes<HTMLDivElement>>;
|
|
21
21
|
export default ColorSwatch;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { InputProps } from '../Input';
|
|
3
3
|
import { SelectOption } from '../Select';
|
|
4
4
|
import { PopoverProps, CommonProps, InputContainerProps } from '../utils';
|
|
@@ -12,6 +12,11 @@ export declare type ComboBoxProps<T> = {
|
|
|
12
12
|
* Controlled value of ComboBox.
|
|
13
13
|
*/
|
|
14
14
|
value?: T;
|
|
15
|
+
/**
|
|
16
|
+
* Message shown below the combobox.
|
|
17
|
+
* Use `StatusMessage` component.
|
|
18
|
+
*/
|
|
19
|
+
message?: React.ReactNode;
|
|
15
20
|
/**
|
|
16
21
|
* Callback fired when selected value changes.
|
|
17
22
|
*/
|
|
@@ -33,6 +38,17 @@ export declare type ComboBoxProps<T> = {
|
|
|
33
38
|
* @default 'No options found'
|
|
34
39
|
*/
|
|
35
40
|
emptyStateMessage?: string;
|
|
41
|
+
/**
|
|
42
|
+
* A custom item renderer can be specified to control the rendering.
|
|
43
|
+
* This function should ideally return a customized version of `MenuItem`,
|
|
44
|
+
* otherwise you will need to make sure to provide styling for the `isFocused` state.
|
|
45
|
+
*/
|
|
46
|
+
itemRenderer?: (option: SelectOption<T>, states: {
|
|
47
|
+
isSelected: boolean;
|
|
48
|
+
isFocused: boolean;
|
|
49
|
+
id: string;
|
|
50
|
+
index: number;
|
|
51
|
+
}) => JSX.Element;
|
|
36
52
|
} & Pick<InputContainerProps, 'status'> & Omit<CommonProps, 'title'>;
|
|
37
53
|
/**
|
|
38
54
|
* ComboBox component that allows typing a value to filter the options in dropdown list.
|