@carbon/ibm-products 1.48.0 → 1.50.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/css/index-full-carbon.css +41 -5
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -4
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +40 -4
  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 +41 -5
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +4 -4
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +41 -5
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +4 -4
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/Card/Card.js +3 -3
  18. package/es/components/Card/CardHeader.js +3 -3
  19. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +16 -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/DatagridToolbar.js +1 -1
  25. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -1
  26. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +6 -3
  27. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +15 -62
  28. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +5 -2
  29. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +105 -0
  30. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -0
  31. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +17 -5
  32. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +11 -0
  33. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +8 -8
  34. package/es/components/Datagrid/index.js +8 -7
  35. package/es/components/Datagrid/useOnRowClick.js +3 -3
  36. package/es/components/Datagrid/useSortableColumns.js +6 -5
  37. package/es/components/Datagrid/utils/getAutoSizedColumnWidth.js +27 -0
  38. package/es/components/ExpressiveCard/ExpressiveCard.js +3 -3
  39. package/es/components/InlineEditV2/InlineEditV2.js +6 -3
  40. package/es/components/ProductiveCard/ProductiveCard.js +3 -3
  41. package/es/components/SidePanel/SidePanel.js +1 -1
  42. package/es/components/index.js +1 -1
  43. package/es/global/js/utils/story-helper.js +9 -0
  44. package/lib/components/Card/Card.js +3 -3
  45. package/lib/components/Card/CardHeader.js +3 -3
  46. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +14 -19
  47. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -2
  48. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
  49. package/lib/components/Datagrid/Datagrid/DatagridRow.js +6 -2
  50. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +3 -1
  51. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +1 -1
  52. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -1
  53. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +6 -3
  54. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +15 -62
  55. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +5 -2
  56. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +113 -0
  57. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -0
  58. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +17 -5
  59. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +11 -0
  60. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +3 -1
  61. package/lib/components/Datagrid/index.js +8 -1
  62. package/lib/components/Datagrid/useOnRowClick.js +3 -3
  63. package/lib/components/Datagrid/useSortableColumns.js +6 -5
  64. package/lib/components/Datagrid/utils/getAutoSizedColumnWidth.js +35 -0
  65. package/lib/components/ExpressiveCard/ExpressiveCard.js +3 -3
  66. package/lib/components/InlineEditV2/InlineEditV2.js +6 -3
  67. package/lib/components/ProductiveCard/ProductiveCard.js +3 -3
  68. package/lib/components/SidePanel/SidePanel.js +1 -1
  69. package/lib/components/index.js +6 -0
  70. package/lib/global/js/utils/story-helper.js +12 -2
  71. package/package.json +2 -2
  72. package/scss/components/Datagrid/styles/_datagrid.scss +1 -1
  73. package/scss/components/InlineEditV1/_inline-edit-v1.scss +1 -5
  74. package/scss/components/InlineEditV2/_inline-edit-v2.scss +41 -3
  75. package/scss/components/SidePanel/_side-panel.scss +2 -1
  76. package/scss/components/TagSet/_tag-set.scss +6 -0
@@ -55,7 +55,15 @@ var FilterPanel = function FilterPanel(_ref) {
55
55
  _ref$showFilterSearch = _ref.showFilterSearch,
56
56
  showFilterSearch = _ref$showFilterSearch === void 0 ? false : _ref$showFilterSearch,
57
57
  _ref$filterPanelMinHe = _ref.filterPanelMinHeight,
58
- filterPanelMinHeight = _ref$filterPanelMinHe === void 0 ? 600 : _ref$filterPanelMinHe;
58
+ filterPanelMinHeight = _ref$filterPanelMinHe === void 0 ? 600 : _ref$filterPanelMinHe,
59
+ _ref$primaryActionLab = _ref.primaryActionLabel,
60
+ primaryActionLabel = _ref$primaryActionLab === void 0 ? 'Apply' : _ref$primaryActionLab,
61
+ _ref$secondaryActionL = _ref.secondaryActionLabel,
62
+ secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
63
+ _ref$searchLabelText = _ref.searchLabelText,
64
+ searchLabelText = _ref$searchLabelText === void 0 ? 'Filter search' : _ref$searchLabelText,
65
+ _ref$searchPlaceholde = _ref.searchPlaceholder,
66
+ searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde;
59
67
  /** State */
60
68
  var _useState = (0, _react.useState)(false),
61
69
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -130,13 +138,13 @@ var FilterPanel = function FilterPanel(_ref) {
130
138
  actions: [{
131
139
  key: 1,
132
140
  kind: 'primary',
133
- label: 'Apply',
141
+ label: primaryActionLabel,
134
142
  onClick: apply,
135
143
  disabled: shouldDisableButtons
136
144
  }, {
137
145
  key: 2,
138
146
  kind: 'secondary',
139
- label: 'Cancel',
147
+ label: secondaryActionLabel,
140
148
  onClick: cancel,
141
149
  disabled: shouldDisableButtons
142
150
  }],
@@ -199,8 +207,8 @@ var FilterPanel = function FilterPanel(_ref) {
199
207
  ref: filterSearchRef,
200
208
  className: "".concat(componentClass, "__search")
201
209
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Search, {
202
- labelText: "Filter search",
203
- placeHolderText: "Find filters",
210
+ labelText: searchLabelText,
211
+ placeHolderText: searchPlaceholder,
204
212
  light: true,
205
213
  size: "sm"
206
214
  }))), /*#__PURE__*/_react.default.createElement("div", {
@@ -241,6 +249,10 @@ FilterPanel.propTypes = {
241
249
  onPanelClose: _propTypes.default.func,
242
250
  onPanelOpen: _propTypes.default.func,
243
251
  open: _propTypes.default.bool,
252
+ primaryActionLabel: _propTypes.default.string,
253
+ searchLabelText: _propTypes.default.string,
254
+ searchPlaceholder: _propTypes.default.string,
255
+ secondaryActionLabel: _propTypes.default.string,
244
256
  setAllFilters: _propTypes.default.func.isRequired,
245
257
  showFilterSearch: _propTypes.default.bool,
246
258
  title: _propTypes.default.string,
@@ -128,6 +128,17 @@ var useFilters = function useFilters(_ref) {
128
128
  // Remove it from the filters array
129
129
  filtersObjectArrayCopy.splice(_index2, 1);
130
130
  }
131
+ } else if (type === _constants.NUMBER) {
132
+ // If the value is empty remove it from the filtersObjectArray
133
+ if (value === '') {
134
+ // Find the column that uses number and displays an empty string
135
+ var _index3 = filtersObjectArrayCopy.findIndex(function (filter) {
136
+ return filter.id === column;
137
+ });
138
+
139
+ // Remove it from the filters array
140
+ filtersObjectArrayCopy.splice(_index3, 1);
141
+ }
131
142
  }
132
143
  setFiltersObjectArray(filtersObjectArrayCopy);
133
144
 
@@ -37,7 +37,9 @@ var RowSizeDropdown = function RowSizeDropdown(_ref) {
37
37
  tooltipPosition: "bottom",
38
38
  renderIcon: _iconsReact.Settings16,
39
39
  onClick: function onClick() {
40
- return setIsOpen(!isOpen);
40
+ return setIsOpen(function (prevOpen) {
41
+ return !prevOpen;
42
+ });
41
43
  },
42
44
  iconDescription: legendText,
43
45
  className: (0, _classnames.default)("".concat(blockClass, "__row-size-button"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__row-size-button--open"), isOpen))
@@ -10,6 +10,12 @@ Object.defineProperty(exports, "Datagrid", {
10
10
  return _Datagrid.Datagrid;
11
11
  }
12
12
  });
13
+ Object.defineProperty(exports, "getAutoSizedColumnWidth", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _getAutoSizedColumnWidth.getAutoSizedColumnWidth;
17
+ }
18
+ });
13
19
  Object.defineProperty(exports, "useActionsColumn", {
14
20
  enumerable: true,
15
21
  get: function get() {
@@ -136,4 +142,5 @@ var _useSelectAllToggle = _interopRequireDefault(require("./useSelectAllToggle")
136
142
  var _useColumnCenterAlign = _interopRequireDefault(require("./useColumnCenterAlign"));
137
143
  var _useColumnOrder = _interopRequireDefault(require("./useColumnOrder"));
138
144
  var _useInlineEdit = _interopRequireDefault(require("./useInlineEdit"));
139
- var _useFiltering = _interopRequireDefault(require("./useFiltering"));
145
+ var _useFiltering = _interopRequireDefault(require("./useFiltering"));
146
+ var _getAutoSizedColumnWidth = require("./utils/getAutoSizedColumnWidth");
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  /*
8
8
  * Licensed Materials - Property of IBM
9
9
  * 5724-Q36
10
- * (c) Copyright IBM Corp. 2020
10
+ * (c) Copyright IBM Corp. 2020, 2023
11
11
  * US Government Users Restricted Rights - Use, duplication or disclosure
12
12
  * restricted by GSA ADP Schedule Contract with IBM Corp.
13
13
  */
@@ -21,9 +21,9 @@ var useOnRowClick = function useOnRowClick(hooks) {
21
21
  instance = datagridState.instance;
22
22
  var id = row.id,
23
23
  toggleRowSelected = row.toggleRowSelected;
24
- var onClick = function onClick() {
24
+ var onClick = function onClick(event) {
25
25
  if (!isFetching && onRowClick) {
26
- onRowClick(row);
26
+ onRowClick(row, event);
27
27
  instance.selectedFlatRows && instance.selectedFlatRows.map(function (toggleRow) {
28
28
  return toggleRow.toggleRowSelected(false);
29
29
  });
@@ -22,6 +22,7 @@ var ordering = {
22
22
  };
23
23
  var useSortableColumns = function useSortableColumns(hooks) {
24
24
  var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref) {
25
+ var _instance$customizeCo;
25
26
  var instance = _ref.instance;
26
27
  var onSort = instance.onSort;
27
28
  var onSortClick = function onSortClick(column) {
@@ -37,7 +38,7 @@ var useSortableColumns = function useSortableColumns(hooks) {
37
38
  };
38
39
  var sortableColumns = visibleColumns.map(function (column) {
39
40
  var icon = function icon(col) {
40
- if (col.isSorted) {
41
+ if (col !== null && col !== void 0 && col.isSorted) {
41
42
  switch (col.isSortedDesc) {
42
43
  case false:
43
44
  return function () {
@@ -69,11 +70,11 @@ var useSortableColumns = function useSortableColumns(hooks) {
69
70
  var _cx;
70
71
  return column.disableSortBy === true ? column.Header : /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
71
72
  onClick: function onClick() {
72
- return onSortClick(headerProp.column);
73
+ return onSortClick(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column);
73
74
  },
74
75
  kind: "ghost",
75
- renderIcon: icon(headerProp.column),
76
- className: (0, _classnames.default)("".concat(_settings.carbon.prefix, "--table-sort ").concat(blockClass, "--table-sort"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--desc"), headerProp.column.isSortedDesc), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--asc"), headerProp.column.isSortedDesc === false), _cx))
76
+ renderIcon: icon(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column),
77
+ className: (0, _classnames.default)("".concat(_settings.carbon.prefix, "--table-sort ").concat(blockClass, "--table-sort"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--desc"), headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--asc"), (headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc) === false), _cx))
77
78
  }, column.Header);
78
79
  };
79
80
  return _objectSpread(_objectSpread({}, column), {}, {
@@ -81,7 +82,7 @@ var useSortableColumns = function useSortableColumns(hooks) {
81
82
  minWidth: column.disableSortBy === true ? 0 : 90
82
83
  });
83
84
  });
84
- return (0, _toConsumableArray2.default)(sortableColumns);
85
+ return (_instance$customizeCo = instance.customizeColumnsProps) !== null && _instance$customizeCo !== void 0 && _instance$customizeCo.isTearsheetOpen ? visibleColumns : (0, _toConsumableArray2.default)(sortableColumns);
85
86
  };
86
87
  var sortInstanceProps = function sortInstanceProps(instance) {
87
88
  var onSort = instance.onSort;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getAutoSizedColumnWidth = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ /**
10
+ * Copyright IBM Corp. 2023, 2023
11
+ *
12
+ * This source code is licensed under the Apache-2.0 license found in the
13
+ * LICENSE file in the root directory of this source tree.
14
+ */
15
+
16
+ /**
17
+ * Calculates the auto sized width of a column
18
+ * @param {Array<object>} rows - The datagrid rows
19
+ * @param {string} accessor - The accessor for the column
20
+ * @param {string} headerText - The header text for the column
21
+ */
22
+
23
+ var getAutoSizedColumnWidth = function getAutoSizedColumnWidth(rows, accessor, headerText) {
24
+ var maxWidth = 400;
25
+ var minWidth = 58;
26
+ var letterSpacing = 10;
27
+ var cellLength = Math.max.apply(Math, (0, _toConsumableArray2.default)(rows.map(function (row) {
28
+ return ("".concat(row[accessor]) || '').length;
29
+ })).concat([headerText.length]));
30
+ if (cellLength <= 3) {
31
+ return minWidth;
32
+ }
33
+ return Math.min(maxWidth, cellLength * letterSpacing + 16);
34
+ };
35
+ exports.getAutoSizedColumnWidth = getAutoSizedColumnWidth;
@@ -56,11 +56,11 @@ ExpressiveCard.propTypes = {
56
56
  /**
57
57
  * Optional header description
58
58
  */
59
- description: _propTypes.default.string,
59
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
60
60
  /**
61
61
  * Optional label for the top of the card
62
62
  */
63
- label: _propTypes.default.string,
63
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
64
64
  /**
65
65
  * Optional media content like an image to be placed in the card
66
66
  */
@@ -120,6 +120,6 @@ ExpressiveCard.propTypes = {
120
120
  /**
121
121
  * Title that's displayed at the top of the card
122
122
  */
123
- title: _propTypes.default.string
123
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node])
124
124
  };
125
125
  ExpressiveCard.displayName = componentName;
@@ -23,6 +23,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
23
23
  var componentName = 'InlineEditV2';
24
24
  var blockClass = "".concat(_settings.pkg.prefix, "--inline-edit-v2");
25
25
  var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
26
+ var _cx;
26
27
  var cancelLabel = _ref.cancelLabel,
27
28
  editLabel = _ref.editLabel,
28
29
  id = _ref.id,
@@ -129,7 +130,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
129
130
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
130
131
  ref: ref
131
132
  }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement("div", {
132
- className: (0, _classnames.default)(blockClass, (0, _defineProperty2.default)({}, "".concat(blockClass, "-focused"), focused)),
133
+ className: (0, _classnames.default)(blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--focused"), focused), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--invalid"), invalid), _cx)),
133
134
  onFocus: onFocusHandler,
134
135
  onBlur: onBlurHandler
135
136
  }, /*#__PURE__*/_react.default.createElement("label", {
@@ -145,7 +146,9 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
145
146
  // readOnly={readOnly}
146
147
  ,
147
148
  onKeyDown: onKeyHandler
148
- }), focused ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, invalid && /*#__PURE__*/_react.default.createElement(_iconsReact.WarningFilled16, {
149
+ }), /*#__PURE__*/_react.default.createElement("div", {
150
+ className: "".concat(blockClass, "__toolbar")
151
+ }, focused ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, invalid && /*#__PURE__*/_react.default.createElement(_iconsReact.WarningFilled16, {
149
152
  className: "".concat(blockClass, "__warning-icon")
150
153
  }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
151
154
  hasIconOnly: true,
@@ -182,7 +185,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
182
185
  kind: "ghost",
183
186
  tabIndex: 0,
184
187
  key: "edit"
185
- })), focused && invalid && /*#__PURE__*/_react.default.createElement("p", {
188
+ }))), focused && invalid && /*#__PURE__*/_react.default.createElement("p", {
186
189
  className: "".concat(blockClass, "__warning-text")
187
190
  }, invalidLabel));
188
191
  });
@@ -73,11 +73,11 @@ ProductiveCard.propTypes = {
73
73
  /**
74
74
  * Optional header description
75
75
  */
76
- description: _propTypes.default.string,
76
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
77
77
  /**
78
78
  * Optional label for the top of the card
79
79
  */
80
- label: _propTypes.default.string,
80
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
81
81
  /**
82
82
  * Provides the callback for a clickable card
83
83
  */
@@ -114,7 +114,7 @@ ProductiveCard.propTypes = {
114
114
  /**
115
115
  * Title that's displayed at the top of the card
116
116
  */
117
- title: _propTypes.default.string,
117
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
118
118
  /**
119
119
  * Determines title size
120
120
  */
@@ -413,7 +413,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
413
413
  renderIcon: icon,
414
414
  iconDescription: label,
415
415
  tooltipPosition: tooltipPosition || 'bottom',
416
- tooltipAlignment: tooltipAlignment || 'center',
416
+ tooltipAlignment: tooltipAlignment || 'start',
417
417
  hasIconOnly: !leading,
418
418
  disabled: disabled,
419
419
  className: (0, _classnames.default)(["".concat(blockClass, "__action-toolbar-button"), className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__action-toolbar-leading-button"), leading)]),
@@ -339,6 +339,12 @@ Object.defineProperty(exports, "WebTerminalProvider", {
339
339
  return _WebTerminal.WebTerminalProvider;
340
340
  }
341
341
  });
342
+ Object.defineProperty(exports, "getAutoSizedColumnWidth", {
343
+ enumerable: true,
344
+ get: function get() {
345
+ return _Datagrid.getAutoSizedColumnWidth;
346
+ }
347
+ });
342
348
  Object.defineProperty(exports, "useActionsColumn", {
343
349
  enumerable: true,
344
350
  get: function get() {
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.prepareStory = exports.getStoryTitle = exports.getStoryId = exports.CodesandboxLink = void 0;
7
+ exports.prepareStory = exports.getStoryTitle = exports.getStoryId = exports.getSelectedCarbonTheme = exports.CodesandboxLink = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _csf = require("@storybook/csf");
@@ -87,4 +87,14 @@ CodesandboxLink.propTypes = {
87
87
  * directory withing examples codesandbox will be found
88
88
  */
89
89
  exampleDirectory: _propTypes.default.string
90
- };
90
+ };
91
+
92
+ /**
93
+ * A helper function that finds the designated theme on the Storybook canvas.
94
+ * @returns "dark" or "light"
95
+ */
96
+ var getSelectedCarbonTheme = function getSelectedCarbonTheme() {
97
+ var themeId = document.querySelector('html').getAttribute('storybook-carbon-theme');
98
+ return themeId === 'g90' || themeId === 'g100' ? 'dark' : 'light';
99
+ };
100
+ exports.getSelectedCarbonTheme = getSelectedCarbonTheme;
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": "1.48.0",
4
+ "version": "1.50.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -95,5 +95,5 @@
95
95
  "react": "^16.8.6 || ^17.0.1",
96
96
  "react-dom": "^16.8.6 || ^17.0.1"
97
97
  },
98
- "gitHead": "e24d71d09cd3d3a5c570391bd4e24a3d1f88e96e"
98
+ "gitHead": "e43b934e57b218780d73621961ec30056d0cf122"
99
99
  }
@@ -428,7 +428,7 @@
428
428
  position: relative;
429
429
  width: 100%;
430
430
  max-height: 100%;
431
- overflow-y: scroll;
431
+ overflow-y: auto;
432
432
  }
433
433
 
434
434
  .#{$block-class}__carbon-row-expanded {
@@ -60,7 +60,6 @@
60
60
 
61
61
  &:hover {
62
62
  --#{$block-class}--background-color: #{$hover-field};
63
- // background-color: $background-color;
64
63
  }
65
64
 
66
65
  position: relative;
@@ -116,6 +115,7 @@
116
115
  margin-right: var(--#{$block-class}--toolbar-width);
117
116
  // room for toolbar
118
117
  margin-left: $spacing-05;
118
+ color: $text-01;
119
119
  // stylelint-disable-next-line carbon/type-token-use
120
120
  line-height: var(--#{$block-class}--size);
121
121
 
@@ -206,10 +206,6 @@
206
206
  --#{$block-class}--toolbar-width: calc(3 * var(--#{$block-class}--size));
207
207
  }
208
208
 
209
- .#{$block-class}__toolbar--animation {
210
- // width: ;
211
- }
212
-
213
209
  &.#{$block-class}--editing .#{$block-class}__toolbar::after {
214
210
  // cover top and bottom when focus within block
215
211
  // doing the same on the buttons is problematic when animating
@@ -36,7 +36,7 @@
36
36
  visibility: hidden;
37
37
  }
38
38
 
39
- &-focused {
39
+ &--focused {
40
40
  background: $field-01;
41
41
  outline: 2px solid $focus;
42
42
  }
@@ -50,8 +50,7 @@
50
50
  }
51
51
 
52
52
  &__warning-icon {
53
- /* stylelint-disable-next-line carbon/layout-token-use */
54
- margin-right: 0.4375rem;
53
+ margin: $spacing-03;
55
54
  color: $support-01;
56
55
  }
57
56
 
@@ -81,6 +80,45 @@
81
80
  .#{$block-class}__text-input.#{$carbon-input}:active {
82
81
  outline: none;
83
82
  }
83
+
84
+ .#{$block-class}__toolbar {
85
+ --toolbar-width: #{$spacing-07};
86
+ --toolbar-width-focussed: #{$spacing-10};
87
+
88
+ // animation div
89
+ display: inline-flex;
90
+ overflow: hidden;
91
+ width: var(--toolbar-width);
92
+ }
93
+
94
+ .#{$block-class}--invalid .#{$block-class}__toolbar {
95
+ --toolbar-width: #{$spacing-07};
96
+ --toolbar-width-focussed: #{$spacing-12};
97
+ }
98
+
99
+ @keyframes slide-in {
100
+ 0% {
101
+ overflow: hidden;
102
+ width: var(--toolbar-width);
103
+ }
104
+
105
+ 99% {
106
+ overflow: hidden;
107
+ width: var(--toolbar-width-focussed);
108
+ }
109
+
110
+ 100% {
111
+ overflow: visible;
112
+ width: var(--toolbar-width-focussed);
113
+ }
114
+ }
115
+
116
+ .#{$block-class}--focused .#{$block-class}__toolbar {
117
+ overflow: initial;
118
+ width: var(--toolbar-width-focussed);
119
+
120
+ animation: slide-in $duration--moderate-01 motion(entrance, productive);
121
+ }
84
122
  }
85
123
 
86
124
  @include exports('inline-edit-v2') {
@@ -327,6 +327,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
327
327
  padding: 0;
328
328
  color: $text-01;
329
329
  }
330
+
330
331
  .#{$carbon-prefix}--btn.#{$block-class}__close-button {
331
332
  position: absolute;
332
333
  z-index: 5;
@@ -335,8 +336,8 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
335
336
  display: flex;
336
337
  align-items: center;
337
338
  justify-content: center;
338
- background-color: $ui-01;
339
339
  }
340
+
340
341
  .#{$carbon-prefix}--btn.#{$block-class}__close-button
341
342
  .#{$carbon-prefix}--btn__icon {
342
343
  margin: 0;
@@ -69,6 +69,12 @@ $block-class-modal: #{$block-class}-modal;
69
69
  }
70
70
  }
71
71
 
72
+ .#{$block-class-overflow}__tooltip
73
+ .#{$block-class-overflow}__tag-item
74
+ .#{$carbon-prefix}--tag {
75
+ border-radius: 0;
76
+ }
77
+
72
78
  @include block-wrap('#{$block-class-modal}') {
73
79
  &.#{$block-class-modal} {
74
80
  // not to be overridden by use in tag set