@carbon/ibm-products 2.0.0-rc.0 → 2.0.0-rc.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (332) hide show
  1. package/README.md +2 -2
  2. package/css/index-full-carbon.css +1223 -325
  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 +792 -174
  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 +1109 -419
  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 +1024 -274
  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 +64 -11
  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 +40 -0
  48. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  49. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
  50. package/es/components/Datagrid/Datagrid/DatagridContent.js +154 -0
  51. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  52. package/es/components/Datagrid/Datagrid/DatagridRow.js +53 -6
  53. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  54. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +13 -4
  55. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +142 -11
  56. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +2 -1
  57. package/es/components/Datagrid/Datagrid/DraggableElement.js +6 -2
  58. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -45
  59. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +4 -1
  60. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +36 -10
  61. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +62 -26
  62. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  63. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  64. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  65. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +537 -0
  66. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  67. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  68. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  69. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  70. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  71. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  72. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
  73. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +87 -0
  74. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -14
  75. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -36
  76. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  77. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  78. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  79. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  80. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  81. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  82. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  83. package/es/components/Datagrid/index.js +3 -1
  84. package/es/components/Datagrid/useActionsColumn.js +53 -12
  85. package/es/components/Datagrid/useColumnOrder.js +8 -0
  86. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  87. package/es/components/Datagrid/useDefaultStringRenderer.js +4 -1
  88. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  89. package/es/components/Datagrid/useExpandedRow.js +0 -1
  90. package/es/components/Datagrid/useInfiniteScroll.js +5 -2
  91. package/es/components/Datagrid/useInlineEdit.js +71 -0
  92. package/es/components/Datagrid/useNestedRowExpander.js +47 -0
  93. package/es/components/Datagrid/useNestedRows.js +16 -4
  94. package/es/components/Datagrid/useRowExpander.js +12 -4
  95. package/es/components/Datagrid/useRowSize.js +17 -6
  96. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  97. package/es/components/Datagrid/useSelectRows.js +13 -3
  98. package/es/components/Datagrid/useSortableColumns.js +1 -1
  99. package/es/components/Datagrid/useStickyColumn.js +14 -0
  100. package/es/components/Datagrid/utils/DatagridActions.js +236 -0
  101. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  102. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  103. package/es/components/Datagrid/utils/getArgTypes.js +89 -0
  104. package/es/components/Datagrid/utils/getInlineEditColumns.js +153 -0
  105. package/es/components/Datagrid/utils/makeData.js +47 -2
  106. package/es/components/EditUpdateCards/EditUpdateCards.js +144 -0
  107. package/es/components/EditUpdateCards/index.js +7 -0
  108. package/es/components/ExportModal/ExportModal.js +1 -1
  109. package/es/components/ImportModal/ImportModal.js +3 -3
  110. package/es/components/InlineEdit/InlineEdit.js +28 -426
  111. package/es/components/InlineEditV1/InlineEditV1.js +447 -0
  112. package/es/components/InlineEditV1/index.js +7 -0
  113. package/es/components/InlineEditV2/InlineEditV2.js +289 -0
  114. package/es/components/InlineEditV2/index.js +7 -0
  115. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
  116. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +1 -1
  117. package/es/components/MultiAddSelect/MultiAddSelect.js +14 -7
  118. package/es/components/MultiAddSelect/index.js +6 -0
  119. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  120. package/es/components/OptionsTile/OptionsTile.js +29 -13
  121. package/es/components/PageHeader/PageHeader.js +4 -4
  122. package/es/components/PageHeader/PageHeaderTitle.js +1 -1
  123. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  124. package/es/components/RemoveModal/RemoveModal.js +20 -3
  125. package/es/components/Saving/Saving.js +1 -1
  126. package/es/components/SidePanel/SidePanel.js +45 -52
  127. package/es/components/SidePanel/motion/variants.js +45 -0
  128. package/es/components/SingleAddSelect/SingleAddSelect.js +6 -0
  129. package/es/components/SingleAddSelect/index.js +6 -0
  130. package/es/components/StatusIcon/StatusIcon.js +1 -1
  131. package/es/components/UserProfileImage/UserProfileImage.js +1 -1
  132. package/es/components/WebTerminal/WebTerminal.js +2 -2
  133. package/es/components/WebTerminal/WebTerminalContentWrapper.js +1 -1
  134. package/es/components/WebTerminal/hooks/index.js +6 -0
  135. package/es/components/WebTerminal/index.js +6 -0
  136. package/es/components/WebTerminal/preview-components/Navigation.js +7 -1
  137. package/es/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  138. package/es/components/WebTerminal/preview-components/index.js +7 -0
  139. package/es/components/index.js +3 -2
  140. package/es/global/js/hooks/index.js +2 -1
  141. package/es/global/js/hooks/useClickOutside.js +1 -1
  142. package/es/global/js/hooks/useControllableState.js +83 -0
  143. package/es/global/js/hooks/useResetCreateComponent.js +6 -2
  144. package/es/global/js/package-settings.js +7 -4
  145. package/es/global/js/utils/getBezierValues.js +20 -0
  146. package/es/global/js/utils/getNumberOfHiddenSteps.js +19 -0
  147. package/es/global/js/utils/motionConstants.js +45 -0
  148. package/es/global/js/utils/rangeWithCallback.js +13 -0
  149. package/es/global/js/utils/story-helper.js +5 -1
  150. package/es/global/js/utils/uuidv4.spec.js +4 -0
  151. package/lib/components/APIKeyModal/APIKeyModal.js +4 -4
  152. package/lib/components/ActionBar/ActionBarOverflowItems.js +1 -0
  153. package/lib/components/ActionSet/ActionSet.js +7 -3
  154. package/lib/components/AddSelect/AddSelect.js +5 -6
  155. package/lib/components/AddSelect/AddSelectBody.js +67 -30
  156. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +15 -4
  157. package/lib/components/AddSelect/AddSelectColumn.js +7 -7
  158. package/lib/components/AddSelect/AddSelectFilter.js +9 -6
  159. package/lib/components/AddSelect/AddSelectList.js +65 -30
  160. package/lib/components/AddSelect/AddSelectMetaPanel.js +8 -2
  161. package/lib/components/AddSelect/AddSelectSidebar.js +4 -1
  162. package/lib/components/AddSelect/AddSelectSort.js +5 -5
  163. package/lib/components/AddSelect/add-select-utils.js +9 -2
  164. package/lib/components/AddSelect/hooks/useItemSort.js +6 -0
  165. package/lib/components/AddSelect/hooks/useParentSelect.js +6 -0
  166. package/lib/components/AddSelect/hooks/usePath.js +9 -1
  167. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -6
  168. package/lib/components/Card/Card.js +16 -6
  169. package/lib/components/Card/CardFooter.js +3 -1
  170. package/lib/components/Card/CardHeader.js +21 -1
  171. package/lib/components/ComboButton/ComboButton.js +3 -3
  172. package/lib/components/CreateFullPage/CreateFullPage.js +4 -1
  173. package/lib/components/CreateTearsheet/CreateTearsheet.js +9 -1
  174. package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  175. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +64 -10
  176. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  177. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  178. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  179. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +51 -0
  180. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  181. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
  182. package/lib/components/Datagrid/Datagrid/DatagridContent.js +188 -0
  183. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  184. package/lib/components/Datagrid/Datagrid/DatagridRow.js +63 -6
  185. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  186. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +16 -5
  187. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +151 -9
  188. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +2 -1
  189. package/lib/components/Datagrid/Datagrid/DraggableElement.js +7 -3
  190. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -47
  191. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +5 -2
  192. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +48 -25
  193. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +60 -25
  194. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  195. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  196. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  197. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +562 -0
  198. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  199. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  200. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  201. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  202. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  203. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  204. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
  205. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +100 -0
  206. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -13
  207. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -35
  208. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  209. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  210. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  211. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  212. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  213. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  214. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  215. package/lib/components/Datagrid/index.js +17 -1
  216. package/lib/components/Datagrid/useActionsColumn.js +53 -13
  217. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  218. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  219. package/lib/components/Datagrid/useDefaultStringRenderer.js +5 -1
  220. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  221. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  222. package/lib/components/Datagrid/useInfiniteScroll.js +5 -2
  223. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  224. package/lib/components/Datagrid/useNestedRowExpander.js +63 -0
  225. package/lib/components/Datagrid/useNestedRows.js +17 -4
  226. package/lib/components/Datagrid/useRowExpander.js +17 -5
  227. package/lib/components/Datagrid/useRowSize.js +18 -13
  228. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  229. package/lib/components/Datagrid/useSelectRows.js +13 -3
  230. package/lib/components/Datagrid/useSortableColumns.js +5 -5
  231. package/lib/components/Datagrid/useStickyColumn.js +14 -0
  232. package/lib/components/Datagrid/utils/DatagridActions.js +260 -0
  233. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  234. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  235. package/lib/components/Datagrid/utils/getArgTypes.js +97 -0
  236. package/lib/components/Datagrid/utils/getInlineEditColumns.js +168 -0
  237. package/lib/components/Datagrid/utils/makeData.js +48 -2
  238. package/lib/components/EditUpdateCards/EditUpdateCards.js +152 -0
  239. package/lib/components/EditUpdateCards/index.js +13 -0
  240. package/lib/components/ExportModal/ExportModal.js +3 -3
  241. package/lib/components/ImportModal/ImportModal.js +4 -4
  242. package/lib/components/InlineEdit/InlineEdit.js +27 -426
  243. package/lib/components/InlineEditV1/InlineEditV1.js +464 -0
  244. package/lib/components/InlineEditV1/index.js +13 -0
  245. package/lib/components/InlineEditV2/InlineEditV2.js +309 -0
  246. package/lib/components/InlineEditV2/index.js +13 -0
  247. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +2 -2
  248. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +3 -3
  249. package/lib/components/MultiAddSelect/MultiAddSelect.js +14 -7
  250. package/lib/components/NotificationsPanel/NotificationsPanel.js +8 -8
  251. package/lib/components/OptionsTile/OptionsTile.js +34 -17
  252. package/lib/components/PageHeader/PageHeader.js +5 -5
  253. package/lib/components/PageHeader/PageHeaderTitle.js +1 -1
  254. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  255. package/lib/components/RemoveModal/RemoveModal.js +20 -3
  256. package/lib/components/Saving/Saving.js +5 -5
  257. package/lib/components/SidePanel/SidePanel.js +48 -53
  258. package/lib/components/SidePanel/motion/variants.js +55 -0
  259. package/lib/components/SingleAddSelect/SingleAddSelect.js +6 -0
  260. package/lib/components/StatusIcon/StatusIcon.js +45 -45
  261. package/lib/components/UserProfileImage/UserProfileImage.js +7 -7
  262. package/lib/components/WebTerminal/WebTerminal.js +3 -3
  263. package/lib/components/WebTerminal/hooks/index.js +6 -0
  264. package/lib/components/WebTerminal/preview-components/Navigation.js +10 -4
  265. package/lib/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  266. package/lib/components/index.js +21 -1
  267. package/lib/global/js/hooks/index.js +9 -1
  268. package/lib/global/js/hooks/useClickOutside.js +1 -1
  269. package/lib/global/js/hooks/useControllableState.js +94 -0
  270. package/lib/global/js/hooks/useResetCreateComponent.js +7 -2
  271. package/lib/global/js/package-settings.js +7 -4
  272. package/lib/global/js/utils/getBezierValues.js +29 -0
  273. package/lib/global/js/utils/getNumberOfHiddenSteps.js +28 -0
  274. package/lib/global/js/utils/motionConstants.js +55 -0
  275. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  276. package/lib/global/js/utils/story-helper.js +5 -1
  277. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  278. package/package.json +18 -16
  279. package/scss/components/AboutModal/_about-modal.scss +2 -1
  280. package/scss/components/ActionSet/_action-set.scss +9 -4
  281. package/scss/components/AddSelect/_add-select.scss +132 -34
  282. package/scss/components/AddSelect/_index.scss +1 -1
  283. package/scss/components/AddSelect/_storybook-styles.scss +1 -1
  284. package/scss/components/Card/_card.scss +1 -0
  285. package/scss/components/Cascade/_cascade.scss +1 -1
  286. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -0
  287. package/scss/components/Datagrid/_datagrid.scss +15 -0
  288. package/scss/components/Datagrid/_storybook-styles.scss +17 -5
  289. package/scss/components/Datagrid/styles/_datagrid.scss +129 -20
  290. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  291. package/scss/components/Datagrid/styles/_index.scss +1 -0
  292. package/scss/components/Datagrid/styles/_useActionsColumn.scss +14 -0
  293. package/scss/components/Datagrid/styles/_useExpandedRow.scss +57 -11
  294. package/scss/components/Datagrid/styles/_useInlineEdit.scss +419 -0
  295. package/scss/components/Datagrid/styles/_useNestedRows.scss +33 -1
  296. package/scss/components/Datagrid/styles/_useStickyColumn.scss +31 -2
  297. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +47 -6
  298. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -1
  299. package/scss/components/EditUpdateCards/_carbon-imports.scss +9 -0
  300. package/scss/components/EditUpdateCards/_edit-update-cards.scss +85 -0
  301. package/scss/components/EditUpdateCards/_index-with-carbon.scss +9 -0
  302. package/scss/components/EditUpdateCards/_index.scss +8 -0
  303. package/scss/components/EditUpdateCards/_storybook-styles.scss +55 -0
  304. package/scss/components/{InlineEdit → InlineEditV1}/_carbon-imports.scss +0 -0
  305. package/scss/components/{InlineEdit → InlineEditV1}/_index-with-carbon.scss +1 -1
  306. package/scss/components/{InlineEdit → InlineEditV1}/_index.scss +1 -1
  307. package/scss/components/{InlineEdit/_inline-edit.scss → InlineEditV1/_inline-edit-v1.scss} +5 -3
  308. package/scss/components/{InlineEdit → InlineEditV1}/_storybook-styles.scss +0 -0
  309. package/scss/components/InlineEditV2/_carbon-imports.scss +9 -0
  310. package/scss/components/InlineEditV2/_index-with-carbon.scss +9 -0
  311. package/scss/components/InlineEditV2/_index.scss +10 -0
  312. package/scss/components/InlineEditV2/_inline-edit-v2.scss +83 -0
  313. package/scss/components/InlineEditV2/_storybook-styles.scss +9 -0
  314. package/scss/components/MultiAddSelect/_multi-add-select.scss +7 -0
  315. package/scss/components/MultiAddSelect/_storybook-styles.scss +1 -1
  316. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -6
  317. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  318. package/scss/components/SidePanel/_side-panel.scss +3 -82
  319. package/scss/components/SidePanel/_storybook-styles.scss +6 -1
  320. package/scss/components/SingleAddSelect/_carbon-imports.scss +1 -1
  321. package/scss/components/SingleAddSelect/_index-with-carbon.scss +1 -1
  322. package/scss/components/SingleAddSelect/_index.scss +7 -0
  323. package/scss/components/SingleAddSelect/_single-add-select.scss +7 -0
  324. package/scss/components/SingleAddSelect/_storybook-styles.scss +1 -1
  325. package/scss/components/Tearsheet/_tearsheet.scss +2 -2
  326. package/scss/components/WebTerminal/_carbon-imports.scss +6 -0
  327. package/scss/components/WebTerminal/_index.scss +7 -0
  328. package/scss/components/WebTerminal/_storybook-styles.scss +7 -0
  329. package/scss/components/_index-released-only-with-carbon.scss +1 -1
  330. package/scss/components/_index-released-only.scss +2 -1
  331. package/scss/components/_index-with-carbon.scss +3 -1
  332. package/scss/components/_index.scss +3 -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;
@@ -373,13 +380,35 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
373
380
  setCurrentMatcher: setCurrentMatcher,
374
381
  usingMac: usingMac
375
382
  });
376
- } // Allow arrow key navigation if there are less than two activeKeys OR
377
- // if one of the activeCellCoordinates is in a header position
383
+ }
378
384
 
385
+ var deleteParams = {
386
+ selectionAreas: selectionAreas,
387
+ currentMatcher: currentMatcher,
388
+ rows: rows,
389
+ setActiveCellContent: setActiveCellContent,
390
+ updateData: updateData,
391
+ activeCellCoordinates: activeCellCoordinates
392
+ }; // Allow arrow key navigation if there are less than two activeKeys OR
393
+ // if one of the activeCellCoordinates is in a header position
379
394
 
380
395
  if (keysPressedList.length < 2 && !includesShift(keysPressedList) || activeCellCoordinates.row === 'header' || activeCellCoordinates.column === 'header') {
381
396
  switch (key) {
397
+ // Backspace
398
+ case 'Backspace':
399
+ {
400
+ handleCellDeletion(deleteParams);
401
+ break;
402
+ }
403
+ // Delete
404
+
405
+ case 'Delete':
406
+ {
407
+ handleCellDeletion(deleteParams);
408
+ break;
409
+ }
382
410
  // Enter
411
+
383
412
  case 'Enter':
384
413
  {
385
414
  handleActiveCellInSelectionEnter({
@@ -577,7 +606,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
577
606
  }
578
607
  }
579
608
  }
580
- }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac]);
609
+ }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac, updateData]);
581
610
 
582
611
  var startEditMode = function startEditMode() {
583
612
  setIsEditing(true);
@@ -613,6 +642,11 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
613
642
  }
614
643
 
615
644
  return;
645
+ }; // Mouse up on active cell
646
+
647
+
648
+ var handleActiveCellMouseUp = function handleActiveCellMouseUp() {
649
+ setClickAndHoldActive(false);
616
650
  }; // Mouse down on active cell
617
651
 
618
652
 
@@ -751,12 +785,13 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
751
785
  }
752
786
  }, [spreadsheetRef, currentMatcher]);
753
787
  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)),
788
+ 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
789
  ref: spreadsheetRef,
756
790
  role: "grid",
757
791
  tabIndex: 0,
758
792
  "aria-rowcount": (rows === null || rows === void 0 ? void 0 : rows.length) || 0,
759
793
  "aria-colcount": (columns === null || columns === void 0 ? void 0 : columns.length) || 0,
794
+ "aria-label": spreadsheetAriaLabel,
760
795
  onKeyDown: handleKeyPress,
761
796
  onFocus: function onFocus() {
762
797
  return setContainerHasFocus(true);
@@ -782,7 +817,8 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
782
817
  updateActiveCellCoordinates: updateActiveCellCoordinates,
783
818
  setHeaderCellHoldActive: setHeaderCellHoldActive,
784
819
  headerCellHoldActive: headerCellHoldActive,
785
- visibleColumns: visibleColumns
820
+ visibleColumns: visibleColumns,
821
+ selectAllAriaLabel: selectAllAriaLabel
786
822
  }), /*#__PURE__*/React.createElement(DataSpreadsheetBody, {
787
823
  activeCellCoordinates: activeCellCoordinates,
788
824
  ref: spreadsheetRef,
@@ -817,6 +853,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
817
853
  visibleColumns: visibleColumns
818
854
  }), /*#__PURE__*/React.createElement("button", {
819
855
  onMouseDown: handleActiveCellMouseDown,
856
+ onMouseUp: handleActiveCellMouseUp,
820
857
  onClick: handleActiveCellClick,
821
858
  onKeyDown: handleActiveCellKeyDown,
822
859
  onDoubleClick: handleActiveCellDoubleClick,
@@ -825,6 +862,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
825
862
  className: cx("".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__active-cell--highlight"), _defineProperty({}, "".concat(blockClass, "__active-cell--with-selection"), activeCellInsideSelectionArea)),
826
863
  type: "button"
827
864
  }, activeCellContent), /*#__PURE__*/React.createElement("textarea", {
865
+ id: "".concat(blockClass, "__cell-editor-text-area"),
828
866
  value: cellEditorValue,
829
867
  onKeyDown: handleEditSubmit({
830
868
  activeCellCoordinates: activeCellCoordinates,
@@ -844,7 +882,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
844
882
  cellEditorRulerRef.current.textContent = event.target.value;
845
883
  },
846
884
  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,
885
+ "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
886
  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
887
  }), /*#__PURE__*/React.createElement("pre", {
850
888
  "aria-hidden": true,
@@ -911,6 +949,21 @@ DataSpreadsheet.propTypes = {
911
949
  */
912
950
  onSelectionAreaChange: PropTypes.func,
913
951
 
952
+ /**
953
+ * The aria label applied to the Select all button
954
+ */
955
+ selectAllAriaLabel: PropTypes.string.isRequired,
956
+
957
+ /**
958
+ * The aria label applied to the Data spreadsheet component
959
+ */
960
+ spreadsheetAriaLabel: PropTypes.string.isRequired,
961
+
962
+ /**
963
+ * The theme the DataSpreadsheet should use (only used to render active cell/selection area colors on dark theme)
964
+ */
965
+ theme: PropTypes.oneOf(['light', 'dark']),
966
+
914
967
  /**
915
968
  * The total number of columns to be initially visible, additional columns will be rendered and
916
969
  * 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,