@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
@@ -1,4 +1,3 @@
1
- var _a;
2
1
  /*---------------------------------------------------------------------------------------------
3
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -6,7 +5,7 @@ var _a;
6
5
  import * as React from 'react';
7
6
  import * as ReactDOM from 'react-dom';
8
7
  import { mergeRefs, useResizeObserver, useIsomorphicLayoutEffect, } from '../hooks/index.js';
9
- const unstable_batchedUpdates = (_a = ReactDOM.unstable_batchedUpdates) !== null && _a !== void 0 ? _a : ((cb) => void cb());
8
+ const unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates ?? ((cb) => void cb());
10
9
  const getScrollableParent = (element, ownerDocument = document) => {
11
10
  if (!element || element === ownerDocument.body) {
12
11
  return ownerDocument.body;
@@ -23,8 +22,7 @@ const getElementStyle = (element, prop) => {
23
22
  return getComputedStyle(element, null).getPropertyValue(prop);
24
23
  };
25
24
  const getElementHeight = (element) => {
26
- var _a;
27
- return (_a = element === null || element === void 0 ? void 0 : element.getBoundingClientRect().height) !== null && _a !== void 0 ? _a : 0;
25
+ return element?.getBoundingClientRect().height ?? 0;
28
26
  };
29
27
  const getElementHeightWithMargins = (element) => {
30
28
  if (!element) {
@@ -109,10 +107,8 @@ export const useVirtualization = (props) => {
109
107
  // Used to mark when scroll container has height (updated by resize observer)
110
108
  // because before that calculations are not right
111
109
  const [isMounted, setIsMounted] = React.useState(false);
112
- const getScrollableContainer = () => {
113
- var _a, _b;
114
- return (_a = scrollContainer.current) !== null && _a !== void 0 ? _a : (_b = parentRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.scrollingElement;
115
- };
110
+ const getScrollableContainer = () => scrollContainer.current ??
111
+ parentRef.current?.ownerDocument.scrollingElement;
116
112
  const visibleChildren = React.useMemo(() => {
117
113
  const arr = [];
118
114
  const endIndex = Math.min(itemsLength, startNode + visibleNodeCount + bufferSize * 2);
@@ -122,18 +118,18 @@ export const useVirtualization = (props) => {
122
118
  return arr;
123
119
  }, [itemsLength, itemRenderer, bufferSize, startNode, visibleNodeCount]);
124
120
  const updateChildHeight = React.useCallback(() => {
125
- var _a, _b, _c, _d, _e, _f;
126
121
  if (!parentRef.current || !visibleChildren.length) {
127
122
  return;
128
123
  }
129
124
  const firstChild = parentRef.current.children.item(0);
130
125
  const secondChild = parentRef.current.children.item(1);
131
126
  const lastChild = parentRef.current.children.item(parentRef.current.children.length - 1);
132
- const firstChildHeight = Number((_b = (_a = getElementHeightWithMargins(firstChild)) === null || _a === void 0 ? void 0 : _a.toFixed(2)) !== null && _b !== void 0 ? _b : 0);
127
+ const firstChildHeight = Number(getElementHeightWithMargins(firstChild)?.toFixed(2) ?? 0);
133
128
  childHeight.current = {
134
129
  first: firstChildHeight,
135
- middle: Number((_d = (_c = getElementHeightWithMargins(secondChild)) === null || _c === void 0 ? void 0 : _c.toFixed(2)) !== null && _d !== void 0 ? _d : firstChildHeight),
136
- last: Number((_f = (_e = getElementHeightWithMargins(lastChild)) === null || _e === void 0 ? void 0 : _e.toFixed(2)) !== null && _f !== void 0 ? _f : firstChildHeight),
130
+ middle: Number(getElementHeightWithMargins(secondChild)?.toFixed(2) ??
131
+ firstChildHeight),
132
+ last: Number(getElementHeightWithMargins(lastChild)?.toFixed(2) ?? firstChildHeight),
137
133
  };
138
134
  }, [visibleChildren.length]);
139
135
  const onResize = React.useCallback(({ height }) => {
@@ -151,14 +147,13 @@ export const useVirtualization = (props) => {
151
147
  // Find scrollable parent
152
148
  // Needed only on init
153
149
  useIsomorphicLayoutEffect(() => {
154
- var _a;
155
- const scrollableParent = getScrollableParent(parentRef.current, (_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument);
150
+ const scrollableParent = getScrollableParent(parentRef.current, parentRef.current?.ownerDocument);
156
151
  scrollContainer.current = scrollableParent;
157
152
  resizeRef(scrollableParent);
158
153
  }, [resizeRef]);
159
154
  // Stop watching resize, when virtual scroll is unmounted
160
155
  useIsomorphicLayoutEffect(() => {
161
- return () => resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
156
+ return () => resizeObserver?.disconnect();
162
157
  }, [resizeObserver]);
163
158
  // Get child height when children available
164
159
  useIsomorphicLayoutEffect(() => updateChildHeight(), [updateChildHeight]);
@@ -185,23 +180,21 @@ export const useVirtualization = (props) => {
185
180
  updateVirtualScroll();
186
181
  }, [updateVirtualScroll]);
187
182
  const removeScrollListener = React.useCallback(() => {
188
- var _a, _b;
189
183
  if (!onScrollRef.current) {
190
184
  return;
191
185
  }
192
186
  !scrollContainer.current ||
193
- scrollContainer.current === ((_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.body)
194
- ? (_b = parentRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener('scroll', onScrollRef.current)
187
+ scrollContainer.current === parentRef.current?.ownerDocument.body
188
+ ? parentRef.current?.ownerDocument.removeEventListener('scroll', onScrollRef.current)
195
189
  : scrollContainer.current.removeEventListener('scroll', onScrollRef.current);
196
190
  }, []);
197
191
  // Add event listener to the scrollable container.
198
192
  useIsomorphicLayoutEffect(() => {
199
- var _a, _b;
200
193
  removeScrollListener();
201
194
  onScrollRef.current = onScroll;
202
195
  if (!scrollContainer.current ||
203
- scrollContainer.current === ((_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.body)) {
204
- (_b = parentRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.addEventListener('scroll', onScroll);
196
+ scrollContainer.current === parentRef.current?.ownerDocument.body) {
197
+ parentRef.current?.ownerDocument.addEventListener('scroll', onScroll);
205
198
  }
206
199
  else {
207
200
  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.
@@ -2,25 +2,6 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import styles from '../../../styles.js';
6
- /**
7
- * Get the container as a child of body, or create one if it doesn't exist.
8
- * Mostly used for dynamic components like Modal or Toast.
9
- *
10
- * @param containerId id of the container to find or create
11
- * @param ownerDocument Can be changed if the container should be in a different document (e.g. in popup).
12
- */
13
- export const getContainer = (containerId, ownerDocument = getDocument()) => {
14
- var _a, _b;
15
- let container = (_a = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.getElementById(containerId)) !== null && _a !== void 0 ? _a : undefined;
16
- if (container == null && !!ownerDocument) {
17
- container = ownerDocument.createElement('div');
18
- container.setAttribute('id', containerId);
19
- const root = (_b = ownerDocument.querySelector(`.${styles['iui-root']}`)) !== null && _b !== void 0 ? _b : ownerDocument.body;
20
- root.appendChild(container);
21
- }
22
- return container;
23
- };
24
5
  /**
25
6
  * Get document if it is defined.
26
7
  * Used to support SSR/SSG applications.
@@ -41,8 +22,8 @@ export const getWindow = () => {
41
22
  */
42
23
  export const mergeEventHandlers = (...callbacks) => (event) => {
43
24
  for (const cb of callbacks) {
44
- cb === null || cb === void 0 ? void 0 : cb(event);
45
- if (event === null || event === void 0 ? void 0 : event.defaultPrevented) {
25
+ cb?.(event);
26
+ if (event?.defaultPrevented) {
46
27
  return;
47
28
  }
48
29
  }
@@ -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", {}>;
@@ -11,7 +11,7 @@ const _base = (defaultElement) => {
11
11
  const Comp = React.forwardRef(({ as = defaultElement, ...props }, ref) => {
12
12
  const Element = as || 'div'; // eslint-disable-line
13
13
  useGlobals();
14
- return (React.createElement(Element, { ref: ref, ...attrs, ...props, className: getScopedClassName(cx(className, attrs === null || attrs === void 0 ? void 0 : attrs.className, props.className)) }));
14
+ return (React.createElement(Element, { ref: ref, ...attrs, ...props, className: getScopedClassName(cx(className, attrs?.className, props.className)) }));
15
15
  });
16
16
  Comp.displayName = getDisplayNameFromClass(className);
17
17
  return Comp;
@@ -6,4 +6,4 @@ import { getWindow } from './dom.js';
6
6
  /**
7
7
  * Returns true if the :has selector is supported in the browser
8
8
  */
9
- export const supportsHas = () => { var _a, _b, _c; return (_c = (_b = (_a = 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(+ *))'); };
9
+ export const supportsHas = () => getWindow()?.CSS?.supports?.('selector(:has(+ *))');
@@ -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';
@@ -13,6 +13,5 @@ export * from './useMediaQuery.js';
13
13
  export * from './useSafeContext.js';
14
14
  export * from './useLatestRef.js';
15
15
  export * from './useIsomorphicLayoutEffect.js';
16
- export * from './useIsThemeAlreadySet.js';
17
16
  export * from './useIsClient.js';
18
17
  export * from './useId.js';
@@ -31,7 +31,7 @@ export const useContainerWidth = (watchResizes = true) => {
31
31
  const updateWidth = React.useCallback(({ width }) => setContentWidth(width), []);
32
32
  const [resizeRef, resizeObserver] = useResizeObserver(updateWidth);
33
33
  if (!watchResizes) {
34
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
34
+ resizeObserver?.disconnect();
35
35
  }
36
36
  const refs = useMergedRefs(ref, watchResizes ? resizeRef : undefined);
37
37
  return [refs, contentWidth];
@@ -7,13 +7,12 @@ import { getTranslateValues, getWindow } from '../functions/index.js';
7
7
  import { useEventListener } from './useEventListener.js';
8
8
  import { useResizeObserver } from './useResizeObserver.js';
9
9
  const getContainerRect = (containerRef) => {
10
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
11
- const containerRect = (_a = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
10
+ const containerRect = containerRef?.current?.getBoundingClientRect();
12
11
  return {
13
- top: (_b = containerRect === null || containerRect === void 0 ? void 0 : containerRect.top) !== null && _b !== void 0 ? _b : 0,
14
- right: (_e = (_c = containerRect === null || containerRect === void 0 ? void 0 : containerRect.right) !== null && _c !== void 0 ? _c : (_d = getWindow()) === null || _d === void 0 ? void 0 : _d.innerWidth) !== null && _e !== void 0 ? _e : 0,
15
- bottom: (_h = (_f = containerRect === null || containerRect === void 0 ? void 0 : containerRect.bottom) !== null && _f !== void 0 ? _f : (_g = getWindow()) === null || _g === void 0 ? void 0 : _g.innerHeight) !== null && _h !== void 0 ? _h : 0,
16
- left: (_j = containerRect === null || containerRect === void 0 ? void 0 : containerRect.left) !== null && _j !== void 0 ? _j : 0,
12
+ top: containerRect?.top ?? 0,
13
+ right: containerRect?.right ?? getWindow()?.innerWidth ?? 0,
14
+ bottom: containerRect?.bottom ?? getWindow()?.innerHeight ?? 0,
15
+ left: containerRect?.left ?? 0,
17
16
  };
18
17
  };
19
18
  /**
@@ -31,11 +30,10 @@ export const useDragAndDrop = (elementRef, containerRef, enabled = true) => {
31
30
  const translateY = React.useRef();
32
31
  const containerRectRef = React.useRef(getContainerRect(containerRef));
33
32
  const adjustTransform = React.useCallback(() => {
34
- var _a;
35
33
  if (!elementRef.current || !enabled) {
36
34
  return;
37
35
  }
38
- const { top, right, bottom, left } = (_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
36
+ const { top, right, bottom, left } = elementRef.current?.getBoundingClientRect();
39
37
  let [newTranslateX, newTranslateY] = getTranslateValues(elementRef.current);
40
38
  containerRectRef.current = getContainerRect(containerRef);
41
39
  if (bottom > containerRectRef.current.bottom) {
@@ -55,10 +53,10 @@ export const useDragAndDrop = (elementRef, containerRef, enabled = true) => {
55
53
  elementRef.current.style.transform = `translate(${newTranslateX}px, ${newTranslateY}px)`;
56
54
  }, [containerRef, elementRef, enabled]);
57
55
  const [resizeRef, resizeObserver] = useResizeObserver(adjustTransform);
58
- resizeRef(containerRef === null || containerRef === void 0 ? void 0 : containerRef.current);
56
+ resizeRef(containerRef?.current);
59
57
  React.useEffect(() => {
60
58
  return () => {
61
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
59
+ resizeObserver?.disconnect();
62
60
  };
63
61
  }, [resizeObserver]);
64
62
  useEventListener('resize', () => {
@@ -25,7 +25,7 @@ export const useEventListener = (eventName, handler, element) => {
25
25
  if (!element) {
26
26
  return;
27
27
  }
28
- const eventListener = (event) => { var _a; return (_a = savedHandler.current) === null || _a === void 0 ? void 0 : _a.call(savedHandler, event); };
28
+ const eventListener = (event) => savedHandler.current?.(event);
29
29
  element.addEventListener(eventName, eventListener);
30
30
  return () => {
31
31
  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;
@@ -9,24 +9,26 @@ let isDev = false;
9
9
  try {
10
10
  isDev = process.env.NODE_ENV !== 'production';
11
11
  }
12
- catch (_a) { }
12
+ catch { }
13
13
  const didLogWarning = {
14
14
  fontSize: false,
15
15
  themeProvider: false,
16
16
  };
17
17
  /**
18
18
  * Hook used in every component for any shared setup and side effects.
19
+ * Returns the nearest ThemeContext.
19
20
  *
20
21
  * @private
21
22
  */
22
23
  export const useGlobals = () => {
23
- useThemeProviderWarning();
24
+ const themeContext = React.useContext(ThemeContext);
25
+ useThemeProviderWarning(themeContext);
24
26
  useRootFontSizeWarning();
27
+ return themeContext;
25
28
  };
26
29
  // ----------------------------------------------------------------------------
27
30
  /** Shows console error if ThemeProvider is not used */
28
- export const useThemeProviderWarning = () => {
29
- const themeContext = React.useContext(ThemeContext);
31
+ export const useThemeProviderWarning = (themeContext) => {
30
32
  React.useEffect(() => {
31
33
  if (isDev && !didLogWarning.themeProvider && !themeContext) {
32
34
  console.error('iTwinUI components must be used within a tree wrapped in a ThemeProvider.');
@@ -2,7 +2,6 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- var _a;
6
5
  import * as React from 'react';
7
6
  import { getRandomValue } from '../functions/numbers.js';
8
7
  /**
@@ -16,4 +15,4 @@ export const useId = () => {
16
15
  // This is needed to avoid bundlers trying to import non-existing export.
17
16
  // Read more: https://github.com/webpack/webpack/issues/14814
18
17
  const _React = React;
19
- const useUniqueValue = (_a = _React.useId) !== null && _a !== void 0 ? _a : (() => getRandomValue(10));
18
+ const useUniqueValue = _React.useId ?? (() => getRandomValue(10));
@@ -20,10 +20,9 @@ export const useIntersection = (onIntersect, options = {}, once = true) => {
20
20
  const { root, rootMargin, threshold } = options;
21
21
  const cleanupRef = React.useRef(() => { });
22
22
  const setRef = React.useCallback((node) => {
23
- var _a, _b;
24
- (_a = cleanupRef.current) === null || _a === void 0 ? void 0 : _a.call(cleanupRef);
23
+ cleanupRef.current?.();
25
24
  cleanupRef.current = () => { }; // ensure it doesn't try to clean up again
26
- if (!node || !((_b = getWindow()) === null || _b === void 0 ? void 0 : _b.IntersectionObserver)) {
25
+ if (!node || !getWindow()?.IntersectionObserver) {
27
26
  return;
28
27
  }
29
28
  const observer = new IntersectionObserver(([entry], obs) => {
@@ -8,27 +8,25 @@ import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';
8
8
  export const useMediaQuery = (queryString) => {
9
9
  const [matches, setMatches] = React.useState();
10
10
  useIsomorphicLayoutEffect(() => {
11
- var _a, _b, _c;
12
- const mediaQueryList = (_b = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.matchMedia) === null || _b === void 0 ? void 0 : _b.call(_a, queryString);
11
+ const mediaQueryList = getWindow()?.matchMedia?.(queryString);
13
12
  const handleChange = ({ matches }) => setMatches(matches);
14
13
  if (mediaQueryList != undefined) {
15
14
  setMatches(mediaQueryList.matches);
16
15
  try {
17
16
  mediaQueryList.addEventListener('change', handleChange);
18
17
  }
19
- catch (_d) {
18
+ catch {
20
19
  // Safari 13 fallback
21
- (_c = mediaQueryList.addListener) === null || _c === void 0 ? void 0 : _c.call(mediaQueryList, handleChange);
20
+ mediaQueryList.addListener?.(handleChange);
22
21
  }
23
22
  }
24
23
  return () => {
25
- var _a;
26
24
  try {
27
- mediaQueryList === null || mediaQueryList === void 0 ? void 0 : mediaQueryList.removeEventListener('change', handleChange);
25
+ mediaQueryList?.removeEventListener('change', handleChange);
28
26
  }
29
- catch (_b) {
27
+ catch {
30
28
  // Safari 13 fallback
31
- (_a = mediaQueryList === null || mediaQueryList === void 0 ? void 0 : mediaQueryList.removeListener) === null || _a === void 0 ? void 0 : _a.call(mediaQueryList, handleChange);
29
+ mediaQueryList?.removeListener?.(handleChange);
32
30
  }
33
31
  };
34
32
  }, [queryString]);
@@ -49,9 +49,8 @@ export const useOverflow = (items, disabled = false, orientation = 'horizontal')
49
49
  }, [containerSize, disabled, items]);
50
50
  const mergedRefs = useMergedRefs(containerRef, resizeRef);
51
51
  useIsomorphicLayoutEffect(() => {
52
- var _a;
53
52
  if (!containerRef.current || disabled) {
54
- (_a = resizeObserverRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
53
+ resizeObserverRef.current?.disconnect();
55
54
  return;
56
55
  }
57
56
  const dimension = orientation === 'horizontal' ? 'Width' : 'Height';
@@ -19,14 +19,13 @@ import { getWindow } from '../functions/dom.js';
19
19
  export const useResizeObserver = (onResize) => {
20
20
  const resizeObserver = React.useRef();
21
21
  const elementRef = React.useCallback((element) => {
22
- var _a, _b, _c;
23
- if (!((_a = getWindow()) === null || _a === void 0 ? void 0 : _a.ResizeObserver)) {
22
+ if (!getWindow()?.ResizeObserver) {
24
23
  return;
25
24
  }
26
- (_b = resizeObserver.current) === null || _b === void 0 ? void 0 : _b.disconnect();
25
+ resizeObserver.current?.disconnect();
27
26
  if (element) {
28
27
  resizeObserver.current = new ResizeObserver(([{ contentRect }]) => onResize(contentRect));
29
- (_c = resizeObserver.current) === null || _c === void 0 ? void 0 : _c.observe(element);
28
+ resizeObserver.current?.observe(element);
30
29
  }
31
30
  }, [onResize]);
32
31
  return [elementRef, resizeObserver.current];
package/esm/styles.js CHANGED
@@ -5,10 +5,8 @@ const styles = {
5
5
  "iui-root-background": "_iui3-root-background",
6
6
  "iui-alert": "_iui3-alert",
7
7
  "iui-alert-link": "_iui3-alert-link",
8
- "iui-alert-button": "_iui3-alert-button",
9
- "iui-alert-icon": "_iui3-alert-icon",
8
+ "iui-button": "_iui3-button",
10
9
  "iui-alert-message": "_iui3-alert-message",
11
- "iui-alert-button-icon": "_iui3-alert-button-icon",
12
10
  "iui-anchor": "_iui3-anchor",
13
11
  "iui-anchor-external": "_iui3-anchor-external",
14
12
  "iui-avatar": "_iui3-avatar",
@@ -37,7 +35,6 @@ const styles = {
37
35
  "iui-breadcrumbs-list": "_iui3-breadcrumbs-list",
38
36
  "iui-breadcrumbs-item": "_iui3-breadcrumbs-item",
39
37
  "iui-breadcrumbs-item-overrides": "_iui3-breadcrumbs-item-overrides",
40
- "iui-button": "_iui3-button",
41
38
  "iui-breadcrumbs-text": "_iui3-breadcrumbs-text",
42
39
  "iui-breadcrumbs-button": "_iui3-breadcrumbs-button",
43
40
  "iui-breadcrumbs-separator": "_iui3-breadcrumbs-separator",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/itwinui-react",
3
- "version": "3.0.0-dev.1",
3
+ "version": "3.0.0-dev.3",
4
4
  "author": "Bentley Systems",
5
5
  "license": "MIT",
6
6
  "main": "cjs/index.js",
@@ -82,7 +82,7 @@
82
82
  },
83
83
  "devDependencies": {
84
84
  "@babel/core": "^7.12.10",
85
- "@itwin/itwinui-css": "^2.0.0-dev.1",
85
+ "@itwin/itwinui-css": "^2.0.0-dev.3",
86
86
  "@itwin/itwinui-variables": "2.1.0-dev.0",
87
87
  "@swc/cli": "^0.1.57",
88
88
  "@swc/core": "^1.3.21",