@itwin/itwinui-react 3.19.7 → 3.20.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 +19 -0
- package/DEV-cjs/core/Breadcrumbs/Breadcrumbs.js +1 -1
- package/DEV-cjs/core/ComboBox/ComboBox.js +6 -2
- package/DEV-cjs/core/Dialog/DialogTitleBarTitle.js +1 -1
- package/DEV-cjs/core/DropdownMenu/DropdownMenu.js +1 -1
- package/DEV-cjs/core/ExpandableBlock/ExpandableBlock.js +1 -1
- package/DEV-cjs/core/InformationPanel/InformationPanelHeader.js +0 -1
- package/DEV-cjs/core/Table/SubRowExpander.js +1 -1
- package/DEV-cjs/core/Table/Table.js +1 -1
- package/DEV-cjs/core/Table/TableCell.js +27 -18
- package/DEV-cjs/core/Table/cells/DefaultCell.js +63 -85
- package/DEV-cjs/core/Table/columns/expanderColumn.js +1 -1
- package/DEV-cjs/core/Tabs/Tabs.js +10 -6
- package/DEV-cjs/core/Tile/Tile.js +1 -2
- package/DEV-cjs/core/Tree/TreeNodeExpander.js +1 -5
- package/DEV-cjs/styles.js +1 -1
- package/DEV-esm/core/Breadcrumbs/Breadcrumbs.js +2 -2
- package/DEV-esm/core/ComboBox/ComboBox.js +6 -2
- package/DEV-esm/core/Dialog/DialogTitleBarTitle.js +1 -1
- package/DEV-esm/core/DropdownMenu/DropdownMenu.js +1 -1
- package/DEV-esm/core/ExpandableBlock/ExpandableBlock.js +2 -2
- package/DEV-esm/core/InformationPanel/InformationPanelHeader.js +0 -1
- package/DEV-esm/core/Table/SubRowExpander.js +2 -2
- package/DEV-esm/core/Table/Table.js +1 -1
- package/DEV-esm/core/Table/TableCell.js +22 -19
- package/DEV-esm/core/Table/cells/DefaultCell.js +62 -84
- package/DEV-esm/core/Table/columns/expanderColumn.js +2 -2
- package/DEV-esm/core/Tabs/Tabs.js +8 -2
- package/DEV-esm/core/Tile/Tile.js +1 -2
- package/DEV-esm/core/Tree/TreeNodeExpander.js +2 -5
- package/DEV-esm/styles.js +1 -1
- package/cjs/core/Breadcrumbs/Breadcrumbs.js +1 -1
- package/cjs/core/ComboBox/ComboBox.js +6 -2
- package/cjs/core/Dialog/Dialog.d.ts +1 -1
- package/cjs/core/Dialog/DialogTitleBar.d.ts +1 -1
- package/cjs/core/Dialog/DialogTitleBarTitle.d.ts +1 -1
- package/cjs/core/Dialog/DialogTitleBarTitle.js +1 -1
- package/cjs/core/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/cjs/core/DropdownMenu/DropdownMenu.js +1 -1
- package/cjs/core/ExpandableBlock/ExpandableBlock.js +1 -1
- package/cjs/core/InformationPanel/InformationPanelHeader.d.ts +1 -1
- package/cjs/core/InformationPanel/InformationPanelHeader.js +0 -1
- package/cjs/core/StatusMessage/StatusMessage.d.ts +1 -1
- package/cjs/core/Table/SubRowExpander.js +1 -1
- package/cjs/core/Table/Table.js +1 -1
- package/cjs/core/Table/TableCell.js +27 -18
- package/cjs/core/Table/cells/DefaultCell.d.ts +14 -3
- package/cjs/core/Table/cells/DefaultCell.js +63 -85
- package/cjs/core/Table/columns/expanderColumn.js +1 -1
- package/cjs/core/Tabs/Tabs.js +10 -6
- package/cjs/core/Tile/Tile.d.ts +1 -1
- package/cjs/core/Tile/Tile.js +1 -2
- package/cjs/core/Toast/Toast.d.ts +2 -0
- package/cjs/core/Tree/TreeNodeExpander.js +1 -5
- package/cjs/styles.js +1 -1
- package/esm/core/Breadcrumbs/Breadcrumbs.js +2 -2
- package/esm/core/ComboBox/ComboBox.js +6 -2
- package/esm/core/Dialog/Dialog.d.ts +1 -1
- package/esm/core/Dialog/DialogTitleBar.d.ts +1 -1
- package/esm/core/Dialog/DialogTitleBarTitle.d.ts +1 -1
- package/esm/core/Dialog/DialogTitleBarTitle.js +1 -1
- package/esm/core/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/esm/core/DropdownMenu/DropdownMenu.js +1 -1
- package/esm/core/ExpandableBlock/ExpandableBlock.js +2 -2
- package/esm/core/InformationPanel/InformationPanelHeader.d.ts +1 -1
- package/esm/core/InformationPanel/InformationPanelHeader.js +0 -1
- package/esm/core/StatusMessage/StatusMessage.d.ts +1 -1
- package/esm/core/Table/SubRowExpander.js +2 -2
- package/esm/core/Table/Table.js +1 -1
- package/esm/core/Table/TableCell.js +22 -19
- package/esm/core/Table/cells/DefaultCell.d.ts +14 -3
- package/esm/core/Table/cells/DefaultCell.js +62 -84
- package/esm/core/Table/columns/expanderColumn.js +2 -2
- package/esm/core/Tabs/Tabs.js +8 -2
- package/esm/core/Tile/Tile.d.ts +1 -1
- package/esm/core/Tile/Tile.js +1 -2
- package/esm/core/Toast/Toast.d.ts +2 -0
- package/esm/core/Tree/TreeNodeExpander.js +2 -5
- package/esm/styles.js +1 -1
- package/package.json +5 -5
- package/styles.css +12 -10
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { defaultColumn } from 'react-table';
|
|
3
3
|
import cx from 'classnames';
|
|
4
|
-
import { Box
|
|
4
|
+
import { Box } from '../../../utils/index.js';
|
|
5
5
|
import { TableInstanceContext } from '../utils.js';
|
|
6
|
-
export const
|
|
6
|
+
export const DefaultCellContext = React.createContext({});
|
|
7
7
|
export const DefaultCell = (props) => {
|
|
8
8
|
let instance = React.useContext(TableInstanceContext);
|
|
9
9
|
let isCustomCell = React.useMemo(
|
|
@@ -12,8 +12,9 @@ export const DefaultCell = (props) => {
|
|
|
12
12
|
?.Cell !== defaultColumn.Cell,
|
|
13
13
|
[instance, props.cellProps.column.id],
|
|
14
14
|
);
|
|
15
|
+
let defaultCellContext = React.useContext(DefaultCellContext);
|
|
15
16
|
let isCellRendererChildrenCustom =
|
|
16
|
-
|
|
17
|
+
defaultCellContext.children !== props.children;
|
|
17
18
|
let isDefaultTextCell =
|
|
18
19
|
'string' == typeof props.cellProps.value &&
|
|
19
20
|
!isCustomCell &&
|
|
@@ -32,10 +33,33 @@ export const DefaultCell = (props) => {
|
|
|
32
33
|
className,
|
|
33
34
|
style,
|
|
34
35
|
status,
|
|
35
|
-
|
|
36
|
+
text = isDefaultTextCell ? cellProps.value : void 0,
|
|
37
|
+
clamp = !!text,
|
|
36
38
|
...rest
|
|
37
39
|
} = props;
|
|
38
40
|
let { key: cellElementKey, ...cellElementPropsRest } = cellElementProps;
|
|
41
|
+
let decorations = {
|
|
42
|
+
start: startIcon
|
|
43
|
+
? React.createElement(
|
|
44
|
+
Box,
|
|
45
|
+
{
|
|
46
|
+
className: 'iui-table-cell-start-icon',
|
|
47
|
+
key: `${cellElementKey}-start`,
|
|
48
|
+
},
|
|
49
|
+
startIcon,
|
|
50
|
+
)
|
|
51
|
+
: null,
|
|
52
|
+
end: endIcon
|
|
53
|
+
? React.createElement(
|
|
54
|
+
Box,
|
|
55
|
+
{
|
|
56
|
+
className: 'iui-table-cell-end-icon',
|
|
57
|
+
key: `${cellElementKey}-end`,
|
|
58
|
+
},
|
|
59
|
+
endIcon,
|
|
60
|
+
)
|
|
61
|
+
: null,
|
|
62
|
+
};
|
|
39
63
|
return React.createElement(
|
|
40
64
|
Box,
|
|
41
65
|
{
|
|
@@ -50,87 +74,41 @@ export const DefaultCell = (props) => {
|
|
|
50
74
|
...style,
|
|
51
75
|
},
|
|
52
76
|
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
Box,
|
|
88
|
-
{
|
|
89
|
-
className: 'iui-table-cell-start-icon',
|
|
90
|
-
slot: 'start',
|
|
91
|
-
key: `${cellElementKey}-start`,
|
|
92
|
-
},
|
|
93
|
-
startIcon,
|
|
94
|
-
),
|
|
95
|
-
children,
|
|
96
|
-
endIcon &&
|
|
97
|
-
React.createElement(
|
|
98
|
-
Box,
|
|
99
|
-
{
|
|
100
|
-
className: 'iui-table-cell-end-icon',
|
|
101
|
-
slot: 'end',
|
|
102
|
-
key: `${cellElementKey}-end`,
|
|
103
|
-
},
|
|
104
|
-
endIcon,
|
|
105
|
-
),
|
|
77
|
+
(() => {
|
|
78
|
+
if (text)
|
|
79
|
+
return React.createElement(
|
|
80
|
+
React.Fragment,
|
|
81
|
+
null,
|
|
82
|
+
decorations.start,
|
|
83
|
+
defaultCellContext.expander,
|
|
84
|
+
React.createElement(
|
|
85
|
+
Box,
|
|
86
|
+
{
|
|
87
|
+
className: 'iui-table-cell-default-content',
|
|
88
|
+
onClick: (e) => e.stopPropagation(),
|
|
89
|
+
},
|
|
90
|
+
clamp
|
|
91
|
+
? React.createElement(
|
|
92
|
+
Box,
|
|
93
|
+
{
|
|
94
|
+
className: 'iui-line-clamp',
|
|
95
|
+
},
|
|
96
|
+
text,
|
|
97
|
+
)
|
|
98
|
+
: text,
|
|
99
|
+
),
|
|
100
|
+
decorations.end,
|
|
101
|
+
defaultCellContext.shadows,
|
|
102
|
+
);
|
|
103
|
+
return React.createElement(
|
|
104
|
+
React.Fragment,
|
|
105
|
+
null,
|
|
106
|
+
decorations.start,
|
|
107
|
+
children,
|
|
108
|
+
decorations.end,
|
|
109
|
+
);
|
|
110
|
+
})(),
|
|
106
111
|
);
|
|
107
112
|
};
|
|
108
113
|
if ('development' === process.env.NODE_ENV)
|
|
109
114
|
DefaultCell.displayName = 'DefaultCell';
|
|
110
|
-
let TableCellContent = (props) => {
|
|
111
|
-
let { children, shouldRenderWrapper } = props;
|
|
112
|
-
return shouldRenderWrapper
|
|
113
|
-
? React.createElement(
|
|
114
|
-
'div',
|
|
115
|
-
{
|
|
116
|
-
className: '_iui-table-cell-default-content',
|
|
117
|
-
onClick: (e) => e.stopPropagation(),
|
|
118
|
-
},
|
|
119
|
-
children,
|
|
120
|
-
)
|
|
121
|
-
: children;
|
|
122
|
-
};
|
|
123
|
-
let css = `
|
|
124
|
-
._iui-table-cell-default-content {
|
|
125
|
-
position: relative;
|
|
126
|
-
isolation: isolate;
|
|
127
|
-
}
|
|
128
|
-
._iui-table-cell-default-content::before {
|
|
129
|
-
content: '';
|
|
130
|
-
display: block;
|
|
131
|
-
position: absolute;
|
|
132
|
-
inset: -6px;
|
|
133
|
-
z-index: -1;
|
|
134
|
-
}
|
|
135
|
-
${lineClamp.css}
|
|
136
|
-
`;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { SvgChevronRightSmall } from '../../../utils/index.js';
|
|
3
3
|
import { IconButton } from '../../Buttons/IconButton.js';
|
|
4
4
|
import { DefaultCell } from '../cells/index.js';
|
|
5
5
|
export const EXPANDER_CELL_ID = 'iui-table-expander';
|
|
@@ -32,7 +32,7 @@ export const ExpanderColumn = (props = {}) => {
|
|
|
32
32
|
disabled: isDisabled?.(props.row.original),
|
|
33
33
|
'aria-expanded': row.isExpanded,
|
|
34
34
|
},
|
|
35
|
-
React.createElement(
|
|
35
|
+
React.createElement(SvgChevronRightSmall, null),
|
|
36
36
|
);
|
|
37
37
|
},
|
|
38
38
|
cellRenderer: (props) =>
|
package/esm/core/Tabs/Tabs.js
CHANGED
|
@@ -72,7 +72,8 @@ let TabsWrapperPresentation = React.forwardRef((props, forwardedRef) => {
|
|
|
72
72
|
let { orientation = 'horizontal', ...rest } = props;
|
|
73
73
|
return React.createElement(Box, {
|
|
74
74
|
...rest,
|
|
75
|
-
className: cx('iui-tabs-wrapper',
|
|
75
|
+
className: cx('iui-tabs-wrapper', props.className),
|
|
76
|
+
'data-iui-orientation': orientation,
|
|
76
77
|
ref: forwardedRef,
|
|
77
78
|
});
|
|
78
79
|
});
|
|
@@ -267,6 +268,7 @@ let Tab = React.forwardRef((props, forwardedRef) => {
|
|
|
267
268
|
if ('auto' === focusActivationMode && !props.disabled)
|
|
268
269
|
setActiveValue(value);
|
|
269
270
|
}),
|
|
271
|
+
'data-iui-orientation': orientation,
|
|
270
272
|
},
|
|
271
273
|
label ? React.createElement(Tabs.TabLabel, null, label) : children,
|
|
272
274
|
);
|
|
@@ -313,17 +315,20 @@ if ('development' === process.env.NODE_ENV)
|
|
|
313
315
|
TabDescription.displayName = 'Tabs.TabDescription';
|
|
314
316
|
let TabsActions = React.forwardRef((props, ref) => {
|
|
315
317
|
let { wrapperProps, className, children, ...rest } = props;
|
|
318
|
+
let { orientation } = useSafeContext(TabsContext);
|
|
316
319
|
return React.createElement(
|
|
317
320
|
Box,
|
|
318
321
|
{
|
|
319
322
|
...wrapperProps,
|
|
320
323
|
className: cx('iui-tabs-actions-wrapper', wrapperProps?.className),
|
|
324
|
+
'data-iui-orientation': orientation,
|
|
321
325
|
},
|
|
322
326
|
React.createElement(
|
|
323
327
|
Box,
|
|
324
328
|
{
|
|
325
329
|
className: cx('iui-tabs-actions', className),
|
|
326
330
|
ref: ref,
|
|
331
|
+
'data-iui-orientation': orientation,
|
|
327
332
|
...rest,
|
|
328
333
|
},
|
|
329
334
|
children,
|
|
@@ -334,7 +339,7 @@ if ('development' === process.env.NODE_ENV)
|
|
|
334
339
|
TabsActions.displayName = 'Tabs.Actions';
|
|
335
340
|
let TabsPanel = React.forwardRef((props, ref) => {
|
|
336
341
|
let { value, className, children, ...rest } = props;
|
|
337
|
-
let { activeValue, idPrefix } = useSafeContext(TabsContext);
|
|
342
|
+
let { activeValue, idPrefix, orientation } = useSafeContext(TabsContext);
|
|
338
343
|
return React.createElement(
|
|
339
344
|
Box,
|
|
340
345
|
{
|
|
@@ -345,6 +350,7 @@ let TabsPanel = React.forwardRef((props, ref) => {
|
|
|
345
350
|
ref: ref,
|
|
346
351
|
...rest,
|
|
347
352
|
id: `${idPrefix}-panel-${value.replaceAll(' ', '-')}`,
|
|
353
|
+
'data-iui-orientation': orientation,
|
|
348
354
|
},
|
|
349
355
|
children,
|
|
350
356
|
);
|
package/esm/core/Tile/Tile.d.ts
CHANGED
|
@@ -270,7 +270,7 @@ export declare const Tile: PolymorphicForwardRefComponent<"div", TileLegacyProps
|
|
|
270
270
|
* </Tile.Wrapper>
|
|
271
271
|
*/
|
|
272
272
|
NameIcon: PolymorphicForwardRefComponent<"div", {}>;
|
|
273
|
-
NameLabel: PolymorphicForwardRefComponent<"
|
|
273
|
+
NameLabel: PolymorphicForwardRefComponent<"h2", {}>;
|
|
274
274
|
/**
|
|
275
275
|
* Polymorphic Tile action component. Recommended to be used in `Tile.NameLabel` subcomponent.
|
|
276
276
|
* Renders `a` element by default.
|
package/esm/core/Tile/Tile.js
CHANGED
|
@@ -188,7 +188,7 @@ let TileNameIcon = React.forwardRef((props, forwardedRef) => {
|
|
|
188
188
|
});
|
|
189
189
|
if ('development' === process.env.NODE_ENV)
|
|
190
190
|
TileNameIcon.displayName = 'Tile.NameIcon';
|
|
191
|
-
let TileNameLabel = polymorphic.
|
|
191
|
+
let TileNameLabel = polymorphic.h2('iui-tile-name-label');
|
|
192
192
|
if ('development' === process.env.NODE_ENV)
|
|
193
193
|
TileNameLabel.displayName = 'Tile.NameLabel';
|
|
194
194
|
let TileContentArea = polymorphic.div('iui-tile-content');
|
|
@@ -221,7 +221,6 @@ let TileMoreOptions = React.forwardRef((props, forwardedRef) => {
|
|
|
221
221
|
{
|
|
222
222
|
onVisibleChange: setIsMenuVisible,
|
|
223
223
|
menuItems: children,
|
|
224
|
-
closeOnItemClick: true,
|
|
225
224
|
},
|
|
226
225
|
React.createElement(
|
|
227
226
|
IconButton,
|
|
@@ -40,6 +40,8 @@ export type ToastProps = {
|
|
|
40
40
|
/**
|
|
41
41
|
* Boolean indicating when the close button is visible.
|
|
42
42
|
* When false, the toast will not have any close button.
|
|
43
|
+
*
|
|
44
|
+
* This prop has no effect when the toast `type` is set to `persisting`.
|
|
43
45
|
*/
|
|
44
46
|
hasCloseButton?: boolean;
|
|
45
47
|
/**
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import cx from 'classnames';
|
|
3
|
-
import {
|
|
3
|
+
import { SvgChevronRightSmall } from '../../utils/index.js';
|
|
4
4
|
import { IconButton } from '../Buttons/IconButton.js';
|
|
5
|
-
import { TreeContext } from './TreeContext.js';
|
|
6
5
|
export const TreeNodeExpander = React.forwardRef((props, ref) => {
|
|
7
6
|
let { isExpanded, expanderIconProps = {}, ...rest } = props;
|
|
8
|
-
let size = React.useContext(TreeContext)?.size ?? 'default';
|
|
9
|
-
let ChevronIcon = 'small' === size ? SvgChevronRightSmall : SvgChevronRight;
|
|
10
7
|
return React.createElement(
|
|
11
8
|
IconButton,
|
|
12
9
|
{
|
|
@@ -16,7 +13,7 @@ export const TreeNodeExpander = React.forwardRef((props, ref) => {
|
|
|
16
13
|
ref: ref,
|
|
17
14
|
...rest,
|
|
18
15
|
},
|
|
19
|
-
React.createElement(
|
|
16
|
+
React.createElement(SvgChevronRightSmall, {
|
|
20
17
|
...expanderIconProps,
|
|
21
18
|
className: cx(
|
|
22
19
|
'iui-tree-node-content-expander-icon',
|
package/esm/styles.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/itwinui-react",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.20.0",
|
|
4
4
|
"author": "Bentley Systems",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -100,8 +100,8 @@
|
|
|
100
100
|
"eslint-config-prettier": "^8.8.0",
|
|
101
101
|
"eslint-plugin-require-extensions": "^0.1.3",
|
|
102
102
|
"jsdom": "^26.0.0",
|
|
103
|
-
"react": "19.
|
|
104
|
-
"react-dom": "19.
|
|
103
|
+
"react": "^19.2.3",
|
|
104
|
+
"react-dom": "^19.2.3",
|
|
105
105
|
"typescript": "5",
|
|
106
106
|
"vite": "~6.4.1",
|
|
107
107
|
"vitest": "^2.1.9"
|
|
@@ -109,10 +109,10 @@
|
|
|
109
109
|
"peerDependencies": {
|
|
110
110
|
"react": ">=17.0.0",
|
|
111
111
|
"react-dom": ">=17.0.0",
|
|
112
|
-
"@stratakit/
|
|
112
|
+
"@stratakit/mui": ">=0.1.1"
|
|
113
113
|
},
|
|
114
114
|
"peerDependenciesMeta": {
|
|
115
|
-
"@stratakit/
|
|
115
|
+
"@stratakit/mui": {
|
|
116
116
|
"optional": true
|
|
117
117
|
}
|
|
118
118
|
},
|