@itwin/itwinui-react 3.0.0-dev.9 → 3.0.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 (665) hide show
  1. package/CHANGELOG.md +77 -772
  2. package/README.md +3 -5
  3. package/cjs/core/Alert/Alert.d.ts +1 -1
  4. package/cjs/core/Alert/Alert.js +4 -3
  5. package/cjs/core/Avatar/Avatar.js +2 -1
  6. package/cjs/core/Breadcrumbs/Breadcrumbs.js +23 -6
  7. package/cjs/core/ButtonGroup/ButtonGroup.js +6 -8
  8. package/cjs/core/Buttons/{Button/Button.d.ts → Button.d.ts} +2 -2
  9. package/cjs/core/Buttons/{Button/Button.js → Button.js} +1 -1
  10. package/{esm/core/Buttons/DropdownButton → cjs/core/Buttons}/DropdownButton.d.ts +3 -3
  11. package/cjs/core/Buttons/{DropdownButton/DropdownButton.js → DropdownButton.js} +7 -7
  12. package/{esm/core/Buttons/IconButton → cjs/core/Buttons}/IconButton.d.ts +2 -2
  13. package/cjs/core/Buttons/{IconButton/IconButton.js → IconButton.js} +6 -3
  14. package/{esm/core/Buttons/IdeasButton → cjs/core/Buttons}/IdeasButton.d.ts +1 -1
  15. package/cjs/core/Buttons/{IdeasButton/IdeasButton.js → IdeasButton.js} +3 -3
  16. package/cjs/core/Buttons/{SplitButton/SplitButton.d.ts → SplitButton.d.ts} +3 -3
  17. package/cjs/core/Buttons/{SplitButton/SplitButton.js → SplitButton.js} +14 -13
  18. package/cjs/core/Carousel/Carousel.d.ts +14 -7
  19. package/cjs/core/Carousel/Carousel.js +9 -39
  20. package/cjs/core/Carousel/CarouselContext.d.ts +0 -4
  21. package/cjs/core/Carousel/CarouselDot.js +1 -1
  22. package/cjs/core/Carousel/CarouselDotsList.js +26 -2
  23. package/cjs/core/Carousel/CarouselNavigation.d.ts +3 -3
  24. package/cjs/core/Carousel/CarouselNavigation.js +13 -26
  25. package/cjs/core/Carousel/CarouselSlide.d.ts +1 -1
  26. package/cjs/core/Carousel/CarouselSlide.js +12 -2
  27. package/cjs/core/Carousel/CarouselSlider.d.ts +1 -1
  28. package/cjs/core/Carousel/CarouselSlider.js +2 -2
  29. package/cjs/core/Checkbox/Checkbox.js +7 -7
  30. package/cjs/core/ColorPicker/ColorBuilder.js +5 -3
  31. package/cjs/core/ColorPicker/ColorInputPanel.js +50 -30
  32. package/cjs/core/ColorPicker/ColorPalette.js +2 -80
  33. package/cjs/core/ColorPicker/ColorPicker.d.ts +9 -0
  34. package/cjs/core/ColorPicker/ColorPicker.js +6 -1
  35. package/cjs/core/ColorPicker/ColorSwatch.d.ts +1 -1
  36. package/cjs/core/ColorPicker/ColorSwatch.js +25 -15
  37. package/cjs/core/ComboBox/ComboBox.d.ts +6 -1
  38. package/cjs/core/ComboBox/ComboBox.js +19 -18
  39. package/cjs/core/ComboBox/ComboBoxEndIcon.js +2 -1
  40. package/cjs/core/ComboBox/ComboBoxInput.d.ts +1 -1
  41. package/cjs/core/ComboBox/ComboBoxInput.js +10 -10
  42. package/cjs/core/ComboBox/ComboBoxInputContainer.js +6 -6
  43. package/cjs/core/ComboBox/ComboBoxMenu.d.ts +1 -1
  44. package/cjs/core/ComboBox/ComboBoxMenu.js +12 -14
  45. package/cjs/core/ComboBox/helpers.d.ts +1 -1
  46. package/cjs/core/DatePicker/DatePicker.d.ts +9 -0
  47. package/cjs/core/DatePicker/DatePicker.js +13 -8
  48. package/cjs/core/Dialog/DialogBackdrop.js +4 -4
  49. package/cjs/core/Dialog/DialogTitleBar.js +2 -2
  50. package/cjs/core/{utils/components → Divider}/Divider.d.ts +1 -1
  51. package/cjs/core/{utils/components → Divider}/Divider.js +1 -1
  52. package/cjs/core/DropdownMenu/DropdownMenu.d.ts +2 -2
  53. package/cjs/core/DropdownMenu/DropdownMenu.js +4 -3
  54. package/cjs/core/ExpandableBlock/ExpandableBlock.d.ts +1 -1
  55. package/cjs/core/ExpandableBlock/ExpandableBlock.js +3 -2
  56. package/cjs/core/FileUpload/FileUploadCard.js +3 -2
  57. package/cjs/core/FileUpload/FileUploadTemplate.js +1 -1
  58. package/cjs/core/{utils/components → Flex}/Flex.d.ts +2 -2
  59. package/cjs/core/{utils/components → Flex}/Flex.js +1 -1
  60. package/cjs/core/Header/Header.js +11 -11
  61. package/cjs/core/Header/HeaderBasicButton.d.ts +1 -1
  62. package/cjs/core/Header/HeaderButton.d.ts +2 -2
  63. package/cjs/core/Header/HeaderDropdownButton.d.ts +1 -1
  64. package/cjs/core/Header/HeaderDropdownButton.js +6 -6
  65. package/cjs/core/Header/HeaderSplitButton.d.ts +1 -1
  66. package/cjs/core/Header/HeaderSplitButton.js +7 -7
  67. package/{esm/core/utils/components → cjs/core/Icon}/Icon.d.ts +2 -2
  68. package/cjs/core/{utils/components → Icon}/Icon.js +1 -1
  69. package/cjs/core/InformationPanel/InformationPanelHeader.js +7 -7
  70. package/cjs/core/Input/Input.d.ts +0 -1
  71. package/cjs/core/Input/Input.js +0 -1
  72. package/cjs/core/InputGroup/InputGroup.d.ts +1 -1
  73. package/cjs/core/InputGroup/InputGroup.js +6 -6
  74. package/cjs/core/InputWithDecorations/InputWithDecorations.d.ts +1 -1
  75. package/cjs/core/InputWithDecorations/InputWithDecorations.js +2 -2
  76. package/cjs/core/LabeledInput/LabeledInput.d.ts +4 -4
  77. package/cjs/core/LabeledInput/LabeledInput.js +11 -13
  78. package/cjs/core/LabeledSelect/LabeledSelect.d.ts +2 -2
  79. package/cjs/core/LabeledSelect/LabeledSelect.js +10 -9
  80. package/cjs/core/LabeledTextarea/LabeledTextarea.d.ts +1 -1
  81. package/cjs/core/LabeledTextarea/LabeledTextarea.js +2 -2
  82. package/{esm/core/utils/components → cjs/core/LinkAction}/LinkAction.d.ts +2 -2
  83. package/cjs/core/{utils/components → LinkAction}/LinkAction.js +1 -1
  84. package/cjs/core/Menu/MenuItem.js +2 -1
  85. package/cjs/core/Menu/MenuItemSkeleton.js +2 -1
  86. package/cjs/core/Modal/Modal.js +5 -5
  87. package/cjs/core/NonIdealState/ErrorPage.js +17 -15
  88. package/cjs/core/{utils/components → Popover}/Popover.d.ts +29 -13
  89. package/cjs/core/{utils/components → Popover}/Popover.js +43 -25
  90. package/cjs/core/RadioTiles/RadioTileGroup.d.ts +1 -1
  91. package/cjs/core/RadioTiles/RadioTileGroup.js +4 -4
  92. package/cjs/core/SearchBox/SearchBox.d.ts +3 -2
  93. package/cjs/core/SearchBox/SearchBox.js +4 -3
  94. package/cjs/core/Select/Select.d.ts +2 -2
  95. package/cjs/core/Select/Select.js +32 -29
  96. package/cjs/core/Select/SelectTagContainer.js +2 -2
  97. package/cjs/core/SideNavigation/SideNavigation.js +5 -5
  98. package/cjs/core/SideNavigation/SidenavButton.d.ts +1 -1
  99. package/cjs/core/SideNavigation/SidenavButton.js +2 -2
  100. package/cjs/core/Slider/Slider.d.ts +3 -7
  101. package/cjs/core/Slider/Slider.js +8 -22
  102. package/cjs/core/Slider/Thumb.d.ts +2 -3
  103. package/cjs/core/Slider/Thumb.js +5 -9
  104. package/cjs/core/StatusMessage/StatusMessage.d.ts +1 -1
  105. package/cjs/core/StatusMessage/StatusMessage.js +2 -1
  106. package/cjs/core/Stepper/StepperStep.js +7 -7
  107. package/cjs/core/Stepper/WorkflowDiagramStep.js +5 -5
  108. package/cjs/core/Surface/Surface.d.ts +8 -0
  109. package/cjs/core/Surface/Surface.js +19 -1
  110. package/cjs/core/Table/SubRowExpander.d.ts +1 -1
  111. package/cjs/core/Table/SubRowExpander.js +2 -2
  112. package/cjs/core/Table/Table.d.ts +1 -1
  113. package/cjs/core/Table/Table.js +53 -60
  114. package/cjs/core/Table/TableCell.d.ts +1 -1
  115. package/cjs/core/Table/TablePaginator.js +27 -25
  116. package/cjs/core/Table/TableRowMemoized.d.ts +1 -1
  117. package/cjs/core/Table/actionHandlers/expandHandler.d.ts +1 -1
  118. package/cjs/core/Table/actionHandlers/filterHandler.d.ts +1 -1
  119. package/cjs/core/Table/actionHandlers/resizeHandler.d.ts +17 -17
  120. package/cjs/core/Table/actionHandlers/selectHandler.d.ts +8 -8
  121. package/cjs/core/Table/cells/DefaultCell.d.ts +1 -1
  122. package/cjs/core/Table/cells/EditableCell.d.ts +1 -1
  123. package/cjs/core/Table/columns/actionColumn.d.ts +2 -2
  124. package/cjs/core/Table/columns/actionColumn.js +10 -15
  125. package/cjs/core/Table/columns/expanderColumn.d.ts +1 -1
  126. package/cjs/core/Table/columns/expanderColumn.js +5 -4
  127. package/cjs/core/Table/columns/selectionColumn.d.ts +1 -1
  128. package/cjs/core/Table/columns/selectionColumn.js +5 -5
  129. package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.d.ts +1 -1
  130. package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.js +25 -19
  131. package/cjs/core/Table/filters/FilterButtonBar.js +3 -3
  132. package/cjs/core/Table/filters/FilterToggle.d.ts +1 -1
  133. package/cjs/core/Table/filters/FilterToggle.js +5 -3
  134. package/cjs/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +3 -3
  135. package/cjs/core/Table/filters/TextFilter/TextFilter.js +2 -2
  136. package/cjs/core/Table/filters/customFilterFunctions.d.ts +1 -1
  137. package/cjs/core/Table/filters/defaultFilterFunctions.d.ts +1 -1
  138. package/cjs/core/Table/filters/types.d.ts +2 -19
  139. package/cjs/core/Table/hooks/useColumnDragAndDrop.d.ts +1 -1
  140. package/cjs/core/Table/hooks/useExpanderCell.d.ts +1 -1
  141. package/cjs/core/Table/hooks/useResizeColumns.d.ts +1 -1
  142. package/cjs/core/Table/hooks/useScrollToRow.d.ts +1 -1
  143. package/cjs/core/Table/hooks/useScrollToRow.js +1 -1
  144. package/cjs/core/Table/hooks/useSelectionCell.d.ts +1 -1
  145. package/cjs/core/Table/hooks/useStickyColumns.d.ts +1 -1
  146. package/cjs/core/Table/hooks/useSubRowFiltering.d.ts +1 -1
  147. package/cjs/core/Table/hooks/useSubRowSelection.d.ts +1 -1
  148. package/cjs/core/Table/index.d.ts +1 -1
  149. package/cjs/core/Table/utils.d.ts +1 -1
  150. package/cjs/core/Tabs/Tabs.d.ts +222 -52
  151. package/cjs/core/Tabs/Tabs.js +429 -375
  152. package/cjs/core/Tag/Tag.js +2 -2
  153. package/cjs/core/Textarea/Textarea.js +2 -2
  154. package/cjs/core/ThemeProvider/ThemeProvider.d.ts +3 -2
  155. package/cjs/core/ThemeProvider/ThemeProvider.js +17 -8
  156. package/cjs/core/Tile/Tile.d.ts +2 -2
  157. package/cjs/core/Tile/Tile.js +20 -18
  158. package/cjs/core/Toast/Toast.js +2 -2
  159. package/cjs/core/TransferList/TransferList.d.ts +1 -1
  160. package/cjs/core/TransferList/TransferList.js +6 -5
  161. package/cjs/core/Tree/TreeNodeExpander.d.ts +1 -1
  162. package/cjs/core/Tree/TreeNodeExpander.js +2 -2
  163. package/{esm/core/Typography/Anchor → cjs/core/Typography}/Anchor.d.ts +1 -1
  164. package/cjs/core/Typography/{Anchor/Anchor.js → Anchor.js} +1 -1
  165. package/{esm/core/Typography/Blockquote → cjs/core/Typography}/Blockquote.d.ts +1 -1
  166. package/cjs/core/Typography/{Blockquote/Blockquote.js → Blockquote.js} +1 -1
  167. package/cjs/core/Typography/{Code/Code.d.ts → Code.d.ts} +1 -1
  168. package/cjs/core/Typography/{Code/Code.js → Code.js} +1 -1
  169. package/{esm/core/Typography/Kbd → cjs/core/Typography}/Kbd.d.ts +1 -1
  170. package/cjs/core/Typography/{Kbd/Kbd.js → Kbd.js} +1 -1
  171. package/{esm/core/Typography/Text → cjs/core/Typography}/Text.d.ts +1 -1
  172. package/cjs/core/Typography/{Text/Text.js → Text.js} +1 -1
  173. package/{esm/core/utils/components → cjs/core/VisuallyHidden}/VisuallyHidden.d.ts +1 -1
  174. package/cjs/core/{utils/components → VisuallyHidden}/VisuallyHidden.js +1 -1
  175. package/cjs/core/utils/components/AutoclearingHiddenLiveRegion.js +1 -1
  176. package/cjs/core/utils/components/InputContainer.js +4 -4
  177. package/cjs/core/utils/components/WithCSSTransition.js +7 -1
  178. package/cjs/core/utils/components/index.d.ts +0 -6
  179. package/cjs/core/utils/components/index.js +0 -6
  180. package/cjs/core/utils/functions/dev.d.ts +11 -0
  181. package/cjs/core/utils/functions/dev.js +34 -0
  182. package/cjs/core/utils/functions/index.d.ts +1 -0
  183. package/cjs/core/utils/functions/index.js +1 -0
  184. package/cjs/core/utils/hooks/useGlobals.d.ts +1 -1
  185. package/cjs/core/utils/hooks/useGlobals.js +3 -7
  186. package/cjs/core/utils/hooks/useOverflow.js +3 -1
  187. package/cjs/index.d.ts +112 -2
  188. package/cjs/index.js +950 -5
  189. package/cjs/react-table/react-table.d.ts +745 -0
  190. package/cjs/{core/Badge/index.js → react-table/react-table.js} +5 -10
  191. package/cjs/styles.js +15 -15
  192. package/esm/core/Alert/Alert.d.ts +1 -1
  193. package/esm/core/Alert/Alert.js +2 -2
  194. package/esm/core/Avatar/Avatar.js +2 -6
  195. package/esm/core/Breadcrumbs/Breadcrumbs.js +24 -6
  196. package/esm/core/ButtonGroup/ButtonGroup.js +6 -8
  197. package/esm/core/Buttons/{Button/Button.d.ts → Button.d.ts} +2 -2
  198. package/esm/core/Buttons/{Button/Button.js → Button.js} +1 -1
  199. package/{cjs/core/Buttons/DropdownButton → esm/core/Buttons}/DropdownButton.d.ts +3 -3
  200. package/esm/core/Buttons/{DropdownButton/DropdownButton.js → DropdownButton.js} +3 -3
  201. package/{cjs/core/Buttons/IconButton → esm/core/Buttons}/IconButton.d.ts +2 -2
  202. package/esm/core/Buttons/{IconButton/IconButton.js → IconButton.js} +3 -2
  203. package/{cjs/core/Buttons/IdeasButton → esm/core/Buttons}/IdeasButton.d.ts +1 -1
  204. package/esm/core/Buttons/{IdeasButton/IdeasButton.js → IdeasButton.js} +2 -2
  205. package/esm/core/Buttons/{SplitButton/SplitButton.d.ts → SplitButton.d.ts} +3 -3
  206. package/esm/core/Buttons/{SplitButton/SplitButton.js → SplitButton.js} +5 -5
  207. package/esm/core/Carousel/Carousel.d.ts +14 -7
  208. package/esm/core/Carousel/Carousel.js +9 -39
  209. package/esm/core/Carousel/CarouselContext.d.ts +0 -4
  210. package/esm/core/Carousel/CarouselDot.js +1 -1
  211. package/esm/core/Carousel/CarouselDotsList.js +26 -2
  212. package/esm/core/Carousel/CarouselNavigation.d.ts +3 -3
  213. package/esm/core/Carousel/CarouselNavigation.js +6 -23
  214. package/esm/core/Carousel/CarouselSlide.d.ts +1 -1
  215. package/esm/core/Carousel/CarouselSlide.js +15 -3
  216. package/esm/core/Carousel/CarouselSlider.d.ts +1 -1
  217. package/esm/core/Carousel/CarouselSlider.js +2 -2
  218. package/esm/core/Checkbox/Checkbox.js +1 -1
  219. package/esm/core/ColorPicker/ColorBuilder.js +3 -1
  220. package/esm/core/ColorPicker/ColorInputPanel.js +27 -7
  221. package/esm/core/ColorPicker/ColorPalette.js +3 -83
  222. package/esm/core/ColorPicker/ColorPicker.d.ts +9 -0
  223. package/esm/core/ColorPicker/ColorPicker.js +6 -1
  224. package/esm/core/ColorPicker/ColorSwatch.d.ts +1 -1
  225. package/esm/core/ColorPicker/ColorSwatch.js +18 -12
  226. package/esm/core/ComboBox/ComboBox.d.ts +6 -1
  227. package/esm/core/ComboBox/ComboBox.js +6 -4
  228. package/esm/core/ComboBox/ComboBoxEndIcon.js +2 -1
  229. package/esm/core/ComboBox/ComboBoxInput.d.ts +1 -1
  230. package/esm/core/ComboBox/ComboBoxInput.js +1 -1
  231. package/esm/core/ComboBox/ComboBoxInputContainer.js +1 -1
  232. package/esm/core/ComboBox/ComboBoxMenu.d.ts +1 -1
  233. package/esm/core/ComboBox/ComboBoxMenu.js +2 -4
  234. package/esm/core/ComboBox/helpers.d.ts +1 -1
  235. package/esm/core/DatePicker/DatePicker.d.ts +9 -0
  236. package/esm/core/DatePicker/DatePicker.js +12 -3
  237. package/esm/core/Dialog/DialogBackdrop.js +1 -1
  238. package/esm/core/Dialog/DialogTitleBar.js +1 -1
  239. package/esm/core/{utils/components → Divider}/Divider.d.ts +1 -1
  240. package/esm/core/{utils/components → Divider}/Divider.js +1 -1
  241. package/esm/core/DropdownMenu/DropdownMenu.d.ts +2 -2
  242. package/esm/core/DropdownMenu/DropdownMenu.js +2 -3
  243. package/esm/core/ExpandableBlock/ExpandableBlock.d.ts +1 -1
  244. package/esm/core/ExpandableBlock/ExpandableBlock.js +1 -1
  245. package/esm/core/FileUpload/FileUploadCard.js +2 -2
  246. package/esm/core/FileUpload/FileUploadTemplate.js +1 -1
  247. package/esm/core/{utils/components → Flex}/Flex.d.ts +2 -2
  248. package/esm/core/{utils/components → Flex}/Flex.js +1 -1
  249. package/esm/core/Header/Header.js +2 -2
  250. package/esm/core/Header/HeaderBasicButton.d.ts +1 -1
  251. package/esm/core/Header/HeaderButton.d.ts +2 -2
  252. package/esm/core/Header/HeaderDropdownButton.d.ts +1 -1
  253. package/esm/core/Header/HeaderDropdownButton.js +1 -1
  254. package/esm/core/Header/HeaderSplitButton.d.ts +1 -1
  255. package/esm/core/Header/HeaderSplitButton.js +1 -1
  256. package/{cjs/core/utils/components → esm/core/Icon}/Icon.d.ts +2 -2
  257. package/esm/core/{utils/components → Icon}/Icon.js +1 -1
  258. package/esm/core/InformationPanel/InformationPanelHeader.js +1 -1
  259. package/esm/core/Input/Input.d.ts +0 -1
  260. package/esm/core/Input/Input.js +0 -1
  261. package/esm/core/InputGroup/InputGroup.d.ts +1 -1
  262. package/esm/core/InputGroup/InputGroup.js +3 -3
  263. package/esm/core/InputWithDecorations/InputWithDecorations.d.ts +1 -1
  264. package/esm/core/InputWithDecorations/InputWithDecorations.js +1 -1
  265. package/esm/core/LabeledInput/LabeledInput.d.ts +4 -4
  266. package/esm/core/LabeledInput/LabeledInput.js +5 -4
  267. package/esm/core/LabeledSelect/LabeledSelect.d.ts +2 -2
  268. package/esm/core/LabeledSelect/LabeledSelect.js +6 -4
  269. package/esm/core/LabeledTextarea/LabeledTextarea.d.ts +1 -1
  270. package/esm/core/LabeledTextarea/LabeledTextarea.js +2 -2
  271. package/{cjs/core/utils/components → esm/core/LinkAction}/LinkAction.d.ts +2 -2
  272. package/esm/core/{utils/components → LinkAction}/LinkAction.js +1 -1
  273. package/esm/core/Menu/MenuItem.js +1 -1
  274. package/esm/core/Menu/MenuItemSkeleton.js +2 -1
  275. package/esm/core/Modal/Modal.js +1 -1
  276. package/esm/core/NonIdealState/ErrorPage.js +2 -2
  277. package/esm/core/{utils/components → Popover}/Popover.d.ts +29 -13
  278. package/esm/core/{utils/components → Popover}/Popover.js +45 -25
  279. package/esm/core/RadioTiles/RadioTileGroup.d.ts +1 -1
  280. package/esm/core/RadioTiles/RadioTileGroup.js +1 -1
  281. package/esm/core/SearchBox/SearchBox.d.ts +3 -2
  282. package/esm/core/SearchBox/SearchBox.js +2 -2
  283. package/esm/core/Select/Select.d.ts +2 -2
  284. package/esm/core/Select/Select.js +10 -9
  285. package/esm/core/Select/SelectTagContainer.js +1 -1
  286. package/esm/core/SideNavigation/SideNavigation.js +2 -2
  287. package/esm/core/SideNavigation/SidenavButton.d.ts +1 -1
  288. package/esm/core/SideNavigation/SidenavButton.js +1 -1
  289. package/esm/core/Slider/Slider.d.ts +3 -7
  290. package/esm/core/Slider/Slider.js +8 -19
  291. package/esm/core/Slider/Thumb.d.ts +2 -3
  292. package/esm/core/Slider/Thumb.js +2 -6
  293. package/esm/core/StatusMessage/StatusMessage.d.ts +1 -1
  294. package/esm/core/StatusMessage/StatusMessage.js +2 -1
  295. package/esm/core/Stepper/StepperStep.js +1 -1
  296. package/esm/core/Stepper/WorkflowDiagramStep.js +1 -1
  297. package/esm/core/Surface/Surface.d.ts +8 -0
  298. package/esm/core/Surface/Surface.js +19 -1
  299. package/esm/core/Table/SubRowExpander.d.ts +1 -1
  300. package/esm/core/Table/SubRowExpander.js +1 -1
  301. package/esm/core/Table/Table.d.ts +1 -1
  302. package/esm/core/Table/Table.js +7 -13
  303. package/esm/core/Table/TableCell.d.ts +1 -1
  304. package/esm/core/Table/TablePaginator.js +5 -3
  305. package/esm/core/Table/TableRowMemoized.d.ts +1 -1
  306. package/esm/core/Table/actionHandlers/expandHandler.d.ts +1 -1
  307. package/esm/core/Table/actionHandlers/filterHandler.d.ts +1 -1
  308. package/esm/core/Table/actionHandlers/resizeHandler.d.ts +17 -17
  309. package/esm/core/Table/actionHandlers/selectHandler.d.ts +8 -8
  310. package/esm/core/Table/cells/DefaultCell.d.ts +1 -1
  311. package/esm/core/Table/cells/EditableCell.d.ts +1 -1
  312. package/esm/core/Table/columns/actionColumn.d.ts +2 -2
  313. package/esm/core/Table/columns/actionColumn.js +4 -6
  314. package/esm/core/Table/columns/expanderColumn.d.ts +1 -1
  315. package/esm/core/Table/columns/expanderColumn.js +2 -1
  316. package/esm/core/Table/columns/selectionColumn.d.ts +1 -1
  317. package/esm/core/Table/columns/selectionColumn.js +1 -1
  318. package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.d.ts +1 -1
  319. package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +8 -5
  320. package/esm/core/Table/filters/FilterButtonBar.js +1 -1
  321. package/esm/core/Table/filters/FilterToggle.d.ts +1 -1
  322. package/esm/core/Table/filters/FilterToggle.js +4 -7
  323. package/esm/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +1 -1
  324. package/esm/core/Table/filters/TextFilter/TextFilter.js +1 -1
  325. package/esm/core/Table/filters/customFilterFunctions.d.ts +1 -1
  326. package/esm/core/Table/filters/defaultFilterFunctions.d.ts +1 -1
  327. package/esm/core/Table/filters/types.d.ts +2 -19
  328. package/esm/core/Table/hooks/useColumnDragAndDrop.d.ts +1 -1
  329. package/esm/core/Table/hooks/useExpanderCell.d.ts +1 -1
  330. package/esm/core/Table/hooks/useResizeColumns.d.ts +1 -1
  331. package/esm/core/Table/hooks/useScrollToRow.d.ts +1 -1
  332. package/esm/core/Table/hooks/useScrollToRow.js +1 -1
  333. package/esm/core/Table/hooks/useSelectionCell.d.ts +1 -1
  334. package/esm/core/Table/hooks/useStickyColumns.d.ts +1 -1
  335. package/esm/core/Table/hooks/useSubRowFiltering.d.ts +1 -1
  336. package/esm/core/Table/hooks/useSubRowSelection.d.ts +1 -1
  337. package/esm/core/Table/index.d.ts +1 -1
  338. package/esm/core/Table/utils.d.ts +1 -1
  339. package/esm/core/Tabs/Tabs.d.ts +222 -52
  340. package/esm/core/Tabs/Tabs.js +424 -368
  341. package/esm/core/Tag/Tag.js +1 -1
  342. package/esm/core/Textarea/Textarea.js +1 -1
  343. package/esm/core/ThemeProvider/ThemeProvider.d.ts +3 -2
  344. package/esm/core/ThemeProvider/ThemeProvider.js +17 -8
  345. package/esm/core/Tile/Tile.d.ts +2 -2
  346. package/esm/core/Tile/Tile.js +15 -14
  347. package/esm/core/Toast/Toast.js +1 -1
  348. package/esm/core/TransferList/TransferList.d.ts +1 -1
  349. package/esm/core/TransferList/TransferList.js +3 -2
  350. package/esm/core/Tree/TreeNodeExpander.d.ts +1 -1
  351. package/esm/core/Tree/TreeNodeExpander.js +1 -1
  352. package/{cjs/core/Typography/Anchor → esm/core/Typography}/Anchor.d.ts +1 -1
  353. package/esm/core/Typography/{Anchor/Anchor.js → Anchor.js} +1 -1
  354. package/{cjs/core/Typography/Blockquote → esm/core/Typography}/Blockquote.d.ts +1 -1
  355. package/esm/core/Typography/{Blockquote/Blockquote.js → Blockquote.js} +1 -1
  356. package/esm/core/Typography/{Code/Code.d.ts → Code.d.ts} +1 -1
  357. package/esm/core/Typography/{Code/Code.js → Code.js} +1 -1
  358. package/{cjs/core/Typography/Kbd → esm/core/Typography}/Kbd.d.ts +1 -1
  359. package/esm/core/Typography/{Kbd/Kbd.js → Kbd.js} +1 -1
  360. package/{cjs/core/Typography/Text → esm/core/Typography}/Text.d.ts +1 -1
  361. package/esm/core/Typography/{Text/Text.js → Text.js} +1 -1
  362. package/{cjs/core/utils/components → esm/core/VisuallyHidden}/VisuallyHidden.d.ts +1 -1
  363. package/esm/core/{utils/components → VisuallyHidden}/VisuallyHidden.js +1 -1
  364. package/esm/core/utils/components/AutoclearingHiddenLiveRegion.js +1 -1
  365. package/esm/core/utils/components/InputContainer.js +2 -2
  366. package/esm/core/utils/components/WithCSSTransition.js +7 -1
  367. package/esm/core/utils/components/index.d.ts +0 -6
  368. package/esm/core/utils/components/index.js +0 -6
  369. package/esm/core/utils/functions/dev.d.ts +11 -0
  370. package/esm/core/utils/functions/dev.js +29 -0
  371. package/esm/core/utils/functions/index.d.ts +1 -0
  372. package/esm/core/utils/functions/index.js +1 -0
  373. package/esm/core/utils/hooks/useGlobals.d.ts +1 -1
  374. package/esm/core/utils/hooks/useGlobals.js +1 -5
  375. package/esm/core/utils/hooks/useOverflow.js +3 -1
  376. package/esm/index.d.ts +112 -2
  377. package/esm/index.js +123 -2
  378. package/esm/react-table/react-table.d.ts +745 -0
  379. package/esm/{core/Backdrop/index.js → react-table/react-table.js} +5 -1
  380. package/esm/styles.js +15 -15
  381. package/package.json +22 -21
  382. package/react-table.d.ts +745 -0
  383. package/styles.css +57 -66
  384. package/cjs/core/Alert/index.d.ts +0 -3
  385. package/cjs/core/Alert/index.js +0 -15
  386. package/cjs/core/Avatar/index.d.ts +0 -3
  387. package/cjs/core/Avatar/index.js +0 -15
  388. package/cjs/core/AvatarGroup/index.d.ts +0 -3
  389. package/cjs/core/AvatarGroup/index.js +0 -15
  390. package/cjs/core/Backdrop/index.d.ts +0 -1
  391. package/cjs/core/Backdrop/index.js +0 -14
  392. package/cjs/core/Badge/index.d.ts +0 -3
  393. package/cjs/core/Breadcrumbs/index.d.ts +0 -3
  394. package/cjs/core/Breadcrumbs/index.js +0 -15
  395. package/cjs/core/ButtonGroup/index.d.ts +0 -3
  396. package/cjs/core/ButtonGroup/index.js +0 -15
  397. package/cjs/core/Buttons/Button/index.d.ts +0 -3
  398. package/cjs/core/Buttons/Button/index.js +0 -15
  399. package/cjs/core/Buttons/DropdownButton/index.d.ts +0 -3
  400. package/cjs/core/Buttons/DropdownButton/index.js +0 -15
  401. package/cjs/core/Buttons/IconButton/index.d.ts +0 -3
  402. package/cjs/core/Buttons/IconButton/index.js +0 -15
  403. package/cjs/core/Buttons/IdeasButton/index.d.ts +0 -3
  404. package/cjs/core/Buttons/IdeasButton/index.js +0 -15
  405. package/cjs/core/Buttons/SplitButton/index.d.ts +0 -3
  406. package/cjs/core/Buttons/SplitButton/index.js +0 -15
  407. package/cjs/core/Buttons/index.d.ts +0 -5
  408. package/cjs/core/Buttons/index.js +0 -47
  409. package/cjs/core/Carousel/index.d.ts +0 -3
  410. package/cjs/core/Carousel/index.js +0 -15
  411. package/cjs/core/Checkbox/index.d.ts +0 -3
  412. package/cjs/core/Checkbox/index.js +0 -15
  413. package/cjs/core/ColorPicker/index.d.ts +0 -7
  414. package/cjs/core/ColorPicker/index.js +0 -48
  415. package/cjs/core/ComboBox/index.d.ts +0 -3
  416. package/cjs/core/ComboBox/index.js +0 -15
  417. package/cjs/core/DatePicker/index.d.ts +0 -3
  418. package/cjs/core/DatePicker/index.js +0 -21
  419. package/cjs/core/Dialog/index.d.ts +0 -3
  420. package/cjs/core/Dialog/index.js +0 -15
  421. package/cjs/core/DropdownMenu/index.d.ts +0 -4
  422. package/cjs/core/DropdownMenu/index.js +0 -15
  423. package/cjs/core/ExpandableBlock/index.d.ts +0 -3
  424. package/cjs/core/ExpandableBlock/index.js +0 -15
  425. package/cjs/core/Fieldset/index.d.ts +0 -3
  426. package/cjs/core/Fieldset/index.js +0 -15
  427. package/cjs/core/FileUpload/index.d.ts +0 -6
  428. package/cjs/core/FileUpload/index.js +0 -40
  429. package/cjs/core/Footer/index.d.ts +0 -4
  430. package/cjs/core/Footer/index.js +0 -21
  431. package/cjs/core/Header/index.d.ts +0 -6
  432. package/cjs/core/Header/index.js +0 -40
  433. package/cjs/core/InformationPanel/index.d.ts +0 -7
  434. package/cjs/core/InformationPanel/index.js +0 -48
  435. package/cjs/core/Input/index.d.ts +0 -3
  436. package/cjs/core/Input/index.js +0 -15
  437. package/cjs/core/InputGrid/index.d.ts +0 -3
  438. package/cjs/core/InputGrid/index.js +0 -15
  439. package/cjs/core/InputGroup/index.d.ts +0 -3
  440. package/cjs/core/InputGroup/index.js +0 -15
  441. package/cjs/core/InputWithDecorations/index.d.ts +0 -3
  442. package/cjs/core/InputWithDecorations/index.js +0 -15
  443. package/cjs/core/Label/index.d.ts +0 -3
  444. package/cjs/core/Label/index.js +0 -15
  445. package/cjs/core/LabeledInput/index.d.ts +0 -3
  446. package/cjs/core/LabeledInput/index.js +0 -15
  447. package/cjs/core/LabeledSelect/index.d.ts +0 -3
  448. package/cjs/core/LabeledSelect/index.js +0 -15
  449. package/cjs/core/LabeledTextarea/index.d.ts +0 -3
  450. package/cjs/core/LabeledTextarea/index.js +0 -15
  451. package/cjs/core/List/index.d.ts +0 -2
  452. package/cjs/core/List/index.js +0 -21
  453. package/cjs/core/Menu/index.d.ts +0 -5
  454. package/cjs/core/Menu/index.js +0 -47
  455. package/cjs/core/Modal/index.d.ts +0 -5
  456. package/cjs/core/Modal/index.js +0 -29
  457. package/cjs/core/NonIdealState/index.d.ts +0 -5
  458. package/cjs/core/NonIdealState/index.js +0 -22
  459. package/cjs/core/NotificationMarker/index.d.ts +0 -3
  460. package/cjs/core/NotificationMarker/index.js +0 -15
  461. package/cjs/core/Overlay/index.d.ts +0 -1
  462. package/cjs/core/Overlay/index.js +0 -14
  463. package/cjs/core/ProgressIndicators/index.d.ts +0 -2
  464. package/cjs/core/ProgressIndicators/index.js +0 -21
  465. package/cjs/core/Radio/index.d.ts +0 -3
  466. package/cjs/core/Radio/index.js +0 -15
  467. package/cjs/core/RadioTiles/index.d.ts +0 -4
  468. package/cjs/core/RadioTiles/index.js +0 -22
  469. package/cjs/core/SearchBox/index.d.ts +0 -3
  470. package/cjs/core/SearchBox/index.js +0 -15
  471. package/cjs/core/Select/index.d.ts +0 -4
  472. package/cjs/core/Select/index.js +0 -15
  473. package/cjs/core/SideNavigation/index.d.ts +0 -6
  474. package/cjs/core/SideNavigation/index.js +0 -40
  475. package/cjs/core/SkipToContentLink/index.d.ts +0 -3
  476. package/cjs/core/SkipToContentLink/index.js +0 -15
  477. package/cjs/core/Slider/index.d.ts +0 -3
  478. package/cjs/core/Slider/index.js +0 -15
  479. package/cjs/core/StatusMessage/index.d.ts +0 -3
  480. package/cjs/core/StatusMessage/index.js +0 -15
  481. package/cjs/core/Stepper/index.d.ts +0 -3
  482. package/cjs/core/Stepper/index.js +0 -21
  483. package/cjs/core/Surface/index.d.ts +0 -3
  484. package/cjs/core/Surface/index.js +0 -15
  485. package/cjs/core/Tabs/Tab.d.ts +0 -40
  486. package/cjs/core/Tabs/Tab.js +0 -65
  487. package/cjs/core/Tabs/index.d.ts +0 -2
  488. package/cjs/core/Tabs/index.js +0 -21
  489. package/cjs/core/Tag/index.d.ts +0 -4
  490. package/cjs/core/Tag/index.js +0 -22
  491. package/cjs/core/Textarea/index.d.ts +0 -3
  492. package/cjs/core/Textarea/index.js +0 -15
  493. package/cjs/core/ThemeProvider/index.d.ts +0 -4
  494. package/cjs/core/ThemeProvider/index.js +0 -15
  495. package/cjs/core/Tile/index.d.ts +0 -3
  496. package/cjs/core/Tile/index.js +0 -15
  497. package/cjs/core/TimePicker/index.d.ts +0 -4
  498. package/cjs/core/TimePicker/index.js +0 -15
  499. package/cjs/core/Toast/index.d.ts +0 -1
  500. package/cjs/core/Toast/index.js +0 -14
  501. package/cjs/core/ToggleSwitch/index.d.ts +0 -3
  502. package/cjs/core/ToggleSwitch/index.js +0 -15
  503. package/cjs/core/Tooltip/index.d.ts +0 -3
  504. package/cjs/core/Tooltip/index.js +0 -15
  505. package/cjs/core/TransferList/index.d.ts +0 -3
  506. package/cjs/core/TransferList/index.js +0 -15
  507. package/cjs/core/Tree/index.d.ts +0 -4
  508. package/cjs/core/Tree/index.js +0 -28
  509. package/cjs/core/Typography/Anchor/index.d.ts +0 -3
  510. package/cjs/core/Typography/Anchor/index.js +0 -15
  511. package/cjs/core/Typography/Blockquote/index.d.ts +0 -3
  512. package/cjs/core/Typography/Blockquote/index.js +0 -15
  513. package/cjs/core/Typography/Code/index.d.ts +0 -3
  514. package/cjs/core/Typography/Code/index.js +0 -15
  515. package/cjs/core/Typography/Kbd/index.d.ts +0 -3
  516. package/cjs/core/Typography/Kbd/index.js +0 -21
  517. package/cjs/core/Typography/Text/index.d.ts +0 -3
  518. package/cjs/core/Typography/Text/index.js +0 -15
  519. package/cjs/core/Typography/index.d.ts +0 -5
  520. package/cjs/core/Typography/index.js +0 -54
  521. package/cjs/core/index.d.ts +0 -68
  522. package/cjs/core/index.js +0 -916
  523. package/cjs/types/react-table-config.d.ts +0 -135
  524. package/cjs/types/react-table-config.js +0 -2
  525. package/esm/core/Alert/index.d.ts +0 -3
  526. package/esm/core/Alert/index.js +0 -6
  527. package/esm/core/Avatar/index.d.ts +0 -3
  528. package/esm/core/Avatar/index.js +0 -6
  529. package/esm/core/AvatarGroup/index.d.ts +0 -3
  530. package/esm/core/AvatarGroup/index.js +0 -6
  531. package/esm/core/Backdrop/index.d.ts +0 -1
  532. package/esm/core/Badge/index.d.ts +0 -3
  533. package/esm/core/Badge/index.js +0 -6
  534. package/esm/core/Breadcrumbs/index.d.ts +0 -3
  535. package/esm/core/Breadcrumbs/index.js +0 -6
  536. package/esm/core/ButtonGroup/index.d.ts +0 -3
  537. package/esm/core/ButtonGroup/index.js +0 -6
  538. package/esm/core/Buttons/Button/index.d.ts +0 -3
  539. package/esm/core/Buttons/Button/index.js +0 -6
  540. package/esm/core/Buttons/DropdownButton/index.d.ts +0 -3
  541. package/esm/core/Buttons/DropdownButton/index.js +0 -6
  542. package/esm/core/Buttons/IconButton/index.d.ts +0 -3
  543. package/esm/core/Buttons/IconButton/index.js +0 -6
  544. package/esm/core/Buttons/IdeasButton/index.d.ts +0 -3
  545. package/esm/core/Buttons/IdeasButton/index.js +0 -6
  546. package/esm/core/Buttons/SplitButton/index.d.ts +0 -3
  547. package/esm/core/Buttons/SplitButton/index.js +0 -6
  548. package/esm/core/Buttons/index.d.ts +0 -5
  549. package/esm/core/Buttons/index.js +0 -9
  550. package/esm/core/Carousel/index.d.ts +0 -3
  551. package/esm/core/Carousel/index.js +0 -6
  552. package/esm/core/Checkbox/index.d.ts +0 -3
  553. package/esm/core/Checkbox/index.js +0 -6
  554. package/esm/core/ColorPicker/index.d.ts +0 -7
  555. package/esm/core/ColorPicker/index.js +0 -10
  556. package/esm/core/ComboBox/index.d.ts +0 -3
  557. package/esm/core/ComboBox/index.js +0 -6
  558. package/esm/core/DatePicker/index.d.ts +0 -3
  559. package/esm/core/DatePicker/index.js +0 -6
  560. package/esm/core/Dialog/index.d.ts +0 -3
  561. package/esm/core/Dialog/index.js +0 -6
  562. package/esm/core/DropdownMenu/index.d.ts +0 -4
  563. package/esm/core/DropdownMenu/index.js +0 -6
  564. package/esm/core/ExpandableBlock/index.d.ts +0 -3
  565. package/esm/core/ExpandableBlock/index.js +0 -6
  566. package/esm/core/Fieldset/index.d.ts +0 -3
  567. package/esm/core/Fieldset/index.js +0 -6
  568. package/esm/core/FileUpload/index.d.ts +0 -6
  569. package/esm/core/FileUpload/index.js +0 -9
  570. package/esm/core/Footer/index.d.ts +0 -4
  571. package/esm/core/Footer/index.js +0 -6
  572. package/esm/core/Header/index.d.ts +0 -6
  573. package/esm/core/Header/index.js +0 -9
  574. package/esm/core/InformationPanel/index.d.ts +0 -7
  575. package/esm/core/InformationPanel/index.js +0 -10
  576. package/esm/core/Input/index.d.ts +0 -3
  577. package/esm/core/Input/index.js +0 -6
  578. package/esm/core/InputGrid/index.d.ts +0 -3
  579. package/esm/core/InputGrid/index.js +0 -6
  580. package/esm/core/InputGroup/index.d.ts +0 -3
  581. package/esm/core/InputGroup/index.js +0 -6
  582. package/esm/core/InputWithDecorations/index.d.ts +0 -3
  583. package/esm/core/InputWithDecorations/index.js +0 -6
  584. package/esm/core/Label/index.d.ts +0 -3
  585. package/esm/core/Label/index.js +0 -6
  586. package/esm/core/LabeledInput/index.d.ts +0 -3
  587. package/esm/core/LabeledInput/index.js +0 -6
  588. package/esm/core/LabeledSelect/index.d.ts +0 -3
  589. package/esm/core/LabeledSelect/index.js +0 -6
  590. package/esm/core/LabeledTextarea/index.d.ts +0 -3
  591. package/esm/core/LabeledTextarea/index.js +0 -6
  592. package/esm/core/List/index.d.ts +0 -2
  593. package/esm/core/List/index.js +0 -6
  594. package/esm/core/Menu/index.d.ts +0 -5
  595. package/esm/core/Menu/index.js +0 -9
  596. package/esm/core/Modal/index.d.ts +0 -5
  597. package/esm/core/Modal/index.js +0 -8
  598. package/esm/core/NonIdealState/index.d.ts +0 -5
  599. package/esm/core/NonIdealState/index.js +0 -7
  600. package/esm/core/NotificationMarker/index.d.ts +0 -3
  601. package/esm/core/NotificationMarker/index.js +0 -6
  602. package/esm/core/Overlay/index.d.ts +0 -1
  603. package/esm/core/Overlay/index.js +0 -5
  604. package/esm/core/ProgressIndicators/index.d.ts +0 -2
  605. package/esm/core/ProgressIndicators/index.js +0 -6
  606. package/esm/core/Radio/index.d.ts +0 -3
  607. package/esm/core/Radio/index.js +0 -6
  608. package/esm/core/RadioTiles/index.d.ts +0 -4
  609. package/esm/core/RadioTiles/index.js +0 -7
  610. package/esm/core/SearchBox/index.d.ts +0 -3
  611. package/esm/core/SearchBox/index.js +0 -6
  612. package/esm/core/Select/index.d.ts +0 -4
  613. package/esm/core/Select/index.js +0 -6
  614. package/esm/core/SideNavigation/index.d.ts +0 -6
  615. package/esm/core/SideNavigation/index.js +0 -9
  616. package/esm/core/SkipToContentLink/index.d.ts +0 -3
  617. package/esm/core/SkipToContentLink/index.js +0 -6
  618. package/esm/core/Slider/index.d.ts +0 -3
  619. package/esm/core/Slider/index.js +0 -6
  620. package/esm/core/StatusMessage/index.d.ts +0 -3
  621. package/esm/core/StatusMessage/index.js +0 -6
  622. package/esm/core/Stepper/index.d.ts +0 -3
  623. package/esm/core/Stepper/index.js +0 -6
  624. package/esm/core/Surface/index.d.ts +0 -3
  625. package/esm/core/Surface/index.js +0 -6
  626. package/esm/core/Tabs/Tab.d.ts +0 -40
  627. package/esm/core/Tabs/Tab.js +0 -57
  628. package/esm/core/Tabs/index.d.ts +0 -2
  629. package/esm/core/Tabs/index.js +0 -6
  630. package/esm/core/Tag/index.d.ts +0 -4
  631. package/esm/core/Tag/index.js +0 -7
  632. package/esm/core/Textarea/index.d.ts +0 -3
  633. package/esm/core/Textarea/index.js +0 -6
  634. package/esm/core/ThemeProvider/index.d.ts +0 -4
  635. package/esm/core/ThemeProvider/index.js +0 -6
  636. package/esm/core/Tile/index.d.ts +0 -3
  637. package/esm/core/Tile/index.js +0 -6
  638. package/esm/core/TimePicker/index.d.ts +0 -4
  639. package/esm/core/TimePicker/index.js +0 -6
  640. package/esm/core/Toast/index.d.ts +0 -1
  641. package/esm/core/Toast/index.js +0 -5
  642. package/esm/core/ToggleSwitch/index.d.ts +0 -3
  643. package/esm/core/ToggleSwitch/index.js +0 -6
  644. package/esm/core/Tooltip/index.d.ts +0 -3
  645. package/esm/core/Tooltip/index.js +0 -6
  646. package/esm/core/TransferList/index.d.ts +0 -3
  647. package/esm/core/TransferList/index.js +0 -6
  648. package/esm/core/Tree/index.d.ts +0 -4
  649. package/esm/core/Tree/index.js +0 -7
  650. package/esm/core/Typography/Anchor/index.d.ts +0 -3
  651. package/esm/core/Typography/Anchor/index.js +0 -6
  652. package/esm/core/Typography/Blockquote/index.d.ts +0 -3
  653. package/esm/core/Typography/Blockquote/index.js +0 -6
  654. package/esm/core/Typography/Code/index.d.ts +0 -3
  655. package/esm/core/Typography/Code/index.js +0 -6
  656. package/esm/core/Typography/Kbd/index.d.ts +0 -3
  657. package/esm/core/Typography/Kbd/index.js +0 -6
  658. package/esm/core/Typography/Text/index.d.ts +0 -3
  659. package/esm/core/Typography/Text/index.js +0 -6
  660. package/esm/core/Typography/index.d.ts +0 -5
  661. package/esm/core/Typography/index.js +0 -9
  662. package/esm/core/index.d.ts +0 -68
  663. package/esm/core/index.js +0 -132
  664. package/esm/types/react-table-config.d.ts +0 -135
  665. package/esm/types/react-table-config.js +0 -1
package/README.md CHANGED
@@ -23,7 +23,9 @@
23
23
  ## What is iTwinUI-react?
24
24
 
25
25
  iTwinUI-react is a React component library for [iTwinUI](https://github.com/iTwin/iTwinUI).
26
- The goal of this package is to provide React components that make it easier to use the styles from [`@itwin/itwinui-css`](https://github.com/iTwin/iTwinUI/tree/main/packages/itwinui-css). Check out the [demo website](https://itwin.github.io/iTwinUI/react) to see the components in action.
26
+ The goal of this package is to provide React components that make it easier to use the styles from [`@itwin/itwinui-css`](https://github.com/iTwin/iTwinUI/tree/main/packages/itwinui-css). Check out the [documentation website](https://itwinui.bentley.com/) to detailed documentation and examples of all components.
27
+
28
+ 🆕 Check out the [v3 migration guide](https://github.com/iTwin/iTwinUI/wiki/iTwinUI-react-v3-migration-guide) if you're upgrading from an older version.
27
29
 
28
30
  ---
29
31
 
@@ -33,10 +35,6 @@ The goal of this package is to provide React components that make it easier to u
33
35
  npm install @itwin/itwinui-react
34
36
  ```
35
37
 
36
- ```
37
- yarn add @itwin/itwinui-react
38
- ```
39
-
40
38
  ---
41
39
 
42
40
  ## Setup
@@ -55,7 +55,7 @@ export declare const Alert: PolymorphicForwardRefComponent<"div", AlertOwnProps
55
55
  Icon: PolymorphicForwardRefComponent<"span", Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
56
56
  ref?: ((instance: HTMLSpanElement | null) => void) | React.RefObject<HTMLSpanElement> | null | undefined;
57
57
  }, "fill" | "as" | "key" | "size" | keyof React.HTMLAttributes<HTMLSpanElement> | "padded"> & {
58
- size?: "small" | "large" | "auto" | "medium" | import("../utils/types.js").AnyString | undefined;
58
+ size?: "small" | "auto" | "medium" | "large" | import("../utils/types.js").AnyString | undefined;
59
59
  fill?: "default" | "informational" | "negative" | "positive" | "warning" | import("../utils/types.js").AnyString | undefined;
60
60
  padded?: boolean | undefined;
61
61
  } & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
@@ -9,7 +9,8 @@ const tslib_1 = require('tslib');
9
9
  const classnames_1 = tslib_1.__importDefault(require('classnames'));
10
10
  const React = tslib_1.__importStar(require('react'));
11
11
  const index_js_1 = require('../utils/index.js');
12
- const index_js_2 = require('../Buttons/index.js');
12
+ const IconButton_js_1 = require('../Buttons/IconButton.js');
13
+ const Icon_js_1 = require('../Icon/Icon.js');
13
14
  const AlertContext = React.createContext(undefined);
14
15
  // ----------------------------------------------------------------------------
15
16
  // Alert component
@@ -75,7 +76,7 @@ const AlertIcon = React.forwardRef((props, ref) => {
75
76
  const { type } = (0, index_js_1.useSafeContext)(AlertContext);
76
77
  const StatusIcon = index_js_1.StatusIconMap[type];
77
78
  return React.createElement(
78
- index_js_1.Icon,
79
+ Icon_js_1.Icon,
79
80
  { fill: type, ref: ref, ...rest },
80
81
  children ?? React.createElement(StatusIcon, null),
81
82
  );
@@ -106,7 +107,7 @@ AlertAction.displayName = 'Alert.Action';
106
107
  const AlertCloseButton = React.forwardRef((props, ref) => {
107
108
  const { children, ...rest } = props;
108
109
  return React.createElement(
109
- index_js_2.IconButton,
110
+ IconButton_js_1.IconButton,
110
111
  {
111
112
  styleType: 'borderless',
112
113
  size: 'small',
@@ -9,6 +9,7 @@ const tslib_1 = require('tslib');
9
9
  const classnames_1 = tslib_1.__importDefault(require('classnames'));
10
10
  const React = tslib_1.__importStar(require('react'));
11
11
  const index_js_1 = require('../utils/index.js');
12
+ const VisuallyHidden_js_1 = require('../VisuallyHidden/VisuallyHidden.js');
12
13
  /**
13
14
  * Helper function that returns one of the preset badge color values.
14
15
  */
@@ -77,7 +78,7 @@ exports.Avatar = React.forwardRef((props, ref) => {
77
78
  image,
78
79
  status
79
80
  ? React.createElement(
80
- index_js_1.VisuallyHidden,
81
+ VisuallyHidden_js_1.VisuallyHidden,
81
82
  null,
82
83
  statusTitles[status],
83
84
  )
@@ -9,6 +9,8 @@ const tslib_1 = require('tslib');
9
9
  const React = tslib_1.__importStar(require('react'));
10
10
  const classnames_1 = tslib_1.__importDefault(require('classnames'));
11
11
  const index_js_1 = require('../utils/index.js');
12
+ const Button_js_1 = require('../Buttons/Button.js');
13
+ const logWarningInDev = (0, index_js_1.createWarningLogger)();
12
14
  /**
13
15
  * A breadcrumb trail is used as a navigational aid to help users keep track
14
16
  * of their place in the application. It is often placed before a page's main content.
@@ -104,24 +106,38 @@ const BreadcrumbsComponent = React.forwardRef((props, ref) => {
104
106
  ),
105
107
  );
106
108
  });
109
+ // ----------------------------------------------------------------------------
107
110
  const ListItem = ({ item, isActive }) => {
111
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
112
+ let children = item;
113
+ if (
114
+ children?.type === 'span' ||
115
+ children?.type === 'a' ||
116
+ children?.type === Button_js_1.Button
117
+ ) {
118
+ logWarningInDev(
119
+ 'Directly using Button/a/span as Breadcrumbs children is deprecated, please use `Breadcrumbs.Item` instead.',
120
+ );
121
+ children = React.createElement(BreadcrumbsItem, { ...children.props });
122
+ }
108
123
  return React.createElement(
109
124
  index_js_1.Box,
110
125
  { as: 'li', className: 'iui-breadcrumbs-item' },
111
- React.isValidElement(item)
112
- ? React.cloneElement(item, {
113
- 'aria-current':
114
- item.props['aria-current'] ?? isActive ? 'location' : undefined,
115
- })
116
- : item,
126
+ children &&
127
+ React.cloneElement(children, {
128
+ 'aria-current':
129
+ children.props['aria-current'] ?? isActive ? 'location' : undefined,
130
+ }),
117
131
  );
118
132
  };
133
+ // ----------------------------------------------------------------------------
119
134
  const Separator = ({ separator }) =>
120
135
  React.createElement(
121
136
  index_js_1.Box,
122
137
  { as: 'li', className: 'iui-breadcrumbs-separator', 'aria-hidden': true },
123
138
  separator ?? React.createElement(index_js_1.SvgChevronRight, null),
124
139
  );
140
+ // ----------------------------------------------------------------------------
125
141
  const BreadcrumbsItem = React.forwardRef((props, forwardedRef) => {
126
142
  const { children: childrenProp, className, ...rest } = props;
127
143
  const defaultAs = !!props.href ? 'a' : !!props.onClick ? 'button' : 'span';
@@ -144,6 +160,7 @@ const BreadcrumbsItem = React.forwardRef((props, forwardedRef) => {
144
160
  );
145
161
  });
146
162
  BreadcrumbsItem.displayName = 'Breadcrumbs.Item';
163
+ // ----------------------------------------------------------------------------
147
164
  exports.Breadcrumbs = Object.assign(BreadcrumbsComponent, {
148
165
  /**
149
166
  * Breadcrumbs item subcomponent
@@ -48,10 +48,7 @@ exports.ButtonGroup = React.forwardRef((props, ref) => {
48
48
  ...rest
49
49
  } = props;
50
50
  const items = React.useMemo(
51
- () =>
52
- React.Children.map(children, (child) =>
53
- !!child ? React.createElement('div', null, child) : undefined,
54
- )?.filter(Boolean) ?? [],
51
+ () => React.Children.toArray(children).filter(Boolean),
55
52
  [children],
56
53
  );
57
54
  const [overflowRef, visibleCount] = (0, index_js_1.useOverflow)(
@@ -67,14 +64,15 @@ exports.ButtonGroup = React.forwardRef((props, ref) => {
67
64
  index_js_1.Box,
68
65
  {
69
66
  className: (0, classnames_1.default)(
67
+ 'iui-button-group',
70
68
  {
71
- 'iui-button-group': orientation === 'horizontal',
72
- 'iui-button-group-vertical': orientation === 'vertical',
73
69
  'iui-button-group-overflow-x':
74
70
  !!overflowButton && orientation === 'horizontal',
75
71
  },
76
72
  className,
77
73
  ),
74
+ 'data-iui-orientation':
75
+ orientation === 'vertical' ? orientation : undefined,
78
76
  ref: refs,
79
77
  ...rest,
80
78
  },
@@ -91,13 +89,13 @@ exports.ButtonGroup = React.forwardRef((props, ref) => {
91
89
  null,
92
90
  overflowButton &&
93
91
  overflowPlacement === 'start' &&
94
- React.createElement('div', null, overflowButton(overflowStart)),
92
+ overflowButton(overflowStart),
95
93
  overflowPlacement === 'start'
96
94
  ? items.slice(overflowStart + 1)
97
95
  : items.slice(0, Math.max(0, overflowStart)),
98
96
  overflowButton &&
99
97
  overflowPlacement === 'end' &&
100
- React.createElement('div', null, overflowButton(overflowStart)),
98
+ overflowButton(overflowStart),
101
99
  );
102
100
  })(),
103
101
  ),
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { ButtonBase } from '../../utils/index.js';
3
- import type { PolymorphicForwardRefComponent } from '../../utils/index.js';
2
+ import { ButtonBase } from '../utils/index.js';
3
+ import type { PolymorphicForwardRefComponent } from '../utils/index.js';
4
4
  export type ButtonProps = {
5
5
  /**
6
6
  * Modify size of the button.
@@ -8,7 +8,7 @@ const tslib_1 = require('tslib');
8
8
  *--------------------------------------------------------------------------------------------*/
9
9
  const classnames_1 = tslib_1.__importDefault(require('classnames'));
10
10
  const React = tslib_1.__importStar(require('react'));
11
- const index_js_1 = require('../../utils/index.js');
11
+ const index_js_1 = require('../utils/index.js');
12
12
  /**
13
13
  * Generic button component
14
14
  * @example
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import type { ButtonProps } from '../Button/Button.js';
3
- import type { DropdownMenuProps } from '../../DropdownMenu/index.js';
4
- import type { PolymorphicForwardRefComponent } from '../../utils/index.js';
2
+ import type { ButtonProps } from './Button.js';
3
+ import type { DropdownMenuProps } from '../DropdownMenu/DropdownMenu.js';
4
+ import type { PolymorphicForwardRefComponent } from '../utils/index.js';
5
5
  export type DropdownButtonProps = {
6
6
  /**
7
7
  * Items in the dropdown menu.
@@ -8,9 +8,9 @@ const tslib_1 = require('tslib');
8
8
  *--------------------------------------------------------------------------------------------*/
9
9
  const React = tslib_1.__importStar(require('react'));
10
10
  const classnames_1 = tslib_1.__importDefault(require('classnames'));
11
- const index_js_1 = require('../Button/index.js');
12
- const index_js_2 = require('../../DropdownMenu/index.js');
13
- const index_js_3 = require('../../utils/index.js');
11
+ const Button_js_1 = require('./Button.js');
12
+ const DropdownMenu_js_1 = require('../DropdownMenu/DropdownMenu.js');
13
+ const index_js_1 = require('../utils/index.js');
14
14
  /**
15
15
  * Button that opens a DropdownMenu.
16
16
  * @example
@@ -32,7 +32,7 @@ exports.DropdownButton = React.forwardRef((props, forwardedRef) => {
32
32
  } = props;
33
33
  const [isMenuOpen, setIsMenuOpen] = React.useState(false);
34
34
  return React.createElement(
35
- index_js_2.DropdownMenu,
35
+ DropdownMenu_js_1.DropdownMenu,
36
36
  {
37
37
  menuItems: menuItems,
38
38
  matchWidth: true,
@@ -44,16 +44,16 @@ exports.DropdownButton = React.forwardRef((props, forwardedRef) => {
44
44
  },
45
45
  },
46
46
  React.createElement(
47
- index_js_1.Button,
47
+ Button_js_1.Button,
48
48
  {
49
49
  className: (0, classnames_1.default)('iui-button-dropdown', className),
50
50
  size: size,
51
51
  styleType: styleType,
52
52
  endIcon: isMenuOpen
53
- ? React.createElement(index_js_3.SvgCaretUpSmall, {
53
+ ? React.createElement(index_js_1.SvgCaretUpSmall, {
54
54
  'aria-hidden': true,
55
55
  })
56
- : React.createElement(index_js_3.SvgCaretDownSmall, {
56
+ : React.createElement(index_js_1.SvgCaretDownSmall, {
57
57
  'aria-hidden': true,
58
58
  }),
59
59
  ref: forwardedRef,
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import type { ButtonProps } from '../Button/Button.js';
3
- import type { PolymorphicForwardRefComponent } from '../../utils/index.js';
2
+ import type { ButtonProps } from './Button.js';
3
+ import type { PolymorphicForwardRefComponent } from '../utils/index.js';
4
4
  export type IconButtonProps = {
5
5
  /**
6
6
  * Button gets active style.
@@ -8,8 +8,9 @@ const tslib_1 = require('tslib');
8
8
  *--------------------------------------------------------------------------------------------*/
9
9
  const classnames_1 = tslib_1.__importDefault(require('classnames'));
10
10
  const React = tslib_1.__importStar(require('react'));
11
- const index_js_1 = require('../../utils/index.js');
12
- const Tooltip_js_1 = require('../../Tooltip/Tooltip.js');
11
+ const index_js_1 = require('../utils/index.js');
12
+ const Tooltip_js_1 = require('../Tooltip/Tooltip.js');
13
+ const VisuallyHidden_js_1 = require('../VisuallyHidden/VisuallyHidden.js');
13
14
  /**
14
15
  * Icon button
15
16
  * @example
@@ -52,7 +53,9 @@ exports.IconButton = React.forwardRef((props, ref) => {
52
53
  },
53
54
  children,
54
55
  ),
55
- label ? React.createElement(index_js_1.VisuallyHidden, null, label) : null,
56
+ label
57
+ ? React.createElement(VisuallyHidden_js_1.VisuallyHidden, null, label)
58
+ : null,
56
59
  );
57
60
  return label
58
61
  ? React.createElement(
@@ -1,4 +1,4 @@
1
- import type { PolymorphicForwardRefComponent } from '../../utils/index.js';
1
+ import type { PolymorphicForwardRefComponent } from '../utils/index.js';
2
2
  type IdeasButtonProps = {
3
3
  /**
4
4
  * On click handler.
@@ -7,8 +7,8 @@ const tslib_1 = require('tslib');
7
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
8
8
  *--------------------------------------------------------------------------------------------*/
9
9
  const React = tslib_1.__importStar(require('react'));
10
- const index_js_1 = require('../../utils/index.js');
11
- const index_js_2 = require('../Button/index.js');
10
+ const index_js_1 = require('../utils/index.js');
11
+ const Button_js_1 = require('./Button.js');
12
12
  /**
13
13
  * Ideas button
14
14
  * @example
@@ -17,7 +17,7 @@ const index_js_2 = require('../Button/index.js');
17
17
  exports.IdeasButton = React.forwardRef((props, ref) => {
18
18
  const { feedbackLabel = 'Feedback', onClick, ...rest } = props;
19
19
  return React.createElement(
20
- index_js_2.Button,
20
+ Button_js_1.Button,
21
21
  {
22
22
  ref: ref,
23
23
  'data-iui-variant': 'idea',
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import type { ButtonProps } from '../Button/Button.js';
3
- import { IconButton } from '../IconButton/index.js';
4
- import type { PolymorphicForwardRefComponent, PortalProps } from '../../utils/index.js';
2
+ import type { ButtonProps } from './Button.js';
3
+ import { IconButton } from './IconButton.js';
4
+ import type { PolymorphicForwardRefComponent, PortalProps } from '../utils/index.js';
5
5
  import type { Placement } from '@floating-ui/react';
6
6
  export type SplitButtonProps = ButtonProps & {
7
7
  /**
@@ -8,10 +8,11 @@ const tslib_1 = require('tslib');
8
8
  *--------------------------------------------------------------------------------------------*/
9
9
  const classnames_1 = tslib_1.__importDefault(require('classnames'));
10
10
  const React = tslib_1.__importStar(require('react'));
11
- const index_js_1 = require('../Button/index.js');
12
- const index_js_2 = require('../IconButton/index.js');
13
- const index_js_3 = require('../../utils/index.js');
14
- const Menu_js_1 = require('../../Menu/Menu.js');
11
+ const Button_js_1 = require('./Button.js');
12
+ const IconButton_js_1 = require('./IconButton.js');
13
+ const index_js_1 = require('../utils/index.js');
14
+ const Menu_js_1 = require('../Menu/Menu.js');
15
+ const Popover_js_1 = require('../Popover/Popover.js');
15
16
  /**
16
17
  * Split button component with a DropdownMenu.
17
18
  *
@@ -52,15 +53,15 @@ exports.SplitButton = React.forwardRef((props, forwardedRef) => {
52
53
  }
53
54
  return menuItems;
54
55
  }, [menuItems, close]);
55
- const popover = (0, index_js_3.usePopover)({
56
+ const popover = (0, Popover_js_1.usePopover)({
56
57
  visible,
57
58
  onVisibleChange: (open) => (open ? setVisible(true) : close()),
58
59
  placement: menuPlacement,
59
60
  matchWidth: true,
60
61
  });
61
- const labelId = (0, index_js_3.useId)();
62
+ const labelId = (0, index_js_1.useId)();
62
63
  return React.createElement(
63
- index_js_3.Box,
64
+ index_js_1.Box,
64
65
  {
65
66
  ...wrapperProps,
66
67
  ref: popover.refs.setPositionReference,
@@ -73,20 +74,20 @@ exports.SplitButton = React.forwardRef((props, forwardedRef) => {
73
74
  ),
74
75
  },
75
76
  React.createElement(
76
- index_js_1.Button,
77
+ Button_js_1.Button,
77
78
  {
78
79
  className: className,
79
80
  styleType: styleType,
80
81
  size: size,
81
82
  onClick: onClick,
82
- ref: (0, index_js_3.useMergedRefs)(buttonRef, forwardedRef),
83
+ ref: (0, index_js_1.useMergedRefs)(buttonRef, forwardedRef),
83
84
  ...rest,
84
85
  labelProps: { id: labelId, ...props.labelProps },
85
86
  },
86
87
  children,
87
88
  ),
88
89
  React.createElement(
89
- index_js_2.IconButton,
90
+ IconButton_js_1.IconButton,
90
91
  {
91
92
  styleType: styleType,
92
93
  size: size,
@@ -97,12 +98,12 @@ exports.SplitButton = React.forwardRef((props, forwardedRef) => {
97
98
  ...popover.getReferenceProps(menuButtonProps),
98
99
  },
99
100
  visible
100
- ? React.createElement(index_js_3.SvgCaretUpSmall, null)
101
- : React.createElement(index_js_3.SvgCaretDownSmall, null),
101
+ ? React.createElement(index_js_1.SvgCaretUpSmall, null)
102
+ : React.createElement(index_js_1.SvgCaretDownSmall, null),
102
103
  ),
103
104
  popover.open &&
104
105
  React.createElement(
105
- index_js_3.Portal,
106
+ index_js_1.Portal,
106
107
  { portal: portal },
107
108
  React.createElement(
108
109
  Menu_js_1.Menu,
@@ -14,7 +14,8 @@ type CarouselProps = {
14
14
  };
15
15
  /**
16
16
  * The Carousel component consists of a set of slides, normally displayed one at a time. A navigation section is
17
- * located below the slides, consisting of "dots" and "previous"/"next" buttons, used for changing slides.
17
+ * shown below the slides, consisting of "dots" and "previous"/"next" buttons, used for changing slides; this navigation
18
+ * section must be present _before_ the slides in DOM order, even though it is visually shown below the slides.
18
19
  *
19
20
  * The currently shown slide can also be changed using the left/right arrow keys or by dragging on a touch device.
20
21
  *
@@ -22,27 +23,30 @@ type CarouselProps = {
22
23
  *
23
24
  * @example
24
25
  * <Carousel>
26
+ * <Carousel.Navigation />
25
27
  * <Carousel.Slider>
26
28
  * <Carousel.Slide>...</Carousel.Slide>
27
29
  * <Carousel.Slide>...</Carousel.Slide>
28
30
  * <Carousel.Slide>...</Carousel.Slide>
29
31
  * </Carousel.Slider>
30
- * <Carousel.Navigation />
31
32
  * </Carousel>
32
33
  */
33
34
  export declare const Carousel: PolymorphicForwardRefComponent<"section", CarouselProps> & {
34
- Slider: PolymorphicForwardRefComponent<"ol", {}>;
35
- Slide: PolymorphicForwardRefComponent<"li", {
35
+ Slider: PolymorphicForwardRefComponent<"div", {}>;
36
+ Slide: PolymorphicForwardRefComponent<"div", {
36
37
  index?: number | undefined;
37
38
  }>;
38
- Navigation: PolymorphicForwardRefComponent<"nav", {}> & {
39
+ /**
40
+ * Contains the dots and previous/next buttons for navigating the slides. Must be present _before_ the slides in DOM.
41
+ */
42
+ Navigation: PolymorphicForwardRefComponent<"div", {}> & {
39
43
  PreviousButton: PolymorphicForwardRefComponent<"button", Omit<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
40
44
  ref?: ((instance: HTMLButtonElement | null) => void) | React.RefObject<HTMLButtonElement> | null | undefined;
41
45
  }, "label" | "as" | "size" | "htmlDisabled" | "styleType" | "isActive" | "iconProps"> & {
42
46
  isActive?: boolean | undefined;
43
47
  label?: React.ReactNode;
44
48
  iconProps?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement> | undefined;
45
- } & Omit<import("../Buttons/Button/Button.js").ButtonProps, "startIcon" | "endIcon" | "labelProps" | "startIconProps" | "endIconProps"> & {
49
+ } & Omit<import("../Buttons/Button.js").ButtonProps, "startIcon" | "endIcon" | "labelProps" | "startIconProps" | "endIconProps"> & {
46
50
  as?: "button" | undefined;
47
51
  }>;
48
52
  NextButton: PolymorphicForwardRefComponent<"button", Omit<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
@@ -51,10 +55,13 @@ export declare const Carousel: PolymorphicForwardRefComponent<"section", Carouse
51
55
  isActive?: boolean | undefined;
52
56
  label?: React.ReactNode;
53
57
  iconProps?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement> | undefined;
54
- } & Omit<import("../Buttons/Button/Button.js").ButtonProps, "startIcon" | "endIcon" | "labelProps" | "startIconProps" | "endIconProps"> & {
58
+ } & Omit<import("../Buttons/Button.js").ButtonProps, "startIcon" | "endIcon" | "labelProps" | "startIconProps" | "endIconProps"> & {
55
59
  as?: "button" | undefined;
56
60
  }>;
57
61
  };
62
+ /**
63
+ * Contains the dots for activating the slides. Must be present _before_ the slides in DOM.
64
+ */
58
65
  DotsList: PolymorphicForwardRefComponent<"div", {
59
66
  length?: number | undefined;
60
67
  currentIndex?: number | undefined;
@@ -38,42 +38,9 @@ const CarouselComponent = React.forwardRef((props, ref) => {
38
38
  scrollToSlide.current(userActiveIndex, {
39
39
  instant: justMounted.current,
40
40
  });
41
- // re-focus the carousel for keyboard nav, but not on first mount
42
- // because it shows outline and might interfere with other components
43
- if (!justMounted.current) {
44
- carouselRef.current?.focus({ preventScroll: true });
45
- }
46
41
  justMounted.current = false;
47
42
  }, [userActiveIndex]);
48
43
  const [slideCount, setSlideCount] = React.useState(0);
49
- const [keysPressed, setKeysPressed] = React.useState({});
50
- const handleKeyDown = (event) => {
51
- if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {
52
- return;
53
- }
54
- const key = event.key;
55
- if (key === 'ArrowLeft' || key === 'ArrowRight') {
56
- setKeysPressed((old) => ({ ...old, [key]: true }));
57
- }
58
- };
59
- const handleKeyUp = (event) => {
60
- switch (event.key) {
61
- case 'ArrowLeft': {
62
- setKeysPressed((old) => ({ ...old, ArrowLeft: false }));
63
- const prevIndex = (slideCount + currentIndex - 1) % slideCount;
64
- scrollToSlide.current(prevIndex);
65
- setCurrentIndex(prevIndex);
66
- break;
67
- }
68
- case 'ArrowRight': {
69
- setKeysPressed((old) => ({ ...old, ArrowRight: false }));
70
- const nextIndex = (slideCount + currentIndex + 1) % slideCount;
71
- scrollToSlide.current(nextIndex);
72
- setCurrentIndex(nextIndex);
73
- break;
74
- }
75
- }
76
- };
77
44
  const userOnSlideChange = (0, index_js_1.useLatestRef)(onSlideChange);
78
45
  React.useEffect(() => {
79
46
  userOnSlideChange.current?.(currentIndex);
@@ -83,9 +50,6 @@ const CarouselComponent = React.forwardRef((props, ref) => {
83
50
  {
84
51
  as: 'section',
85
52
  'aria-roledescription': 'carousel',
86
- tabIndex: 0,
87
- onKeyDown: handleKeyDown,
88
- onKeyUp: handleKeyUp,
89
53
  ref: refs,
90
54
  className: (0, classnames_1.default)('iui-carousel', className),
91
55
  ...rest,
@@ -99,7 +63,6 @@ const CarouselComponent = React.forwardRef((props, ref) => {
99
63
  setCurrentIndex,
100
64
  slideCount,
101
65
  setSlideCount,
102
- keysPressed,
103
66
  idPrefix: id,
104
67
  isManuallyUpdating,
105
68
  scrollToSlide,
@@ -111,7 +74,8 @@ const CarouselComponent = React.forwardRef((props, ref) => {
111
74
  });
112
75
  /**
113
76
  * The Carousel component consists of a set of slides, normally displayed one at a time. A navigation section is
114
- * located below the slides, consisting of "dots" and "previous"/"next" buttons, used for changing slides.
77
+ * shown below the slides, consisting of "dots" and "previous"/"next" buttons, used for changing slides; this navigation
78
+ * section must be present _before_ the slides in DOM order, even though it is visually shown below the slides.
115
79
  *
116
80
  * The currently shown slide can also be changed using the left/right arrow keys or by dragging on a touch device.
117
81
  *
@@ -119,18 +83,24 @@ const CarouselComponent = React.forwardRef((props, ref) => {
119
83
  *
120
84
  * @example
121
85
  * <Carousel>
86
+ * <Carousel.Navigation />
122
87
  * <Carousel.Slider>
123
88
  * <Carousel.Slide>...</Carousel.Slide>
124
89
  * <Carousel.Slide>...</Carousel.Slide>
125
90
  * <Carousel.Slide>...</Carousel.Slide>
126
91
  * </Carousel.Slider>
127
- * <Carousel.Navigation />
128
92
  * </Carousel>
129
93
  */
130
94
  exports.Carousel = Object.assign(CarouselComponent, {
131
95
  Slider: CarouselSlider_js_1.CarouselSlider,
132
96
  Slide: CarouselSlide_js_1.CarouselSlide,
97
+ /**
98
+ * Contains the dots and previous/next buttons for navigating the slides. Must be present _before_ the slides in DOM.
99
+ */
133
100
  Navigation: CarouselNavigation_js_1.CarouselNavigation,
101
+ /**
102
+ * Contains the dots for activating the slides. Must be present _before_ the slides in DOM.
103
+ */
134
104
  DotsList: CarouselDotsList_js_1.CarouselDotsList,
135
105
  Dot: CarouselDot_js_1.CarouselDot,
136
106
  });
@@ -16,10 +16,6 @@ export declare const CarouselContext: React.Context<{
16
16
  * State updater for slideCount.
17
17
  */
18
18
  setSlideCount: (length: number | ((old: number) => void)) => void;
19
- /**
20
- * Stateful value of the left/right arrow keys currently pressed.
21
- */
22
- keysPressed: Record<string, boolean>;
23
19
  /**
24
20
  * Prefix used for setting id for internal carousel components.
25
21
  */
@@ -17,7 +17,7 @@ exports.CarouselDot = React.forwardRef((props, ref) => {
17
17
  const { isActive, isSmaller, isSmall, className, ...rest } = props;
18
18
  return React.createElement(index_js_1.ButtonBase, {
19
19
  role: 'tab',
20
- tabIndex: -1,
20
+ tabIndex: isActive ? 0 : -1,
21
21
  className: (0, classnames_1.default)(
22
22
  'iui-carousel-navigation-dot',
23
23
  {
@@ -53,6 +53,7 @@ exports.CarouselDotsList = React.forwardRef((props, ref) => {
53
53
  context.setCurrentIndex(index);
54
54
  context.scrollToSlide.current(index);
55
55
  }
56
+ listRef.current?.children[index]?.focus();
56
57
  onSlideChange?.(index);
57
58
  },
58
59
  [context, onSlideChange],
@@ -105,13 +106,12 @@ exports.CarouselDotsList = React.forwardRef((props, ref) => {
105
106
  index < firstVisibleDotIndex || index > lastVisibleDotIndex;
106
107
  return React.createElement(CarouselDot_js_1.CarouselDot, {
107
108
  key: index,
108
- 'aria-label': `Slide ${index}`,
109
+ 'aria-label': `Slide ${index + 1}`,
109
110
  isActive: index === currentIndex,
110
111
  onClick: () => handleSlideChange(index),
111
112
  isSmall: isSecondSmallDot,
112
113
  isSmaller: isFirstSmallDot || isClipped,
113
114
  id: idPrefix && `${idPrefix}--dot-${index}`,
114
- 'aria-controls': idPrefix && `${idPrefix}--slide-${index}`,
115
115
  });
116
116
  });
117
117
  }, [
@@ -138,6 +138,27 @@ exports.CarouselDotsList = React.forwardRef((props, ref) => {
138
138
  justMounted.current = false;
139
139
  }
140
140
  }, [currentIndex, firstVisibleDotIndex, slideCount, visibleCount, width]);
141
+ const handleKeyDown = (event) => {
142
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {
143
+ return;
144
+ }
145
+ const key = event.key;
146
+ if (key === 'ArrowLeft' || key === 'ArrowRight') {
147
+ event.preventDefault();
148
+ }
149
+ };
150
+ const handleKeyUp = (event) => {
151
+ switch (event.key) {
152
+ case 'ArrowLeft': {
153
+ handleSlideChange((slideCount + currentIndex - 1) % slideCount);
154
+ break;
155
+ }
156
+ case 'ArrowRight': {
157
+ handleSlideChange((slideCount + currentIndex + 1) % slideCount);
158
+ break;
159
+ }
160
+ }
161
+ };
141
162
  return React.createElement(
142
163
  React.Fragment,
143
164
  null,
@@ -151,6 +172,9 @@ exports.CarouselDotsList = React.forwardRef((props, ref) => {
151
172
  role: 'tablist',
152
173
  'aria-label': 'Slides',
153
174
  ref: refs,
175
+ onKeyDown: handleKeyDown,
176
+ onKeyUp: handleKeyUp,
177
+ tabIndex: -1,
154
178
  ...rest,
155
179
  },
156
180
  children ?? dots,