@itwin/itwinui-react 3.17.4 → 3.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/DEV-cjs/core/Alert/Alert.js +12 -6
  3. package/DEV-cjs/core/Avatar/Avatar.js +1 -1
  4. package/DEV-cjs/core/AvatarGroup/AvatarGroup.js +2 -1
  5. package/DEV-cjs/core/Backdrop/Backdrop.js +1 -1
  6. package/DEV-cjs/core/Badge/Badge.js +1 -1
  7. package/DEV-cjs/core/Breadcrumbs/Breadcrumbs.js +8 -5
  8. package/DEV-cjs/core/ButtonGroup/ButtonGroup.js +4 -2
  9. package/DEV-cjs/core/Buttons/Button.js +1 -1
  10. package/DEV-cjs/core/Buttons/DropdownButton.js +2 -1
  11. package/DEV-cjs/core/Buttons/IconButton.js +8 -2
  12. package/DEV-cjs/core/Buttons/IdeasButton.js +2 -1
  13. package/DEV-cjs/core/Buttons/SplitButton.js +2 -1
  14. package/DEV-cjs/core/Carousel/Carousel.js +2 -1
  15. package/DEV-cjs/core/Carousel/CarouselContext.js +2 -1
  16. package/DEV-cjs/core/Carousel/CarouselDot.js +2 -1
  17. package/DEV-cjs/core/Carousel/CarouselDotsList.js +2 -1
  18. package/DEV-cjs/core/Carousel/CarouselNavigation.js +6 -3
  19. package/DEV-cjs/core/Carousel/CarouselSlide.js +2 -1
  20. package/DEV-cjs/core/Carousel/CarouselSlider.js +2 -1
  21. package/DEV-cjs/core/Checkbox/Checkbox.js +1 -1
  22. package/DEV-cjs/core/ColorPicker/ColorBuilder.js +2 -1
  23. package/DEV-cjs/core/ColorPicker/ColorInputPanel.js +4 -2
  24. package/DEV-cjs/core/ColorPicker/ColorPalette.js +2 -1
  25. package/DEV-cjs/core/ColorPicker/ColorPicker.js +2 -1
  26. package/DEV-cjs/core/ColorPicker/ColorSwatch.js +2 -1
  27. package/DEV-cjs/core/ComboBox/ComboBox.js +61 -29
  28. package/DEV-cjs/core/ComboBox/ComboBoxEndIcon.js +2 -1
  29. package/DEV-cjs/core/ComboBox/ComboBoxInput.js +2 -3
  30. package/DEV-cjs/core/ComboBox/ComboBoxInputContainer.js +2 -1
  31. package/DEV-cjs/core/ComboBox/ComboBoxMenu.js +2 -1
  32. package/DEV-cjs/core/ComboBox/ComboBoxMenuItem.js +3 -2
  33. package/DEV-cjs/core/ComboBox/ComboBoxMultipleContainer.js +2 -1
  34. package/DEV-cjs/core/ComboBox/helpers.js +4 -2
  35. package/DEV-cjs/core/DatePicker/DatePicker.js +5 -4
  36. package/DEV-cjs/core/Dialog/Dialog.js +23 -11
  37. package/DEV-cjs/core/Dialog/DialogBackdrop.js +2 -1
  38. package/DEV-cjs/core/Dialog/DialogButtonBar.js +2 -1
  39. package/DEV-cjs/core/Dialog/DialogContent.js +2 -1
  40. package/DEV-cjs/core/Dialog/DialogMain.js +2 -1
  41. package/DEV-cjs/core/Dialog/DialogTitleBar.js +2 -1
  42. package/DEV-cjs/core/Dialog/DialogTitleBarTitle.js +2 -1
  43. package/DEV-cjs/core/Divider/Divider.js +1 -1
  44. package/DEV-cjs/core/DropdownMenu/DropdownMenu.js +32 -24
  45. package/DEV-cjs/core/ExpandableBlock/ExpandableBlock.js +38 -13
  46. package/DEV-cjs/core/Fieldset/Fieldset.js +1 -1
  47. package/DEV-cjs/core/FileUpload/FileEmptyCard.js +6 -3
  48. package/DEV-cjs/core/FileUpload/FileUpload.js +2 -1
  49. package/DEV-cjs/core/FileUpload/FileUploadCard.js +18 -9
  50. package/DEV-cjs/core/FileUpload/FileUploadTemplate.js +2 -1
  51. package/DEV-cjs/core/Flex/Flex.js +4 -3
  52. package/DEV-cjs/core/Footer/Footer.js +1 -1
  53. package/DEV-cjs/core/Footer/FooterItem.js +2 -1
  54. package/DEV-cjs/core/Footer/FooterList.js +2 -1
  55. package/DEV-cjs/core/Footer/FooterSeparator.js +2 -1
  56. package/DEV-cjs/core/Header/Header.js +1 -1
  57. package/DEV-cjs/core/Header/HeaderBreadcrumbs.js +2 -1
  58. package/DEV-cjs/core/Header/HeaderButton.js +2 -1
  59. package/DEV-cjs/core/Header/HeaderLogo.js +3 -2
  60. package/DEV-cjs/core/Icon/Icon.js +1 -1
  61. package/DEV-cjs/core/InformationPanel/InformationPanel.js +2 -1
  62. package/DEV-cjs/core/InformationPanel/InformationPanelBody.js +2 -1
  63. package/DEV-cjs/core/InformationPanel/InformationPanelContent.js +2 -1
  64. package/DEV-cjs/core/InformationPanel/InformationPanelHeader.js +2 -1
  65. package/DEV-cjs/core/InformationPanel/InformationPanelWrapper.js +2 -1
  66. package/DEV-cjs/core/Input/Input.js +1 -1
  67. package/DEV-cjs/core/InputGrid/InputGrid.js +1 -1
  68. package/DEV-cjs/core/InputGroup/InputGroup.js +2 -1
  69. package/DEV-cjs/core/InputWithDecorations/InputWithDecorations.js +10 -5
  70. package/DEV-cjs/core/Label/Label.js +1 -1
  71. package/DEV-cjs/core/LabeledInput/LabeledInput.js +2 -1
  72. package/DEV-cjs/core/LabeledSelect/LabeledSelect.js +5 -2
  73. package/DEV-cjs/core/LabeledTextarea/LabeledTextarea.js +2 -1
  74. package/DEV-cjs/core/LinkAction/LinkAction.js +4 -3
  75. package/DEV-cjs/core/List/List.js +1 -1
  76. package/DEV-cjs/core/List/ListItem.js +10 -5
  77. package/DEV-cjs/core/Menu/Menu.js +3 -1
  78. package/DEV-cjs/core/Menu/MenuDivider.js +2 -1
  79. package/DEV-cjs/core/Menu/MenuExtraContent.js +3 -4
  80. package/DEV-cjs/core/Menu/MenuItem.js +7 -3
  81. package/DEV-cjs/core/Menu/MenuItemSkeleton.js +2 -1
  82. package/DEV-cjs/core/Modal/Modal.js +1 -1
  83. package/DEV-cjs/core/Modal/ModalButtonBar.js +2 -1
  84. package/DEV-cjs/core/Modal/ModalContent.js +2 -1
  85. package/DEV-cjs/core/NonIdealState/ErrorPage.js +1 -1
  86. package/DEV-cjs/core/NonIdealState/NonIdealState.js +2 -1
  87. package/DEV-cjs/core/NotificationMarker/NotificationMarker.js +2 -1
  88. package/DEV-cjs/core/Overlay/Overlay.js +8 -4
  89. package/DEV-cjs/core/Panels/Panels.js +13 -7
  90. package/DEV-cjs/core/Panels/helpers.js +2 -1
  91. package/DEV-cjs/core/Popover/Popover.js +35 -28
  92. package/DEV-cjs/core/ProgressIndicators/ProgressLinear.js +2 -1
  93. package/DEV-cjs/core/ProgressIndicators/ProgressRadial.js +2 -1
  94. package/DEV-cjs/core/Radio/Radio.js +1 -1
  95. package/DEV-cjs/core/RadioTiles/RadioTile.js +1 -1
  96. package/DEV-cjs/core/RadioTiles/RadioTileGroup.js +2 -1
  97. package/DEV-cjs/core/SearchBox/SearchBox.js +15 -8
  98. package/DEV-cjs/core/Select/Select.js +61 -48
  99. package/DEV-cjs/core/Select/SelectTag.js +1 -0
  100. package/DEV-cjs/core/SideNavigation/SideNavigation.js +3 -2
  101. package/DEV-cjs/core/SideNavigation/SidenavButton.js +2 -1
  102. package/DEV-cjs/core/SideNavigation/SidenavSubmenu.js +2 -1
  103. package/DEV-cjs/core/SideNavigation/SidenavSubmenuHeader.js +2 -1
  104. package/DEV-cjs/core/SkipToContentLink/SkipToContentLink.js +2 -1
  105. package/DEV-cjs/core/Slider/Slider.js +1 -1
  106. package/DEV-cjs/core/StatusMessage/StatusMessage.js +2 -1
  107. package/DEV-cjs/core/Stepper/Stepper.js +1 -1
  108. package/DEV-cjs/core/Stepper/WorkflowDiagram.js +2 -1
  109. package/DEV-cjs/core/Surface/Surface.js +7 -4
  110. package/DEV-cjs/core/Table/ColumnHeader.js +17 -17
  111. package/DEV-cjs/core/Table/Table.js +147 -57
  112. package/DEV-cjs/core/Table/TableCell.js +6 -4
  113. package/DEV-cjs/core/Table/actionHandlers/expandHandler.js +2 -4
  114. package/DEV-cjs/core/Table/actionHandlers/selectHandler.js +1 -4
  115. package/DEV-cjs/core/Table/cells/DefaultCell.js +31 -15
  116. package/DEV-cjs/core/Table/cells/EditableCell.js +2 -1
  117. package/DEV-cjs/core/Table/columns/expanderColumn.js +16 -17
  118. package/DEV-cjs/core/Table/columns/selectionColumn.js +4 -2
  119. package/DEV-cjs/core/Tabs/Tabs.js +82 -27
  120. package/DEV-cjs/core/Tag/Tag.js +1 -1
  121. package/DEV-cjs/core/Tag/TagContainer.js +2 -1
  122. package/DEV-cjs/core/Textarea/Textarea.js +1 -1
  123. package/DEV-cjs/core/ThemeProvider/ThemeProvider.js +34 -22
  124. package/DEV-cjs/core/Tile/Tile.js +56 -44
  125. package/DEV-cjs/core/TimePicker/TimePicker.js +2 -1
  126. package/DEV-cjs/core/Toast/Toaster.js +4 -2
  127. package/DEV-cjs/core/ToggleSwitch/ToggleSwitch.js +2 -1
  128. package/DEV-cjs/core/Tooltip/Tooltip.js +1 -1
  129. package/DEV-cjs/core/TransferList/TransferList.js +15 -11
  130. package/DEV-cjs/core/Tree/Tree.js +1 -1
  131. package/DEV-cjs/core/Tree/TreeNode.js +1 -1
  132. package/DEV-cjs/core/Tree/TreeNodeExpander.js +2 -1
  133. package/DEV-cjs/core/Typography/Anchor.js +1 -1
  134. package/DEV-cjs/core/Typography/Blockquote.js +2 -1
  135. package/DEV-cjs/core/Typography/Code.js +1 -1
  136. package/DEV-cjs/core/Typography/Kbd.js +1 -1
  137. package/DEV-cjs/core/Typography/Text.js +1 -1
  138. package/DEV-cjs/core/VisuallyHidden/VisuallyHidden.js +2 -1
  139. package/DEV-cjs/index.js +3 -0
  140. package/DEV-cjs/styles.js +1 -1
  141. package/DEV-cjs/utils/components/AutoclearingHiddenLiveRegion.js +2 -1
  142. package/DEV-cjs/utils/components/ButtonBase.js +2 -1
  143. package/DEV-cjs/utils/components/InputWithIcon.js +2 -1
  144. package/DEV-cjs/utils/components/LineClamp.js +6 -0
  145. package/DEV-cjs/utils/components/MiddleTextTruncation.js +2 -1
  146. package/DEV-cjs/utils/components/OverflowContainer.js +6 -9
  147. package/DEV-cjs/utils/components/Portal.js +4 -8
  148. package/DEV-cjs/utils/components/ShadowRoot.js +10 -8
  149. package/DEV-cjs/utils/functions/polymorphic.js +2 -1
  150. package/DEV-cjs/utils/hooks/useGlobals.js +11 -2
  151. package/DEV-cjs/utils/hooks/useWarningLogger.js +29 -28
  152. package/DEV-cjs/utils/providers/index.js +0 -1
  153. package/DEV-esm/core/Alert/Alert.js +12 -6
  154. package/DEV-esm/core/Avatar/Avatar.js +1 -1
  155. package/DEV-esm/core/AvatarGroup/AvatarGroup.js +2 -1
  156. package/DEV-esm/core/Backdrop/Backdrop.js +1 -1
  157. package/DEV-esm/core/Badge/Badge.js +1 -1
  158. package/DEV-esm/core/Breadcrumbs/Breadcrumbs.js +8 -5
  159. package/DEV-esm/core/ButtonGroup/ButtonGroup.js +4 -2
  160. package/DEV-esm/core/Buttons/Button.js +1 -1
  161. package/DEV-esm/core/Buttons/DropdownButton.js +2 -1
  162. package/DEV-esm/core/Buttons/IconButton.js +8 -2
  163. package/DEV-esm/core/Buttons/IdeasButton.js +2 -1
  164. package/DEV-esm/core/Buttons/SplitButton.js +2 -1
  165. package/DEV-esm/core/Carousel/Carousel.js +2 -1
  166. package/DEV-esm/core/Carousel/CarouselContext.js +2 -1
  167. package/DEV-esm/core/Carousel/CarouselDot.js +2 -1
  168. package/DEV-esm/core/Carousel/CarouselDotsList.js +2 -1
  169. package/DEV-esm/core/Carousel/CarouselNavigation.js +6 -3
  170. package/DEV-esm/core/Carousel/CarouselSlide.js +2 -1
  171. package/DEV-esm/core/Carousel/CarouselSlider.js +2 -1
  172. package/DEV-esm/core/Checkbox/Checkbox.js +1 -1
  173. package/DEV-esm/core/ColorPicker/ColorBuilder.js +2 -1
  174. package/DEV-esm/core/ColorPicker/ColorInputPanel.js +4 -2
  175. package/DEV-esm/core/ColorPicker/ColorPalette.js +2 -1
  176. package/DEV-esm/core/ColorPicker/ColorPicker.js +2 -1
  177. package/DEV-esm/core/ColorPicker/ColorSwatch.js +2 -1
  178. package/DEV-esm/core/ComboBox/ComboBox.js +61 -29
  179. package/DEV-esm/core/ComboBox/ComboBoxEndIcon.js +2 -1
  180. package/DEV-esm/core/ComboBox/ComboBoxInput.js +2 -3
  181. package/DEV-esm/core/ComboBox/ComboBoxInputContainer.js +2 -1
  182. package/DEV-esm/core/ComboBox/ComboBoxMenu.js +2 -1
  183. package/DEV-esm/core/ComboBox/ComboBoxMenuItem.js +3 -2
  184. package/DEV-esm/core/ComboBox/ComboBoxMultipleContainer.js +2 -1
  185. package/DEV-esm/core/ComboBox/helpers.js +4 -2
  186. package/DEV-esm/core/DatePicker/DatePicker.js +5 -4
  187. package/DEV-esm/core/Dialog/Dialog.js +22 -9
  188. package/DEV-esm/core/Dialog/DialogBackdrop.js +2 -1
  189. package/DEV-esm/core/Dialog/DialogButtonBar.js +2 -1
  190. package/DEV-esm/core/Dialog/DialogContent.js +2 -1
  191. package/DEV-esm/core/Dialog/DialogMain.js +2 -1
  192. package/DEV-esm/core/Dialog/DialogTitleBar.js +2 -1
  193. package/DEV-esm/core/Dialog/DialogTitleBarTitle.js +2 -1
  194. package/DEV-esm/core/Divider/Divider.js +1 -1
  195. package/DEV-esm/core/DropdownMenu/DropdownMenu.js +32 -24
  196. package/DEV-esm/core/ExpandableBlock/ExpandableBlock.js +107 -91
  197. package/DEV-esm/core/Fieldset/Fieldset.js +1 -1
  198. package/DEV-esm/core/FileUpload/FileEmptyCard.js +6 -3
  199. package/DEV-esm/core/FileUpload/FileUpload.js +2 -1
  200. package/DEV-esm/core/FileUpload/FileUploadCard.js +18 -9
  201. package/DEV-esm/core/FileUpload/FileUploadTemplate.js +2 -1
  202. package/DEV-esm/core/Flex/Flex.js +4 -3
  203. package/DEV-esm/core/Footer/Footer.js +1 -1
  204. package/DEV-esm/core/Footer/FooterItem.js +2 -1
  205. package/DEV-esm/core/Footer/FooterList.js +2 -1
  206. package/DEV-esm/core/Footer/FooterSeparator.js +2 -1
  207. package/DEV-esm/core/Header/Header.js +1 -1
  208. package/DEV-esm/core/Header/HeaderBreadcrumbs.js +2 -1
  209. package/DEV-esm/core/Header/HeaderButton.js +2 -1
  210. package/DEV-esm/core/Header/HeaderLogo.js +3 -2
  211. package/DEV-esm/core/Icon/Icon.js +1 -1
  212. package/DEV-esm/core/InformationPanel/InformationPanel.js +2 -1
  213. package/DEV-esm/core/InformationPanel/InformationPanelBody.js +2 -1
  214. package/DEV-esm/core/InformationPanel/InformationPanelContent.js +2 -1
  215. package/DEV-esm/core/InformationPanel/InformationPanelHeader.js +2 -1
  216. package/DEV-esm/core/InformationPanel/InformationPanelWrapper.js +2 -1
  217. package/DEV-esm/core/Input/Input.js +1 -1
  218. package/DEV-esm/core/InputGrid/InputGrid.js +1 -1
  219. package/DEV-esm/core/InputGroup/InputGroup.js +2 -1
  220. package/DEV-esm/core/InputWithDecorations/InputWithDecorations.js +10 -5
  221. package/DEV-esm/core/Label/Label.js +1 -1
  222. package/DEV-esm/core/LabeledInput/LabeledInput.js +2 -1
  223. package/DEV-esm/core/LabeledSelect/LabeledSelect.js +5 -2
  224. package/DEV-esm/core/LabeledTextarea/LabeledTextarea.js +2 -1
  225. package/DEV-esm/core/LinkAction/LinkAction.js +4 -3
  226. package/DEV-esm/core/List/List.js +1 -1
  227. package/DEV-esm/core/List/ListItem.js +10 -5
  228. package/DEV-esm/core/Menu/Menu.js +4 -1
  229. package/DEV-esm/core/Menu/MenuDivider.js +2 -1
  230. package/DEV-esm/core/Menu/MenuExtraContent.js +3 -4
  231. package/DEV-esm/core/Menu/MenuItem.js +7 -3
  232. package/DEV-esm/core/Menu/MenuItemSkeleton.js +2 -1
  233. package/DEV-esm/core/Modal/Modal.js +1 -1
  234. package/DEV-esm/core/Modal/ModalButtonBar.js +2 -1
  235. package/DEV-esm/core/Modal/ModalContent.js +2 -1
  236. package/DEV-esm/core/NonIdealState/ErrorPage.js +1 -1
  237. package/DEV-esm/core/NonIdealState/NonIdealState.js +2 -1
  238. package/DEV-esm/core/NotificationMarker/NotificationMarker.js +2 -1
  239. package/DEV-esm/core/Overlay/Overlay.js +8 -4
  240. package/DEV-esm/core/Panels/Panels.js +13 -7
  241. package/DEV-esm/core/Panels/helpers.js +2 -1
  242. package/DEV-esm/core/Popover/Popover.js +39 -29
  243. package/DEV-esm/core/ProgressIndicators/ProgressLinear.js +2 -1
  244. package/DEV-esm/core/ProgressIndicators/ProgressRadial.js +2 -1
  245. package/DEV-esm/core/Radio/Radio.js +1 -1
  246. package/DEV-esm/core/RadioTiles/RadioTile.js +1 -1
  247. package/DEV-esm/core/RadioTiles/RadioTileGroup.js +2 -1
  248. package/DEV-esm/core/SearchBox/SearchBox.js +15 -8
  249. package/DEV-esm/core/Select/Select.js +61 -48
  250. package/DEV-esm/core/Select/SelectTag.js +1 -0
  251. package/DEV-esm/core/SideNavigation/SideNavigation.js +3 -2
  252. package/DEV-esm/core/SideNavigation/SidenavButton.js +2 -1
  253. package/DEV-esm/core/SideNavigation/SidenavSubmenu.js +2 -1
  254. package/DEV-esm/core/SideNavigation/SidenavSubmenuHeader.js +2 -1
  255. package/DEV-esm/core/SkipToContentLink/SkipToContentLink.js +2 -1
  256. package/DEV-esm/core/Slider/Slider.js +1 -1
  257. package/DEV-esm/core/StatusMessage/StatusMessage.js +2 -1
  258. package/DEV-esm/core/Stepper/Stepper.js +1 -1
  259. package/DEV-esm/core/Stepper/WorkflowDiagram.js +2 -1
  260. package/DEV-esm/core/Surface/Surface.js +7 -4
  261. package/DEV-esm/core/Table/ColumnHeader.js +17 -17
  262. package/DEV-esm/core/Table/Table.js +144 -57
  263. package/DEV-esm/core/Table/TableCell.js +6 -4
  264. package/DEV-esm/core/Table/actionHandlers/expandHandler.js +2 -4
  265. package/DEV-esm/core/Table/actionHandlers/selectHandler.js +1 -4
  266. package/DEV-esm/core/Table/cells/DefaultCell.js +31 -15
  267. package/DEV-esm/core/Table/cells/EditableCell.js +2 -1
  268. package/DEV-esm/core/Table/columns/expanderColumn.js +16 -17
  269. package/DEV-esm/core/Table/columns/selectionColumn.js +4 -2
  270. package/DEV-esm/core/Tabs/Tabs.js +75 -23
  271. package/DEV-esm/core/Tag/Tag.js +1 -1
  272. package/DEV-esm/core/Tag/TagContainer.js +2 -1
  273. package/DEV-esm/core/Textarea/Textarea.js +1 -1
  274. package/DEV-esm/core/ThemeProvider/ThemeProvider.js +34 -21
  275. package/DEV-esm/core/Tile/Tile.js +57 -48
  276. package/DEV-esm/core/TimePicker/TimePicker.js +2 -1
  277. package/DEV-esm/core/Toast/Toaster.js +4 -2
  278. package/DEV-esm/core/ToggleSwitch/ToggleSwitch.js +2 -1
  279. package/DEV-esm/core/Tooltip/Tooltip.js +1 -1
  280. package/DEV-esm/core/TransferList/TransferList.js +15 -11
  281. package/DEV-esm/core/Tree/Tree.js +1 -1
  282. package/DEV-esm/core/Tree/TreeNode.js +1 -1
  283. package/DEV-esm/core/Tree/TreeNodeExpander.js +2 -1
  284. package/DEV-esm/core/Typography/Anchor.js +1 -1
  285. package/DEV-esm/core/Typography/Blockquote.js +2 -1
  286. package/DEV-esm/core/Typography/Code.js +1 -1
  287. package/DEV-esm/core/Typography/Kbd.js +1 -1
  288. package/DEV-esm/core/Typography/Text.js +1 -1
  289. package/DEV-esm/core/VisuallyHidden/VisuallyHidden.js +2 -1
  290. package/DEV-esm/index.js +1 -1
  291. package/DEV-esm/styles.js +1 -1
  292. package/DEV-esm/utils/components/AutoclearingHiddenLiveRegion.js +2 -1
  293. package/DEV-esm/utils/components/ButtonBase.js +2 -1
  294. package/DEV-esm/utils/components/InputWithIcon.js +2 -1
  295. package/DEV-esm/utils/components/LineClamp.js +3 -0
  296. package/DEV-esm/utils/components/MiddleTextTruncation.js +2 -1
  297. package/DEV-esm/utils/components/OverflowContainer.js +6 -9
  298. package/DEV-esm/utils/components/Portal.js +2 -4
  299. package/DEV-esm/utils/components/ShadowRoot.js +10 -8
  300. package/DEV-esm/utils/functions/polymorphic.js +2 -1
  301. package/DEV-esm/utils/hooks/useGlobals.js +11 -2
  302. package/DEV-esm/utils/hooks/useWarningLogger.js +29 -27
  303. package/DEV-esm/utils/providers/index.js +0 -1
  304. package/cjs/core/Alert/Alert.js +12 -0
  305. package/cjs/core/Avatar/Avatar.js +1 -0
  306. package/cjs/core/AvatarGroup/AvatarGroup.js +2 -0
  307. package/cjs/core/Backdrop/Backdrop.js +1 -0
  308. package/cjs/core/Badge/Badge.js +1 -0
  309. package/cjs/core/Breadcrumbs/Breadcrumbs.js +10 -1
  310. package/cjs/core/ButtonGroup/ButtonGroup.js +4 -0
  311. package/cjs/core/Buttons/Button.js +1 -0
  312. package/cjs/core/Buttons/DropdownButton.js +2 -0
  313. package/cjs/core/Buttons/IconButton.js +9 -0
  314. package/cjs/core/Buttons/IdeasButton.js +2 -0
  315. package/cjs/core/Buttons/SplitButton.js +2 -0
  316. package/cjs/core/Carousel/Carousel.js +2 -0
  317. package/cjs/core/Carousel/CarouselContext.js +2 -0
  318. package/cjs/core/Carousel/CarouselDot.js +2 -0
  319. package/cjs/core/Carousel/CarouselDotsList.js +2 -0
  320. package/cjs/core/Carousel/CarouselNavigation.js +6 -0
  321. package/cjs/core/Carousel/CarouselSlide.js +2 -0
  322. package/cjs/core/Carousel/CarouselSlider.js +2 -0
  323. package/cjs/core/Checkbox/Checkbox.js +1 -0
  324. package/cjs/core/ColorPicker/ColorBuilder.js +2 -0
  325. package/cjs/core/ColorPicker/ColorInputPanel.js +4 -1
  326. package/cjs/core/ColorPicker/ColorPalette.js +2 -0
  327. package/cjs/core/ColorPicker/ColorPicker.js +2 -0
  328. package/cjs/core/ColorPicker/ColorSwatch.js +2 -0
  329. package/cjs/core/ComboBox/ComboBox.js +61 -28
  330. package/cjs/core/ComboBox/ComboBoxEndIcon.js +2 -0
  331. package/cjs/core/ComboBox/ComboBoxInput.js +2 -2
  332. package/cjs/core/ComboBox/ComboBoxInputContainer.js +2 -0
  333. package/cjs/core/ComboBox/ComboBoxMenu.js +2 -0
  334. package/cjs/core/ComboBox/ComboBoxMenuItem.js +3 -1
  335. package/cjs/core/ComboBox/ComboBoxMultipleContainer.js +2 -0
  336. package/cjs/core/ComboBox/helpers.js +4 -0
  337. package/cjs/core/DatePicker/DatePicker.js +11 -2
  338. package/cjs/core/Dialog/Dialog.js +23 -10
  339. package/cjs/core/Dialog/DialogBackdrop.js +2 -0
  340. package/cjs/core/Dialog/DialogButtonBar.js +2 -0
  341. package/cjs/core/Dialog/DialogContent.js +2 -0
  342. package/cjs/core/Dialog/DialogContext.d.ts +1 -1
  343. package/cjs/core/Dialog/DialogMain.js +2 -0
  344. package/cjs/core/Dialog/DialogTitleBar.js +2 -0
  345. package/cjs/core/Dialog/DialogTitleBarTitle.js +2 -0
  346. package/cjs/core/Divider/Divider.js +1 -0
  347. package/cjs/core/DropdownMenu/DropdownMenu.d.ts +7 -1
  348. package/cjs/core/DropdownMenu/DropdownMenu.js +32 -23
  349. package/cjs/core/ExpandableBlock/ExpandableBlock.d.ts +3 -0
  350. package/cjs/core/ExpandableBlock/ExpandableBlock.js +38 -3
  351. package/cjs/core/Fieldset/Fieldset.js +1 -0
  352. package/cjs/core/FileUpload/FileEmptyCard.js +6 -0
  353. package/cjs/core/FileUpload/FileUpload.js +2 -0
  354. package/cjs/core/FileUpload/FileUploadCard.js +18 -0
  355. package/cjs/core/FileUpload/FileUploadTemplate.js +2 -0
  356. package/cjs/core/Flex/Flex.js +4 -0
  357. package/cjs/core/Footer/Footer.js +1 -0
  358. package/cjs/core/Footer/FooterItem.js +2 -0
  359. package/cjs/core/Footer/FooterList.js +2 -0
  360. package/cjs/core/Footer/FooterSeparator.js +2 -0
  361. package/cjs/core/Header/Header.js +1 -0
  362. package/cjs/core/Header/HeaderBreadcrumbs.js +2 -0
  363. package/cjs/core/Header/HeaderButton.js +2 -0
  364. package/cjs/core/Header/HeaderLogo.js +3 -1
  365. package/cjs/core/Icon/Icon.js +1 -0
  366. package/cjs/core/InformationPanel/InformationPanel.js +2 -0
  367. package/cjs/core/InformationPanel/InformationPanelBody.js +2 -0
  368. package/cjs/core/InformationPanel/InformationPanelContent.js +2 -0
  369. package/cjs/core/InformationPanel/InformationPanelHeader.js +2 -0
  370. package/cjs/core/InformationPanel/InformationPanelWrapper.js +2 -0
  371. package/cjs/core/Input/Input.js +1 -0
  372. package/cjs/core/InputGrid/InputGrid.js +1 -0
  373. package/cjs/core/InputGroup/InputGroup.js +2 -0
  374. package/cjs/core/InputWithDecorations/InputWithDecorations.js +10 -0
  375. package/cjs/core/Label/Label.js +1 -0
  376. package/cjs/core/LabeledInput/LabeledInput.js +2 -0
  377. package/cjs/core/LabeledSelect/LabeledSelect.js +5 -1
  378. package/cjs/core/LabeledTextarea/LabeledTextarea.js +2 -0
  379. package/cjs/core/LinkAction/LinkAction.js +4 -1
  380. package/cjs/core/List/List.js +1 -0
  381. package/cjs/core/List/ListItem.js +10 -0
  382. package/cjs/core/Menu/Menu.d.ts +3 -1
  383. package/cjs/core/Menu/Menu.js +3 -1
  384. package/cjs/core/Menu/MenuDivider.js +2 -0
  385. package/cjs/core/Menu/MenuExtraContent.d.ts +1 -1
  386. package/cjs/core/Menu/MenuExtraContent.js +3 -3
  387. package/cjs/core/Menu/MenuItem.js +10 -1
  388. package/cjs/core/Menu/MenuItemSkeleton.js +2 -0
  389. package/cjs/core/Modal/Modal.d.ts +1 -1
  390. package/cjs/core/Modal/Modal.js +1 -0
  391. package/cjs/core/Modal/ModalButtonBar.js +2 -0
  392. package/cjs/core/Modal/ModalContent.js +2 -0
  393. package/cjs/core/NonIdealState/ErrorPage.js +1 -0
  394. package/cjs/core/NonIdealState/NonIdealState.js +2 -0
  395. package/cjs/core/NotificationMarker/NotificationMarker.js +2 -0
  396. package/cjs/core/Overlay/Overlay.js +8 -0
  397. package/cjs/core/Panels/Panels.js +13 -0
  398. package/cjs/core/Panels/helpers.js +2 -0
  399. package/cjs/core/Popover/Popover.js +35 -27
  400. package/cjs/core/ProgressIndicators/ProgressLinear.js +2 -0
  401. package/cjs/core/ProgressIndicators/ProgressRadial.js +2 -0
  402. package/cjs/core/Radio/Radio.js +1 -0
  403. package/cjs/core/RadioTiles/RadioTile.js +1 -0
  404. package/cjs/core/RadioTiles/RadioTileGroup.js +2 -0
  405. package/cjs/core/SearchBox/SearchBox.js +15 -0
  406. package/cjs/core/Select/Select.js +61 -47
  407. package/cjs/core/Select/SelectTag.js +1 -0
  408. package/cjs/core/SideNavigation/SideNavigation.d.ts +5 -1
  409. package/cjs/core/SideNavigation/SideNavigation.js +3 -1
  410. package/cjs/core/SideNavigation/SidenavButton.js +2 -0
  411. package/cjs/core/SideNavigation/SidenavSubmenu.js +2 -0
  412. package/cjs/core/SideNavigation/SidenavSubmenuHeader.js +2 -0
  413. package/cjs/core/SkipToContentLink/SkipToContentLink.js +2 -0
  414. package/cjs/core/Slider/Slider.js +1 -0
  415. package/cjs/core/StatusMessage/StatusMessage.js +2 -0
  416. package/cjs/core/Stepper/Stepper.js +1 -0
  417. package/cjs/core/Stepper/WorkflowDiagram.js +2 -0
  418. package/cjs/core/Surface/Surface.js +7 -0
  419. package/cjs/core/Table/ColumnHeader.js +17 -17
  420. package/cjs/core/Table/Table.d.ts +27 -1
  421. package/cjs/core/Table/Table.js +152 -53
  422. package/cjs/core/Table/TableCell.js +6 -4
  423. package/cjs/core/Table/actionHandlers/expandHandler.js +2 -4
  424. package/cjs/core/Table/actionHandlers/selectHandler.js +1 -4
  425. package/cjs/core/Table/cells/DefaultCell.js +31 -14
  426. package/cjs/core/Table/cells/EditableCell.js +2 -0
  427. package/cjs/core/Table/columns/expanderColumn.js +16 -17
  428. package/cjs/core/Table/columns/selectionColumn.js +4 -2
  429. package/cjs/core/Tabs/Tabs.d.ts +37 -0
  430. package/cjs/core/Tabs/Tabs.js +82 -16
  431. package/cjs/core/Tag/Tag.js +1 -0
  432. package/cjs/core/Tag/TagContainer.js +2 -0
  433. package/cjs/core/Textarea/Textarea.js +1 -0
  434. package/cjs/core/ThemeProvider/ThemeProvider.js +57 -21
  435. package/cjs/core/Tile/Tile.js +56 -26
  436. package/cjs/core/TimePicker/TimePicker.js +2 -0
  437. package/cjs/core/Toast/Toaster.js +4 -0
  438. package/cjs/core/ToggleSwitch/ToggleSwitch.js +2 -0
  439. package/cjs/core/Tooltip/Tooltip.js +1 -0
  440. package/cjs/core/TransferList/TransferList.js +15 -4
  441. package/cjs/core/Tree/Tree.js +1 -0
  442. package/cjs/core/Tree/TreeNode.js +1 -0
  443. package/cjs/core/Tree/TreeNodeExpander.js +2 -0
  444. package/cjs/core/Typography/Anchor.js +1 -0
  445. package/cjs/core/Typography/Blockquote.js +2 -0
  446. package/cjs/core/Typography/Code.js +1 -0
  447. package/cjs/core/Typography/Kbd.js +1 -0
  448. package/cjs/core/Typography/Text.js +1 -0
  449. package/cjs/core/VisuallyHidden/VisuallyHidden.js +2 -0
  450. package/cjs/index.d.ts +1 -1
  451. package/cjs/index.js +3 -0
  452. package/cjs/styles.js +1 -1
  453. package/cjs/utils/components/AutoclearingHiddenLiveRegion.d.ts +2 -2
  454. package/cjs/utils/components/AutoclearingHiddenLiveRegion.js +2 -1
  455. package/cjs/utils/components/ButtonBase.js +2 -0
  456. package/cjs/utils/components/InputWithIcon.js +2 -0
  457. package/cjs/utils/components/LineClamp.js +6 -0
  458. package/cjs/utils/components/MiddleTextTruncation.js +2 -0
  459. package/cjs/utils/components/OverflowContainer.js +6 -8
  460. package/cjs/utils/components/Portal.d.ts +3 -5
  461. package/cjs/utils/components/Portal.js +4 -8
  462. package/cjs/utils/components/ShadowRoot.d.ts +11 -2
  463. package/cjs/utils/components/ShadowRoot.js +10 -8
  464. package/cjs/utils/functions/polymorphic.js +2 -0
  465. package/cjs/utils/hooks/useGlobals.js +29 -2
  466. package/cjs/utils/hooks/useWarningLogger.js +29 -1
  467. package/cjs/utils/providers/index.d.ts +0 -1
  468. package/cjs/utils/providers/index.js +0 -1
  469. package/esm/core/Alert/Alert.js +12 -0
  470. package/esm/core/Avatar/Avatar.js +1 -0
  471. package/esm/core/AvatarGroup/AvatarGroup.js +2 -0
  472. package/esm/core/Backdrop/Backdrop.js +1 -0
  473. package/esm/core/Badge/Badge.js +1 -0
  474. package/esm/core/Breadcrumbs/Breadcrumbs.js +10 -1
  475. package/esm/core/ButtonGroup/ButtonGroup.js +4 -0
  476. package/esm/core/Buttons/Button.js +1 -0
  477. package/esm/core/Buttons/DropdownButton.js +2 -0
  478. package/esm/core/Buttons/IconButton.js +9 -0
  479. package/esm/core/Buttons/IdeasButton.js +2 -0
  480. package/esm/core/Buttons/SplitButton.js +2 -0
  481. package/esm/core/Carousel/Carousel.js +2 -0
  482. package/esm/core/Carousel/CarouselContext.js +2 -0
  483. package/esm/core/Carousel/CarouselDot.js +2 -0
  484. package/esm/core/Carousel/CarouselDotsList.js +2 -0
  485. package/esm/core/Carousel/CarouselNavigation.js +6 -0
  486. package/esm/core/Carousel/CarouselSlide.js +2 -0
  487. package/esm/core/Carousel/CarouselSlider.js +2 -0
  488. package/esm/core/Checkbox/Checkbox.js +1 -0
  489. package/esm/core/ColorPicker/ColorBuilder.js +2 -0
  490. package/esm/core/ColorPicker/ColorInputPanel.js +4 -1
  491. package/esm/core/ColorPicker/ColorPalette.js +2 -0
  492. package/esm/core/ColorPicker/ColorPicker.js +2 -0
  493. package/esm/core/ColorPicker/ColorSwatch.js +2 -0
  494. package/esm/core/ComboBox/ComboBox.js +61 -28
  495. package/esm/core/ComboBox/ComboBoxEndIcon.js +2 -0
  496. package/esm/core/ComboBox/ComboBoxInput.js +2 -2
  497. package/esm/core/ComboBox/ComboBoxInputContainer.js +2 -0
  498. package/esm/core/ComboBox/ComboBoxMenu.js +2 -0
  499. package/esm/core/ComboBox/ComboBoxMenuItem.js +3 -1
  500. package/esm/core/ComboBox/ComboBoxMultipleContainer.js +2 -0
  501. package/esm/core/ComboBox/helpers.js +4 -0
  502. package/esm/core/DatePicker/DatePicker.js +11 -2
  503. package/esm/core/Dialog/Dialog.js +22 -8
  504. package/esm/core/Dialog/DialogBackdrop.js +2 -0
  505. package/esm/core/Dialog/DialogButtonBar.js +2 -0
  506. package/esm/core/Dialog/DialogContent.js +2 -0
  507. package/esm/core/Dialog/DialogContext.d.ts +1 -1
  508. package/esm/core/Dialog/DialogMain.js +2 -0
  509. package/esm/core/Dialog/DialogTitleBar.js +2 -0
  510. package/esm/core/Dialog/DialogTitleBarTitle.js +2 -0
  511. package/esm/core/Divider/Divider.js +1 -0
  512. package/esm/core/DropdownMenu/DropdownMenu.d.ts +7 -1
  513. package/esm/core/DropdownMenu/DropdownMenu.js +32 -23
  514. package/esm/core/ExpandableBlock/ExpandableBlock.d.ts +3 -0
  515. package/esm/core/ExpandableBlock/ExpandableBlock.js +107 -81
  516. package/esm/core/Fieldset/Fieldset.js +1 -0
  517. package/esm/core/FileUpload/FileEmptyCard.js +6 -0
  518. package/esm/core/FileUpload/FileUpload.js +2 -0
  519. package/esm/core/FileUpload/FileUploadCard.js +18 -0
  520. package/esm/core/FileUpload/FileUploadTemplate.js +2 -0
  521. package/esm/core/Flex/Flex.js +4 -0
  522. package/esm/core/Footer/Footer.js +1 -0
  523. package/esm/core/Footer/FooterItem.js +2 -0
  524. package/esm/core/Footer/FooterList.js +2 -0
  525. package/esm/core/Footer/FooterSeparator.js +2 -0
  526. package/esm/core/Header/Header.js +1 -0
  527. package/esm/core/Header/HeaderBreadcrumbs.js +2 -0
  528. package/esm/core/Header/HeaderButton.js +2 -0
  529. package/esm/core/Header/HeaderLogo.js +3 -1
  530. package/esm/core/Icon/Icon.js +1 -0
  531. package/esm/core/InformationPanel/InformationPanel.js +2 -0
  532. package/esm/core/InformationPanel/InformationPanelBody.js +2 -0
  533. package/esm/core/InformationPanel/InformationPanelContent.js +2 -0
  534. package/esm/core/InformationPanel/InformationPanelHeader.js +2 -0
  535. package/esm/core/InformationPanel/InformationPanelWrapper.js +2 -0
  536. package/esm/core/Input/Input.js +1 -0
  537. package/esm/core/InputGrid/InputGrid.js +1 -0
  538. package/esm/core/InputGroup/InputGroup.js +2 -0
  539. package/esm/core/InputWithDecorations/InputWithDecorations.js +10 -0
  540. package/esm/core/Label/Label.js +1 -0
  541. package/esm/core/LabeledInput/LabeledInput.js +2 -0
  542. package/esm/core/LabeledSelect/LabeledSelect.js +5 -1
  543. package/esm/core/LabeledTextarea/LabeledTextarea.js +2 -0
  544. package/esm/core/LinkAction/LinkAction.js +4 -1
  545. package/esm/core/List/List.js +1 -0
  546. package/esm/core/List/ListItem.js +10 -0
  547. package/esm/core/Menu/Menu.d.ts +3 -1
  548. package/esm/core/Menu/Menu.js +4 -1
  549. package/esm/core/Menu/MenuDivider.js +2 -0
  550. package/esm/core/Menu/MenuExtraContent.d.ts +1 -1
  551. package/esm/core/Menu/MenuExtraContent.js +3 -3
  552. package/esm/core/Menu/MenuItem.js +10 -1
  553. package/esm/core/Menu/MenuItemSkeleton.js +2 -0
  554. package/esm/core/Modal/Modal.d.ts +1 -1
  555. package/esm/core/Modal/Modal.js +1 -0
  556. package/esm/core/Modal/ModalButtonBar.js +2 -0
  557. package/esm/core/Modal/ModalContent.js +2 -0
  558. package/esm/core/NonIdealState/ErrorPage.js +1 -0
  559. package/esm/core/NonIdealState/NonIdealState.js +2 -0
  560. package/esm/core/NotificationMarker/NotificationMarker.js +2 -0
  561. package/esm/core/Overlay/Overlay.js +8 -0
  562. package/esm/core/Panels/Panels.js +13 -0
  563. package/esm/core/Panels/helpers.js +2 -0
  564. package/esm/core/Popover/Popover.js +39 -28
  565. package/esm/core/ProgressIndicators/ProgressLinear.js +2 -0
  566. package/esm/core/ProgressIndicators/ProgressRadial.js +2 -0
  567. package/esm/core/Radio/Radio.js +1 -0
  568. package/esm/core/RadioTiles/RadioTile.js +1 -0
  569. package/esm/core/RadioTiles/RadioTileGroup.js +2 -0
  570. package/esm/core/SearchBox/SearchBox.js +15 -0
  571. package/esm/core/Select/Select.js +61 -47
  572. package/esm/core/Select/SelectTag.js +1 -0
  573. package/esm/core/SideNavigation/SideNavigation.d.ts +5 -1
  574. package/esm/core/SideNavigation/SideNavigation.js +3 -1
  575. package/esm/core/SideNavigation/SidenavButton.js +2 -0
  576. package/esm/core/SideNavigation/SidenavSubmenu.js +2 -0
  577. package/esm/core/SideNavigation/SidenavSubmenuHeader.js +2 -0
  578. package/esm/core/SkipToContentLink/SkipToContentLink.js +2 -0
  579. package/esm/core/Slider/Slider.js +1 -0
  580. package/esm/core/StatusMessage/StatusMessage.js +2 -0
  581. package/esm/core/Stepper/Stepper.js +1 -0
  582. package/esm/core/Stepper/WorkflowDiagram.js +2 -0
  583. package/esm/core/Surface/Surface.js +7 -0
  584. package/esm/core/Table/ColumnHeader.js +17 -17
  585. package/esm/core/Table/Table.d.ts +27 -1
  586. package/esm/core/Table/Table.js +149 -53
  587. package/esm/core/Table/TableCell.js +6 -4
  588. package/esm/core/Table/actionHandlers/expandHandler.js +2 -4
  589. package/esm/core/Table/actionHandlers/selectHandler.js +1 -4
  590. package/esm/core/Table/cells/DefaultCell.js +31 -14
  591. package/esm/core/Table/cells/EditableCell.js +2 -0
  592. package/esm/core/Table/columns/expanderColumn.js +16 -17
  593. package/esm/core/Table/columns/selectionColumn.js +4 -2
  594. package/esm/core/Tabs/Tabs.d.ts +37 -0
  595. package/esm/core/Tabs/Tabs.js +75 -12
  596. package/esm/core/Tag/Tag.js +1 -0
  597. package/esm/core/Tag/TagContainer.js +2 -0
  598. package/esm/core/Textarea/Textarea.js +1 -0
  599. package/esm/core/ThemeProvider/ThemeProvider.js +57 -20
  600. package/esm/core/Tile/Tile.js +57 -30
  601. package/esm/core/TimePicker/TimePicker.js +2 -0
  602. package/esm/core/Toast/Toaster.js +4 -0
  603. package/esm/core/ToggleSwitch/ToggleSwitch.js +2 -0
  604. package/esm/core/Tooltip/Tooltip.js +1 -0
  605. package/esm/core/TransferList/TransferList.js +15 -4
  606. package/esm/core/Tree/Tree.js +1 -0
  607. package/esm/core/Tree/TreeNode.js +1 -0
  608. package/esm/core/Tree/TreeNodeExpander.js +2 -0
  609. package/esm/core/Typography/Anchor.js +1 -0
  610. package/esm/core/Typography/Blockquote.js +2 -0
  611. package/esm/core/Typography/Code.js +1 -0
  612. package/esm/core/Typography/Kbd.js +1 -0
  613. package/esm/core/Typography/Text.js +1 -0
  614. package/esm/core/VisuallyHidden/VisuallyHidden.js +2 -0
  615. package/esm/index.d.ts +1 -1
  616. package/esm/index.js +1 -1
  617. package/esm/styles.js +1 -1
  618. package/esm/utils/components/AutoclearingHiddenLiveRegion.d.ts +2 -2
  619. package/esm/utils/components/AutoclearingHiddenLiveRegion.js +2 -1
  620. package/esm/utils/components/ButtonBase.js +2 -0
  621. package/esm/utils/components/InputWithIcon.js +2 -0
  622. package/esm/utils/components/LineClamp.js +3 -0
  623. package/esm/utils/components/MiddleTextTruncation.js +2 -0
  624. package/esm/utils/components/OverflowContainer.js +6 -8
  625. package/esm/utils/components/Portal.d.ts +3 -5
  626. package/esm/utils/components/Portal.js +2 -4
  627. package/esm/utils/components/ShadowRoot.d.ts +11 -2
  628. package/esm/utils/components/ShadowRoot.js +10 -8
  629. package/esm/utils/functions/polymorphic.js +2 -0
  630. package/esm/utils/hooks/useGlobals.js +29 -2
  631. package/esm/utils/hooks/useWarningLogger.js +29 -1
  632. package/esm/utils/providers/index.d.ts +0 -1
  633. package/esm/utils/providers/index.js +0 -1
  634. package/package.json +11 -12
  635. package/styles.css +10 -10
  636. package/DEV-cjs/utils/providers/ScopeProvider.js +0 -66
  637. package/DEV-esm/utils/providers/ScopeProvider.js +0 -43
  638. package/cjs/utils/providers/ScopeProvider.d.ts +0 -26
  639. package/cjs/utils/providers/ScopeProvider.js +0 -66
  640. package/esm/utils/providers/ScopeProvider.d.ts +0 -26
  641. package/esm/utils/providers/ScopeProvider.js +0 -43
package/CHANGELOG.md CHANGED
@@ -1,5 +1,69 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.18.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#2498](https://github.com/iTwin/iTwinUI/pull/2498): **ComboBox, Select**: Added the ability to deselect options in the closed state when using `multiple` selection mode. The tags will now each have a deselect ("❌") button.
8
+ - [#2346](https://github.com/iTwin/iTwinUI/pull/2346): `<Select multiple>` now renders the tag container outside the select-button. While this shouldn't make a noticeable difference in most cases, it might affect the use of `selectedItemRenderer`.
9
+ - [#2487](https://github.com/iTwin/iTwinUI/pull/2487): `Table`'s accessibility tree structure has been fixed. This required moving the `role="table"` attribute from the outermost element to a new element inside the Table's shadow DOM. Elements that are not allowed within `role="table"` (e.g. paginator, loading indicator, empty state) will now remain outside `role="table"`, thus resulting in a valid accessibility tree.
10
+
11
+ A new `tableProps` prop has been added, which allows passing props to the inner `role="table"` element.
12
+
13
+ **NOTE**: For backwards compatibility, ARIA attributes passed directly to `<Table>` will now be automatically propagated to the inner `role="table"` element by default. However, when `tableProps` or `role` is also passed, the ARIA attributes passed directly to `<Table>` will remain on the outermost element to keep the behavior more predictable.
14
+
15
+ - [#2487](https://github.com/iTwin/iTwinUI/pull/2487): Added a `caption` prop to `Table` that serves as the table caption. Although optional for backward compatibility, it is **recommended** to use it for accessibility purposes.
16
+
17
+ - **Nested popovers**:
18
+
19
+ - [#2490](https://github.com/iTwin/iTwinUI/pull/2490): `Dialog`, `Modal` and `Popover` will now correctly handle portaling of nested floating elements.
20
+ - [#2490](https://github.com/iTwin/iTwinUI/pull/2490): Fixed an issue in `toaster` where toasts was portaling into a new container when used inside `<Popover>`. With this change, the global toaster container will be correctly reused.
21
+ - [#2491](https://github.com/iTwin/iTwinUI/pull/2491): Fixed an issue where `Dialog` nested inside `Popover` was not appearing correctly.
22
+ - [#2491](https://github.com/iTwin/iTwinUI/pull/2491): Adjusted the `z-index` value of `Popover` and other floating elements to match `Dialog`.
23
+
24
+ - **Markup changes**:
25
+ - [#2480](https://github.com/iTwin/iTwinUI/pull/2480): `<MenuExtraContent>` now renders a `<div>` instead of `<li>` to prevent invalid markup.
26
+ - [#2481](https://github.com/iTwin/iTwinUI/pull/2481): `<SideNavigation>` now renders a `<nav>` as the topmost element. This creates a [navigation landmark](https://www.w3.org/WAI/ARIA/apg/patterns/landmarks/examples/navigation.html) for assistive technology.
27
+
28
+ - [#2482](https://github.com/iTwin/iTwinUI/pull/2482): Added a new `closeItemOnClick` prop to `<DropdownMenu>`. When set to `true`, the menu will automatically close when any menu-item is clicked, without having to explicitly call `close()`.
29
+ - [#2506](https://github.com/iTwin/iTwinUI/pull/2506): Added a new `positionReference` prop to `DropdownMenu`. This prop changes the position of the dropdown menu, which may be useful for building context menus.
30
+
31
+ - [#2493](https://github.com/iTwin/iTwinUI/pull/2493): Added a new `unstable_TabsPresentation` component. This can be used in cases where the [ARIA Tabs pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/) is not desirable. Includes the following subcomponents: `Wrapper`, `TabList`, and `Tab`.
32
+
33
+ - [#2499](https://github.com/iTwin/iTwinUI/pull/2499): Passing the `name` prop to `<Tile.Name>` now internally wraps the name with `<Tile.NameLabel>` to make the behavior consistent with the composition API.
34
+
35
+ <details>
36
+ <summary>Code</summary>
37
+
38
+ The following two examples are now equivalent:
39
+
40
+ ```tsx
41
+ <Tile.Name name='My Tile' />
42
+ ```
43
+
44
+ ```tsx
45
+ <Tile.Name>
46
+ <Tile.NameLabel>My Tile</Tile.NameLabel>
47
+ </Tile.Name>
48
+ ```
49
+
50
+ </details>
51
+
52
+ - **Dependencies**:
53
+ - [#2485](https://github.com/iTwin/iTwinUI/pull/2485): Removed dependency on `jotai`.
54
+ - [#2496](https://github.com/iTwin/iTwinUI/pull/2496): Bumped the minimum required versions of `@floating-ui/react` and `@tanstack/react-virtual`.
55
+
56
+ ### Patch Changes
57
+
58
+ - [#2497](https://github.com/iTwin/iTwinUI/pull/2497): Fixed a `Tile` bug where `Badge` is not visible within `Tile.ThumbnailArea`.
59
+ - [#2503](https://github.com/iTwin/iTwinUI/pull/2503): Updated `--iui-color-background-backdrop` [theme bridge](https://github.com/iTwin/iTwinUI/wiki/iTwinUI-v5-theme-bridge) mapping to match latest designs.
60
+ - **Table**:
61
+ - [#2462](https://github.com/iTwin/iTwinUI/pull/2462): Fixed a "Maximum update depth exceeded" error in `Table`.
62
+ - [#2505](https://github.com/iTwin/iTwinUI/pull/2505): Fixed an issue in `Table` where `onSelect` was being incorrectly called when selecting text inside cells.
63
+ - [#2505](https://github.com/iTwin/iTwinUI/pull/2505): Increased the hit target size of checkboxes and text inside cells to prevent accidental row clicks when clicking the checkbox or selecting the text.
64
+ - [#2487](https://github.com/iTwin/iTwinUI/pull/2487): Add missing labels to row checkboxes and to the select all checkbox.
65
+ - [#2487](https://github.com/iTwin/iTwinUI/pull/2487): Removed invalid and unsupported ARIA attributes from `Table` and its internal elements. Notably, `aria-multiselectable` and `role="rowgroup"` were removed.
66
+
3
67
  ## 3.17.4
4
68
 
5
69
  ### Patch Changes
@@ -53,7 +53,8 @@ const AlertComponent = _react.forwardRef((props, forwardedRef) => {
53
53
  : null,
54
54
  );
55
55
  });
56
- AlertComponent.displayName = 'Alert';
56
+ if ('development' === process.env.NODE_ENV)
57
+ AlertComponent.displayName = 'Alert';
57
58
  const AlertWrapper = _react.forwardRef((props, ref) => {
58
59
  let {
59
60
  children,
@@ -82,7 +83,8 @@ const AlertWrapper = _react.forwardRef((props, ref) => {
82
83
  ),
83
84
  );
84
85
  });
85
- AlertWrapper.displayName = 'Alert.Wrapper';
86
+ if ('development' === process.env.NODE_ENV)
87
+ AlertWrapper.displayName = 'Alert.Wrapper';
86
88
  const AlertIcon = _react.forwardRef((props, ref) => {
87
89
  let { children, ...rest } = props;
88
90
  let { type } = (0, _index.useSafeContext)(AlertContext);
@@ -97,9 +99,11 @@ const AlertIcon = _react.forwardRef((props, ref) => {
97
99
  children ?? _react.createElement(StatusIcon, null),
98
100
  );
99
101
  });
100
- AlertIcon.displayName = 'Alert.Icon';
102
+ if ('development' === process.env.NODE_ENV)
103
+ AlertIcon.displayName = 'Alert.Icon';
101
104
  const AlertMessage = _index.polymorphic.span('iui-alert-message');
102
- AlertMessage.displayName = 'Alert.Message';
105
+ if ('development' === process.env.NODE_ENV)
106
+ AlertMessage.displayName = 'Alert.Message';
103
107
  const AlertAction = _react.forwardRef((props, ref) => {
104
108
  let { children, className, ...rest } = props;
105
109
  let { type } = (0, _index.useSafeContext)(AlertContext);
@@ -120,7 +124,8 @@ const AlertAction = _react.forwardRef((props, ref) => {
120
124
  children,
121
125
  );
122
126
  });
123
- AlertAction.displayName = 'Alert.Action';
127
+ if ('development' === process.env.NODE_ENV)
128
+ AlertAction.displayName = 'Alert.Action';
124
129
  const AlertCloseButton = _react.forwardRef((props, ref) => {
125
130
  let { children, ...rest } = props;
126
131
  return _react.createElement(
@@ -135,7 +140,8 @@ const AlertCloseButton = _react.forwardRef((props, ref) => {
135
140
  children ?? _react.createElement(_index.SvgCloseSmall, null),
136
141
  );
137
142
  });
138
- AlertCloseButton.displayName = 'Alert.CloseButton';
143
+ if ('development' === process.env.NODE_ENV)
144
+ AlertCloseButton.displayName = 'Alert.CloseButton';
139
145
  const Alert = Object.assign(AlertComponent, {
140
146
  Wrapper: AlertWrapper,
141
147
  Icon: AlertIcon,
@@ -80,4 +80,4 @@ const Avatar = _react.forwardRef((props, ref) => {
80
80
  : null,
81
81
  );
82
82
  });
83
- Avatar.displayName = 'Avatar';
83
+ if ('development' === process.env.NODE_ENV) Avatar.displayName = 'Avatar';
@@ -74,4 +74,5 @@ const AvatarGroup = _react.forwardRef((props, ref) => {
74
74
  ),
75
75
  );
76
76
  });
77
- AvatarGroup.displayName = 'AvatarGroup';
77
+ if ('development' === process.env.NODE_ENV)
78
+ AvatarGroup.displayName = 'AvatarGroup';
@@ -29,4 +29,4 @@ const Backdrop = _react.forwardRef((props, ref) => {
29
29
  ...rest,
30
30
  });
31
31
  });
32
- Backdrop.displayName = 'Backdrop';
32
+ if ('development' === process.env.NODE_ENV) Backdrop.displayName = 'Backdrop';
@@ -54,4 +54,4 @@ const Badge = _react.forwardRef((props, forwardedRef) => {
54
54
  children,
55
55
  );
56
56
  });
57
- Badge.displayName = 'Badge';
57
+ if ('development' === process.env.NODE_ENV) Badge.displayName = 'Badge';
@@ -58,7 +58,8 @@ const BreadcrumbsComponent = _react.forwardRef((props, forwardedRef) => {
58
58
  ),
59
59
  );
60
60
  });
61
- BreadcrumbsComponent.displayName = 'Breadcrumbs';
61
+ if ('development' === process.env.NODE_ENV)
62
+ BreadcrumbsComponent.displayName = 'Breadcrumbs';
62
63
  const BreadcrumbContent = (props) => {
63
64
  let { children: items, currentIndex, overflowButton, separator } = props;
64
65
  let { visibleCount } = _index.OverflowContainer.useContext();
@@ -136,9 +137,10 @@ const ListItem = ({ item, isActive }) => {
136
137
  children?.type === 'a' ||
137
138
  children?.type === _Button.Button
138
139
  ) {
139
- logWarning(
140
- 'Directly using Button/a/span as Breadcrumbs children is deprecated, please use `Breadcrumbs.Item` instead.',
141
- );
140
+ if ('development' === process.env.NODE_ENV)
141
+ logWarning(
142
+ 'Directly using Button/a/span as Breadcrumbs children is deprecated, please use `Breadcrumbs.Item` instead.',
143
+ );
142
144
  children = _react.createElement(BreadcrumbsItem, children.props);
143
145
  }
144
146
  return _react.createElement(
@@ -191,7 +193,8 @@ const BreadcrumbsItem = _react.forwardRef((props, forwardedRef) => {
191
193
  ...commonProps,
192
194
  });
193
195
  });
194
- BreadcrumbsItem.displayName = 'Breadcrumbs.Item';
196
+ if ('development' === process.env.NODE_ENV)
197
+ BreadcrumbsItem.displayName = 'Breadcrumbs.Item';
195
198
  const Breadcrumbs = Object.assign(BreadcrumbsComponent, {
196
199
  Item: BreadcrumbsItem,
197
200
  });
@@ -27,7 +27,8 @@ const _index = require('../../utils/index.js');
27
27
  const _react1 = require('@floating-ui/react');
28
28
  const _Tooltip = require('../Tooltip/Tooltip.js');
29
29
  const ButtonGroupContext = _react.createContext(void 0);
30
- ButtonGroupContext.displayName = 'ButtonGroupContext';
30
+ if ('development' === process.env.NODE_ENV)
31
+ ButtonGroupContext.displayName = 'ButtonGroupContext';
31
32
  const ButtonGroup = _react.forwardRef((props, forwardedRef) => {
32
33
  let {
33
34
  children: childrenProp,
@@ -88,7 +89,8 @@ const ButtonGroup = _react.forwardRef((props, forwardedRef) => {
88
89
  ),
89
90
  );
90
91
  });
91
- ButtonGroup.displayName = 'ButtonGroup';
92
+ if ('development' === process.env.NODE_ENV)
93
+ ButtonGroup.displayName = 'ButtonGroup';
92
94
  const BaseGroup = _react.forwardRef((props, forwardedRef) => {
93
95
  let { orientation, className, ...rest } = props;
94
96
  return _react.createElement(_index.Box, {
@@ -99,4 +99,4 @@ const Button = _react.forwardRef((props, ref) => {
99
99
  }),
100
100
  );
101
101
  });
102
- Button.displayName = 'Button';
102
+ if ('development' === process.env.NODE_ENV) Button.displayName = 'Button';
@@ -60,4 +60,5 @@ const DropdownButton = _react.forwardRef((props, forwardedRef) => {
60
60
  ),
61
61
  );
62
62
  });
63
- DropdownButton.displayName = 'DropdownButton';
63
+ if ('development' === process.env.NODE_ENV)
64
+ DropdownButton.displayName = 'DropdownButton';
@@ -37,7 +37,12 @@ const IconButton = _react.forwardRef((props, ref) => {
37
37
  );
38
38
  let hasPopoverOpen = _react.useContext(_Popover.PopoverOpenContext);
39
39
  let logWarning = (0, _index.useWarningLogger)();
40
- if (!label && !props['aria-label'] && !props['aria-labelledby'])
40
+ if (
41
+ 'development' === process.env.NODE_ENV &&
42
+ !label &&
43
+ !props['aria-label'] &&
44
+ !props['aria-labelledby']
45
+ )
41
46
  logWarning('IconButton is missing the `label` prop.');
42
47
  let button = _react.createElement(
43
48
  _index.ButtonBase,
@@ -81,4 +86,5 @@ const IconButton = _react.forwardRef((props, ref) => {
81
86
  )
82
87
  : button;
83
88
  });
84
- IconButton.displayName = 'IconButton';
89
+ if ('development' === process.env.NODE_ENV)
90
+ IconButton.displayName = 'IconButton';
@@ -33,4 +33,5 @@ const IdeasButton = _react.forwardRef((props, ref) => {
33
33
  feedbackLabel,
34
34
  );
35
35
  });
36
- IdeasButton.displayName = 'IdeasButton';
36
+ if ('development' === process.env.NODE_ENV)
37
+ IdeasButton.displayName = 'IdeasButton';
@@ -111,4 +111,5 @@ const SplitButton = _react.forwardRef((props, forwardedRef) => {
111
111
  ),
112
112
  );
113
113
  });
114
- SplitButton.displayName = 'SplitButton';
114
+ if ('development' === process.env.NODE_ENV)
115
+ SplitButton.displayName = 'SplitButton';
@@ -76,7 +76,8 @@ const CarouselComponent = _react.forwardRef((props, ref) => {
76
76
  ),
77
77
  );
78
78
  });
79
- CarouselComponent.displayName = 'Carousel';
79
+ if ('development' === process.env.NODE_ENV)
80
+ CarouselComponent.displayName = 'Carousel';
80
81
  const Carousel = Object.assign(CarouselComponent, {
81
82
  Slider: _CarouselSlider.CarouselSlider,
82
83
  Slide: _CarouselSlide.CarouselSlide,
@@ -11,4 +11,5 @@ Object.defineProperty(exports, 'CarouselContext', {
11
11
  const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
12
12
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react'));
13
13
  const CarouselContext = _react.createContext(void 0);
14
- CarouselContext.displayName = 'CarouselContext';
14
+ if ('development' === process.env.NODE_ENV)
15
+ CarouselContext.displayName = 'CarouselContext';
@@ -34,4 +34,5 @@ const CarouselDot = _react.forwardRef((props, ref) => {
34
34
  ...rest,
35
35
  });
36
36
  });
37
- CarouselDot.displayName = 'Carousel.Dot';
37
+ if ('development' === process.env.NODE_ENV)
38
+ CarouselDot.displayName = 'Carousel.Dot';
@@ -163,4 +163,5 @@ const CarouselDotsList = _react.forwardRef((props, ref) => {
163
163
  ),
164
164
  );
165
165
  });
166
- CarouselDotsList.displayName = 'Carousel.DotsList';
166
+ if ('development' === process.env.NODE_ENV)
167
+ CarouselDotsList.displayName = 'Carousel.DotsList';
@@ -49,7 +49,8 @@ const CarouselNavigationComponent = _react.forwardRef((props, ref) => {
49
49
  ),
50
50
  );
51
51
  });
52
- CarouselNavigationComponent.displayName = 'Carousel.Navigation';
52
+ if ('development' === process.env.NODE_ENV)
53
+ CarouselNavigationComponent.displayName = 'Carousel.Navigation';
53
54
  const PreviousButton = _react.forwardRef((props, ref) => {
54
55
  let context = _react.useContext(_CarouselContext.CarouselContext);
55
56
  if (!context)
@@ -76,7 +77,8 @@ const PreviousButton = _react.forwardRef((props, ref) => {
76
77
  _react.createElement(_index.SvgChevronLeft, null),
77
78
  );
78
79
  });
79
- PreviousButton.displayName = 'Carousel.Navigation.PreviousButton';
80
+ if ('development' === process.env.NODE_ENV)
81
+ PreviousButton.displayName = 'Carousel.Navigation.PreviousButton';
80
82
  const NextButton = _react.forwardRef((props, ref) => {
81
83
  let context = _react.useContext(_CarouselContext.CarouselContext);
82
84
  if (!context)
@@ -103,7 +105,8 @@ const NextButton = _react.forwardRef((props, ref) => {
103
105
  _react.createElement(_index.SvgChevronRight, null),
104
106
  );
105
107
  });
106
- NextButton.displayName = 'Carousel.Navigation.NextButton';
108
+ if ('development' === process.env.NODE_ENV)
109
+ NextButton.displayName = 'Carousel.Navigation.NextButton';
107
110
  const CarouselNavigation = Object.assign(CarouselNavigationComponent, {
108
111
  PreviousButton,
109
112
  NextButton,
@@ -54,4 +54,5 @@ const CarouselSlide = _react.forwardRef((props, ref) => {
54
54
  children,
55
55
  );
56
56
  });
57
- CarouselSlide.displayName = 'Carousel.Slide';
57
+ if ('development' === process.env.NODE_ENV)
58
+ CarouselSlide.displayName = 'Carousel.Slide';
@@ -71,4 +71,5 @@ const CarouselSlider = _react.forwardRef((props, ref) => {
71
71
  items,
72
72
  );
73
73
  });
74
- CarouselSlider.displayName = 'Carousel.Slider';
74
+ if ('development' === process.env.NODE_ENV)
75
+ CarouselSlider.displayName = 'Carousel.Slider';
@@ -98,4 +98,4 @@ const Checkbox = _react.forwardRef((props, ref) => {
98
98
  )
99
99
  : checkbox;
100
100
  });
101
- Checkbox.displayName = 'Checkbox';
101
+ if ('development' === process.env.NODE_ENV) Checkbox.displayName = 'Checkbox';
@@ -343,4 +343,5 @@ const ColorBuilder = _react.forwardRef((props, ref) => {
343
343
  }),
344
344
  );
345
345
  });
346
- ColorBuilder.displayName = 'ColorBuilder';
346
+ if ('development' === process.env.NODE_ENV)
347
+ ColorBuilder.displayName = 'ColorBuilder';
@@ -82,7 +82,7 @@ const ColorInputPanel = _react.forwardRef((props, ref) => {
82
82
  );
83
83
  let handleColorInputChange = () => {
84
84
  let color;
85
- if ('hex' === currentFormat)
85
+ if ('hex' === currentFormat) {
86
86
  try {
87
87
  let value = input[0].replace(/ /g, '').toLowerCase();
88
88
  color = _index.ColorValue.create(value);
@@ -92,6 +92,7 @@ const ColorInputPanel = _react.forwardRef((props, ref) => {
92
92
  setValidHexInput(false);
93
93
  return;
94
94
  }
95
+ }
95
96
  if ('hsl' === currentFormat) {
96
97
  let [h, s, l, a] = input.map(Number);
97
98
  if (
@@ -443,4 +444,5 @@ const ColorInputPanel = _react.forwardRef((props, ref) => {
443
444
  ),
444
445
  );
445
446
  });
446
- ColorInputPanel.displayName = 'ColorInputPanel';
447
+ if ('development' === process.env.NODE_ENV)
448
+ ColorInputPanel.displayName = 'ColorInputPanel';
@@ -80,4 +80,5 @@ const ColorPalette = _react.forwardRef((props, ref) => {
80
80
  ),
81
81
  );
82
82
  });
83
- ColorPalette.displayName = 'ColorPalette';
83
+ if ('development' === process.env.NODE_ENV)
84
+ ColorPalette.displayName = 'ColorPalette';
@@ -97,4 +97,5 @@ const ColorPicker = _react.forwardRef((props, forwardedRef) => {
97
97
  ),
98
98
  );
99
99
  });
100
- ColorPicker.displayName = 'ColorPicker';
100
+ if ('development' === process.env.NODE_ENV)
101
+ ColorPicker.displayName = 'ColorPicker';
@@ -54,4 +54,5 @@ const ColorSwatch = _react.forwardRef((props, ref) => {
54
54
  ),
55
55
  );
56
56
  });
57
- ColorSwatch.displayName = 'ColorSwatch';
57
+ if ('development' === process.env.NODE_ENV)
58
+ ColorSwatch.displayName = 'ColorSwatch';
@@ -71,7 +71,9 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
71
71
  let getSelectedIndexes = _react.useCallback(
72
72
  (value) => {
73
73
  if (void 0 === value) return;
74
- if (isMultipleEnabled(value, multiple)) {
74
+ if (!isMultipleEnabled(value, multiple))
75
+ return options.findIndex((option) => option.value === value);
76
+ {
75
77
  let indexArray = [];
76
78
  value?.forEach((value) => {
77
79
  let indexToAdd = options.findIndex(
@@ -81,7 +83,6 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
81
83
  });
82
84
  return indexArray;
83
85
  }
84
- return options.findIndex((option) => option.value === value);
85
86
  },
86
87
  [multiple, options],
87
88
  );
@@ -199,7 +200,7 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
199
200
  },
200
201
  [multiple, onChangeProp, optionsRef],
201
202
  );
202
- let onClickHandler = _react.useCallback(
203
+ let handleOptionSelection = _react.useCallback(
203
204
  (__originalIndex) => {
204
205
  inputRef.current?.focus({
205
206
  preventScroll: true,
@@ -260,7 +261,7 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
260
261
  return customItem
261
262
  ? _react.cloneElement(customItem, {
262
263
  onClick: (e) => {
263
- onClickHandler(__originalIndex);
264
+ handleOptionSelection(__originalIndex);
264
265
  customItem.props.onClick?.(e);
265
266
  },
266
267
  focused: focusedIndex === __originalIndex,
@@ -282,7 +283,7 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
282
283
  ...restOptions,
283
284
  isSelected: isMenuItemSelected(__originalIndex),
284
285
  onClick: () => {
285
- onClickHandler(__originalIndex);
286
+ handleOptionSelection(__originalIndex);
286
287
  },
287
288
  index: __originalIndex,
288
289
  'data-iui-filtered-index': filteredIndex,
@@ -296,7 +297,7 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
296
297
  id,
297
298
  isMenuItemSelected,
298
299
  itemRenderer,
299
- onClickHandler,
300
+ handleOptionSelection,
300
301
  optionsExtraInfo,
301
302
  ],
302
303
  );
@@ -340,29 +341,47 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
340
341
  return _react.createElement(
341
342
  _helpers.ComboBoxRefsContext.Provider,
342
343
  {
343
- value: {
344
- inputRef,
345
- menuRef,
346
- optionsExtraInfo,
347
- },
344
+ value: _react.useMemo(
345
+ () => ({
346
+ inputRef,
347
+ menuRef,
348
+ optionsExtraInfo,
349
+ }),
350
+ [optionsExtraInfo],
351
+ ),
348
352
  },
349
353
  _react.createElement(
350
354
  _helpers.ComboBoxStateContext.Provider,
351
355
  {
352
- value: {
353
- id,
354
- isOpen,
355
- focusedIndex,
356
- setFocusedIndex,
357
- onClickHandler,
358
- enableVirtualization,
359
- filteredOptions,
360
- getMenuItem,
361
- multiple,
362
- popover,
363
- show,
364
- hide,
365
- },
356
+ value: _react.useMemo(
357
+ () => ({
358
+ id,
359
+ isOpen,
360
+ focusedIndex,
361
+ setFocusedIndex,
362
+ onClickHandler: handleOptionSelection,
363
+ enableVirtualization,
364
+ filteredOptions,
365
+ getMenuItem,
366
+ multiple,
367
+ popover,
368
+ show,
369
+ hide,
370
+ }),
371
+ [
372
+ enableVirtualization,
373
+ filteredOptions,
374
+ focusedIndex,
375
+ getMenuItem,
376
+ handleOptionSelection,
377
+ hide,
378
+ id,
379
+ isOpen,
380
+ multiple,
381
+ popover,
382
+ show,
383
+ ],
384
+ ),
366
385
  },
367
386
  _react.createElement(
368
387
  _ComboBoxInputContainer.ComboBoxInputContainer,
@@ -376,13 +395,25 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
376
395
  disabled: inputProps?.disabled,
377
396
  ...inputProps,
378
397
  onChange: handleOnInput,
398
+ 'aria-describedby': [
399
+ multiple ? `${id}-selected-live` : void 0,
400
+ inputProps?.['aria-describedby'],
401
+ ]
402
+ .filter(Boolean)
403
+ .join(' '),
379
404
  selectTags: isMultipleEnabled(selectedIndexes, multiple)
380
405
  ? selectedIndexes
381
406
  ?.map((index) => {
382
- let item = options[index];
407
+ let option = options[index];
408
+ let optionId = getOptionId(option, id);
409
+ let { __originalIndex } = optionsExtraInfo[optionId];
383
410
  return _react.createElement(_SelectTag.SelectTag, {
384
- key: item.label,
385
- label: item.label,
411
+ key: option.label,
412
+ label: option.label,
413
+ onRemove: () => {
414
+ handleOptionSelection(__originalIndex);
415
+ hide();
416
+ },
386
417
  });
387
418
  })
388
419
  .filter(Boolean)
@@ -396,6 +427,7 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
396
427
  multiple
397
428
  ? _react.createElement(_index.AutoclearingHiddenLiveRegion, {
398
429
  text: liveRegionSelection,
430
+ id: `${id}-selected-live`,
399
431
  })
400
432
  : null,
401
433
  ),
@@ -412,4 +444,4 @@ const ComboBox = _react.forwardRef((props, forwardedRef) => {
412
444
  ),
413
445
  );
414
446
  });
415
- ComboBox.displayName = 'ComboBox';
447
+ if ('development' === process.env.NODE_ENV) ComboBox.displayName = 'ComboBox';
@@ -39,4 +39,5 @@ const ComboBoxEndIcon = _react.forwardRef((props, forwardedRef) => {
39
39
  }),
40
40
  );
41
41
  });
42
- ComboBoxEndIcon.displayName = 'ComboBoxEndIcon';
42
+ if ('development' === process.env.NODE_ENV)
43
+ ComboBoxEndIcon.displayName = 'ComboBoxEndIcon';
@@ -165,7 +165,6 @@ const ComboBoxInput = _react.forwardRef((props, forwardedRef) => {
165
165
  }),
166
166
  ...style,
167
167
  },
168
- 'aria-describedby': multiple ? `${id}-selected-live` : void 0,
169
168
  size: size,
170
169
  ...popover.getReferenceProps({
171
170
  ...rest,
@@ -186,10 +185,10 @@ const ComboBoxInput = _react.forwardRef((props, forwardedRef) => {
186
185
  {
187
186
  ref: tagContainerWidthRef,
188
187
  selectedItems: selectTags,
189
- id: `${id}-selected-live`,
190
188
  },
191
189
  )
192
190
  : null,
193
191
  );
194
192
  });
195
- ComboBoxInput.displayName = 'ComboBoxInput';
193
+ if ('development' === process.env.NODE_ENV)
194
+ ComboBoxInput.displayName = 'ComboBoxInput';
@@ -41,4 +41,5 @@ const ComboBoxInputContainer = _react.forwardRef((props, forwardedRef) => {
41
41
  _react.createElement(_index.InputWithIcon, null, children),
42
42
  );
43
43
  });
44
- ComboBoxInputContainer.displayName = 'ComboBoxInputContainer';
44
+ if ('development' === process.env.NODE_ENV)
45
+ ComboBoxInputContainer.displayName = 'ComboBoxInputContainer';
@@ -142,4 +142,5 @@ const ComboBoxMenu = _react.forwardRef((props, forwardedRef) => {
142
142
  )
143
143
  );
144
144
  });
145
- ComboBoxMenu.displayName = 'ComboBoxMenu';
145
+ if ('development' === process.env.NODE_ENV)
146
+ ComboBoxMenu.displayName = 'ComboBoxMenu';
@@ -22,7 +22,7 @@ const ComboBoxMenuItem = _react.memo(
22
22
  value,
23
23
  onClick,
24
24
  sublabel,
25
- size = sublabel ? 'large' : 'default',
25
+ size = !!sublabel ? 'large' : 'default',
26
26
  startIcon,
27
27
  endIcon,
28
28
  role = 'option',
@@ -86,4 +86,5 @@ const ComboBoxMenuItem = _react.memo(
86
86
  );
87
87
  }),
88
88
  );
89
- ComboBoxMenuItem.displayName = 'ComboBoxMenuItem';
89
+ if ('development' === process.env.NODE_ENV)
90
+ ComboBoxMenuItem.displayName = 'ComboBoxMenuItem';
@@ -19,4 +19,5 @@ const ComboBoxMultipleContainer = _react.forwardRef((props, ref) => {
19
19
  ...rest,
20
20
  });
21
21
  });
22
- ComboBoxMultipleContainer.displayName = 'ComboBoxMultipleContainer';
22
+ if ('development' === process.env.NODE_ENV)
23
+ ComboBoxMultipleContainer.displayName = 'ComboBoxMultipleContainer';