@carbon/ibm-products 2.0.0-rc.26 → 2.0.0-rc.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/css/index-full-carbon.css +60 -30
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +60 -30
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +2 -2
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +60 -30
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +60 -30
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/Card/Card.js +8 -6
  18. package/es/components/Card/CardHeader.js +2 -2
  19. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +15 -20
  20. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -2
  21. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
  22. package/es/components/Datagrid/Datagrid/DatagridRow.js +6 -2
  23. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +3 -1
  24. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -1
  25. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +11 -0
  26. package/es/components/ExpressiveCard/ExpressiveCard.js +3 -3
  27. package/es/components/PageHeader/PageHeader.js +4 -3
  28. package/es/components/ProductiveCard/ProductiveCard.js +3 -3
  29. package/lib/components/Card/Card.js +7 -5
  30. package/lib/components/Card/CardHeader.js +2 -2
  31. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +14 -19
  32. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -2
  33. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
  34. package/lib/components/Datagrid/Datagrid/DatagridRow.js +6 -2
  35. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +3 -1
  36. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -1
  37. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +11 -0
  38. package/lib/components/ExpressiveCard/ExpressiveCard.js +3 -3
  39. package/lib/components/PageHeader/PageHeader.js +4 -3
  40. package/lib/components/ProductiveCard/ProductiveCard.js +3 -3
  41. package/package.json +2 -2
  42. package/scss/components/ActionBar/_action-bar.scss +0 -4
  43. package/scss/components/Card/_card.scss +13 -6
  44. package/scss/components/ExportModal/_export-modal.scss +0 -4
  45. package/scss/components/ExpressiveCard/_expressive-card.scss +1 -1
  46. package/scss/components/PageHeader/_page-header.scss +2 -3
  47. package/scss/components/ProductiveCard/_productive-card.scss +31 -2
  48. package/scss/components/TagSet/_tag-set.scss +1 -0
  49. package/scss/components/UserProfileImage/_user-profile-image.scss +5 -0
@@ -133,6 +133,17 @@ var useFilters = function useFilters(_ref) {
133
133
 
134
134
  filtersObjectArrayCopy.splice(_index2, 1);
135
135
  }
136
+ } else if (type === NUMBER) {
137
+ // If the value is empty remove it from the filtersObjectArray
138
+ if (value === '') {
139
+ // Find the column that uses number and displays an empty string
140
+ var _index3 = filtersObjectArrayCopy.findIndex(function (filter) {
141
+ return filter.id === column;
142
+ }); // Remove it from the filters array
143
+
144
+
145
+ filtersObjectArrayCopy.splice(_index3, 1);
146
+ }
136
147
  }
137
148
 
138
149
  setFiltersObjectArray(filtersObjectArrayCopy); // // Automatically apply the filters if the updateMethod is instant
@@ -46,12 +46,12 @@ ExpressiveCard.propTypes = {
46
46
  /**
47
47
  * Optional header description
48
48
  */
49
- description: PropTypes.string,
49
+ description: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.node]),
50
50
 
51
51
  /**
52
52
  * Optional label for the top of the card
53
53
  */
54
- label: PropTypes.string,
54
+ label: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.node]),
55
55
 
56
56
  /**
57
57
  * Optional media content like an image to be placed in the card
@@ -126,6 +126,6 @@ ExpressiveCard.propTypes = {
126
126
  /**
127
127
  * Title that's displayed at the top of the card
128
128
  */
129
- title: PropTypes.string
129
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.node])
130
130
  };
131
131
  ExpressiveCard.displayName = componentName;
@@ -446,8 +446,9 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
446
446
  showAllTagsLabel: showAllTagsLabel,
447
447
  tags: tags,
448
448
  overflowClassName: "".concat(blockClass, "__navigation-tags-overflow")
449
- })) : null) : null), hasCollapseButton ? /*#__PURE__*/React.createElement(Button, {
450
- className: cx("".concat(blockClass, "__collapse-expand-toggle"), _defineProperty({}, "".concat(blockClass, "__collapse-expand-toggle--collapsed"), fullyCollapsed)),
449
+ })) : null) : null), hasCollapseButton ? /*#__PURE__*/React.createElement("div", {
450
+ className: cx("".concat(blockClass, "__collapse-expand-toggle"), _defineProperty({}, "".concat(blockClass, "__collapse-expand-toggle--collapsed"), fullyCollapsed))
451
+ }, /*#__PURE__*/React.createElement(Button, {
451
452
  hasIconOnly: true,
452
453
  iconDescription:
453
454
  /* istanbul ignore next */
@@ -463,7 +464,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
463
464
  tooltipPosition: "bottom",
464
465
  tooltipAlignment: "end",
465
466
  type: "button"
466
- }) : null));
467
+ })) : null));
467
468
 
468
469
  function thePageActions(isBreadcrumbRow, inBreadcrumbRow) {
469
470
  if (pageActions) {
@@ -75,12 +75,12 @@ ProductiveCard.propTypes = {
75
75
  /**
76
76
  * Optional header description
77
77
  */
78
- description: PropTypes.string,
78
+ description: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.node]),
79
79
 
80
80
  /**
81
81
  * Optional label for the top of the card
82
82
  */
83
- label: PropTypes.string,
83
+ label: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.node]),
84
84
 
85
85
  /**
86
86
  * Provides the callback for a clickable card
@@ -130,7 +130,7 @@ ProductiveCard.propTypes = {
130
130
  /**
131
131
  * Title that's displayed at the top of the card
132
132
  */
133
- title: PropTypes.string,
133
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.node]),
134
134
 
135
135
  /**
136
136
  * Determines title size
@@ -112,7 +112,9 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
112
112
  if (overflowActions.length > 0) {
113
113
  var pos = actionsPlacement === 'top' ? 'bottom' : 'top';
114
114
  var size = actionsPlacement === 'top' ? 'sm' : 'md';
115
- return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, {
115
+ return /*#__PURE__*/_react.default.createElement(_react2.Layer, {
116
+ level: 2
117
+ }, /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, {
116
118
  size: size,
117
119
  direction: pos,
118
120
  flipped: true,
@@ -123,7 +125,7 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
123
125
  return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenuItem, (0, _extends2.default)({
124
126
  key: id
125
127
  }, rest));
126
- }));
128
+ })));
127
129
  }
128
130
 
129
131
  var icons = actionIcons.map(function (_ref3) {
@@ -266,8 +268,8 @@ Card.propTypes = {
266
268
  children: _propTypes.default.node,
267
269
  className: _propTypes.default.string,
268
270
  clickZone: _propTypes.default.oneOf(['one', 'two', 'three']),
269
- description: _propTypes.default.string,
270
- label: _propTypes.default.string,
271
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
272
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
271
273
  media: _propTypes.default.node,
272
274
  mediaPosition: _propTypes.default.oneOf(['top', 'left']),
273
275
  onClick: _propTypes.default.func,
@@ -292,7 +294,7 @@ Card.propTypes = {
292
294
  secondaryButtonIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
293
295
  secondaryButtonKind: _propTypes.default.oneOf(['secondary', 'ghost']),
294
296
  secondaryButtonText: _propTypes.default.string,
295
- title: _propTypes.default.string,
297
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
296
298
  titleSize: _propTypes.default.oneOf(['default', 'large'])
297
299
  };
298
300
  Card.displayName = componentName;
@@ -78,7 +78,7 @@ var CardHeader = function CardHeader(_ref) {
78
78
  exports.CardHeader = CardHeader;
79
79
  CardHeader.propTypes = {
80
80
  actions: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.node]),
81
- description: _propTypes.default.string,
81
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
82
82
  hasActions: _propTypes.default.bool,
83
83
  label: _propTypes.default.string,
84
84
  noActionIcons: _propTypes.default.bool,
@@ -86,7 +86,7 @@ CardHeader.propTypes = {
86
86
  primaryButtonIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
87
87
  primaryButtonPlacement: _propTypes.default.oneOf(['top', 'bottom']),
88
88
  primaryButtonText: _propTypes.default.string,
89
- title: _propTypes.default.string,
89
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
90
90
  titleSize: _propTypes.default.oneOf(['default', 'large'])
91
91
  };
92
92
  CardHeader.displayName = componentName;
@@ -17,12 +17,11 @@ var _react2 = require("@carbon/react");
17
17
 
18
18
  var _EmptyStates = require("../../EmptyStates");
19
19
 
20
- /*
21
- * Licensed Materials - Property of IBM
22
- * 5724-Q36
23
- * (c) Copyright IBM Corp. 2020
24
- * US Government Users Restricted Rights - Use, duplication or disclosure
25
- * restricted by GSA ADP Schedule Contract with IBM Corp.
20
+ /**
21
+ * Copyright IBM Corp. 2020, 2023
22
+ *
23
+ * This source code is licensed under the Apache-2.0 license found in the
24
+ * LICENSE file in the root directory of this source tree.
26
25
  */
27
26
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
28
27
 
@@ -37,25 +36,21 @@ var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
37
36
  illustrationTheme = datagridState.illustrationTheme,
38
37
  emptyStateAction = datagridState.emptyStateAction,
39
38
  emptyStateLink = datagridState.emptyStateLink;
40
- return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
41
- className: "".concat(blockClass, "__empty-state-body")
42
- }), /*#__PURE__*/_react.default.createElement(_react2.TableRow, null, /*#__PURE__*/_react.default.createElement(_react2.TableCell, {
43
- colSpan: headers.length
44
- }, emptyStateType === 'error' && /*#__PURE__*/_react.default.createElement(_EmptyStates.ErrorEmptyState, {
45
- illustrationTheme: illustrationTheme,
46
- size: emptyStateSize,
47
- title: emptyStateTitle,
48
- subtitle: emptyStateDescription,
49
- action: emptyStateAction,
50
- link: emptyStateLink
51
- }), emptyStateType === 'noData' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NoDataEmptyState, {
39
+ var emptyStateProps = {
52
40
  illustrationTheme: illustrationTheme,
53
41
  size: emptyStateSize,
54
42
  title: emptyStateTitle,
55
43
  subtitle: emptyStateDescription,
56
44
  action: emptyStateAction,
57
45
  link: emptyStateLink
58
- }))));
46
+ };
47
+ return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
48
+ role: false
49
+ }), {
50
+ className: "".concat(blockClass, "__empty-state-body")
51
+ }), /*#__PURE__*/_react.default.createElement(_react2.TableRow, null, /*#__PURE__*/_react.default.createElement(_react2.TableCell, {
52
+ colSpan: headers.length
53
+ }, emptyStateType === 'error' && /*#__PURE__*/_react.default.createElement(_EmptyStates.ErrorEmptyState, emptyStateProps), emptyStateType === 'noData' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NoDataEmptyState, emptyStateProps), emptyStateType === 'notFound' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NotFoundEmptyState, emptyStateProps))));
59
54
  };
60
55
 
61
56
  var _default = DatagridEmptyBody;
@@ -31,7 +31,9 @@ var _settings = require("../../../settings");
31
31
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
32
32
 
33
33
  var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
34
- return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps(), {
34
+ return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps({
35
+ role: false
36
+ }), {
35
37
  className: (0, _classnames.default)("".concat(blockClass, "__head"), headerGroup.getHeaderGroupProps().className),
36
38
  ref: headRef
37
39
  }), datagridState.headers.filter(function (_ref) {
@@ -47,7 +49,9 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
47
49
  });
48
50
  }
49
51
 
50
- return /*#__PURE__*/_react.default.createElement(_react2.TableHeader, (0, _extends2.default)({}, header.getHeaderProps(), {
52
+ return /*#__PURE__*/_react.default.createElement(_react2.TableHeader, (0, _extends2.default)({}, header.getHeaderProps({
53
+ role: false
54
+ }), {
51
55
  className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__resizableColumn"), header.getResizerProps), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isResizing"), header.isResizing), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__sortableColumn"), header.canSort), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isSorted"), header.isSorted), _cx), header.getHeaderProps().className),
52
56
  key: header.id
53
57
  }), header.render('Header'), header.getResizerProps && /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, header.getResizerProps(), {
@@ -30,7 +30,9 @@ var DatagridRefBody = function DatagridRefBody(datagridState) {
30
30
  var getTableBodyProps = datagridState.getTableBodyProps,
31
31
  rows = datagridState.rows,
32
32
  prepareRow = datagridState.prepareRow;
33
- return /*#__PURE__*/_react.default.createElement("tbody", (0, _extends2.default)({}, getTableBodyProps(), {
33
+ return /*#__PURE__*/_react.default.createElement("tbody", (0, _extends2.default)({}, getTableBodyProps({
34
+ role: false
35
+ }), {
34
36
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
35
37
  }), rows.map(function (row) {
36
38
  prepareRow(row);
@@ -80,7 +80,9 @@ var DatagridRow = function DatagridRow(datagridState) {
80
80
 
81
81
  return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({
82
82
  className: (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), _cx))
83
- }, row.getRowProps(), {
83
+ }, row.getRowProps({
84
+ role: false
85
+ }), {
84
86
  key: row.id,
85
87
  onMouseEnter: function onMouseEnter(event) {
86
88
  if (!withNestedRows) {
@@ -114,7 +116,9 @@ var DatagridRow = function DatagridRow(datagridState) {
114
116
  }
115
117
  }
116
118
  }), row.cells.map(function (cell, index) {
117
- var cellProps = cell.getCellProps();
119
+ var cellProps = cell.getCellProps({
120
+ role: false
121
+ });
118
122
  var children = cellProps.children,
119
123
  restProps = (0, _objectWithoutProperties2.default)(cellProps, _excluded);
120
124
 
@@ -29,7 +29,9 @@ var DatagridSimpleBody = function DatagridSimpleBody(datagridState) {
29
29
  var getTableBodyProps = datagridState.getTableBodyProps,
30
30
  rows = datagridState.rows,
31
31
  prepareRow = datagridState.prepareRow;
32
- return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
32
+ return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
33
+ role: false
34
+ }), {
33
35
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
34
36
  }), rows.map(function (row) {
35
37
  prepareRow(row);
@@ -101,7 +101,9 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
101
101
  width: (_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 ? void 0 : _gridRef$current.clientWidth,
102
102
  overflow: 'hidden'
103
103
  }
104
- }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
104
+ }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
105
+ role: false
106
+ }), {
105
107
  onScroll: function onScroll(e) {
106
108
  return syncScroll(e);
107
109
  }
@@ -147,6 +147,17 @@ var useFilters = function useFilters(_ref) {
147
147
 
148
148
  filtersObjectArrayCopy.splice(_index2, 1);
149
149
  }
150
+ } else if (type === _constants.NUMBER) {
151
+ // If the value is empty remove it from the filtersObjectArray
152
+ if (value === '') {
153
+ // Find the column that uses number and displays an empty string
154
+ var _index3 = filtersObjectArrayCopy.findIndex(function (filter) {
155
+ return filter.id === column;
156
+ }); // Remove it from the filters array
157
+
158
+
159
+ filtersObjectArrayCopy.splice(_index3, 1);
160
+ }
150
161
  }
151
162
 
152
163
  setFiltersObjectArray(filtersObjectArrayCopy); // // Automatically apply the filters if the updateMethod is instant
@@ -69,12 +69,12 @@ ExpressiveCard.propTypes = {
69
69
  /**
70
70
  * Optional header description
71
71
  */
72
- description: _propTypes.default.string,
72
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
73
73
 
74
74
  /**
75
75
  * Optional label for the top of the card
76
76
  */
77
- label: _propTypes.default.string,
77
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
78
78
 
79
79
  /**
80
80
  * Optional media content like an image to be placed in the card
@@ -149,6 +149,6 @@ ExpressiveCard.propTypes = {
149
149
  /**
150
150
  * Title that's displayed at the top of the card
151
151
  */
152
- title: _propTypes.default.string
152
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node])
153
153
  };
154
154
  ExpressiveCard.displayName = componentName;
@@ -475,8 +475,9 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
475
475
  showAllTagsLabel: showAllTagsLabel,
476
476
  tags: tags,
477
477
  overflowClassName: "".concat(_PageHeaderUtils.blockClass, "__navigation-tags-overflow")
478
- })) : null) : null), hasCollapseButton ? /*#__PURE__*/_react.default.createElement(_react2.Button, {
479
- className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__collapse-expand-toggle"), (0, _defineProperty2.default)({}, "".concat(_PageHeaderUtils.blockClass, "__collapse-expand-toggle--collapsed"), fullyCollapsed)),
478
+ })) : null) : null), hasCollapseButton ? /*#__PURE__*/_react.default.createElement("div", {
479
+ className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__collapse-expand-toggle"), (0, _defineProperty2.default)({}, "".concat(_PageHeaderUtils.blockClass, "__collapse-expand-toggle--collapsed"), fullyCollapsed))
480
+ }, /*#__PURE__*/_react.default.createElement(_react2.Button, {
480
481
  hasIconOnly: true,
481
482
  iconDescription:
482
483
  /* istanbul ignore next */
@@ -492,7 +493,7 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
492
493
  tooltipPosition: "bottom",
493
494
  tooltipAlignment: "end",
494
495
  type: "button"
495
- }) : null));
496
+ })) : null));
496
497
 
497
498
  function thePageActions(isBreadcrumbRow, inBreadcrumbRow) {
498
499
  if (pageActions) {
@@ -93,12 +93,12 @@ ProductiveCard.propTypes = {
93
93
  /**
94
94
  * Optional header description
95
95
  */
96
- description: _propTypes.default.string,
96
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
97
97
 
98
98
  /**
99
99
  * Optional label for the top of the card
100
100
  */
101
- label: _propTypes.default.string,
101
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
102
102
 
103
103
  /**
104
104
  * Provides the callback for a clickable card
@@ -148,7 +148,7 @@ ProductiveCard.propTypes = {
148
148
  /**
149
149
  * Title that's displayed at the top of the card
150
150
  */
151
- title: _propTypes.default.string,
151
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
152
152
 
153
153
  /**
154
154
  * Determines title size
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "2.0.0-rc.26",
4
+ "version": "2.0.0-rc.27",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -94,5 +94,5 @@
94
94
  "react": "^16.8.6 || ^17.0.1",
95
95
  "react-dom": "^16.8.6 || ^17.0.1"
96
96
  },
97
- "gitHead": "021c153ea593848f7c1a2049c95af0b880603c9e"
97
+ "gitHead": "33ed98e63caf4d07ba69eb8cb709fd44b3303c78"
98
98
  }
@@ -28,10 +28,6 @@ $block-class-overflow-items: #{$_block-class}-overflow-items;
28
28
  justify-content: flex-end;
29
29
  }
30
30
 
31
- .#{$block-class-overflow-items} {
32
- display: inline-block;
33
- }
34
-
35
31
  .#{$_block-class}__hidden-sizing-items {
36
32
  // This breadcrumb container is used to measure the width of all displayable breadcrumbs
37
33
  @include measuring-container;
@@ -15,18 +15,18 @@
15
15
  $block-class: #{c4p-settings.$pkg-prefix}--card;
16
16
 
17
17
  .#{$block-class} {
18
- background: $layer-01;
18
+ background-color: $layer-01;
19
19
  color: $text-primary;
20
20
  }
21
21
 
22
22
  .#{$block-class}__clickable {
23
23
  cursor: pointer;
24
24
  // stylelint-disable-next-line carbon/motion-easing-use
25
- transition: background $duration-fast-02;
25
+ transition: background-color $duration-fast-02;
26
26
  }
27
27
 
28
28
  .#{$block-class}__clickable:hover {
29
- background: $background-hover;
29
+ background-color: $layer-hover-01;
30
30
  }
31
31
 
32
32
  .#{$block-class}__media-left {
@@ -82,7 +82,7 @@ $block-class: #{c4p-settings.$pkg-prefix}--card;
82
82
  }
83
83
 
84
84
  .#{$block-class}__body {
85
- @include type-style('body-short-01');
85
+ @include type-style('body-compact-01');
86
86
 
87
87
  padding: $spacing-05;
88
88
  padding-top: 0;
@@ -96,15 +96,22 @@ $block-class: #{c4p-settings.$pkg-prefix}--card;
96
96
  .#{$block-class}__actions {
97
97
  display: flex;
98
98
  flex-direction: row;
99
- margin: $spacing-05;
100
- margin-top: 0;
101
99
  }
102
100
 
103
101
  .#{$block-class}__icon {
102
+ padding: $spacing-03;
104
103
  color: inherit;
105
104
  cursor: pointer;
106
105
  }
107
106
 
107
+ .#{$block-class}__icon:hover {
108
+ background-color: $layer-hover-01;
109
+ }
110
+
111
+ #{$block-class}__icon:active {
112
+ color: $link-primary-hover;
113
+ }
114
+
108
115
  .#{$block-class}__link {
109
116
  color: inherit;
110
117
  text-decoration: inherit;
@@ -44,7 +44,3 @@ $block-class: #{c4p-settings.$pkg-prefix}--export-modal;
44
44
  .#{$block-class}__error-icon {
45
45
  fill: $button-danger-primary;
46
46
  }
47
-
48
- .#{c4p-settings.$carbon-prefix}--modal-content.#{$block-class}__body-container {
49
- padding-bottom: $spacing-06;
50
- }
@@ -14,5 +14,5 @@
14
14
  $block-class: #{c4p-settings.$pkg-prefix}--card;
15
15
 
16
16
  .#{$block-class}__title {
17
- @include type.type-style('productive-heading-03');
17
+ @include type.type-style('heading-03');
18
18
  }
@@ -616,7 +616,7 @@ $right-section-alt-width: 100% - $left-section-alt-width;
616
616
  background-color: $background;
617
617
  }
618
618
 
619
- .#{$carbon-prefix}--btn.#{$carbon-prefix}--btn--icon-only.#{$block-class}__collapse-expand-toggle {
619
+ .#{$block-class}__collapse-expand-toggle {
620
620
  position: absolute;
621
621
  z-index: $raised-z-index + 1;
622
622
  right: 0;
@@ -628,8 +628,7 @@ $right-section-alt-width: 100% - $left-section-alt-width;
628
628
  transition: all $duration-slow-01 motion(standard, productive);
629
629
  }
630
630
 
631
- .#{$block-class}__collapse-expand-toggle--collapsed
632
- .#{$carbon-prefix}--btn__icon {
631
+ .#{$block-class}__collapse-expand-toggle--collapsed svg {
633
632
  // transform: rotate(90deg);
634
633
  transform: scaleY(-1);
635
634
  }
@@ -21,11 +21,11 @@ $block-class: #{c4p-settings.$pkg-prefix}--card;
21
21
  }
22
22
 
23
23
  .#{$block-class}__title {
24
- @include type.type-style('productive-heading-02');
24
+ @include type.type-style('heading-compact-02');
25
25
  }
26
26
 
27
27
  .#{$block-class}__title-lg .#{$block-class}__title {
28
- @include type.type-style('productive-heading-03');
28
+ @include type.type-style('heading-03');
29
29
  }
30
30
 
31
31
  .#{$block-class}__body {
@@ -43,6 +43,7 @@ $block-class: #{c4p-settings.$pkg-prefix}--card;
43
43
  }
44
44
 
45
45
  .#{$block-class}__actions {
46
+ min-height: $spacing-07;
46
47
  margin: 0;
47
48
  }
48
49
 
@@ -51,6 +52,34 @@ $block-class: #{c4p-settings.$pkg-prefix}--card;
51
52
  margin-right: $spacing-03;
52
53
  }
53
54
 
55
+ .#{$block-class}__actions-header-ghost-button {
56
+ min-height: $spacing-07;
57
+ padding: 0 $spacing-05;
58
+ // stylelint-disable-next-line carbon/layout-token-use
59
+ padding-right: calc($spacing-01 + $spacing-03);
60
+ // stylelint-disable-next-line carbon/layout-token-use
61
+ padding-left: calc($spacing-01 + $spacing-03);
62
+
63
+ /* stylelint-disable-next-line max-nesting-depth */
64
+ &::before {
65
+ position: absolute;
66
+ left: 0;
67
+ width: 0.05rem;
68
+ height: $spacing-06;
69
+ background-color: theme.$layer-hover-01;
70
+ content: '';
71
+ opacity: 1;
72
+ }
73
+
74
+ /* stylelint-disable-next-line max-nesting-depth */
75
+ &:hover {
76
+ /* stylelint-disable-next-line max-nesting-depth */
77
+ &::before {
78
+ opacity: 0;
79
+ }
80
+ }
81
+ }
82
+
54
83
  .#{$block-class}__title-lg .#{$block-class}__actions-header,
55
84
  .#{$block-class}__header-has-label .#{$block-class}__actions-header {
56
85
  margin-top: 0;
@@ -154,6 +154,7 @@ $block-class-modal: #{$_block-class}-modal;
154
154
  padding: 0;
155
155
  margin: 0;
156
156
  background-color: inherit;
157
+ border-radius: 0;
157
158
  color: inherit;
158
159
  text-overflow: ellipsis;
159
160
  white-space: nowrap;
@@ -92,6 +92,11 @@ $theme-keys: map-keys($themes);
92
92
  border-radius: 50%;
93
93
  }
94
94
 
95
+ .#{$carbon-prefix}--btn--ghost.#{$block-class}__tooltip:focus {
96
+ border: 0;
97
+ box-shadow: 0 0 0 $spacing-02 $focus;
98
+ }
99
+
95
100
  .#{$carbon-prefix}--tooltip__trigger .#{$block-class} svg,
96
101
  .#{$block-class}__tooltip.#{$carbon-prefix}--btn--ghost:not([disabled]) svg {
97
102
  fill: $layer-01;