@carbon/ibm-products 2.0.0-rc.2 → 2.0.0-rc.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (256) hide show
  1. package/css/index-full-carbon.css +946 -327
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -8
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +785 -168
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +4 -8
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +720 -232
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +4 -8
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +742 -244
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +4 -8
  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 +22 -5
  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/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  32. package/es/components/DataSpreadsheet/DataSpreadsheet.js +63 -11
  33. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  34. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  35. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  36. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +31 -0
  37. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  38. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
  39. package/es/components/Datagrid/Datagrid/DatagridContent.js +154 -0
  40. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  41. package/es/components/Datagrid/Datagrid/DatagridRow.js +10 -2
  42. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  43. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +13 -4
  44. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +5 -4
  45. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +2 -1
  46. package/es/components/Datagrid/Datagrid/DraggableElement.js +6 -2
  47. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -45
  48. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +4 -1
  49. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +36 -10
  50. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +62 -26
  51. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  52. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  53. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  54. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +534 -0
  55. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  56. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  57. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  58. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  59. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  60. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  61. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
  62. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +87 -0
  63. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -14
  64. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -36
  65. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  66. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  67. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  68. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  69. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  70. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  71. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  72. package/es/components/Datagrid/index.js +3 -1
  73. package/es/components/Datagrid/useActionsColumn.js +28 -12
  74. package/es/components/Datagrid/useColumnOrder.js +8 -0
  75. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  76. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  77. package/es/components/Datagrid/useExpandedRow.js +0 -1
  78. package/es/components/Datagrid/useInfiniteScroll.js +5 -2
  79. package/es/components/Datagrid/useInlineEdit.js +71 -0
  80. package/es/components/Datagrid/useNestedRowExpander.js +42 -0
  81. package/es/components/Datagrid/useNestedRows.js +2 -2
  82. package/es/components/Datagrid/useRowExpander.js +1 -1
  83. package/es/components/Datagrid/useRowSize.js +17 -6
  84. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  85. package/es/components/Datagrid/useSelectRows.js +12 -2
  86. package/es/components/Datagrid/useSortableColumns.js +1 -1
  87. package/es/components/Datagrid/useStickyColumn.js +11 -0
  88. package/es/components/Datagrid/utils/DatagridActions.js +152 -0
  89. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  90. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  91. package/es/components/Datagrid/utils/getArgTypes.js +89 -0
  92. package/es/components/Datagrid/utils/getInlineEditColumns.js +153 -0
  93. package/es/components/Datagrid/utils/makeData.js +46 -1
  94. package/es/components/EditUpdateCards/EditUpdateCards.js +144 -0
  95. package/es/components/EditUpdateCards/index.js +7 -0
  96. package/es/components/ExportModal/ExportModal.js +1 -1
  97. package/es/components/ImportModal/ImportModal.js +3 -3
  98. package/es/components/InlineEdit/InlineEdit.js +11 -9
  99. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
  100. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +1 -1
  101. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  102. package/es/components/OptionsTile/OptionsTile.js +1 -1
  103. package/es/components/PageHeader/PageHeader.js +1 -1
  104. package/es/components/PageHeader/PageHeaderTitle.js +3 -1
  105. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  106. package/es/components/Saving/Saving.js +1 -1
  107. package/es/components/SidePanel/SidePanel.js +45 -52
  108. package/es/components/SidePanel/motion/variants.js +45 -0
  109. package/es/components/StatusIcon/StatusIcon.js +1 -1
  110. package/es/components/UserProfileImage/UserProfileImage.js +1 -1
  111. package/es/components/WebTerminal/WebTerminal.js +1 -1
  112. package/es/components/WebTerminal/preview-components/Navigation.js +1 -1
  113. package/es/components/index.js +3 -2
  114. package/es/global/js/hooks/useClickOutside.js +1 -1
  115. package/es/global/js/package-settings.js +5 -4
  116. package/es/global/js/utils/getBezierValues.js +20 -0
  117. package/es/global/js/utils/motionConstants.js +45 -0
  118. package/es/global/js/utils/rangeWithCallback.js +13 -0
  119. package/es/global/js/utils/story-helper.js +5 -1
  120. package/es/global/js/utils/uuidv4.spec.js +4 -0
  121. package/lib/components/APIKeyModal/APIKeyModal.js +4 -4
  122. package/lib/components/AddSelect/AddSelect.js +0 -4
  123. package/lib/components/AddSelect/AddSelectBody.js +22 -5
  124. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +14 -3
  125. package/lib/components/AddSelect/AddSelectColumn.js +5 -5
  126. package/lib/components/AddSelect/AddSelectFilter.js +5 -4
  127. package/lib/components/AddSelect/AddSelectList.js +62 -28
  128. package/lib/components/AddSelect/AddSelectMetaPanel.js +2 -2
  129. package/lib/components/AddSelect/AddSelectSort.js +4 -4
  130. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -6
  131. package/lib/components/Card/Card.js +16 -6
  132. package/lib/components/Card/CardFooter.js +3 -1
  133. package/lib/components/Card/CardHeader.js +21 -1
  134. package/lib/components/ComboButton/ComboButton.js +3 -3
  135. package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  136. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +63 -10
  137. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  138. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  139. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  140. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +42 -0
  141. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  142. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
  143. package/lib/components/Datagrid/Datagrid/DatagridContent.js +188 -0
  144. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  145. package/lib/components/Datagrid/Datagrid/DatagridRow.js +19 -2
  146. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  147. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +16 -5
  148. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +6 -5
  149. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +2 -1
  150. package/lib/components/Datagrid/Datagrid/DraggableElement.js +7 -3
  151. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -47
  152. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +5 -2
  153. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +48 -25
  154. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +60 -25
  155. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  156. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  157. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  158. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +558 -0
  159. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  160. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  161. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  162. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  163. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  164. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  165. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
  166. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +100 -0
  167. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -13
  168. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -35
  169. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  170. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  171. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  172. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  173. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  174. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  175. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  176. package/lib/components/Datagrid/index.js +17 -1
  177. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  178. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  179. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  180. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  181. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  182. package/lib/components/Datagrid/useInfiniteScroll.js +5 -2
  183. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  184. package/lib/components/Datagrid/useNestedRowExpander.js +57 -0
  185. package/lib/components/Datagrid/useNestedRows.js +3 -3
  186. package/lib/components/Datagrid/useRowExpander.js +3 -3
  187. package/lib/components/Datagrid/useRowSize.js +18 -13
  188. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  189. package/lib/components/Datagrid/useSelectRows.js +12 -2
  190. package/lib/components/Datagrid/useSortableColumns.js +5 -5
  191. package/lib/components/Datagrid/useStickyColumn.js +11 -0
  192. package/lib/components/Datagrid/utils/DatagridActions.js +170 -0
  193. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  194. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  195. package/lib/components/Datagrid/utils/getArgTypes.js +97 -0
  196. package/lib/components/Datagrid/utils/getInlineEditColumns.js +168 -0
  197. package/lib/components/Datagrid/utils/makeData.js +47 -1
  198. package/lib/components/EditUpdateCards/EditUpdateCards.js +152 -0
  199. package/lib/components/EditUpdateCards/index.js +13 -0
  200. package/lib/components/ExportModal/ExportModal.js +3 -3
  201. package/lib/components/ImportModal/ImportModal.js +4 -4
  202. package/lib/components/InlineEdit/InlineEdit.js +16 -14
  203. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +2 -2
  204. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +3 -3
  205. package/lib/components/NotificationsPanel/NotificationsPanel.js +8 -8
  206. package/lib/components/OptionsTile/OptionsTile.js +6 -6
  207. package/lib/components/PageHeader/PageHeader.js +2 -2
  208. package/lib/components/PageHeader/PageHeaderTitle.js +3 -1
  209. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  210. package/lib/components/Saving/Saving.js +5 -5
  211. package/lib/components/SidePanel/SidePanel.js +48 -53
  212. package/lib/components/SidePanel/motion/variants.js +55 -0
  213. package/lib/components/StatusIcon/StatusIcon.js +45 -45
  214. package/lib/components/UserProfileImage/UserProfileImage.js +7 -7
  215. package/lib/components/WebTerminal/WebTerminal.js +3 -3
  216. package/lib/components/WebTerminal/preview-components/Navigation.js +4 -4
  217. package/lib/components/index.js +21 -1
  218. package/lib/global/js/hooks/useClickOutside.js +1 -1
  219. package/lib/global/js/package-settings.js +5 -4
  220. package/lib/global/js/utils/getBezierValues.js +29 -0
  221. package/lib/global/js/utils/motionConstants.js +55 -0
  222. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  223. package/lib/global/js/utils/story-helper.js +5 -1
  224. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  225. package/package.json +18 -16
  226. package/scss/components/AddSelect/_add-select.scss +129 -30
  227. package/scss/components/Card/_card.scss +1 -0
  228. package/scss/components/Cascade/_cascade.scss +1 -1
  229. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -0
  230. package/scss/components/Datagrid/_datagrid.scss +7 -0
  231. package/scss/components/Datagrid/_storybook-styles.scss +12 -5
  232. package/scss/components/Datagrid/styles/_datagrid.scss +31 -15
  233. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  234. package/scss/components/Datagrid/styles/_index.scss +1 -0
  235. package/scss/components/Datagrid/styles/_useActionsColumn.scss +14 -0
  236. package/scss/components/Datagrid/styles/_useExpandedRow.scss +37 -9
  237. package/scss/components/Datagrid/styles/_useInlineEdit.scss +419 -0
  238. package/scss/components/Datagrid/styles/_useNestedRows.scss +16 -1
  239. package/scss/components/Datagrid/styles/_useStickyColumn.scss +31 -2
  240. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +47 -6
  241. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -1
  242. package/scss/components/EditUpdateCards/_carbon-imports.scss +9 -0
  243. package/scss/components/EditUpdateCards/_edit-update-cards.scss +85 -0
  244. package/scss/components/EditUpdateCards/_index-with-carbon.scss +9 -0
  245. package/scss/components/EditUpdateCards/_index.scss +8 -0
  246. package/scss/components/EditUpdateCards/_storybook-styles.scss +55 -0
  247. package/scss/components/InlineEdit/_inline-edit.scss +4 -2
  248. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -6
  249. package/scss/components/PageHeader/_page-header.scss +4 -0
  250. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  251. package/scss/components/SidePanel/_side-panel.scss +3 -82
  252. package/scss/components/SidePanel/_storybook-styles.scss +6 -1
  253. package/scss/components/Tearsheet/_tearsheet.scss +2 -2
  254. package/scss/components/_index-released-only.scss +1 -0
  255. package/scss/components/_index-with-carbon.scss +1 -0
  256. package/scss/components/_index.scss +1 -0
@@ -4,11 +4,15 @@ describe('uuidv4', function () {
4
4
  jest.resetAllMocks();
5
5
  });
6
6
  it('Uses Math.random when window is not defined', function () {
7
+ var _window = window,
8
+ crypto = _window.crypto;
9
+ delete window.crypto;
7
10
  var mockMath = Object.create(global.Math);
8
11
  var mockMathRandom = jest.fn().mockReturnValue(0.5);
9
12
  mockMath.random = mockMathRandom;
10
13
  global.Math = mockMath;
11
14
  expect(uuidv4()).toEqual('98888888-9888-4888-a888-988888888888');
15
+ window.crypto = crypto;
12
16
  });
13
17
  it('Uses crypto from window when window is defined', function () {
14
18
  var mGetRandomValues = jest.fn().mockReturnValue(new Uint32Array(10));
@@ -29,7 +29,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
29
29
 
30
30
  var _react2 = require("@carbon/react");
31
31
 
32
- var _iconsReact = require("@carbon/icons-react");
32
+ var _icons = require("@carbon/react/icons");
33
33
 
34
34
  var _APIKeyDownloader = require("./APIKeyDownloader");
35
35
 
@@ -128,7 +128,7 @@ var APIKeyModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
128
128
  var hasPreviousStep = hasSteps && currentStep !== 0;
129
129
  var copyButtonProps = {
130
130
  renderIcon: function renderIcon(props) {
131
- return /*#__PURE__*/_react.default.createElement(_iconsReact.Copy, (0, _extends2.default)({
131
+ return /*#__PURE__*/_react.default.createElement(_icons.Copy, (0, _extends2.default)({
132
132
  size: 16
133
133
  }, props));
134
134
  },
@@ -334,13 +334,13 @@ var APIKeyModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
334
334
  className: "".concat(blockClass, "__messaging")
335
335
  }, /*#__PURE__*/_react.default.createElement("div", {
336
336
  className: "".concat(blockClass, "__error-icon")
337
- }, /*#__PURE__*/_react.default.createElement(_iconsReact.ErrorFilled, {
337
+ }, /*#__PURE__*/_react.default.createElement(_icons.ErrorFilled, {
338
338
  size: 16
339
339
  })), /*#__PURE__*/_react.default.createElement("p", {
340
340
  className: "".concat(blockClass, "__messaging-text")
341
341
  }, copyError ? copyErrorText : errorText)), apiKeyLoaded && /*#__PURE__*/_react.default.createElement("div", {
342
342
  className: "".concat(blockClass, "__messaging")
343
- }, /*#__PURE__*/_react.default.createElement(_iconsReact.InformationFilled, {
343
+ }, /*#__PURE__*/_react.default.createElement(_icons.InformationFilled, {
344
344
  size: 16
345
345
  }), hasDownloadLink ? /*#__PURE__*/_react.default.createElement(_APIKeyDownloader.APIKeyDownloader, {
346
346
  apiKey: apiKey,
@@ -21,8 +21,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
22
  var _AddSelectBody = require("./AddSelectBody");
23
23
 
24
- var _settings = require("../../settings");
25
-
26
24
  var _addSelectUtils = require("./add-select-utils");
27
25
 
28
26
  var _excluded = ["items", "globalFilters"];
@@ -31,7 +29,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
29
 
32
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
31
 
34
- var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
35
32
  var componentName = 'AddSelect';
36
33
  var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
37
34
  var items = _ref.items,
@@ -49,7 +46,6 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
49
46
  }, modifierAttribute, item[modifierAttribute]);
50
47
  }) : [];
51
48
  return /*#__PURE__*/_react.default.createElement(_AddSelectBody.AddSelectBody, (0, _extends2.default)({}, props, {
52
- className: blockClass,
53
49
  ref: ref,
54
50
  items: items,
55
51
  normalizedItems: normalizedItems,
@@ -148,6 +148,19 @@ var AddSelectBody = function AddSelectBody(_ref) {
148
148
  setPath = _usePath.setPath,
149
149
  pathOnclick = _usePath.pathOnclick;
150
150
 
151
+ var resetState = function resetState() {
152
+ setSingleSelection('');
153
+ setMultiSelection([]);
154
+ setSearchTerm('');
155
+ setAppliedGlobalFilters({});
156
+ setDisplayMetaPanel({});
157
+ };
158
+
159
+ var onCloseHandler = function onCloseHandler() {
160
+ resetState();
161
+ onClose();
162
+ };
163
+
151
164
  var classNames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
152
165
  var globalFilterKeys = Object.keys(appliedGlobalFilters);
153
166
  var globalFiltersApplied = globalFilterKeys.length > 0; // handlers
@@ -173,6 +186,8 @@ var AddSelectBody = function AddSelectBody(_ref) {
173
186
  } else {
174
187
  onSubmit(singleSelection);
175
188
  }
189
+
190
+ onCloseHandler();
176
191
  };
177
192
 
178
193
  var setShowBreadsCrumbs = function setShowBreadsCrumbs() {
@@ -207,6 +222,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
207
222
  var showSort = (searchTerm || globalFiltersApplied) && hasResults;
208
223
  var showTags = setShowTags();
209
224
  var commonListProps = {
225
+ displayMetalPanel: displayMetalPanel,
210
226
  metaIconDescription: metaIconDescription,
211
227
  multi: multi,
212
228
  multiSelection: multiSelection,
@@ -228,7 +244,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
228
244
  actions: [{
229
245
  label: onCloseButtonText,
230
246
  kind: 'secondary',
231
- onClick: onClose
247
+ onClick: onCloseHandler
232
248
  }, {
233
249
  label: onSubmitButtonText,
234
250
  kind: 'primary',
@@ -270,12 +286,13 @@ var AddSelectBody = function AddSelectBody(_ref) {
270
286
  hasFiltersApplied: globalFiltersApplied,
271
287
  clearFiltersText: clearFiltersText
272
288
  }), /*#__PURE__*/_react.default.createElement("div", {
273
- className: "".concat(blockClass, "__sub-header")
289
+ className: (0, _classnames.default)("".concat(blockClass, "__sub-header"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__sub-header-multi"), multi))
274
290
  }, /*#__PURE__*/_react.default.createElement("div", {
275
291
  className: "".concat(blockClass, "__tag-container")
276
292
  }, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
277
293
  path: path,
278
- onClick: pathOnclick
294
+ onClick: pathOnclick,
295
+ multi: multi
279
296
  }) : /*#__PURE__*/_react.default.createElement("p", {
280
297
  className: "".concat(blockClass, "__tag-container-label")
281
298
  }, searchTerm ? searchResultsLabel : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_react2.Tag, {
@@ -346,11 +363,11 @@ AddSelectBody.propTypes = {
346
363
  entries: _propTypes.default.arrayOf(_propTypes.default.shape({
347
364
  avatar: _propTypes.default.shape({
348
365
  alt: _propTypes.default.string,
349
- icon: _propTypes.default.func,
366
+ icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
350
367
  src: _propTypes.default.string
351
368
  }),
352
369
  children: _propTypes.default.object,
353
- icon: _propTypes.default.func,
370
+ icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
354
371
  id: _propTypes.default.string.isRequired,
355
372
  meta: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape({
356
373
  id: _propTypes.default.string,
@@ -7,30 +7,40 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.AddSelectBreadcrumbs = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
12
14
  var _react2 = require("@carbon/react");
13
15
 
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
17
 
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _settings = require("../../settings");
21
+
16
22
  //
17
23
  // Copyright IBM Corp. 2022
18
24
  //
19
25
  // This source code is licensed under the Apache-2.0 license found in the
20
26
  // LICENSE file in the root directory of this source tree.
21
27
  //
28
+ var blockClass = "".concat(_settings.pkg.prefix, "--add-select__breadcrumbs");
22
29
  var componentName = 'AddSelectBreadcrumbs';
23
30
 
24
31
  var AddSelectBreadcrumbs = function AddSelectBreadcrumbs(_ref) {
25
- var path = _ref.path,
26
- onClick = _ref.onClick;
32
+ var multi = _ref.multi,
33
+ onClick = _ref.onClick,
34
+ path = _ref.path;
27
35
 
28
36
  var clickHandler = function clickHandler(idx) {
29
37
  onClick(idx);
30
38
  };
31
39
 
40
+ var classNames = (0, _classnames.default)(blockClass, (0, _defineProperty2.default)({}, "".concat(blockClass, "-multi"), multi));
32
41
  return /*#__PURE__*/_react.default.createElement(_react2.Breadcrumb, {
33
- noTrailingSlash: true
42
+ noTrailingSlash: true,
43
+ className: classNames
34
44
  }, path.map(function (entry, idx) {
35
45
  var isCurrentPage = idx === path.length - 1;
36
46
  return /*#__PURE__*/_react.default.createElement(_react2.BreadcrumbItem, {
@@ -45,6 +55,7 @@ var AddSelectBreadcrumbs = function AddSelectBreadcrumbs(_ref) {
45
55
 
46
56
  exports.AddSelectBreadcrumbs = AddSelectBreadcrumbs;
47
57
  AddSelectBreadcrumbs.propTypes = {
58
+ multi: _propTypes.default.bool,
48
59
  onClick: _propTypes.default.func,
49
60
  path: _propTypes.default.array
50
61
  };
@@ -23,7 +23,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _react2 = require("@carbon/react");
25
25
 
26
- var _iconsReact = require("@carbon/icons-react");
26
+ var _icons = require("@carbon/react/icons");
27
27
 
28
28
  var _settings = require("../../settings");
29
29
 
@@ -189,16 +189,16 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
189
189
  className: colClass
190
190
  }, /*#__PURE__*/_react.default.createElement("div", {
191
191
  className: "".concat(colClass, "-search-bar")
192
- }, /*#__PURE__*/_react.default.createElement(_react2.TextInput, {
192
+ }, /*#__PURE__*/_react.default.createElement(_react2.Search, {
193
193
  value: searchTerm,
194
194
  onChange: function onChange(e) {
195
195
  return setSearchTerm(e.target.value);
196
196
  },
197
- light: true,
198
197
  placeholder: columnInputPlaceholder,
199
198
  className: "".concat(colClass, "-input"),
200
199
  id: (0, _uuidv.default)(),
201
- labelText: columnInputPlaceholder
200
+ labelText: columnInputPlaceholder,
201
+ size: "md"
202
202
  }), /*#__PURE__*/_react.default.createElement("div", {
203
203
  className: "".concat(colClass, "-sort-filter")
204
204
  }, /*#__PURE__*/_react.default.createElement(_AddSelectSort.AddSelectSort, {
@@ -210,7 +210,7 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
210
210
  sortBy: sortBy
211
211
  }), filterByOpts.length > 0 && /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, {
212
212
  renderIcon: function renderIcon(props) {
213
- return /*#__PURE__*/_react.default.createElement(_iconsReact.Filter, (0, _extends2.default)({
213
+ return /*#__PURE__*/_react.default.createElement(_icons.Filter, (0, _extends2.default)({
214
214
  size: 32
215
215
  }, props));
216
216
  },
@@ -23,7 +23,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
23
23
 
24
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
25
 
26
- var _iconsReact = require("@carbon/icons-react");
26
+ var _icons = require("@carbon/react/icons");
27
27
 
28
28
  var _settings = require("../../settings");
29
29
 
@@ -112,7 +112,7 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
112
112
  var dirtyInput = Object.keys(filters).length > 0;
113
113
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
114
114
  className: "".concat(blockClass, "-search")
115
- }, /*#__PURE__*/_react.default.createElement(_react2.TextInput, {
115
+ }, /*#__PURE__*/_react.default.createElement(_react2.Search, {
116
116
  id: "temp-id",
117
117
  labelText: inputLabel,
118
118
  placeholder: inputPlaceholder,
@@ -120,7 +120,7 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
120
120
  onChange: searchHandler
121
121
  }), showFilter && /*#__PURE__*/_react.default.createElement(_react2.Button, {
122
122
  renderIcon: function renderIcon(props) {
123
- return /*#__PURE__*/_react.default.createElement(_iconsReact.Filter, (0, _extends2.default)({
123
+ return /*#__PURE__*/_react.default.createElement(_icons.Filter, (0, _extends2.default)({
124
124
  size: 16
125
125
  }, props));
126
126
  },
@@ -131,7 +131,8 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
131
131
  },
132
132
  iconDescription: iconDescription,
133
133
  className: filterBtnClassnames,
134
- size: "md"
134
+ size: "lg",
135
+ tooltipPosition: "left"
135
136
  }), open && /*#__PURE__*/_react.default.createElement("div", {
136
137
  className: blockClass
137
138
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -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,