@itwin/itwinui-react 3.0.0-dev.1 → 3.0.0-dev.3

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 (239) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/cjs/core/Alert/Alert.d.ts +47 -28
  3. package/cjs/core/Alert/Alert.js +73 -21
  4. package/cjs/core/Avatar/Avatar.js +1 -1
  5. package/cjs/core/AvatarGroup/AvatarGroup.js +1 -1
  6. package/cjs/core/Breadcrumbs/Breadcrumbs.js +2 -3
  7. package/cjs/core/ButtonGroup/ButtonGroup.js +1 -4
  8. package/cjs/core/Buttons/DropdownButton/DropdownButton.js +3 -5
  9. package/cjs/core/Carousel/Carousel.d.ts +2 -2
  10. package/cjs/core/Carousel/Carousel.js +3 -5
  11. package/cjs/core/Carousel/CarouselDotsList.js +8 -10
  12. package/cjs/core/Carousel/CarouselNavigation.d.ts +2 -2
  13. package/cjs/core/Carousel/CarouselNavigation.js +3 -5
  14. package/cjs/core/Carousel/CarouselSlider.js +10 -15
  15. package/cjs/core/ColorPicker/ColorBuilder.js +7 -10
  16. package/cjs/core/ColorPicker/ColorInputPanel.js +12 -15
  17. package/cjs/core/ColorPicker/ColorPalette.js +4 -6
  18. package/cjs/core/ColorPicker/ColorPicker.js +3 -3
  19. package/cjs/core/ComboBox/ComboBox.js +25 -32
  20. package/cjs/core/ComboBox/ComboBoxDropdown.js +1 -2
  21. package/cjs/core/ComboBox/ComboBoxEndIcon.js +1 -1
  22. package/cjs/core/ComboBox/ComboBoxInput.js +21 -20
  23. package/cjs/core/ComboBox/ComboBoxMenu.js +3 -4
  24. package/cjs/core/ComboBox/ComboBoxMenuItem.js +2 -2
  25. package/cjs/core/ComboBox/helpers.js +4 -5
  26. package/cjs/core/DatePicker/DatePicker.js +32 -32
  27. package/cjs/core/Dialog/Dialog.js +11 -4
  28. package/cjs/core/Dialog/DialogBackdrop.js +1 -1
  29. package/cjs/core/Dialog/DialogContext.d.ts +11 -0
  30. package/cjs/core/Dialog/DialogMain.js +16 -22
  31. package/cjs/core/DropdownMenu/DropdownMenu.js +6 -8
  32. package/cjs/core/ExpandableBlock/ExpandableBlock.js +2 -2
  33. package/cjs/core/FileUpload/FileEmptyCard.js +1 -1
  34. package/cjs/core/FileUpload/FileUpload.d.ts +3 -4
  35. package/cjs/core/FileUpload/FileUpload.js +5 -8
  36. package/cjs/core/FileUpload/FileUploadCard.js +9 -10
  37. package/cjs/core/FileUpload/FileUploadTemplate.d.ts +1 -0
  38. package/cjs/core/FileUpload/FileUploadTemplate.js +1 -0
  39. package/cjs/core/InformationPanel/InformationPanel.js +1 -4
  40. package/cjs/core/LabeledInput/LabeledInput.js +1 -1
  41. package/cjs/core/LabeledTextarea/LabeledTextarea.js +1 -1
  42. package/cjs/core/Menu/Menu.js +3 -4
  43. package/cjs/core/Menu/MenuItem.js +8 -11
  44. package/cjs/core/Modal/Modal.d.ts +8 -9
  45. package/cjs/core/Modal/Modal.js +7 -17
  46. package/cjs/core/SearchBox/SearchBox.js +12 -12
  47. package/cjs/core/Select/Select.js +12 -17
  48. package/cjs/core/SideNavigation/SideNavigation.js +2 -2
  49. package/cjs/core/Slider/Slider.js +16 -19
  50. package/cjs/core/Slider/Thumb.js +1 -1
  51. package/cjs/core/StatusMessage/StatusMessage.js +1 -1
  52. package/cjs/core/Stepper/Stepper.js +1 -1
  53. package/cjs/core/Stepper/StepperStep.js +1 -1
  54. package/cjs/core/Table/Table.js +15 -15
  55. package/cjs/core/Table/TablePaginator.js +2 -3
  56. package/cjs/core/Table/TableRowMemoized.js +38 -45
  57. package/cjs/core/Table/actionHandlers/expandHandler.js +3 -3
  58. package/cjs/core/Table/actionHandlers/filterHandler.js +4 -5
  59. package/cjs/core/Table/actionHandlers/selectHandler.js +6 -6
  60. package/cjs/core/Table/cells/DefaultCell.js +1 -1
  61. package/cjs/core/Table/cells/EditableCell.js +6 -12
  62. package/cjs/core/Table/columns/actionColumn.js +3 -6
  63. package/cjs/core/Table/columns/expanderColumn.js +3 -3
  64. package/cjs/core/Table/columns/selectionColumn.js +4 -4
  65. package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.js +2 -4
  66. package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +2 -3
  67. package/cjs/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +2 -3
  68. package/cjs/core/Table/filters/TextFilter/TextFilter.js +1 -2
  69. package/cjs/core/Table/hooks/useResizeColumns.js +16 -22
  70. package/cjs/core/Table/hooks/useScrollToRow.js +1 -2
  71. package/cjs/core/Table/hooks/useStickyColumns.js +3 -5
  72. package/cjs/core/Table/hooks/useSubRowFiltering.js +2 -4
  73. package/cjs/core/Tabs/Tabs.js +13 -16
  74. package/cjs/core/ThemeProvider/ThemeContext.d.ts +1 -1
  75. package/cjs/core/ThemeProvider/ThemeProvider.d.ts +2 -3
  76. package/cjs/core/ThemeProvider/ThemeProvider.js +14 -13
  77. package/cjs/core/Tile/Tile.js +2 -3
  78. package/cjs/core/TimePicker/TimePicker.js +13 -13
  79. package/cjs/core/Toast/Toast.d.ts +5 -10
  80. package/cjs/core/Toast/Toast.js +17 -16
  81. package/cjs/core/Toast/Toaster.d.ts +24 -26
  82. package/cjs/core/Toast/Toaster.js +91 -121
  83. package/cjs/core/Toast/index.d.ts +1 -4
  84. package/cjs/core/Toast/index.js +3 -6
  85. package/cjs/core/TransferList/TransferList.js +3 -4
  86. package/cjs/core/Tree/Tree.js +9 -13
  87. package/cjs/core/Tree/TreeNode.js +9 -10
  88. package/cjs/core/index.d.ts +1 -2
  89. package/cjs/core/index.js +2 -5
  90. package/cjs/core/utils/color/ColorValue.js +9 -15
  91. package/cjs/core/utils/components/AutoclearingHiddenLiveRegion.js +2 -3
  92. package/cjs/core/utils/components/FocusTrap.js +4 -4
  93. package/cjs/core/utils/components/MiddleTextTruncation.js +1 -2
  94. package/cjs/core/utils/components/Popover.d.ts +1 -1
  95. package/cjs/core/utils/components/Popover.js +5 -8
  96. package/cjs/core/utils/components/Resizer.js +7 -6
  97. package/cjs/core/utils/components/VirtualScroll.js +14 -21
  98. package/cjs/core/utils/functions/dom.d.ts +0 -8
  99. package/cjs/core/utils/functions/dom.js +3 -26
  100. package/cjs/core/utils/functions/polymorphic.d.ts +1 -1
  101. package/cjs/core/utils/functions/polymorphic.js +1 -1
  102. package/cjs/core/utils/functions/supports.js +1 -1
  103. package/cjs/core/utils/hooks/index.d.ts +0 -1
  104. package/cjs/core/utils/hooks/index.js +0 -1
  105. package/cjs/core/utils/hooks/useContainerWidth.js +1 -1
  106. package/cjs/core/utils/hooks/useDragAndDrop.js +8 -10
  107. package/cjs/core/utils/hooks/useEventListener.js +1 -1
  108. package/cjs/core/utils/hooks/useGlobals.d.ts +9 -2
  109. package/cjs/core/utils/hooks/useGlobals.js +6 -4
  110. package/cjs/core/utils/hooks/useId.js +1 -2
  111. package/cjs/core/utils/hooks/useIntersection.js +2 -3
  112. package/cjs/core/utils/hooks/useMediaQuery.js +6 -8
  113. package/cjs/core/utils/hooks/useOverflow.js +1 -2
  114. package/cjs/core/utils/hooks/useResizeObserver.js +3 -4
  115. package/cjs/styles.js +1 -4
  116. package/esm/core/Alert/Alert.d.ts +47 -28
  117. package/esm/core/Alert/Alert.js +74 -22
  118. package/esm/core/Avatar/Avatar.js +1 -1
  119. package/esm/core/AvatarGroup/AvatarGroup.js +1 -1
  120. package/esm/core/Breadcrumbs/Breadcrumbs.js +2 -3
  121. package/esm/core/ButtonGroup/ButtonGroup.js +1 -4
  122. package/esm/core/Buttons/DropdownButton/DropdownButton.js +3 -5
  123. package/esm/core/Carousel/Carousel.d.ts +2 -2
  124. package/esm/core/Carousel/Carousel.js +3 -5
  125. package/esm/core/Carousel/CarouselDotsList.js +8 -10
  126. package/esm/core/Carousel/CarouselNavigation.d.ts +2 -2
  127. package/esm/core/Carousel/CarouselNavigation.js +3 -5
  128. package/esm/core/Carousel/CarouselSlider.js +10 -15
  129. package/esm/core/ColorPicker/ColorBuilder.js +7 -10
  130. package/esm/core/ColorPicker/ColorInputPanel.js +12 -15
  131. package/esm/core/ColorPicker/ColorPalette.js +4 -6
  132. package/esm/core/ColorPicker/ColorPicker.js +3 -3
  133. package/esm/core/ComboBox/ComboBox.js +25 -32
  134. package/esm/core/ComboBox/ComboBoxDropdown.js +1 -2
  135. package/esm/core/ComboBox/ComboBoxEndIcon.js +1 -1
  136. package/esm/core/ComboBox/ComboBoxInput.js +21 -20
  137. package/esm/core/ComboBox/ComboBoxMenu.js +3 -4
  138. package/esm/core/ComboBox/ComboBoxMenuItem.js +2 -2
  139. package/esm/core/ComboBox/helpers.js +4 -5
  140. package/esm/core/DatePicker/DatePicker.js +32 -32
  141. package/esm/core/Dialog/Dialog.js +12 -5
  142. package/esm/core/Dialog/DialogBackdrop.js +1 -1
  143. package/esm/core/Dialog/DialogContext.d.ts +11 -0
  144. package/esm/core/Dialog/DialogMain.js +16 -22
  145. package/esm/core/DropdownMenu/DropdownMenu.js +6 -8
  146. package/esm/core/ExpandableBlock/ExpandableBlock.js +2 -2
  147. package/esm/core/FileUpload/FileEmptyCard.js +1 -1
  148. package/esm/core/FileUpload/FileUpload.d.ts +3 -4
  149. package/esm/core/FileUpload/FileUpload.js +5 -8
  150. package/esm/core/FileUpload/FileUploadCard.js +9 -10
  151. package/esm/core/FileUpload/FileUploadTemplate.d.ts +1 -0
  152. package/esm/core/FileUpload/FileUploadTemplate.js +1 -0
  153. package/esm/core/InformationPanel/InformationPanel.js +1 -4
  154. package/esm/core/LabeledInput/LabeledInput.js +1 -1
  155. package/esm/core/LabeledTextarea/LabeledTextarea.js +1 -1
  156. package/esm/core/Menu/Menu.js +3 -4
  157. package/esm/core/Menu/MenuItem.js +8 -11
  158. package/esm/core/Modal/Modal.d.ts +8 -9
  159. package/esm/core/Modal/Modal.js +3 -10
  160. package/esm/core/SearchBox/SearchBox.js +12 -12
  161. package/esm/core/Select/Select.js +12 -17
  162. package/esm/core/SideNavigation/SideNavigation.js +2 -2
  163. package/esm/core/Slider/Slider.js +16 -19
  164. package/esm/core/Slider/Thumb.js +1 -1
  165. package/esm/core/StatusMessage/StatusMessage.js +1 -1
  166. package/esm/core/Stepper/Stepper.js +1 -1
  167. package/esm/core/Stepper/StepperStep.js +1 -1
  168. package/esm/core/Table/Table.js +15 -15
  169. package/esm/core/Table/TablePaginator.js +2 -3
  170. package/esm/core/Table/TableRowMemoized.js +38 -45
  171. package/esm/core/Table/actionHandlers/expandHandler.js +3 -3
  172. package/esm/core/Table/actionHandlers/filterHandler.js +4 -5
  173. package/esm/core/Table/actionHandlers/selectHandler.js +6 -6
  174. package/esm/core/Table/cells/DefaultCell.js +1 -1
  175. package/esm/core/Table/cells/EditableCell.js +6 -12
  176. package/esm/core/Table/columns/actionColumn.js +3 -6
  177. package/esm/core/Table/columns/expanderColumn.js +3 -3
  178. package/esm/core/Table/columns/selectionColumn.js +4 -4
  179. package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +2 -4
  180. package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +2 -3
  181. package/esm/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +2 -3
  182. package/esm/core/Table/filters/TextFilter/TextFilter.js +1 -2
  183. package/esm/core/Table/hooks/useResizeColumns.js +16 -22
  184. package/esm/core/Table/hooks/useScrollToRow.js +1 -2
  185. package/esm/core/Table/hooks/useStickyColumns.js +3 -5
  186. package/esm/core/Table/hooks/useSubRowFiltering.js +2 -4
  187. package/esm/core/Tabs/Tabs.js +13 -16
  188. package/esm/core/ThemeProvider/ThemeContext.d.ts +1 -1
  189. package/esm/core/ThemeProvider/ThemeProvider.d.ts +2 -3
  190. package/esm/core/ThemeProvider/ThemeProvider.js +15 -14
  191. package/esm/core/Tile/Tile.js +2 -3
  192. package/esm/core/TimePicker/TimePicker.js +13 -13
  193. package/esm/core/Toast/Toast.d.ts +5 -10
  194. package/esm/core/Toast/Toast.js +18 -17
  195. package/esm/core/Toast/Toaster.d.ts +24 -26
  196. package/esm/core/Toast/Toaster.js +85 -121
  197. package/esm/core/Toast/index.d.ts +1 -4
  198. package/esm/core/Toast/index.js +1 -3
  199. package/esm/core/TransferList/TransferList.js +3 -4
  200. package/esm/core/Tree/Tree.js +9 -13
  201. package/esm/core/Tree/TreeNode.js +9 -10
  202. package/esm/core/index.d.ts +1 -2
  203. package/esm/core/index.js +1 -1
  204. package/esm/core/utils/color/ColorValue.js +9 -15
  205. package/esm/core/utils/components/AutoclearingHiddenLiveRegion.js +2 -3
  206. package/esm/core/utils/components/FocusTrap.js +4 -4
  207. package/esm/core/utils/components/MiddleTextTruncation.js +1 -2
  208. package/esm/core/utils/components/Popover.d.ts +1 -1
  209. package/esm/core/utils/components/Popover.js +5 -8
  210. package/esm/core/utils/components/Resizer.js +7 -6
  211. package/esm/core/utils/components/VirtualScroll.js +14 -21
  212. package/esm/core/utils/functions/dom.d.ts +0 -8
  213. package/esm/core/utils/functions/dom.js +2 -21
  214. package/esm/core/utils/functions/polymorphic.d.ts +1 -1
  215. package/esm/core/utils/functions/polymorphic.js +1 -1
  216. package/esm/core/utils/functions/supports.js +1 -1
  217. package/esm/core/utils/hooks/index.d.ts +0 -1
  218. package/esm/core/utils/hooks/index.js +0 -1
  219. package/esm/core/utils/hooks/useContainerWidth.js +1 -1
  220. package/esm/core/utils/hooks/useDragAndDrop.js +8 -10
  221. package/esm/core/utils/hooks/useEventListener.js +1 -1
  222. package/esm/core/utils/hooks/useGlobals.d.ts +9 -2
  223. package/esm/core/utils/hooks/useGlobals.js +6 -4
  224. package/esm/core/utils/hooks/useId.js +1 -2
  225. package/esm/core/utils/hooks/useIntersection.js +2 -3
  226. package/esm/core/utils/hooks/useMediaQuery.js +6 -8
  227. package/esm/core/utils/hooks/useOverflow.js +1 -2
  228. package/esm/core/utils/hooks/useResizeObserver.js +3 -4
  229. package/esm/styles.js +1 -4
  230. package/package.json +2 -2
  231. package/styles.css +19 -20
  232. package/cjs/core/Toast/ToastWrapper.d.ts +0 -10
  233. package/cjs/core/Toast/ToastWrapper.js +0 -49
  234. package/cjs/core/utils/hooks/useIsThemeAlreadySet.d.ts +0 -7
  235. package/cjs/core/utils/hooks/useIsThemeAlreadySet.js +0 -54
  236. package/esm/core/Toast/ToastWrapper.d.ts +0 -10
  237. package/esm/core/Toast/ToastWrapper.js +0 -20
  238. package/esm/core/utils/hooks/useIsThemeAlreadySet.d.ts +0 -7
  239. package/esm/core/utils/hooks/useIsThemeAlreadySet.js +0 -27
@@ -42,7 +42,6 @@ const ThemeContext_js_1 = require("../../ThemeProvider/ThemeContext.js");
42
42
  * @private
43
43
  */
44
44
  exports.Popover = React.forwardRef((props, ref) => {
45
- var _a;
46
45
  const [mounted, setMounted] = React.useState(false);
47
46
  const themeInfo = React.useContext(ThemeContext_js_1.ThemeContext);
48
47
  const isDomAvailable = (0, index_js_1.useIsClient)();
@@ -59,15 +58,14 @@ exports.Popover = React.forwardRef((props, ref) => {
59
58
  const removeTabIndex = {
60
59
  fn: () => ({
61
60
  onCreate: (instance) => {
62
- var _a;
63
- (_a = instance.popper.firstElementChild) === null || _a === void 0 ? void 0 : _a.removeAttribute('tabindex');
61
+ instance.popper.firstElementChild?.removeAttribute('tabindex');
64
62
  },
65
63
  }),
66
64
  };
67
65
  const computedProps = {
68
66
  allowHTML: true,
69
67
  animation: false,
70
- appendTo: (el) => (themeInfo === null || themeInfo === void 0 ? void 0 : themeInfo.rootRef.current) || el.ownerDocument.body,
68
+ appendTo: (el) => themeInfo?.portalContainerRef?.current || el.ownerDocument.body,
71
69
  arrow: false,
72
70
  duration: 0,
73
71
  interactive: true,
@@ -92,7 +90,7 @@ exports.Popover = React.forwardRef((props, ref) => {
92
90
  modifiers: [
93
91
  { name: 'flip' },
94
92
  { name: 'preventOverflow', options: { padding: 0 } },
95
- ...(((_a = props.popperOptions) === null || _a === void 0 ? void 0 : _a.modifiers) || []),
93
+ ...(props.popperOptions?.modifiers || []),
96
94
  ],
97
95
  },
98
96
  };
@@ -107,9 +105,8 @@ exports.Popover = React.forwardRef((props, ref) => {
107
105
  const clonedContent = React.isValidElement(props.content)
108
106
  ? React.cloneElement(props.content, {
109
107
  onClick: (e) => {
110
- var _a, _b;
111
108
  e.stopPropagation();
112
- (_b = (_a = props.content.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
109
+ props.content.props.onClick?.(e);
113
110
  },
114
111
  })
115
112
  : props.content;
@@ -126,7 +123,7 @@ exports.hideOnEscOrTab = {
126
123
  /** @returns true if none of the children are tabbable */
127
124
  const shouldHideOnTab = () => {
128
125
  const descendents = Array.from(instance.popper.querySelectorAll('*'));
129
- return !descendents.some((el) => (el === null || el === void 0 ? void 0 : el.tabIndex) >= 0);
126
+ return !descendents.some((el) => el?.tabIndex >= 0);
130
127
  };
131
128
  const onKeyDown = (event) => {
132
129
  if (event.altKey) {
@@ -64,17 +64,18 @@ const Resizer = (props) => {
64
64
  const originalUserSelect = ownerDocument.body.style.userSelect;
65
65
  ownerDocument.body.style.userSelect = 'none';
66
66
  const onResizePointerMove = (event) => {
67
- var _a, _b, _c, _d, _e, _f, _g;
68
67
  if (!elementRef.current) {
69
68
  return;
70
69
  }
71
70
  if (!isResizing.current) {
72
71
  isResizing.current = true;
73
- onResizeStart === null || onResizeStart === void 0 ? void 0 : onResizeStart();
72
+ onResizeStart?.();
74
73
  }
75
- const containerRect = (_a = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
76
- const clientX = (0, index_js_1.getBoundedValue)(event.clientX, (_b = containerRect === null || containerRect === void 0 ? void 0 : containerRect.left) !== null && _b !== void 0 ? _b : 0, (_d = (_c = containerRect === null || containerRect === void 0 ? void 0 : containerRect.right) !== null && _c !== void 0 ? _c : ownerDocument.documentElement.clientWidth) !== null && _d !== void 0 ? _d : 0);
77
- const clientY = (0, index_js_1.getBoundedValue)(event.clientY, (_e = containerRect === null || containerRect === void 0 ? void 0 : containerRect.top) !== null && _e !== void 0 ? _e : 0, (_g = (_f = containerRect === null || containerRect === void 0 ? void 0 : containerRect.bottom) !== null && _f !== void 0 ? _f : ownerDocument.documentElement.clientHeight) !== null && _g !== void 0 ? _g : 0);
74
+ const containerRect = containerRef?.current?.getBoundingClientRect();
75
+ const clientX = (0, index_js_1.getBoundedValue)(event.clientX, containerRect?.left ?? 0, containerRect?.right ?? ownerDocument.documentElement.clientWidth ?? 0);
76
+ const clientY = (0, index_js_1.getBoundedValue)(event.clientY, containerRect?.top ?? 0, containerRect?.bottom ??
77
+ ownerDocument.documentElement.clientHeight ??
78
+ 0);
78
79
  const diffX = initialPointerX - clientX;
79
80
  const diffY = initialPointerY - clientY;
80
81
  switch (resizer) {
@@ -155,7 +156,7 @@ const Resizer = (props) => {
155
156
  if (elementRef.current) {
156
157
  ownerDocument.body.style.userSelect = originalUserSelect;
157
158
  isResizing.current = false;
158
- onResizeEnd === null || onResizeEnd === void 0 ? void 0 : onResizeEnd({
159
+ onResizeEnd?.({
159
160
  width,
160
161
  height,
161
162
  transform: `translate(${translateX}px, ${translateY}px)`,
@@ -22,7 +22,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var _a;
26
25
  Object.defineProperty(exports, "__esModule", { value: true });
27
26
  exports.useVirtualization = exports.VirtualScroll = void 0;
28
27
  /*---------------------------------------------------------------------------------------------
@@ -32,7 +31,7 @@ exports.useVirtualization = exports.VirtualScroll = void 0;
32
31
  const React = __importStar(require("react"));
33
32
  const ReactDOM = __importStar(require("react-dom"));
34
33
  const index_js_1 = require("../hooks/index.js");
35
- const unstable_batchedUpdates = (_a = ReactDOM.unstable_batchedUpdates) !== null && _a !== void 0 ? _a : ((cb) => void cb());
34
+ const unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates ?? ((cb) => void cb());
36
35
  const getScrollableParent = (element, ownerDocument = document) => {
37
36
  if (!element || element === ownerDocument.body) {
38
37
  return ownerDocument.body;
@@ -49,8 +48,7 @@ const getElementStyle = (element, prop) => {
49
48
  return getComputedStyle(element, null).getPropertyValue(prop);
50
49
  };
51
50
  const getElementHeight = (element) => {
52
- var _a;
53
- return (_a = element === null || element === void 0 ? void 0 : element.getBoundingClientRect().height) !== null && _a !== void 0 ? _a : 0;
51
+ return element?.getBoundingClientRect().height ?? 0;
54
52
  };
55
53
  const getElementHeightWithMargins = (element) => {
56
54
  if (!element) {
@@ -135,10 +133,8 @@ const useVirtualization = (props) => {
135
133
  // Used to mark when scroll container has height (updated by resize observer)
136
134
  // because before that calculations are not right
137
135
  const [isMounted, setIsMounted] = React.useState(false);
138
- const getScrollableContainer = () => {
139
- var _a, _b;
140
- return (_a = scrollContainer.current) !== null && _a !== void 0 ? _a : (_b = parentRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.scrollingElement;
141
- };
136
+ const getScrollableContainer = () => scrollContainer.current ??
137
+ parentRef.current?.ownerDocument.scrollingElement;
142
138
  const visibleChildren = React.useMemo(() => {
143
139
  const arr = [];
144
140
  const endIndex = Math.min(itemsLength, startNode + visibleNodeCount + bufferSize * 2);
@@ -148,18 +144,18 @@ const useVirtualization = (props) => {
148
144
  return arr;
149
145
  }, [itemsLength, itemRenderer, bufferSize, startNode, visibleNodeCount]);
150
146
  const updateChildHeight = React.useCallback(() => {
151
- var _a, _b, _c, _d, _e, _f;
152
147
  if (!parentRef.current || !visibleChildren.length) {
153
148
  return;
154
149
  }
155
150
  const firstChild = parentRef.current.children.item(0);
156
151
  const secondChild = parentRef.current.children.item(1);
157
152
  const lastChild = parentRef.current.children.item(parentRef.current.children.length - 1);
158
- const firstChildHeight = Number((_b = (_a = getElementHeightWithMargins(firstChild)) === null || _a === void 0 ? void 0 : _a.toFixed(2)) !== null && _b !== void 0 ? _b : 0);
153
+ const firstChildHeight = Number(getElementHeightWithMargins(firstChild)?.toFixed(2) ?? 0);
159
154
  childHeight.current = {
160
155
  first: firstChildHeight,
161
- middle: Number((_d = (_c = getElementHeightWithMargins(secondChild)) === null || _c === void 0 ? void 0 : _c.toFixed(2)) !== null && _d !== void 0 ? _d : firstChildHeight),
162
- last: Number((_f = (_e = getElementHeightWithMargins(lastChild)) === null || _e === void 0 ? void 0 : _e.toFixed(2)) !== null && _f !== void 0 ? _f : firstChildHeight),
156
+ middle: Number(getElementHeightWithMargins(secondChild)?.toFixed(2) ??
157
+ firstChildHeight),
158
+ last: Number(getElementHeightWithMargins(lastChild)?.toFixed(2) ?? firstChildHeight),
163
159
  };
164
160
  }, [visibleChildren.length]);
165
161
  const onResize = React.useCallback(({ height }) => {
@@ -177,14 +173,13 @@ const useVirtualization = (props) => {
177
173
  // Find scrollable parent
178
174
  // Needed only on init
179
175
  (0, index_js_1.useIsomorphicLayoutEffect)(() => {
180
- var _a;
181
- const scrollableParent = getScrollableParent(parentRef.current, (_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
176
+ const scrollableParent = getScrollableParent(parentRef.current, parentRef.current?.ownerDocument);
182
177
  scrollContainer.current = scrollableParent;
183
178
  resizeRef(scrollableParent);
184
179
  }, [resizeRef]);
185
180
  // Stop watching resize, when virtual scroll is unmounted
186
181
  (0, index_js_1.useIsomorphicLayoutEffect)(() => {
187
- return () => resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
182
+ return () => resizeObserver?.disconnect();
188
183
  }, [resizeObserver]);
189
184
  // Get child height when children available
190
185
  (0, index_js_1.useIsomorphicLayoutEffect)(() => updateChildHeight(), [updateChildHeight]);
@@ -211,23 +206,21 @@ const useVirtualization = (props) => {
211
206
  updateVirtualScroll();
212
207
  }, [updateVirtualScroll]);
213
208
  const removeScrollListener = React.useCallback(() => {
214
- var _a, _b;
215
209
  if (!onScrollRef.current) {
216
210
  return;
217
211
  }
218
212
  !scrollContainer.current ||
219
- scrollContainer.current === ((_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.body)
220
- ? (_b = parentRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener('scroll', onScrollRef.current)
213
+ scrollContainer.current === parentRef.current?.ownerDocument.body
214
+ ? parentRef.current?.ownerDocument.removeEventListener('scroll', onScrollRef.current)
221
215
  : scrollContainer.current.removeEventListener('scroll', onScrollRef.current);
222
216
  }, []);
223
217
  // Add event listener to the scrollable container.
224
218
  (0, index_js_1.useIsomorphicLayoutEffect)(() => {
225
- var _a, _b;
226
219
  removeScrollListener();
227
220
  onScrollRef.current = onScroll;
228
221
  if (!scrollContainer.current ||
229
- scrollContainer.current === ((_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.body)) {
230
- (_b = parentRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.addEventListener('scroll', onScroll);
222
+ scrollContainer.current === parentRef.current?.ownerDocument.body) {
223
+ parentRef.current?.ownerDocument.addEventListener('scroll', onScroll);
231
224
  }
232
225
  else {
233
226
  scrollContainer.current.addEventListener('scroll', onScroll);
@@ -1,12 +1,4 @@
1
1
  /// <reference types="react" />
2
- /**
3
- * Get the container as a child of body, or create one if it doesn't exist.
4
- * Mostly used for dynamic components like Modal or Toast.
5
- *
6
- * @param containerId id of the container to find or create
7
- * @param ownerDocument Can be changed if the container should be in a different document (e.g. in popup).
8
- */
9
- export declare const getContainer: (containerId: string, ownerDocument?: Document | undefined) => HTMLElement | undefined;
10
2
  /**
11
3
  * Get document if it is defined.
12
4
  * Used to support SSR/SSG applications.
@@ -3,31 +3,8 @@
3
3
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
6
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getTranslateValues = exports.mergeEventHandlers = exports.getWindow = exports.getDocument = exports.getContainer = void 0;
11
- const styles_js_1 = __importDefault(require("../../../styles.js"));
12
- /**
13
- * Get the container as a child of body, or create one if it doesn't exist.
14
- * Mostly used for dynamic components like Modal or Toast.
15
- *
16
- * @param containerId id of the container to find or create
17
- * @param ownerDocument Can be changed if the container should be in a different document (e.g. in popup).
18
- */
19
- const getContainer = (containerId, ownerDocument = (0, exports.getDocument)()) => {
20
- var _a, _b;
21
- let container = (_a = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.getElementById(containerId)) !== null && _a !== void 0 ? _a : undefined;
22
- if (container == null && !!ownerDocument) {
23
- container = ownerDocument.createElement('div');
24
- container.setAttribute('id', containerId);
25
- const root = (_b = ownerDocument.querySelector(`.${styles_js_1.default['iui-root']}`)) !== null && _b !== void 0 ? _b : ownerDocument.body;
26
- root.appendChild(container);
27
- }
28
- return container;
29
- };
30
- exports.getContainer = getContainer;
7
+ exports.getTranslateValues = exports.mergeEventHandlers = exports.getWindow = exports.getDocument = void 0;
31
8
  /**
32
9
  * Get document if it is defined.
33
10
  * Used to support SSR/SSG applications.
@@ -50,8 +27,8 @@ exports.getWindow = getWindow;
50
27
  */
51
28
  const mergeEventHandlers = (...callbacks) => (event) => {
52
29
  for (const cb of callbacks) {
53
- cb === null || cb === void 0 ? void 0 : cb(event);
54
- if (event === null || event === void 0 ? void 0 : event.defaultPrevented) {
30
+ cb?.(event);
31
+ if (event?.defaultPrevented) {
55
32
  return;
56
33
  }
57
34
  }
@@ -19,7 +19,7 @@ import type { PolymorphicForwardRefComponent } from '../props.js';
19
19
  *
20
20
  * @private
21
21
  */
22
- export declare const polymorphic: ((className: string, attrs?: React.SVGProps<SVGSymbolElement> | React.DetailedHTMLProps<React.ObjectHTMLAttributes<HTMLObjectElement>, HTMLObjectElement> | React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> | React.DetailedHTMLProps<React.AreaHTMLAttributes<HTMLAreaElement>, HTMLAreaElement> | React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement> | React.DetailedHTMLProps<React.BaseHTMLAttributes<HTMLBaseElement>, HTMLBaseElement> | React.DetailedHTMLProps<React.BlockquoteHTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLBodyElement>, HTMLBodyElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLBRElement>, HTMLBRElement> | React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> | React.DetailedHTMLProps<React.CanvasHTMLAttributes<HTMLCanvasElement>, HTMLCanvasElement> | React.DetailedHTMLProps<React.ColHTMLAttributes<HTMLTableColElement>, HTMLTableColElement> | React.DetailedHTMLProps<React.ColgroupHTMLAttributes<HTMLTableColElement>, HTMLTableColElement> | React.DetailedHTMLProps<React.DataHTMLAttributes<HTMLDataElement>, HTMLDataElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLDataListElement>, HTMLDataListElement> | React.DetailedHTMLProps<React.DelHTMLAttributes<HTMLModElement>, HTMLModElement> | React.DetailedHTMLProps<React.DetailsHTMLAttributes<HTMLDetailsElement>, HTMLDetailsElement> | React.DetailedHTMLProps<React.DialogHTMLAttributes<HTMLDialogElement>, HTMLDialogElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLDListElement>, HTMLDListElement> | React.DetailedHTMLProps<React.EmbedHTMLAttributes<HTMLEmbedElement>, HTMLEmbedElement> | React.DetailedHTMLProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement> | React.DetailedHTMLProps<React.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadElement>, HTMLHeadElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLHRElement>, HTMLHRElement> | React.DetailedHTMLProps<React.HtmlHTMLAttributes<HTMLHtmlElement>, HTMLHtmlElement> | React.DetailedHTMLProps<React.IframeHTMLAttributes<HTMLIFrameElement>, HTMLIFrameElement> | React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> | React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | React.DetailedHTMLProps<React.InsHTMLAttributes<HTMLModElement>, HTMLModElement> | React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLLegendElement>, HTMLLegendElement> | React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement> | React.DetailedHTMLProps<React.LinkHTMLAttributes<HTMLLinkElement>, HTMLLinkElement> | React.DetailedHTMLProps<React.MapHTMLAttributes<HTMLMapElement>, HTMLMapElement> | React.DetailedHTMLProps<React.MenuHTMLAttributes<HTMLElement>, HTMLElement> | React.DetailedHTMLProps<React.MetaHTMLAttributes<HTMLMetaElement>, HTMLMetaElement> | React.DetailedHTMLProps<React.MeterHTMLAttributes<HTMLMeterElement>, HTMLMeterElement> | React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement> | React.DetailedHTMLProps<React.OptgroupHTMLAttributes<HTMLOptGroupElement>, HTMLOptGroupElement> | React.DetailedHTMLProps<React.OptionHTMLAttributes<HTMLOptionElement>, HTMLOptionElement> | React.DetailedHTMLProps<React.OutputHTMLAttributes<HTMLOutputElement>, HTMLOutputElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement> | React.DetailedHTMLProps<React.ParamHTMLAttributes<HTMLParamElement>, HTMLParamElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLPreElement>, HTMLPreElement> | React.DetailedHTMLProps<React.ProgressHTMLAttributes<HTMLProgressElement>, HTMLProgressElement> | React.DetailedHTMLProps<React.QuoteHTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement> | React.DetailedHTMLProps<React.ScriptHTMLAttributes<HTMLScriptElement>, HTMLScriptElement> | React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement> | React.DetailedHTMLProps<React.SlotHTMLAttributes<HTMLSlotElement>, HTMLSlotElement> | React.DetailedHTMLProps<React.SourceHTMLAttributes<HTMLSourceElement>, HTMLSourceElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement> | React.DetailedHTMLProps<React.StyleHTMLAttributes<HTMLStyleElement>, HTMLStyleElement> | React.DetailedHTMLProps<React.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement> | React.DetailedHTMLProps<React.TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLTemplateElement>, HTMLTemplateElement> | React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement> | React.DetailedHTMLProps<React.ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement> | React.DetailedHTMLProps<React.TimeHTMLAttributes<HTMLTimeElement>, HTMLTimeElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLTitleElement>, HTMLTitleElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement> | React.DetailedHTMLProps<React.TrackHTMLAttributes<HTMLTrackElement>, HTMLTrackElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement> | React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement> | React.SVGProps<SVGTextElement> | React.SVGProps<SVGElement> | React.SVGProps<SVGCircleElement> | React.SVGProps<SVGClipPathElement> | React.SVGProps<SVGDefsElement> | React.SVGProps<SVGDescElement> | React.SVGProps<SVGEllipseElement> | React.SVGProps<SVGFEBlendElement> | React.SVGProps<SVGFEColorMatrixElement> | React.SVGProps<SVGFEComponentTransferElement> | React.SVGProps<SVGFECompositeElement> | React.SVGProps<SVGFEConvolveMatrixElement> | React.SVGProps<SVGFEDiffuseLightingElement> | React.SVGProps<SVGFEDisplacementMapElement> | React.SVGProps<SVGFEDistantLightElement> | React.SVGProps<SVGFEDropShadowElement> | React.SVGProps<SVGFEFloodElement> | React.SVGProps<SVGFEFuncAElement> | React.SVGProps<SVGFEFuncBElement> | React.SVGProps<SVGFEFuncGElement> | React.SVGProps<SVGFEFuncRElement> | React.SVGProps<SVGFEGaussianBlurElement> | React.SVGProps<SVGFEImageElement> | React.SVGProps<SVGFEMergeElement> | React.SVGProps<SVGFEMergeNodeElement> | React.SVGProps<SVGFEMorphologyElement> | React.SVGProps<SVGFEOffsetElement> | React.SVGProps<SVGFEPointLightElement> | React.SVGProps<SVGFESpecularLightingElement> | React.SVGProps<SVGFESpotLightElement> | React.SVGProps<SVGFETileElement> | React.SVGProps<SVGFETurbulenceElement> | React.SVGProps<SVGFilterElement> | React.SVGProps<SVGForeignObjectElement> | React.SVGProps<SVGGElement> | React.SVGProps<SVGImageElement> | React.SVGProps<SVGLineElement> | React.SVGProps<SVGLinearGradientElement> | React.SVGProps<SVGMarkerElement> | React.SVGProps<SVGMaskElement> | React.SVGProps<SVGMetadataElement> | React.SVGProps<SVGPathElement> | React.SVGProps<SVGPatternElement> | React.SVGProps<SVGPolygonElement> | React.SVGProps<SVGPolylineElement> | React.SVGProps<SVGRadialGradientElement> | React.SVGProps<SVGRectElement> | React.SVGProps<SVGStopElement> | React.SVGProps<SVGSVGElement> | React.SVGProps<SVGSwitchElement> | React.SVGProps<SVGTextPathElement> | React.SVGProps<SVGTSpanElement> | React.SVGProps<SVGUseElement> | React.SVGProps<SVGViewElement> | React.DetailedHTMLProps<React.KeygenHTMLAttributes<HTMLElement>, HTMLElement> | React.DetailedHTMLProps<React.WebViewHTMLAttributes<HTMLWebViewElement>, HTMLWebViewElement> | undefined) => PolymorphicForwardRefComponent<keyof JSX.IntrinsicElements, {}>) & {
22
+ export declare const polymorphic: ((className: string, attrs?: React.SVGProps<SVGSymbolElement> | React.DetailedHTMLProps<React.ObjectHTMLAttributes<HTMLObjectElement>, HTMLObjectElement> | React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> | React.DetailedHTMLProps<React.AreaHTMLAttributes<HTMLAreaElement>, HTMLAreaElement> | React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement> | React.DetailedHTMLProps<React.BaseHTMLAttributes<HTMLBaseElement>, HTMLBaseElement> | React.DetailedHTMLProps<React.BlockquoteHTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLBodyElement>, HTMLBodyElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLBRElement>, HTMLBRElement> | React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> | React.DetailedHTMLProps<React.CanvasHTMLAttributes<HTMLCanvasElement>, HTMLCanvasElement> | React.DetailedHTMLProps<React.ColHTMLAttributes<HTMLTableColElement>, HTMLTableColElement> | React.DetailedHTMLProps<React.ColgroupHTMLAttributes<HTMLTableColElement>, HTMLTableColElement> | React.DetailedHTMLProps<React.DataHTMLAttributes<HTMLDataElement>, HTMLDataElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLDataListElement>, HTMLDataListElement> | React.DetailedHTMLProps<React.DelHTMLAttributes<HTMLModElement>, HTMLModElement> | React.DetailedHTMLProps<React.DetailsHTMLAttributes<HTMLDetailsElement>, HTMLDetailsElement> | React.DetailedHTMLProps<React.DialogHTMLAttributes<HTMLDialogElement>, HTMLDialogElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLDListElement>, HTMLDListElement> | React.DetailedHTMLProps<React.EmbedHTMLAttributes<HTMLEmbedElement>, HTMLEmbedElement> | React.DetailedHTMLProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement> | React.DetailedHTMLProps<React.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadElement>, HTMLHeadElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLHRElement>, HTMLHRElement> | React.DetailedHTMLProps<React.HtmlHTMLAttributes<HTMLHtmlElement>, HTMLHtmlElement> | React.DetailedHTMLProps<React.IframeHTMLAttributes<HTMLIFrameElement>, HTMLIFrameElement> | React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> | React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | React.DetailedHTMLProps<React.InsHTMLAttributes<HTMLModElement>, HTMLModElement> | React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLLegendElement>, HTMLLegendElement> | React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement> | React.DetailedHTMLProps<React.LinkHTMLAttributes<HTMLLinkElement>, HTMLLinkElement> | React.DetailedHTMLProps<React.MapHTMLAttributes<HTMLMapElement>, HTMLMapElement> | React.DetailedHTMLProps<React.MenuHTMLAttributes<HTMLElement>, HTMLElement> | React.DetailedHTMLProps<React.MetaHTMLAttributes<HTMLMetaElement>, HTMLMetaElement> | React.DetailedHTMLProps<React.MeterHTMLAttributes<HTMLMeterElement>, HTMLMeterElement> | React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement> | React.DetailedHTMLProps<React.OptgroupHTMLAttributes<HTMLOptGroupElement>, HTMLOptGroupElement> | React.DetailedHTMLProps<React.OptionHTMLAttributes<HTMLOptionElement>, HTMLOptionElement> | React.DetailedHTMLProps<React.OutputHTMLAttributes<HTMLOutputElement>, HTMLOutputElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement> | React.DetailedHTMLProps<React.ParamHTMLAttributes<HTMLParamElement>, HTMLParamElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLPreElement>, HTMLPreElement> | React.DetailedHTMLProps<React.ProgressHTMLAttributes<HTMLProgressElement>, HTMLProgressElement> | React.DetailedHTMLProps<React.QuoteHTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement> | React.DetailedHTMLProps<React.ScriptHTMLAttributes<HTMLScriptElement>, HTMLScriptElement> | React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement> | React.DetailedHTMLProps<React.SlotHTMLAttributes<HTMLSlotElement>, HTMLSlotElement> | React.DetailedHTMLProps<React.SourceHTMLAttributes<HTMLSourceElement>, HTMLSourceElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement> | React.DetailedHTMLProps<React.StyleHTMLAttributes<HTMLStyleElement>, HTMLStyleElement> | React.DetailedHTMLProps<React.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement> | React.DetailedHTMLProps<React.TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLTemplateElement>, HTMLTemplateElement> | React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement> | React.DetailedHTMLProps<React.ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement> | React.DetailedHTMLProps<React.TimeHTMLAttributes<HTMLTimeElement>, HTMLTimeElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLTitleElement>, HTMLTitleElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement> | React.DetailedHTMLProps<React.TrackHTMLAttributes<HTMLTrackElement>, HTMLTrackElement> | React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement> | React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement> | React.SVGProps<SVGElement> | React.SVGProps<SVGCircleElement> | React.SVGProps<SVGClipPathElement> | React.SVGProps<SVGDefsElement> | React.SVGProps<SVGDescElement> | React.SVGProps<SVGEllipseElement> | React.SVGProps<SVGFEBlendElement> | React.SVGProps<SVGFEColorMatrixElement> | React.SVGProps<SVGFEComponentTransferElement> | React.SVGProps<SVGFECompositeElement> | React.SVGProps<SVGFEConvolveMatrixElement> | React.SVGProps<SVGFEDiffuseLightingElement> | React.SVGProps<SVGFEDisplacementMapElement> | React.SVGProps<SVGFEDistantLightElement> | React.SVGProps<SVGFEDropShadowElement> | React.SVGProps<SVGFEFloodElement> | React.SVGProps<SVGFEFuncAElement> | React.SVGProps<SVGFEFuncBElement> | React.SVGProps<SVGFEFuncGElement> | React.SVGProps<SVGFEFuncRElement> | React.SVGProps<SVGFEGaussianBlurElement> | React.SVGProps<SVGFEImageElement> | React.SVGProps<SVGFEMergeElement> | React.SVGProps<SVGFEMergeNodeElement> | React.SVGProps<SVGFEMorphologyElement> | React.SVGProps<SVGFEOffsetElement> | React.SVGProps<SVGFEPointLightElement> | React.SVGProps<SVGFESpecularLightingElement> | React.SVGProps<SVGFESpotLightElement> | React.SVGProps<SVGFETileElement> | React.SVGProps<SVGFETurbulenceElement> | React.SVGProps<SVGFilterElement> | React.SVGProps<SVGForeignObjectElement> | React.SVGProps<SVGGElement> | React.SVGProps<SVGImageElement> | React.SVGProps<SVGLineElement> | React.SVGProps<SVGLinearGradientElement> | React.SVGProps<SVGMarkerElement> | React.SVGProps<SVGMaskElement> | React.SVGProps<SVGMetadataElement> | React.SVGProps<SVGPathElement> | React.SVGProps<SVGPatternElement> | React.SVGProps<SVGPolygonElement> | React.SVGProps<SVGPolylineElement> | React.SVGProps<SVGRadialGradientElement> | React.SVGProps<SVGRectElement> | React.SVGProps<SVGStopElement> | React.SVGProps<SVGSVGElement> | React.SVGProps<SVGSwitchElement> | React.SVGProps<SVGTextElement> | React.SVGProps<SVGTextPathElement> | React.SVGProps<SVGTSpanElement> | React.SVGProps<SVGUseElement> | React.SVGProps<SVGViewElement> | React.DetailedHTMLProps<React.KeygenHTMLAttributes<HTMLElement>, HTMLElement> | React.DetailedHTMLProps<React.WebViewHTMLAttributes<HTMLWebViewElement>, HTMLWebViewElement> | undefined) => PolymorphicForwardRefComponent<keyof JSX.IntrinsicElements, {}>) & {
23
23
  a: (className: string, attrs?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> | undefined) => PolymorphicForwardRefComponent<"a", {}>;
24
24
  abbr: (className: string, attrs?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> | undefined) => PolymorphicForwardRefComponent<"abbr", {}>;
25
25
  address: (className: string, attrs?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> | undefined) => PolymorphicForwardRefComponent<"address", {}>;
@@ -40,7 +40,7 @@ const _base = (defaultElement) => {
40
40
  const Comp = React.forwardRef(({ as = defaultElement, ...props }, ref) => {
41
41
  const Element = as || 'div'; // eslint-disable-line
42
42
  (0, useGlobals_js_1.useGlobals)();
43
- return (React.createElement(Element, { ref: ref, ...attrs, ...props, className: getScopedClassName((0, classnames_1.default)(className, attrs === null || attrs === void 0 ? void 0 : attrs.className, props.className)) }));
43
+ return (React.createElement(Element, { ref: ref, ...attrs, ...props, className: getScopedClassName((0, classnames_1.default)(className, attrs?.className, props.className)) }));
44
44
  });
45
45
  Comp.displayName = getDisplayNameFromClass(className);
46
46
  return Comp;
@@ -9,5 +9,5 @@ const dom_js_1 = require("./dom.js");
9
9
  /**
10
10
  * Returns true if the :has selector is supported in the browser
11
11
  */
12
- const supportsHas = () => { var _a, _b, _c; return (_c = (_b = (_a = (0, dom_js_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, 'selector(:has(+ *))'); };
12
+ const supportsHas = () => (0, dom_js_1.getWindow)()?.CSS?.supports?.('selector(:has(+ *))');
13
13
  exports.supportsHas = supportsHas;
@@ -9,6 +9,5 @@ export * from './useMediaQuery.js';
9
9
  export * from './useSafeContext.js';
10
10
  export * from './useLatestRef.js';
11
11
  export * from './useIsomorphicLayoutEffect.js';
12
- export * from './useIsThemeAlreadySet.js';
13
12
  export * from './useIsClient.js';
14
13
  export * from './useId.js';
@@ -29,6 +29,5 @@ __exportStar(require("./useMediaQuery.js"), exports);
29
29
  __exportStar(require("./useSafeContext.js"), exports);
30
30
  __exportStar(require("./useLatestRef.js"), exports);
31
31
  __exportStar(require("./useIsomorphicLayoutEffect.js"), exports);
32
- __exportStar(require("./useIsThemeAlreadySet.js"), exports);
33
32
  __exportStar(require("./useIsClient.js"), exports);
34
33
  __exportStar(require("./useId.js"), exports);
@@ -57,7 +57,7 @@ const useContainerWidth = (watchResizes = true) => {
57
57
  const updateWidth = React.useCallback(({ width }) => setContentWidth(width), []);
58
58
  const [resizeRef, resizeObserver] = (0, useResizeObserver_js_1.useResizeObserver)(updateWidth);
59
59
  if (!watchResizes) {
60
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
60
+ resizeObserver?.disconnect();
61
61
  }
62
62
  const refs = (0, useMergedRefs_js_1.useMergedRefs)(ref, watchResizes ? resizeRef : undefined);
63
63
  return [refs, contentWidth];
@@ -33,13 +33,12 @@ const index_js_1 = require("../functions/index.js");
33
33
  const useEventListener_js_1 = require("./useEventListener.js");
34
34
  const useResizeObserver_js_1 = require("./useResizeObserver.js");
35
35
  const getContainerRect = (containerRef) => {
36
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
37
- const containerRect = (_a = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
36
+ const containerRect = containerRef?.current?.getBoundingClientRect();
38
37
  return {
39
- top: (_b = containerRect === null || containerRect === void 0 ? void 0 : containerRect.top) !== null && _b !== void 0 ? _b : 0,
40
- right: (_e = (_c = containerRect === null || containerRect === void 0 ? void 0 : containerRect.right) !== null && _c !== void 0 ? _c : (_d = (0, index_js_1.getWindow)()) === null || _d === void 0 ? void 0 : _d.innerWidth) !== null && _e !== void 0 ? _e : 0,
41
- bottom: (_h = (_f = containerRect === null || containerRect === void 0 ? void 0 : containerRect.bottom) !== null && _f !== void 0 ? _f : (_g = (0, index_js_1.getWindow)()) === null || _g === void 0 ? void 0 : _g.innerHeight) !== null && _h !== void 0 ? _h : 0,
42
- left: (_j = containerRect === null || containerRect === void 0 ? void 0 : containerRect.left) !== null && _j !== void 0 ? _j : 0,
38
+ top: containerRect?.top ?? 0,
39
+ right: containerRect?.right ?? (0, index_js_1.getWindow)()?.innerWidth ?? 0,
40
+ bottom: containerRect?.bottom ?? (0, index_js_1.getWindow)()?.innerHeight ?? 0,
41
+ left: containerRect?.left ?? 0,
43
42
  };
44
43
  };
45
44
  /**
@@ -57,11 +56,10 @@ const useDragAndDrop = (elementRef, containerRef, enabled = true) => {
57
56
  const translateY = React.useRef();
58
57
  const containerRectRef = React.useRef(getContainerRect(containerRef));
59
58
  const adjustTransform = React.useCallback(() => {
60
- var _a;
61
59
  if (!elementRef.current || !enabled) {
62
60
  return;
63
61
  }
64
- const { top, right, bottom, left } = (_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
62
+ const { top, right, bottom, left } = elementRef.current?.getBoundingClientRect();
65
63
  let [newTranslateX, newTranslateY] = (0, index_js_1.getTranslateValues)(elementRef.current);
66
64
  containerRectRef.current = getContainerRect(containerRef);
67
65
  if (bottom > containerRectRef.current.bottom) {
@@ -81,10 +79,10 @@ const useDragAndDrop = (elementRef, containerRef, enabled = true) => {
81
79
  elementRef.current.style.transform = `translate(${newTranslateX}px, ${newTranslateY}px)`;
82
80
  }, [containerRef, elementRef, enabled]);
83
81
  const [resizeRef, resizeObserver] = (0, useResizeObserver_js_1.useResizeObserver)(adjustTransform);
84
- resizeRef(containerRef === null || containerRef === void 0 ? void 0 : containerRef.current);
82
+ resizeRef(containerRef?.current);
85
83
  React.useEffect(() => {
86
84
  return () => {
87
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
85
+ resizeObserver?.disconnect();
88
86
  };
89
87
  }, [resizeObserver]);
90
88
  (0, useEventListener_js_1.useEventListener)('resize', () => {
@@ -51,7 +51,7 @@ const useEventListener = (eventName, handler, element) => {
51
51
  if (!element) {
52
52
  return;
53
53
  }
54
- const eventListener = (event) => { var _a; return (_a = savedHandler.current) === null || _a === void 0 ? void 0 : _a.call(savedHandler, event); };
54
+ const eventListener = (event) => savedHandler.current?.(event);
55
55
  element.addEventListener(eventName, eventListener);
56
56
  return () => {
57
57
  element.removeEventListener(eventName, eventListener);
@@ -1,8 +1,15 @@
1
+ import * as React from 'react';
2
+ import { ThemeContext } from '../../ThemeProvider/ThemeContext.js';
1
3
  /**
2
4
  * Hook used in every component for any shared setup and side effects.
5
+ * Returns the nearest ThemeContext.
3
6
  *
4
7
  * @private
5
8
  */
6
- export declare const useGlobals: () => void;
9
+ export declare const useGlobals: () => {
10
+ theme?: import("../../index.js").ThemeType | undefined;
11
+ themeOptions?: import("../../ThemeProvider/ThemeProvider.js").ThemeOptions | undefined;
12
+ portalContainerRef?: React.RefObject<HTMLElement> | undefined;
13
+ } | undefined;
7
14
  /** Shows console error if ThemeProvider is not used */
8
- export declare const useThemeProviderWarning: () => void;
15
+ export declare const useThemeProviderWarning: (themeContext: React.ContextType<typeof ThemeContext>) => void;
@@ -35,25 +35,27 @@ let isDev = false;
35
35
  try {
36
36
  isDev = process.env.NODE_ENV !== 'production';
37
37
  }
38
- catch (_a) { }
38
+ catch { }
39
39
  const didLogWarning = {
40
40
  fontSize: false,
41
41
  themeProvider: false,
42
42
  };
43
43
  /**
44
44
  * Hook used in every component for any shared setup and side effects.
45
+ * Returns the nearest ThemeContext.
45
46
  *
46
47
  * @private
47
48
  */
48
49
  const useGlobals = () => {
49
- (0, exports.useThemeProviderWarning)();
50
+ const themeContext = React.useContext(ThemeContext_js_1.ThemeContext);
51
+ (0, exports.useThemeProviderWarning)(themeContext);
50
52
  useRootFontSizeWarning();
53
+ return themeContext;
51
54
  };
52
55
  exports.useGlobals = useGlobals;
53
56
  // ----------------------------------------------------------------------------
54
57
  /** Shows console error if ThemeProvider is not used */
55
- const useThemeProviderWarning = () => {
56
- const themeContext = React.useContext(ThemeContext_js_1.ThemeContext);
58
+ const useThemeProviderWarning = (themeContext) => {
57
59
  React.useEffect(() => {
58
60
  if (isDev && !didLogWarning.themeProvider && !themeContext) {
59
61
  console.error('iTwinUI components must be used within a tree wrapped in a ThemeProvider.');
@@ -26,7 +26,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  __setModuleDefault(result, mod);
27
27
  return result;
28
28
  };
29
- var _a;
30
29
  Object.defineProperty(exports, "__esModule", { value: true });
31
30
  exports.useId = void 0;
32
31
  const React = __importStar(require("react"));
@@ -43,4 +42,4 @@ exports.useId = useId;
43
42
  // This is needed to avoid bundlers trying to import non-existing export.
44
43
  // Read more: https://github.com/webpack/webpack/issues/14814
45
44
  const _React = React;
46
- const useUniqueValue = (_a = _React.useId) !== null && _a !== void 0 ? _a : (() => (0, numbers_js_1.getRandomValue)(10));
45
+ const useUniqueValue = _React.useId ?? (() => (0, numbers_js_1.getRandomValue)(10));
@@ -46,10 +46,9 @@ const useIntersection = (onIntersect, options = {}, once = true) => {
46
46
  const { root, rootMargin, threshold } = options;
47
47
  const cleanupRef = React.useRef(() => { });
48
48
  const setRef = React.useCallback((node) => {
49
- var _a, _b;
50
- (_a = cleanupRef.current) === null || _a === void 0 ? void 0 : _a.call(cleanupRef);
49
+ cleanupRef.current?.();
51
50
  cleanupRef.current = () => { }; // ensure it doesn't try to clean up again
52
- if (!node || !((_b = (0, dom_js_1.getWindow)()) === null || _b === void 0 ? void 0 : _b.IntersectionObserver)) {
51
+ if (!node || !(0, dom_js_1.getWindow)()?.IntersectionObserver) {
53
52
  return;
54
53
  }
55
54
  const observer = new IntersectionObserver(([entry], obs) => {
@@ -34,27 +34,25 @@ const useIsomorphicLayoutEffect_js_1 = require("./useIsomorphicLayoutEffect.js")
34
34
  const useMediaQuery = (queryString) => {
35
35
  const [matches, setMatches] = React.useState();
36
36
  (0, useIsomorphicLayoutEffect_js_1.useIsomorphicLayoutEffect)(() => {
37
- var _a, _b, _c;
38
- const mediaQueryList = (_b = (_a = (0, index_js_1.getWindow)()) === null || _a === void 0 ? void 0 : _a.matchMedia) === null || _b === void 0 ? void 0 : _b.call(_a, queryString);
37
+ const mediaQueryList = (0, index_js_1.getWindow)()?.matchMedia?.(queryString);
39
38
  const handleChange = ({ matches }) => setMatches(matches);
40
39
  if (mediaQueryList != undefined) {
41
40
  setMatches(mediaQueryList.matches);
42
41
  try {
43
42
  mediaQueryList.addEventListener('change', handleChange);
44
43
  }
45
- catch (_d) {
44
+ catch {
46
45
  // Safari 13 fallback
47
- (_c = mediaQueryList.addListener) === null || _c === void 0 ? void 0 : _c.call(mediaQueryList, handleChange);
46
+ mediaQueryList.addListener?.(handleChange);
48
47
  }
49
48
  }
50
49
  return () => {
51
- var _a;
52
50
  try {
53
- mediaQueryList === null || mediaQueryList === void 0 ? void 0 : mediaQueryList.removeEventListener('change', handleChange);
51
+ mediaQueryList?.removeEventListener('change', handleChange);
54
52
  }
55
- catch (_b) {
53
+ catch {
56
54
  // Safari 13 fallback
57
- (_a = mediaQueryList === null || mediaQueryList === void 0 ? void 0 : mediaQueryList.removeListener) === null || _a === void 0 ? void 0 : _a.call(mediaQueryList, handleChange);
55
+ mediaQueryList?.removeListener?.(handleChange);
58
56
  }
59
57
  };
60
58
  }, [queryString]);
@@ -75,9 +75,8 @@ const useOverflow = (items, disabled = false, orientation = 'horizontal') => {
75
75
  }, [containerSize, disabled, items]);
76
76
  const mergedRefs = (0, useMergedRefs_js_1.useMergedRefs)(containerRef, resizeRef);
77
77
  (0, useIsomorphicLayoutEffect_js_1.useIsomorphicLayoutEffect)(() => {
78
- var _a;
79
78
  if (!containerRef.current || disabled) {
80
- (_a = resizeObserverRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
79
+ resizeObserverRef.current?.disconnect();
81
80
  return;
82
81
  }
83
82
  const dimension = orientation === 'horizontal' ? 'Width' : 'Height';
@@ -45,14 +45,13 @@ const dom_js_1 = require("../functions/dom.js");
45
45
  const useResizeObserver = (onResize) => {
46
46
  const resizeObserver = React.useRef();
47
47
  const elementRef = React.useCallback((element) => {
48
- var _a, _b, _c;
49
- if (!((_a = (0, dom_js_1.getWindow)()) === null || _a === void 0 ? void 0 : _a.ResizeObserver)) {
48
+ if (!(0, dom_js_1.getWindow)()?.ResizeObserver) {
50
49
  return;
51
50
  }
52
- (_b = resizeObserver.current) === null || _b === void 0 ? void 0 : _b.disconnect();
51
+ resizeObserver.current?.disconnect();
53
52
  if (element) {
54
53
  resizeObserver.current = new ResizeObserver(([{ contentRect }]) => onResize(contentRect));
55
- (_c = resizeObserver.current) === null || _c === void 0 ? void 0 : _c.observe(element);
54
+ resizeObserver.current?.observe(element);
56
55
  }
57
56
  }, [onResize]);
58
57
  return [elementRef, resizeObserver.current];
package/cjs/styles.js CHANGED
@@ -6,10 +6,8 @@ const styles = {
6
6
  "iui-root-background": "_iui3-root-background",
7
7
  "iui-alert": "_iui3-alert",
8
8
  "iui-alert-link": "_iui3-alert-link",
9
- "iui-alert-button": "_iui3-alert-button",
10
- "iui-alert-icon": "_iui3-alert-icon",
9
+ "iui-button": "_iui3-button",
11
10
  "iui-alert-message": "_iui3-alert-message",
12
- "iui-alert-button-icon": "_iui3-alert-button-icon",
13
11
  "iui-anchor": "_iui3-anchor",
14
12
  "iui-anchor-external": "_iui3-anchor-external",
15
13
  "iui-avatar": "_iui3-avatar",
@@ -38,7 +36,6 @@ const styles = {
38
36
  "iui-breadcrumbs-list": "_iui3-breadcrumbs-list",
39
37
  "iui-breadcrumbs-item": "_iui3-breadcrumbs-item",
40
38
  "iui-breadcrumbs-item-overrides": "_iui3-breadcrumbs-item-overrides",
41
- "iui-button": "_iui3-button",
42
39
  "iui-breadcrumbs-text": "_iui3-breadcrumbs-text",
43
40
  "iui-breadcrumbs-button": "_iui3-breadcrumbs-button",
44
41
  "iui-breadcrumbs-separator": "_iui3-breadcrumbs-separator",