@itwin/itwinui-react 1.18.0 → 1.19.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 (124) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/cjs/core/Alert/Alert.js +2 -2
  3. package/cjs/core/Badge/Badge.js +4 -4
  4. package/cjs/core/Breadcrumbs/Breadcrumbs.js +5 -5
  5. package/cjs/core/ButtonGroup/ButtonGroup.js +3 -3
  6. package/cjs/core/Buttons/Button/Button.js +4 -4
  7. package/cjs/core/Buttons/DropdownButton/DropdownButton.js +3 -3
  8. package/cjs/core/Buttons/IconButton/IconButton.js +3 -3
  9. package/cjs/core/Buttons/IdeasButton/IdeasButton.js +1 -1
  10. package/cjs/core/Buttons/SplitButton/SplitButton.js +2 -2
  11. package/cjs/core/Checkbox/Checkbox.js +5 -5
  12. package/cjs/core/DatePicker/DatePicker.js +3 -3
  13. package/cjs/core/DropdownMenu/DropdownMenu.js +2 -2
  14. package/cjs/core/ErrorPage/ErrorPage.js +1 -1
  15. package/cjs/core/ExpandableBlock/ExpandableBlock.js +3 -3
  16. package/cjs/core/Fieldset/Fieldset.js +2 -2
  17. package/cjs/core/FileUpload/FileUpload.js +3 -3
  18. package/cjs/core/FileUpload/FileUploadTemplate.js +1 -1
  19. package/cjs/core/Footer/Footer.js +11 -7
  20. package/cjs/core/Header/Header.js +2 -2
  21. package/cjs/core/Header/HeaderBreadcrumbs.js +11 -7
  22. package/cjs/core/Header/HeaderButton.js +3 -3
  23. package/cjs/core/Header/HeaderLogo.js +3 -3
  24. package/cjs/core/Input/Input.js +3 -3
  25. package/cjs/core/InputGroup/InputGroup.js +5 -17
  26. package/cjs/core/LabeledInput/LabeledInput.d.ts +28 -4
  27. package/cjs/core/LabeledInput/LabeledInput.js +5 -17
  28. package/cjs/core/LabeledSelect/LabeledSelect.d.ts +4 -8
  29. package/cjs/core/LabeledSelect/LabeledSelect.js +7 -17
  30. package/cjs/core/LabeledTextarea/LabeledTextarea.d.ts +6 -25
  31. package/cjs/core/LabeledTextarea/LabeledTextarea.js +5 -17
  32. package/cjs/core/Menu/Menu.js +3 -3
  33. package/cjs/core/Menu/MenuItem.js +5 -5
  34. package/cjs/core/Modal/Modal.js +4 -4
  35. package/cjs/core/Modal/ModalButtonBar.js +1 -1
  36. package/cjs/core/ProgressIndicators/ProgressLinear/ProgressLinear.js +3 -3
  37. package/cjs/core/ProgressIndicators/ProgressRadial/ProgressRadial.js +2 -2
  38. package/cjs/core/Radio/Radio.js +5 -5
  39. package/cjs/core/RadioTiles/RadioTile.js +3 -3
  40. package/cjs/core/RadioTiles/RadioTileGroup.js +1 -1
  41. package/cjs/core/Select/Select.js +5 -5
  42. package/cjs/core/SideNavigation/SideNavigation.js +2 -2
  43. package/cjs/core/SideNavigation/SidenavButton.js +2 -2
  44. package/cjs/core/Slider/Slider.js +19 -15
  45. package/cjs/core/Slider/Thumb.js +2 -2
  46. package/cjs/core/Slider/Track.js +10 -6
  47. package/cjs/core/Table/Table.js +8 -12
  48. package/cjs/core/Table/TableCell.js +2 -2
  49. package/cjs/core/Table/TableRowMemoized.js +3 -3
  50. package/cjs/core/Table/actionHandlers/selectHandler.js +1 -1
  51. package/cjs/core/Table/filters/BaseFilter.js +2 -2
  52. package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +1 -1
  53. package/cjs/core/Table/filters/FilterButtonBar.js +2 -2
  54. package/cjs/core/Table/filters/FilterToggle.js +3 -3
  55. package/cjs/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +1 -1
  56. package/cjs/core/Table/filters/TextFilter/TextFilter.js +1 -1
  57. package/cjs/core/Table/hooks/useExpanderCell.js +9 -5
  58. package/cjs/core/Table/hooks/useSelectionCell.js +9 -5
  59. package/cjs/core/Table/hooks/useSubRowFiltering.js +9 -5
  60. package/cjs/core/Tabs/Tab.js +2 -2
  61. package/cjs/core/Tabs/Tabs.js +10 -10
  62. package/cjs/core/Tag/Tag.js +2 -2
  63. package/cjs/core/Tag/TagContainer.js +2 -2
  64. package/cjs/core/Textarea/Textarea.js +3 -3
  65. package/cjs/core/ThemeProvider/ThemeProvider.js +1 -1
  66. package/cjs/core/Tile/Tile.js +7 -7
  67. package/cjs/core/TimePicker/TimePicker.js +3 -3
  68. package/cjs/core/Toast/Toast.d.ts +8 -0
  69. package/cjs/core/Toast/Toast.js +49 -10
  70. package/cjs/core/Toast/ToastWrapper.js +3 -2
  71. package/cjs/core/Toast/Toaster.js +12 -9
  72. package/cjs/core/ToggleSwitch/ToggleSwitch.js +4 -4
  73. package/cjs/core/Tooltip/Tooltip.js +2 -2
  74. package/cjs/core/Typography/Blockquote/Blockquote.js +2 -2
  75. package/cjs/core/Typography/Body/Body.js +2 -2
  76. package/cjs/core/Typography/Code/Code.js +2 -2
  77. package/cjs/core/Typography/Headline/Headline.js +2 -2
  78. package/cjs/core/Typography/Kbd/Kbd.js +2 -2
  79. package/cjs/core/Typography/Leading/Leading.js +2 -2
  80. package/cjs/core/Typography/Small/Small.js +2 -2
  81. package/cjs/core/Typography/Subheading/Subheading.js +2 -2
  82. package/cjs/core/Typography/Text/Text.js +2 -2
  83. package/cjs/core/Typography/Title/Title.js +2 -2
  84. package/cjs/core/UserIcon/UserIcon.js +3 -3
  85. package/cjs/core/UserIconGroup/UserIconGroup.js +3 -3
  86. package/cjs/core/Wizard/Step.js +1 -1
  87. package/cjs/core/Wizard/Wizard.js +2 -2
  88. package/cjs/core/utils/FocusTrap.js +2 -2
  89. package/cjs/core/utils/InputContainer.d.ts +17 -0
  90. package/cjs/core/utils/InputContainer.js +39 -0
  91. package/cjs/core/utils/Popover.js +10 -6
  92. package/cjs/core/utils/common.js +1 -1
  93. package/cjs/core/utils/hooks/useIntersection.js +1 -1
  94. package/cjs/core/utils/hooks/useMergedRefs.js +9 -5
  95. package/cjs/core/utils/hooks/useOverflow.js +2 -2
  96. package/cjs/core/utils/hooks/useResizeObserver.js +1 -1
  97. package/cjs/core/utils/hooks/useTheme.js +2 -2
  98. package/esm/core/Checkbox/Checkbox.js +1 -1
  99. package/esm/core/Footer/Footer.js +9 -5
  100. package/esm/core/Header/HeaderBreadcrumbs.js +10 -6
  101. package/esm/core/InputGroup/InputGroup.js +4 -16
  102. package/esm/core/LabeledInput/LabeledInput.d.ts +28 -4
  103. package/esm/core/LabeledInput/LabeledInput.js +4 -16
  104. package/esm/core/LabeledSelect/LabeledSelect.d.ts +4 -8
  105. package/esm/core/LabeledSelect/LabeledSelect.js +6 -16
  106. package/esm/core/LabeledTextarea/LabeledTextarea.d.ts +6 -25
  107. package/esm/core/LabeledTextarea/LabeledTextarea.js +4 -16
  108. package/esm/core/Radio/Radio.js +1 -1
  109. package/esm/core/Slider/Slider.js +11 -7
  110. package/esm/core/Slider/Thumb.js +1 -1
  111. package/esm/core/Slider/Track.js +10 -6
  112. package/esm/core/Table/Table.js +1 -5
  113. package/esm/core/Table/hooks/useExpanderCell.js +9 -5
  114. package/esm/core/Table/hooks/useSelectionCell.js +9 -5
  115. package/esm/core/Table/hooks/useSubRowFiltering.js +9 -5
  116. package/esm/core/Toast/Toast.d.ts +8 -0
  117. package/esm/core/Toast/Toast.js +45 -6
  118. package/esm/core/Toast/ToastWrapper.js +2 -1
  119. package/esm/core/Toast/Toaster.js +11 -8
  120. package/esm/core/utils/InputContainer.d.ts +17 -0
  121. package/esm/core/utils/InputContainer.js +32 -0
  122. package/esm/core/utils/Popover.js +9 -5
  123. package/esm/core/utils/hooks/useMergedRefs.js +9 -5
  124. package/package.json +14 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.19.0](https://www.github.com/iTwin/iTwinUI-react/compare/v1.18.0...v1.19.0) (2021-09-21)
4
+
5
+ ### What's new
6
+
7
+ * **LabeledInput** and **LabeledTextarea**: Add new `iconDisplayStyle` prop to allow hybrid layouts. ([#309](https://www.github.com/iTwin/iTwinUI-react/issues/309)) ([45b82c2](https://www.github.com/iTwin/iTwinUI-react/commit/45b82c2232c09c4b54b2db14eb53bb3be3bd276a))
8
+ * **Toasts**: Add new `animateOutTo` prop for improved exit animation. ([#316](https://www.github.com/iTwin/iTwinUI-react/issues/316)) ([886efff](https://www.github.com/iTwin/iTwinUI-react/commit/886efff098d0cee98d0bcd9bd096c20f8f51d931))
9
+
3
10
  ## [1.18.0](https://www.github.com/iTwin/iTwinUI-react/compare/v1.17.0...v1.18.0) (2021-09-13)
4
11
 
5
12
  ### What's new
@@ -48,9 +48,9 @@ var common_1 = require("../utils/common");
48
48
  */
49
49
  var Alert = function (props) {
50
50
  var children = props.children, className = props.className, _a = props.type, type = _a === void 0 ? 'informational' : _a, clickableText = props.clickableText, onClick = props.onClick, onClose = props.onClose, style = props.style, _b = props.isSticky, isSticky = _b === void 0 ? false : _b, rest = __rest(props, ["children", "className", "type", "clickableText", "onClick", "onClose", "style", "isSticky"]);
51
- useTheme_1.useTheme();
51
+ (0, useTheme_1.useTheme)();
52
52
  var StatusIcon = common_1.StatusIconMap[type];
53
- return (react_1.default.createElement("div", __assign({ className: classnames_1.default('iui-alert', "iui-" + type, { 'iui-sticky': isSticky }, className), style: style }, rest),
53
+ return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-alert', "iui-" + type, { 'iui-sticky': isSticky }, className), style: style }, rest),
54
54
  react_1.default.createElement(StatusIcon, { className: 'iui-icon' }),
55
55
  react_1.default.createElement("span", { className: 'iui-message' },
56
56
  children,
@@ -52,7 +52,7 @@ var getBadgeColorValue = function (color) {
52
52
  case 'warning':
53
53
  return '#F9D7AB';
54
54
  default:
55
- return common_1.isSoftBackground(color) ? common_1.SoftBackgrounds[color] : color;
55
+ return (0, common_1.isSoftBackground)(color) ? common_1.SoftBackgrounds[color] : color;
56
56
  }
57
57
  };
58
58
  /**
@@ -65,11 +65,11 @@ var getBadgeColorValue = function (color) {
65
65
  var Badge = function (props) {
66
66
  var _a, _b, _c;
67
67
  var backgroundColor = props.backgroundColor, style = props.style, className = props.className, children = props.children, rest = __rest(props, ["backgroundColor", "style", "className", "children"]);
68
- useTheme_1.useTheme();
68
+ (0, useTheme_1.useTheme)();
69
69
  var _style = backgroundColor &&
70
- ((_c = (_b = (_a = common_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, "--badge-color: " + backgroundColor))
70
+ ((_c = (_b = (_a = (0, common_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, "--badge-color: " + backgroundColor))
71
71
  ? __assign({ '--badge-color': getBadgeColorValue(backgroundColor) }, style) : __assign({ backgroundColor: getBadgeColorValue(backgroundColor) }, style);
72
- return (react_1.default.createElement("span", __assign({ className: classnames_1.default('iui-badge', className), style: _style }, rest), children));
72
+ return (react_1.default.createElement("span", __assign({ className: (0, classnames_1.default)('iui-badge', className), style: _style }, rest), children));
73
73
  };
74
74
  exports.Badge = Badge;
75
75
  exports.default = exports.Badge;
@@ -61,15 +61,15 @@ var useOverflow_1 = require("../utils/hooks/useOverflow");
61
61
  */
62
62
  exports.Breadcrumbs = react_1.default.forwardRef(function (props, ref) {
63
63
  var items = props.children, _a = props.currentIndex, currentIndex = _a === void 0 ? items.length - 1 : _a, separator = props.separator, className = props.className, rest = __rest(props, ["children", "currentIndex", "separator", "className"]);
64
- useTheme_1.useTheme();
65
- var _b = useOverflow_1.useOverflow(items), overflowRef = _b[0], visibleCount = _b[1];
66
- var refs = useMergedRefs_1.useMergedRefs(overflowRef, ref);
64
+ (0, useTheme_1.useTheme)();
65
+ var _b = (0, useOverflow_1.useOverflow)(items), overflowRef = _b[0], visibleCount = _b[1];
66
+ var refs = (0, useMergedRefs_1.useMergedRefs)(overflowRef, ref);
67
67
  var Separator = function () { return (react_1.default.createElement("li", { className: 'iui-breadcrumbs-separator', "aria-hidden": true }, separator !== null && separator !== void 0 ? separator : react_1.default.createElement(ChevronRight_1.default, null))); };
68
68
  var ListItem = function (_a) {
69
69
  var _b;
70
70
  var index = _a.index;
71
71
  var item = items[index];
72
- return (react_1.default.createElement("li", { className: classnames_1.default('iui-breadcrumbs-item', {
72
+ return (react_1.default.createElement("li", { className: (0, classnames_1.default)('iui-breadcrumbs-item', {
73
73
  'iui-current': currentIndex === index,
74
74
  }) }, react_1.default.isValidElement(item)
75
75
  ? react_1.default.cloneElement(item, {
@@ -79,7 +79,7 @@ exports.Breadcrumbs = react_1.default.forwardRef(function (props, ref) {
79
79
  })
80
80
  : item));
81
81
  };
82
- return (react_1.default.createElement("nav", __assign({ className: classnames_1.default('iui-breadcrumbs', className), ref: refs, "aria-label": 'Breadcrumb' }, rest),
82
+ return (react_1.default.createElement("nav", __assign({ className: (0, classnames_1.default)('iui-breadcrumbs', className), ref: refs, "aria-label": 'Breadcrumb' }, rest),
83
83
  react_1.default.createElement("ol", { className: 'iui-breadcrumbs-list' },
84
84
  visibleCount > 1 && (react_1.default.createElement(react_1.default.Fragment, null,
85
85
  react_1.default.createElement(ListItem, { index: 0 }),
@@ -68,9 +68,9 @@ var ButtonGroup = function (props) {
68
68
  var items = react_1.default.useMemo(function () { return react_1.default.Children.toArray(children); }, [
69
69
  children,
70
70
  ]);
71
- useTheme_1.useTheme();
72
- var _a = useOverflow_1.useOverflow(items, !overflowButton), overflowRef = _a[0], visibleCount = _a[1];
73
- return (react_1.default.createElement("div", __assign({ className: classnames_1.default('iui-button-group', className), style: __assign(__assign({}, (!!overflowButton && { width: '100%' })), style), ref: overflowRef }, rest), !!overflowButton && visibleCount < items.length ? (react_1.default.createElement(react_1.default.Fragment, null,
71
+ (0, useTheme_1.useTheme)();
72
+ var _a = (0, useOverflow_1.useOverflow)(items, !overflowButton), overflowRef = _a[0], visibleCount = _a[1];
73
+ return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-button-group', className), style: __assign(__assign({}, (!!overflowButton && { width: '100%' })), style), ref: overflowRef }, rest), !!overflowButton && visibleCount < items.length ? (react_1.default.createElement(react_1.default.Fragment, null,
74
74
  items.slice(0, visibleCount - 1),
75
75
  overflowButton(visibleCount))) : (children)));
76
76
  };
@@ -46,19 +46,19 @@ require("@itwin/itwinui-css/css/button.css");
46
46
  exports.Button = react_1.default.forwardRef(function (props, ref) {
47
47
  var _a;
48
48
  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"]);
49
- useTheme_1.useTheme();
50
- return (react_1.default.createElement("button", __assign({ ref: ref, className: classnames_1.default('iui-button', (_a = {},
49
+ (0, useTheme_1.useTheme)();
50
+ return (react_1.default.createElement("button", __assign({ ref: ref, className: (0, classnames_1.default)('iui-button', (_a = {},
51
51
  _a["iui-" + size] = !!size,
52
52
  _a["iui-" + styleType] = styleType !== 'default',
53
53
  _a), className), style: style, type: type }, rest),
54
54
  startIcon &&
55
55
  react_1.default.cloneElement(startIcon, {
56
- className: classnames_1.default('iui-icon', startIcon.props.className),
56
+ className: (0, classnames_1.default)('iui-icon', startIcon.props.className),
57
57
  }),
58
58
  children && react_1.default.createElement("span", { className: 'iui-label' }, children),
59
59
  endIcon &&
60
60
  react_1.default.cloneElement(endIcon, {
61
- className: classnames_1.default('iui-icon', endIcon.props.className),
61
+ className: (0, classnames_1.default)('iui-icon', endIcon.props.className),
62
62
  })));
63
63
  });
64
64
  exports.default = exports.Button;
@@ -50,17 +50,17 @@ require("@itwin/itwinui-css/css/button.css");
50
50
  */
51
51
  exports.DropdownButton = react_1.default.forwardRef(function (props, ref) {
52
52
  var menuItems = props.menuItems, className = props.className, size = props.size, styleType = props.styleType, children = props.children, rest = __rest(props, ["menuItems", "className", "size", "styleType", "children"]);
53
- useTheme_1.useTheme();
53
+ (0, useTheme_1.useTheme)();
54
54
  var _a = react_1.default.useState(false), isMenuOpen = _a[0], setIsMenuOpen = _a[1];
55
55
  var _b = react_1.default.useState(0), menuWidth = _b[0], setMenuWidth = _b[1];
56
56
  var buttonRef = react_1.default.useRef(null);
57
- var refs = useMergedRefs_1.useMergedRefs(ref, buttonRef);
57
+ var refs = (0, useMergedRefs_1.useMergedRefs)(ref, buttonRef);
58
58
  react_1.default.useEffect(function () {
59
59
  if (buttonRef.current) {
60
60
  setMenuWidth(buttonRef.current.offsetWidth);
61
61
  }
62
62
  }, [children, size, styleType]);
63
63
  return (react_1.default.createElement(DropdownMenu_1.DropdownMenu, { menuItems: menuItems, style: { minWidth: menuWidth }, onShow: function () { return setIsMenuOpen(true); }, onHide: function () { return setIsMenuOpen(false); } },
64
- react_1.default.createElement(Button_1.Button, __assign({ className: classnames_1.default('iui-dropdown', className), size: size, styleType: styleType, endIcon: isMenuOpen ? (react_1.default.createElement(CaretUpSmall_1.default, { "aria-hidden": true })) : (react_1.default.createElement(CaretDownSmall_1.default, { "aria-hidden": true })), ref: refs, "aria-label": 'Dropdown' }, rest), children)));
64
+ react_1.default.createElement(Button_1.Button, __assign({ className: (0, classnames_1.default)('iui-dropdown', className), size: size, styleType: styleType, endIcon: isMenuOpen ? (react_1.default.createElement(CaretUpSmall_1.default, { "aria-hidden": true })) : (react_1.default.createElement(CaretDownSmall_1.default, { "aria-hidden": true })), ref: refs, "aria-label": 'Dropdown' }, rest), children)));
65
65
  });
66
66
  exports.default = exports.DropdownButton;
@@ -43,13 +43,13 @@ require("@itwin/itwinui-css/css/button.css");
43
43
  exports.IconButton = react_1.default.forwardRef(function (props, ref) {
44
44
  var _a;
45
45
  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"]);
46
- useTheme_1.useTheme();
47
- return (react_1.default.createElement("button", __assign({ ref: ref, className: classnames_1.default('iui-button', (_a = {},
46
+ (0, useTheme_1.useTheme)();
47
+ return (react_1.default.createElement("button", __assign({ ref: ref, className: (0, classnames_1.default)('iui-button', (_a = {},
48
48
  _a["iui-" + size] = !!size,
49
49
  _a["iui-" + styleType] = styleType !== 'default',
50
50
  _a['iui-active'] = isActive,
51
51
  _a), className), type: type }, rest), react_1.default.cloneElement(children, {
52
- className: classnames_1.default('iui-icon', children.props.className),
52
+ className: (0, classnames_1.default)('iui-icon', children.props.className),
53
53
  'aria-hidden': true,
54
54
  })));
55
55
  });
@@ -41,7 +41,7 @@ var Button_1 = require("../Button");
41
41
  */
42
42
  exports.IdeasButton = react_1.default.forwardRef(function (props, ref) {
43
43
  var _a = props.feedbackLabel, feedbackLabel = _a === void 0 ? 'Feedback' : _a, onClick = props.onClick, rest = __rest(props, ["feedbackLabel", "onClick"]);
44
- useTheme_1.useTheme();
44
+ (0, useTheme_1.useTheme)();
45
45
  return (react_1.default.createElement(Button_1.Button, __assign({ ref: ref, className: 'iui-idea', onClick: onClick, startIcon: react_1.default.createElement(SmileyHappy_1.default, { "aria-hidden": true }) }, rest), feedbackLabel));
46
46
  });
47
47
  exports.default = exports.IdeasButton;
@@ -51,7 +51,7 @@ require("@itwin/itwinui-css/css/button.css");
51
51
  */
52
52
  var SplitButton = function (props) {
53
53
  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"]);
54
- useTheme_1.useTheme();
54
+ (0, useTheme_1.useTheme)();
55
55
  var _c = react_1.default.useState(false), isMenuOpen = _c[0], setIsMenuOpen = _c[1];
56
56
  var _d = react_1.default.useState(0), menuWidth = _d[0], setMenuWidth = _d[1];
57
57
  var ref = react_1.default.useRef(null);
@@ -60,7 +60,7 @@ var SplitButton = function (props) {
60
60
  setMenuWidth(ref.current.offsetWidth);
61
61
  }
62
62
  }, [children, size]);
63
- return (react_1.default.createElement("span", { className: classnames_1.default(className, 'iui-button-split-menu', {
63
+ return (react_1.default.createElement("span", { className: (0, classnames_1.default)(className, 'iui-button-split-menu', {
64
64
  'iui-disabled': props.disabled,
65
65
  }), style: style, title: title, ref: ref },
66
66
  react_1.default.createElement(Button_1.Button, __assign({ styleType: styleType, size: size, onClick: onClick }, rest), children),
@@ -49,9 +49,9 @@ require("@itwin/itwinui-css/css/inputs.css");
49
49
  exports.Checkbox = react_1.default.forwardRef(function (props, ref) {
50
50
  var _a;
51
51
  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"]);
52
- useTheme_1.useTheme();
52
+ (0, useTheme_1.useTheme)();
53
53
  var inputElementRef = react_1.default.useRef(null);
54
- var refs = useMergedRefs_1.useMergedRefs(inputElementRef, ref);
54
+ var refs = (0, useMergedRefs_1.useMergedRefs)(inputElementRef, ref);
55
55
  react_1.default.useEffect(function () {
56
56
  if (inputElementRef.current && setFocus) {
57
57
  inputElementRef.current.focus();
@@ -65,18 +65,18 @@ exports.Checkbox = react_1.default.forwardRef(function (props, ref) {
65
65
  : inputElementRef.current.checked;
66
66
  }
67
67
  });
68
- return (react_1.default.createElement("label", { className: classnames_1.default('iui-checkbox', (_a = {
68
+ return (react_1.default.createElement("label", { className: (0, classnames_1.default)('iui-checkbox', (_a = {
69
69
  'iui-disabled': disabled
70
70
  },
71
71
  _a["iui-" + status] = !!status,
72
72
  _a['iui-loading'] = isLoading,
73
73
  _a), className), style: style },
74
74
  react_1.default.createElement("input", __assign({ disabled: disabled || isLoading, type: 'checkbox', ref: refs }, rest)),
75
- react_1.default.createElement("span", { className: classnames_1.default('iui-checkbox-checkmark', checkmarkClassName), style: checkmarkStyle },
75
+ react_1.default.createElement("span", { className: (0, classnames_1.default)('iui-checkbox-checkmark', checkmarkClassName), style: checkmarkStyle },
76
76
  isLoading && react_1.default.createElement(ProgressIndicators_1.ProgressRadial, { indeterminate: true }),
77
77
  !isLoading && (react_1.default.createElement("svg", { viewBox: '0 0 16 16', "aria-hidden": 'true', focusable: 'false' },
78
78
  react_1.default.createElement("path", { className: 'iui-check', d: 'M6,14L0,8l2-2l4,4l8-8l2,2L6,14z' }),
79
79
  react_1.default.createElement("path", { className: 'iui-check-partial', d: 'm1 6.5h14v3h-14z' })))),
80
- label && react_1.default.createElement("div", { className: 'iui-label' }, label)));
80
+ label && react_1.default.createElement("span", { className: 'iui-label' }, label)));
81
81
  });
82
82
  exports.default = exports.Checkbox;
@@ -128,7 +128,7 @@ exports.generateLocalizedStrings = generateLocalizedStrings;
128
128
  var DatePicker = function (props) {
129
129
  var _a, _b, _c;
130
130
  var date = props.date, onChange = props.onChange, localizedNames = props.localizedNames, className = props.className, style = props.style, _d = props.setFocus, setFocus = _d === void 0 ? false : _d, _e = props.showTime, showTime = _e === void 0 ? false : _e, _f = props.use12Hours, use12Hours = _f === void 0 ? false : _f, precision = props.precision, hourStep = props.hourStep, minuteStep = props.minuteStep, secondStep = props.secondStep, rest = __rest(props, ["date", "onChange", "localizedNames", "className", "style", "setFocus", "showTime", "use12Hours", "precision", "hourStep", "minuteStep", "secondStep"]);
131
- useTheme_1.useTheme();
131
+ (0, useTheme_1.useTheme)();
132
132
  var monthNames = (_a = localizedNames === null || localizedNames === void 0 ? void 0 : localizedNames.months) !== null && _a !== void 0 ? _a : defaultMonths;
133
133
  var shortDays = (_b = localizedNames === null || localizedNames === void 0 ? void 0 : localizedNames.shortDays) !== null && _b !== void 0 ? _b : defaultShortDays;
134
134
  var longDays = (_c = localizedNames === null || localizedNames === void 0 ? void 0 : localizedNames.days) !== null && _c !== void 0 ? _c : defaultLongDays;
@@ -253,7 +253,7 @@ var DatePicker = function (props) {
253
253
  break;
254
254
  }
255
255
  };
256
- return (react_1.default.createElement("div", __assign({ className: classnames_1.default('iui-date-picker', className), style: style }, rest),
256
+ return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-date-picker', className), style: style }, rest),
257
257
  react_1.default.createElement("div", { className: 'iui-calendar' },
258
258
  react_1.default.createElement("div", { className: 'iui-header' },
259
259
  react_1.default.createElement("div", { className: 'iui-month-year' },
@@ -269,7 +269,7 @@ var DatePicker = function (props) {
269
269
  react_1.default.createElement("div", { className: 'iui-dates', onKeyDown: handleCalendarKeyDown, role: 'listbox' }, weeks.map(function (weekDays, weekIndex) {
270
270
  return (react_1.default.createElement("div", { key: "week-" + displayedMonthIndex + "-" + weekIndex, className: 'iui-week' }, weekDays.map(function (weekDay, dayIndex) {
271
271
  var dateValue = weekDay.getDate();
272
- return (react_1.default.createElement("div", { key: "day-" + displayedMonthIndex + "-" + dayIndex, className: classnames_1.default('iui-date', {
272
+ return (react_1.default.createElement("div", { key: "day-" + displayedMonthIndex + "-" + dayIndex, className: (0, classnames_1.default)('iui-date', {
273
273
  'iui-outside-month': weekDay.getMonth() !== displayedMonthIndex,
274
274
  'iui-today': isSameDay(weekDay, new Date()),
275
275
  'iui-selected': isSameDay(weekDay, selectedDay),
@@ -73,9 +73,9 @@ var DropdownMenu = function (props) {
73
73
  (_a = targetRef.current) === null || _a === void 0 ? void 0 : _a.focus();
74
74
  onHide === null || onHide === void 0 ? void 0 : onHide(instance);
75
75
  }, [onHide]);
76
- useTheme_1.useTheme();
76
+ (0, useTheme_1.useTheme)();
77
77
  return (react_1.default.createElement(Popover_1.Popover, __assign({ content: react_1.default.createElement(Menu_1.Menu, { className: className, style: style, role: role, id: id }, react_1.default.useMemo(function () { return menuItems(close); }, [menuItems, close])), visible: trigger === undefined ? isVisible : undefined, onClickOutside: close, placement: placement, onShow: onShowHandler, onHide: onHideHandler, trigger: visible === undefined ? trigger : undefined }, rest), react_1.default.cloneElement(children, {
78
- ref: useMergedRefs_1.mergeRefs(targetRef, props.children.ref),
78
+ ref: (0, useMergedRefs_1.mergeRefs)(targetRef, props.children.ref),
79
79
  onClick: function (args) {
80
80
  var _a, _b;
81
81
  trigger === undefined && (isVisible ? close() : open());
@@ -48,7 +48,7 @@ require("@itwin/itwinui-css/css/non-ideal-state.css");
48
48
  */
49
49
  var ErrorPage = function (props) {
50
50
  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"]);
51
- useTheme_1.useTheme();
51
+ (0, useTheme_1.useTheme)();
52
52
  var defaultErrorMessages = __assign({ badGateway: 'Bad gateway', error: 'Error', forbidden: 'Forbidden', internalServerError: 'Internal server error', pageNotFound: 'Page not found', serviceUnavailable: 'Service unavailable', unauthorized: 'Unauthorized' }, translatedErrorMessages);
53
53
  function getErrorIcon() {
54
54
  switch (errorType) {
@@ -49,7 +49,7 @@ var common_1 = require("../utils/common");
49
49
  var ExpandableBlock = function (props) {
50
50
  var _a;
51
51
  var caption = props.caption, children = props.children, className = props.className, title = props.title, onToggle = props.onToggle, style = props.style, _b = props.isExpanded, isExpanded = _b === void 0 ? false : _b, endIcon = props.endIcon, status = props.status, rest = __rest(props, ["caption", "children", "className", "title", "onToggle", "style", "isExpanded", "endIcon", "status"]);
52
- useTheme_1.useTheme();
52
+ (0, useTheme_1.useTheme)();
53
53
  var icon = endIcon !== null && endIcon !== void 0 ? endIcon : (status && common_1.StatusIconMap[status]());
54
54
  var _c = react_1.default.useState(isExpanded), expanded = _c[0], setExpanded = _c[1];
55
55
  react_1.default.useEffect(function () {
@@ -67,7 +67,7 @@ var ExpandableBlock = function (props) {
67
67
  handleToggle();
68
68
  }
69
69
  };
70
- return (react_1.default.createElement("div", __assign({ className: classnames_1.default('iui-expandable-block', { 'iui-with-caption': !!caption }, { 'iui-expanded': expanded }, className), style: style }, rest),
70
+ return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-expandable-block', { 'iui-with-caption': !!caption }, { 'iui-expanded': expanded }, className), style: style }, rest),
71
71
  react_1.default.createElement("div", { "aria-expanded": expanded, className: 'iui-header', tabIndex: 0, onClick: handleToggle, onKeyDown: onKeyDown },
72
72
  react_1.default.createElement(ChevronRight_1.default, { className: 'iui-icon', "aria-hidden": true }),
73
73
  react_1.default.createElement("span", { className: 'iui-expandable-block-label' },
@@ -75,7 +75,7 @@ var ExpandableBlock = function (props) {
75
75
  caption && react_1.default.createElement("div", { className: 'iui-caption' }, caption)),
76
76
  icon &&
77
77
  react_1.default.cloneElement(icon, {
78
- className: classnames_1.default('iui-status-icon', (_a = {}, _a["iui-" + status] = !!status, _a), icon.props.className),
78
+ className: (0, classnames_1.default)('iui-status-icon', (_a = {}, _a["iui-" + status] = !!status, _a), icon.props.className),
79
79
  })),
80
80
  react_1.default.createElement(react_transition_group_1.CSSTransition, { in: expanded, timeout: 200, unmountOnExit: true, onEnter: function (node) { return (node.style.height = "0px"); }, onEntering: function (node) {
81
81
  return (node.style.height = expandedHeight.current + "px");
@@ -47,8 +47,8 @@ require("@itwin/itwinui-css/css/fieldset.css");
47
47
  */
48
48
  var Fieldset = function (props) {
49
49
  var children = props.children, className = props.className, disabled = props.disabled, legend = props.legend, rest = __rest(props, ["children", "className", "disabled", "legend"]);
50
- useTheme_1.useTheme();
51
- return (react_1.default.createElement("fieldset", __assign({ className: classnames_1.default('iui-fieldset', className), disabled: disabled }, rest),
50
+ (0, useTheme_1.useTheme)();
51
+ return (react_1.default.createElement("fieldset", __assign({ className: (0, classnames_1.default)('iui-fieldset', className), disabled: disabled }, rest),
52
52
  legend && react_1.default.createElement("legend", null, legend),
53
53
  disabled
54
54
  ? react_1.default.Children.map(children, function (child) {
@@ -44,10 +44,10 @@ require("@itwin/itwinui-css/css/file-upload.css");
44
44
  */
45
45
  exports.FileUpload = react_1.default.forwardRef(function (props, ref) {
46
46
  var dragContent = props.dragContent, children = props.children, onFileDropped = props.onFileDropped, className = props.className, rest = __rest(props, ["dragContent", "children", "onFileDropped", "className"]);
47
- useTheme_1.useTheme();
47
+ (0, useTheme_1.useTheme)();
48
48
  var _a = react_1.default.useState(false), isDragActive = _a[0], setIsDragActive = _a[1];
49
49
  var fileUploadRef = react_1.default.useRef(null);
50
- var refs = useMergedRefs_1.useMergedRefs(fileUploadRef, ref);
50
+ var refs = (0, useMergedRefs_1.useMergedRefs)(fileUploadRef, ref);
51
51
  var onDragOverHandler = function (e) {
52
52
  e.preventDefault();
53
53
  e.stopPropagation();
@@ -80,7 +80,7 @@ exports.FileUpload = react_1.default.forwardRef(function (props, ref) {
80
80
  onFileDropped((_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files);
81
81
  }
82
82
  };
83
- return (react_1.default.createElement("div", __assign({ className: classnames_1.default('iui-file-upload', { 'iui-drag': isDragActive }, className), onDragEnter: onDragEnterHandler, onDragOver: onDragOverHandler, onDragLeave: onDragLeaveHandler, onDrop: onDropHandler, ref: refs }, rest),
83
+ return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-file-upload', { 'iui-drag': isDragActive }, className), onDragEnter: onDragEnterHandler, onDragOver: onDragOverHandler, onDragLeave: onDragLeaveHandler, onDrop: onDropHandler, ref: refs }, rest),
84
84
  dragContent ? children : react_1.default.createElement("div", { className: 'iui-content' }, children),
85
85
  dragContent && react_1.default.createElement("div", { className: 'iui-content' }, dragContent)));
86
86
  });
@@ -20,7 +20,7 @@ var Upload_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/Upl
20
20
  */
21
21
  var FileUploadTemplate = function (props) {
22
22
  var onChange = props.onChange, _a = props.acceptMultiple, acceptMultiple = _a === void 0 ? true : _a, acceptType = props.acceptType, _b = props.label, label = _b === void 0 ? 'Choose a file' : _b, _c = props.subtitle, subtitle = _c === void 0 ? 'or drag & drop it here.' : _c, children = props.children;
23
- useTheme_1.useTheme();
23
+ (0, useTheme_1.useTheme)();
24
24
  return (react_1.default.createElement(react_1.default.Fragment, null,
25
25
  react_1.default.createElement(Upload_1.default, { className: 'iui-icon', "aria-hidden": true }),
26
26
  react_1.default.createElement("div", { className: 'iui-template-text' },
@@ -21,10 +21,14 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  }
22
22
  return t;
23
23
  };
24
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
25
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
26
- to[j] = from[i];
27
- return to;
24
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
26
+ if (ar || !(i in from)) {
27
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28
+ ar[i] = from[i];
29
+ }
30
+ }
31
+ return to.concat(ar || Array.prototype.slice.call(from));
28
32
  };
29
33
  var __importDefault = (this && this.__importDefault) || function (mod) {
30
34
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -55,7 +59,7 @@ var footerTranslations = {
55
59
  */
56
60
  var Footer = function (props) {
57
61
  var customElements = props.customElements, translatedTitles = props.translatedTitles, className = props.className, rest = __rest(props, ["customElements", "translatedTitles", "className"]);
58
- useTheme_1.useTheme();
62
+ (0, useTheme_1.useTheme)();
59
63
  var today = new Date();
60
64
  var titles = __assign(__assign({}, footerTranslations), translatedTitles);
61
65
  var defaultElements = [
@@ -72,8 +76,8 @@ var Footer = function (props) {
72
76
  { title: titles.legalNotices, url: 'https://connect.bentley.com/Legal' },
73
77
  ];
74
78
  var elements = customElements
75
- ? __spreadArray(__spreadArray([], defaultElements), customElements) : defaultElements;
76
- return (react_1.default.createElement("footer", __assign({ className: classnames_1.default('iui-legal-footer', className) }, rest),
79
+ ? __spreadArray(__spreadArray([], defaultElements, true), customElements, true) : defaultElements;
80
+ return (react_1.default.createElement("footer", __assign({ className: (0, classnames_1.default)('iui-legal-footer', className) }, rest),
77
81
  react_1.default.createElement("ul", null,
78
82
  react_1.default.createElement("li", null,
79
83
  "\u00A9 ",
@@ -71,9 +71,9 @@ var defaultTranslations = {
71
71
  */
72
72
  var Header = function (props) {
73
73
  var appLogo = props.appLogo, breadcrumbs = props.breadcrumbs, _a = props.isSlim, isSlim = _a === void 0 ? false : _a, actions = props.actions, userIcon = props.userIcon, menuItems = props.menuItems, translatedStrings = props.translatedStrings, className = props.className, children = props.children, rest = __rest(props, ["appLogo", "breadcrumbs", "isSlim", "actions", "userIcon", "menuItems", "translatedStrings", "className", "children"]);
74
- useTheme_1.useTheme();
74
+ (0, useTheme_1.useTheme)();
75
75
  var headerTranslations = __assign(__assign({}, defaultTranslations), translatedStrings);
76
- return (react_1.default.createElement("header", __assign({ className: classnames_1.default('iui-page-header', { 'iui-slim': isSlim }, className) }, rest),
76
+ return (react_1.default.createElement("header", __assign({ className: (0, classnames_1.default)('iui-page-header', { 'iui-slim': isSlim }, className) }, rest),
77
77
  react_1.default.createElement("div", { className: 'iui-left' },
78
78
  appLogo,
79
79
  breadcrumbs && react_1.default.createElement("div", { className: 'iui-divider' }),
@@ -21,10 +21,14 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  }
22
22
  return t;
23
23
  };
24
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
25
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
26
- to[j] = from[i];
27
- return to;
24
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
26
+ if (ar || !(i in from)) {
27
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28
+ ar[i] = from[i];
29
+ }
30
+ }
31
+ return to.concat(ar || Array.prototype.slice.call(from));
28
32
  };
29
33
  var __importDefault = (this && this.__importDefault) || function (mod) {
30
34
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -51,11 +55,11 @@ require("@itwin/itwinui-css/css/header.css");
51
55
  */
52
56
  var HeaderBreadcrumbs = function (props) {
53
57
  var items = props.items, rest = __rest(props, ["items"]);
54
- useTheme_1.useTheme();
55
- return (react_1.default.createElement("nav", __assign({ "aria-label": 'breadcrumbs' }, rest), items.reduce(function (previous, current, index) { return __spreadArray(__spreadArray([], previous), [
58
+ (0, useTheme_1.useTheme)();
59
+ return (react_1.default.createElement("nav", __assign({ "aria-label": 'breadcrumbs' }, rest), items.reduce(function (previous, current, index) { return __spreadArray(__spreadArray([], previous, true), [
56
60
  current,
57
61
  index !== items.length - 1 && (react_1.default.createElement(ChevronRight_1.default, { key: "chevron" + index, "aria-hidden": true, className: 'iui-chevron' })),
58
- ]); }, [])));
62
+ ], false); }, [])));
59
63
  };
60
64
  exports.HeaderBreadcrumbs = HeaderBreadcrumbs;
61
65
  exports.default = exports.HeaderBreadcrumbs;
@@ -53,12 +53,12 @@ var isDropdownButton = function (props) {
53
53
  */
54
54
  var HeaderButton = function (props) {
55
55
  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"]);
56
- useTheme_1.useTheme();
56
+ (0, useTheme_1.useTheme)();
57
57
  var buttonProps = __assign(__assign({ startIcon: react_1.default.isValidElement(startIcon)
58
58
  ? react_1.default.cloneElement(startIcon, {
59
- className: classnames_1.default('iui-header-button-icon', startIcon.props.className),
59
+ className: (0, classnames_1.default)('iui-header-button-icon', startIcon.props.className),
60
60
  })
61
- : undefined, styleType: 'borderless', className: classnames_1.default({
61
+ : undefined, styleType: 'borderless', className: (0, classnames_1.default)({
62
62
  'iui-header-button': !isSplitButton(props),
63
63
  'iui-header-split-button': isSplitButton(props),
64
64
  'iui-active': isActive,
@@ -51,11 +51,11 @@ var HeaderLogo = function (props) {
51
51
  onClick();
52
52
  }
53
53
  };
54
- useTheme_1.useTheme();
55
- return (react_1.default.createElement("div", __assign({ className: classnames_1.default('iui-header-logo', className), role: onClick && 'button', tabIndex: onClick && 0, onKeyDown: keyDownHandler, onClick: onClick }, rest),
54
+ (0, useTheme_1.useTheme)();
55
+ return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-header-logo', className), role: onClick && 'button', tabIndex: onClick && 0, onKeyDown: keyDownHandler, onClick: onClick }, rest),
56
56
  react_1.default.isValidElement(logo)
57
57
  ? react_1.default.cloneElement(logo, {
58
- className: classnames_1.default('iui-header-button-icon', logo.props.className),
58
+ className: (0, classnames_1.default)('iui-header-button-icon', logo.props.className),
59
59
  })
60
60
  : undefined,
61
61
  children && react_1.default.createElement("span", { className: 'iui-label' }, children)));
@@ -45,14 +45,14 @@ require("@itwin/itwinui-css/css/inputs.css");
45
45
  exports.Input = react_1.default.forwardRef(function (props, ref) {
46
46
  var _a;
47
47
  var _b = props.setFocus, setFocus = _b === void 0 ? false : _b, size = props.size, className = props.className, rest = __rest(props, ["setFocus", "size", "className"]);
48
- useTheme_1.useTheme();
48
+ (0, useTheme_1.useTheme)();
49
49
  var inputRef = react_1.default.useRef(null);
50
- var refs = useMergedRefs_1.useMergedRefs(inputRef, ref);
50
+ var refs = (0, useMergedRefs_1.useMergedRefs)(inputRef, ref);
51
51
  react_1.default.useEffect(function () {
52
52
  if (inputRef.current && setFocus) {
53
53
  inputRef.current.focus();
54
54
  }
55
55
  }, [setFocus]);
56
- return (react_1.default.createElement("input", __assign({ className: classnames_1.default('iui-input', (_a = {}, _a["iui-" + size] = !!size, _a), className), ref: refs }, rest)));
56
+ return (react_1.default.createElement("input", __assign({ className: (0, classnames_1.default)('iui-input', (_a = {}, _a["iui-" + size] = !!size, _a), className), ref: refs }, rest)));
57
57
  });
58
58
  exports.default = exports.Input;
@@ -30,10 +30,10 @@ exports.InputGroup = void 0;
30
30
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
31
31
  * See LICENSE.md in the project root for license terms and full copyright notice.
32
32
  *--------------------------------------------------------------------------------------------*/
33
- var classnames_1 = __importDefault(require("classnames"));
34
33
  var react_1 = __importDefault(require("react"));
35
34
  var common_1 = require("../utils/common");
36
35
  var useTheme_1 = require("../utils/hooks/useTheme");
36
+ var InputContainer_1 = require("../utils/InputContainer");
37
37
  require("@itwin/itwinui-css/css/inputs.css");
38
38
  /**
39
39
  * Group Checkbox/Radio components together
@@ -51,23 +51,11 @@ require("@itwin/itwinui-css/css/inputs.css");
51
51
  * </InputGroup>
52
52
  */
53
53
  var InputGroup = function (props) {
54
- var _a;
55
- var children = props.children, _b = props.disabled, disabled = _b === void 0 ? false : _b, _c = props.displayStyle, displayStyle = _c === void 0 ? 'default' : _c, label = props.label, message = props.message, status = props.status, svgIcon = props.svgIcon, className = props.className, style = props.style, _d = props.required, required = _d === void 0 ? false : _d, rest = __rest(props, ["children", "disabled", "displayStyle", "label", "message", "status", "svgIcon", "className", "style", "required"]);
56
- useTheme_1.useTheme();
54
+ var children = props.children, _a = props.disabled, disabled = _a === void 0 ? false : _a, _b = props.displayStyle, displayStyle = _b === void 0 ? 'default' : _b, label = props.label, message = props.message, status = props.status, svgIcon = props.svgIcon, className = props.className, style = props.style, _c = props.required, required = _c === void 0 ? false : _c, rest = __rest(props, ["children", "disabled", "displayStyle", "label", "message", "status", "svgIcon", "className", "style", "required"]);
55
+ (0, useTheme_1.useTheme)();
57
56
  var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status && common_1.StatusIconMap[status]());
58
- return (react_1.default.createElement("div", __assign({ className: classnames_1.default('iui-input-container', (_a = {
59
- 'iui-disabled': disabled
60
- },
61
- _a["iui-" + status] = !!status,
62
- _a["iui-" + displayStyle] = displayStyle !== 'default',
63
- _a), className), style: style }, rest),
64
- label && (react_1.default.createElement("div", { className: classnames_1.default('iui-label', {
65
- 'iui-required': required,
66
- }) }, label)),
67
- children,
68
- (message || icon) && (react_1.default.createElement("div", { className: 'iui-message' },
69
- icon,
70
- displayStyle === 'default' && message))));
57
+ return (react_1.default.createElement(InputContainer_1.InputContainer, __assign({ label: label, disabled: disabled, required: required, status: status, message: message, icon: icon ? react_1.default.cloneElement(icon, { 'aria-hidden': true }) : undefined, isLabelInline: displayStyle === 'inline', className: className, style: style }, rest),
58
+ react_1.default.createElement("div", { className: 'iui-input-group' }, children)));
71
59
  };
72
60
  exports.InputGroup = InputGroup;
73
61
  exports.default = exports.InputGroup;
@@ -15,7 +15,7 @@ export declare type LabeledInputProps = {
15
15
  */
16
16
  status?: 'positive' | 'warning' | 'negative';
17
17
  /**
18
- * Custom svg icon. If input has status, default status icon is used instead.
18
+ * Custom svg icon. Will override status icon if specified.
19
19
  */
20
20
  svgIcon?: JSX.Element;
21
21
  /**
@@ -27,10 +27,22 @@ export declare type LabeledInputProps = {
27
27
  */
28
28
  inputStyle?: React.CSSProperties;
29
29
  /**
30
- * You can choose between default and inline.
30
+ * Set display style of label.
31
+ * Supported values:
32
+ * - 'default' - label appears above input.
33
+ * - 'inline' - appears in the same line as input.
31
34
  * @default 'default'
32
35
  */
33
36
  displayStyle?: 'default' | 'inline';
37
+ /**
38
+ * Set display style of icon.
39
+ * Supported values:
40
+ * - 'block' - icon appears below input.
41
+ * - 'inline' - icon appears inside input (at the end).
42
+ *
43
+ * Defaults to 'block' if `displayStyle` is `default`, else 'inline'.
44
+ */
45
+ iconDisplayStyle?: 'block' | 'inline';
34
46
  } & InputProps;
35
47
  /**
36
48
  * Basic labeled input component
@@ -54,7 +66,7 @@ export declare const LabeledInput: React.ForwardRefExoticComponent<{
54
66
  */
55
67
  status?: "positive" | "warning" | "negative" | undefined;
56
68
  /**
57
- * Custom svg icon. If input has status, default status icon is used instead.
69
+ * Custom svg icon. Will override status icon if specified.
58
70
  */
59
71
  svgIcon?: JSX.Element | undefined;
60
72
  /**
@@ -66,10 +78,22 @@ export declare const LabeledInput: React.ForwardRefExoticComponent<{
66
78
  */
67
79
  inputStyle?: React.CSSProperties | undefined;
68
80
  /**
69
- * You can choose between default and inline.
81
+ * Set display style of label.
82
+ * Supported values:
83
+ * - 'default' - label appears above input.
84
+ * - 'inline' - appears in the same line as input.
70
85
  * @default 'default'
71
86
  */
72
87
  displayStyle?: "default" | "inline" | undefined;
88
+ /**
89
+ * Set display style of icon.
90
+ * Supported values:
91
+ * - 'block' - icon appears below input.
92
+ * - 'inline' - icon appears inside input (at the end).
93
+ *
94
+ * Defaults to 'block' if `displayStyle` is `default`, else 'inline'.
95
+ */
96
+ iconDisplayStyle?: "inline" | "block" | undefined;
73
97
  } & {
74
98
  setFocus?: boolean | undefined;
75
99
  size?: "small" | "large" | undefined;