@carbon/ibm-products 2.0.0-rc.1 → 2.0.0-rc.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (357) hide show
  1. package/README.md +2 -2
  2. package/css/index-full-carbon.css +1294 -331
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +6 -8
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +789 -171
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +4 -8
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +1171 -416
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +6 -8
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +1068 -262
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +6 -8
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/APIKeyModal/APIKeyModal.js +1 -1
  19. package/es/components/ActionBar/ActionBarOverflowItems.js +1 -0
  20. package/es/components/ActionSet/ActionSet.js +7 -3
  21. package/es/components/AddSelect/AddSelect.js +6 -6
  22. package/es/components/AddSelect/AddSelectBody.js +72 -31
  23. package/es/components/AddSelect/AddSelectBreadcrumbs.js +12 -4
  24. package/es/components/AddSelect/AddSelectColumn.js +8 -8
  25. package/es/components/AddSelect/AddSelectFilter.js +10 -7
  26. package/es/components/AddSelect/AddSelectList.js +64 -29
  27. package/es/components/AddSelect/AddSelectMetaPanel.js +7 -1
  28. package/es/components/AddSelect/AddSelectSidebar.js +5 -2
  29. package/es/components/AddSelect/AddSelectSort.js +2 -2
  30. package/es/components/AddSelect/add-select-utils.js +9 -2
  31. package/es/components/AddSelect/hooks/useItemSort.js +6 -0
  32. package/es/components/AddSelect/hooks/useParentSelect.js +6 -0
  33. package/es/components/AddSelect/hooks/usePath.js +15 -1
  34. package/es/components/AddSelect/index.js +1 -1
  35. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +4 -6
  36. package/es/components/Card/Card.js +16 -6
  37. package/es/components/Card/CardFooter.js +3 -1
  38. package/es/components/Card/CardHeader.js +20 -1
  39. package/es/components/ComboButton/ComboButton.js +1 -1
  40. package/es/components/CreateFullPage/CreateFullPage.js +4 -1
  41. package/es/components/CreateTearsheet/CreateTearsheet.js +8 -1
  42. package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  43. package/es/components/DataSpreadsheet/DataSpreadsheet.js +65 -15
  44. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  45. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  46. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  47. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +42 -0
  48. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  49. package/es/components/Datagrid/Datagrid/Datagrid.js +13 -37
  50. package/es/components/Datagrid/Datagrid/DatagridContent.js +159 -0
  51. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +17 -4
  52. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  53. package/es/components/Datagrid/Datagrid/DatagridRow.js +44 -5
  54. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  55. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +13 -4
  56. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +29 -8
  57. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +31 -9
  58. package/es/components/Datagrid/Datagrid/DraggableElement.js +6 -2
  59. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -45
  60. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +4 -1
  61. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +36 -10
  62. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +62 -26
  63. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  64. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +424 -0
  65. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +83 -0
  66. package/es/components/Datagrid/Datagrid/addons/Filtering/constants.js +20 -0
  67. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +22 -0
  68. package/es/components/Datagrid/Datagrid/addons/Filtering/index.js +7 -0
  69. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +38 -0
  70. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  71. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  72. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +537 -0
  73. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  74. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  75. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  76. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  77. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  78. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  79. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
  80. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +87 -0
  81. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -14
  82. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -36
  83. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  84. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  85. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  86. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  87. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  88. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  89. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  90. package/es/components/Datagrid/index.js +4 -1
  91. package/es/components/Datagrid/useActionsColumn.js +28 -12
  92. package/es/components/Datagrid/useColumnOrder.js +8 -0
  93. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  94. package/es/components/Datagrid/useDefaultStringRenderer.js +4 -1
  95. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  96. package/es/components/Datagrid/useExpandedRow.js +0 -1
  97. package/es/components/Datagrid/useFiltering.js +90 -0
  98. package/es/components/Datagrid/useInfiniteScroll.js +5 -2
  99. package/es/components/Datagrid/useInlineEdit.js +71 -0
  100. package/es/components/Datagrid/useNestedRowExpander.js +47 -0
  101. package/es/components/Datagrid/useNestedRows.js +16 -4
  102. package/es/components/Datagrid/useParentDimensions.js +3 -1
  103. package/es/components/Datagrid/useRowExpander.js +12 -4
  104. package/es/components/Datagrid/useRowSize.js +17 -6
  105. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  106. package/es/components/Datagrid/useSelectRows.js +12 -2
  107. package/es/components/Datagrid/useSortableColumns.js +1 -1
  108. package/es/components/Datagrid/useStickyColumn.js +11 -0
  109. package/es/components/Datagrid/utils/DatagridActions.js +223 -0
  110. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  111. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  112. package/es/components/Datagrid/utils/getArgTypes.js +94 -0
  113. package/es/components/Datagrid/utils/getInlineEditColumns.js +158 -0
  114. package/es/components/Datagrid/utils/makeData.js +55 -2
  115. package/es/components/EditUpdateCards/EditUpdateCards.js +144 -0
  116. package/es/components/EditUpdateCards/index.js +7 -0
  117. package/es/components/ExportModal/ExportModal.js +1 -1
  118. package/es/components/FilterSummary/FilterSummary.js +54 -0
  119. package/es/components/FilterSummary/index.js +7 -0
  120. package/es/components/ImportModal/ImportModal.js +3 -3
  121. package/es/components/InlineEdit/InlineEdit.js +28 -426
  122. package/es/components/InlineEditV1/InlineEditV1.js +447 -0
  123. package/es/components/InlineEditV1/index.js +7 -0
  124. package/es/components/InlineEditV2/InlineEditV2.js +289 -0
  125. package/es/components/InlineEditV2/index.js +7 -0
  126. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
  127. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +1 -1
  128. package/es/components/MultiAddSelect/MultiAddSelect.js +14 -7
  129. package/es/components/MultiAddSelect/index.js +6 -0
  130. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  131. package/es/components/OptionsTile/OptionsTile.js +29 -13
  132. package/es/components/PageHeader/PageHeader.js +4 -4
  133. package/es/components/PageHeader/PageHeaderTitle.js +1 -1
  134. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  135. package/es/components/RemoveModal/RemoveModal.js +20 -3
  136. package/es/components/Saving/Saving.js +1 -1
  137. package/es/components/SidePanel/SidePanel.js +45 -52
  138. package/es/components/SidePanel/motion/variants.js +45 -0
  139. package/es/components/SingleAddSelect/SingleAddSelect.js +6 -0
  140. package/es/components/SingleAddSelect/index.js +6 -0
  141. package/es/components/StatusIcon/StatusIcon.js +1 -1
  142. package/es/components/UserProfileImage/UserProfileImage.js +1 -1
  143. package/es/components/WebTerminal/WebTerminal.js +2 -2
  144. package/es/components/WebTerminal/WebTerminalContentWrapper.js +1 -1
  145. package/es/components/WebTerminal/hooks/index.js +6 -0
  146. package/es/components/WebTerminal/index.js +6 -0
  147. package/es/components/WebTerminal/preview-components/Navigation.js +7 -1
  148. package/es/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  149. package/es/components/WebTerminal/preview-components/index.js +7 -0
  150. package/es/components/index.js +3 -2
  151. package/es/global/js/hooks/index.js +2 -1
  152. package/es/global/js/hooks/useClickOutside.js +1 -1
  153. package/es/global/js/hooks/useControllableState.js +83 -0
  154. package/es/global/js/hooks/useResetCreateComponent.js +6 -2
  155. package/es/global/js/package-settings.js +7 -4
  156. package/es/global/js/utils/getBezierValues.js +20 -0
  157. package/es/global/js/utils/getNumberOfHiddenSteps.js +19 -0
  158. package/es/global/js/utils/motionConstants.js +45 -0
  159. package/es/global/js/utils/rangeWithCallback.js +13 -0
  160. package/es/global/js/utils/story-helper.js +5 -1
  161. package/es/global/js/utils/uuidv4.spec.js +4 -0
  162. package/lib/components/APIKeyModal/APIKeyModal.js +4 -4
  163. package/lib/components/ActionBar/ActionBarOverflowItems.js +1 -0
  164. package/lib/components/ActionSet/ActionSet.js +7 -3
  165. package/lib/components/AddSelect/AddSelect.js +5 -6
  166. package/lib/components/AddSelect/AddSelectBody.js +67 -30
  167. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +15 -4
  168. package/lib/components/AddSelect/AddSelectColumn.js +7 -7
  169. package/lib/components/AddSelect/AddSelectFilter.js +9 -6
  170. package/lib/components/AddSelect/AddSelectList.js +65 -30
  171. package/lib/components/AddSelect/AddSelectMetaPanel.js +8 -2
  172. package/lib/components/AddSelect/AddSelectSidebar.js +4 -1
  173. package/lib/components/AddSelect/AddSelectSort.js +5 -5
  174. package/lib/components/AddSelect/add-select-utils.js +9 -2
  175. package/lib/components/AddSelect/hooks/useItemSort.js +6 -0
  176. package/lib/components/AddSelect/hooks/useParentSelect.js +6 -0
  177. package/lib/components/AddSelect/hooks/usePath.js +9 -1
  178. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -6
  179. package/lib/components/Card/Card.js +16 -6
  180. package/lib/components/Card/CardFooter.js +3 -1
  181. package/lib/components/Card/CardHeader.js +21 -1
  182. package/lib/components/ComboButton/ComboButton.js +3 -3
  183. package/lib/components/CreateFullPage/CreateFullPage.js +4 -1
  184. package/lib/components/CreateTearsheet/CreateTearsheet.js +9 -1
  185. package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  186. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +65 -14
  187. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  188. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  189. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  190. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +53 -0
  191. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  192. package/lib/components/Datagrid/Datagrid/Datagrid.js +16 -44
  193. package/lib/components/Datagrid/Datagrid/DatagridContent.js +193 -0
  194. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +17 -4
  195. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  196. package/lib/components/Datagrid/Datagrid/DatagridRow.js +45 -5
  197. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  198. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +16 -5
  199. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +32 -8
  200. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +33 -9
  201. package/lib/components/Datagrid/Datagrid/DraggableElement.js +7 -3
  202. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -47
  203. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +5 -2
  204. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +48 -25
  205. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +60 -25
  206. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  207. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +443 -0
  208. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +104 -0
  209. package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.js +35 -0
  210. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +33 -0
  211. package/lib/components/Datagrid/Datagrid/addons/Filtering/index.js +15 -0
  212. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +47 -0
  213. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  214. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  215. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +562 -0
  216. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  217. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  218. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  219. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  220. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  221. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  222. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
  223. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +100 -0
  224. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -13
  225. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -35
  226. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  227. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  228. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  229. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  230. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  231. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  232. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  233. package/lib/components/Datagrid/index.js +25 -1
  234. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  235. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  236. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  237. package/lib/components/Datagrid/useDefaultStringRenderer.js +5 -1
  238. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  239. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  240. package/lib/components/Datagrid/useFiltering.js +94 -0
  241. package/lib/components/Datagrid/useInfiniteScroll.js +5 -2
  242. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  243. package/lib/components/Datagrid/useNestedRowExpander.js +63 -0
  244. package/lib/components/Datagrid/useNestedRows.js +17 -4
  245. package/lib/components/Datagrid/useParentDimensions.js +3 -1
  246. package/lib/components/Datagrid/useRowExpander.js +17 -5
  247. package/lib/components/Datagrid/useRowSize.js +18 -13
  248. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  249. package/lib/components/Datagrid/useSelectRows.js +12 -2
  250. package/lib/components/Datagrid/useSortableColumns.js +5 -5
  251. package/lib/components/Datagrid/useStickyColumn.js +11 -0
  252. package/lib/components/Datagrid/utils/DatagridActions.js +248 -0
  253. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  254. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  255. package/lib/components/Datagrid/utils/getArgTypes.js +102 -0
  256. package/lib/components/Datagrid/utils/getInlineEditColumns.js +173 -0
  257. package/lib/components/Datagrid/utils/makeData.js +57 -3
  258. package/lib/components/EditUpdateCards/EditUpdateCards.js +152 -0
  259. package/lib/components/EditUpdateCards/index.js +13 -0
  260. package/lib/components/ExportModal/ExportModal.js +3 -3
  261. package/lib/components/FilterSummary/FilterSummary.js +72 -0
  262. package/lib/components/FilterSummary/index.js +15 -0
  263. package/lib/components/ImportModal/ImportModal.js +4 -4
  264. package/lib/components/InlineEdit/InlineEdit.js +27 -426
  265. package/lib/components/InlineEditV1/InlineEditV1.js +464 -0
  266. package/lib/components/InlineEditV1/index.js +13 -0
  267. package/lib/components/InlineEditV2/InlineEditV2.js +309 -0
  268. package/lib/components/InlineEditV2/index.js +13 -0
  269. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +2 -2
  270. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +3 -3
  271. package/lib/components/MultiAddSelect/MultiAddSelect.js +14 -7
  272. package/lib/components/NotificationsPanel/NotificationsPanel.js +8 -8
  273. package/lib/components/OptionsTile/OptionsTile.js +34 -17
  274. package/lib/components/PageHeader/PageHeader.js +5 -5
  275. package/lib/components/PageHeader/PageHeaderTitle.js +1 -1
  276. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  277. package/lib/components/RemoveModal/RemoveModal.js +20 -3
  278. package/lib/components/Saving/Saving.js +5 -5
  279. package/lib/components/SidePanel/SidePanel.js +48 -53
  280. package/lib/components/SidePanel/motion/variants.js +55 -0
  281. package/lib/components/SingleAddSelect/SingleAddSelect.js +6 -0
  282. package/lib/components/StatusIcon/StatusIcon.js +45 -45
  283. package/lib/components/UserProfileImage/UserProfileImage.js +7 -7
  284. package/lib/components/WebTerminal/WebTerminal.js +3 -3
  285. package/lib/components/WebTerminal/hooks/index.js +6 -0
  286. package/lib/components/WebTerminal/preview-components/Navigation.js +10 -4
  287. package/lib/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  288. package/lib/components/index.js +21 -1
  289. package/lib/global/js/hooks/index.js +9 -1
  290. package/lib/global/js/hooks/useClickOutside.js +1 -1
  291. package/lib/global/js/hooks/useControllableState.js +94 -0
  292. package/lib/global/js/hooks/useResetCreateComponent.js +7 -2
  293. package/lib/global/js/package-settings.js +7 -4
  294. package/lib/global/js/utils/getBezierValues.js +29 -0
  295. package/lib/global/js/utils/getNumberOfHiddenSteps.js +28 -0
  296. package/lib/global/js/utils/motionConstants.js +55 -0
  297. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  298. package/lib/global/js/utils/story-helper.js +5 -1
  299. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  300. package/package.json +18 -16
  301. package/scss/components/ActionSet/_action-set.scss +9 -4
  302. package/scss/components/AddSelect/_add-select.scss +132 -34
  303. package/scss/components/AddSelect/_index.scss +1 -1
  304. package/scss/components/AddSelect/_storybook-styles.scss +1 -1
  305. package/scss/components/Card/_card.scss +1 -0
  306. package/scss/components/Cascade/_cascade.scss +1 -1
  307. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -0
  308. package/scss/components/Datagrid/_datagrid.scss +7 -1
  309. package/scss/components/Datagrid/_storybook-styles.scss +29 -5
  310. package/scss/components/Datagrid/styles/_datagrid.scss +105 -18
  311. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  312. package/scss/components/Datagrid/styles/_index.scss +2 -0
  313. package/scss/components/Datagrid/styles/_useActionsColumn.scss +14 -0
  314. package/scss/components/Datagrid/styles/_useExpandedRow.scss +57 -11
  315. package/scss/components/Datagrid/styles/_useInlineEdit.scss +419 -0
  316. package/scss/components/Datagrid/styles/_useNestedRows.scss +33 -1
  317. package/scss/components/Datagrid/styles/_useStickyColumn.scss +31 -2
  318. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +47 -6
  319. package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +87 -0
  320. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -1
  321. package/scss/components/EditUpdateCards/_carbon-imports.scss +9 -0
  322. package/scss/components/EditUpdateCards/_edit-update-cards.scss +85 -0
  323. package/scss/components/EditUpdateCards/_index-with-carbon.scss +9 -0
  324. package/scss/components/EditUpdateCards/_index.scss +8 -0
  325. package/scss/components/EditUpdateCards/_storybook-styles.scss +55 -0
  326. package/scss/components/FilterSummary/_filter-summary.scss +20 -0
  327. package/scss/components/FilterSummary/_index.scss +10 -0
  328. package/scss/components/FilterSummary/_storybook-styles.scss +14 -0
  329. package/scss/components/{InlineEdit → InlineEditV1}/_carbon-imports.scss +0 -0
  330. package/scss/components/{InlineEdit → InlineEditV1}/_index-with-carbon.scss +1 -1
  331. package/scss/components/{InlineEdit → InlineEditV1}/_index.scss +1 -1
  332. package/scss/components/{InlineEdit/_inline-edit.scss → InlineEditV1/_inline-edit-v1.scss} +4 -2
  333. package/scss/components/{InlineEdit → InlineEditV1}/_storybook-styles.scss +0 -0
  334. package/scss/components/InlineEditV2/_carbon-imports.scss +9 -0
  335. package/scss/components/InlineEditV2/_index-with-carbon.scss +9 -0
  336. package/scss/components/InlineEditV2/_index.scss +10 -0
  337. package/scss/components/InlineEditV2/_inline-edit-v2.scss +83 -0
  338. package/scss/components/InlineEditV2/_storybook-styles.scss +9 -0
  339. package/scss/components/MultiAddSelect/_multi-add-select.scss +7 -0
  340. package/scss/components/MultiAddSelect/_storybook-styles.scss +1 -1
  341. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -6
  342. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  343. package/scss/components/SidePanel/_side-panel.scss +3 -82
  344. package/scss/components/SidePanel/_storybook-styles.scss +6 -1
  345. package/scss/components/SingleAddSelect/_carbon-imports.scss +1 -1
  346. package/scss/components/SingleAddSelect/_index-with-carbon.scss +1 -1
  347. package/scss/components/SingleAddSelect/_index.scss +7 -0
  348. package/scss/components/SingleAddSelect/_single-add-select.scss +7 -0
  349. package/scss/components/SingleAddSelect/_storybook-styles.scss +1 -1
  350. package/scss/components/Tearsheet/_tearsheet.scss +2 -2
  351. package/scss/components/WebTerminal/_carbon-imports.scss +6 -0
  352. package/scss/components/WebTerminal/_index.scss +7 -0
  353. package/scss/components/WebTerminal/_storybook-styles.scss +7 -0
  354. package/scss/components/_index-released-only-with-carbon.scss +1 -1
  355. package/scss/components/_index-released-only.scss +2 -1
  356. package/scss/components/_index-with-carbon.scss +3 -1
  357. package/scss/components/_index.scss +4 -1
@@ -6,6 +6,13 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
6
6
 
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
 
9
+ //
10
+ // Copyright IBM Corp. 2022, 2022
11
+ //
12
+ // This source code is licensed under the Apache-2.0 license found in the
13
+ // LICENSE file in the root directory of this source tree.
14
+ //
15
+
9
16
  /**
10
17
  * to be able to more easily and efficiently the child entries the data needs to be
11
18
  * normalized. this function recursively goes through the data array to build a single
@@ -85,7 +92,7 @@ export var getFilteredItems = function getFilteredItems(useNormalizedItems, norm
85
92
 
86
93
  if (searchTerm || globalFiltersApplied) {
87
94
  var results = itemIds.reduce(function (prev, cur) {
88
- if (normalizedItems[cur].title.toLowerCase().includes(searchTerm)) {
95
+ if (normalizedItems[cur].title.toLowerCase().includes(searchTerm.toLowerCase())) {
89
96
  prev.push(normalizedItems[cur]);
90
97
  }
91
98
 
@@ -132,7 +139,7 @@ export var getFilteredItems = function getFilteredItems(useNormalizedItems, norm
132
139
  } else {
133
140
  if (searchTerm) {
134
141
  return items.entries.filter(function (item) {
135
- return item.title.toLowerCase().includes(searchTerm);
142
+ return item.title.toLowerCase().includes(searchTerm.toLowerCase());
136
143
  });
137
144
  }
138
145
 
@@ -1,4 +1,10 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ //
3
+ // Copyright IBM Corp. 2022, 2022
4
+ //
5
+ // This source code is licensed under the Apache-2.0 license found in the
6
+ // LICENSE file in the root directory of this source tree.
7
+ //
2
8
  import { useState } from 'react';
3
9
  export var useItemSort = function useItemSort() {
4
10
  var _useState = useState(''),
@@ -1,4 +1,10 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ //
3
+ // Copyright IBM Corp. 2022, 2022
4
+ //
5
+ // This source code is licensed under the Apache-2.0 license found in the
6
+ // LICENSE file in the root directory of this source tree.
7
+ //
2
8
  import { useState } from 'react';
3
9
 
4
10
  var useParentSelect = function useParentSelect() {
@@ -6,6 +6,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
6
6
 
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
 
9
+ //
10
+ // Copyright IBM Corp. 2022, 2022
11
+ //
12
+ // This source code is licensed under the Apache-2.0 license found in the
13
+ // LICENSE file in the root directory of this source tree.
14
+ //
9
15
  import { useState } from 'react';
10
16
 
11
17
  var usePath = function usePath() {
@@ -56,10 +62,18 @@ var usePath = function usePath() {
56
62
  setPath(_toConsumableArray(pathCopy));
57
63
  };
58
64
 
65
+ var resetPath = function resetPath() {
66
+ setPath([{
67
+ id: 'base_of_path',
68
+ title: itemsLabel
69
+ }]);
70
+ };
71
+
59
72
  return {
60
73
  path: path,
61
74
  setPath: handler,
62
- pathOnclick: pathClickHandler
75
+ pathOnclick: pathClickHandler,
76
+ resetPath: resetPath
63
77
  };
64
78
  };
65
79
 
@@ -1,5 +1,5 @@
1
1
  //
2
- // Copyright IBM Corp. 2021
2
+ // Copyright IBM Corp. 2022, 2022
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.
@@ -23,13 +23,11 @@ import React, { useState, useEffect, useRef } from 'react'; // Other standard im
23
23
 
24
24
  import PropTypes from 'prop-types';
25
25
  import cx from 'classnames';
26
- import { Link, IconButton, usePrefix } from '@carbon/react';
27
- import { pkg } from '../../settings';
28
- import { useResizeDetector } from 'react-resize-detector';
29
- import { ArrowLeft } from '@carbon/icons-react'; // Carbon and package components we use.
26
+ import { useResizeDetector } from 'react-resize-detector'; // Carbon and package components we use.
30
27
 
31
- import { Breadcrumb, BreadcrumbItem, OverflowMenu, OverflowMenuItem } from '@carbon/react';
32
- import { OverflowMenuHorizontal } from '@carbon/icons-react';
28
+ import { Breadcrumb, BreadcrumbItem, Link, IconButton, OverflowMenu, OverflowMenuItem, usePrefix } from '@carbon/react';
29
+ import { pkg } from '../../settings';
30
+ import { ArrowLeft, OverflowMenuHorizontal } from '@carbon/react/icons';
33
31
  import uuidv4 from '../../global/js/utils/uuidv4';
34
32
  import '../../global/js/utils/props-helper'; // The block part of our conventional BEM class names (blockClass__E--M).
35
33
 
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["actionIcons", "actionsPlacement", "children", "className", "clickZone", "description", "label", "media", "mediaPosition", "onClick", "onKeyDown", "onPrimaryButtonClick", "overflowActions", "overflowAriaLabel", "onSecondaryButtonClick", "pictogram", "primaryButtonHref", "primaryButtonIcon", "primaryButtonKind", "primaryButtonText", "productive", "secondaryButtonHref", "secondaryButtonIcon", "secondaryButtonKind", "secondaryButtonText", "title", "titleSize"],
4
+ var _excluded = ["actionIcons", "actionsPlacement", "children", "className", "clickZone", "description", "label", "media", "mediaPosition", "onClick", "onKeyDown", "onPrimaryButtonClick", "overflowActions", "overflowAriaLabel", "onSecondaryButtonClick", "pictogram", "primaryButtonHref", "primaryButtonIcon", "primaryButtonKind", "primaryButtonPlacement", "primaryButtonText", "productive", "secondaryButtonHref", "secondaryButtonIcon", "secondaryButtonKind", "secondaryButtonText", "title", "titleSize"],
5
5
  _excluded2 = ["id"],
6
6
  _excluded3 = ["id", "icon", "onClick", "iconDescription", "href"];
7
7
 
@@ -31,6 +31,7 @@ var defaults = {
31
31
  mediaPosition: 'top',
32
32
  overflowActions: Object.freeze([]),
33
33
  primaryButtonKind: 'primary',
34
+ primaryButtonPlacement: 'bottom',
34
35
  productive: false,
35
36
  secondaryButtonKind: 'secondary',
36
37
  titleSize: 'default'
@@ -61,6 +62,8 @@ export var Card = /*#__PURE__*/forwardRef(function (_ref, ref) {
61
62
  primaryButtonIcon = _ref.primaryButtonIcon,
62
63
  _ref$primaryButtonKin = _ref.primaryButtonKind,
63
64
  primaryButtonKind = _ref$primaryButtonKin === void 0 ? defaults.primaryButtonKind : _ref$primaryButtonKin,
65
+ _ref$primaryButtonPla = _ref.primaryButtonPlacement,
66
+ primaryButtonPlacement = _ref$primaryButtonPla === void 0 ? defaults.primaryButtonPlacement : _ref$primaryButtonPla,
64
67
  primaryButtonText = _ref.primaryButtonText,
65
68
  _ref$productive = _ref.productive,
66
69
  productive = _ref$productive === void 0 ? defaults.productive : _ref$productive,
@@ -75,9 +78,9 @@ export var Card = /*#__PURE__*/forwardRef(function (_ref, ref) {
75
78
  rest = _objectWithoutProperties(_ref, _excluded);
76
79
 
77
80
  var blockClass = "".concat(pkg.prefix, "--card");
78
- var hasActions = actionIcons.length > 0 || overflowActions.length > 0;
81
+ var hasActions = actionIcons.length > 0 || overflowActions.length > 0 || !!primaryButtonText && primaryButtonPlacement === 'top';
79
82
  var hasFooterActions = hasActions && actionsPlacement === 'bottom';
80
- var hasFooterButton = !!secondaryButtonText || !!primaryButtonText;
83
+ var hasFooterButton = !!secondaryButtonText || !!primaryButtonText && primaryButtonPlacement === 'bottom';
81
84
  var hasBottomBar = hasFooterActions || hasFooterButton;
82
85
  var hasClickEvent = !!onClick || !!onKeyDown;
83
86
  var clickableProps = {
@@ -178,10 +181,15 @@ export var Card = /*#__PURE__*/forwardRef(function (_ref, ref) {
178
181
 
179
182
  var getHeaderProps = function getHeaderProps() {
180
183
  return {
181
- actions: getActions(),
184
+ actions: actionsPlacement === 'top' ? getActions() : '',
185
+ noActionIcons: actionIcons.length > 0 && actionsPlacement === 'top' ? false : true,
182
186
  actionsPlacement: actionsPlacement,
187
+ onPrimaryButtonClick: onPrimaryButtonClick,
188
+ primaryButtonIcon: primaryButtonIcon,
189
+ primaryButtonPlacement: primaryButtonPlacement,
190
+ primaryButtonText: primaryButtonText,
183
191
  description: description,
184
- hasActions: hasActions && actionsPlacement === 'top',
192
+ hasActions: hasActions,
185
193
  label: label,
186
194
  title: title,
187
195
  titleSize: titleSize
@@ -200,7 +208,7 @@ export var Card = /*#__PURE__*/forwardRef(function (_ref, ref) {
200
208
 
201
209
  var getFooterProps = function getFooterProps() {
202
210
  return {
203
- actions: getActions(),
211
+ actions: actionsPlacement === 'bottom' ? getActions() : '',
204
212
  actionsPlacement: actionsPlacement,
205
213
  hasActions: hasFooterActions,
206
214
  hasButton: hasFooterButton,
@@ -209,6 +217,7 @@ export var Card = /*#__PURE__*/forwardRef(function (_ref, ref) {
209
217
  primaryButtonHref: primaryButtonHref,
210
218
  primaryButtonIcon: primaryButtonIcon,
211
219
  primaryButtonKind: primaryButtonKind,
220
+ primaryButtonPlacement: primaryButtonPlacement,
212
221
  primaryButtonText: primaryButtonText,
213
222
  productive: productive,
214
223
  secondaryButtonHref: secondaryButtonHref,
@@ -258,6 +267,7 @@ Card.propTypes = {
258
267
  primaryButtonHref: PropTypes.string,
259
268
  primaryButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
260
269
  primaryButtonKind: PropTypes.oneOf(['primary', 'ghost']),
270
+ primaryButtonPlacement: PropTypes.oneOf(['top', 'bottom']),
261
271
  primaryButtonText: PropTypes.node,
262
272
  productive: PropTypes.bool,
263
273
  secondaryButtonHref: PropTypes.string,
@@ -28,6 +28,7 @@ export var CardFooter = function CardFooter(_ref) {
28
28
  primaryButtonIcon = _ref.primaryButtonIcon,
29
29
  _ref$primaryButtonKin = _ref.primaryButtonKind,
30
30
  primaryButtonKind = _ref$primaryButtonKin === void 0 ? defaults.primaryButtonKind : _ref$primaryButtonKin,
31
+ primaryButtonPlacement = _ref.primaryButtonPlacement,
31
32
  primaryButtonText = _ref.primaryButtonText,
32
33
  _ref$productive = _ref.productive,
33
34
  productive = _ref$productive === void 0 ? defaults.productive : _ref$productive,
@@ -47,7 +48,7 @@ export var CardFooter = function CardFooter(_ref) {
47
48
  size: "md",
48
49
  renderIcon: secondaryButtonIcon,
49
50
  href: secondaryButtonHref
50
- }, secondaryButtonText), primaryButtonText && /*#__PURE__*/React.createElement(Button, {
51
+ }, secondaryButtonText), primaryButtonText && primaryButtonPlacement === 'bottom' && /*#__PURE__*/React.createElement(Button, {
51
52
  kind: productive ? 'ghost' : primaryButtonKind,
52
53
  onClick: onPrimaryButtonClick,
53
54
  size: "md",
@@ -66,6 +67,7 @@ CardFooter.propTypes = {
66
67
  primaryButtonHref: PropTypes.string,
67
68
  primaryButtonIcon: PropTypes.string,
68
69
  primaryButtonKind: PropTypes.oneOf(['primary', 'ghost']),
70
+ primaryButtonPlacement: PropTypes.oneOf(['top', 'bottom']),
69
71
  primaryButtonText: PropTypes.string,
70
72
  productive: PropTypes.bool,
71
73
  secondaryButtonHref: PropTypes.string,
@@ -9,6 +9,7 @@ import React from 'react';
9
9
  import cx from 'classnames';
10
10
  import PropTypes from 'prop-types';
11
11
  import { pkg } from '../../settings';
12
+ import { Button } from '@carbon/react';
12
13
  var componentName = 'CardHeader';
13
14
  var defaults = {
14
15
  hasActions: false,
@@ -18,6 +19,11 @@ export var CardHeader = function CardHeader(_ref) {
18
19
  var _cx;
19
20
 
20
21
  var actions = _ref.actions,
22
+ noActionIcons = _ref.noActionIcons,
23
+ onPrimaryButtonClick = _ref.onPrimaryButtonClick,
24
+ primaryButtonIcon = _ref.primaryButtonIcon,
25
+ primaryButtonPlacement = _ref.primaryButtonPlacement,
26
+ primaryButtonText = _ref.primaryButtonText,
21
27
  description = _ref.description,
22
28
  _ref$hasActions = _ref.hasActions,
23
29
  hasActions = _ref$hasActions === void 0 ? defaults.hasActions : _ref$hasActions,
@@ -28,6 +34,8 @@ export var CardHeader = function CardHeader(_ref) {
28
34
  var blockClass = "".concat(pkg.prefix, "--card");
29
35
  var headerClass = "".concat(blockClass, "__header");
30
36
  var headerClasses = cx(headerClass, (_cx = {}, _defineProperty(_cx, "".concat(headerClass, "-label-only"), label && !title && !description), _defineProperty(_cx, "".concat(headerClass, "-has-label"), !!label), _defineProperty(_cx, "".concat(blockClass, "__title-lg"), titleSize === 'large'), _cx));
37
+ var actionGhostButton = "".concat(blockClass, "__actions-header-ghost-button");
38
+ var actionGhostButtonClass = cx(actionGhostButton, _defineProperty({}, "".concat(actionGhostButton, "--only"), noActionIcons));
31
39
  return /*#__PURE__*/React.createElement("div", {
32
40
  className: headerClasses
33
41
  }, /*#__PURE__*/React.createElement("div", {
@@ -42,13 +50,24 @@ export var CardHeader = function CardHeader(_ref) {
42
50
  className: "".concat(blockClass, "__description")
43
51
  }, description)), hasActions && /*#__PURE__*/React.createElement("div", {
44
52
  className: "".concat(blockClass, "__actions ").concat(blockClass, "__actions-header")
45
- }, actions)));
53
+ }, actions, primaryButtonText && primaryButtonPlacement === 'top' && /*#__PURE__*/React.createElement(Button, {
54
+ kind: "ghost",
55
+ size: "small",
56
+ renderIcon: primaryButtonIcon,
57
+ onClick: onPrimaryButtonClick,
58
+ className: actionGhostButtonClass
59
+ }, primaryButtonText))));
46
60
  };
47
61
  CardHeader.propTypes = {
48
62
  actions: PropTypes.oneOfType([PropTypes.array, PropTypes.node]),
49
63
  description: PropTypes.string,
50
64
  hasActions: PropTypes.bool,
51
65
  label: PropTypes.string,
66
+ noActionIcons: PropTypes.bool,
67
+ onPrimaryButtonClick: PropTypes.func,
68
+ primaryButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
69
+ primaryButtonPlacement: PropTypes.oneOf(['top', 'bottom']),
70
+ primaryButtonText: PropTypes.string,
52
71
  title: PropTypes.string,
53
72
  titleSize: PropTypes.oneOf(['default', 'large'])
54
73
  };
@@ -17,7 +17,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
17
17
  * This source code is licensed under the Apache-2.0 license found in the
18
18
  * LICENSE file in the root directory of this source tree.
19
19
  */
20
- import { ChevronDown, ChevronUp } from '@carbon/icons-react';
20
+ import { ChevronDown, ChevronUp } from '@carbon/react/icons';
21
21
  import { Button, OverflowMenuItem, OverflowMenu } from '@carbon/react';
22
22
  import classnames from 'classnames';
23
23
  import { node, shape, string } from 'prop-types';
@@ -198,7 +198,10 @@ export var CreateFullPage = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
198
198
  className: "".concat(blockClass, "__modal"),
199
199
  size: "sm",
200
200
  open: modalIsOpen,
201
- "aria-label": modalTitle
201
+ "aria-label": modalTitle,
202
+ onClose: function onClose() {
203
+ setModalIsOpen(false);
204
+ }
202
205
  }, /*#__PURE__*/React.createElement(ModalHeader, {
203
206
  title: modalTitle
204
207
  }), /*#__PURE__*/React.createElement(ModalBody, null, /*#__PURE__*/React.createElement("p", null, modalDescription)), /*#__PURE__*/React.createElement(ModalFooter, null, /*#__PURE__*/React.createElement(Button, {
@@ -20,6 +20,7 @@ import { pkg } from '../../settings';
20
20
  import { usePreviousValue, useValidCreateStepCount, useResetCreateComponent, useCreateComponentFocus, useCreateComponentStepChange } from '../../global/js/hooks';
21
21
  import { getDevtoolsProps } from '../../global/js/utils/devtools';
22
22
  import { lastIndexInArray } from '../../global/js/utils/lastIndexInArray';
23
+ import { getNumberOfHiddenSteps } from '../../global/js/utils/getNumberOfHiddenSteps';
23
24
  var componentName = 'CreateTearsheet';
24
25
  var blockClass = "".concat(pkg.prefix, "--tearsheet-create"); // This is a general context for the steps container
25
26
  // containing information about the state of the container
@@ -122,7 +123,12 @@ export var CreateTearsheet = /*#__PURE__*/forwardRef(function (_ref, ref) {
122
123
  if (lastItem !== lastIncludedStep) {
123
124
  setLastIncludedStep(lastItem);
124
125
  }
125
- }, [stepData, firstIncludedStep, lastIncludedStep]);
126
+
127
+ if (open && initialStep) {
128
+ var numberOfHiddenSteps = getNumberOfHiddenSteps(stepData, initialStep);
129
+ setCurrentStep(Number(initialStep + numberOfHiddenSteps));
130
+ }
131
+ }, [stepData, firstIncludedStep, lastIncludedStep, initialStep, open]);
126
132
  useCreateComponentFocus({
127
133
  previousState: previousState,
128
134
  currentStep: currentStep,
@@ -135,6 +141,7 @@ export var CreateTearsheet = /*#__PURE__*/forwardRef(function (_ref, ref) {
135
141
  previousState: previousState,
136
142
  open: open,
137
143
  setCurrentStep: setCurrentStep,
144
+ stepData: stepData,
138
145
  initialStep: initialStep,
139
146
  totalSteps: stepData === null || stepData === void 0 ? void 0 : stepData.length,
140
147
  componentName: componentName
@@ -114,9 +114,9 @@ CreateTearsheetNarrow.propTypes = {
114
114
  formDescription: PropTypes.node,
115
115
 
116
116
  /**
117
- * Specifies a required field that provides a title for a form
117
+ * Specifies a field that provides a title for a form
118
118
  */
119
- formTitle: PropTypes.node.isRequired,
119
+ formTitle: PropTypes.node,
120
120
 
121
121
  /**
122
122
  * A label for the tearsheet, displayed in the header area of the tearsheet
@@ -3,7 +3,7 @@ import _typeof from "@babel/runtime/helpers/typeof";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
6
- var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "totalVisibleColumns"];
6
+ var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
7
7
 
8
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
 
@@ -38,7 +38,8 @@ import { removeCellSelections } from './utils/removeCellSelections';
38
38
  import { selectAllCells } from './utils/selectAllCells';
39
39
  import { handleEditSubmit } from './utils/handleEditSubmit';
40
40
  import { handleActiveCellInSelectionEnter } from './utils/handleActiveCellInSelectionEnter';
41
- import { handleActiveCellInSelectionTab } from './utils/handleActiveCellInSelectionTab'; // cspell:words rowcount colcount
41
+ import { handleActiveCellInSelectionTab } from './utils/handleActiveCellInSelectionTab';
42
+ import { handleCellDeletion } from './utils/handleCellDeletion'; // cspell:words rowcount colcount
42
43
  // The block part of our conventional BEM class names (blockClass__E--M).
43
44
 
44
45
  var blockClass = "".concat(pkg.prefix, "--data-spreadsheet");
@@ -51,13 +52,16 @@ var defaults = {
51
52
  defaultEmptyRowCount: 16,
52
53
  onDataUpdate: Object.freeze(function () {}),
53
54
  onActiveCellChange: Object.freeze(function () {}),
54
- onSelectionAreaChange: Object.freeze(function () {})
55
+ onSelectionAreaChange: Object.freeze(function () {}),
56
+ theme: 'light'
55
57
  };
56
58
  /**
57
59
  * DataSpreadsheet: used to organize and display large amounts of structured data, separated by columns and rows in a grid-like format.
58
60
  */
59
61
 
60
62
  export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
63
+ var _cx;
64
+
61
65
  var _ref$cellSize = _ref.cellSize,
62
66
  cellSize = _ref$cellSize === void 0 ? defaults.cellSize : _ref$cellSize,
63
67
  className = _ref.className,
@@ -74,6 +78,9 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
74
78
  onActiveCellChange = _ref$onActiveCellChan === void 0 ? defaults.onActiveCellChange : _ref$onActiveCellChan,
75
79
  _ref$onSelectionAreaC = _ref.onSelectionAreaChange,
76
80
  onSelectionAreaChange = _ref$onSelectionAreaC === void 0 ? defaults.onSelectionAreaChange : _ref$onSelectionAreaC,
81
+ selectAllAriaLabel = _ref.selectAllAriaLabel,
82
+ spreadsheetAriaLabel = _ref.spreadsheetAriaLabel,
83
+ theme = _ref.theme,
77
84
  totalVisibleColumns = _ref.totalVisibleColumns,
78
85
  rest = _objectWithoutProperties(_ref, _excluded);
79
86
 
@@ -181,11 +188,11 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
181
188
  visibleColumns = _useTable.visibleColumns; // Update the spreadsheet data after editing a cell
182
189
 
183
190
 
184
- var updateData = useCallback(function (rowIndex, columnId) {
191
+ var updateData = useCallback(function (rowIndex, columnId, newValue) {
185
192
  onDataUpdate(function (prev) {
186
193
  return prev.map(function (row, index) {
187
194
  if (index === rowIndex) {
188
- return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, _defineProperty({}, columnId, cellEditorValue));
195
+ return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, _defineProperty({}, columnId, cellEditorValue || newValue));
189
196
  }
190
197
 
191
198
  return row;
@@ -195,10 +202,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
195
202
 
196
203
  var removeActiveCell = useCallback(function () {
197
204
  var activeCellHighlight = spreadsheetRef.current.querySelector(".".concat(blockClass, "__active-cell--highlight"));
198
-
199
- if (activeCellHighlight) {
200
- activeCellHighlight.style.display = 'none';
201
- }
205
+ activeCellHighlight.style.display = 'none';
202
206
  }, [spreadsheetRef]);
203
207
  var removeCellEditor = useCallback(function () {
204
208
  setCellEditorValue('');
@@ -373,13 +377,35 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
373
377
  setCurrentMatcher: setCurrentMatcher,
374
378
  usingMac: usingMac
375
379
  });
376
- } // Allow arrow key navigation if there are less than two activeKeys OR
377
- // if one of the activeCellCoordinates is in a header position
380
+ }
378
381
 
382
+ var deleteParams = {
383
+ selectionAreas: selectionAreas,
384
+ currentMatcher: currentMatcher,
385
+ rows: rows,
386
+ setActiveCellContent: setActiveCellContent,
387
+ updateData: updateData,
388
+ activeCellCoordinates: activeCellCoordinates
389
+ }; // Allow arrow key navigation if there are less than two activeKeys OR
390
+ // if one of the activeCellCoordinates is in a header position
379
391
 
380
392
  if (keysPressedList.length < 2 && !includesShift(keysPressedList) || activeCellCoordinates.row === 'header' || activeCellCoordinates.column === 'header') {
381
393
  switch (key) {
394
+ // Backspace
395
+ case 'Backspace':
396
+ {
397
+ handleCellDeletion(deleteParams);
398
+ break;
399
+ }
400
+ // Delete
401
+
402
+ case 'Delete':
403
+ {
404
+ handleCellDeletion(deleteParams);
405
+ break;
406
+ }
382
407
  // Enter
408
+
383
409
  case 'Enter':
384
410
  {
385
411
  handleActiveCellInSelectionEnter({
@@ -577,7 +603,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
577
603
  }
578
604
  }
579
605
  }
580
- }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac]);
606
+ }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac, updateData]);
581
607
 
582
608
  var startEditMode = function startEditMode() {
583
609
  setIsEditing(true);
@@ -613,6 +639,11 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
613
639
  }
614
640
 
615
641
  return;
642
+ }; // Mouse up on active cell
643
+
644
+
645
+ var handleActiveCellMouseUp = function handleActiveCellMouseUp() {
646
+ setClickAndHoldActive(false);
616
647
  }; // Mouse down on active cell
617
648
 
618
649
 
@@ -751,12 +782,13 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
751
782
  }
752
783
  }, [spreadsheetRef, currentMatcher]);
753
784
  return /*#__PURE__*/React.createElement("div", _extends({}, rest, getTableProps(), getDevtoolsProps(componentName), {
754
- className: cx(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), _defineProperty({}, "".concat(blockClass, "__container-has-focus"), containerHasFocus)),
785
+ className: cx(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), (_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__container-has-focus"), containerHasFocus), _defineProperty(_cx, "".concat(blockClass, "__").concat(theme), theme === 'dark'), _cx)),
755
786
  ref: spreadsheetRef,
756
787
  role: "grid",
757
788
  tabIndex: 0,
758
789
  "aria-rowcount": (rows === null || rows === void 0 ? void 0 : rows.length) || 0,
759
790
  "aria-colcount": (columns === null || columns === void 0 ? void 0 : columns.length) || 0,
791
+ "aria-label": spreadsheetAriaLabel,
760
792
  onKeyDown: handleKeyPress,
761
793
  onFocus: function onFocus() {
762
794
  return setContainerHasFocus(true);
@@ -782,7 +814,8 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
782
814
  updateActiveCellCoordinates: updateActiveCellCoordinates,
783
815
  setHeaderCellHoldActive: setHeaderCellHoldActive,
784
816
  headerCellHoldActive: headerCellHoldActive,
785
- visibleColumns: visibleColumns
817
+ visibleColumns: visibleColumns,
818
+ selectAllAriaLabel: selectAllAriaLabel
786
819
  }), /*#__PURE__*/React.createElement(DataSpreadsheetBody, {
787
820
  activeCellCoordinates: activeCellCoordinates,
788
821
  ref: spreadsheetRef,
@@ -817,6 +850,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
817
850
  visibleColumns: visibleColumns
818
851
  }), /*#__PURE__*/React.createElement("button", {
819
852
  onMouseDown: handleActiveCellMouseDown,
853
+ onMouseUp: handleActiveCellMouseUp,
820
854
  onClick: handleActiveCellClick,
821
855
  onKeyDown: handleActiveCellKeyDown,
822
856
  onDoubleClick: handleActiveCellDoubleClick,
@@ -825,6 +859,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
825
859
  className: cx("".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__active-cell--highlight"), _defineProperty({}, "".concat(blockClass, "__active-cell--with-selection"), activeCellInsideSelectionArea)),
826
860
  type: "button"
827
861
  }, activeCellContent), /*#__PURE__*/React.createElement("textarea", {
862
+ id: "".concat(blockClass, "__cell-editor-text-area"),
828
863
  value: cellEditorValue,
829
864
  onKeyDown: handleEditSubmit({
830
865
  activeCellCoordinates: activeCellCoordinates,
@@ -844,7 +879,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
844
879
  cellEditorRulerRef.current.textContent = event.target.value;
845
880
  },
846
881
  ref: cellEditorRef,
847
- "aria-labelledby": activeCellCoordinates ? "#".concat(blockClass, "__cell--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, "--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) : null,
882
+ "aria-labelledby": activeCellCoordinates ? "".concat(blockClass, "__cell--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, "--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) : null,
848
883
  className: cx("".concat(blockClass, "__cell-editor"), "".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__cell-editor--").concat(cellSize), _defineProperty({}, "".concat(blockClass, "__cell-editor--active"), isEditing))
849
884
  }), /*#__PURE__*/React.createElement("pre", {
850
885
  "aria-hidden": true,
@@ -911,6 +946,21 @@ DataSpreadsheet.propTypes = {
911
946
  */
912
947
  onSelectionAreaChange: PropTypes.func,
913
948
 
949
+ /**
950
+ * The aria label applied to the Select all button
951
+ */
952
+ selectAllAriaLabel: PropTypes.string.isRequired,
953
+
954
+ /**
955
+ * The aria label applied to the Data spreadsheet component
956
+ */
957
+ spreadsheetAriaLabel: PropTypes.string.isRequired,
958
+
959
+ /**
960
+ * The theme the DataSpreadsheet should use (only used to render active cell/selection area colors on dark theme)
961
+ */
962
+ theme: PropTypes.oneOf(['light', 'dark']),
963
+
914
964
  /**
915
965
  * The total number of columns to be initially visible, additional columns will be rendered and
916
966
  * visible via horizontal scrollbar
@@ -385,7 +385,8 @@ export var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
385
385
  }), {
386
386
  className: cx("".concat(blockClass, "__tr")),
387
387
  "data-row-index": index,
388
- "aria-rowindex": index + 1
388
+ "aria-rowindex": index + 1,
389
+ "aria-owns": "".concat(blockClass, "__cell-editor-text-area")
389
390
  }), /*#__PURE__*/React.createElement("div", {
390
391
  role: "rowheader",
391
392
  className: "".concat(blockClass, "__td-th--cell-container")
@@ -43,6 +43,7 @@ export var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref)
43
43
  updateActiveCellCoordinates = _ref.updateActiveCellCoordinates,
44
44
  setHeaderCellHoldActive = _ref.setHeaderCellHoldActive,
45
45
  headerCellHoldActive = _ref.headerCellHoldActive,
46
+ selectAllAriaLabel = _ref.selectAllAriaLabel,
46
47
  visibleColumns = _ref.visibleColumns;
47
48
 
48
49
  var _useState = useState(0),
@@ -175,6 +176,7 @@ export var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref)
175
176
  "data-column-index": "header",
176
177
  type: "button",
177
178
  tabIndex: -1,
179
+ "aria-label": selectAllAriaLabel,
178
180
  onClick: handleSelectAllClick,
179
181
  className: cx("".concat(blockClass, "__th"), "".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__th--select-all"), _defineProperty({}, "".concat(blockClass, "__th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header'))
180
182
  }, "\xA0")), headerGroup.headers.map(function (column, index) {
@@ -258,6 +260,11 @@ DataSpreadsheetHeader.propTypes = {
258
260
  */
259
261
  scrollBarSize: PropTypes.number,
260
262
 
263
+ /**
264
+ * The aria label applied to the Select all button
265
+ */
266
+ selectAllAriaLabel: PropTypes.string.isRequired,
267
+
261
268
  /**
262
269
  * All of the cell selection area items
263
270
  */
@@ -37,7 +37,8 @@ export var useMultipleKeyTracking = function useMultipleKeyTracking(_ref) {
37
37
 
38
38
  var previousState = usePreviousValue({
39
39
  isEditing: isEditing,
40
- windowFocused: windowFocused
40
+ windowFocused: windowFocused,
41
+ containerHasFocus: containerHasFocus
41
42
  }); // useEffect to check for window focus, if window loses focus
42
43
  // we need to clear out the keysPressedList
43
44
 
@@ -68,7 +69,7 @@ export var useMultipleKeyTracking = function useMultipleKeyTracking(_ref) {
68
69
  };
69
70
  }, []);
70
71
  useEffect(function () {
71
- if (containerHasFocus && !isEditing) {
72
+ if (ref && containerHasFocus && !isEditing) {
72
73
  ref.current.onkeydown = ref.current.onkeyup = function (event) {
73
74
  // If keydown, we will add the new key to the keysPressedList array
74
75
  if (event.type === 'keydown') {
@@ -122,15 +123,15 @@ export var useMultipleKeyTracking = function useMultipleKeyTracking(_ref) {
122
123
  // or is currently in edit mode
123
124
 
124
125
 
125
- if (!containerHasFocus || isEditing) {
126
+ if (ref && !containerHasFocus || isEditing) {
126
127
  ref.current.onkeydown = undefined;
127
128
  ref.current.onkeyup = undefined;
128
129
 
129
- if (!(previousState !== null && previousState !== void 0 && previousState.isEditing) && isEditing) {
130
+ if (!(previousState !== null && previousState !== void 0 && previousState.isEditing) && isEditing || previousState !== null && previousState !== void 0 && previousState.containerHasFocus && !containerHasFocus) {
130
131
  setKeysPressedList([]);
131
132
  }
132
133
  }
133
- }, [keysPressedList, containerHasFocus, ref, isEditing, previousState === null || previousState === void 0 ? void 0 : previousState.isEditing, windowFocused, previousState === null || previousState === void 0 ? void 0 : previousState.windowFocused, usingMac]);
134
+ }, [keysPressedList, containerHasFocus, ref, isEditing, previousState === null || previousState === void 0 ? void 0 : previousState.isEditing, previousState === null || previousState === void 0 ? void 0 : previousState.containerHasFocus, windowFocused, previousState === null || previousState === void 0 ? void 0 : previousState.windowFocused, usingMac]);
134
135
  return {
135
136
  keysPressedList: keysPressedList,
136
137
  windowFocused: windowFocused,