@itwin/itwinui-react 1.26.0 → 1.29.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.
Files changed (116) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/cjs/core/Breadcrumbs/Breadcrumbs.js +1 -1
  3. package/cjs/core/ButtonGroup/ButtonGroup.js +2 -4
  4. package/cjs/core/Buttons/Button/Button.d.ts +6 -26
  5. package/cjs/core/Buttons/Button/Button.js +5 -6
  6. package/cjs/core/Buttons/DropdownButton/DropdownButton.d.ts +1 -1
  7. package/cjs/core/Buttons/IconButton/IconButton.d.ts +3 -8
  8. package/cjs/core/Buttons/IconButton/IconButton.js +3 -4
  9. package/cjs/core/Buttons/SplitButton/SplitButton.d.ts +9 -7
  10. package/cjs/core/Buttons/SplitButton/SplitButton.js +11 -6
  11. package/cjs/core/Checkbox/Checkbox.d.ts +11 -0
  12. package/cjs/core/Checkbox/Checkbox.js +14 -4
  13. package/cjs/core/ColorPicker/ColorInputPanel.js +2 -2
  14. package/cjs/core/ColorPicker/ColorSwatch.d.ts +1 -1
  15. package/cjs/core/ComboBox/ComboBox.d.ts +2 -2
  16. package/cjs/core/DatePicker/DatePicker.js +14 -15
  17. package/cjs/core/ErrorPage/ErrorPage.d.ts +2 -1
  18. package/cjs/core/ErrorPage/ErrorPage.js +3 -2
  19. package/cjs/core/Header/HeaderButton.d.ts +6 -4
  20. package/cjs/core/Header/HeaderButton.js +3 -4
  21. package/cjs/core/LabeledInput/LabeledInput.d.ts +1 -1
  22. package/cjs/core/Modal/ModalButtonBar.d.ts +2 -1
  23. package/cjs/core/Modal/ModalButtonBar.js +3 -2
  24. package/cjs/core/SideNavigation/SidenavButton.d.ts +3 -13
  25. package/cjs/core/Table/Table.d.ts +13 -0
  26. package/cjs/core/Table/Table.js +80 -11
  27. package/cjs/core/Table/TableCell.js +1 -1
  28. package/cjs/core/Table/TablePaginator.d.ts +6 -6
  29. package/cjs/core/Table/TablePaginator.js +23 -12
  30. package/cjs/core/Table/TableRowMemoized.d.ts +21 -0
  31. package/cjs/core/Table/TableRowMemoized.js +7 -4
  32. package/cjs/core/Table/actionHandlers/resizeHandler.d.ts +51 -0
  33. package/cjs/core/Table/actionHandlers/resizeHandler.js +22 -0
  34. package/cjs/core/Table/actionHandlers/selectHandler.d.ts +10 -7
  35. package/cjs/core/Table/filters/BaseFilter.js +3 -1
  36. package/cjs/core/Table/filters/FilterToggle.js +4 -3
  37. package/cjs/core/Table/hooks/index.d.ts +1 -0
  38. package/cjs/core/Table/hooks/index.js +3 -1
  39. package/cjs/core/Table/hooks/useResizeColumns.d.ts +5 -0
  40. package/cjs/core/Table/hooks/useResizeColumns.js +273 -0
  41. package/cjs/core/Table/utils.d.ts +1 -1
  42. package/cjs/core/Table/utils.js +8 -2
  43. package/cjs/core/Tabs/Tabs.d.ts +4 -0
  44. package/cjs/core/Tabs/Tabs.js +2 -2
  45. package/cjs/core/Typography/Anchor/Anchor.d.ts +3 -0
  46. package/cjs/core/Typography/Anchor/Anchor.js +41 -0
  47. package/cjs/core/Typography/Anchor/index.d.ts +3 -0
  48. package/cjs/core/Typography/Anchor/index.js +10 -0
  49. package/cjs/core/Typography/Text/Text.d.ts +6 -10
  50. package/cjs/core/Typography/Text/Text.js +3 -4
  51. package/cjs/core/Typography/index.d.ts +1 -0
  52. package/cjs/core/Typography/index.js +3 -1
  53. package/cjs/core/index.d.ts +1 -1
  54. package/cjs/core/index.js +2 -1
  55. package/cjs/core/utils/components/MiddleTextTruncation.js +1 -1
  56. package/cjs/core/utils/hooks/useTheme.js +20 -3
  57. package/cjs/core/utils/props.d.ts +31 -1
  58. package/cjs/types/react-table-config.d.ts +16 -3
  59. package/esm/core/Breadcrumbs/Breadcrumbs.js +1 -1
  60. package/esm/core/ButtonGroup/ButtonGroup.js +2 -4
  61. package/esm/core/Buttons/Button/Button.d.ts +6 -26
  62. package/esm/core/Buttons/Button/Button.js +6 -7
  63. package/esm/core/Buttons/DropdownButton/DropdownButton.d.ts +1 -1
  64. package/esm/core/Buttons/IconButton/IconButton.d.ts +3 -8
  65. package/esm/core/Buttons/IconButton/IconButton.js +3 -4
  66. package/esm/core/Buttons/SplitButton/SplitButton.d.ts +9 -7
  67. package/esm/core/Buttons/SplitButton/SplitButton.js +11 -5
  68. package/esm/core/Checkbox/Checkbox.d.ts +11 -0
  69. package/esm/core/Checkbox/Checkbox.js +14 -4
  70. package/esm/core/ColorPicker/ColorInputPanel.js +2 -2
  71. package/esm/core/ColorPicker/ColorSwatch.d.ts +1 -1
  72. package/esm/core/ComboBox/ComboBox.d.ts +2 -2
  73. package/esm/core/DatePicker/DatePicker.js +14 -15
  74. package/esm/core/ErrorPage/ErrorPage.d.ts +2 -1
  75. package/esm/core/ErrorPage/ErrorPage.js +3 -2
  76. package/esm/core/Header/HeaderButton.d.ts +6 -4
  77. package/esm/core/Header/HeaderButton.js +3 -3
  78. package/esm/core/LabeledInput/LabeledInput.d.ts +1 -1
  79. package/esm/core/Modal/ModalButtonBar.d.ts +2 -1
  80. package/esm/core/Modal/ModalButtonBar.js +3 -2
  81. package/esm/core/SideNavigation/SidenavButton.d.ts +3 -13
  82. package/esm/core/Table/Table.d.ts +13 -0
  83. package/esm/core/Table/Table.js +82 -13
  84. package/esm/core/Table/TableCell.js +1 -1
  85. package/esm/core/Table/TablePaginator.d.ts +6 -6
  86. package/esm/core/Table/TablePaginator.js +24 -13
  87. package/esm/core/Table/TableRowMemoized.d.ts +21 -0
  88. package/esm/core/Table/TableRowMemoized.js +5 -3
  89. package/esm/core/Table/actionHandlers/resizeHandler.d.ts +51 -0
  90. package/esm/core/Table/actionHandlers/resizeHandler.js +17 -0
  91. package/esm/core/Table/actionHandlers/selectHandler.d.ts +10 -7
  92. package/esm/core/Table/filters/BaseFilter.js +3 -1
  93. package/esm/core/Table/filters/FilterToggle.js +4 -3
  94. package/esm/core/Table/hooks/index.d.ts +1 -0
  95. package/esm/core/Table/hooks/index.js +1 -0
  96. package/esm/core/Table/hooks/useResizeColumns.d.ts +5 -0
  97. package/esm/core/Table/hooks/useResizeColumns.js +269 -0
  98. package/esm/core/Table/utils.d.ts +1 -1
  99. package/esm/core/Table/utils.js +8 -2
  100. package/esm/core/Tabs/Tabs.d.ts +4 -0
  101. package/esm/core/Tabs/Tabs.js +2 -2
  102. package/esm/core/Typography/Anchor/Anchor.d.ts +3 -0
  103. package/esm/core/Typography/Anchor/Anchor.js +35 -0
  104. package/esm/core/Typography/Anchor/index.d.ts +3 -0
  105. package/esm/core/Typography/Anchor/index.js +6 -0
  106. package/esm/core/Typography/Text/Text.d.ts +6 -10
  107. package/esm/core/Typography/Text/Text.js +4 -4
  108. package/esm/core/Typography/index.d.ts +1 -0
  109. package/esm/core/Typography/index.js +1 -0
  110. package/esm/core/index.d.ts +1 -1
  111. package/esm/core/index.js +1 -1
  112. package/esm/core/utils/components/MiddleTextTruncation.js +1 -1
  113. package/esm/core/utils/hooks/useTheme.js +20 -3
  114. package/esm/core/utils/props.d.ts +31 -1
  115. package/esm/types/react-table-config.d.ts +16 -3
  116. package/package.json +20 -8
@@ -78,7 +78,7 @@ export var Breadcrumbs = React.forwardRef(function (props, ref) {
78
78
  React.createElement(Separator, null))),
79
79
  items.length - visibleCount > 0 && (React.createElement(React.Fragment, null,
80
80
  React.createElement("li", { className: 'iui-breadcrumbs-item' },
81
- React.createElement("span", { className: 'iui-ellipsis' }, "\u2026")),
81
+ React.createElement("span", null, "\u2026")),
82
82
  React.createElement(Separator, null))),
83
83
  items
84
84
  .slice(visibleCount > 1
@@ -58,14 +58,12 @@ import '@itwin/itwinui-css/css/button.css';
58
58
  */
59
59
  export var ButtonGroup = React.forwardRef(function (props, ref) {
60
60
  var children = props.children, className = props.className, style = props.style, overflowButton = props.overflowButton, rest = __rest(props, ["children", "className", "style", "overflowButton"]);
61
- var items = React.useMemo(function () { return React.Children.toArray(children); }, [
62
- children,
63
- ]);
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]);
64
62
  useTheme();
65
63
  var _a = useOverflow(items, !overflowButton), overflowRef = _a[0], visibleCount = _a[1];
66
64
  var refs = useMergedRefs(overflowRef, ref);
67
65
  return (React.createElement("div", __assign({ className: cx('iui-button-group', className), style: __assign(__assign({}, (!!overflowButton && { width: '100%' })), style), ref: refs }, rest), !!overflowButton && visibleCount < items.length ? (React.createElement(React.Fragment, null,
68
66
  items.slice(0, visibleCount - 1),
69
- overflowButton(visibleCount))) : (children)));
67
+ overflowButton(visibleCount))) : (items)));
70
68
  });
71
69
  export default ButtonGroup;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
+ import { PolymorphicComponentProps, PolymorphicForwardRefComponent } from '../../utils';
2
3
  import '@itwin/itwinui-css/css/button.css';
3
- export declare type ButtonProps = {
4
+ declare type ButtonOwnProps = {
4
5
  /**
5
6
  * Modify size of the button.
6
7
  */
@@ -23,7 +24,9 @@ export declare type ButtonProps = {
23
24
  * Content of the button.
24
25
  */
25
26
  children?: React.ReactNode;
26
- } & React.ButtonHTMLAttributes<HTMLButtonElement>;
27
+ };
28
+ export declare type ButtonProps<T extends React.ElementType = 'button'> = PolymorphicComponentProps<T, ButtonOwnProps>;
29
+ declare type ButtonComponent = PolymorphicForwardRefComponent<'button', ButtonOwnProps>;
27
30
  /**
28
31
  * Generic button component
29
32
  * @example
@@ -33,28 +36,5 @@ export declare type ButtonProps = {
33
36
  * <Button size='small' styleType='cta'>This is a small call to action button</Button>
34
37
  * <Button startIcon={<SvgAdd />}>New</Button>
35
38
  */
36
- export declare const Button: React.ForwardRefExoticComponent<{
37
- /**
38
- * Modify size of the button.
39
- */
40
- size?: "small" | "large" | undefined;
41
- /**
42
- * Style of the button.
43
- * Use 'borderless' to hide outline.
44
- * @default 'default'
45
- */
46
- styleType?: "default" | "cta" | "high-visibility" | "borderless" | undefined;
47
- /**
48
- * Icon shown before the main button content.
49
- */
50
- startIcon?: JSX.Element | undefined;
51
- /**
52
- * Icon shown after the main button content.
53
- */
54
- endIcon?: JSX.Element | undefined;
55
- /**
56
- * Content of the button.
57
- */
58
- children?: React.ReactNode;
59
- } & React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
39
+ export declare const Button: ButtonComponent;
60
40
  export default Button;
@@ -26,7 +26,7 @@ var __rest = (this && this.__rest) || function (s, e) {
26
26
  *--------------------------------------------------------------------------------------------*/
27
27
  import cx from 'classnames';
28
28
  import React from 'react';
29
- import { useTheme } from '../../utils';
29
+ import { useTheme, } from '../../utils';
30
30
  import '@itwin/itwinui-css/css/button.css';
31
31
  /**
32
32
  * Generic button component
@@ -39,20 +39,19 @@ import '@itwin/itwinui-css/css/button.css';
39
39
  */
40
40
  export var Button = React.forwardRef(function (props, ref) {
41
41
  var _a;
42
- var children = props.children, className = props.className, size = props.size, style = props.style, _b = props.styleType, styleType = _b === void 0 ? 'default' : _b, _c = props.type, type = _c === void 0 ? 'button' : _c, startIcon = props.startIcon, endIcon = props.endIcon, rest = __rest(props, ["children", "className", "size", "style", "styleType", "type", "startIcon", "endIcon"]);
42
+ var children = props.children, className = props.className, size = props.size, style = props.style, _b = props.styleType, styleType = _b === void 0 ? 'default' : _b, _c = props.type, type = _c === void 0 ? 'button' : _c, startIcon = props.startIcon, endIcon = props.endIcon, _d = props.as, Element = _d === void 0 ? 'button' : _d, rest = __rest(props, ["children", "className", "size", "style", "styleType", "type", "startIcon", "endIcon", "as"]);
43
43
  useTheme();
44
- return (React.createElement("button", __assign({ ref: ref, className: cx('iui-button', (_a = {},
44
+ return (React.createElement(Element, __assign({ ref: ref, className: cx('iui-button', "iui-" + styleType, (_a = {},
45
45
  _a["iui-" + size] = !!size,
46
- _a["iui-" + styleType] = styleType !== 'default',
47
46
  _a), className), style: style, type: type }, rest),
48
47
  startIcon &&
49
48
  React.cloneElement(startIcon, {
50
- className: cx('iui-icon', startIcon.props.className),
49
+ className: cx('iui-button-icon', startIcon.props.className),
51
50
  }),
52
- children && React.createElement("span", { className: 'iui-label' }, children),
51
+ children && React.createElement("span", { className: 'iui-button-label' }, children),
53
52
  endIcon &&
54
53
  React.cloneElement(endIcon, {
55
- className: cx('iui-icon', endIcon.props.className),
54
+ className: cx('iui-button-icon', endIcon.props.className),
56
55
  })));
57
56
  });
58
57
  export default Button;
@@ -37,5 +37,5 @@ export declare const DropdownButton: React.ForwardRefExoticComponent<{
37
37
  * @default 'default'
38
38
  */
39
39
  styleType?: "default" | "borderless" | undefined;
40
- } & Omit<ButtonProps, "styleType" | "endIcon" | "onClick"> & React.RefAttributes<HTMLButtonElement>>;
40
+ } & Omit<ButtonProps<"button">, "onClick" | "styleType" | "endIcon"> & React.RefAttributes<HTMLButtonElement>>;
41
41
  export default DropdownButton;
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
1
  import { ButtonProps } from '../Button';
2
+ import { PolymorphicForwardRefComponent } from '../../utils';
3
3
  import '@itwin/itwinui-css/css/button.css';
4
4
  export declare type IconButtonProps = {
5
5
  /**
@@ -8,17 +8,12 @@ export declare type IconButtonProps = {
8
8
  */
9
9
  isActive?: boolean;
10
10
  } & Omit<ButtonProps, 'startIcon' | 'endIcon'>;
11
+ declare type IconButtonComponent = PolymorphicForwardRefComponent<'button', IconButtonProps>;
11
12
  /**
12
13
  * Icon button
13
14
  * @example
14
15
  * <IconButton><SvgAdd /></IconButton>
15
16
  * <IconButton styleType='borderless'><SvgAdd /></IconButton>
16
17
  */
17
- export declare const IconButton: React.ForwardRefExoticComponent<{
18
- /**
19
- * Button gets active style.
20
- * @default false
21
- */
22
- isActive?: boolean | undefined;
23
- } & Omit<ButtonProps, "startIcon" | "endIcon"> & React.RefAttributes<HTMLButtonElement>>;
18
+ export declare const IconButton: IconButtonComponent;
24
19
  export default IconButton;
@@ -36,14 +36,13 @@ import '@itwin/itwinui-css/css/button.css';
36
36
  */
37
37
  export var IconButton = React.forwardRef(function (props, ref) {
38
38
  var _a;
39
- var isActive = props.isActive, children = props.children, _b = props.styleType, styleType = _b === void 0 ? 'default' : _b, size = props.size, _c = props.type, type = _c === void 0 ? 'button' : _c, className = props.className, rest = __rest(props, ["isActive", "children", "styleType", "size", "type", "className"]);
39
+ var isActive = props.isActive, children = props.children, _b = props.styleType, styleType = _b === void 0 ? 'default' : _b, size = props.size, _c = props.type, type = _c === void 0 ? 'button' : _c, className = props.className, _d = props.as, Element = _d === void 0 ? 'button' : _d, rest = __rest(props, ["isActive", "children", "styleType", "size", "type", "className", "as"]);
40
40
  useTheme();
41
- return (React.createElement("button", __assign({ ref: ref, className: cx('iui-button', (_a = {},
41
+ return (React.createElement(Element, __assign({ ref: ref, className: cx('iui-button', "iui-" + styleType, (_a = {},
42
42
  _a["iui-" + size] = !!size,
43
- _a["iui-" + styleType] = styleType !== 'default',
44
43
  _a['iui-active'] = isActive,
45
44
  _a), className), type: type }, rest), React.cloneElement(children, {
46
- className: cx('iui-icon', children.props.className),
45
+ className: cx('iui-button-icon', children.props.className),
47
46
  'aria-hidden': true,
48
47
  })));
49
48
  });
@@ -1,12 +1,9 @@
1
1
  import React from 'react';
2
2
  import { ButtonProps } from '../Button';
3
3
  import { Placement } from 'tippy.js';
4
+ import { PolymorphicForwardRefComponent } from '../../utils';
4
5
  import '@itwin/itwinui-css/css/button.css';
5
- export declare type SplitButtonProps = {
6
- /**
7
- * Callback fired on clicking the primary button.
8
- */
9
- onClick: React.MouseEventHandler<HTMLButtonElement>;
6
+ export declare type SplitButtonProps = ButtonProps & {
10
7
  /**
11
8
  * Items in the dropdown menu.
12
9
  * Pass a function that takes the `close` argument (to close the menu),
@@ -22,9 +19,14 @@ export declare type SplitButtonProps = {
22
19
  * Content of primary button.
23
20
  */
24
21
  children: React.ReactNode;
25
- } & Omit<ButtonProps, 'onClick'>;
22
+ };
23
+ declare type SplitButtonComponent = PolymorphicForwardRefComponent<'button', SplitButtonProps>;
26
24
  /**
27
25
  * Split button component with a DropdownMenu.
26
+ *
27
+ * The delegated props and forwarded ref are passed onto the primary button.
28
+ * It also supports using the `as` prop to change which element is rendered.
29
+ *
28
30
  * @example
29
31
  * const menuItems = (close: () => void) => [
30
32
  * <MenuItem key={1} onClick={onClick(1, close)}>Item #1</MenuItem>,
@@ -33,5 +35,5 @@ export declare type SplitButtonProps = {
33
35
  * <SplitButton onClick={onClick} menuItems={menuItems}>Default</SplitButton>
34
36
  * <SplitButton onClick={onClick} menuItems={menuItems} styleType='high-visibility'>High visibility</SplitButton>
35
37
  */
36
- export declare const SplitButton: (props: SplitButtonProps) => JSX.Element;
38
+ export declare const SplitButton: SplitButtonComponent;
37
39
  export default SplitButton;
@@ -35,6 +35,10 @@ import { useTheme } from '../../utils';
35
35
  import '@itwin/itwinui-css/css/button.css';
36
36
  /**
37
37
  * Split button component with a DropdownMenu.
38
+ *
39
+ * The delegated props and forwarded ref are passed onto the primary button.
40
+ * It also supports using the `as` prop to change which element is rendered.
41
+ *
38
42
  * @example
39
43
  * const menuItems = (close: () => void) => [
40
44
  * <MenuItem key={1} onClick={onClick(1, close)}>Item #1</MenuItem>,
@@ -43,7 +47,7 @@ import '@itwin/itwinui-css/css/button.css';
43
47
  * <SplitButton onClick={onClick} menuItems={menuItems}>Default</SplitButton>
44
48
  * <SplitButton onClick={onClick} menuItems={menuItems} styleType='high-visibility'>High visibility</SplitButton>
45
49
  */
46
- export var SplitButton = function (props) {
50
+ export var SplitButton = React.forwardRef(function (props, forwardedRef) {
47
51
  var onClick = props.onClick, menuItems = props.menuItems, className = props.className, _a = props.menuPlacement, menuPlacement = _a === void 0 ? 'bottom-end' : _a, _b = props.styleType, styleType = _b === void 0 ? 'default' : _b, size = props.size, children = props.children, style = props.style, title = props.title, rest = __rest(props, ["onClick", "menuItems", "className", "menuPlacement", "styleType", "size", "children", "style", "title"]);
48
52
  useTheme();
49
53
  var _c = React.useState(false), isMenuOpen = _c[0], setIsMenuOpen = _c[1];
@@ -57,8 +61,10 @@ export var SplitButton = function (props) {
57
61
  return (React.createElement("span", { className: cx(className, 'iui-button-split-menu', {
58
62
  'iui-disabled': props.disabled,
59
63
  }), style: style, title: title, ref: ref },
60
- React.createElement(Button, __assign({ styleType: styleType, size: size, onClick: onClick }, rest), children),
61
- React.createElement(DropdownMenu, { placement: menuPlacement, menuItems: menuItems, style: { minWidth: menuWidth }, onShow: React.useCallback(function () { return setIsMenuOpen(true); }, []), onHide: React.useCallback(function () { return setIsMenuOpen(false); }, []) },
62
- React.createElement(IconButton, { styleType: styleType, size: size, disabled: props.disabled }, isMenuOpen ? React.createElement(SvgCaretUpSmall, null) : React.createElement(SvgCaretDownSmall, null)))));
63
- };
64
+ React.createElement("div", null,
65
+ React.createElement(Button, __assign({ styleType: styleType, size: size, onClick: onClick, ref: forwardedRef }, rest), children)),
66
+ React.createElement("div", null,
67
+ React.createElement(DropdownMenu, { placement: menuPlacement, menuItems: menuItems, style: { minWidth: menuWidth }, onShow: React.useCallback(function () { return setIsMenuOpen(true); }, []), onHide: React.useCallback(function () { return setIsMenuOpen(false); }, []) },
68
+ React.createElement(IconButton, { styleType: styleType, size: size, disabled: props.disabled }, isMenuOpen ? React.createElement(SvgCaretUpSmall, null) : React.createElement(SvgCaretDownSmall, null))))));
69
+ });
64
70
  export default SplitButton;
@@ -14,6 +14,11 @@ export declare type CheckboxProps = {
14
14
  * Status of checkbox.
15
15
  */
16
16
  status?: 'positive' | 'warning' | 'negative';
17
+ /**
18
+ * Type of checkbox, regular or eyeball checkbox that is used for visibility.
19
+ * @default 'default'
20
+ */
21
+ variant?: 'default' | 'eyeball';
17
22
  /**
18
23
  * Set focus on checkbox.
19
24
  */
@@ -41,6 +46,7 @@ export declare type CheckboxProps = {
41
46
  * <Checkbox label='Positive Checkbox' status='positive' />
42
47
  * <Checkbox label='Warning Checkbox' status='warning' />
43
48
  * <Checkbox label='Negative Checkbox' status='negative' />
49
+ * <Checkbox label='Visibility Checkbox' variant='eyeball' />
44
50
  */
45
51
  export declare const Checkbox: React.ForwardRefExoticComponent<{
46
52
  /**
@@ -56,6 +62,11 @@ export declare const Checkbox: React.ForwardRefExoticComponent<{
56
62
  * Status of checkbox.
57
63
  */
58
64
  status?: "positive" | "warning" | "negative" | undefined;
65
+ /**
66
+ * Type of checkbox, regular or eyeball checkbox that is used for visibility.
67
+ * @default 'default'
68
+ */
69
+ variant?: "default" | "eyeball" | undefined;
59
70
  /**
60
71
  * Set focus on checkbox.
61
72
  */
@@ -38,10 +38,11 @@ import '@itwin/itwinui-css/css/inputs.css';
38
38
  * <Checkbox label='Positive Checkbox' status='positive' />
39
39
  * <Checkbox label='Warning Checkbox' status='warning' />
40
40
  * <Checkbox label='Negative Checkbox' status='negative' />
41
+ * <Checkbox label='Visibility Checkbox' variant='eyeball' />
41
42
  */
42
43
  export var Checkbox = React.forwardRef(function (props, ref) {
43
44
  var _a;
44
- var className = props.className, _b = props.disabled, disabled = _b === void 0 ? false : _b, _c = props.indeterminate, indeterminate = _c === void 0 ? false : _c, label = props.label, status = props.status, setFocus = props.setFocus, _d = props.isLoading, isLoading = _d === void 0 ? false : _d, style = props.style, checkmarkClassName = props.checkmarkClassName, checkmarkStyle = props.checkmarkStyle, rest = __rest(props, ["className", "disabled", "indeterminate", "label", "status", "setFocus", "isLoading", "style", "checkmarkClassName", "checkmarkStyle"]);
45
+ var className = props.className, _b = props.disabled, disabled = _b === void 0 ? false : _b, _c = props.indeterminate, indeterminate = _c === void 0 ? false : _c, label = props.label, status = props.status, _d = props.variant, variant = _d === void 0 ? 'default' : _d, setFocus = props.setFocus, _e = props.isLoading, isLoading = _e === void 0 ? false : _e, style = props.style, checkmarkClassName = props.checkmarkClassName, checkmarkStyle = props.checkmarkStyle, rest = __rest(props, ["className", "disabled", "indeterminate", "label", "status", "variant", "setFocus", "isLoading", "style", "checkmarkClassName", "checkmarkStyle"]);
45
46
  useTheme();
46
47
  var inputElementRef = React.useRef(null);
47
48
  var refs = useMergedRefs(inputElementRef, ref);
@@ -58,18 +59,27 @@ export var Checkbox = React.forwardRef(function (props, ref) {
58
59
  : inputElementRef.current.checked;
59
60
  }
60
61
  });
62
+ var defaultCheckbox = (React.createElement("svg", { viewBox: '0 0 16 16', "aria-hidden": 'true', focusable: 'false' },
63
+ React.createElement("path", { className: 'iui-check', d: 'm6.5 12.5-4.5-4.5 1.5-1.5 3 3 6-6 1.5 1.5z' }),
64
+ React.createElement("path", { className: 'iui-check-partial', d: 'm2.75 6.875h10.5v2.25h-10.5z' })));
65
+ var visibilityCheckbox = (React.createElement("svg", { viewBox: '0 0 16 16', "aria-hidden": 'true', focusable: 'false' },
66
+ React.createElement("path", { className: 'iui-check', d: 'm8 2.99051a8.81883 8.81883 0 0 0 -8 4.95062 8.74664 8.74664 0 0 0 8 5.06836 8.63266 8.63266 0 0 0 8-5.06836 8.83631 8.83631 0 0 0 -8-4.95062zm-1.31445 1.86981a1.47663 1.47663 0 1 1 -1.47663 1.47668 1.47665 1.47665 0 0 1 1.47663-1.47668zm1.31445 6.64917a7.17486 7.17486 0 0 1 -6.30475-3.55237 7.4952 7.4952 0 0 1 2.81475-2.6336 3.83956 3.83956 0 1 0 6.98126.00244 7.522 7.522 0 0 1 2.81774 2.63916 7.09785 7.09785 0 0 1 -6.309 3.54437z' }),
67
+ React.createElement("g", { className: 'iui-check-partial' },
68
+ React.createElement("path", { d: 'm8 3v7.9a4.01179 4.01179 0 0 0 4-4 6.7509 6.7509 0 0 0 -.2-1.4l.1.1a6.89429 6.89429 0 0 1 2.4 2.4 8.39088 8.39088 0 0 1 -2.3 2.3 6.89412 6.89412 0 0 1 -3.9 1.2c-.03345 0-.06653-.00677-.1-.0072v1.5072a8.90686 8.90686 0 0 0 8-5 8.90686 8.90686 0 0 0 -8-5z', opacity: '.33' }),
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' })));
61
71
  return (React.createElement("label", { className: cx('iui-checkbox', (_a = {
62
72
  'iui-disabled': disabled
63
73
  },
64
74
  _a["iui-" + status] = !!status,
65
75
  _a['iui-loading'] = isLoading,
76
+ _a['iui-checkbox-visibility'] = variant === 'eyeball',
66
77
  _a), className), style: style },
67
78
  React.createElement("input", __assign({ disabled: disabled || isLoading, type: 'checkbox', ref: refs }, rest)),
68
79
  React.createElement("span", { className: cx('iui-checkbox-checkmark', checkmarkClassName), style: checkmarkStyle },
69
80
  isLoading && React.createElement(ProgressRadial, { indeterminate: true }),
70
- !isLoading && (React.createElement("svg", { viewBox: '0 0 16 16', "aria-hidden": 'true', focusable: 'false' },
71
- React.createElement("path", { className: 'iui-check', d: 'M6,14L0,8l2-2l4,4l8-8l2,2L6,14z' }),
72
- React.createElement("path", { className: 'iui-check-partial', d: 'm1 6.5h14v3h-14z' })))),
81
+ !isLoading &&
82
+ (variant === 'default' ? defaultCheckbox : visibilityCheckbox)),
73
83
  label && React.createElement("span", { className: 'iui-label' }, label)));
74
84
  });
75
85
  export default Checkbox;
@@ -30,6 +30,7 @@ import { IconButton } from '../Buttons';
30
30
  import { Input } from '../Input';
31
31
  import { ColorValue, InputContainer, useTheme } from '../utils';
32
32
  import { useColorPickerContext } from './ColorPickerContext';
33
+ import SvgSwap from '@itwin/itwinui-icons-react/cjs/icons/Swap';
33
34
  import '@itwin/itwinui-css/css/color-picker.css';
34
35
  /**
35
36
  * `ColorInputPanel` shows input fields to enter precise color values in the specified format.
@@ -296,8 +297,7 @@ export var ColorInputPanel = React.forwardRef(function (props, ref) {
296
297
  : currentFormat.toUpperCase()),
297
298
  React.createElement("div", { className: 'iui-color-input' },
298
299
  allowedColorFormats.length > 1 && (React.createElement(IconButton, { styleType: 'borderless', onClick: swapColorFormat, size: 'small' },
299
- React.createElement("svg", { viewBox: '0 0 16 16', className: 'iui-icon', "aria-hidden": true },
300
- React.createElement("path", { d: 'm5 15-3.78125-3.5 3.78125-3.5v2h8v3h-8zm6-7 3.78125-3.5-3.78125-3.5v2h-8v3h8z' })))),
300
+ React.createElement(SvgSwap, null))),
301
301
  React.createElement("div", { ref: inputsContainerRef, className: 'iui-color-input-fields' },
302
302
  currentFormat === 'hex' && hexInputField,
303
303
  currentFormat === 'rgb' && rgbInputs,
@@ -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" | "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" | "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-disabled" | "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" | "isActive" | "key"> & React.RefAttributes<HTMLDivElement>>;
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-disabled" | "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,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { InputProps } from '../Input';
3
3
  import { SelectOption } from '../Select';
4
- import { PopoverProps, CommonProps } from '../utils';
4
+ import { PopoverProps, CommonProps, InputContainerProps } from '../utils';
5
5
  import 'tippy.js/animations/shift-away.css';
6
6
  export declare type ComboBoxProps<T> = {
7
7
  /**
@@ -33,7 +33,7 @@ export declare type ComboBoxProps<T> = {
33
33
  * @default 'No options found'
34
34
  */
35
35
  emptyStateMessage?: string;
36
- } & Omit<CommonProps, 'title'>;
36
+ } & Pick<InputContainerProps, 'status'> & Omit<CommonProps, 'title'>;
37
37
  /**
38
38
  * ComboBox component that allows typing a value to filter the options in dropdown list.
39
39
  * Values can be selected either using mouse clicks or using the Enter key.
@@ -247,22 +247,21 @@ export var DatePicker = function (props) {
247
247
  }
248
248
  };
249
249
  return (React.createElement("div", __assign({ className: cx('iui-date-picker', className), style: style }, rest),
250
- React.createElement("div", { className: 'iui-calendar' },
251
- React.createElement("div", { className: 'iui-header' },
252
- React.createElement("div", { className: 'iui-month-year' },
253
- React.createElement(IconButton, { styleType: 'borderless', onClick: handleMoveToPreviousMonth, "aria-label": 'Previous month' },
254
- React.createElement(SvgChevronLeft, null)),
255
- React.createElement("span", { "aria-live": 'polite' },
256
- React.createElement("span", { className: 'iui-month', title: monthNames[displayedMonthIndex] }, monthNames[displayedMonthIndex]),
257
- "\u00A0",
258
- displayedYear),
259
- React.createElement(IconButton, { styleType: 'borderless', onClick: handleMoveToNextMonth, "aria-label": 'Next month' },
260
- React.createElement(SvgChevronRight, null))),
261
- React.createElement("div", { className: 'iui-weekdays' }, shortDays.map(function (day, index) { return (React.createElement("div", { key: day, title: longDays[index] }, day)); }))),
262
- React.createElement("div", { className: 'iui-dates', onKeyDown: handleCalendarKeyDown, role: 'listbox' }, weeks.map(function (weekDays, weekIndex) {
263
- return (React.createElement("div", { key: "week-" + displayedMonthIndex + "-" + weekIndex, className: 'iui-week' }, weekDays.map(function (weekDay, dayIndex) {
250
+ React.createElement("div", null,
251
+ React.createElement("div", { className: 'iui-calendar-month-year' },
252
+ React.createElement(IconButton, { styleType: 'borderless', onClick: handleMoveToPreviousMonth, "aria-label": 'Previous month' },
253
+ React.createElement(SvgChevronLeft, null)),
254
+ React.createElement("span", { "aria-live": 'polite' },
255
+ React.createElement("span", { className: 'iui-calendar-month', title: monthNames[displayedMonthIndex] }, monthNames[displayedMonthIndex]),
256
+ "\u00A0",
257
+ displayedYear),
258
+ React.createElement(IconButton, { styleType: 'borderless', onClick: handleMoveToNextMonth, "aria-label": 'Next month' },
259
+ React.createElement(SvgChevronRight, null))),
260
+ React.createElement("div", { className: 'iui-calendar-weekdays' }, shortDays.map(function (day, index) { return (React.createElement("div", { key: day, title: longDays[index] }, day)); })),
261
+ React.createElement("div", { onKeyDown: handleCalendarKeyDown, role: 'listbox' }, weeks.map(function (weekDays, weekIndex) {
262
+ return (React.createElement("div", { key: "week-" + displayedMonthIndex + "-" + weekIndex, className: 'iui-calendar-week' }, weekDays.map(function (weekDay, dayIndex) {
264
263
  var dateValue = weekDay.getDate();
265
- return (React.createElement("div", { key: "day-" + displayedMonthIndex + "-" + dayIndex, className: cx('iui-date', {
264
+ return (React.createElement("div", { key: "day-" + displayedMonthIndex + "-" + dayIndex, className: cx('iui-calendar-day', {
266
265
  'iui-outside-month': weekDay.getMonth() !== displayedMonthIndex,
267
266
  'iui-today': isSameDay(weekDay, new Date()),
268
267
  'iui-selected': isSameDay(weekDay, selectedDay),
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { CommonProps } from '../utils';
2
3
  import '@itwin/itwinui-css/css/non-ideal-state.css';
3
4
  export declare type ErrorPageType = '401' | '403' | '404' | '500' | '502' | '503' | 'generic';
4
5
  export declare type ErrorTypeTranslations = {
@@ -45,7 +46,7 @@ export declare type ErrorPageProps = {
45
46
  * Used to translate default error messages, if no specific @errorName passed in
46
47
  */
47
48
  translatedErrorMessages?: ErrorTypeTranslations;
48
- };
49
+ } & Omit<CommonProps, 'title'>;
49
50
  /**
50
51
  * A stylized display to communicate common http errors.
51
52
  * @example
@@ -34,6 +34,7 @@ import SvgError from '@itwin/itwinui-illustrations-react/cjs/illustrations/Error
34
34
  import React from 'react';
35
35
  import { Button } from '../Buttons/Button';
36
36
  import { useTheme } from '../utils';
37
+ import cx from 'classnames';
37
38
  import '@itwin/itwinui-css/css/non-ideal-state.css';
38
39
  /**
39
40
  * A stylized display to communicate common http errors.
@@ -41,7 +42,7 @@ import '@itwin/itwinui-css/css/non-ideal-state.css';
41
42
  * <ErrorPage errorType='401' />
42
43
  */
43
44
  export var ErrorPage = function (props) {
44
- var errorType = props.errorType, errorName = props.errorName, errorMessage = props.errorMessage, primaryButtonHandle = props.primaryButtonHandle, primaryButtonLabel = props.primaryButtonLabel, secondaryButtonHandle = props.secondaryButtonHandle, secondaryButtonLabel = props.secondaryButtonLabel, translatedErrorMessages = props.translatedErrorMessages, rest = __rest(props, ["errorType", "errorName", "errorMessage", "primaryButtonHandle", "primaryButtonLabel", "secondaryButtonHandle", "secondaryButtonLabel", "translatedErrorMessages"]);
45
+ var errorType = props.errorType, errorName = props.errorName, errorMessage = props.errorMessage, primaryButtonHandle = props.primaryButtonHandle, primaryButtonLabel = props.primaryButtonLabel, secondaryButtonHandle = props.secondaryButtonHandle, secondaryButtonLabel = props.secondaryButtonLabel, translatedErrorMessages = props.translatedErrorMessages, className = props.className, rest = __rest(props, ["errorType", "errorName", "errorMessage", "primaryButtonHandle", "primaryButtonLabel", "secondaryButtonHandle", "secondaryButtonLabel", "translatedErrorMessages", "className"]);
45
46
  useTheme();
46
47
  var defaultErrorMessages = __assign({ badGateway: 'Bad gateway', error: 'Error', forbidden: 'Forbidden', internalServerError: 'Internal server error', pageNotFound: 'Page not found', serviceUnavailable: 'Service unavailable', unauthorized: 'Unauthorized' }, translatedErrorMessages);
47
48
  function getErrorIcon() {
@@ -121,7 +122,7 @@ export var ErrorPage = function (props) {
121
122
  primaryButton,
122
123
  secondaryButton));
123
124
  }
124
- return (React.createElement("div", __assign({ className: 'iui-non-ideal-state' }, rest),
125
+ return (React.createElement("div", __assign({ className: cx('iui-non-ideal-state', className) }, rest),
125
126
  getErrorIcon(),
126
127
  React.createElement("div", { className: 'iui-non-ideal-state-title' }, getHeadingMessage()),
127
128
  errorMessage && (React.createElement("div", { className: 'iui-non-ideal-state-description' }, errorMessage)),
@@ -1,13 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ButtonProps, DropdownButtonProps } from '../Buttons';
3
+ import { PolymorphicForwardRefComponent } from '../utils';
3
4
  import '@itwin/itwinui-css/css/header.css';
4
5
  export declare type HeaderButtonProps = {
5
6
  /**
6
- * Name.
7
+ * Main label of the header button.
7
8
  */
8
9
  name: React.ReactNode;
9
10
  /**
10
- * Description shown below the name, will be hidden in `Header` slim mode.
11
+ * Description shown below the main label, will be hidden in `Header` slim mode.
11
12
  */
12
13
  description?: React.ReactNode;
13
14
  /**
@@ -15,7 +16,8 @@ export declare type HeaderButtonProps = {
15
16
  * @default false
16
17
  */
17
18
  isActive?: boolean;
18
- } & Omit<Partial<DropdownButtonProps> & Partial<ButtonProps>, 'children' | 'styleType' | 'name'>;
19
+ } & Partial<Pick<DropdownButtonProps, 'menuItems'>> & Pick<ButtonProps, 'startIcon' | 'endIcon'>;
20
+ declare type HeaderButtonComponent = PolymorphicForwardRefComponent<'button', HeaderButtonProps>;
19
21
  /**
20
22
  * Header button that handles slim state of the `Header` it's in.
21
23
  * When in slim mode, will only display the name and reduce icon size.
@@ -26,5 +28,5 @@ export declare type HeaderButtonProps = {
26
28
  * <HeaderButton name='Project C' startIcon={<img style={{ objectFit: 'cover' }} src='project.png' />} />
27
29
  * <HeaderButton name='Project D' isActive />
28
30
  */
29
- export declare const HeaderButton: (props: HeaderButtonProps) => JSX.Element;
31
+ export declare const HeaderButton: HeaderButtonComponent;
30
32
  export default HeaderButton;
@@ -45,7 +45,7 @@ var isDropdownButton = function (props) {
45
45
  * <HeaderButton name='Project C' startIcon={<img style={{ objectFit: 'cover' }} src='project.png' />} />
46
46
  * <HeaderButton name='Project D' isActive />
47
47
  */
48
- export var HeaderButton = function (props) {
48
+ export var HeaderButton = React.forwardRef(function (props, ref) {
49
49
  var name = props.name, description = props.description, _a = props.isActive, isActive = _a === void 0 ? false : _a, className = props.className, startIcon = props.startIcon, menuItems = props.menuItems, rest = __rest(props, ["name", "description", "isActive", "className", "startIcon", "menuItems"]);
50
50
  useTheme();
51
51
  var buttonProps = __assign(__assign({ startIcon: React.isValidElement(startIcon)
@@ -58,7 +58,7 @@ export var HeaderButton = function (props) {
58
58
  'iui-active': isActive,
59
59
  }, className), 'aria-current': isActive ? 'location' : undefined, children: (React.createElement(React.Fragment, null,
60
60
  React.createElement("div", null, name),
61
- description && React.createElement("div", { className: 'iui-description' }, description))) }, (!!menuItems && { menuItems: menuItems })), rest);
61
+ description && React.createElement("div", { className: 'iui-description' }, description))), ref: ref }, (!!menuItems && { menuItems: menuItems })), rest);
62
62
  if (isSplitButton(buttonProps)) {
63
63
  return React.createElement(SplitButton, __assign({}, buttonProps));
64
64
  }
@@ -66,5 +66,5 @@ export var HeaderButton = function (props) {
66
66
  return React.createElement(DropdownButton, __assign({}, buttonProps));
67
67
  }
68
68
  return React.createElement(Button, __assign({}, buttonProps));
69
- };
69
+ });
70
70
  export default HeaderButton;
@@ -84,7 +84,7 @@ export declare const LabeledInput: React.ForwardRefExoticComponent<{
84
84
  * - 'inline' - appears in the same line as input.
85
85
  * @default 'default'
86
86
  */
87
- displayStyle?: "inline" | "default" | undefined;
87
+ displayStyle?: "default" | "inline" | undefined;
88
88
  /**
89
89
  * Set display style of icon.
90
90
  * Supported values:
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
+ import { CommonProps } from '../utils';
2
3
  import '@itwin/itwinui-css/css/modal.css';
3
4
  export declare type ModalButtonBarProps = {
4
5
  /**
5
6
  * Buttons in the modal bar.
6
7
  */
7
8
  children: React.ReactNode;
8
- };
9
+ } & Omit<CommonProps, 'title'>;
9
10
  /**
10
11
  * Container for Buttons in modal.
11
12
  */
@@ -25,14 +25,15 @@ var __rest = (this && this.__rest) || function (s, e) {
25
25
  * See LICENSE.md in the project root for license terms and full copyright notice.
26
26
  *--------------------------------------------------------------------------------------------*/
27
27
  import React from 'react';
28
+ import cx from 'classnames';
28
29
  import { useTheme } from '../utils';
29
30
  import '@itwin/itwinui-css/css/modal.css';
30
31
  /**
31
32
  * Container for Buttons in modal.
32
33
  */
33
34
  export var ModalButtonBar = function (props) {
34
- var children = props.children, rest = __rest(props, ["children"]);
35
+ var children = props.children, className = props.className, rest = __rest(props, ["children", "className"]);
35
36
  useTheme();
36
- return (React.createElement("div", __assign({ className: 'iui-button-bar' }, rest), children));
37
+ return (React.createElement("div", __assign({ className: cx('iui-button-bar', className) }, rest), children));
37
38
  };
38
39
  export default ModalButtonBar;