@itwin/itwinui-react 3.0.3 → 3.0.5

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 (498) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/cjs/core/Alert/Alert.js +46 -106
  3. package/cjs/core/Avatar/Avatar.js +21 -58
  4. package/cjs/core/AvatarGroup/AvatarGroup.js +26 -64
  5. package/cjs/core/Backdrop/Backdrop.js +8 -16
  6. package/cjs/core/Badge/Badge.js +22 -39
  7. package/cjs/core/Breadcrumbs/Breadcrumbs.js +61 -138
  8. package/cjs/core/ButtonGroup/ButtonGroup.js +32 -68
  9. package/cjs/core/Buttons/Button.js +11 -57
  10. package/cjs/core/Buttons/DropdownButton.js +15 -49
  11. package/cjs/core/Buttons/IconButton.js +13 -53
  12. package/cjs/core/Buttons/IdeasButton.js +8 -20
  13. package/cjs/core/Buttons/SplitButton.js +43 -103
  14. package/cjs/core/Carousel/Carousel.js +54 -78
  15. package/cjs/core/Carousel/CarouselContext.js +4 -4
  16. package/cjs/core/Carousel/CarouselDot.js +12 -23
  17. package/cjs/core/Carousel/CarouselDotsList.js +92 -153
  18. package/cjs/core/Carousel/CarouselNavigation.js +41 -84
  19. package/cjs/core/Carousel/CarouselSlide.js +26 -49
  20. package/cjs/core/Carousel/CarouselSlider.js +47 -66
  21. package/cjs/core/Checkbox/Checkbox.js +32 -88
  22. package/cjs/core/ColorPicker/ColorBuilder.js +174 -292
  23. package/cjs/core/ColorPicker/ColorInputPanel.js +246 -411
  24. package/cjs/core/ColorPicker/ColorPalette.js +23 -47
  25. package/cjs/core/ColorPicker/ColorPicker.js +53 -87
  26. package/cjs/core/ColorPicker/ColorPickerContext.js +9 -11
  27. package/cjs/core/ColorPicker/ColorSwatch.js +15 -40
  28. package/cjs/core/ComboBox/ComboBox.js +280 -402
  29. package/cjs/core/ComboBox/ComboBoxEndIcon.js +12 -28
  30. package/cjs/core/ComboBox/ComboBoxInput.js +131 -207
  31. package/cjs/core/ComboBox/ComboBoxInputContainer.js +12 -35
  32. package/cjs/core/ComboBox/ComboBoxMenu.js +43 -87
  33. package/cjs/core/ComboBox/ComboBoxMenuItem.js +21 -73
  34. package/cjs/core/ComboBox/ComboBoxMultipleContainer.js +7 -13
  35. package/cjs/core/ComboBox/helpers.js +43 -47
  36. package/cjs/core/DatePicker/DatePicker.js +333 -569
  37. package/cjs/core/Dialog/Dialog.js +36 -65
  38. package/cjs/core/Dialog/DialogBackdrop.js +27 -47
  39. package/cjs/core/Dialog/DialogButtonBar.js +3 -3
  40. package/cjs/core/Dialog/DialogContent.js +18 -26
  41. package/cjs/core/Dialog/DialogContext.js +5 -5
  42. package/cjs/core/Dialog/DialogDragContext.js +8 -8
  43. package/cjs/core/Dialog/DialogMain.js +116 -183
  44. package/cjs/core/Dialog/DialogTitleBar.js +20 -67
  45. package/cjs/core/Dialog/DialogTitleBarTitle.js +3 -3
  46. package/cjs/core/Divider/Divider.js +8 -14
  47. package/cjs/core/DropdownMenu/DropdownMenu.js +46 -80
  48. package/cjs/core/ExpandableBlock/ExpandableBlock.js +101 -206
  49. package/cjs/core/Fieldset/Fieldset.js +14 -25
  50. package/cjs/core/FileUpload/FileEmptyCard.js +17 -43
  51. package/cjs/core/FileUpload/FileUpload.js +42 -88
  52. package/cjs/core/FileUpload/FileUploadCard.js +84 -169
  53. package/cjs/core/FileUpload/FileUploadTemplate.js +16 -51
  54. package/cjs/core/Flex/Flex.js +77 -93
  55. package/cjs/core/Footer/Footer.js +64 -103
  56. package/cjs/core/Footer/FooterItem.js +3 -3
  57. package/cjs/core/Footer/FooterList.js +3 -3
  58. package/cjs/core/Footer/FooterSeparator.js +5 -8
  59. package/cjs/core/Header/Header.js +22 -67
  60. package/cjs/core/Header/HeaderBasicButton.js +13 -24
  61. package/cjs/core/Header/HeaderBreadcrumbs.js +14 -38
  62. package/cjs/core/Header/HeaderButton.js +22 -76
  63. package/cjs/core/Header/HeaderDropdownButton.js +20 -48
  64. package/cjs/core/Header/HeaderLogo.js +11 -42
  65. package/cjs/core/Header/HeaderSplitButton.js +21 -66
  66. package/cjs/core/Icon/Icon.js +18 -32
  67. package/cjs/core/InformationPanel/InformationPanel.js +42 -77
  68. package/cjs/core/InformationPanel/InformationPanelBody.js +4 -6
  69. package/cjs/core/InformationPanel/InformationPanelContent.js +8 -20
  70. package/cjs/core/InformationPanel/InformationPanelHeader.js +14 -34
  71. package/cjs/core/InformationPanel/InformationPanelWrapper.js +4 -6
  72. package/cjs/core/Input/Input.js +10 -18
  73. package/cjs/core/InputGrid/InputGrid.js +8 -17
  74. package/cjs/core/InputGroup/InputGroup.js +25 -72
  75. package/cjs/core/InputWithDecorations/InputWithDecorations.js +23 -51
  76. package/cjs/core/Label/Label.js +11 -32
  77. package/cjs/core/LabeledInput/LabeledInput.js +20 -70
  78. package/cjs/core/LabeledSelect/LabeledSelect.js +28 -77
  79. package/cjs/core/LabeledTextarea/LabeledTextarea.js +7 -13
  80. package/cjs/core/LinkAction/LinkAction.js +3 -3
  81. package/cjs/core/List/List.js +3 -3
  82. package/cjs/core/List/ListItem.js +35 -55
  83. package/cjs/core/Menu/Menu.js +53 -66
  84. package/cjs/core/Menu/MenuDivider.js +4 -4
  85. package/cjs/core/Menu/MenuExtraContent.js +4 -4
  86. package/cjs/core/Menu/MenuItem.js +92 -168
  87. package/cjs/core/Menu/MenuItemSkeleton.js +19 -54
  88. package/cjs/core/Modal/Modal.js +11 -38
  89. package/cjs/core/Modal/ModalButtonBar.js +4 -7
  90. package/cjs/core/Modal/ModalContent.js +3 -3
  91. package/cjs/core/NonIdealState/ErrorPage.js +131 -187
  92. package/cjs/core/NonIdealState/NonIdealState.js +12 -77
  93. package/cjs/core/NotificationMarker/NotificationMarker.js +8 -29
  94. package/cjs/core/Overlay/Overlay.d.ts +20 -24
  95. package/cjs/core/Overlay/Overlay.js +50 -64
  96. package/cjs/core/Popover/Popover.js +87 -157
  97. package/cjs/core/ProgressIndicators/ProgressLinear.js +11 -49
  98. package/cjs/core/ProgressIndicators/ProgressRadial.js +19 -51
  99. package/cjs/core/Radio/Radio.js +12 -54
  100. package/cjs/core/RadioTiles/RadioTile.js +14 -80
  101. package/cjs/core/RadioTiles/RadioTileGroup.js +9 -16
  102. package/cjs/core/SearchBox/SearchBox.js +104 -221
  103. package/cjs/core/Select/Select.js +141 -282
  104. package/cjs/core/Select/SelectTag.js +9 -21
  105. package/cjs/core/Select/SelectTagContainer.js +14 -30
  106. package/cjs/core/SideNavigation/SideNavigation.js +29 -138
  107. package/cjs/core/SideNavigation/SidenavButton.js +8 -30
  108. package/cjs/core/SideNavigation/SidenavSubmenu.js +9 -23
  109. package/cjs/core/SideNavigation/SidenavSubmenuHeader.js +10 -29
  110. package/cjs/core/SkipToContentLink/SkipToContentLink.js +8 -20
  111. package/cjs/core/Slider/Slider.js +195 -376
  112. package/cjs/core/Slider/Thumb.js +57 -108
  113. package/cjs/core/Slider/Track.js +55 -83
  114. package/cjs/core/StatusMessage/StatusMessage.js +12 -34
  115. package/cjs/core/Stepper/Stepper.js +21 -80
  116. package/cjs/core/Stepper/StepperStep.js +36 -109
  117. package/cjs/core/Stepper/WorkflowDiagram.js +15 -38
  118. package/cjs/core/Stepper/WorkflowDiagramStep.js +11 -39
  119. package/cjs/core/Surface/Surface.js +54 -94
  120. package/cjs/core/Table/SubRowExpander.js +15 -37
  121. package/cjs/core/Table/Table.js +419 -763
  122. package/cjs/core/Table/TableCell.js +63 -113
  123. package/cjs/core/Table/TablePaginator.js +136 -312
  124. package/cjs/core/Table/TableRowMemoized.js +64 -137
  125. package/cjs/core/Table/actionHandlers/expandHandler.js +12 -12
  126. package/cjs/core/Table/actionHandlers/filterHandler.js +17 -25
  127. package/cjs/core/Table/actionHandlers/index.js +14 -56
  128. package/cjs/core/Table/actionHandlers/resizeHandler.js +13 -13
  129. package/cjs/core/Table/actionHandlers/selectHandler.js +98 -128
  130. package/cjs/core/Table/cells/DefaultCell.js +13 -48
  131. package/cjs/core/Table/cells/EditableCell.js +46 -75
  132. package/cjs/core/Table/cells/index.js +6 -16
  133. package/cjs/core/Table/columns/actionColumn.js +67 -97
  134. package/cjs/core/Table/columns/expanderColumn.js +32 -46
  135. package/cjs/core/Table/columns/index.js +11 -41
  136. package/cjs/core/Table/columns/selectionColumn.js +29 -57
  137. package/cjs/core/Table/filters/BaseFilter.js +13 -24
  138. package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.js +52 -120
  139. package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +60 -120
  140. package/cjs/core/Table/filters/FilterButtonBar.js +16 -39
  141. package/cjs/core/Table/filters/FilterToggle.js +26 -62
  142. package/cjs/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +36 -58
  143. package/cjs/core/Table/filters/TextFilter/TextFilter.js +28 -40
  144. package/cjs/core/Table/filters/customFilterFunctions.js +14 -16
  145. package/cjs/core/Table/filters/defaultFilterFunctions.js +81 -86
  146. package/cjs/core/Table/filters/index.js +11 -35
  147. package/cjs/core/Table/filters/tableFilters.js +32 -44
  148. package/cjs/core/Table/filters/types.js +2 -2
  149. package/cjs/core/Table/hooks/index.js +19 -67
  150. package/cjs/core/Table/hooks/useColumnDragAndDrop.js +86 -101
  151. package/cjs/core/Table/hooks/useExpanderCell.js +25 -33
  152. package/cjs/core/Table/hooks/useResizeColumns.js +290 -362
  153. package/cjs/core/Table/hooks/useScrollToRow.js +38 -46
  154. package/cjs/core/Table/hooks/useSelectionCell.js +10 -17
  155. package/cjs/core/Table/hooks/useStickyColumns.js +62 -64
  156. package/cjs/core/Table/hooks/useSubRowFiltering.js +88 -95
  157. package/cjs/core/Table/hooks/useSubRowSelection.js +31 -32
  158. package/cjs/core/Table/index.js +18 -78
  159. package/cjs/core/Table/utils.js +40 -42
  160. package/cjs/core/Tabs/Tabs.d.ts +3 -5
  161. package/cjs/core/Tabs/Tabs.js +235 -422
  162. package/cjs/core/Tag/Tag.js +15 -42
  163. package/cjs/core/Tag/TagContainer.js +11 -23
  164. package/cjs/core/Textarea/Textarea.js +6 -11
  165. package/cjs/core/ThemeProvider/ThemeContext.js +4 -4
  166. package/cjs/core/ThemeProvider/ThemeProvider.js +52 -105
  167. package/cjs/core/Tile/Tile.js +230 -410
  168. package/cjs/core/TimePicker/TimePicker.js +234 -458
  169. package/cjs/core/Toast/Toast.js +107 -204
  170. package/cjs/core/Toast/Toaster.js +77 -103
  171. package/cjs/core/ToggleSwitch/ToggleSwitch.js +23 -66
  172. package/cjs/core/Tooltip/Tooltip.js +91 -137
  173. package/cjs/core/TransferList/TransferList.js +103 -177
  174. package/cjs/core/Tree/Tree.js +129 -204
  175. package/cjs/core/Tree/TreeContext.js +9 -9
  176. package/cjs/core/Tree/TreeNode.js +104 -207
  177. package/cjs/core/Tree/TreeNodeExpander.js +12 -26
  178. package/cjs/core/Typography/Anchor.js +3 -3
  179. package/cjs/core/Typography/Blockquote.js +10 -18
  180. package/cjs/core/Typography/Code.js +3 -3
  181. package/cjs/core/Typography/Kbd.js +21 -30
  182. package/cjs/core/Typography/Text.js +13 -26
  183. package/cjs/core/VisuallyHidden/VisuallyHidden.js +8 -14
  184. package/cjs/core/utils/color/ColorValue.js +453 -535
  185. package/cjs/core/utils/color/index.js +4 -4
  186. package/cjs/core/utils/components/AutoclearingHiddenLiveRegion.js +13 -20
  187. package/cjs/core/utils/components/Box.js +3 -3
  188. package/cjs/core/utils/components/ButtonBase.js +20 -38
  189. package/cjs/core/utils/components/FocusTrap.js +38 -47
  190. package/cjs/core/utils/components/InputContainer.js +19 -58
  191. package/cjs/core/utils/components/InputFlexContainer.js +8 -24
  192. package/cjs/core/utils/components/MiddleTextTruncation.js +22 -32
  193. package/cjs/core/utils/components/Portal.js +20 -22
  194. package/cjs/core/utils/components/Resizer.js +196 -253
  195. package/cjs/core/utils/components/VirtualScroll.js +223 -304
  196. package/cjs/core/utils/components/WithCSSTransition.js +32 -49
  197. package/cjs/core/utils/components/index.js +14 -14
  198. package/cjs/core/utils/functions/colors.js +22 -25
  199. package/cjs/core/utils/functions/date.js +10 -10
  200. package/cjs/core/utils/functions/dev.js +14 -13
  201. package/cjs/core/utils/functions/dom.js +17 -24
  202. package/cjs/core/utils/functions/focusable.js +17 -26
  203. package/cjs/core/utils/functions/import.js +23 -46
  204. package/cjs/core/utils/functions/index.js +13 -13
  205. package/cjs/core/utils/functions/numbers.js +9 -9
  206. package/cjs/core/utils/functions/polymorphic.js +30 -43
  207. package/cjs/core/utils/functions/react.js +24 -26
  208. package/cjs/core/utils/functions/supports.js +4 -5
  209. package/cjs/core/utils/hooks/index.js +17 -17
  210. package/cjs/core/utils/hooks/useContainerWidth.js +19 -26
  211. package/cjs/core/utils/hooks/useControlledState.js +12 -21
  212. package/cjs/core/utils/hooks/useDragAndDrop.js +87 -110
  213. package/cjs/core/utils/hooks/useEventListener.js +22 -22
  214. package/cjs/core/utils/hooks/useGlobals.js +27 -33
  215. package/cjs/core/utils/hooks/useId.js +8 -9
  216. package/cjs/core/utils/hooks/useIntersection.js +24 -30
  217. package/cjs/core/utils/hooks/useIsClient.js +9 -9
  218. package/cjs/core/utils/hooks/useIsomorphicLayoutEffect.js +5 -6
  219. package/cjs/core/utils/hooks/useLatestRef.js +9 -9
  220. package/cjs/core/utils/hooks/useMediaQuery.js +31 -31
  221. package/cjs/core/utils/hooks/useMergedRefs.js +16 -15
  222. package/cjs/core/utils/hooks/useOverflow.js +57 -70
  223. package/cjs/core/utils/hooks/useResizeObserver.js +17 -22
  224. package/cjs/core/utils/hooks/useSafeContext.js +9 -9
  225. package/cjs/core/utils/icons/StatusIconMap.js +12 -28
  226. package/cjs/core/utils/icons/Svg.js +3 -3
  227. package/cjs/core/utils/icons/SvgCalendar.js +7 -12
  228. package/cjs/core/utils/icons/SvgCaretDownSmall.js +7 -12
  229. package/cjs/core/utils/icons/SvgCaretRightSmall.js +7 -12
  230. package/cjs/core/utils/icons/SvgCaretUpSmall.js +7 -12
  231. package/cjs/core/utils/icons/SvgCheckmark.js +7 -10
  232. package/cjs/core/utils/icons/SvgCheckmarkSmall.js +7 -12
  233. package/cjs/core/utils/icons/SvgChevronLeft.js +7 -12
  234. package/cjs/core/utils/icons/SvgChevronLeftDouble.js +7 -12
  235. package/cjs/core/utils/icons/SvgChevronRight.js +7 -12
  236. package/cjs/core/utils/icons/SvgChevronRightDouble.js +7 -12
  237. package/cjs/core/utils/icons/SvgClose.js +7 -12
  238. package/cjs/core/utils/icons/SvgCloseSmall.js +7 -12
  239. package/cjs/core/utils/icons/SvgColumnManager.js +7 -12
  240. package/cjs/core/utils/icons/SvgDocument.js +7 -10
  241. package/cjs/core/utils/icons/SvgFilter.js +7 -10
  242. package/cjs/core/utils/icons/SvgFilterHollow.js +7 -12
  243. package/cjs/core/utils/icons/SvgImportantSmall.js +7 -12
  244. package/cjs/core/utils/icons/SvgInfoCircular.js +7 -12
  245. package/cjs/core/utils/icons/SvgMore.js +7 -12
  246. package/cjs/core/utils/icons/SvgMoreVertical.js +7 -12
  247. package/cjs/core/utils/icons/SvgNew.js +7 -12
  248. package/cjs/core/utils/icons/SvgSearch.js +7 -12
  249. package/cjs/core/utils/icons/SvgSmileyHappy.js +7 -12
  250. package/cjs/core/utils/icons/SvgSortDown.js +7 -12
  251. package/cjs/core/utils/icons/SvgSortUp.js +7 -12
  252. package/cjs/core/utils/icons/SvgStatusError.js +7 -12
  253. package/cjs/core/utils/icons/SvgStatusSuccess.js +7 -12
  254. package/cjs/core/utils/icons/SvgStatusWarning.js +7 -12
  255. package/cjs/core/utils/icons/SvgSwap.js +7 -12
  256. package/cjs/core/utils/icons/SvgUpload.js +7 -12
  257. package/cjs/core/utils/icons/index.js +34 -34
  258. package/cjs/core/utils/index.js +10 -10
  259. package/cjs/core/utils/props.js +2 -2
  260. package/cjs/core/utils/types.js +2 -2
  261. package/cjs/index.js +229 -949
  262. package/cjs/react-table/react-table.js +2 -2
  263. package/cjs/styles.js +412 -425
  264. package/esm/core/Alert/Alert.js +39 -106
  265. package/esm/core/Avatar/Avatar.js +14 -42
  266. package/esm/core/AvatarGroup/AvatarGroup.js +20 -58
  267. package/esm/core/Backdrop/Backdrop.js +2 -10
  268. package/esm/core/Badge/Badge.js +16 -31
  269. package/esm/core/Breadcrumbs/Breadcrumbs.js +55 -135
  270. package/esm/core/ButtonGroup/ButtonGroup.js +25 -61
  271. package/esm/core/Buttons/Button.js +5 -45
  272. package/esm/core/Buttons/DropdownButton.js +7 -37
  273. package/esm/core/Buttons/IconButton.js +5 -40
  274. package/esm/core/Buttons/IdeasButton.js +2 -12
  275. package/esm/core/Buttons/SplitButton.js +34 -101
  276. package/esm/core/Carousel/Carousel.js +43 -72
  277. package/esm/core/Carousel/CarouselDot.js +6 -17
  278. package/esm/core/Carousel/CarouselDotsList.js +85 -147
  279. package/esm/core/Carousel/CarouselNavigation.js +32 -68
  280. package/esm/core/Carousel/CarouselSlide.js +19 -41
  281. package/esm/core/Carousel/CarouselSlider.js +41 -65
  282. package/esm/core/Checkbox/Checkbox.js +25 -78
  283. package/esm/core/ColorPicker/ColorBuilder.js +167 -280
  284. package/esm/core/ColorPicker/ColorInputPanel.js +237 -395
  285. package/esm/core/ColorPicker/ColorPalette.js +14 -35
  286. package/esm/core/ColorPicker/ColorPicker.js +46 -79
  287. package/esm/core/ColorPicker/ColorPickerContext.js +5 -7
  288. package/esm/core/ColorPicker/ColorSwatch.js +7 -24
  289. package/esm/core/ComboBox/ComboBox.js +267 -396
  290. package/esm/core/ComboBox/ComboBoxEndIcon.js +5 -18
  291. package/esm/core/ComboBox/ComboBoxInput.js +125 -197
  292. package/esm/core/ComboBox/ComboBoxInputContainer.js +5 -20
  293. package/esm/core/ComboBox/ComboBoxMenu.js +37 -77
  294. package/esm/core/ComboBox/ComboBoxMenuItem.js +14 -61
  295. package/esm/core/ComboBox/ComboBoxMultipleContainer.js +2 -6
  296. package/esm/core/ComboBox/helpers.js +38 -38
  297. package/esm/core/DatePicker/DatePicker.js +326 -555
  298. package/esm/core/Dialog/Dialog.js +24 -53
  299. package/esm/core/Dialog/DialogBackdrop.js +19 -39
  300. package/esm/core/Dialog/DialogContent.js +12 -20
  301. package/esm/core/Dialog/DialogContext.js +1 -1
  302. package/esm/core/Dialog/DialogDragContext.js +4 -4
  303. package/esm/core/Dialog/DialogMain.js +107 -177
  304. package/esm/core/Dialog/DialogTitleBar.js +10 -45
  305. package/esm/core/Divider/Divider.js +2 -8
  306. package/esm/core/DropdownMenu/DropdownMenu.js +40 -75
  307. package/esm/core/ExpandableBlock/ExpandableBlock.js +92 -193
  308. package/esm/core/Fieldset/Fieldset.js +8 -19
  309. package/esm/core/FileUpload/FileEmptyCard.js +8 -19
  310. package/esm/core/FileUpload/FileUpload.js +36 -72
  311. package/esm/core/FileUpload/FileUploadCard.js +76 -153
  312. package/esm/core/FileUpload/FileUploadTemplate.js +9 -37
  313. package/esm/core/Flex/Flex.js +71 -87
  314. package/esm/core/Footer/Footer.js +55 -86
  315. package/esm/core/Footer/FooterSeparator.js +1 -1
  316. package/esm/core/Header/Header.js +14 -55
  317. package/esm/core/Header/HeaderBasicButton.js +7 -15
  318. package/esm/core/Header/HeaderBreadcrumbs.js +8 -32
  319. package/esm/core/Header/HeaderButton.js +14 -62
  320. package/esm/core/Header/HeaderDropdownButton.js +13 -42
  321. package/esm/core/Header/HeaderLogo.js +5 -36
  322. package/esm/core/Header/HeaderSplitButton.js +14 -61
  323. package/esm/core/Icon/Icon.js +12 -26
  324. package/esm/core/InformationPanel/InformationPanel.js +36 -71
  325. package/esm/core/InformationPanel/InformationPanelContent.js +3 -17
  326. package/esm/core/InformationPanel/InformationPanelHeader.js +8 -32
  327. package/esm/core/InformationPanel/InformationPanelWrapper.js +1 -3
  328. package/esm/core/Input/Input.js +4 -12
  329. package/esm/core/InputGrid/InputGrid.js +2 -11
  330. package/esm/core/InputGroup/InputGroup.js +16 -57
  331. package/esm/core/InputWithDecorations/InputWithDecorations.js +11 -42
  332. package/esm/core/Label/Label.js +5 -26
  333. package/esm/core/LabeledInput/LabeledInput.js +10 -63
  334. package/esm/core/LabeledSelect/LabeledSelect.js +18 -67
  335. package/esm/core/LabeledTextarea/LabeledTextarea.js +2 -8
  336. package/esm/core/List/ListItem.js +28 -46
  337. package/esm/core/Menu/Menu.js +48 -64
  338. package/esm/core/Menu/MenuDivider.js +1 -1
  339. package/esm/core/Menu/MenuExtraContent.js +1 -1
  340. package/esm/core/Menu/MenuItem.js +84 -164
  341. package/esm/core/Menu/MenuItemSkeleton.js +12 -43
  342. package/esm/core/Modal/Modal.js +6 -33
  343. package/esm/core/NonIdealState/ErrorPage.js +123 -173
  344. package/esm/core/NonIdealState/NonIdealState.js +6 -65
  345. package/esm/core/NotificationMarker/NotificationMarker.js +2 -20
  346. package/esm/core/Overlay/Overlay.d.ts +20 -24
  347. package/esm/core/Overlay/Overlay.js +45 -55
  348. package/esm/core/Popover/Popover.js +80 -172
  349. package/esm/core/ProgressIndicators/ProgressLinear.js +5 -40
  350. package/esm/core/ProgressIndicators/ProgressRadial.js +14 -40
  351. package/esm/core/Radio/Radio.js +6 -45
  352. package/esm/core/RadioTiles/RadioTile.js +8 -62
  353. package/esm/core/RadioTiles/RadioTileGroup.js +3 -10
  354. package/esm/core/SearchBox/SearchBox.js +97 -214
  355. package/esm/core/Select/Select.js +130 -271
  356. package/esm/core/Select/SelectTag.js +3 -15
  357. package/esm/core/Select/SelectTagContainer.js +7 -20
  358. package/esm/core/SideNavigation/SideNavigation.js +21 -118
  359. package/esm/core/SideNavigation/SidenavButton.js +2 -24
  360. package/esm/core/SideNavigation/SidenavSubmenu.js +3 -14
  361. package/esm/core/SideNavigation/SidenavSubmenuHeader.js +4 -20
  362. package/esm/core/SkipToContentLink/SkipToContentLink.js +2 -11
  363. package/esm/core/Slider/Slider.js +187 -340
  364. package/esm/core/Slider/Thumb.js +50 -97
  365. package/esm/core/Slider/Track.js +49 -74
  366. package/esm/core/StatusMessage/StatusMessage.js +5 -23
  367. package/esm/core/Stepper/Stepper.js +14 -70
  368. package/esm/core/Stepper/StepperStep.js +29 -92
  369. package/esm/core/Stepper/WorkflowDiagram.js +8 -21
  370. package/esm/core/Stepper/WorkflowDiagramStep.js +4 -22
  371. package/esm/core/Surface/Surface.js +48 -84
  372. package/esm/core/Table/SubRowExpander.js +9 -31
  373. package/esm/core/Table/Table.js +408 -763
  374. package/esm/core/Table/TableCell.js +53 -87
  375. package/esm/core/Table/TablePaginator.js +125 -306
  376. package/esm/core/Table/TableRowMemoized.js +58 -129
  377. package/esm/core/Table/actionHandlers/expandHandler.js +10 -10
  378. package/esm/core/Table/actionHandlers/filterHandler.js +15 -23
  379. package/esm/core/Table/actionHandlers/index.js +1 -5
  380. package/esm/core/Table/actionHandlers/resizeHandler.js +11 -11
  381. package/esm/core/Table/actionHandlers/selectHandler.js +95 -122
  382. package/esm/core/Table/cells/DefaultCell.js +7 -42
  383. package/esm/core/Table/cells/EditableCell.js +41 -70
  384. package/esm/core/Table/columns/actionColumn.js +55 -85
  385. package/esm/core/Table/columns/expanderColumn.js +25 -39
  386. package/esm/core/Table/columns/selectionColumn.js +23 -51
  387. package/esm/core/Table/filters/BaseFilter.js +7 -15
  388. package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +42 -107
  389. package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +52 -110
  390. package/esm/core/Table/filters/FilterButtonBar.js +9 -28
  391. package/esm/core/Table/filters/FilterToggle.js +18 -51
  392. package/esm/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +28 -50
  393. package/esm/core/Table/filters/TextFilter/TextFilter.js +20 -32
  394. package/esm/core/Table/filters/customFilterFunctions.js +12 -14
  395. package/esm/core/Table/filters/defaultFilterFunctions.js +79 -84
  396. package/esm/core/Table/filters/tableFilters.js +25 -34
  397. package/esm/core/Table/hooks/useColumnDragAndDrop.js +81 -88
  398. package/esm/core/Table/hooks/useExpanderCell.js +20 -26
  399. package/esm/core/Table/hooks/useResizeColumns.js +287 -353
  400. package/esm/core/Table/hooks/useScrollToRow.js +34 -42
  401. package/esm/core/Table/hooks/useSelectionCell.js +6 -10
  402. package/esm/core/Table/hooks/useStickyColumns.js +59 -61
  403. package/esm/core/Table/hooks/useSubRowFiltering.js +83 -90
  404. package/esm/core/Table/hooks/useSubRowSelection.js +27 -28
  405. package/esm/core/Table/index.js +1 -5
  406. package/esm/core/Table/utils.js +38 -40
  407. package/esm/core/Tabs/Tabs.d.ts +3 -5
  408. package/esm/core/Tabs/Tabs.js +229 -406
  409. package/esm/core/Tag/Tag.js +8 -35
  410. package/esm/core/Tag/TagContainer.js +5 -17
  411. package/esm/core/Textarea/Textarea.js +1 -6
  412. package/esm/core/ThemeProvider/ThemeProvider.js +44 -101
  413. package/esm/core/Tile/Tile.js +218 -386
  414. package/esm/core/TimePicker/TimePicker.js +228 -448
  415. package/esm/core/Toast/Toast.js +99 -193
  416. package/esm/core/Toast/Toaster.js +69 -83
  417. package/esm/core/ToggleSwitch/ToggleSwitch.js +17 -60
  418. package/esm/core/Tooltip/Tooltip.js +86 -151
  419. package/esm/core/TransferList/TransferList.js +93 -157
  420. package/esm/core/Tree/Tree.js +122 -196
  421. package/esm/core/Tree/TreeContext.js +5 -5
  422. package/esm/core/Tree/TreeNode.js +96 -195
  423. package/esm/core/Tree/TreeNodeExpander.js +5 -16
  424. package/esm/core/Typography/Blockquote.js +4 -12
  425. package/esm/core/Typography/Kbd.js +15 -24
  426. package/esm/core/Typography/Text.js +7 -20
  427. package/esm/core/VisuallyHidden/VisuallyHidden.js +2 -8
  428. package/esm/core/utils/color/ColorValue.js +449 -524
  429. package/esm/core/utils/components/AutoclearingHiddenLiveRegion.js +7 -11
  430. package/esm/core/utils/components/ButtonBase.js +13 -31
  431. package/esm/core/utils/components/FocusTrap.js +32 -41
  432. package/esm/core/utils/components/InputContainer.js +11 -50
  433. package/esm/core/utils/components/InputFlexContainer.js +2 -15
  434. package/esm/core/utils/components/MiddleTextTruncation.js +17 -27
  435. package/esm/core/utils/components/Portal.js +12 -12
  436. package/esm/core/utils/components/Resizer.js +191 -249
  437. package/esm/core/utils/components/VirtualScroll.js +218 -297
  438. package/esm/core/utils/components/WithCSSTransition.js +26 -43
  439. package/esm/core/utils/functions/colors.js +19 -19
  440. package/esm/core/utils/functions/date.js +8 -8
  441. package/esm/core/utils/functions/dev.js +12 -11
  442. package/esm/core/utils/functions/dom.js +14 -17
  443. package/esm/core/utils/functions/focusable.js +15 -24
  444. package/esm/core/utils/functions/import.js +2 -4
  445. package/esm/core/utils/functions/numbers.js +7 -7
  446. package/esm/core/utils/functions/polymorphic.js +23 -32
  447. package/esm/core/utils/functions/react.js +19 -21
  448. package/esm/core/utils/functions/supports.js +1 -2
  449. package/esm/core/utils/hooks/useContainerWidth.js +13 -16
  450. package/esm/core/utils/hooks/useControlledState.js +8 -17
  451. package/esm/core/utils/hooks/useDragAndDrop.js +80 -99
  452. package/esm/core/utils/hooks/useEventListener.js +18 -18
  453. package/esm/core/utils/hooks/useGlobals.js +21 -27
  454. package/esm/core/utils/hooks/useId.js +3 -3
  455. package/esm/core/utils/hooks/useIntersection.js +19 -25
  456. package/esm/core/utils/hooks/useIsClient.js +5 -5
  457. package/esm/core/utils/hooks/useIsomorphicLayoutEffect.js +1 -2
  458. package/esm/core/utils/hooks/useLatestRef.js +5 -5
  459. package/esm/core/utils/hooks/useMediaQuery.js +25 -23
  460. package/esm/core/utils/hooks/useMergedRefs.js +12 -11
  461. package/esm/core/utils/hooks/useOverflow.js +51 -63
  462. package/esm/core/utils/hooks/useResizeObserver.js +12 -17
  463. package/esm/core/utils/hooks/useSafeContext.js +5 -5
  464. package/esm/core/utils/icons/StatusIconMap.js +4 -8
  465. package/esm/core/utils/icons/SvgCalendar.js +2 -7
  466. package/esm/core/utils/icons/SvgCaretDownSmall.js +2 -7
  467. package/esm/core/utils/icons/SvgCaretRightSmall.js +2 -7
  468. package/esm/core/utils/icons/SvgCaretUpSmall.js +2 -7
  469. package/esm/core/utils/icons/SvgCheckmark.js +2 -5
  470. package/esm/core/utils/icons/SvgCheckmarkSmall.js +2 -7
  471. package/esm/core/utils/icons/SvgChevronLeft.js +2 -7
  472. package/esm/core/utils/icons/SvgChevronLeftDouble.js +2 -7
  473. package/esm/core/utils/icons/SvgChevronRight.js +2 -7
  474. package/esm/core/utils/icons/SvgChevronRightDouble.js +2 -7
  475. package/esm/core/utils/icons/SvgClose.js +2 -7
  476. package/esm/core/utils/icons/SvgCloseSmall.js +2 -7
  477. package/esm/core/utils/icons/SvgColumnManager.js +2 -7
  478. package/esm/core/utils/icons/SvgDocument.js +2 -5
  479. package/esm/core/utils/icons/SvgFilter.js +2 -5
  480. package/esm/core/utils/icons/SvgFilterHollow.js +2 -7
  481. package/esm/core/utils/icons/SvgImportantSmall.js +2 -7
  482. package/esm/core/utils/icons/SvgInfoCircular.js +2 -7
  483. package/esm/core/utils/icons/SvgMore.js +2 -7
  484. package/esm/core/utils/icons/SvgMoreVertical.js +2 -7
  485. package/esm/core/utils/icons/SvgNew.js +2 -7
  486. package/esm/core/utils/icons/SvgSearch.js +2 -7
  487. package/esm/core/utils/icons/SvgSmileyHappy.js +2 -7
  488. package/esm/core/utils/icons/SvgSortDown.js +2 -7
  489. package/esm/core/utils/icons/SvgSortUp.js +2 -7
  490. package/esm/core/utils/icons/SvgStatusError.js +2 -7
  491. package/esm/core/utils/icons/SvgStatusSuccess.js +2 -7
  492. package/esm/core/utils/icons/SvgStatusWarning.js +2 -7
  493. package/esm/core/utils/icons/SvgSwap.js +2 -7
  494. package/esm/core/utils/icons/SvgUpload.js +2 -7
  495. package/esm/index.js +3 -21
  496. package/esm/styles.js +414 -425
  497. package/package.json +2 -2
  498. package/styles.css +6 -6
@@ -7,33 +7,15 @@ import { Button } from '../Buttons/Button.js';
7
7
  import { NonIdealState } from './NonIdealState.js';
8
8
  import { ProgressRadial } from '../ProgressIndicators/ProgressRadial.js';
9
9
  import { dynamicImport } from '../utils/index.js';
10
- const Svg401 = React.lazy(() =>
11
- dynamicImport('@itwin/itwinui-illustrations-react/Svg401'),
12
- );
13
- const Svg403 = React.lazy(() =>
14
- dynamicImport('@itwin/itwinui-illustrations-react/Svg403'),
15
- );
16
- const Svg404 = React.lazy(() =>
17
- dynamicImport('@itwin/itwinui-illustrations-react/Svg404'),
18
- );
19
- const Svg500 = React.lazy(() =>
20
- dynamicImport('@itwin/itwinui-illustrations-react/Svg500'),
21
- );
22
- const Svg502 = React.lazy(() =>
23
- dynamicImport('@itwin/itwinui-illustrations-react/Svg502'),
24
- );
25
- const Svg503 = React.lazy(() =>
26
- dynamicImport('@itwin/itwinui-illustrations-react/Svg503'),
27
- );
28
- const SvgError = React.lazy(() =>
29
- dynamicImport('@itwin/itwinui-illustrations-react/SvgError'),
30
- );
31
- const SvgRedirect = React.lazy(() =>
32
- dynamicImport('@itwin/itwinui-illustrations-react/SvgRedirect'),
33
- );
34
- const SvgTimedOut = React.lazy(() =>
35
- dynamicImport('@itwin/itwinui-illustrations-react/SvgTimedOut'),
36
- );
10
+ const Svg401 = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/Svg401'));
11
+ const Svg403 = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/Svg403'));
12
+ const Svg404 = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/Svg404'));
13
+ const Svg500 = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/Svg500'));
14
+ const Svg502 = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/Svg502'));
15
+ const Svg503 = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/Svg503'));
16
+ const SvgError = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/SvgError'));
17
+ const SvgRedirect = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/SvgRedirect'));
18
+ const SvgTimedOut = React.lazy(() => dynamicImport('@itwin/itwinui-illustrations-react/SvgTimedOut'));
37
19
  /**
38
20
  * @deprecated Use `NonIdealState` instead for a smaller client bundle.
39
21
  *
@@ -42,156 +24,124 @@ const SvgTimedOut = React.lazy(() =>
42
24
  * <ErrorPage errorType='401' />
43
25
  */
44
26
  export const ErrorPage = React.forwardRef((props, forwardedRef) => {
45
- const {
46
- errorType,
47
- errorName,
48
- errorMessage,
49
- primaryButtonHandle,
50
- primaryButtonLabel,
51
- secondaryButtonHandle,
52
- secondaryButtonLabel,
53
- translatedErrorMessages,
54
- ...rest
55
- } = props;
56
- const defaultErrorMessages = {
57
- badGateway: 'Bad gateway',
58
- error: 'Error',
59
- forbidden: 'Forbidden',
60
- internalServerError: 'Internal server error',
61
- redirect: 'Redirect',
62
- pageNotFound: 'Page not found',
63
- serviceUnavailable: 'Service unavailable',
64
- timedOut: 'Timed out',
65
- unauthorized: 'Unauthorized',
66
- ...translatedErrorMessages,
67
- };
68
- function getErrorIcon() {
69
- switch (errorType) {
70
- case '300':
71
- case '301':
72
- case '302':
73
- case '303':
74
- case '304':
75
- case '305':
76
- case '307':
77
- case '308': {
78
- return React.createElement(SvgRedirect, null);
79
- }
80
- case '401': {
81
- return React.createElement(Svg401, null);
82
- }
83
- case '403': {
84
- return React.createElement(Svg403, null);
85
- }
86
- case '404': {
87
- return React.createElement(Svg404, null);
88
- }
89
- case '408':
90
- case '504': {
91
- return React.createElement(SvgTimedOut, null);
92
- }
93
- case '500': {
94
- return React.createElement(Svg500, null);
95
- }
96
- case '502': {
97
- return React.createElement(Svg502, null);
98
- }
99
- case '503': {
100
- return React.createElement(Svg503, null);
101
- }
102
- case 'generic':
103
- default: {
104
- return React.createElement(SvgError, null);
105
- }
27
+ const { errorType, errorName, errorMessage, primaryButtonHandle, primaryButtonLabel, secondaryButtonHandle, secondaryButtonLabel, translatedErrorMessages, ...rest } = props;
28
+ const defaultErrorMessages = {
29
+ badGateway: 'Bad gateway',
30
+ error: 'Error',
31
+ forbidden: 'Forbidden',
32
+ internalServerError: 'Internal server error',
33
+ redirect: 'Redirect',
34
+ pageNotFound: 'Page not found',
35
+ serviceUnavailable: 'Service unavailable',
36
+ timedOut: 'Timed out',
37
+ unauthorized: 'Unauthorized',
38
+ ...translatedErrorMessages,
39
+ };
40
+ function getErrorIcon() {
41
+ switch (errorType) {
42
+ case '300':
43
+ case '301':
44
+ case '302':
45
+ case '303':
46
+ case '304':
47
+ case '305':
48
+ case '307':
49
+ case '308': {
50
+ return React.createElement(SvgRedirect, null);
51
+ }
52
+ case '401': {
53
+ return React.createElement(Svg401, null);
54
+ }
55
+ case '403': {
56
+ return React.createElement(Svg403, null);
57
+ }
58
+ case '404': {
59
+ return React.createElement(Svg404, null);
60
+ }
61
+ case '408':
62
+ case '504': {
63
+ return React.createElement(SvgTimedOut, null);
64
+ }
65
+ case '500': {
66
+ return React.createElement(Svg500, null);
67
+ }
68
+ case '502': {
69
+ return React.createElement(Svg502, null);
70
+ }
71
+ case '503': {
72
+ return React.createElement(Svg503, null);
73
+ }
74
+ case 'generic':
75
+ default: {
76
+ return React.createElement(SvgError, null);
77
+ }
78
+ }
106
79
  }
107
- }
108
- function getHeadingMessage() {
109
- if (errorName) {
110
- return errorName;
80
+ function getHeadingMessage() {
81
+ if (errorName) {
82
+ return errorName;
83
+ }
84
+ switch (errorType) {
85
+ case '300':
86
+ case '301':
87
+ case '302':
88
+ case '303':
89
+ case '304':
90
+ case '305':
91
+ case '307':
92
+ case '308': {
93
+ return defaultErrorMessages.redirect || '';
94
+ }
95
+ case '401': {
96
+ return defaultErrorMessages.unauthorized;
97
+ }
98
+ case '403': {
99
+ return defaultErrorMessages.forbidden;
100
+ }
101
+ case '404': {
102
+ return defaultErrorMessages.pageNotFound;
103
+ }
104
+ case '408':
105
+ case '504': {
106
+ return defaultErrorMessages.timedOut || '';
107
+ }
108
+ case '500': {
109
+ return defaultErrorMessages.internalServerError;
110
+ }
111
+ case '502': {
112
+ return defaultErrorMessages.badGateway;
113
+ }
114
+ case '503': {
115
+ return defaultErrorMessages.serviceUnavailable;
116
+ }
117
+ case 'generic':
118
+ default: {
119
+ return defaultErrorMessages.error;
120
+ }
121
+ }
111
122
  }
112
- switch (errorType) {
113
- case '300':
114
- case '301':
115
- case '302':
116
- case '303':
117
- case '304':
118
- case '305':
119
- case '307':
120
- case '308': {
121
- return defaultErrorMessages.redirect || '';
122
- }
123
- case '401': {
124
- return defaultErrorMessages.unauthorized;
125
- }
126
- case '403': {
127
- return defaultErrorMessages.forbidden;
128
- }
129
- case '404': {
130
- return defaultErrorMessages.pageNotFound;
131
- }
132
- case '408':
133
- case '504': {
134
- return defaultErrorMessages.timedOut || '';
135
- }
136
- case '500': {
137
- return defaultErrorMessages.internalServerError;
138
- }
139
- case '502': {
140
- return defaultErrorMessages.badGateway;
141
- }
142
- case '503': {
143
- return defaultErrorMessages.serviceUnavailable;
144
- }
145
- case 'generic':
146
- default: {
147
- return defaultErrorMessages.error;
148
- }
123
+ function getPrimaryButton() {
124
+ if (!primaryButtonHandle || !primaryButtonLabel) {
125
+ return undefined;
126
+ }
127
+ return (React.createElement(Button, { styleType: 'high-visibility', onClick: primaryButtonHandle }, primaryButtonLabel));
149
128
  }
150
- }
151
- function getPrimaryButton() {
152
- if (!primaryButtonHandle || !primaryButtonLabel) {
153
- return undefined;
129
+ function getSecondaryButton() {
130
+ if (!secondaryButtonHandle || !secondaryButtonLabel) {
131
+ return undefined;
132
+ }
133
+ return (React.createElement(Button, { styleType: 'default', onClick: secondaryButtonHandle }, secondaryButtonLabel));
154
134
  }
155
- return React.createElement(
156
- Button,
157
- { styleType: 'high-visibility', onClick: primaryButtonHandle },
158
- primaryButtonLabel,
159
- );
160
- }
161
- function getSecondaryButton() {
162
- if (!secondaryButtonHandle || !secondaryButtonLabel) {
163
- return undefined;
135
+ function getActions() {
136
+ const primaryButton = getPrimaryButton();
137
+ const secondaryButton = getSecondaryButton();
138
+ if (!primaryButton && !secondaryButton) {
139
+ return undefined;
140
+ }
141
+ return (React.createElement(React.Fragment, null,
142
+ primaryButton,
143
+ secondaryButton));
164
144
  }
165
- return React.createElement(
166
- Button,
167
- { styleType: 'default', onClick: secondaryButtonHandle },
168
- secondaryButtonLabel,
169
- );
170
- }
171
- function getActions() {
172
- const primaryButton = getPrimaryButton();
173
- const secondaryButton = getSecondaryButton();
174
- if (!primaryButton && !secondaryButton) {
175
- return undefined;
176
- }
177
- return React.createElement(
178
- React.Fragment,
179
- null,
180
- primaryButton,
181
- secondaryButton,
182
- );
183
- }
184
- return React.createElement(NonIdealState, {
185
- svg: React.createElement(
186
- React.Suspense,
187
- { fallback: React.createElement(ProgressRadial, null) },
188
- getErrorIcon(),
189
- ),
190
- heading: getHeadingMessage(),
191
- description: errorMessage,
192
- actions: getActions(),
193
- ref: forwardedRef,
194
- ...rest,
195
- });
145
+ return (React.createElement(NonIdealState, { svg: React.createElement(React.Suspense, { fallback: React.createElement(ProgressRadial, null) }, getErrorIcon()), heading: getHeadingMessage(), description: errorMessage, actions: getActions(), ref: forwardedRef, ...rest }));
196
146
  });
197
147
  export default ErrorPage;
@@ -13,70 +13,11 @@ import cx from 'classnames';
13
13
  * <NonIdealState svg={<Svg404 />} heading='Not found' />
14
14
  */
15
15
  export const NonIdealState = React.forwardRef((props, forwardedRef) => {
16
- const {
17
- className,
18
- svg,
19
- heading,
20
- description,
21
- actions,
22
- illustrationProps,
23
- titleProps,
24
- descriptionProps,
25
- actionsProps,
26
- ...rest
27
- } = props;
28
- return React.createElement(
29
- Box,
30
- {
31
- className: cx('iui-non-ideal-state', className),
32
- ref: forwardedRef,
33
- ...rest,
34
- },
35
- React.createElement(
36
- Box,
37
- {
38
- as: 'div',
39
- ...illustrationProps,
40
- className: cx(
41
- 'iui-non-ideal-state-illustration',
42
- illustrationProps?.className,
43
- ),
44
- },
45
- svg,
46
- ),
47
- heading &&
48
- React.createElement(
49
- Box,
50
- {
51
- as: 'div',
52
- ...titleProps,
53
- className: cx('iui-non-ideal-state-title', titleProps?.className),
54
- },
55
- heading,
56
- ),
57
- description &&
58
- React.createElement(
59
- Box,
60
- {
61
- as: 'div',
62
- ...descriptionProps,
63
- className: cx(
64
- 'iui-non-ideal-state-description',
65
- descriptionProps?.className,
66
- ),
67
- },
68
- description,
69
- ),
70
- actions &&
71
- React.createElement(
72
- Box,
73
- {
74
- as: 'div',
75
- ...actionsProps,
76
- className: cx('iui-non-ideal-state-actions', actionsProps?.className),
77
- },
78
- actions,
79
- ),
80
- );
16
+ const { className, svg, heading, description, actions, illustrationProps, titleProps, descriptionProps, actionsProps, ...rest } = props;
17
+ return (React.createElement(Box, { className: cx('iui-non-ideal-state', className), ref: forwardedRef, ...rest },
18
+ React.createElement(Box, { as: 'div', ...illustrationProps, className: cx('iui-non-ideal-state-illustration', illustrationProps?.className) }, svg),
19
+ heading && (React.createElement(Box, { as: 'div', ...titleProps, className: cx('iui-non-ideal-state-title', titleProps?.className) }, heading)),
20
+ description && (React.createElement(Box, { as: 'div', ...descriptionProps, className: cx('iui-non-ideal-state-description', descriptionProps?.className) }, description)),
21
+ actions && (React.createElement(Box, { as: 'div', ...actionsProps, className: cx('iui-non-ideal-state-actions', actionsProps?.className) }, actions))));
81
22
  });
82
23
  export default NonIdealState;
@@ -18,25 +18,7 @@ import cx from 'classnames';
18
18
  * <NotificationMarker status='positive' pulsing={true}>Live</NotificationMarker>
19
19
  */
20
20
  export const NotificationMarker = React.forwardRef((props, ref) => {
21
- const {
22
- className,
23
- children,
24
- status = 'primary',
25
- pulsing = false,
26
- enabled = true,
27
- ...rest
28
- } = props;
29
- return React.createElement(
30
- Box,
31
- {
32
- as: 'span',
33
- ref: ref,
34
- className: cx({ 'iui-notification-marker': enabled }, className),
35
- 'data-iui-variant': enabled ? status : null,
36
- 'data-iui-urgent': enabled ? pulsing : null,
37
- ...rest,
38
- },
39
- children,
40
- );
21
+ const { className, children, status = 'primary', pulsing = false, enabled = true, ...rest } = props;
22
+ return (React.createElement(Box, { as: 'span', ref: ref, className: cx({ 'iui-notification-marker': enabled }, className), "data-iui-variant": enabled ? status : null, "data-iui-urgent": enabled ? pulsing : null, ...rest }, children));
41
23
  });
42
24
  export default NotificationMarker;
@@ -2,55 +2,51 @@ import React from 'react';
2
2
  import type { PolymorphicForwardRefComponent } from '../utils/index.js';
3
3
  type OverlayComponentProps = {
4
4
  /**
5
- * The sub-component elements of Overlay.
5
+ * Page elements that are blurred by the Overlay. Will become blurred and inert.
6
6
  */
7
7
  children?: React.ReactNode;
8
8
  /**
9
- * Placeholder for Progress Indicator in Overlay
9
+ * Content shown inside the Overlay, on top of the blurred content.
10
+ *
11
+ * Can be used to show a loading indicator.
10
12
  */
11
13
  content?: React.ReactNode;
12
14
  };
13
15
  /**
16
+ * The Overlay component can be used to hide some UI while its content is loading or revalidating,
17
+ * and display a loading indicator on top of it.
14
18
  *
15
- * This is an Overlay Component.
16
- *
19
+ * The hidden content gets blurred and becomes inert so it cannot be interacted with.
17
20
  *
18
21
  * @example
19
- * <Overlay content="loading">
20
- * content beneath the overlay... (text, img, etc.)
22
+ * <Overlay content="loading">
23
+ * content beneath the overlay (text, img, etc.)
21
24
  * </Overlay>
22
25
  *
23
- *
24
- * This is an Overlay Component using subcomponents.
25
- *
26
- *
27
26
  * @example
28
27
  * <Overlay.Wrapper>
29
- * <Overlay.Overlay>
30
- * loading...
31
- * <Overlay.Overlay>
32
- * <Overlay.HiddenContent>
33
- * content beneath the overlay... (text, img, etc.)
34
- * <Overlay.HiddenContent />
28
+ * <Overlay.Overlay>
29
+ * loading
30
+ * <Overlay.Overlay>
31
+ * <Overlay.HiddenContent>
32
+ * content beneath the overlay (text, img, etc.)
33
+ * <Overlay.HiddenContent />
35
34
  * </Overlay.Wrapper>
36
- *
37
- *
38
35
  */
39
36
  export declare const Overlay: PolymorphicForwardRefComponent<"div", OverlayComponentProps> & {
40
37
  /**
41
- *
42
38
  * The main component is a wrapper to hold the
43
- * Overlay HiddenContent and Overlay Message.
39
+ * `Overlay.HiddenContent` and `Overlay.Overlay`.
44
40
  */
45
41
  Wrapper: PolymorphicForwardRefComponent<NonNullable<keyof JSX.IntrinsicElements>, {}>;
46
42
  /**
47
- * HiddenContent houses page elements that are blurred by the
48
- * Overlay.
43
+ * `Overlay.HiddenContent` houses page elements that are blurred by the
44
+ * Overlay. These elements will become inert when the overlay is active.
49
45
  */
50
46
  HiddenContent: PolymorphicForwardRefComponent<"div", {}>;
51
47
  /**
52
- * Message contains the progress indicator and loading message
53
- * for the Overlay. It sits on top of the HiddenContent.
48
+ * `Overlay.Overlay` sits on top of the HiddenContent, and can show
49
+ * any arbitrary content like a progress indicator and loading message.
54
50
  */
55
51
  Overlay: PolymorphicForwardRefComponent<NonNullable<keyof JSX.IntrinsicElements>, {}>;
56
52
  };
@@ -6,83 +6,73 @@ import React from 'react';
6
6
  import { Box, polymorphic, dynamicImport } from '../utils/index.js';
7
7
  // --------------------------------------------------------------------------------
8
8
  const OverlayComponent = React.forwardRef((props, forwardedRef) => {
9
- const { content, children, ...rest } = props;
10
- return React.createElement(
11
- OverlayWrapper,
12
- { ref: forwardedRef, ...rest },
13
- React.createElement(OverlayMessage, null, content),
14
- React.createElement(OverlayHiddenContent, null, children),
15
- );
9
+ const { content, children, ...rest } = props;
10
+ return (React.createElement(OverlayWrapper, { ref: forwardedRef, ...rest },
11
+ React.createElement(OverlayOverlay, null, content),
12
+ React.createElement(OverlayHiddenContent, null, children)));
16
13
  });
17
14
  OverlayComponent.displayName = 'Overlay';
18
15
  // --------------------------------------------------------------------------------
19
16
  const OverlayHiddenContent = React.forwardRef((props, ref) => {
20
- const { children, ...rest } = props;
21
- useInertPolyfill();
22
- return React.createElement(Box, { inert: '', ref: ref, ...rest }, children);
17
+ const { children, ...rest } = props;
18
+ useInertPolyfill();
19
+ return (React.createElement(Box, { inert: '', ref: ref, ...rest }, children));
23
20
  });
24
21
  OverlayHiddenContent.displayName = 'Overlay.HiddenContent';
25
22
  // --------------------------------------------------------------------------------
26
- const OverlayMessage = polymorphic('iui-overlay');
27
- OverlayMessage.displayName = 'Overlay.Overlay';
23
+ const OverlayOverlay = polymorphic('iui-overlay');
24
+ OverlayOverlay.displayName = 'Overlay.Overlay';
28
25
  // --------------------------------------------------------------------------------
29
26
  const OverlayWrapper = polymorphic('iui-overlay-wrapper');
30
27
  OverlayWrapper.displayName = 'Overlay.Wrapper';
31
28
  // --------------------------------------------------------------------------------
32
29
  /**
30
+ * The Overlay component can be used to hide some UI while its content is loading or revalidating,
31
+ * and display a loading indicator on top of it.
33
32
  *
34
- * This is an Overlay Component.
35
- *
33
+ * The hidden content gets blurred and becomes inert so it cannot be interacted with.
36
34
  *
37
35
  * @example
38
- * <Overlay content="loading">
39
- * content beneath the overlay... (text, img, etc.)
36
+ * <Overlay content="loading">
37
+ * content beneath the overlay (text, img, etc.)
40
38
  * </Overlay>
41
39
  *
42
- *
43
- * This is an Overlay Component using subcomponents.
44
- *
45
- *
46
40
  * @example
47
41
  * <Overlay.Wrapper>
48
- * <Overlay.Overlay>
49
- * loading...
50
- * <Overlay.Overlay>
51
- * <Overlay.HiddenContent>
52
- * content beneath the overlay... (text, img, etc.)
53
- * <Overlay.HiddenContent />
42
+ * <Overlay.Overlay>
43
+ * loading
44
+ * <Overlay.Overlay>
45
+ * <Overlay.HiddenContent>
46
+ * content beneath the overlay (text, img, etc.)
47
+ * <Overlay.HiddenContent />
54
48
  * </Overlay.Wrapper>
55
- *
56
- *
57
49
  */
58
50
  export const Overlay = Object.assign(OverlayComponent, {
59
- /**
60
- *
61
- * The main component is a wrapper to hold the
62
- * Overlay HiddenContent and Overlay Message.
63
- */
64
- Wrapper: OverlayWrapper,
65
- /**
66
- * HiddenContent houses page elements that are blurred by the
67
- * Overlay.
68
- */
69
- HiddenContent: OverlayHiddenContent,
70
- /**
71
- * Message contains the progress indicator and loading message
72
- * for the Overlay. It sits on top of the HiddenContent.
73
- */
74
- Overlay: OverlayMessage,
51
+ /**
52
+ * The main component is a wrapper to hold the
53
+ * `Overlay.HiddenContent` and `Overlay.Overlay`.
54
+ */
55
+ Wrapper: OverlayWrapper,
56
+ /**
57
+ * `Overlay.HiddenContent` houses page elements that are blurred by the
58
+ * Overlay. These elements will become inert when the overlay is active.
59
+ */
60
+ HiddenContent: OverlayHiddenContent,
61
+ /**
62
+ * `Overlay.Overlay` sits on top of the HiddenContent, and can show
63
+ * any arbitrary content like a progress indicator and loading message.
64
+ */
65
+ Overlay: OverlayOverlay,
75
66
  });
76
67
  const useInertPolyfill = () => {
77
- const loaded = React.useRef(false);
78
- const modulePath =
79
- 'https://cdn.jsdelivr.net/npm/wicg-inert@3.1.2/dist/inert.min.js';
80
- React.useEffect(() => {
81
- async () => {
82
- if (!HTMLElement.prototype.hasOwnProperty('inert') && !loaded.current) {
83
- await dynamicImport(modulePath);
84
- loaded.current = true;
85
- }
86
- };
87
- }, []);
68
+ const loaded = React.useRef(false);
69
+ const modulePath = 'https://cdn.jsdelivr.net/npm/wicg-inert@3.1.2/dist/inert.min.js';
70
+ React.useEffect(() => {
71
+ (async () => {
72
+ if (!HTMLElement.prototype.hasOwnProperty('inert') && !loaded.current) {
73
+ await dynamicImport(modulePath);
74
+ loaded.current = true;
75
+ }
76
+ })();
77
+ }, []);
88
78
  };