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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (241) hide show
  1. package/css/index-full-carbon.css +952 -143
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -2
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +783 -19
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +4 -2
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +678 -77
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +4 -2
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +757 -92
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +4 -2
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/APIKeyModal/APIKeyModal.js +1 -1
  18. package/es/components/AddSelect/AddSelect.js +0 -3
  19. package/es/components/AddSelect/AddSelectBody.js +20 -3
  20. package/es/components/AddSelect/AddSelectBreadcrumbs.js +11 -3
  21. package/es/components/AddSelect/AddSelectColumn.js +5 -5
  22. package/es/components/AddSelect/AddSelectFilter.js +5 -4
  23. package/es/components/AddSelect/AddSelectList.js +61 -27
  24. package/es/components/AddSelect/AddSelectMetaPanel.js +1 -1
  25. package/es/components/AddSelect/AddSelectSort.js +1 -1
  26. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +4 -6
  27. package/es/components/Card/Card.js +16 -6
  28. package/es/components/Card/CardFooter.js +3 -1
  29. package/es/components/Card/CardHeader.js +20 -1
  30. package/es/components/ComboButton/ComboButton.js +1 -1
  31. package/es/components/DataSpreadsheet/DataSpreadsheet.js +63 -11
  32. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  33. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  34. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  35. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +31 -0
  36. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  37. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
  38. package/es/components/Datagrid/Datagrid/DatagridContent.js +149 -0
  39. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  40. package/es/components/Datagrid/Datagrid/DatagridRow.js +10 -2
  41. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  42. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +13 -4
  43. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +5 -4
  44. package/es/components/Datagrid/Datagrid/DraggableElement.js +6 -2
  45. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -45
  46. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +1 -1
  47. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +35 -10
  48. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +61 -24
  49. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  50. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  51. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  52. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +534 -0
  53. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  54. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  55. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  56. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  57. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  58. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  59. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
  60. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +87 -0
  61. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -14
  62. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -36
  63. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  64. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  65. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  66. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  67. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  68. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  69. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  70. package/es/components/Datagrid/index.js +3 -1
  71. package/es/components/Datagrid/useActionsColumn.js +28 -12
  72. package/es/components/Datagrid/useColumnOrder.js +8 -0
  73. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  74. package/es/components/Datagrid/useDefaultStringRenderer.js +4 -1
  75. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  76. package/es/components/Datagrid/useExpandedRow.js +0 -1
  77. package/es/components/Datagrid/useInlineEdit.js +71 -0
  78. package/es/components/Datagrid/useNestedRowExpander.js +42 -0
  79. package/es/components/Datagrid/useNestedRows.js +2 -2
  80. package/es/components/Datagrid/useRowExpander.js +1 -1
  81. package/es/components/Datagrid/useRowSize.js +17 -6
  82. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  83. package/es/components/Datagrid/useSelectRows.js +12 -2
  84. package/es/components/Datagrid/useSortableColumns.js +1 -1
  85. package/es/components/Datagrid/useStickyColumn.js +11 -0
  86. package/es/components/Datagrid/utils/DatagridActions.js +152 -0
  87. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  88. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  89. package/es/components/Datagrid/utils/getArgTypes.js +85 -0
  90. package/es/components/Datagrid/utils/getInlineEditColumns.js +153 -0
  91. package/es/components/Datagrid/utils/makeData.js +47 -2
  92. package/es/components/ExportModal/ExportModal.js +1 -1
  93. package/es/components/ImportModal/ImportModal.js +3 -3
  94. package/es/components/InlineEdit/InlineEdit.js +11 -9
  95. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
  96. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +1 -1
  97. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  98. package/es/components/OptionsTile/OptionsTile.js +1 -1
  99. package/es/components/PageHeader/PageHeader.js +1 -1
  100. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  101. package/es/components/Saving/Saving.js +1 -1
  102. package/es/components/SidePanel/SidePanel.js +1 -1
  103. package/es/components/StatusIcon/StatusIcon.js +1 -1
  104. package/es/components/UserProfileImage/UserProfileImage.js +1 -1
  105. package/es/components/WebTerminal/WebTerminal.js +2 -2
  106. package/es/components/WebTerminal/WebTerminalContentWrapper.js +1 -1
  107. package/es/components/WebTerminal/hooks/index.js +6 -0
  108. package/es/components/WebTerminal/index.js +6 -0
  109. package/es/components/WebTerminal/preview-components/Navigation.js +7 -1
  110. package/es/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  111. package/es/components/WebTerminal/preview-components/index.js +7 -0
  112. package/es/components/index.js +1 -1
  113. package/es/global/js/hooks/useClickOutside.js +1 -1
  114. package/es/global/js/package-settings.js +3 -3
  115. package/es/global/js/utils/rangeWithCallback.js +13 -0
  116. package/es/global/js/utils/story-helper.js +5 -1
  117. package/es/global/js/utils/uuidv4.spec.js +4 -0
  118. package/lib/components/APIKeyModal/APIKeyModal.js +4 -4
  119. package/lib/components/AddSelect/AddSelect.js +0 -4
  120. package/lib/components/AddSelect/AddSelectBody.js +20 -3
  121. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +14 -3
  122. package/lib/components/AddSelect/AddSelectColumn.js +5 -5
  123. package/lib/components/AddSelect/AddSelectFilter.js +5 -4
  124. package/lib/components/AddSelect/AddSelectList.js +62 -28
  125. package/lib/components/AddSelect/AddSelectMetaPanel.js +2 -2
  126. package/lib/components/AddSelect/AddSelectSort.js +4 -4
  127. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -6
  128. package/lib/components/Card/Card.js +16 -6
  129. package/lib/components/Card/CardFooter.js +3 -1
  130. package/lib/components/Card/CardHeader.js +21 -1
  131. package/lib/components/ComboButton/ComboButton.js +3 -3
  132. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +63 -10
  133. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  134. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  135. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  136. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +42 -0
  137. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  138. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
  139. package/lib/components/Datagrid/Datagrid/DatagridContent.js +183 -0
  140. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  141. package/lib/components/Datagrid/Datagrid/DatagridRow.js +19 -2
  142. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  143. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +16 -5
  144. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +6 -5
  145. package/lib/components/Datagrid/Datagrid/DraggableElement.js +7 -3
  146. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -47
  147. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +2 -2
  148. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +47 -25
  149. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +59 -23
  150. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  151. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  152. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  153. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +558 -0
  154. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  155. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  156. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  157. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  158. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  159. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  160. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
  161. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +100 -0
  162. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -13
  163. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -35
  164. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  165. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  166. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  167. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  168. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  169. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  170. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  171. package/lib/components/Datagrid/index.js +17 -1
  172. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  173. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  174. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  175. package/lib/components/Datagrid/useDefaultStringRenderer.js +5 -1
  176. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  177. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  178. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  179. package/lib/components/Datagrid/useNestedRowExpander.js +57 -0
  180. package/lib/components/Datagrid/useNestedRows.js +3 -3
  181. package/lib/components/Datagrid/useRowExpander.js +3 -3
  182. package/lib/components/Datagrid/useRowSize.js +18 -13
  183. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  184. package/lib/components/Datagrid/useSelectRows.js +12 -2
  185. package/lib/components/Datagrid/useSortableColumns.js +5 -5
  186. package/lib/components/Datagrid/useStickyColumn.js +11 -0
  187. package/lib/components/Datagrid/utils/DatagridActions.js +170 -0
  188. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  189. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  190. package/lib/components/Datagrid/utils/getArgTypes.js +93 -0
  191. package/lib/components/Datagrid/utils/getInlineEditColumns.js +168 -0
  192. package/lib/components/Datagrid/utils/makeData.js +48 -2
  193. package/lib/components/ExportModal/ExportModal.js +3 -3
  194. package/lib/components/ImportModal/ImportModal.js +4 -4
  195. package/lib/components/InlineEdit/InlineEdit.js +16 -14
  196. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +2 -2
  197. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +3 -3
  198. package/lib/components/NotificationsPanel/NotificationsPanel.js +8 -8
  199. package/lib/components/OptionsTile/OptionsTile.js +6 -6
  200. package/lib/components/PageHeader/PageHeader.js +2 -2
  201. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  202. package/lib/components/Saving/Saving.js +5 -5
  203. package/lib/components/SidePanel/SidePanel.js +3 -3
  204. package/lib/components/StatusIcon/StatusIcon.js +45 -45
  205. package/lib/components/UserProfileImage/UserProfileImage.js +7 -7
  206. package/lib/components/WebTerminal/WebTerminal.js +3 -3
  207. package/lib/components/WebTerminal/hooks/index.js +6 -0
  208. package/lib/components/WebTerminal/preview-components/Navigation.js +10 -4
  209. package/lib/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  210. package/lib/components/index.js +12 -0
  211. package/lib/global/js/hooks/useClickOutside.js +1 -1
  212. package/lib/global/js/package-settings.js +3 -3
  213. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  214. package/lib/global/js/utils/story-helper.js +5 -1
  215. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  216. package/package.json +15 -15
  217. package/scss/components/AddSelect/_add-select.scss +127 -28
  218. package/scss/components/Card/_card.scss +1 -0
  219. package/scss/components/Cascade/_cascade.scss +1 -1
  220. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -0
  221. package/scss/components/Datagrid/_datagrid.scss +7 -0
  222. package/scss/components/Datagrid/_storybook-styles.scss +8 -5
  223. package/scss/components/Datagrid/styles/_datagrid.scss +38 -14
  224. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  225. package/scss/components/Datagrid/styles/_index.scss +1 -0
  226. package/scss/components/Datagrid/styles/_useActionsColumn.scss +14 -0
  227. package/scss/components/Datagrid/styles/_useExpandedRow.scss +37 -9
  228. package/scss/components/Datagrid/styles/_useInlineEdit.scss +404 -0
  229. package/scss/components/Datagrid/styles/_useNestedRows.scss +16 -1
  230. package/scss/components/Datagrid/styles/_useStickyColumn.scss +31 -2
  231. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +45 -6
  232. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -1
  233. package/scss/components/InlineEdit/_inline-edit.scss +4 -2
  234. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -6
  235. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  236. package/scss/components/SidePanel/_side-panel.scss +3 -6
  237. package/scss/components/Tearsheet/_tearsheet.scss +2 -2
  238. package/scss/components/WebTerminal/_carbon-imports.scss +6 -0
  239. package/scss/components/WebTerminal/_index.scss +7 -0
  240. package/scss/components/WebTerminal/_storybook-styles.scss +7 -0
  241. package/scss/components/_index-released-only.scss +1 -0
@@ -17,7 +17,7 @@ var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _react2 = require("@carbon/react");
19
19
 
20
- var _iconsReact = require("@carbon/icons-react");
20
+ var _icons = require("@carbon/react/icons");
21
21
 
22
22
  var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
@@ -40,6 +40,7 @@ var AddSelectList = function AddSelectList(_ref) {
40
40
  var _modifiers$options;
41
41
 
42
42
  var appliedModifiers = _ref.appliedModifiers,
43
+ displayMetalPanel = _ref.displayMetalPanel,
43
44
  filteredItems = _ref.filteredItems,
44
45
  metaIconDescription = _ref.metaIconDescription,
45
46
  modifiers = _ref.modifiers,
@@ -59,7 +60,10 @@ var AddSelectList = function AddSelectList(_ref) {
59
60
  setSingleSelection(value);
60
61
  };
61
62
 
62
- var handleMultiSelection = function handleMultiSelection(id, checked) {
63
+ var handleMultiSelection = function handleMultiSelection(event, _ref2) {
64
+ var checked = _ref2.checked,
65
+ id = _ref2.id;
66
+
63
67
  if (checked) {
64
68
  var newValues = [].concat((0, _toConsumableArray2.default)(multiSelection), [id]);
65
69
  setMultiSelection(newValues);
@@ -72,21 +76,25 @@ var AddSelectList = function AddSelectList(_ref) {
72
76
  }
73
77
  };
74
78
 
75
- var onNavigateItem = function onNavigateItem(_ref2) {
76
- var id = _ref2.id,
77
- title = _ref2.title;
79
+ var onNavigateItem = function onNavigateItem(_ref3) {
80
+ var id = _ref3.id,
81
+ title = _ref3.title;
78
82
  setParentSelected(id, title, parentId);
79
83
  };
80
84
 
81
85
  var isSelected = function isSelected(id) {
82
- return multiSelection.includes(id);
86
+ if (multi) {
87
+ return multiSelection.includes(id);
88
+ }
89
+
90
+ return id === singleSelection;
83
91
  };
84
92
 
85
- var getAvatarProps = function getAvatarProps(_ref3) {
86
- var src = _ref3.src,
87
- alt = _ref3.alt,
88
- icon = _ref3.icon,
89
- backgroundColor = _ref3.backgroundColor;
93
+ var getAvatarProps = function getAvatarProps(_ref4) {
94
+ var src = _ref4.src,
95
+ alt = _ref4.alt,
96
+ icon = _ref4.icon,
97
+ backgroundColor = _ref4.backgroundColor;
90
98
  return {
91
99
  className: "".concat(blockClass, "-cell-avatar"),
92
100
  size: 'lg',
@@ -98,8 +106,8 @@ var AddSelectList = function AddSelectList(_ref) {
98
106
  };
99
107
  };
100
108
 
101
- var getItemIcon = function getItemIcon(_ref4) {
102
- var Icon = _ref4.icon;
109
+ var getItemIcon = function getItemIcon(_ref5) {
110
+ var Icon = _ref5.icon;
103
111
  return /*#__PURE__*/_react.default.createElement(Icon, null);
104
112
  };
105
113
 
@@ -114,31 +122,59 @@ var AddSelectList = function AddSelectList(_ref) {
114
122
  setAppliedModifiers(modifiersClone);
115
123
  };
116
124
 
125
+ var metaPanelHandler = function metaPanelHandler(item) {
126
+ if (item.meta) {
127
+ setDisplayMetaPanel(item);
128
+ }
129
+ };
130
+
131
+ var isInMetaPanel = function isInMetaPanel(id) {
132
+ return id === (displayMetalPanel === null || displayMetalPanel === void 0 ? void 0 : displayMetalPanel.id);
133
+ };
134
+
117
135
  return /*#__PURE__*/_react.default.createElement("div", {
118
- className: "".concat(blockClass, "-wrapper")
136
+ className: (0, _classnames.default)("".concat(blockClass, "-wrapper"), (0, _defineProperty2.default)({}, "".concat(blockClass, "-wrapper-multi"), multi))
119
137
  }, /*#__PURE__*/_react.default.createElement(_react2.StructuredListWrapper, {
120
138
  selection: true,
121
139
  className: "".concat(blockClass)
122
140
  }, /*#__PURE__*/_react.default.createElement(_react2.StructuredListBody, null, filteredItems.map(function (item) {
141
+ var _cx2;
142
+
123
143
  return /*#__PURE__*/_react.default.createElement(_react2.StructuredListRow, {
124
144
  key: item.id,
125
- className: (0, _classnames.default)("".concat(blockClass, "-row"), (0, _defineProperty2.default)({}, "".concat(blockClass, "-row-selected"), isSelected(item.id)))
126
- }, /*#__PURE__*/_react.default.createElement(_react2.StructuredListCell, {
127
- className: "".concat(blockClass, "-cell")
145
+ className: (0, _classnames.default)("".concat(blockClass, "-row"), (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "-row-selected"), isSelected(item.id)), (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "-row-meta-selected"), isInMetaPanel(item.id)), _cx2)),
146
+ onClick: function onClick(evt) {
147
+ return metaPanelHandler(item, evt);
148
+ }
149
+ }, /*#__PURE__*/_react.default.createElement("div", {
150
+ className: "".concat(blockClass, "-cell"),
151
+ onClick: function onClick() {
152
+ metaPanelHandler(item);
153
+ },
154
+ onKeyDown: function onKeyDown() {
155
+ metaPanelHandler(item);
156
+ },
157
+ role: "button",
158
+ tabIndex: "0"
128
159
  }, /*#__PURE__*/_react.default.createElement("div", {
129
160
  className: "".concat(blockClass, "-cell-wrapper")
130
161
  }, multi ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
131
162
  className: "".concat(blockClass, "-checkbox")
163
+ },
164
+ /*#__PURE__*/
165
+ // hacky way to prevent checkbox from triggering the meta onclick handler
166
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
167
+ _react.default.createElement("div", {
168
+ onClick: function onClick(event) {
169
+ return event.stopPropagation();
170
+ }
132
171
  }, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
133
- onChange: function onChange(event, _ref5) {
134
- var checked = _ref5.checked;
135
- return handleMultiSelection(item.id, checked);
136
- },
172
+ onChange: handleMultiSelection,
137
173
  labelText: item.title,
138
174
  id: item.id,
139
175
  checked: isSelected(item.id),
140
176
  className: "".concat(blockClass, "-checkbox-wrapper")
141
- }), /*#__PURE__*/_react.default.createElement("div", {
177
+ })), /*#__PURE__*/_react.default.createElement("div", {
142
178
  className: "".concat(blockClass, "-checkbox-label-wrapper")
143
179
  }, item.avatar && /*#__PURE__*/_react.default.createElement(_UserProfileImage.UserProfileImage, getAvatarProps(item.avatar)), item.icon && /*#__PURE__*/_react.default.createElement("div", {
144
180
  className: "".concat(blockClass, "-cell-icon")
@@ -170,11 +206,11 @@ var AddSelectList = function AddSelectList(_ref) {
170
206
  onChange: function onChange() {
171
207
  return handleSingleSelection(item.id);
172
208
  },
173
- selected: item.id === singleSelection
209
+ checked: isSelected(item.id)
174
210
  }), item.children && /*#__PURE__*/_react.default.createElement(_react2.Button, {
175
211
  className: "".concat(blockClass, "-view-children"),
176
212
  renderIcon: function renderIcon(props) {
177
- return /*#__PURE__*/_react.default.createElement(_iconsReact.ChevronRight, (0, _extends2.default)({
213
+ return /*#__PURE__*/_react.default.createElement(_icons.ChevronRight, (0, _extends2.default)({
178
214
  size: 16
179
215
  }, props));
180
216
  },
@@ -192,7 +228,7 @@ var AddSelectList = function AddSelectList(_ref) {
192
228
  }, /*#__PURE__*/_react.default.createElement(_react2.Button, {
193
229
  className: "".concat(blockClass, "-view-meta"),
194
230
  renderIcon: function renderIcon(props) {
195
- return /*#__PURE__*/_react.default.createElement(_iconsReact.View, (0, _extends2.default)({
231
+ return /*#__PURE__*/_react.default.createElement(_icons.View, (0, _extends2.default)({
196
232
  size: 16
197
233
  }, props));
198
234
  },
@@ -200,9 +236,6 @@ var AddSelectList = function AddSelectList(_ref) {
200
236
  tooltipPosition: "left",
201
237
  tooltipAlignment: "center",
202
238
  hasIconOnly: true,
203
- onClick: function onClick() {
204
- return setDisplayMetaPanel(item);
205
- },
206
239
  kind: "ghost",
207
240
  size: "sm"
208
241
  })))));
@@ -212,6 +245,7 @@ var AddSelectList = function AddSelectList(_ref) {
212
245
  exports.AddSelectList = AddSelectList;
213
246
  AddSelectList.propTypes = {
214
247
  appliedModifiers: _propTypes.default.array,
248
+ displayMetalPanel: _propTypes.default.object,
215
249
  filteredItems: _propTypes.default.array,
216
250
  metaIconDescription: _propTypes.default.string,
217
251
  modifiers: _propTypes.default.object,
@@ -15,7 +15,7 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
- var _iconsReact = require("@carbon/icons-react");
18
+ var _icons = require("@carbon/react/icons");
19
19
 
20
20
  var _react2 = require("@carbon/react");
21
21
 
@@ -46,7 +46,7 @@ var AddSelectMetaPanel = function AddSelectMetaPanel(_ref) {
46
46
  className: "".concat(blockClass, "-title")
47
47
  }, title), /*#__PURE__*/_react.default.createElement(_react2.Button, {
48
48
  renderIcon: function renderIcon(props) {
49
- return /*#__PURE__*/_react.default.createElement(_iconsReact.Close, (0, _extends2.default)({
49
+ return /*#__PURE__*/_react.default.createElement(_icons.Close, (0, _extends2.default)({
50
50
  size: 16
51
51
  }, props));
52
52
  },
@@ -17,7 +17,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
18
  var _react2 = require("@carbon/react");
19
19
 
20
- var _iconsReact = require("@carbon/icons-react");
20
+ var _icons = require("@carbon/react/icons");
21
21
 
22
22
  var _settings = require("../../settings");
23
23
 
@@ -38,14 +38,14 @@ var AddSelectSort = function AddSelectSort(_ref) {
38
38
  var sortByOpts = sortBy ? sortBy.reduce(function (acc, cur) {
39
39
  var opts = [{
40
40
  id: "".concat(cur, "-asc"),
41
- itemText: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_iconsReact.ArrowUp, {
41
+ itemText: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_icons.ArrowUp, {
42
42
  size: 16
43
43
  }), cur),
44
44
  direction: 'asc',
45
45
  attribute: cur
46
46
  }, {
47
47
  id: "".concat(cur, "-desc"),
48
- itemText: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_iconsReact.ArrowDown, {
48
+ itemText: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_icons.ArrowDown, {
49
49
  size: 16
50
50
  }), cur),
51
51
  direction: 'desc',
@@ -65,7 +65,7 @@ var AddSelectSort = function AddSelectSort(_ref) {
65
65
  className: blockClass
66
66
  }, sortByOpts.length > 0 && /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, {
67
67
  renderIcon: function renderIcon(props) {
68
- return /*#__PURE__*/_react.default.createElement(_iconsReact.ArrowsVertical, (0, _extends2.default)({
68
+ return /*#__PURE__*/_react.default.createElement(_icons.ArrowsVertical, (0, _extends2.default)({
69
69
  size: 32
70
70
  }, props));
71
71
  },
@@ -23,13 +23,13 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _classnames = _interopRequireDefault(require("classnames"));
25
25
 
26
+ var _reactResizeDetector = require("react-resize-detector");
27
+
26
28
  var _react2 = require("@carbon/react");
27
29
 
28
30
  var _settings = require("../../settings");
29
31
 
30
- var _reactResizeDetector = require("react-resize-detector");
31
-
32
- var _iconsReact = require("@carbon/icons-react");
32
+ var _icons = require("@carbon/react/icons");
33
33
 
34
34
  var _uuidv = _interopRequireDefault(require("../../global/js/utils/uuidv4"));
35
35
 
@@ -97,7 +97,7 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
97
97
  iconDescription: overflowAriaLabel // also needs setting to avoid a11y "Accessible name does not match or contain the visible label text"
98
98
  ,
99
99
  renderIcon: function renderIcon(props) {
100
- return /*#__PURE__*/_react.default.createElement(_iconsReact.OverflowMenuHorizontal, (0, _extends2.default)({
100
+ return /*#__PURE__*/_react.default.createElement(_icons.OverflowMenuHorizontal, (0, _extends2.default)({
101
101
  size: 32
102
102
  }, props));
103
103
  },
@@ -126,7 +126,7 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
126
126
  }, /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, {
127
127
  ariaLabel: overflowAriaLabel,
128
128
  renderIcon: function renderIcon(props) {
129
- return /*#__PURE__*/_react.default.createElement(_iconsReact.OverflowMenuHorizontal, (0, _extends2.default)({
129
+ return /*#__PURE__*/_react.default.createElement(_icons.OverflowMenuHorizontal, (0, _extends2.default)({
130
130
  size: 32
131
131
  }, props));
132
132
  }
@@ -316,7 +316,7 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
316
316
  return /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
317
317
  label: backItem.title || backItem.label,
318
318
  align: "right"
319
- }, /*#__PURE__*/_react.default.createElement(_iconsReact.ArrowLeft, {
319
+ }, /*#__PURE__*/_react.default.createElement(_icons.ArrowLeft, {
320
320
  size: 16
321
321
  }));
322
322
  }
@@ -29,7 +29,7 @@ var _CardFooter = require("./CardFooter");
29
29
 
30
30
  var _settings = require("../../settings");
31
31
 
32
- 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"],
32
+ 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"],
33
33
  _excluded2 = ["id"],
34
34
  _excluded3 = ["id", "icon", "onClick", "iconDescription", "href"];
35
35
 
@@ -50,6 +50,7 @@ var defaults = {
50
50
  mediaPosition: 'top',
51
51
  overflowActions: Object.freeze([]),
52
52
  primaryButtonKind: 'primary',
53
+ primaryButtonPlacement: 'bottom',
53
54
  productive: false,
54
55
  secondaryButtonKind: 'secondary',
55
56
  titleSize: 'default'
@@ -80,6 +81,8 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
80
81
  primaryButtonIcon = _ref.primaryButtonIcon,
81
82
  _ref$primaryButtonKin = _ref.primaryButtonKind,
82
83
  primaryButtonKind = _ref$primaryButtonKin === void 0 ? defaults.primaryButtonKind : _ref$primaryButtonKin,
84
+ _ref$primaryButtonPla = _ref.primaryButtonPlacement,
85
+ primaryButtonPlacement = _ref$primaryButtonPla === void 0 ? defaults.primaryButtonPlacement : _ref$primaryButtonPla,
83
86
  primaryButtonText = _ref.primaryButtonText,
84
87
  _ref$productive = _ref.productive,
85
88
  productive = _ref$productive === void 0 ? defaults.productive : _ref$productive,
@@ -93,9 +96,9 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
93
96
  titleSize = _ref$titleSize === void 0 ? defaults.titleSize : _ref$titleSize,
94
97
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
95
98
  var blockClass = "".concat(_settings.pkg.prefix, "--card");
96
- var hasActions = actionIcons.length > 0 || overflowActions.length > 0;
99
+ var hasActions = actionIcons.length > 0 || overflowActions.length > 0 || primaryButtonText && primaryButtonPlacement === 'top';
97
100
  var hasFooterActions = hasActions && actionsPlacement === 'bottom';
98
- var hasFooterButton = !!secondaryButtonText || !!primaryButtonText;
101
+ var hasFooterButton = !!secondaryButtonText || !!primaryButtonText && primaryButtonPlacement === 'bottom';
99
102
  var hasBottomBar = hasFooterActions || hasFooterButton;
100
103
  var hasClickEvent = !!onClick || !!onKeyDown;
101
104
  var clickableProps = {
@@ -195,10 +198,15 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
195
198
 
196
199
  var getHeaderProps = function getHeaderProps() {
197
200
  return {
198
- actions: getActions(),
201
+ actions: actionsPlacement === 'top' ? getActions() : '',
202
+ noActionIcons: actionIcons.length > 0 && actionsPlacement === 'top' ? false : true,
199
203
  actionsPlacement: actionsPlacement,
204
+ onPrimaryButtonClick: onPrimaryButtonClick,
205
+ primaryButtonIcon: primaryButtonIcon,
206
+ primaryButtonPlacement: primaryButtonPlacement,
207
+ primaryButtonText: primaryButtonText,
200
208
  description: description,
201
- hasActions: hasActions && actionsPlacement === 'top',
209
+ hasActions: hasActions,
202
210
  label: label,
203
211
  title: title,
204
212
  titleSize: titleSize
@@ -217,7 +225,7 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
217
225
 
218
226
  var getFooterProps = function getFooterProps() {
219
227
  return {
220
- actions: getActions(),
228
+ actions: actionsPlacement === 'bottom' ? getActions() : '',
221
229
  actionsPlacement: actionsPlacement,
222
230
  hasActions: hasFooterActions,
223
231
  hasButton: hasFooterButton,
@@ -226,6 +234,7 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
226
234
  primaryButtonHref: primaryButtonHref,
227
235
  primaryButtonIcon: primaryButtonIcon,
228
236
  primaryButtonKind: primaryButtonKind,
237
+ primaryButtonPlacement: primaryButtonPlacement,
229
238
  primaryButtonText: primaryButtonText,
230
239
  productive: productive,
231
240
  secondaryButtonHref: secondaryButtonHref,
@@ -276,6 +285,7 @@ Card.propTypes = {
276
285
  primaryButtonHref: _propTypes.default.string,
277
286
  primaryButtonIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
278
287
  primaryButtonKind: _propTypes.default.oneOf(['primary', 'ghost']),
288
+ primaryButtonPlacement: _propTypes.default.oneOf(['top', 'bottom']),
279
289
  primaryButtonText: _propTypes.default.node,
280
290
  productive: _propTypes.default.bool,
281
291
  secondaryButtonHref: _propTypes.default.string,
@@ -44,6 +44,7 @@ var CardFooter = function CardFooter(_ref) {
44
44
  primaryButtonIcon = _ref.primaryButtonIcon,
45
45
  _ref$primaryButtonKin = _ref.primaryButtonKind,
46
46
  primaryButtonKind = _ref$primaryButtonKin === void 0 ? defaults.primaryButtonKind : _ref$primaryButtonKin,
47
+ primaryButtonPlacement = _ref.primaryButtonPlacement,
47
48
  primaryButtonText = _ref.primaryButtonText,
48
49
  _ref$productive = _ref.productive,
49
50
  productive = _ref$productive === void 0 ? defaults.productive : _ref$productive,
@@ -63,7 +64,7 @@ var CardFooter = function CardFooter(_ref) {
63
64
  size: "md",
64
65
  renderIcon: secondaryButtonIcon,
65
66
  href: secondaryButtonHref
66
- }, secondaryButtonText), primaryButtonText && /*#__PURE__*/_react.default.createElement(_react2.Button, {
67
+ }, secondaryButtonText), primaryButtonText && primaryButtonPlacement === 'bottom' && /*#__PURE__*/_react.default.createElement(_react2.Button, {
67
68
  kind: productive ? 'ghost' : primaryButtonKind,
68
69
  onClick: onPrimaryButtonClick,
69
70
  size: "md",
@@ -84,6 +85,7 @@ CardFooter.propTypes = {
84
85
  primaryButtonHref: _propTypes.default.string,
85
86
  primaryButtonIcon: _propTypes.default.string,
86
87
  primaryButtonKind: _propTypes.default.oneOf(['primary', 'ghost']),
88
+ primaryButtonPlacement: _propTypes.default.oneOf(['top', 'bottom']),
87
89
  primaryButtonText: _propTypes.default.string,
88
90
  productive: _propTypes.default.bool,
89
91
  secondaryButtonHref: _propTypes.default.string,
@@ -17,6 +17,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
18
  var _settings = require("../../settings");
19
19
 
20
+ var _react2 = require("@carbon/react");
21
+
20
22
  //
21
23
  // Copyright IBM Corp. 2020, 2021
22
24
  //
@@ -33,6 +35,11 @@ var CardHeader = function CardHeader(_ref) {
33
35
  var _cx;
34
36
 
35
37
  var actions = _ref.actions,
38
+ noActionIcons = _ref.noActionIcons,
39
+ onPrimaryButtonClick = _ref.onPrimaryButtonClick,
40
+ primaryButtonIcon = _ref.primaryButtonIcon,
41
+ primaryButtonPlacement = _ref.primaryButtonPlacement,
42
+ primaryButtonText = _ref.primaryButtonText,
36
43
  description = _ref.description,
37
44
  _ref$hasActions = _ref.hasActions,
38
45
  hasActions = _ref$hasActions === void 0 ? defaults.hasActions : _ref$hasActions,
@@ -43,6 +50,8 @@ var CardHeader = function CardHeader(_ref) {
43
50
  var blockClass = "".concat(_settings.pkg.prefix, "--card");
44
51
  var headerClass = "".concat(blockClass, "__header");
45
52
  var headerClasses = (0, _classnames.default)(headerClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(headerClass, "-label-only"), label && !title && !description), (0, _defineProperty2.default)(_cx, "".concat(headerClass, "-has-label"), !!label), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-lg"), titleSize === 'large'), _cx));
53
+ var actionGhostButton = "".concat(blockClass, "__actions-header-ghost-button");
54
+ var actionGhostButtonClass = (0, _classnames.default)(actionGhostButton, (0, _defineProperty2.default)({}, "".concat(actionGhostButton, "--only"), noActionIcons));
46
55
  return /*#__PURE__*/_react.default.createElement("div", {
47
56
  className: headerClasses
48
57
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -57,7 +66,13 @@ var CardHeader = function CardHeader(_ref) {
57
66
  className: "".concat(blockClass, "__description")
58
67
  }, description)), hasActions && /*#__PURE__*/_react.default.createElement("div", {
59
68
  className: "".concat(blockClass, "__actions ").concat(blockClass, "__actions-header")
60
- }, actions)));
69
+ }, actions, primaryButtonText && primaryButtonPlacement === 'top' && /*#__PURE__*/_react.default.createElement(_react2.Button, {
70
+ kind: "ghost",
71
+ size: "small",
72
+ renderIcon: primaryButtonIcon,
73
+ onClick: onPrimaryButtonClick,
74
+ className: actionGhostButtonClass
75
+ }, primaryButtonText))));
61
76
  };
62
77
 
63
78
  exports.CardHeader = CardHeader;
@@ -66,6 +81,11 @@ CardHeader.propTypes = {
66
81
  description: _propTypes.default.string,
67
82
  hasActions: _propTypes.default.bool,
68
83
  label: _propTypes.default.string,
84
+ noActionIcons: _propTypes.default.bool,
85
+ onPrimaryButtonClick: _propTypes.default.func,
86
+ primaryButtonIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
87
+ primaryButtonPlacement: _propTypes.default.oneOf(['top', 'bottom']),
88
+ primaryButtonText: _propTypes.default.string,
69
89
  title: _propTypes.default.string,
70
90
  titleSize: _propTypes.default.oneOf(['default', 'large'])
71
91
  };
@@ -19,7 +19,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
19
19
 
20
20
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
21
21
 
22
- var _iconsReact = require("@carbon/icons-react");
22
+ var _icons = require("@carbon/react/icons");
23
23
 
24
24
  var _react = require("@carbon/react");
25
25
 
@@ -91,11 +91,11 @@ var ComboButton = function ComboButton(_ref) {
91
91
  },
92
92
  renderIcon: function renderIcon() {
93
93
  return /*#__PURE__*/(0, _react2.createElement)(isOpen ? function (props) {
94
- return /*#__PURE__*/_react2.default.createElement(_iconsReact.ChevronUp, (0, _extends2.default)({
94
+ return /*#__PURE__*/_react2.default.createElement(_icons.ChevronUp, (0, _extends2.default)({
95
95
  size: 16
96
96
  }, props));
97
97
  } : function (props) {
98
- return /*#__PURE__*/_react2.default.createElement(_iconsReact.ChevronDown, (0, _extends2.default)({
98
+ return /*#__PURE__*/_react2.default.createElement(_icons.ChevronDown, (0, _extends2.default)({
99
99
  size: 16
100
100
  }, props));
101
101
  }, {
@@ -63,7 +63,9 @@ var _handleActiveCellInSelectionEnter = require("./utils/handleActiveCellInSelec
63
63
 
64
64
  var _handleActiveCellInSelectionTab = require("./utils/handleActiveCellInSelectionTab");
65
65
 
66
- var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "totalVisibleColumns"];
66
+ var _handleCellDeletion = require("./utils/handleCellDeletion");
67
+
68
+ var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
67
69
 
68
70
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
69
71
 
@@ -85,13 +87,16 @@ var defaults = {
85
87
  defaultEmptyRowCount: 16,
86
88
  onDataUpdate: Object.freeze(function () {}),
87
89
  onActiveCellChange: Object.freeze(function () {}),
88
- onSelectionAreaChange: Object.freeze(function () {})
90
+ onSelectionAreaChange: Object.freeze(function () {}),
91
+ theme: 'light'
89
92
  };
90
93
  /**
91
94
  * DataSpreadsheet: used to organize and display large amounts of structured data, separated by columns and rows in a grid-like format.
92
95
  */
93
96
 
94
97
  var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
98
+ var _cx;
99
+
95
100
  var _ref$cellSize = _ref.cellSize,
96
101
  cellSize = _ref$cellSize === void 0 ? defaults.cellSize : _ref$cellSize,
97
102
  className = _ref.className,
@@ -108,6 +113,9 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
108
113
  onActiveCellChange = _ref$onActiveCellChan === void 0 ? defaults.onActiveCellChange : _ref$onActiveCellChan,
109
114
  _ref$onSelectionAreaC = _ref.onSelectionAreaChange,
110
115
  onSelectionAreaChange = _ref$onSelectionAreaC === void 0 ? defaults.onSelectionAreaChange : _ref$onSelectionAreaC,
116
+ selectAllAriaLabel = _ref.selectAllAriaLabel,
117
+ spreadsheetAriaLabel = _ref.spreadsheetAriaLabel,
118
+ theme = _ref.theme,
111
119
  totalVisibleColumns = _ref.totalVisibleColumns,
112
120
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
113
121
  var multiKeyTrackingRef = (0, _react.useRef)();
@@ -214,11 +222,11 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
214
222
  visibleColumns = _useTable.visibleColumns; // Update the spreadsheet data after editing a cell
215
223
 
216
224
 
217
- var updateData = (0, _react.useCallback)(function (rowIndex, columnId) {
225
+ var updateData = (0, _react.useCallback)(function (rowIndex, columnId, newValue) {
218
226
  onDataUpdate(function (prev) {
219
227
  return prev.map(function (row, index) {
220
228
  if (index === rowIndex) {
221
- return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, (0, _defineProperty2.default)({}, columnId, cellEditorValue));
229
+ return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, (0, _defineProperty2.default)({}, columnId, cellEditorValue || newValue));
222
230
  }
223
231
 
224
232
  return row;
@@ -406,13 +414,34 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
406
414
  setCurrentMatcher: setCurrentMatcher,
407
415
  usingMac: usingMac
408
416
  });
409
- } // Allow arrow key navigation if there are less than two activeKeys OR
410
- // if one of the activeCellCoordinates is in a header position
417
+ }
411
418
 
419
+ var deleteParams = {
420
+ selectionAreas: selectionAreas,
421
+ currentMatcher: currentMatcher,
422
+ rows: rows,
423
+ setActiveCellContent: setActiveCellContent,
424
+ updateData: updateData
425
+ }; // Allow arrow key navigation if there are less than two activeKeys OR
426
+ // if one of the activeCellCoordinates is in a header position
412
427
 
413
428
  if (keysPressedList.length < 2 && !(0, _handleMultipleKeys.includesShift)(keysPressedList) || activeCellCoordinates.row === 'header' || activeCellCoordinates.column === 'header') {
414
429
  switch (key) {
430
+ // Backspace
431
+ case 'Backspace':
432
+ {
433
+ (0, _handleCellDeletion.handleCellDeletion)(deleteParams);
434
+ break;
435
+ }
436
+ // Delete
437
+
438
+ case 'Delete':
439
+ {
440
+ (0, _handleCellDeletion.handleCellDeletion)(deleteParams);
441
+ break;
442
+ }
415
443
  // Enter
444
+
416
445
  case 'Enter':
417
446
  {
418
447
  (0, _handleActiveCellInSelectionEnter.handleActiveCellInSelectionEnter)({
@@ -610,7 +639,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
610
639
  }
611
640
  }
612
641
  }
613
- }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac]);
642
+ }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac, updateData]);
614
643
 
615
644
  var startEditMode = function startEditMode() {
616
645
  setIsEditing(true);
@@ -646,6 +675,11 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
646
675
  }
647
676
 
648
677
  return;
678
+ }; // Mouse up on active cell
679
+
680
+
681
+ var handleActiveCellMouseUp = function handleActiveCellMouseUp() {
682
+ setClickAndHoldActive(false);
649
683
  }; // Mouse down on active cell
650
684
 
651
685
 
@@ -784,12 +818,13 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
784
818
  }
785
819
  }, [spreadsheetRef, currentMatcher]);
786
820
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, getTableProps(), (0, _devtools.getDevtoolsProps)(componentName), {
787
- className: (0, _classnames.default)(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__container-has-focus"), containerHasFocus)),
821
+ className: (0, _classnames.default)(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__container-has-focus"), containerHasFocus), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__").concat(theme), theme === 'dark'), _cx)),
788
822
  ref: spreadsheetRef,
789
823
  role: "grid",
790
824
  tabIndex: 0,
791
825
  "aria-rowcount": (rows === null || rows === void 0 ? void 0 : rows.length) || 0,
792
826
  "aria-colcount": (columns === null || columns === void 0 ? void 0 : columns.length) || 0,
827
+ "aria-label": spreadsheetAriaLabel,
793
828
  onKeyDown: handleKeyPress,
794
829
  onFocus: function onFocus() {
795
830
  return setContainerHasFocus(true);
@@ -815,7 +850,8 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
815
850
  updateActiveCellCoordinates: updateActiveCellCoordinates,
816
851
  setHeaderCellHoldActive: setHeaderCellHoldActive,
817
852
  headerCellHoldActive: headerCellHoldActive,
818
- visibleColumns: visibleColumns
853
+ visibleColumns: visibleColumns,
854
+ selectAllAriaLabel: selectAllAriaLabel
819
855
  }), /*#__PURE__*/_react.default.createElement(_DataSpreadsheetBody.DataSpreadsheetBody, {
820
856
  activeCellCoordinates: activeCellCoordinates,
821
857
  ref: spreadsheetRef,
@@ -850,6 +886,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
850
886
  visibleColumns: visibleColumns
851
887
  }), /*#__PURE__*/_react.default.createElement("button", {
852
888
  onMouseDown: handleActiveCellMouseDown,
889
+ onMouseUp: handleActiveCellMouseUp,
853
890
  onClick: handleActiveCellClick,
854
891
  onKeyDown: handleActiveCellKeyDown,
855
892
  onDoubleClick: handleActiveCellDoubleClick,
@@ -858,6 +895,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
858
895
  className: (0, _classnames.default)("".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__active-cell--highlight"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__active-cell--with-selection"), activeCellInsideSelectionArea)),
859
896
  type: "button"
860
897
  }, activeCellContent), /*#__PURE__*/_react.default.createElement("textarea", {
898
+ id: "".concat(blockClass, "__cell-editor-text-area"),
861
899
  value: cellEditorValue,
862
900
  onKeyDown: (0, _handleEditSubmit.handleEditSubmit)({
863
901
  activeCellCoordinates: activeCellCoordinates,
@@ -877,7 +915,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
877
915
  cellEditorRulerRef.current.textContent = event.target.value;
878
916
  },
879
917
  ref: cellEditorRef,
880
- "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,
918
+ "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,
881
919
  className: (0, _classnames.default)("".concat(blockClass, "__cell-editor"), "".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__cell-editor--").concat(cellSize), (0, _defineProperty2.default)({}, "".concat(blockClass, "__cell-editor--active"), isEditing))
882
920
  }), /*#__PURE__*/_react.default.createElement("pre", {
883
921
  "aria-hidden": true,
@@ -946,6 +984,21 @@ DataSpreadsheet.propTypes = {
946
984
  */
947
985
  onSelectionAreaChange: _propTypes.default.func,
948
986
 
987
+ /**
988
+ * The aria label applied to the Select all button
989
+ */
990
+ selectAllAriaLabel: _propTypes.default.string.isRequired,
991
+
992
+ /**
993
+ * The aria label applied to the Data spreadsheet component
994
+ */
995
+ spreadsheetAriaLabel: _propTypes.default.string.isRequired,
996
+
997
+ /**
998
+ * The theme the DataSpreadsheet should use (only used to render active cell/selection area colors on dark theme)
999
+ */
1000
+ theme: _propTypes.default.oneOf(['light', 'dark']),
1001
+
949
1002
  /**
950
1003
  * The total number of columns to be initially visible, additional columns will be rendered and
951
1004
  * visible via horizontal scrollbar
@@ -411,7 +411,8 @@ var DataSpreadsheetBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
411
411
  }), {
412
412
  className: (0, _classnames.default)("".concat(blockClass, "__tr")),
413
413
  "data-row-index": index,
414
- "aria-rowindex": index + 1
414
+ "aria-rowindex": index + 1,
415
+ "aria-owns": "".concat(blockClass, "__cell-editor-text-area")
415
416
  }), /*#__PURE__*/_react.default.createElement("div", {
416
417
  role: "rowheader",
417
418
  className: "".concat(blockClass, "__td-th--cell-container")