@carbon/ibm-products 1.10.0 → 1.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/css/index-full-carbon.css +249 -218
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +5 -5
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +21 -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 +102 -212
  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 +219 -212
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +5 -5
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelect.js +88 -87
  18. package/es/components/AddSelect/AddSelectColumn.js +193 -19
  19. package/es/components/AddSelect/AddSelectList.js +5 -5
  20. package/es/components/AddSelect/AddSelectSidebar.js +3 -15
  21. package/es/components/AddSelect/add-select-utils.js +64 -0
  22. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -1
  23. package/es/components/ButtonMenu/ButtonMenu.js +11 -3
  24. package/es/components/CreateFullPage/CreateFullPageStep.js +4 -4
  25. package/es/components/CreateTearsheet/CreateTearsheetStep.js +4 -4
  26. package/es/components/DataSpreadsheet/DataSpreadsheet.js +255 -140
  27. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +37 -38
  28. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +55 -6
  29. package/es/components/DataSpreadsheet/hooks/useMoveActiveCell.js +27 -0
  30. package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +28 -0
  31. package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +41 -0
  32. package/es/components/DataSpreadsheet/{checkActiveHeaderCell.js → utils/checkActiveHeaderCell.js} +1 -1
  33. package/es/components/DataSpreadsheet/{createActiveCellFn.js → utils/createActiveCellFn.js} +20 -9
  34. package/es/components/DataSpreadsheet/{createCellSelectionArea.js → utils/createCellSelectionArea.js} +8 -4
  35. package/es/components/DataSpreadsheet/{generateData.js → utils/generateData.js} +6 -0
  36. package/es/components/DataSpreadsheet/{getCellSize.js → utils/getCellSize.js} +0 -0
  37. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +46 -0
  38. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +82 -0
  39. package/es/components/DataSpreadsheet/utils/removeCellSelections.js +30 -0
  40. package/es/components/InlineEdit/InlineEdit.js +49 -8
  41. package/es/components/OptionsTile/OptionsTile.js +20 -20
  42. package/es/components/OptionsTile/index.js +1 -1
  43. package/es/components/PageHeader/PageHeader.js +35 -32
  44. package/es/components/PageHeader/PageHeaderTitle.js +2 -1
  45. package/es/components/PageHeader/PageHeaderUtils.js +21 -22
  46. package/es/components/index.js +0 -1
  47. package/es/global/js/package-settings.js +1 -2
  48. package/lib/components/AddSelect/AddSelect.js +91 -87
  49. package/lib/components/AddSelect/AddSelectColumn.js +193 -16
  50. package/lib/components/AddSelect/AddSelectList.js +5 -5
  51. package/lib/components/AddSelect/AddSelectSidebar.js +9 -15
  52. package/lib/components/AddSelect/add-select-utils.js +78 -0
  53. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -1
  54. package/lib/components/ButtonMenu/ButtonMenu.js +11 -3
  55. package/lib/components/CreateFullPage/CreateFullPageStep.js +4 -4
  56. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +4 -4
  57. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +263 -142
  58. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +39 -36
  59. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +62 -8
  60. package/lib/components/DataSpreadsheet/hooks/useMoveActiveCell.js +37 -0
  61. package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +39 -0
  62. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +52 -0
  63. package/lib/components/DataSpreadsheet/{checkActiveHeaderCell.js → utils/checkActiveHeaderCell.js} +1 -1
  64. package/lib/components/DataSpreadsheet/{createActiveCellFn.js → utils/createActiveCellFn.js} +20 -9
  65. package/lib/components/DataSpreadsheet/{createCellSelectionArea.js → utils/createCellSelectionArea.js} +8 -4
  66. package/lib/components/DataSpreadsheet/{generateData.js → utils/generateData.js} +6 -0
  67. package/lib/components/DataSpreadsheet/{getCellSize.js → utils/getCellSize.js} +0 -0
  68. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +59 -0
  69. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +92 -0
  70. package/lib/components/DataSpreadsheet/utils/removeCellSelections.js +41 -0
  71. package/lib/components/InlineEdit/InlineEdit.js +52 -10
  72. package/lib/components/OptionsTile/OptionsTile.js +19 -19
  73. package/lib/components/PageHeader/PageHeader.js +35 -32
  74. package/lib/components/PageHeader/PageHeaderTitle.js +2 -1
  75. package/lib/components/PageHeader/PageHeaderUtils.js +21 -22
  76. package/lib/components/index.js +0 -8
  77. package/lib/global/js/package-settings.js +1 -2
  78. package/package.json +13 -13
  79. package/scss/components/AddSelect/_add-select.scss +20 -0
  80. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +7 -3
  81. package/scss/components/CreateSidePanel/_create-side-panel.scss +1 -1
  82. package/scss/components/CreateSidePanel/_storybook-styles.scss +1 -1
  83. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +14 -1
  84. package/scss/components/EditSidePanel/_edit-side-panel.scss +9 -0
  85. package/scss/components/EditSidePanel/_storybook-styles.scss +1 -1
  86. package/scss/components/InlineEdit/_inline-edit.scss +35 -37
  87. package/scss/components/ModifiedTabs/_modified-tabs.scss +5 -0
  88. package/scss/components/NotificationsPanel/_notifications-panel.scss +7 -3
  89. package/scss/components/OptionsTile/_index.scss +1 -1
  90. package/scss/components/OptionsTile/_options-tile.scss +17 -17
  91. package/scss/components/OptionsTile/_storybook-styles.scss +4 -4
  92. package/scss/components/PageHeader/_page-header.scss +3 -2
  93. package/scss/components/SidePanel/_side-panel.scss +8 -8
  94. package/scss/components/Tearsheet/_tearsheet.scss +4 -0
  95. package/scss/components/_index.scss +0 -1
  96. package/es/components/LoadingBar/LoadingBar.js +0 -156
  97. package/es/components/LoadingBar/index.js +0 -7
  98. package/lib/components/LoadingBar/LoadingBar.js +0 -170
  99. package/lib/components/LoadingBar/index.js +0 -13
  100. package/scss/components/LoadingBar/_index.scss +0 -8
  101. package/scss/components/LoadingBar/_loading-bar.scss +0 -224
  102. package/scss/components/LoadingBar/_storybook-styles.scss +0 -14
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.normalize = exports.flatten = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _excluded = ["children"],
15
+ _excluded2 = ["children"];
16
+
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
+
21
+ /**
22
+ * used to normalize nested data into a single object
23
+ * @param {Array} items - list of entries
24
+ * @returns an object of normalized item data
25
+ */
26
+ var normalize = function normalize(items) {
27
+ var entries = items.entries,
28
+ parentId = items.parentId,
29
+ sortBy = items.sortBy,
30
+ filterBy = items.filterBy;
31
+ return entries.reduce(function (acc, cur) {
32
+ var children = cur.children,
33
+ entry = (0, _objectWithoutProperties2.default)(cur, _excluded);
34
+ acc[cur.id] = _objectSpread({}, entry);
35
+
36
+ if (parentId) {
37
+ acc[cur.id].parent = parentId;
38
+ }
39
+
40
+ if (sortBy !== null && sortBy !== void 0 && sortBy.length) {
41
+ acc[cur.id].sortBy = sortBy;
42
+ }
43
+
44
+ if (filterBy) {
45
+ acc[cur.id].filterBy = filterBy;
46
+ }
47
+
48
+ if (children) {
49
+ acc[cur.id].children = children.entries.map(function (child) {
50
+ return child.id;
51
+ });
52
+ var child = normalize(_objectSpread(_objectSpread({}, children), {}, {
53
+ parentId: cur.id
54
+ }));
55
+ return _objectSpread(_objectSpread({}, acc), child);
56
+ }
57
+
58
+ return acc;
59
+ }, {});
60
+ };
61
+ /**
62
+ * used to create a single searchable array of nested items
63
+ * @param {Array} entries - list of entries
64
+ * @returns an array of items
65
+ */
66
+
67
+
68
+ exports.normalize = normalize;
69
+
70
+ var flatten = function flatten(entries) {
71
+ return entries.reduce(function (prev, cur) {
72
+ var children = cur.children,
73
+ item = (0, _objectWithoutProperties2.default)(cur, _excluded2);
74
+ return prev.concat(item).concat(children ? flatten(children.entries) : []);
75
+ }, []);
76
+ };
77
+
78
+ exports.flatten = flatten;
@@ -94,7 +94,8 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
94
94
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.OverflowMenu, {
95
95
  ariaLabel: overflowAriaLabel,
96
96
  renderIcon: _iconsReact.OverflowMenuHorizontal32,
97
- className: "".concat(blockClass, "__overflow-menu")
97
+ className: "".concat(blockClass, "__overflow-menu"),
98
+ menuOptionsClass: "".concat(blockClass, "__overflow-menu-options")
98
99
  }, // eslint-disable-next-line react/prop-types
99
100
  overflowItems.map(function (item, index) {
100
101
  return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.OverflowMenuItem, {
@@ -21,14 +21,15 @@ var _settings = require("../../settings");
21
21
 
22
22
  var _carbonComponentsReact = require("carbon-components-react");
23
23
 
24
- var _excluded = ["children", "className", "iconDescription", "label", "menuOptionsClass", "renderIcon", "size"];
24
+ var _excluded = ["children", "className", "iconDescription", "kind", "label", "menuOptionsClass", "renderIcon", "size"];
25
25
  // The block part of our conventional BEM class names (blockClass__E--M).
26
26
  var blockClass = "".concat(_settings.pkg.prefix, "--button-menu");
27
27
  var componentName = 'ButtonMenu'; // NOTE: the component SCSS is not imported here: it is rolled up separately.
28
28
  // Default values for props
29
29
 
30
30
  var defaults = {
31
- size: 'default'
31
+ size: 'default',
32
+ kind: 'primary'
32
33
  };
33
34
  /**
34
35
  * Combining a standard button with an overflow menu, this component appears
@@ -42,6 +43,8 @@ var ButtonMenu = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
42
43
  var children = _ref.children,
43
44
  className = _ref.className,
44
45
  iconDescription = _ref.iconDescription,
46
+ _ref$kind = _ref.kind,
47
+ kind = _ref$kind === void 0 ? defaults.kind : _ref$kind,
45
48
  label = _ref.label,
46
49
  menuOptionsClass = _ref.menuOptionsClass,
47
50
  Icon = _ref.renderIcon,
@@ -55,7 +58,7 @@ var ButtonMenu = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
55
58
  menuOptionsClass: (0, _classnames.default)("".concat(blockClass, "__options"), menuOptionsClass),
56
59
  renderIcon: function renderIcon() {
57
60
  return /*#__PURE__*/_react.default.createElement("div", {
58
- className: (0, _classnames.default)(["".concat(blockClass, "__trigger"), "".concat(_settings.carbon.prefix, "--btn"), "".concat(_settings.carbon.prefix, "--btn--primary"), "".concat(_settings.carbon.prefix, "--btn--").concat(size)])
61
+ className: (0, _classnames.default)(["".concat(blockClass, "__trigger"), "".concat(_settings.carbon.prefix, "--btn"), "".concat(_settings.carbon.prefix, "--btn--").concat(kind), "".concat(_settings.carbon.prefix, "--btn--").concat(size)])
59
62
  }, label, Icon && /*#__PURE__*/_react.default.createElement(Icon, {
60
63
  "aria-hidden": "true",
61
64
  "aria-label": iconDescription,
@@ -93,6 +96,11 @@ ButtonMenu.propTypes = {
93
96
  */
94
97
  iconDescription: _carbonComponentsReact.Button.propTypes.iconDescription,
95
98
 
99
+ /**
100
+ * The three types the menu button supports: primary, tertiary and ghost.
101
+ */
102
+ kind: _propTypes.default.oneOf(['primary', 'tertiary', 'ghost']),
103
+
96
104
  /**
97
105
  * The button label for the menu trigger.
98
106
  */
@@ -81,23 +81,23 @@ var CreateFullPageStep = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref
81
81
  shouldIncludeStep: shouldIncludeStep,
82
82
  secondaryLabel: secondaryLabel,
83
83
  title: title
84
- }); // This useEffect reports back the onNext and onMount values so that they can be used
84
+ }); // This useEffect reports back the onMount value so that they can be used
85
85
  // in the appropriate custom hooks.
86
86
 
87
87
  (0, _react.useEffect)(function () {
88
88
  if (stepNumber === (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep) && (previousState === null || previousState === void 0 ? void 0 : previousState.currentStep) !== (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)) {
89
- stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnNext(onNext);
90
89
  stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnMount(onMount);
91
90
  }
92
- }, [onMount, onNext, stepsContext, stepNumber, previousState === null || previousState === void 0 ? void 0 : previousState.currentStep]);
91
+ }, [onMount, stepsContext, stepNumber, previousState === null || previousState === void 0 ? void 0 : previousState.currentStep]);
93
92
  (0, _react.useEffect)(function () {
94
93
  setShouldIncludeStep(includeStep);
95
- }, [includeStep, stepsContext, title]); // Whenever we are the current step, supply our disableSubmit value to the
94
+ }, [includeStep, stepsContext, title]); // Whenever we are the current step, supply our disableSubmit and onNext values to the
96
95
  // steps container context so that it can manage the 'Next' button appropriately.
97
96
 
98
97
  (0, _react.useEffect)(function () {
99
98
  if (stepNumber === (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)) {
100
99
  stepsContext.setIsDisabled(disableSubmit);
100
+ stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnNext(onNext); // needs to be updated here otherwise there could be stale state values from only initially setting onNext
101
101
  }
102
102
  }, [stepsContext, stepNumber, disableSubmit, onNext]);
103
103
  return stepsContext ? /*#__PURE__*/_react.default.createElement("section", (0, _extends2.default)({}, rest, {
@@ -83,24 +83,24 @@ var CreateTearsheetStep = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
83
83
  shouldIncludeStep: shouldIncludeStep,
84
84
  secondaryLabel: secondaryLabel,
85
85
  title: title
86
- }); // This useEffect reports back the onNext and onMount values so that they can be used
86
+ }); // This useEffect reports back the onMount value so that they can be used
87
87
  // in the appropriate custom hooks.
88
88
 
89
89
  (0, _react.useEffect)(function () {
90
90
  if (stepNumber === (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep) && (previousState === null || previousState === void 0 ? void 0 : previousState.currentStep) !== (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)) {
91
- stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnNext(onNext);
92
91
  stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnMount(onMount);
93
92
  }
94
- }, [onMount, onNext, stepsContext, stepNumber, previousState === null || previousState === void 0 ? void 0 : previousState.currentStep]); // Used to take the `includeStep` prop and use it as a local state value
93
+ }, [onMount, stepsContext, stepNumber, previousState === null || previousState === void 0 ? void 0 : previousState.currentStep]); // Used to take the `includeStep` prop and use it as a local state value
95
94
 
96
95
  (0, _react.useEffect)(function () {
97
96
  setShouldIncludeStep(includeStep);
98
- }, [includeStep, stepsContext, title]); // Whenever we are the current step, supply our disableSubmit value to the
97
+ }, [includeStep, stepsContext, title]); // Whenever we are the current step, supply our disableSubmit and onNext values to the
99
98
  // steps container context so that it can manage the 'Next' button appropriately.
100
99
 
101
100
  (0, _react.useEffect)(function () {
102
101
  if (stepNumber === (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)) {
103
102
  stepsContext.setIsDisabled(disableSubmit);
103
+ stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnNext(onNext); // needs to be updated here otherwise there could be stale state values from only initially setting onNext
104
104
  }
105
105
  }, [stepsContext, stepNumber, disableSubmit, onNext]);
106
106
  return stepsContext ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {