@carbon/ibm-products 1.10.0 → 1.11.2

Sign up to get free protection for your applications and to get access to all the features.
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, {