@carbon/ibm-products 2.26.0 → 2.28.0-alpha.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (391) hide show
  1. package/css/index-full-carbon.css +700 -163
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +85 -22
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +700 -163
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +660 -152
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/_virtual/index.js +2 -2
  18. package/es/components/APIKeyModal/APIKeyModal.js +1 -1
  19. package/es/components/AboutModal/AboutModal.js +1 -1
  20. package/es/components/ActionBar/ActionBar.js +1 -1
  21. package/es/components/ActionBar/ActionBarItem.js +1 -1
  22. package/es/components/ActionBar/ActionBarOverflowItems.js +1 -1
  23. package/es/components/ActionSet/ActionSet.js +1 -1
  24. package/es/components/AddSelect/AddSelectBody.js +1 -1
  25. package/es/components/AddSelect/AddSelectBreadcrumbs.js +1 -1
  26. package/es/components/AddSelect/AddSelectFilter.js +1 -1
  27. package/es/components/AddSelect/AddSelectList.js +1 -1
  28. package/es/components/AddSelect/AddSelectRow.js +1 -1
  29. package/es/components/BigNumbers/BigNumbers.d.ts +11 -0
  30. package/es/components/BigNumbers/BigNumbers.js +238 -0
  31. package/es/components/BigNumbers/constants.d.ts +13 -0
  32. package/es/components/BigNumbers/constants.js +67 -0
  33. package/es/components/BigNumbers/index.d.ts +1 -0
  34. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +1 -1
  35. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +1 -1
  36. package/es/components/Card/Card.js +1 -1
  37. package/es/components/Card/CardFooter.js +1 -1
  38. package/es/components/Card/CardHeader.js +1 -1
  39. package/es/components/Carousel/Carousel.js +1 -1
  40. package/es/components/Carousel/CarouselItem.js +1 -1
  41. package/es/components/Cascade/Cascade.js +1 -1
  42. package/es/components/Checklist/Checklist.js +1 -1
  43. package/es/components/Checklist/ChecklistChart.js +1 -1
  44. package/es/components/Checklist/ChecklistIcon.js +1 -1
  45. package/es/components/Coachmark/Coachmark.js +1 -1
  46. package/es/components/Coachmark/CoachmarkDragbar.js +1 -1
  47. package/es/components/Coachmark/CoachmarkHeader.js +1 -1
  48. package/es/components/Coachmark/CoachmarkOverlay.js +1 -1
  49. package/es/components/Coachmark/CoachmarkTagline.js +1 -1
  50. package/es/components/CoachmarkBeacon/CoachmarkBeacon.js +1 -1
  51. package/es/components/CoachmarkButton/CoachmarkButton.js +1 -1
  52. package/es/components/CoachmarkFixed/CoachmarkFixed.js +1 -1
  53. package/es/components/CoachmarkOverlayElement/CoachmarkOverlayElement.js +1 -1
  54. package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +1 -1
  55. package/es/components/CoachmarkStack/CoachmarkStack.js +1 -1
  56. package/es/components/CoachmarkStack/CoachmarkStackHome.js +1 -1
  57. package/es/components/ComboButton/ComboButton.js +1 -1
  58. package/es/components/CreateFullPage/CreateFullPage.js +1 -1
  59. package/es/components/CreateFullPage/CreateFullPageStep.js +1 -1
  60. package/es/components/CreateInfluencer/CreateInfluencer.js +1 -1
  61. package/es/components/CreateModal/CreateModal.js +1 -1
  62. package/es/components/CreateSidePanel/CreateSidePanel.js +1 -1
  63. package/es/components/CreateTearsheet/CreateTearsheet.js +8 -2
  64. package/es/components/CreateTearsheet/CreateTearsheetDivider.js +1 -1
  65. package/es/components/CreateTearsheet/CreateTearsheetStep.js +1 -1
  66. package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +1 -1
  67. package/es/components/DataSpreadsheet/DataSpreadsheet.js +1 -1
  68. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +5 -4
  69. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +4 -3
  70. package/es/components/DataSpreadsheet/utils/checkForHoldingKey.d.ts +1 -0
  71. package/es/components/DataSpreadsheet/utils/checkForHoldingKey.js +17 -0
  72. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -3
  73. package/es/components/Datagrid/Datagrid/DatagridContent.d.ts +3 -1
  74. package/es/components/Datagrid/Datagrid/DatagridContent.js +7 -3
  75. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +8 -4
  76. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +9 -5
  77. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +1 -1
  78. package/es/components/Datagrid/Datagrid/DatagridRow.js +19 -15
  79. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +1 -1
  80. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +1 -1
  81. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +1 -1
  82. package/es/components/Datagrid/Datagrid/DatagridToolbar.d.ts +10 -1
  83. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +22 -5
  84. package/es/components/Datagrid/Datagrid/DraggableElement.js +1 -1
  85. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -1
  86. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +1 -1
  87. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +1 -1
  88. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +39 -16
  89. package/es/components/Datagrid/Datagrid/addons/Filtering/constants.d.ts +4 -1
  90. package/es/components/Datagrid/Datagrid/addons/Filtering/constants.js +5 -1
  91. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +102 -6
  92. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +12 -1
  93. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -1
  94. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +1 -1
  95. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +1 -1
  96. package/es/components/Datagrid/Datagrid/addons/stateReducer.js +1 -1
  97. package/es/components/Datagrid/useActionsColumn.js +1 -1
  98. package/es/components/Datagrid/useColumnCenterAlign.js +1 -1
  99. package/es/components/Datagrid/useColumnRightAlign.js +1 -1
  100. package/es/components/Datagrid/useDefaultStringRenderer.js +1 -1
  101. package/es/components/Datagrid/useFiltering.js +48 -47
  102. package/es/components/Datagrid/useFloatingScroll.js +1 -1
  103. package/es/components/Datagrid/useInlineEdit.js +1 -1
  104. package/es/components/Datagrid/useNestedRowExpander.js +1 -1
  105. package/es/components/Datagrid/useNestedRows.js +1 -1
  106. package/es/components/Datagrid/useRowExpander.js +1 -1
  107. package/es/components/Datagrid/useSelectAllToggle.js +6 -4
  108. package/es/components/Datagrid/useSelectRows.js +2 -2
  109. package/es/components/Datagrid/useSortableColumns.js +1 -1
  110. package/es/components/Datagrid/useStickyColumn.js +1 -1
  111. package/es/components/DelimitedList/DelimitedList.js +1 -1
  112. package/es/components/EditFullPage/EditFullPage.js +1 -1
  113. package/es/components/EditInPlace/EditInPlace.js +1 -1
  114. package/es/components/EditSidePanel/EditSidePanel.js +1 -1
  115. package/es/components/EditTearsheet/EditTearsheet.js +1 -1
  116. package/es/components/EditTearsheet/EditTearsheetForm.js +1 -1
  117. package/es/components/EditTearsheetNarrow/EditTearsheetNarrow.js +1 -1
  118. package/es/components/EditUpdateCards/EditUpdateCards.js +1 -1
  119. package/es/components/EmptyStates/EmptyState.js +1 -1
  120. package/es/components/EmptyStates/EmptyStateContent.js +1 -1
  121. package/es/components/EmptyStates/EmptyStateV2.js +1 -1
  122. package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
  123. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
  124. package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
  125. package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
  126. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
  127. package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
  128. package/es/components/EmptyStates/assets/ErrorIllustration.js +1 -1
  129. package/es/components/EmptyStates/assets/NoDataIllustration.js +1 -1
  130. package/es/components/EmptyStates/assets/NoTagsIllustration.js +1 -1
  131. package/es/components/EmptyStates/assets/NotFoundIllustration.js +1 -1
  132. package/es/components/EmptyStates/assets/NotificationsIllustration.js +1 -1
  133. package/es/components/EmptyStates/assets/UnauthorizedIllustration.js +1 -1
  134. package/es/components/ExportModal/ExportModal.js +1 -1
  135. package/es/components/FilterSummary/FilterSummary.js +1 -1
  136. package/es/components/FullPageError/FullPageError.js +1 -1
  137. package/es/components/Guidebanner/Guidebanner.js +1 -1
  138. package/es/components/Guidebanner/GuidebannerElement.js +1 -1
  139. package/es/components/Guidebanner/GuidebannerElementButton.js +1 -1
  140. package/es/components/Guidebanner/GuidebannerElementLink.js +1 -1
  141. package/es/components/HTTPErrors/HTTPError403/HTTPError403.js +1 -1
  142. package/es/components/HTTPErrors/HTTPError404/HTTPError404.js +1 -1
  143. package/es/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +1 -1
  144. package/es/components/ImportModal/ImportModal.js +1 -1
  145. package/es/components/InlineTip/InlineTip.js +1 -1
  146. package/es/components/InlineTip/InlineTipButton.js +1 -1
  147. package/es/components/InlineTip/InlineTipLink.js +1 -1
  148. package/es/components/InterstitialScreen/InterstitialScreen.js +1 -1
  149. package/es/components/InterstitialScreenView/InterstitialScreenView.js +1 -1
  150. package/es/components/InterstitialScreenViewModule/InterstitialScreenViewModule.js +1 -1
  151. package/es/components/NonLinearReading/NonLinearReading.js +1 -1
  152. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  153. package/es/components/OptionsTile/OptionsTile.js +1 -1
  154. package/es/components/PageHeader/PageHeader.js +1 -1
  155. package/es/components/PageHeader/PageHeaderTitle.js +1 -1
  156. package/es/components/PageHeader/PageHeaderUtils.js +1 -1
  157. package/es/components/RemoveModal/RemoveModal.js +1 -1
  158. package/es/components/Saving/Saving.js +1 -1
  159. package/es/components/SearchBar/SearchBar.js +1 -1
  160. package/es/components/SidePanel/SidePanel.js +14 -7
  161. package/es/components/SidePanel/motion/variants.d.ts +39 -12
  162. package/es/components/SidePanel/motion/variants.js +42 -11
  163. package/es/components/SimpleHeader/SimpleHeader.js +1 -1
  164. package/es/components/StatusIcon/StatusIcon.js +1 -1
  165. package/es/components/SteppedAnimatedMedia/SteppedAnimatedMedia.js +1 -1
  166. package/es/components/StringFormatter/StringFormatter.d.ts +6 -0
  167. package/es/components/StringFormatter/StringFormatter.js +79 -0
  168. package/es/components/StringFormatter/index.d.ts +1 -0
  169. package/es/components/StringFormatter/utils/enums.d.ts +14 -0
  170. package/es/components/StringFormatter/utils/enums.js +23 -0
  171. package/es/components/TagSet/TagSet.js +1 -1
  172. package/es/components/TagSet/TagSetModal.js +1 -1
  173. package/es/components/TagSet/TagSetOverflow.js +1 -1
  174. package/es/components/Tearsheet/TearsheetShell.js +13 -8
  175. package/es/components/Toolbar/Toolbar.js +1 -1
  176. package/es/components/Toolbar/ToolbarButton.js +1 -1
  177. package/es/components/Toolbar/ToolbarGroup.js +1 -1
  178. package/es/components/TooltipTrigger/TooltipTrigger.js +1 -1
  179. package/es/components/TruncatedList/TruncatedList.js +1 -1
  180. package/es/components/UserAvatar/UserAvatar.js +59 -43
  181. package/es/components/UserProfileImage/UserProfileImage.js +1 -1
  182. package/es/components/WebTerminal/WebTerminal.js +1 -1
  183. package/es/components/WebTerminal/WebTerminalContentWrapper.js +1 -1
  184. package/es/components/_Canary/Canary.js +1 -1
  185. package/es/components/index.d.ts +2 -0
  186. package/es/global/js/hooks/index.d.ts +1 -0
  187. package/es/global/js/hooks/useIsomorphicEffect.d.ts +2 -0
  188. package/es/global/js/hooks/useIsomorphicEffect.js +14 -0
  189. package/es/global/js/package-settings.d.ts +2 -0
  190. package/es/global/js/package-settings.js +2 -0
  191. package/es/index.js +2 -0
  192. package/es/node_modules/prop-types/index.js +1 -1
  193. package/es/settings.d.ts +2 -0
  194. package/lib/_virtual/index.js +2 -2
  195. package/lib/components/APIKeyModal/APIKeyModal.js +50 -49
  196. package/lib/components/AboutModal/AboutModal.js +17 -16
  197. package/lib/components/ActionBar/ActionBar.js +16 -15
  198. package/lib/components/ActionBar/ActionBarItem.js +8 -7
  199. package/lib/components/ActionBar/ActionBarOverflowItems.js +9 -8
  200. package/lib/components/ActionSet/ActionSet.js +4 -3
  201. package/lib/components/AddSelect/AddSelectBody.js +67 -66
  202. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +7 -6
  203. package/lib/components/AddSelect/AddSelectFilter.js +19 -18
  204. package/lib/components/AddSelect/AddSelectList.js +7 -6
  205. package/lib/components/AddSelect/AddSelectRow.js +33 -32
  206. package/lib/components/BigNumbers/BigNumbers.d.ts +11 -0
  207. package/lib/components/BigNumbers/BigNumbers.js +245 -0
  208. package/lib/components/BigNumbers/constants.d.ts +13 -0
  209. package/lib/components/BigNumbers/constants.js +76 -0
  210. package/lib/components/BigNumbers/index.d.ts +1 -0
  211. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +20 -19
  212. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +3 -2
  213. package/lib/components/Card/Card.js +5 -4
  214. package/lib/components/Card/CardFooter.js +22 -21
  215. package/lib/components/Card/CardHeader.js +27 -26
  216. package/lib/components/Carousel/Carousel.js +13 -12
  217. package/lib/components/Carousel/CarouselItem.js +6 -5
  218. package/lib/components/Cascade/Cascade.js +9 -8
  219. package/lib/components/Checklist/Checklist.js +33 -32
  220. package/lib/components/Checklist/ChecklistChart.js +7 -6
  221. package/lib/components/Checklist/ChecklistIcon.js +7 -6
  222. package/lib/components/Coachmark/Coachmark.js +21 -20
  223. package/lib/components/Coachmark/CoachmarkDragbar.js +10 -9
  224. package/lib/components/Coachmark/CoachmarkHeader.js +8 -7
  225. package/lib/components/Coachmark/CoachmarkOverlay.js +10 -9
  226. package/lib/components/Coachmark/CoachmarkTagline.js +8 -7
  227. package/lib/components/CoachmarkBeacon/CoachmarkBeacon.js +7 -6
  228. package/lib/components/CoachmarkButton/CoachmarkButton.js +6 -5
  229. package/lib/components/CoachmarkFixed/CoachmarkFixed.js +11 -10
  230. package/lib/components/CoachmarkOverlayElement/CoachmarkOverlayElement.js +8 -7
  231. package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +16 -15
  232. package/lib/components/CoachmarkStack/CoachmarkStack.js +20 -19
  233. package/lib/components/CoachmarkStack/CoachmarkStackHome.js +17 -16
  234. package/lib/components/ComboButton/ComboButton.js +7 -6
  235. package/lib/components/CreateFullPage/CreateFullPage.js +29 -28
  236. package/lib/components/CreateFullPage/CreateFullPageStep.js +18 -17
  237. package/lib/components/CreateInfluencer/CreateInfluencer.js +13 -12
  238. package/lib/components/CreateModal/CreateModal.js +16 -15
  239. package/lib/components/CreateSidePanel/CreateSidePanel.js +21 -20
  240. package/lib/components/CreateTearsheet/CreateTearsheet.js +27 -20
  241. package/lib/components/CreateTearsheet/CreateTearsheetDivider.js +5 -4
  242. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +19 -18
  243. package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +21 -20
  244. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +22 -21
  245. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +60 -58
  246. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +42 -40
  247. package/lib/components/DataSpreadsheet/utils/checkForHoldingKey.d.ts +1 -0
  248. package/lib/components/DataSpreadsheet/utils/checkForHoldingKey.js +21 -0
  249. package/lib/components/Datagrid/Datagrid/Datagrid.js +15 -7
  250. package/lib/components/Datagrid/Datagrid/DatagridContent.d.ts +3 -1
  251. package/lib/components/Datagrid/Datagrid/DatagridContent.js +37 -32
  252. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +8 -3
  253. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +14 -9
  254. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +3 -2
  255. package/lib/components/Datagrid/Datagrid/DatagridRow.js +20 -15
  256. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +4 -3
  257. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +14 -13
  258. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +3 -2
  259. package/lib/components/Datagrid/Datagrid/DatagridToolbar.d.ts +10 -1
  260. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +24 -6
  261. package/lib/components/Datagrid/Datagrid/DraggableElement.js +13 -12
  262. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +15 -14
  263. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +25 -24
  264. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +27 -26
  265. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +37 -14
  266. package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.d.ts +4 -1
  267. package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.js +6 -0
  268. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +98 -2
  269. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +11 -0
  270. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +15 -14
  271. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +20 -19
  272. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +9 -8
  273. package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +1 -1
  274. package/lib/components/Datagrid/useActionsColumn.js +7 -6
  275. package/lib/components/Datagrid/useColumnCenterAlign.js +3 -2
  276. package/lib/components/Datagrid/useColumnRightAlign.js +3 -2
  277. package/lib/components/Datagrid/useDefaultStringRenderer.js +4 -3
  278. package/lib/components/Datagrid/useFiltering.js +46 -45
  279. package/lib/components/Datagrid/useFloatingScroll.js +6 -2
  280. package/lib/components/Datagrid/useInlineEdit.js +4 -3
  281. package/lib/components/Datagrid/useNestedRowExpander.js +4 -3
  282. package/lib/components/Datagrid/useNestedRows.js +6 -2
  283. package/lib/components/Datagrid/useRowExpander.js +3 -2
  284. package/lib/components/Datagrid/useSelectAllToggle.js +7 -4
  285. package/lib/components/Datagrid/useSelectRows.js +5 -4
  286. package/lib/components/Datagrid/useSortableColumns.js +3 -2
  287. package/lib/components/Datagrid/useStickyColumn.js +4 -3
  288. package/lib/components/DelimitedList/DelimitedList.js +8 -7
  289. package/lib/components/EditFullPage/EditFullPage.js +6 -5
  290. package/lib/components/EditInPlace/EditInPlace.js +23 -22
  291. package/lib/components/EditSidePanel/EditSidePanel.js +23 -22
  292. package/lib/components/EditTearsheet/EditTearsheet.js +18 -17
  293. package/lib/components/EditTearsheet/EditTearsheetForm.js +11 -10
  294. package/lib/components/EditTearsheetNarrow/EditTearsheetNarrow.js +6 -5
  295. package/lib/components/EditUpdateCards/EditUpdateCards.js +31 -30
  296. package/lib/components/EmptyStates/EmptyState.js +20 -19
  297. package/lib/components/EmptyStates/EmptyStateContent.js +16 -15
  298. package/lib/components/EmptyStates/EmptyStateV2.js +20 -19
  299. package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +18 -17
  300. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +18 -17
  301. package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +18 -17
  302. package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +18 -17
  303. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +18 -17
  304. package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +18 -17
  305. package/lib/components/EmptyStates/assets/ErrorIllustration.js +7 -6
  306. package/lib/components/EmptyStates/assets/NoDataIllustration.js +7 -6
  307. package/lib/components/EmptyStates/assets/NoTagsIllustration.js +7 -6
  308. package/lib/components/EmptyStates/assets/NotFoundIllustration.js +7 -6
  309. package/lib/components/EmptyStates/assets/NotificationsIllustration.js +7 -6
  310. package/lib/components/EmptyStates/assets/UnauthorizedIllustration.js +7 -6
  311. package/lib/components/ExportModal/ExportModal.js +30 -29
  312. package/lib/components/FilterSummary/FilterSummary.js +13 -12
  313. package/lib/components/FullPageError/FullPageError.js +13 -12
  314. package/lib/components/Guidebanner/Guidebanner.js +20 -19
  315. package/lib/components/Guidebanner/GuidebannerElement.js +8 -7
  316. package/lib/components/Guidebanner/GuidebannerElementButton.js +8 -7
  317. package/lib/components/Guidebanner/GuidebannerElementLink.js +6 -5
  318. package/lib/components/HTTPErrors/HTTPError403/HTTPError403.js +11 -10
  319. package/lib/components/HTTPErrors/HTTPError404/HTTPError404.js +11 -10
  320. package/lib/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +11 -10
  321. package/lib/components/ImportModal/ImportModal.js +32 -31
  322. package/lib/components/InlineTip/InlineTip.js +21 -20
  323. package/lib/components/InlineTip/InlineTipButton.js +6 -5
  324. package/lib/components/InlineTip/InlineTipLink.js +6 -5
  325. package/lib/components/InterstitialScreen/InterstitialScreen.js +13 -12
  326. package/lib/components/InterstitialScreenView/InterstitialScreenView.js +7 -6
  327. package/lib/components/InterstitialScreenViewModule/InterstitialScreenViewModule.js +7 -6
  328. package/lib/components/NonLinearReading/NonLinearReading.js +9 -8
  329. package/lib/components/NotificationsPanel/NotificationsPanel.js +59 -58
  330. package/lib/components/OptionsTile/OptionsTile.js +21 -20
  331. package/lib/components/PageHeader/PageHeader.js +74 -73
  332. package/lib/components/PageHeader/PageHeaderTitle.js +21 -20
  333. package/lib/components/PageHeader/PageHeaderUtils.js +3 -2
  334. package/lib/components/RemoveModal/RemoveModal.js +22 -21
  335. package/lib/components/Saving/Saving.js +18 -17
  336. package/lib/components/SearchBar/SearchBar.js +20 -19
  337. package/lib/components/SidePanel/SidePanel.js +58 -50
  338. package/lib/components/SidePanel/motion/variants.d.ts +39 -12
  339. package/lib/components/SidePanel/motion/variants.js +42 -10
  340. package/lib/components/SimpleHeader/SimpleHeader.js +17 -16
  341. package/lib/components/StatusIcon/StatusIcon.js +9 -8
  342. package/lib/components/SteppedAnimatedMedia/SteppedAnimatedMedia.js +7 -6
  343. package/lib/components/StringFormatter/StringFormatter.d.ts +6 -0
  344. package/lib/components/StringFormatter/StringFormatter.js +86 -0
  345. package/lib/components/StringFormatter/index.d.ts +1 -0
  346. package/lib/components/StringFormatter/utils/enums.d.ts +14 -0
  347. package/lib/components/StringFormatter/utils/enums.js +27 -0
  348. package/lib/components/TagSet/TagSet.js +21 -20
  349. package/lib/components/TagSet/TagSetModal.js +13 -12
  350. package/lib/components/TagSet/TagSetOverflow.js +18 -17
  351. package/lib/components/Tearsheet/TearsheetShell.js +42 -36
  352. package/lib/components/Toolbar/Toolbar.js +7 -6
  353. package/lib/components/Toolbar/ToolbarButton.js +9 -8
  354. package/lib/components/Toolbar/ToolbarGroup.js +6 -5
  355. package/lib/components/TooltipTrigger/TooltipTrigger.js +6 -5
  356. package/lib/components/TruncatedList/TruncatedList.js +14 -13
  357. package/lib/components/UserAvatar/UserAvatar.js +61 -44
  358. package/lib/components/UserProfileImage/UserProfileImage.js +3 -2
  359. package/lib/components/WebTerminal/WebTerminal.js +14 -13
  360. package/lib/components/WebTerminal/WebTerminalContentWrapper.js +5 -4
  361. package/lib/components/_Canary/Canary.js +6 -5
  362. package/lib/components/index.d.ts +2 -0
  363. package/lib/global/js/hooks/index.d.ts +1 -0
  364. package/lib/global/js/hooks/useIsomorphicEffect.d.ts +2 -0
  365. package/lib/global/js/hooks/useIsomorphicEffect.js +18 -0
  366. package/lib/global/js/package-settings.d.ts +2 -0
  367. package/lib/global/js/package-settings.js +2 -0
  368. package/lib/index.js +10 -0
  369. package/lib/node_modules/prop-types/index.js +1 -1
  370. package/lib/settings.d.ts +2 -0
  371. package/package.json +8 -7
  372. package/scss/components/BigNumbers/_big-numbers.scss +151 -0
  373. package/scss/components/BigNumbers/_carbon-imports.scss +11 -0
  374. package/scss/components/BigNumbers/_index-with-carbon.scss +9 -0
  375. package/scss/components/BigNumbers/_index.scss +8 -0
  376. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +0 -1
  377. package/scss/components/Datagrid/styles/_datagrid.scss +61 -4
  378. package/scss/components/FullPageError/_full-page-error.scss +2 -2
  379. package/scss/components/SidePanel/_side-panel.scss +9 -2
  380. package/scss/components/StringFormatter/_carbon-imports.scss +10 -0
  381. package/scss/components/StringFormatter/_index-with-carbon.scss +9 -0
  382. package/scss/components/StringFormatter/_index.scss +8 -0
  383. package/scss/components/StringFormatter/_string-formatter.scss +97 -0
  384. package/scss/components/Tearsheet/_tearsheet.scss +38 -7
  385. package/scss/components/UserAvatar/_user-avatar.scss +40 -0
  386. package/scss/components/_index-with-carbon.scss +2 -0
  387. package/scss/components/_index.scss +2 -0
  388. package/es/_virtual/index2.js +0 -10
  389. package/es/node_modules/classnames/index.js +0 -70
  390. package/lib/_virtual/index2.js +0 -14
  391. package/lib/node_modules/classnames/index.js +0 -74
@@ -8,7 +8,7 @@
8
8
  import { extends as _extends, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default from 'react';
10
10
  import { TableBody } from '@carbon/react';
11
- import cx from '../../../node_modules/classnames/index.js';
11
+ import cx from 'classnames';
12
12
  import { pkg } from '../../../settings.js';
13
13
 
14
14
  var blockClass = "".concat(pkg.prefix, "--datagrid");
@@ -1,2 +1,11 @@
1
1
  export default DatagridToolbar;
2
- declare function DatagridToolbar(datagridState: any): import("react/jsx-runtime").JSX.Element | null;
2
+ declare function DatagridToolbar({ ariaToolbarLabel, ...datagridState }: {
3
+ [x: string]: any;
4
+ ariaToolbarLabel: any;
5
+ }): import("react/jsx-runtime").JSX.Element | null;
6
+ declare namespace DatagridToolbar {
7
+ namespace propTypes {
8
+ let ariaToolbarLabel: PropTypes.Requireable<string>;
9
+ }
10
+ }
11
+ import PropTypes from 'prop-types';
@@ -5,14 +5,16 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { slicedToArray as _slicedToArray, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
8
+ import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default, { useRef, useState, useEffect } from 'react';
10
+ import PropTypes from '../../../node_modules/prop-types/index.js';
10
11
  import { TableToolbar, TableBatchActions, TableBatchAction, MenuButton, MenuItem } from '@carbon/react';
11
12
  import { useResizeObserver } from '../../../global/js/hooks/useResizeObserver.js';
12
13
  import { pkg, carbon } from '../../../settings.js';
13
- import cx from '../../../node_modules/classnames/index.js';
14
+ import cx from 'classnames';
14
15
  import { handleSelectAllRowData } from './addons/stateReducer.js';
15
16
 
17
+ var _excluded = ["ariaToolbarLabel"];
16
18
  var blockClass = "".concat(pkg.prefix, "--datagrid__table-toolbar");
17
19
  var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridState, width, ref) {
18
20
  var _useState = useState(false),
@@ -107,6 +109,12 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
107
109
  }
108
110
  };
109
111
  var onCancelHandler = function onCancelHandler() {
112
+ handleSelectAllRowData({
113
+ dispatch: dispatch,
114
+ rows: [],
115
+ getRowId: getRowId,
116
+ isChecked: false
117
+ });
110
118
  toggleAllRowsSelected(false);
111
119
  setGlobalFilter(null);
112
120
  };
@@ -144,7 +152,9 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
144
152
  }
145
153
  })), renderBatchActionOverflow());
146
154
  };
147
- var DatagridToolbar = function DatagridToolbar(datagridState) {
155
+ var DatagridToolbar = function DatagridToolbar(_ref2) {
156
+ var ariaToolbarLabel = _ref2.ariaToolbarLabel,
157
+ datagridState = _objectWithoutProperties(_ref2, _excluded);
148
158
  var ref = useRef(null);
149
159
  var _useResizeObserver = useResizeObserver(ref),
150
160
  width = _useResizeObserver.width;
@@ -156,9 +166,16 @@ var DatagridToolbar = function DatagridToolbar(datagridState) {
156
166
  return batchActions && DatagridActions ? /*#__PURE__*/React__default.createElement("div", {
157
167
  ref: ref,
158
168
  className: cx([blockClass, "".concat(blockClass, "--").concat(getRowHeight)])
159
- }, /*#__PURE__*/React__default.createElement(TableToolbar, null, DatagridActions && /*#__PURE__*/React__default.createElement(DatagridActions, datagridState), DatagridBatchActionsToolbar && DatagridBatchActionsToolbar(datagridState, width, ref))) : DatagridActions ? /*#__PURE__*/React__default.createElement("div", {
169
+ }, /*#__PURE__*/React__default.createElement(TableToolbar, {
170
+ "aria-label": ariaToolbarLabel
171
+ }, DatagridActions && /*#__PURE__*/React__default.createElement(DatagridActions, datagridState), DatagridBatchActionsToolbar && DatagridBatchActionsToolbar(datagridState, width, ref))) : DatagridActions ? /*#__PURE__*/React__default.createElement("div", {
160
172
  className: blockClass
161
- }, /*#__PURE__*/React__default.createElement(TableToolbar, null, DatagridActions && /*#__PURE__*/React__default.createElement(DatagridActions, datagridState), DatagridBatchActions && DatagridBatchActions(datagridState))) : null;
173
+ }, /*#__PURE__*/React__default.createElement(TableToolbar, {
174
+ "aria-label": ariaToolbarLabel
175
+ }, DatagridActions && /*#__PURE__*/React__default.createElement(DatagridActions, datagridState), DatagridBatchActions && DatagridBatchActions(datagridState))) : null;
176
+ };
177
+ DatagridToolbar.propTypes = {
178
+ ariaToolbarLabel: PropTypes.string
162
179
  };
163
180
  var DatagridToolbar$1 = DatagridToolbar;
164
181
 
@@ -9,7 +9,7 @@ import { extends as _extends, defineProperty as _defineProperty } from '../../..
9
9
  import React__default from 'react';
10
10
  import PropTypes from '../../../node_modules/prop-types/index.js';
11
11
  import { Locked, Draggable } from '@carbon/react/icons';
12
- import cx from '../../../node_modules/classnames/index.js';
12
+ import cx from 'classnames';
13
13
  import { pkg } from '../../../settings.js';
14
14
  import { CSS } from '@dnd-kit/utilities';
15
15
  import { useSortable } from '@dnd-kit/sortable';
@@ -11,7 +11,7 @@ import PropTypes from '../../../../../node_modules/prop-types/index.js';
11
11
  import { Checkbox } from '@carbon/react';
12
12
  import update from 'immutability-helper';
13
13
  import { pkg } from '../../../../../settings.js';
14
- import cx from '../../../../../node_modules/classnames/index.js';
14
+ import cx from 'classnames';
15
15
  import { DraggableItemsList } from './DraggableItemsList.js';
16
16
  import uuidv4 from '../../../../../global/js/utils/uuidv4.js';
17
17
 
@@ -8,7 +8,7 @@
8
8
  import { slicedToArray as _slicedToArray, defineProperty as _defineProperty } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import { Filter } from '@carbon/react/icons';
10
10
  import { usePrefix, IconButton } from '@carbon/react';
11
- import cx from '../../../../../node_modules/classnames/index.js';
11
+ import cx from 'classnames';
12
12
  import PropTypes from '../../../../../node_modules/prop-types/index.js';
13
13
  import React__default, { useState, useRef, useEffect } from 'react';
14
14
  import { pkg } from '../../../../../settings.js';
@@ -13,7 +13,7 @@ import { panelVariants, innerContainerVariants, actionSetVariants } from './moti
13
13
  import { Close } from '@carbon/react/icons';
14
14
  import { FilterContext } from './FilterProvider.js';
15
15
  import PropTypes from '../../../../../node_modules/prop-types/index.js';
16
- import cx from '../../../../../node_modules/classnames/index.js';
16
+ import cx from 'classnames';
17
17
  import { motion, useReducedMotion } from 'framer-motion';
18
18
  import { pkg } from '../../../../../settings.js';
19
19
  import { rem } from '@carbon/layout';
@@ -6,9 +6,9 @@
6
6
  */
7
7
 
8
8
  import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, toConsumableArray as _toConsumableArray } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
9
- import React__default, { createContext, useState } from 'react';
9
+ import React__default, { createContext, useState, useReducer } from 'react';
10
10
  import PropTypes from '../../../../../node_modules/prop-types/index.js';
11
- import { DROPDOWN, RADIO, NUMBER, DATE, CHECKBOX, CLEAR_SINGLE_FILTER } from './constants.js';
11
+ import { DROPDOWN, RADIO, NUMBER, DATE, CHECKBOX, MULTISELECT, SAVED_FILTERS, CLEAR_SINGLE_FILTER } from './constants.js';
12
12
 
13
13
  var FilterContext = /*#__PURE__*/createContext();
14
14
  var EventEmitter = {
@@ -33,7 +33,7 @@ var removeFilterItem = function removeFilterItem(state, index) {
33
33
  return state.splice(index, 1);
34
34
  };
35
35
  var updateFilterState = function updateFilterState(state, type, value) {
36
- if (type === CHECKBOX) {
36
+ if (type === CHECKBOX || type === MULTISELECT) {
37
37
  return;
38
38
  }
39
39
  if (type === DATE) {
@@ -56,7 +56,7 @@ var clearSingleFilter = function clearSingleFilter(_ref, setAllFilters, state) {
56
56
  var filterValues = f.value;
57
57
  var filterType = f.type;
58
58
  updateFilterState(tempState, filterType, value);
59
- if (filterType === CHECKBOX) {
59
+ if (filterType === CHECKBOX || filterType === MULTISELECT) {
60
60
  /**
61
61
  When all checkboxes of a group are all unselected the value still exists in the filtersObjectArray
62
62
  This checks if all the checkboxes are selected = false and removes it from the array
@@ -122,15 +122,15 @@ var prepareFiltersForTags = function prepareFiltersForTags(filters, renderDateLa
122
122
  key: id,
123
123
  value: (_renderDateLabel = renderDateLabel === null || renderDateLabel === void 0 ? void 0 : renderDateLabel(startDate, endDate)) !== null && _renderDateLabel !== void 0 ? _renderDateLabel : formatDateRange(startDate, endDate)
124
124
  }, sharedFilterProps));
125
- } else if (type === CHECKBOX) {
126
- value.forEach(function (checkbox) {
127
- if (checkbox.selected) {
125
+ } else if (type === CHECKBOX || type === MULTISELECT) {
126
+ value.forEach(function (option) {
127
+ if (option.selected) {
128
128
  tags.push(_objectSpread2(_objectSpread2({
129
129
  key: id,
130
- value: checkbox.value
130
+ value: option.value
131
131
  }, sharedFilterProps), {}, {
132
132
  onClose: function onClose() {
133
- return handleSingleFilterRemoval(id, checkbox.value);
133
+ return handleSingleFilterRemoval(id, option.value);
134
134
  }
135
135
  }));
136
136
  }
@@ -139,22 +139,45 @@ var prepareFiltersForTags = function prepareFiltersForTags(filters, renderDateLa
139
139
  });
140
140
  return tags;
141
141
  };
142
- var FilterProvider = function FilterProvider(_ref3) {
143
- var children = _ref3.children,
144
- filters = _ref3.filters,
145
- filterProps = _ref3.filterProps;
146
- var _ref4 = filterProps || {},
147
- renderDateLabel = _ref4.renderDateLabel;
142
+ var filteringReducer = function filteringReducer(state, action) {
143
+ switch (action.type) {
144
+ case SAVED_FILTERS:
145
+ {
146
+ var _ref3 = action.payload || {},
147
+ savedFilters = _ref3.savedFilters;
148
+ return _objectSpread2(_objectSpread2({}, state), {}, {
149
+ savedFilters: savedFilters
150
+ });
151
+ }
152
+ default:
153
+ return state;
154
+ }
155
+ };
156
+ var FilterProvider = function FilterProvider(_ref4) {
157
+ var children = _ref4.children,
158
+ filters = _ref4.filters,
159
+ filterProps = _ref4.filterProps;
160
+ var _ref5 = filterProps || {},
161
+ renderDateLabel = _ref5.renderDateLabel;
148
162
  var filterTags = prepareFiltersForTags(filters, renderDateLabel);
149
163
  var _useState = useState(false),
150
164
  _useState2 = _slicedToArray(_useState, 2),
151
165
  panelOpen = _useState2[0],
152
166
  setPanelOpen = _useState2[1];
167
+ var initialState = {
168
+ savedFilters: []
169
+ };
170
+ var _useReducer = useReducer(filteringReducer, initialState),
171
+ _useReducer2 = _slicedToArray(_useReducer, 2),
172
+ state = _useReducer2[0],
173
+ dispatch = _useReducer2[1];
153
174
  var value = {
154
175
  filterTags: filterTags,
155
176
  EventEmitter: EventEmitter,
156
177
  panelOpen: panelOpen,
157
- setPanelOpen: setPanelOpen
178
+ setPanelOpen: setPanelOpen,
179
+ state: state,
180
+ dispatch: dispatch
158
181
  };
159
182
  return /*#__PURE__*/React__default.createElement(FilterContext.Provider, {
160
183
  value: value
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2022, 2022
2
+ * Copyright IBM Corp. 2022, 2024
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -16,9 +16,12 @@ export const NUMBER: "number";
16
16
  export const CHECKBOX: "checkbox";
17
17
  export const RADIO: "radio";
18
18
  export const DROPDOWN: "dropdown";
19
+ export const MULTISELECT: "multiSelect";
19
20
  /** Constants for event emitters */
20
21
  export const CLEAR_FILTERS: "clearFilters";
21
22
  export const CLEAR_SINGLE_FILTER: "clearSingleFilter";
22
23
  /** Constants for panel dimensions */
23
24
  export const PANEL_WIDTH: 320;
24
25
  export const ACTION_SET_HEIGHT: 64;
26
+ /** Constants for local reducer */
27
+ export const SAVED_FILTERS: "savedFilters";
@@ -19,6 +19,7 @@ var NUMBER = 'number';
19
19
  var CHECKBOX = 'checkbox';
20
20
  var RADIO = 'radio';
21
21
  var DROPDOWN = 'dropdown';
22
+ var MULTISELECT = 'multiSelect';
22
23
 
23
24
  /** Constants for event emitters */
24
25
  var CLEAR_FILTERS = 'clearFilters';
@@ -28,4 +29,7 @@ var CLEAR_SINGLE_FILTER = 'clearSingleFilter';
28
29
  var PANEL_WIDTH = 320;
29
30
  var ACTION_SET_HEIGHT = 64;
30
31
 
31
- export { ACTION_SET_HEIGHT, BATCH, CHECKBOX, CLEAR_FILTERS, CLEAR_SINGLE_FILTER, DATE, DROPDOWN, FLYOUT, INSTANT, NUMBER, PANEL, PANEL_WIDTH, RADIO };
32
+ /** Constants for local reducer */
33
+ var SAVED_FILTERS = 'savedFilters';
34
+
35
+ export { ACTION_SET_HEIGHT, BATCH, CHECKBOX, CLEAR_FILTERS, CLEAR_SINGLE_FILTER, DATE, DROPDOWN, FLYOUT, INSTANT, MULTISELECT, NUMBER, PANEL, PANEL_WIDTH, RADIO, SAVED_FILTERS };
@@ -5,12 +5,13 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { slicedToArray as _slicedToArray, extends as _extends, toConsumableArray as _toConsumableArray, objectSpread2 as _objectSpread2, defineProperty as _defineProperty } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
9
- import { DROPDOWN, RADIO, CHECKBOX, NUMBER, DATE, BATCH, INSTANT, PANEL } from '../constants.js';
10
- import { Dropdown, FormGroup, RadioButtonGroup, RadioButton, NumberInput, DatePicker, DatePickerInput, Layer, Checkbox } from '@carbon/react';
11
- import React__default, { useState, useRef, useCallback, useEffect } from 'react';
8
+ import { slicedToArray as _slicedToArray, extends as _extends, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, toConsumableArray as _toConsumableArray } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import { MULTISELECT, DROPDOWN, RADIO, CHECKBOX, NUMBER, DATE, BATCH, SAVED_FILTERS, INSTANT, PANEL } from '../constants.js';
10
+ import { MultiSelect, Dropdown, FormGroup, RadioButtonGroup, RadioButton, NumberInput, DatePicker, DatePickerInput, Layer, Checkbox } from '@carbon/react';
11
+ import React__default, { useContext, useState, useRef, useCallback, useEffect } from 'react';
12
12
  import OverflowCheckboxes from '../OverflowCheckboxes.js';
13
13
  import { getInitialStateFromFilters } from '../utils.js';
14
+ import { FilterContext } from '../FilterProvider.js';
14
15
  import { handleCheckboxChange } from '../handleCheckboxChange.js';
15
16
  import { usePreviousValue } from '../../../../../../global/js/hooks/usePreviousValue.js';
16
17
 
@@ -25,6 +26,10 @@ var useFilters = function useFilters(_ref) {
25
26
  panelOpen = _ref.panelOpen,
26
27
  autoHideFilters = _ref.autoHideFilters,
27
28
  isFetching = _ref.isFetching;
29
+ var _useContext = useContext(FilterContext),
30
+ state = _useContext.state,
31
+ localDispatch = _useContext.dispatch;
32
+ var savedFilters = state.savedFilters;
28
33
  /** State */
29
34
  var _useState = useState(getInitialStateFromFilters(filters, variation, reactTableFiltersState)),
30
35
  _useState2 = _slicedToArray(_useState, 2),
@@ -110,7 +115,7 @@ var useFilters = function useFilters(_ref) {
110
115
  var id = _ref3.id;
111
116
  return id === column;
112
117
  });
113
- var clearCheckbox = type === CHECKBOX && filterCopy[index].value.every(function (_ref4) {
118
+ var clearCheckbox = (type === CHECKBOX || type === MULTISELECT) && filterCopy[index].value.every(function (_ref4) {
114
119
  var selected = _ref4.selected;
115
120
  return selected === false;
116
121
  });
@@ -122,6 +127,16 @@ var useFilters = function useFilters(_ref) {
122
127
  filterCopy.splice(index, 1);
123
128
  }
124
129
  setFiltersObjectArray(filterCopy);
130
+
131
+ // Dispatch action from local filter context to track filters in order
132
+ // to keep history if `isFetching` becomes true. If so, react-table
133
+ // clears all filter history
134
+ localDispatch({
135
+ type: SAVED_FILTERS,
136
+ payload: {
137
+ savedFilters: filterCopy
138
+ }
139
+ });
125
140
  if (updateMethod === INSTANT) {
126
141
  setAllFilters(filterCopy);
127
142
  }
@@ -272,6 +287,70 @@ var useFilters = function useFilters(_ref) {
272
287
  }
273
288
  }));
274
289
  break;
290
+ case MULTISELECT:
291
+ {
292
+ var _filtersState$column5;
293
+ var isStringArray = components.MultiSelect.items.length && typeof components.MultiSelect.items[0] === 'string';
294
+ var selectedFilters = (_filtersState$column5 = filtersState[column]) === null || _filtersState$column5 === void 0 ? void 0 : _filtersState$column5.value.filter(function (i) {
295
+ return i.selected;
296
+ });
297
+ var filteredItems = components.MultiSelect.items.map(function (item) {
298
+ if (selectedFilters.filter(function (a) {
299
+ return isStringArray ? a.id === item : a.id === item.id;
300
+ }).length) {
301
+ return item;
302
+ }
303
+ return null;
304
+ }).filter(Boolean);
305
+ filter = /*#__PURE__*/React__default.createElement(MultiSelect, _extends({}, components.MultiSelect, {
306
+ selectedItems: filteredItems,
307
+ onChange: function onChange(_ref9) {
308
+ var _components$MultiSele, _components$MultiSele2;
309
+ var selectedItems = _ref9.selectedItems;
310
+ var allOptions = filtersState[column].value;
311
+ // Find selected items from list of options
312
+ var foundItems = selectedItems.map(function (item) {
313
+ if (allOptions.filter(function (option) {
314
+ return isStringArray ? option.id === item : option.id === item.id;
315
+ })) {
316
+ return allOptions.filter(function (option) {
317
+ return isStringArray ? option.id === item : option.id === item.id;
318
+ })[0];
319
+ }
320
+ return null;
321
+ }).filter(Boolean);
322
+
323
+ // Change selected state for those items that have been selected
324
+ allOptions.map(function (a) {
325
+ return a.selected = false;
326
+ });
327
+ foundItems.map(function (item) {
328
+ var foundOriginalItem = allOptions.filter(function (a) {
329
+ return isStringArray ? a === item : a.id === item.id;
330
+ });
331
+ if (foundOriginalItem && foundOriginalItem.length) {
332
+ foundOriginalItem[0].selected = true;
333
+ }
334
+ });
335
+ if (!selectedItems.length) {
336
+ allOptions.map(function (a) {
337
+ return a.selected = false;
338
+ });
339
+ }
340
+ setFiltersState(_objectSpread2(_objectSpread2({}, filtersState), {}, _defineProperty({}, column, {
341
+ value: allOptions,
342
+ type: type
343
+ })));
344
+ applyFilters({
345
+ column: column,
346
+ value: _toConsumableArray(filtersState[column].value),
347
+ type: type
348
+ });
349
+ (_components$MultiSele = components.MultiSelect) === null || _components$MultiSele === void 0 || (_components$MultiSele2 = _components$MultiSele.onChange) === null || _components$MultiSele2 === void 0 || _components$MultiSele2.call(_components$MultiSele, selectedItems);
350
+ }
351
+ }));
352
+ break;
353
+ }
275
354
  }
276
355
  if (isPanel) {
277
356
  return /*#__PURE__*/React__default.createElement(Layer, {
@@ -312,10 +391,27 @@ var useFilters = function useFilters(_ref) {
312
391
  setAllFilters(JSON.parse(prevFiltersObjectArrayRef.current));
313
392
  setFetchingReset(true);
314
393
  }
394
+ if (isFetching && fetchingReset) {
395
+ var cleanFilters = function cleanFilters(originalFilterState) {
396
+ var copy = _objectSpread2({}, originalFilterState);
397
+ var updatedFilters = savedFilters.map(function (f) {
398
+ if (Object.hasOwn(copy, f.id)) {
399
+ copy[f.id] = f;
400
+ return copy;
401
+ }
402
+ return copy;
403
+ });
404
+ return updatedFilters[0];
405
+ };
406
+ setFiltersObjectArray(savedFilters);
407
+ var filterStateCopy = cleanFilters(filtersState);
408
+ setFiltersState(filterStateCopy);
409
+ }
315
410
  if (!isFetching) {
316
411
  setFetchingReset(false);
317
412
  }
318
- }, [isFetching, reactTableFiltersState, setAllFilters, fetchingReset]);
413
+ // eslint-disable-next-line react-hooks/exhaustive-deps
414
+ }, [isFetching, reactTableFiltersState, setAllFilters, fetchingReset, savedFilters, filtersObjectArray]);
319
415
  var cancel = function cancel() {
320
416
  // Reverting to previous filters only applies when using batch actions
321
417
  if (updateMethod === BATCH) {
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
9
- import { FLYOUT, PANEL, CHECKBOX, DATE, NUMBER, RADIO, DROPDOWN } from './constants.js';
9
+ import { FLYOUT, PANEL, CHECKBOX, DATE, NUMBER, RADIO, DROPDOWN, MULTISELECT } from './constants.js';
10
10
 
11
11
  var _excluded = ["id", "labelText", "value"];
12
12
  var applyInitialFilters = function applyInitialFilters(filterState, initialFilters) {
@@ -63,6 +63,17 @@ var getInitialStateFromFilters = function getInitialStateFromFilters(filters, va
63
63
  value: '',
64
64
  type: type
65
65
  };
66
+ } else if (type === MULTISELECT) {
67
+ initialFilterState[column] = {
68
+ value: props.MultiSelect.items.map(function (item) {
69
+ return {
70
+ id: typeof item === 'string' ? item : item.id,
71
+ value: typeof item === 'string' ? item : item.text,
72
+ selected: false
73
+ };
74
+ }),
75
+ type: type
76
+ };
66
77
  }
67
78
  };
68
79
  if (variation === FLYOUT) {
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { defineProperty as _defineProperty } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default from 'react';
10
- import cx from '../../../../../../node_modules/classnames/index.js';
10
+ import cx from 'classnames';
11
11
  import PropTypes from '../../../../../../node_modules/prop-types/index.js';
12
12
  import { pkg } from '../../../../../../settings.js';
13
13
 
@@ -11,7 +11,7 @@ import PropTypes from '../../../../../../node_modules/prop-types/index.js';
11
11
  import { Dropdown, DatePicker, DatePickerInput, NumberInput, TextInput } from '@carbon/react';
12
12
  import { Edit, CaretSort, ChevronDown, Calendar } from '@carbon/react/icons';
13
13
  import { pkg } from '../../../../../../settings.js';
14
- import cx from '../../../../../../node_modules/classnames/index.js';
14
+ import cx from 'classnames';
15
15
  import { prepareProps } from '../../../../../../global/js/utils/props-helper.js';
16
16
  import { InlineEditContext } from '../InlineEditContext/InlineEditContext.js';
17
17
  import { usePreviousValue } from '../../../../../../global/js/hooks/usePreviousValue.js';
@@ -10,7 +10,7 @@ import React__default, { useRef, useEffect } from 'react';
10
10
  import PropTypes from '../../../../../node_modules/prop-types/index.js';
11
11
  import { Settings } from '@carbon/react/icons';
12
12
  import { Popover, IconButton, PopoverContent, Layer } from '@carbon/react';
13
- import cx from '../../../../../node_modules/classnames/index.js';
13
+ import cx from 'classnames';
14
14
  import RowSizeRadioGroup from './RowSizeRadioGroup.js';
15
15
  import { pkg, carbon } from '../../../../../settings.js';
16
16
 
@@ -116,7 +116,7 @@ var stateReducer = function stateReducer(newState, action) {
116
116
  var dataWithRemovedRow = Object.fromEntries(Object.entries(newData).filter(function (_ref5) {
117
117
  var _ref6 = _slicedToArray(_ref5, 1),
118
118
  key = _ref6[0];
119
- return parseInt(key) !== parseInt(rowData.index);
119
+ return parseInt(key) !== parseInt(_getRowId(rowData.original, rowData.index));
120
120
  }));
121
121
  return _objectSpread2(_objectSpread2({}, newState), {}, {
122
122
  selectedRowData: dataWithRemovedRow
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, extends as _extends, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default from 'react';
10
- import cx from '../../node_modules/classnames/index.js';
10
+ import cx from 'classnames';
11
11
  import { IconSkeleton, IconButton, OverflowMenu, OverflowMenuItem } from '@carbon/react';
12
12
  import { pkg } from '../../settings.js';
13
13
  import { prepareProps } from '../../global/js/utils/props-helper.js';
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { objectSpread2 as _objectSpread2, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default from 'react';
10
- import cx from '../../node_modules/classnames/index.js';
10
+ import cx from 'classnames';
11
11
  import { pkg } from '../../settings.js';
12
12
 
13
13
  var blockClass = "".concat(pkg.prefix, "--datagrid");
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { objectSpread2 as _objectSpread2, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default from 'react';
10
- import cx from '../../node_modules/classnames/index.js';
10
+ import cx from 'classnames';
11
11
  import { pkg } from '../../settings.js';
12
12
 
13
13
  var blockClass = "".concat(pkg.prefix, "--datagrid");
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { objectSpread2 as _objectSpread2, toConsumableArray as _toConsumableArray, defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default from 'react';
10
- import cx from '../../node_modules/classnames/index.js';
10
+ import cx from 'classnames';
11
11
  import { pkg } from '../../settings.js';
12
12
 
13
13
  var blockClass = "".concat(pkg.prefix, "--datagrid");
@@ -5,61 +5,62 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { slicedToArray as _slicedToArray, typeof as _typeof, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
8
+ import { defineProperty as _defineProperty, slicedToArray as _slicedToArray, typeof as _typeof, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import { useMemo } from 'react';
10
- import { BATCH } from './Datagrid/addons/Filtering/constants.js';
10
+ import { DATE, NUMBER, CHECKBOX, BATCH, MULTISELECT } from './Datagrid/addons/Filtering/constants.js';
11
11
  import FilterFlyout from './Datagrid/addons/Filtering/FilterFlyout.js';
12
12
 
13
+ var handleMultiFilter = function handleMultiFilter(rows, id, value) {
14
+ // gets all the items that are selected and returns their value
15
+ var selectedItems = value.filter(function (item) {
16
+ return item.selected;
17
+ }).map(function (item) {
18
+ return item.value;
19
+ });
20
+
21
+ // if the user removed all checkboxes then display all rows
22
+ if (selectedItems.length === 0) {
23
+ return rows;
24
+ }
25
+ return rows.filter(function (row) {
26
+ var rowValue = row.values[id];
27
+ return selectedItems.includes(rowValue);
28
+ });
29
+ };
13
30
  var useFiltering = function useFiltering(hooks) {
14
31
  /* istanbul ignore next */
15
32
  var filterTypes = useMemo(function () {
16
- return {
17
- date: function date(rows, id, _ref) {
18
- var _ref2 = _slicedToArray(_ref, 2),
19
- startDate = _ref2[0],
20
- endDate = _ref2[1];
21
- return rows.filter(function (row) {
22
- var rowValue = row.values[id];
23
- var startDateObj = _typeof(startDate) === 'object' ? startDate : new Date(startDate);
24
- var endDateObj = _typeof(endDate) === 'object' ? endDate : new Date(endDate);
25
- var rowValueDateObj = _typeof(rowValue) === 'object' ? rowValue : new Date(rowValue);
26
- if (rowValueDateObj.getTime() <= endDateObj.getTime() && rowValueDateObj.getTime() >= startDateObj.getTime()) {
27
- // In date range
28
- return true;
29
- } else {
30
- // Not in date range
31
- return false;
32
- }
33
- });
34
- },
35
- number: function number(rows, id, value) {
36
- if (value === '') {
37
- return rows;
38
- }
39
- var parsedValue = parseInt(value);
40
- return rows.filter(function (row) {
41
- var rowValue = row.values[id];
42
- return rowValue === parsedValue;
43
- });
44
- },
45
- checkbox: function checkbox(rows, id, value) {
46
- // gets all the items that are selected and returns their value
47
- var selectedItems = value.filter(function (item) {
48
- return item.selected;
49
- }).map(function (item) {
50
- return item.value;
51
- });
52
-
53
- // if the user removed all checkboxes then display all rows
54
- if (selectedItems.length === 0) {
55
- return rows;
33
+ return _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, DATE, function (rows, id, _ref) {
34
+ var _ref2 = _slicedToArray(_ref, 2),
35
+ startDate = _ref2[0],
36
+ endDate = _ref2[1];
37
+ return rows.filter(function (row) {
38
+ var rowValue = row.values[id];
39
+ var startDateObj = _typeof(startDate) === 'object' ? startDate : new Date(startDate);
40
+ var endDateObj = _typeof(endDate) === 'object' ? endDate : new Date(endDate);
41
+ var rowValueDateObj = _typeof(rowValue) === 'object' ? rowValue : new Date(rowValue);
42
+ if (rowValueDateObj.getTime() <= endDateObj.getTime() && rowValueDateObj.getTime() >= startDateObj.getTime()) {
43
+ // In date range
44
+ return true;
45
+ } else {
46
+ // Not in date range
47
+ return false;
56
48
  }
57
- return rows.filter(function (row) {
58
- var rowValue = row.values[id];
59
- return selectedItems.includes(rowValue);
60
- });
49
+ });
50
+ }), NUMBER, function (rows, id, value) {
51
+ if (value === '') {
52
+ return rows;
61
53
  }
62
- };
54
+ var parsedValue = parseInt(value);
55
+ return rows.filter(function (row) {
56
+ var rowValue = row.values[id];
57
+ return rowValue === parsedValue;
58
+ });
59
+ }), CHECKBOX, function (rows, id, value) {
60
+ return handleMultiFilter(rows, id, value);
61
+ }), MULTISELECT, function (rows, id, value) {
62
+ return handleMultiFilter(rows, id, value);
63
+ });
63
64
  }, []);
64
65
  hooks.useInstance.push(function (instance) {
65
66
  var filterProps = instance.filterProps,