@itwin/itwinui-react 3.0.4 → 3.0.6

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 (500) hide show
  1. package/CHANGELOG.md +13 -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 +137 -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 -276
  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.js +232 -417
  161. package/cjs/core/Tag/Tag.js +15 -42
  162. package/cjs/core/Tag/TagContainer.js +11 -23
  163. package/cjs/core/Textarea/Textarea.js +6 -11
  164. package/cjs/core/ThemeProvider/ThemeContext.js +4 -4
  165. package/cjs/core/ThemeProvider/ThemeProvider.js +52 -105
  166. package/cjs/core/Tile/Tile.js +230 -410
  167. package/cjs/core/TimePicker/TimePicker.js +234 -458
  168. package/cjs/core/Toast/Toast.js +107 -204
  169. package/cjs/core/Toast/Toaster.js +77 -102
  170. package/cjs/core/ToggleSwitch/ToggleSwitch.js +23 -66
  171. package/cjs/core/Tooltip/Tooltip.js +91 -137
  172. package/cjs/core/TransferList/TransferList.js +103 -177
  173. package/cjs/core/Tree/Tree.js +129 -204
  174. package/cjs/core/Tree/TreeContext.js +9 -9
  175. package/cjs/core/Tree/TreeNode.js +104 -207
  176. package/cjs/core/Tree/TreeNodeExpander.js +12 -26
  177. package/cjs/core/Typography/Anchor.js +3 -3
  178. package/cjs/core/Typography/Blockquote.js +10 -18
  179. package/cjs/core/Typography/Code.js +3 -3
  180. package/cjs/core/Typography/Kbd.js +21 -30
  181. package/cjs/core/Typography/Text.js +13 -26
  182. package/cjs/core/VisuallyHidden/VisuallyHidden.js +8 -14
  183. package/cjs/core/utils/color/ColorValue.js +453 -535
  184. package/cjs/core/utils/color/index.js +4 -4
  185. package/cjs/core/utils/components/AutoclearingHiddenLiveRegion.js +13 -20
  186. package/cjs/core/utils/components/Box.js +3 -3
  187. package/cjs/core/utils/components/ButtonBase.js +20 -38
  188. package/cjs/core/utils/components/FocusTrap.js +38 -47
  189. package/cjs/core/utils/components/InputContainer.js +19 -58
  190. package/cjs/core/utils/components/InputFlexContainer.js +8 -24
  191. package/cjs/core/utils/components/MiddleTextTruncation.js +22 -32
  192. package/cjs/core/utils/components/Portal.js +20 -22
  193. package/cjs/core/utils/components/Resizer.js +196 -253
  194. package/cjs/core/utils/components/VirtualScroll.js +223 -304
  195. package/cjs/core/utils/components/WithCSSTransition.js +32 -49
  196. package/cjs/core/utils/components/index.js +14 -14
  197. package/cjs/core/utils/functions/colors.js +22 -25
  198. package/cjs/core/utils/functions/date.js +10 -10
  199. package/cjs/core/utils/functions/dev.js +14 -13
  200. package/cjs/core/utils/functions/dom.d.ts +2 -1
  201. package/cjs/core/utils/functions/dom.js +22 -25
  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.d.ts +7 -0
  206. package/cjs/core/utils/functions/numbers.js +21 -10
  207. package/cjs/core/utils/functions/polymorphic.js +30 -43
  208. package/cjs/core/utils/functions/react.js +24 -26
  209. package/cjs/core/utils/functions/supports.js +4 -5
  210. package/cjs/core/utils/hooks/index.js +17 -17
  211. package/cjs/core/utils/hooks/useContainerWidth.js +19 -26
  212. package/cjs/core/utils/hooks/useControlledState.js +12 -21
  213. package/cjs/core/utils/hooks/useDragAndDrop.js +87 -110
  214. package/cjs/core/utils/hooks/useEventListener.js +22 -22
  215. package/cjs/core/utils/hooks/useGlobals.js +27 -33
  216. package/cjs/core/utils/hooks/useId.js +8 -10
  217. package/cjs/core/utils/hooks/useIntersection.js +24 -30
  218. package/cjs/core/utils/hooks/useIsClient.js +9 -9
  219. package/cjs/core/utils/hooks/useIsomorphicLayoutEffect.js +5 -6
  220. package/cjs/core/utils/hooks/useLatestRef.js +9 -9
  221. package/cjs/core/utils/hooks/useMediaQuery.js +31 -31
  222. package/cjs/core/utils/hooks/useMergedRefs.js +16 -15
  223. package/cjs/core/utils/hooks/useOverflow.js +57 -70
  224. package/cjs/core/utils/hooks/useResizeObserver.js +17 -22
  225. package/cjs/core/utils/hooks/useSafeContext.js +9 -9
  226. package/cjs/core/utils/icons/StatusIconMap.js +12 -28
  227. package/cjs/core/utils/icons/Svg.js +3 -3
  228. package/cjs/core/utils/icons/SvgCalendar.js +7 -12
  229. package/cjs/core/utils/icons/SvgCaretDownSmall.js +7 -12
  230. package/cjs/core/utils/icons/SvgCaretRightSmall.js +7 -12
  231. package/cjs/core/utils/icons/SvgCaretUpSmall.js +7 -12
  232. package/cjs/core/utils/icons/SvgCheckmark.js +7 -10
  233. package/cjs/core/utils/icons/SvgCheckmarkSmall.js +7 -12
  234. package/cjs/core/utils/icons/SvgChevronLeft.js +7 -12
  235. package/cjs/core/utils/icons/SvgChevronLeftDouble.js +7 -12
  236. package/cjs/core/utils/icons/SvgChevronRight.js +7 -12
  237. package/cjs/core/utils/icons/SvgChevronRightDouble.js +7 -12
  238. package/cjs/core/utils/icons/SvgClose.js +7 -12
  239. package/cjs/core/utils/icons/SvgCloseSmall.js +7 -12
  240. package/cjs/core/utils/icons/SvgColumnManager.js +7 -12
  241. package/cjs/core/utils/icons/SvgDocument.js +7 -10
  242. package/cjs/core/utils/icons/SvgFilter.js +7 -10
  243. package/cjs/core/utils/icons/SvgFilterHollow.js +7 -12
  244. package/cjs/core/utils/icons/SvgImportantSmall.js +7 -12
  245. package/cjs/core/utils/icons/SvgInfoCircular.js +7 -12
  246. package/cjs/core/utils/icons/SvgMore.js +7 -12
  247. package/cjs/core/utils/icons/SvgMoreVertical.js +7 -12
  248. package/cjs/core/utils/icons/SvgNew.js +7 -12
  249. package/cjs/core/utils/icons/SvgSearch.js +7 -12
  250. package/cjs/core/utils/icons/SvgSmileyHappy.js +7 -12
  251. package/cjs/core/utils/icons/SvgSortDown.js +7 -12
  252. package/cjs/core/utils/icons/SvgSortUp.js +7 -12
  253. package/cjs/core/utils/icons/SvgStatusError.js +7 -12
  254. package/cjs/core/utils/icons/SvgStatusSuccess.js +7 -12
  255. package/cjs/core/utils/icons/SvgStatusWarning.js +7 -12
  256. package/cjs/core/utils/icons/SvgSwap.js +7 -12
  257. package/cjs/core/utils/icons/SvgUpload.js +7 -12
  258. package/cjs/core/utils/icons/index.js +34 -34
  259. package/cjs/core/utils/index.js +10 -10
  260. package/cjs/core/utils/props.js +2 -2
  261. package/cjs/core/utils/types.js +2 -2
  262. package/cjs/index.js +229 -949
  263. package/cjs/react-table/react-table.js +2 -2
  264. package/cjs/styles.js +412 -425
  265. package/esm/core/Alert/Alert.js +39 -106
  266. package/esm/core/Avatar/Avatar.js +14 -42
  267. package/esm/core/AvatarGroup/AvatarGroup.js +20 -58
  268. package/esm/core/Backdrop/Backdrop.js +2 -10
  269. package/esm/core/Badge/Badge.js +16 -31
  270. package/esm/core/Breadcrumbs/Breadcrumbs.js +55 -135
  271. package/esm/core/ButtonGroup/ButtonGroup.js +25 -61
  272. package/esm/core/Buttons/Button.js +5 -45
  273. package/esm/core/Buttons/DropdownButton.js +7 -37
  274. package/esm/core/Buttons/IconButton.js +5 -40
  275. package/esm/core/Buttons/IdeasButton.js +2 -12
  276. package/esm/core/Buttons/SplitButton.js +34 -101
  277. package/esm/core/Carousel/Carousel.js +43 -72
  278. package/esm/core/Carousel/CarouselDot.js +6 -17
  279. package/esm/core/Carousel/CarouselDotsList.js +85 -147
  280. package/esm/core/Carousel/CarouselNavigation.js +32 -68
  281. package/esm/core/Carousel/CarouselSlide.js +19 -41
  282. package/esm/core/Carousel/CarouselSlider.js +41 -65
  283. package/esm/core/Checkbox/Checkbox.js +25 -78
  284. package/esm/core/ColorPicker/ColorBuilder.js +167 -280
  285. package/esm/core/ColorPicker/ColorInputPanel.js +237 -395
  286. package/esm/core/ColorPicker/ColorPalette.js +14 -35
  287. package/esm/core/ColorPicker/ColorPicker.js +46 -79
  288. package/esm/core/ColorPicker/ColorPickerContext.js +5 -7
  289. package/esm/core/ColorPicker/ColorSwatch.js +7 -24
  290. package/esm/core/ComboBox/ComboBox.js +267 -396
  291. package/esm/core/ComboBox/ComboBoxEndIcon.js +5 -18
  292. package/esm/core/ComboBox/ComboBoxInput.js +125 -197
  293. package/esm/core/ComboBox/ComboBoxInputContainer.js +5 -20
  294. package/esm/core/ComboBox/ComboBoxMenu.js +37 -77
  295. package/esm/core/ComboBox/ComboBoxMenuItem.js +14 -61
  296. package/esm/core/ComboBox/ComboBoxMultipleContainer.js +2 -6
  297. package/esm/core/ComboBox/helpers.js +38 -38
  298. package/esm/core/DatePicker/DatePicker.js +326 -555
  299. package/esm/core/Dialog/Dialog.js +24 -53
  300. package/esm/core/Dialog/DialogBackdrop.js +19 -39
  301. package/esm/core/Dialog/DialogContent.js +12 -20
  302. package/esm/core/Dialog/DialogContext.js +1 -1
  303. package/esm/core/Dialog/DialogDragContext.js +4 -4
  304. package/esm/core/Dialog/DialogMain.js +128 -177
  305. package/esm/core/Dialog/DialogTitleBar.js +10 -45
  306. package/esm/core/Divider/Divider.js +2 -8
  307. package/esm/core/DropdownMenu/DropdownMenu.js +40 -75
  308. package/esm/core/ExpandableBlock/ExpandableBlock.js +92 -193
  309. package/esm/core/Fieldset/Fieldset.js +8 -19
  310. package/esm/core/FileUpload/FileEmptyCard.js +8 -19
  311. package/esm/core/FileUpload/FileUpload.js +36 -72
  312. package/esm/core/FileUpload/FileUploadCard.js +76 -153
  313. package/esm/core/FileUpload/FileUploadTemplate.js +9 -37
  314. package/esm/core/Flex/Flex.js +71 -87
  315. package/esm/core/Footer/Footer.js +55 -86
  316. package/esm/core/Footer/FooterSeparator.js +1 -1
  317. package/esm/core/Header/Header.js +14 -55
  318. package/esm/core/Header/HeaderBasicButton.js +7 -15
  319. package/esm/core/Header/HeaderBreadcrumbs.js +8 -32
  320. package/esm/core/Header/HeaderButton.js +14 -62
  321. package/esm/core/Header/HeaderDropdownButton.js +13 -42
  322. package/esm/core/Header/HeaderLogo.js +5 -36
  323. package/esm/core/Header/HeaderSplitButton.js +14 -61
  324. package/esm/core/Icon/Icon.js +12 -26
  325. package/esm/core/InformationPanel/InformationPanel.js +36 -71
  326. package/esm/core/InformationPanel/InformationPanelContent.js +3 -17
  327. package/esm/core/InformationPanel/InformationPanelHeader.js +8 -32
  328. package/esm/core/InformationPanel/InformationPanelWrapper.js +1 -3
  329. package/esm/core/Input/Input.js +4 -12
  330. package/esm/core/InputGrid/InputGrid.js +2 -11
  331. package/esm/core/InputGroup/InputGroup.js +16 -57
  332. package/esm/core/InputWithDecorations/InputWithDecorations.js +11 -42
  333. package/esm/core/Label/Label.js +5 -26
  334. package/esm/core/LabeledInput/LabeledInput.js +10 -63
  335. package/esm/core/LabeledSelect/LabeledSelect.js +18 -67
  336. package/esm/core/LabeledTextarea/LabeledTextarea.js +2 -8
  337. package/esm/core/List/ListItem.js +28 -46
  338. package/esm/core/Menu/Menu.js +48 -64
  339. package/esm/core/Menu/MenuDivider.js +1 -1
  340. package/esm/core/Menu/MenuExtraContent.js +1 -1
  341. package/esm/core/Menu/MenuItem.js +84 -164
  342. package/esm/core/Menu/MenuItemSkeleton.js +12 -43
  343. package/esm/core/Modal/Modal.js +6 -33
  344. package/esm/core/NonIdealState/ErrorPage.js +123 -173
  345. package/esm/core/NonIdealState/NonIdealState.js +6 -65
  346. package/esm/core/NotificationMarker/NotificationMarker.js +2 -20
  347. package/esm/core/Overlay/Overlay.d.ts +20 -24
  348. package/esm/core/Overlay/Overlay.js +45 -55
  349. package/esm/core/Popover/Popover.js +80 -172
  350. package/esm/core/ProgressIndicators/ProgressLinear.js +5 -40
  351. package/esm/core/ProgressIndicators/ProgressRadial.js +14 -40
  352. package/esm/core/Radio/Radio.js +6 -45
  353. package/esm/core/RadioTiles/RadioTile.js +8 -62
  354. package/esm/core/RadioTiles/RadioTileGroup.js +3 -10
  355. package/esm/core/SearchBox/SearchBox.js +97 -214
  356. package/esm/core/Select/Select.js +130 -265
  357. package/esm/core/Select/SelectTag.js +3 -15
  358. package/esm/core/Select/SelectTagContainer.js +7 -20
  359. package/esm/core/SideNavigation/SideNavigation.js +21 -118
  360. package/esm/core/SideNavigation/SidenavButton.js +2 -24
  361. package/esm/core/SideNavigation/SidenavSubmenu.js +3 -14
  362. package/esm/core/SideNavigation/SidenavSubmenuHeader.js +4 -20
  363. package/esm/core/SkipToContentLink/SkipToContentLink.js +2 -11
  364. package/esm/core/Slider/Slider.js +187 -340
  365. package/esm/core/Slider/Thumb.js +50 -97
  366. package/esm/core/Slider/Track.js +49 -74
  367. package/esm/core/StatusMessage/StatusMessage.js +5 -23
  368. package/esm/core/Stepper/Stepper.js +14 -70
  369. package/esm/core/Stepper/StepperStep.js +29 -92
  370. package/esm/core/Stepper/WorkflowDiagram.js +8 -21
  371. package/esm/core/Stepper/WorkflowDiagramStep.js +4 -22
  372. package/esm/core/Surface/Surface.js +48 -84
  373. package/esm/core/Table/SubRowExpander.js +9 -31
  374. package/esm/core/Table/Table.js +408 -763
  375. package/esm/core/Table/TableCell.js +53 -87
  376. package/esm/core/Table/TablePaginator.js +125 -306
  377. package/esm/core/Table/TableRowMemoized.js +58 -129
  378. package/esm/core/Table/actionHandlers/expandHandler.js +10 -10
  379. package/esm/core/Table/actionHandlers/filterHandler.js +15 -23
  380. package/esm/core/Table/actionHandlers/index.js +1 -5
  381. package/esm/core/Table/actionHandlers/resizeHandler.js +11 -11
  382. package/esm/core/Table/actionHandlers/selectHandler.js +95 -122
  383. package/esm/core/Table/cells/DefaultCell.js +7 -42
  384. package/esm/core/Table/cells/EditableCell.js +41 -70
  385. package/esm/core/Table/columns/actionColumn.js +55 -85
  386. package/esm/core/Table/columns/expanderColumn.js +25 -39
  387. package/esm/core/Table/columns/selectionColumn.js +23 -51
  388. package/esm/core/Table/filters/BaseFilter.js +7 -15
  389. package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +42 -107
  390. package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +52 -110
  391. package/esm/core/Table/filters/FilterButtonBar.js +9 -28
  392. package/esm/core/Table/filters/FilterToggle.js +18 -51
  393. package/esm/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +28 -50
  394. package/esm/core/Table/filters/TextFilter/TextFilter.js +20 -32
  395. package/esm/core/Table/filters/customFilterFunctions.js +12 -14
  396. package/esm/core/Table/filters/defaultFilterFunctions.js +79 -84
  397. package/esm/core/Table/filters/tableFilters.js +25 -34
  398. package/esm/core/Table/hooks/useColumnDragAndDrop.js +81 -88
  399. package/esm/core/Table/hooks/useExpanderCell.js +20 -26
  400. package/esm/core/Table/hooks/useResizeColumns.js +287 -353
  401. package/esm/core/Table/hooks/useScrollToRow.js +34 -42
  402. package/esm/core/Table/hooks/useSelectionCell.js +6 -10
  403. package/esm/core/Table/hooks/useStickyColumns.js +59 -61
  404. package/esm/core/Table/hooks/useSubRowFiltering.js +83 -90
  405. package/esm/core/Table/hooks/useSubRowSelection.js +27 -28
  406. package/esm/core/Table/index.js +1 -5
  407. package/esm/core/Table/utils.js +38 -40
  408. package/esm/core/Tabs/Tabs.js +226 -401
  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 -82
  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 +192 -250
  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.d.ts +2 -1
  443. package/esm/core/utils/functions/dom.js +18 -18
  444. package/esm/core/utils/functions/focusable.js +15 -24
  445. package/esm/core/utils/functions/import.js +2 -4
  446. package/esm/core/utils/functions/numbers.d.ts +7 -0
  447. package/esm/core/utils/functions/numbers.js +17 -7
  448. package/esm/core/utils/functions/polymorphic.js +23 -32
  449. package/esm/core/utils/functions/react.js +19 -21
  450. package/esm/core/utils/functions/supports.js +1 -2
  451. package/esm/core/utils/hooks/useContainerWidth.js +13 -16
  452. package/esm/core/utils/hooks/useControlledState.js +8 -17
  453. package/esm/core/utils/hooks/useDragAndDrop.js +81 -100
  454. package/esm/core/utils/hooks/useEventListener.js +18 -18
  455. package/esm/core/utils/hooks/useGlobals.js +21 -27
  456. package/esm/core/utils/hooks/useId.js +3 -4
  457. package/esm/core/utils/hooks/useIntersection.js +19 -25
  458. package/esm/core/utils/hooks/useIsClient.js +5 -5
  459. package/esm/core/utils/hooks/useIsomorphicLayoutEffect.js +1 -2
  460. package/esm/core/utils/hooks/useLatestRef.js +5 -5
  461. package/esm/core/utils/hooks/useMediaQuery.js +25 -23
  462. package/esm/core/utils/hooks/useMergedRefs.js +12 -11
  463. package/esm/core/utils/hooks/useOverflow.js +51 -63
  464. package/esm/core/utils/hooks/useResizeObserver.js +12 -17
  465. package/esm/core/utils/hooks/useSafeContext.js +5 -5
  466. package/esm/core/utils/icons/StatusIconMap.js +4 -8
  467. package/esm/core/utils/icons/SvgCalendar.js +2 -7
  468. package/esm/core/utils/icons/SvgCaretDownSmall.js +2 -7
  469. package/esm/core/utils/icons/SvgCaretRightSmall.js +2 -7
  470. package/esm/core/utils/icons/SvgCaretUpSmall.js +2 -7
  471. package/esm/core/utils/icons/SvgCheckmark.js +2 -5
  472. package/esm/core/utils/icons/SvgCheckmarkSmall.js +2 -7
  473. package/esm/core/utils/icons/SvgChevronLeft.js +2 -7
  474. package/esm/core/utils/icons/SvgChevronLeftDouble.js +2 -7
  475. package/esm/core/utils/icons/SvgChevronRight.js +2 -7
  476. package/esm/core/utils/icons/SvgChevronRightDouble.js +2 -7
  477. package/esm/core/utils/icons/SvgClose.js +2 -7
  478. package/esm/core/utils/icons/SvgCloseSmall.js +2 -7
  479. package/esm/core/utils/icons/SvgColumnManager.js +2 -7
  480. package/esm/core/utils/icons/SvgDocument.js +2 -5
  481. package/esm/core/utils/icons/SvgFilter.js +2 -5
  482. package/esm/core/utils/icons/SvgFilterHollow.js +2 -7
  483. package/esm/core/utils/icons/SvgImportantSmall.js +2 -7
  484. package/esm/core/utils/icons/SvgInfoCircular.js +2 -7
  485. package/esm/core/utils/icons/SvgMore.js +2 -7
  486. package/esm/core/utils/icons/SvgMoreVertical.js +2 -7
  487. package/esm/core/utils/icons/SvgNew.js +2 -7
  488. package/esm/core/utils/icons/SvgSearch.js +2 -7
  489. package/esm/core/utils/icons/SvgSmileyHappy.js +2 -7
  490. package/esm/core/utils/icons/SvgSortDown.js +2 -7
  491. package/esm/core/utils/icons/SvgSortUp.js +2 -7
  492. package/esm/core/utils/icons/SvgStatusError.js +2 -7
  493. package/esm/core/utils/icons/SvgStatusSuccess.js +2 -7
  494. package/esm/core/utils/icons/SvgStatusWarning.js +2 -7
  495. package/esm/core/utils/icons/SvgSwap.js +2 -7
  496. package/esm/core/utils/icons/SvgUpload.js +2 -7
  497. package/esm/index.js +3 -21
  498. package/esm/styles.js +414 -425
  499. package/package.json +2 -2
  500. package/styles.css +6 -6
@@ -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
  };
@@ -1,96 +1,82 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Overlay = void 0;
4
- const tslib_1 = require('tslib');
4
+ const tslib_1 = require("tslib");
5
5
  /*---------------------------------------------------------------------------------------------
6
6
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
7
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
8
8
  *--------------------------------------------------------------------------------------------*/
9
- const react_1 = tslib_1.__importDefault(require('react'));
10
- const index_js_1 = require('../utils/index.js');
9
+ const react_1 = tslib_1.__importDefault(require("react"));
10
+ const index_js_1 = require("../utils/index.js");
11
11
  // --------------------------------------------------------------------------------
12
12
  const OverlayComponent = react_1.default.forwardRef((props, forwardedRef) => {
13
- const { content, children, ...rest } = props;
14
- return react_1.default.createElement(
15
- OverlayWrapper,
16
- { ref: forwardedRef, ...rest },
17
- react_1.default.createElement(OverlayMessage, null, content),
18
- react_1.default.createElement(OverlayHiddenContent, null, children),
19
- );
13
+ const { content, children, ...rest } = props;
14
+ return (react_1.default.createElement(OverlayWrapper, { ref: forwardedRef, ...rest },
15
+ react_1.default.createElement(OverlayOverlay, null, content),
16
+ react_1.default.createElement(OverlayHiddenContent, null, children)));
20
17
  });
21
18
  OverlayComponent.displayName = 'Overlay';
22
19
  // --------------------------------------------------------------------------------
23
20
  const OverlayHiddenContent = react_1.default.forwardRef((props, ref) => {
24
- const { children, ...rest } = props;
25
- useInertPolyfill();
26
- return react_1.default.createElement(
27
- index_js_1.Box,
28
- { inert: '', ref: ref, ...rest },
29
- children,
30
- );
21
+ const { children, ...rest } = props;
22
+ useInertPolyfill();
23
+ return (react_1.default.createElement(index_js_1.Box, { inert: '', ref: ref, ...rest }, children));
31
24
  });
32
25
  OverlayHiddenContent.displayName = 'Overlay.HiddenContent';
33
26
  // --------------------------------------------------------------------------------
34
- const OverlayMessage = (0, index_js_1.polymorphic)('iui-overlay');
35
- OverlayMessage.displayName = 'Overlay.Overlay';
27
+ const OverlayOverlay = (0, index_js_1.polymorphic)('iui-overlay');
28
+ OverlayOverlay.displayName = 'Overlay.Overlay';
36
29
  // --------------------------------------------------------------------------------
37
30
  const OverlayWrapper = (0, index_js_1.polymorphic)('iui-overlay-wrapper');
38
31
  OverlayWrapper.displayName = 'Overlay.Wrapper';
39
32
  // --------------------------------------------------------------------------------
40
33
  /**
34
+ * The Overlay component can be used to hide some UI while its content is loading or revalidating,
35
+ * and display a loading indicator on top of it.
41
36
  *
42
- * This is an Overlay Component.
43
- *
37
+ * The hidden content gets blurred and becomes inert so it cannot be interacted with.
44
38
  *
45
39
  * @example
46
- * <Overlay content="loading">
47
- * content beneath the overlay... (text, img, etc.)
40
+ * <Overlay content="loading">
41
+ * content beneath the overlay (text, img, etc.)
48
42
  * </Overlay>
49
43
  *
50
- *
51
- * This is an Overlay Component using subcomponents.
52
- *
53
- *
54
44
  * @example
55
45
  * <Overlay.Wrapper>
56
- * <Overlay.Overlay>
57
- * loading...
58
- * <Overlay.Overlay>
59
- * <Overlay.HiddenContent>
60
- * content beneath the overlay... (text, img, etc.)
61
- * <Overlay.HiddenContent />
46
+ * <Overlay.Overlay>
47
+ * loading
48
+ * <Overlay.Overlay>
49
+ * <Overlay.HiddenContent>
50
+ * content beneath the overlay (text, img, etc.)
51
+ * <Overlay.HiddenContent />
62
52
  * </Overlay.Wrapper>
63
- *
64
- *
65
53
  */
66
54
  exports.Overlay = Object.assign(OverlayComponent, {
67
- /**
68
- *
69
- * The main component is a wrapper to hold the
70
- * Overlay HiddenContent and Overlay Message.
71
- */
72
- Wrapper: OverlayWrapper,
73
- /**
74
- * HiddenContent houses page elements that are blurred by the
75
- * Overlay.
76
- */
77
- HiddenContent: OverlayHiddenContent,
78
- /**
79
- * Message contains the progress indicator and loading message
80
- * for the Overlay. It sits on top of the HiddenContent.
81
- */
82
- Overlay: OverlayMessage,
55
+ /**
56
+ * The main component is a wrapper to hold the
57
+ * `Overlay.HiddenContent` and `Overlay.Overlay`.
58
+ */
59
+ Wrapper: OverlayWrapper,
60
+ /**
61
+ * `Overlay.HiddenContent` houses page elements that are blurred by the
62
+ * Overlay. These elements will become inert when the overlay is active.
63
+ */
64
+ HiddenContent: OverlayHiddenContent,
65
+ /**
66
+ * `Overlay.Overlay` sits on top of the HiddenContent, and can show
67
+ * any arbitrary content like a progress indicator and loading message.
68
+ */
69
+ Overlay: OverlayOverlay,
83
70
  });
84
71
  const useInertPolyfill = () => {
85
- const loaded = react_1.default.useRef(false);
86
- const modulePath =
87
- 'https://cdn.jsdelivr.net/npm/wicg-inert@3.1.2/dist/inert.min.js';
88
- react_1.default.useEffect(() => {
89
- async () => {
90
- if (!HTMLElement.prototype.hasOwnProperty('inert') && !loaded.current) {
91
- await (0, index_js_1.dynamicImport)(modulePath);
92
- loaded.current = true;
93
- }
94
- };
95
- }, []);
72
+ const loaded = react_1.default.useRef(false);
73
+ const modulePath = 'https://cdn.jsdelivr.net/npm/wicg-inert@3.1.2/dist/inert.min.js';
74
+ react_1.default.useEffect(() => {
75
+ (async () => {
76
+ if (!HTMLElement.prototype.hasOwnProperty('inert') && !loaded.current) {
77
+ await (0, index_js_1.dynamicImport)(modulePath);
78
+ loaded.current = true;
79
+ }
80
+ })();
81
+ }, []);
96
82
  };
@@ -1,98 +1,74 @@
1
- 'use strict';
1
+ "use strict";
2
2
  /*---------------------------------------------------------------------------------------------
3
3
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, '__esModule', { value: true });
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.Popover = exports.usePopover = void 0;
8
- const tslib_1 = require('tslib');
9
- const React = tslib_1.__importStar(require('react'));
10
- const classnames_1 = tslib_1.__importDefault(require('classnames'));
11
- const react_1 = require('@floating-ui/react');
12
- const index_js_1 = require('../utils/index.js');
13
- const Portal_js_1 = require('../utils/components/Portal.js');
14
- const ThemeProvider_js_1 = require('../ThemeProvider/ThemeProvider.js');
8
+ const tslib_1 = require("tslib");
9
+ const React = tslib_1.__importStar(require("react"));
10
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
11
+ const react_1 = require("@floating-ui/react");
12
+ const index_js_1 = require("../utils/index.js");
13
+ const Portal_js_1 = require("../utils/components/Portal.js");
14
+ const ThemeProvider_js_1 = require("../ThemeProvider/ThemeProvider.js");
15
15
  // ----------------------------------------------------------------------------
16
16
  const usePopover = (options) => {
17
- const {
18
- placement = 'bottom-start',
19
- visible,
20
- onVisibleChange,
21
- closeOnOutsideClick,
22
- autoUpdateOptions,
23
- middleware = { flip: true, shift: true },
24
- matchWidth,
25
- trigger = { click: true, hover: false, focus: false },
26
- role,
27
- } = options;
28
- const [open, onOpenChange] = (0, index_js_1.useControlledState)(
29
- false,
30
- visible,
31
- onVisibleChange,
32
- );
33
- const floating = (0, react_1.useFloating)({
34
- placement,
35
- open,
36
- onOpenChange,
37
- whileElementsMounted: (...args) =>
38
- (0, react_1.autoUpdate)(...args, autoUpdateOptions),
39
- middleware: [
40
- middleware.offset !== undefined && (0, react_1.offset)(middleware.offset),
41
- middleware.flip && (0, react_1.flip)(),
42
- middleware.shift && (0, react_1.shift)(),
43
- matchWidth &&
44
- (0, react_1.size)({
45
- apply: ({ rects }) => {
46
- setReferenceWidth(rects.reference.width);
47
- },
17
+ const { placement = 'bottom-start', visible, onVisibleChange, closeOnOutsideClick, autoUpdateOptions, middleware = { flip: true, shift: true }, matchWidth, trigger = { click: true, hover: false, focus: false }, role, } = options;
18
+ const [open, onOpenChange] = (0, index_js_1.useControlledState)(false, visible, onVisibleChange);
19
+ const floating = (0, react_1.useFloating)({
20
+ placement,
21
+ open,
22
+ onOpenChange,
23
+ whileElementsMounted: (...args) => (0, react_1.autoUpdate)(...args, autoUpdateOptions),
24
+ middleware: [
25
+ middleware.offset !== undefined && (0, react_1.offset)(middleware.offset),
26
+ middleware.flip && (0, react_1.flip)(),
27
+ middleware.shift && (0, react_1.shift)(),
28
+ matchWidth &&
29
+ (0, react_1.size)({
30
+ apply: ({ rects }) => {
31
+ setReferenceWidth(rects.reference.width);
32
+ },
33
+ }),
34
+ middleware.autoPlacement && (0, react_1.autoPlacement)(),
35
+ middleware.inline && (0, react_1.inline)(),
36
+ middleware.hide && (0, react_1.hide)(),
37
+ ].filter(Boolean),
38
+ });
39
+ const interactions = (0, react_1.useInteractions)([
40
+ (0, react_1.useClick)(floating.context, { enabled: !!trigger.click }),
41
+ (0, react_1.useDismiss)(floating.context, { outsidePress: closeOnOutsideClick }),
42
+ (0, react_1.useHover)(floating.context, {
43
+ enabled: !!trigger.hover,
44
+ delay: 100,
45
+ handleClose: (0, react_1.safePolygon)({ buffer: 1 }),
48
46
  }),
49
- middleware.autoPlacement && (0, react_1.autoPlacement)(),
50
- middleware.inline && (0, react_1.inline)(),
51
- middleware.hide && (0, react_1.hide)(),
52
- ].filter(Boolean),
53
- });
54
- const interactions = (0, react_1.useInteractions)([
55
- (0, react_1.useClick)(floating.context, { enabled: !!trigger.click }),
56
- (0, react_1.useDismiss)(floating.context, {
57
- outsidePress: closeOnOutsideClick,
58
- }),
59
- (0, react_1.useHover)(floating.context, {
60
- enabled: !!trigger.hover,
61
- delay: 100,
62
- handleClose: (0, react_1.safePolygon)({ buffer: 1 }),
63
- }),
64
- (0, react_1.useFocus)(floating.context, { enabled: !!trigger.focus }),
65
- (0, react_1.useRole)(floating.context, { role: 'dialog', enabled: !!role }),
66
- ]);
67
- const [referenceWidth, setReferenceWidth] = React.useState();
68
- const getFloatingProps = React.useCallback(
69
- (userProps) =>
70
- interactions.getFloatingProps({
47
+ (0, react_1.useFocus)(floating.context, { enabled: !!trigger.focus }),
48
+ (0, react_1.useRole)(floating.context, { role: 'dialog', enabled: !!role }),
49
+ ]);
50
+ const [referenceWidth, setReferenceWidth] = React.useState();
51
+ const getFloatingProps = React.useCallback((userProps) => interactions.getFloatingProps({
71
52
  ...userProps,
72
53
  style: {
73
- ...floating.floatingStyles,
74
- zIndex: 9999,
75
- ...(matchWidth && referenceWidth
76
- ? {
77
- minInlineSize: `${referenceWidth}px`,
78
- maxInlineSize: `min(${referenceWidth * 2}px, 90vw)`,
79
- }
80
- : {}),
81
- ...userProps?.style,
54
+ ...floating.floatingStyles,
55
+ zIndex: 9999,
56
+ ...(matchWidth && referenceWidth
57
+ ? {
58
+ minInlineSize: `${referenceWidth}px`,
59
+ maxInlineSize: `min(${referenceWidth * 2}px, 90vw)`,
60
+ }
61
+ : {}),
62
+ ...userProps?.style,
82
63
  },
83
- }),
84
- [floating.floatingStyles, interactions, matchWidth, referenceWidth],
85
- );
86
- return React.useMemo(
87
- () => ({
88
- open,
89
- onOpenChange,
90
- ...interactions,
91
- getFloatingProps,
92
- ...floating,
93
- }),
94
- [open, onOpenChange, interactions, getFloatingProps, floating],
95
- );
64
+ }), [floating.floatingStyles, interactions, matchWidth, referenceWidth]);
65
+ return React.useMemo(() => ({
66
+ open,
67
+ onOpenChange,
68
+ ...interactions,
69
+ getFloatingProps,
70
+ ...floating,
71
+ }), [open, onOpenChange, interactions, getFloatingProps, floating]);
96
72
  };
97
73
  exports.usePopover = usePopover;
98
74
  /**
@@ -107,82 +83,36 @@ exports.usePopover = usePopover;
107
83
  * </Popover>
108
84
  */
109
85
  exports.Popover = React.forwardRef((props, forwardedRef) => {
110
- const {
111
- portal = true,
86
+ const { portal = true,
112
87
  //
113
88
  // popover options
114
- visible,
115
- placement = 'bottom-start',
116
- onVisibleChange,
117
- closeOnOutsideClick = true,
89
+ visible, placement = 'bottom-start', onVisibleChange, closeOnOutsideClick = true,
118
90
  //
119
91
  // dom props
120
- className,
121
- children,
122
- content,
123
- applyBackground = false,
124
- ...rest
125
- } = props;
126
- const popover = (0, exports.usePopover)({
127
- visible,
128
- placement,
129
- onVisibleChange,
130
- closeOnOutsideClick,
131
- role: 'dialog',
132
- });
133
- const [popoverElement, setPopoverElement] = React.useState();
134
- const popoverRef = (0, index_js_1.useMergedRefs)(
135
- popover.refs.setFloating,
136
- forwardedRef,
137
- setPopoverElement,
138
- );
139
- const triggerId = `${(0, index_js_1.useId)()}-trigger`;
140
- const hasAriaLabel = !!props['aria-labelledby'] || !!props['aria-label'];
141
- return React.createElement(
142
- React.Fragment,
143
- null,
144
- (0, index_js_1.cloneElementWithRef)(children, (children) => ({
145
- id: children.props.id || triggerId,
146
- ...popover.getReferenceProps(children.props),
147
- ref: popover.refs.setReference,
148
- })),
149
- popover.open
150
- ? React.createElement(
151
- Portal_js_1.Portal,
152
- { portal: portal },
153
- React.createElement(
154
- react_1.FloatingPortal,
155
- null,
156
- React.createElement(
157
- ThemeProvider_js_1.ThemeProvider,
158
- { portalContainer: popoverElement },
159
- React.createElement(
160
- react_1.FloatingFocusManager,
161
- {
162
- context: popover.context,
163
- modal: false,
164
- initialFocus: popover.refs.floating,
165
- },
166
- React.createElement(
167
- index_js_1.Box,
168
- {
169
- className: (0, classnames_1.default)(
170
- { 'iui-popover-surface': applyBackground },
171
- className,
172
- ),
173
- 'aria-labelledby': !hasAriaLabel
174
- ? popover.refs.domReference.current?.id
175
- : undefined,
176
- ...popover.getFloatingProps(rest),
177
- ref: popoverRef,
178
- },
179
- content,
180
- ),
181
- ),
182
- ),
183
- ),
184
- )
185
- : null,
186
- );
92
+ className, children, content, applyBackground = false, ...rest } = props;
93
+ const popover = (0, exports.usePopover)({
94
+ visible,
95
+ placement,
96
+ onVisibleChange,
97
+ closeOnOutsideClick,
98
+ role: 'dialog',
99
+ });
100
+ const [popoverElement, setPopoverElement] = React.useState();
101
+ const popoverRef = (0, index_js_1.useMergedRefs)(popover.refs.setFloating, forwardedRef, setPopoverElement);
102
+ const triggerId = `${(0, index_js_1.useId)()}-trigger`;
103
+ const hasAriaLabel = !!props['aria-labelledby'] || !!props['aria-label'];
104
+ return (React.createElement(React.Fragment, null,
105
+ (0, index_js_1.cloneElementWithRef)(children, (children) => ({
106
+ id: children.props.id || triggerId,
107
+ ...popover.getReferenceProps(children.props),
108
+ ref: popover.refs.setReference,
109
+ })),
110
+ popover.open ? (React.createElement(Portal_js_1.Portal, { portal: portal },
111
+ React.createElement(react_1.FloatingPortal, null,
112
+ React.createElement(ThemeProvider_js_1.ThemeProvider, { portalContainer: popoverElement },
113
+ React.createElement(react_1.FloatingFocusManager, { context: popover.context, modal: false, initialFocus: popover.refs.floating },
114
+ React.createElement(index_js_1.Box, { className: (0, classnames_1.default)({ 'iui-popover-surface': applyBackground }, className), "aria-labelledby": !hasAriaLabel
115
+ ? popover.refs.domReference.current?.id
116
+ : undefined, ...popover.getFloatingProps(rest), ref: popoverRef }, content)))))) : null));
187
117
  });
188
118
  exports.default = exports.Popover;
@@ -1,14 +1,14 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProgressLinear = void 0;
4
- const tslib_1 = require('tslib');
4
+ const tslib_1 = require("tslib");
5
5
  /*---------------------------------------------------------------------------------------------
6
6
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
7
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
8
8
  *--------------------------------------------------------------------------------------------*/
9
- const React = tslib_1.__importStar(require('react'));
10
- const classnames_1 = tslib_1.__importDefault(require('classnames'));
11
- const index_js_1 = require('../utils/index.js');
9
+ const React = tslib_1.__importStar(require("react"));
10
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
11
+ const index_js_1 = require("../utils/index.js");
12
12
  /**
13
13
  * Shows progress on a linear bar
14
14
  * @example
@@ -25,48 +25,10 @@ const index_js_1 = require('../utils/index.js');
25
25
  * <ProgressLinear status='negative' />
26
26
  */
27
27
  exports.ProgressLinear = React.forwardRef((props, forwardedRef) => {
28
- const {
29
- value,
30
- indeterminate = value === undefined,
31
- labels = [],
32
- isAnimated = false,
33
- status,
34
- className,
35
- labelGroupProps,
36
- ...rest
37
- } = props;
38
- const boundedValue = (0, index_js_1.getBoundedValue)(value ?? 100, 0, 100);
39
- return React.createElement(
40
- index_js_1.Box,
41
- {
42
- className: (0, classnames_1.default)(
43
- 'iui-progress-indicator-linear',
44
- className,
45
- ),
46
- ref: forwardedRef,
47
- 'data-iui-status': status,
48
- 'data-iui-indeterminate': indeterminate ? 'true' : undefined,
49
- 'data-iui-animated': isAnimated ? 'true' : undefined,
50
- style: {
51
- '--iui-progress-percentage': `${boundedValue}%`,
52
- },
53
- ...rest,
54
- },
55
- labels.length > 0 &&
56
- React.createElement(
57
- index_js_1.Box,
58
- {
59
- as: 'div',
60
- ...labelGroupProps,
61
- className: (0, classnames_1.default)(
62
- 'iui-progress-indicator-linear-label',
63
- labelGroupProps?.className,
64
- ),
65
- },
66
- labels.map((label, index) =>
67
- React.createElement('span', { key: index }, label),
68
- ),
69
- ),
70
- );
28
+ const { value, indeterminate = value === undefined, labels = [], isAnimated = false, status, className, labelGroupProps, ...rest } = props;
29
+ const boundedValue = (0, index_js_1.getBoundedValue)(value ?? 100, 0, 100);
30
+ return (React.createElement(index_js_1.Box, { className: (0, classnames_1.default)('iui-progress-indicator-linear', className), ref: forwardedRef, "data-iui-status": status, "data-iui-indeterminate": indeterminate ? 'true' : undefined, "data-iui-animated": isAnimated ? 'true' : undefined, style: {
31
+ '--iui-progress-percentage': `${boundedValue}%`,
32
+ }, ...rest }, labels.length > 0 && (React.createElement(index_js_1.Box, { as: 'div', ...labelGroupProps, className: (0, classnames_1.default)('iui-progress-indicator-linear-label', labelGroupProps?.className) }, labels.map((label, index) => (React.createElement("span", { key: index }, label)))))));
71
33
  });
72
34
  exports.default = exports.ProgressLinear;
@@ -1,14 +1,14 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProgressRadial = void 0;
4
- const tslib_1 = require('tslib');
4
+ const tslib_1 = require("tslib");
5
5
  /*---------------------------------------------------------------------------------------------
6
6
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
7
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
8
8
  *--------------------------------------------------------------------------------------------*/
9
- const classnames_1 = tslib_1.__importDefault(require('classnames'));
10
- const React = tslib_1.__importStar(require('react'));
11
- const index_js_1 = require('../utils/index.js');
9
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
10
+ const React = tslib_1.__importStar(require("react"));
11
+ const index_js_1 = require("../utils/index.js");
12
12
  /**
13
13
  * Circular Progress Indicator
14
14
  * @example
@@ -25,50 +25,18 @@ const index_js_1 = require('../utils/index.js');
25
25
  * <ProgressRadial size={'small'} indeterminate/>
26
26
  */
27
27
  exports.ProgressRadial = React.forwardRef((props, forwardedRef) => {
28
- const {
29
- value,
30
- indeterminate = value === undefined,
31
- status,
32
- size,
33
- className,
34
- style,
35
- children,
36
- ...rest
37
- } = props;
38
- const statusMap = {
39
- negative: React.createElement(index_js_1.SvgImportantSmall, {
40
- 'aria-hidden': true,
41
- }),
42
- positive: React.createElement(index_js_1.SvgCheckmarkSmall, {
43
- 'aria-hidden': true,
44
- }),
45
- };
46
- return React.createElement(
47
- index_js_1.Box,
48
- {
49
- className: (0, classnames_1.default)(
50
- 'iui-progress-indicator-radial',
51
- className,
52
- ),
53
- 'data-iui-size': size,
54
- 'data-iui-status': status,
55
- 'data-iui-indeterminate': indeterminate ? 'true' : undefined,
56
- ref: forwardedRef,
57
- style: {
58
- ...(value !== undefined && {
59
- '--iui-progress-percentage': `${(0, index_js_1.getBoundedValue)(
60
- value,
61
- 0,
62
- 100,
63
- )}%`,
64
- }),
65
- ...style,
66
- },
67
- ...rest,
68
- },
69
- size !== 'x-small'
70
- ? children ?? (!!status ? statusMap[status] : null)
71
- : null,
72
- );
28
+ const { value, indeterminate = value === undefined, status, size, className, style, children, ...rest } = props;
29
+ const statusMap = {
30
+ negative: React.createElement(index_js_1.SvgImportantSmall, { "aria-hidden": true }),
31
+ positive: React.createElement(index_js_1.SvgCheckmarkSmall, { "aria-hidden": true }),
32
+ };
33
+ return (React.createElement(index_js_1.Box, { className: (0, classnames_1.default)('iui-progress-indicator-radial', className), "data-iui-size": size, "data-iui-status": status, "data-iui-indeterminate": indeterminate ? 'true' : undefined, ref: forwardedRef, style: {
34
+ ...(value !== undefined && {
35
+ '--iui-progress-percentage': `${(0, index_js_1.getBoundedValue)(value, 0, 100)}%`,
36
+ }),
37
+ ...style,
38
+ }, ...rest }, size !== 'x-small'
39
+ ? children ?? (!!status ? statusMap[status] : null)
40
+ : null));
73
41
  });
74
42
  exports.default = exports.ProgressRadial;