@carbon/ibm-products 1.2.3 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. package/css/index-full-carbon.css +538 -273
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +2 -2
  4. package/css/index-without-carbon-released-only.css +32 -41
  5. package/css/index-without-carbon-released-only.css.map +1 -1
  6. package/css/index-without-carbon-released-only.min.css +2 -2
  7. package/css/index-without-carbon.css +269 -41
  8. package/css/index-without-carbon.css.map +1 -1
  9. package/css/index-without-carbon.min.css +2 -2
  10. package/css/index.css +491 -41
  11. package/css/index.css.map +1 -1
  12. package/css/index.min.css +2 -2
  13. package/es/components/APIKeyModal/APIKeyModal.js +25 -29
  14. package/es/components/ActionBar/ActionBar.js +4 -1
  15. package/es/components/AddSelect/AddSelect.js +157 -0
  16. package/es/components/AddSelect/index.js +7 -0
  17. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +19 -15
  18. package/es/components/CancelableTextEdit/CancelableTextEdit.js +245 -0
  19. package/es/components/{CreateTearsheet/constants.js → CancelableTextEdit/index.js} +1 -2
  20. package/es/components/CreateFullPage/CreateFullPage.js +78 -259
  21. package/es/components/CreateFullPage/CreateFullPageStep.js +58 -14
  22. package/es/components/CreateFullPage/index.js +1 -2
  23. package/es/components/CreateInfluencer/CreateInfluencer.js +23 -225
  24. package/es/components/CreateTearsheet/CreateTearsheet.js +69 -146
  25. package/es/components/CreateTearsheet/CreateTearsheetStep.js +59 -16
  26. package/es/components/CreateTearsheet/index.js +0 -1
  27. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +66 -27
  28. package/es/components/ExportModal/ExportModal.js +4 -2
  29. package/es/components/ImportModal/ImportModal.js +2 -1
  30. package/es/components/InlineEdit/InlineEdit.js +224 -0
  31. package/es/components/InlineEdit/index.js +7 -0
  32. package/es/components/MultiAddSelect/MultiAddSelect.js +16 -0
  33. package/es/components/MultiAddSelect/index.js +1 -0
  34. package/es/components/OptionsTile/OptionsTile.js +36 -15
  35. package/es/components/PageHeader/PageHeader.js +54 -33
  36. package/es/components/PageHeader/PageHeaderTitle.js +78 -7
  37. package/es/components/PageHeader/PageHeaderUtils.js +21 -2
  38. package/es/components/RemoveModal/RemoveModal.js +4 -2
  39. package/es/components/SingleAddSelect/SingleAddSelect.js +15 -0
  40. package/es/components/SingleAddSelect/index.js +1 -0
  41. package/es/components/TagSet/TagSet.js +4 -1
  42. package/es/components/Toolbar/Toolbar.js +69 -8
  43. package/es/components/index.js +5 -1
  44. package/es/global/js/hooks/useCreateComponentFocus.js +15 -19
  45. package/es/global/js/hooks/useCreateComponentStepChange.js +44 -74
  46. package/es/global/js/hooks/useValidCreateStepCount.js +4 -7
  47. package/es/global/js/package-settings.js +5 -1
  48. package/es/global/js/utils/story-helper.js +1 -1
  49. package/lib/components/APIKeyModal/APIKeyModal.js +25 -29
  50. package/lib/components/ActionBar/ActionBar.js +4 -1
  51. package/lib/components/AddSelect/AddSelect.js +178 -0
  52. package/lib/components/AddSelect/index.js +13 -0
  53. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +18 -14
  54. package/lib/components/CancelableTextEdit/CancelableTextEdit.js +265 -0
  55. package/lib/components/CancelableTextEdit/index.js +13 -0
  56. package/lib/components/CreateFullPage/CreateFullPage.js +78 -259
  57. package/lib/components/CreateFullPage/CreateFullPageStep.js +61 -14
  58. package/lib/components/CreateFullPage/index.js +1 -9
  59. package/lib/components/CreateInfluencer/CreateInfluencer.js +21 -236
  60. package/lib/components/CreateTearsheet/CreateTearsheet.js +71 -148
  61. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +61 -15
  62. package/lib/components/CreateTearsheet/index.js +0 -8
  63. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +67 -35
  64. package/lib/components/ExportModal/ExportModal.js +4 -2
  65. package/lib/components/ImportModal/ImportModal.js +2 -1
  66. package/lib/components/InlineEdit/InlineEdit.js +242 -0
  67. package/lib/components/InlineEdit/index.js +13 -0
  68. package/lib/components/MultiAddSelect/MultiAddSelect.js +37 -0
  69. package/lib/components/MultiAddSelect/index.js +13 -0
  70. package/lib/components/OptionsTile/OptionsTile.js +36 -15
  71. package/lib/components/PageHeader/PageHeader.js +54 -33
  72. package/lib/components/PageHeader/PageHeaderTitle.js +87 -9
  73. package/lib/components/PageHeader/PageHeaderUtils.js +21 -2
  74. package/lib/components/RemoveModal/RemoveModal.js +4 -2
  75. package/lib/components/SingleAddSelect/SingleAddSelect.js +36 -0
  76. package/lib/components/SingleAddSelect/index.js +13 -0
  77. package/lib/components/TagSet/TagSet.js +4 -1
  78. package/lib/components/Toolbar/Toolbar.js +69 -6
  79. package/lib/components/index.js +33 -1
  80. package/lib/global/js/hooks/useCreateComponentFocus.js +15 -19
  81. package/lib/global/js/hooks/useCreateComponentStepChange.js +44 -74
  82. package/lib/global/js/hooks/useValidCreateStepCount.js +4 -7
  83. package/lib/global/js/package-settings.js +5 -1
  84. package/lib/global/js/utils/story-helper.js +1 -1
  85. package/package.json +15 -15
  86. package/scss/components/AddSelect/_add-select.scss +84 -0
  87. package/scss/components/AddSelect/_index.scss +10 -0
  88. package/scss/components/AddSelect/_storybook-styles.scss +6 -0
  89. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +19 -15
  90. package/scss/components/CancelableTextEdit/_cancelable-text-edit.scss +211 -0
  91. package/{es/components/CreateFullPage/constants.js → scss/components/CancelableTextEdit/_index.scss} +2 -2
  92. package/scss/components/CancelableTextEdit/_storybook-styles.scss +15 -0
  93. package/scss/components/CreateFullPage/_create-full-page.scss +4 -11
  94. package/scss/components/CreateTearsheet/_create-tearsheet.scss +4 -8
  95. package/scss/components/InlineEdit/_index.scss +8 -0
  96. package/scss/components/InlineEdit/_inline-edit.scss +44 -0
  97. package/scss/components/InlineEdit/_storybook-styles.scss +15 -0
  98. package/scss/components/MultiAddSelect/_index.scss +1 -0
  99. package/scss/components/MultiAddSelect/_multi-add-select.scss +1 -0
  100. package/scss/components/MultiAddSelect/_storybook-styles.scss +6 -0
  101. package/scss/components/PageHeader/_page-header.scss +14 -4
  102. package/scss/components/SingleAddSelect/_index.scss +1 -0
  103. package/scss/components/SingleAddSelect/_single-add-select.scss +1 -0
  104. package/scss/components/SingleAddSelect/_storybook-styles.scss +6 -0
  105. package/scss/components/_index.scss +4 -0
  106. package/es/components/CreateFullPage/CreateFullPageSection.js +0 -53
  107. package/es/components/CreateTearsheet/CreateTearsheetSection.js +0 -83
  108. package/es/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +0 -327
  109. package/es/global/js/utils/hasValidType.js +0 -94
  110. package/lib/components/CreateFullPage/CreateFullPageSection.js +0 -74
  111. package/lib/components/CreateFullPage/constants.js +0 -16
  112. package/lib/components/CreateTearsheet/CreateTearsheetSection.js +0 -105
  113. package/lib/components/CreateTearsheet/constants.js +0 -17
  114. package/lib/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +0 -354
  115. package/lib/global/js/utils/hasValidType.js +0 -110
@@ -13,6 +13,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
 
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
16
18
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
19
 
18
20
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -21,6 +23,8 @@ var _propTypes = require("prop-types");
21
23
 
22
24
  var _react = _interopRequireWildcard(require("react"));
23
25
 
26
+ var _getFocusableElements2 = require("../../global/js/utils/getFocusableElements");
27
+
24
28
  var _settings = require("../../settings");
25
29
 
26
30
  var _excluded = ["children", "className", "vertical"];
@@ -37,14 +41,73 @@ var ToolbarContext = /*#__PURE__*/(0, _react.createContext)();
37
41
  /** Toolbars are a collection of action items that organize a program’s interaction patterns into a series of closely related commands. */
38
42
 
39
43
  exports.ToolbarContext = ToolbarContext;
40
- var Toolbar = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
41
- var children = _ref.children,
42
- className = _ref.className,
43
- vertical = _ref.vertical,
44
- rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
44
+ var Toolbar = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, r) {
45
+ var children = _ref2.children,
46
+ className = _ref2.className,
47
+ vertical = _ref2.vertical,
48
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
49
+ var focusableElements = (0, _react.useRef)();
50
+ var getFocusableElements = (0, _react.useCallback)(function () {
51
+ return focusableElements.current;
52
+ }, [focusableElements]);
53
+
54
+ var _ref = (0, _react.useRef)();
55
+
56
+ var ref = r || _ref;
57
+
58
+ var _useState = (0, _react.useState)(),
59
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
60
+ focus = _useState2[0],
61
+ setFocus = _useState2[1];
62
+
63
+ (0, _react.useEffect)(function () {
64
+ focusableElements.current = (0, _getFocusableElements2.getFocusableElements)(ref.current);
65
+ typeof focus !== 'undefined' && getFocusableElements().forEach(function (element, index) {
66
+ element[index !== focus ? 'setAttribute' : 'removeAttribute']('tabindex', -1);
67
+ });
68
+ });
69
+ (0, _react.useEffect)(function () {
70
+ typeof focus !== 'undefined' && getFocusableElements()[focus].focus();
71
+ }, [focus, getFocusableElements]);
72
+
73
+ var _ref3 = !vertical ? ['ArrowRight', 'ArrowLeft'] : ['ArrowDown', 'ArrowUp'],
74
+ _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
75
+ arrowNext = _ref4[0],
76
+ arrowPrevious = _ref4[1];
77
+
78
+ function onArrowDown(increment) {
79
+ var nextFocus = focus + increment;
80
+ getFocusableElements()[nextFocus] && setFocus(nextFocus);
81
+ }
82
+
83
+ function onFocus(_ref5) {
84
+ var target = _ref5.target;
85
+ var elements = getFocusableElements();
86
+ elements.includes(target) && setFocus(elements.indexOf(target));
87
+ }
88
+
89
+ function onKeyDown(_ref6) {
90
+ var key = _ref6.key,
91
+ target = _ref6.target;
92
+
93
+ if (getFocusableElements().includes(target)) {
94
+ switch (key) {
95
+ case arrowNext:
96
+ onArrowDown(1);
97
+ break;
98
+
99
+ case arrowPrevious:
100
+ onArrowDown(-1);
101
+ break;
102
+ }
103
+ }
104
+ }
105
+
45
106
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
46
107
  ref: ref,
47
- className: (0, _classnames.default)(blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "--vertical"), vertical))
108
+ className: (0, _classnames.default)(blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "--vertical"), vertical)),
109
+ onFocus: onFocus,
110
+ onKeyDown: onKeyDown
48
111
  }, vertical && {
49
112
  'aria-orientation': 'vertical'
50
113
  }, {
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "AboutModal", {
15
15
  return _AboutModal.AboutModal;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "CancelableTextEdit", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _CancelableTextEdit.CancelableTextEdit;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "Cascade", {
19
25
  enumerable: true,
20
26
  get: function get() {
@@ -135,6 +141,12 @@ Object.defineProperty(exports, "ImportModal", {
135
141
  return _ImportModal.ImportModal;
136
142
  }
137
143
  });
144
+ Object.defineProperty(exports, "InlineEdit", {
145
+ enumerable: true,
146
+ get: function get() {
147
+ return _InlineEdit.InlineEdit;
148
+ }
149
+ });
138
150
  Object.defineProperty(exports, "LoadingBar", {
139
151
  enumerable: true,
140
152
  get: function get() {
@@ -147,6 +159,12 @@ Object.defineProperty(exports, "ModifiedTabs", {
147
159
  return _ModifiedTabs.ModifiedTabs;
148
160
  }
149
161
  });
162
+ Object.defineProperty(exports, "MultiAddSelect", {
163
+ enumerable: true,
164
+ get: function get() {
165
+ return _MultiAddSelect.MultiAddSelect;
166
+ }
167
+ });
150
168
  Object.defineProperty(exports, "NoDataEmptyState", {
151
169
  enumerable: true,
152
170
  get: function get() {
@@ -213,6 +231,12 @@ Object.defineProperty(exports, "SidePanel", {
213
231
  return _SidePanel.SidePanel;
214
232
  }
215
233
  });
234
+ Object.defineProperty(exports, "SingleAddSelect", {
235
+ enumerable: true,
236
+ get: function get() {
237
+ return _SingleAddSelect.SingleAddSelect;
238
+ }
239
+ });
216
240
  Object.defineProperty(exports, "StatusIcon", {
217
241
  enumerable: true,
218
242
  get: function get() {
@@ -306,6 +330,8 @@ var _LoadingBar = require("./LoadingBar");
306
330
 
307
331
  var _ModifiedTabs = require("./ModifiedTabs");
308
332
 
333
+ var _MultiAddSelect = require("./MultiAddSelect");
334
+
309
335
  var _NotificationsPanel = require("./NotificationsPanel");
310
336
 
311
337
  var _PageHeader = require("./PageHeader");
@@ -318,6 +344,8 @@ var _Saving = require("./Saving");
318
344
 
319
345
  var _SidePanel = require("./SidePanel");
320
346
 
347
+ var _SingleAddSelect = require("./SingleAddSelect");
348
+
321
349
  var _StatusIcon = require("./StatusIcon");
322
350
 
323
351
  var _TagSet = require("./TagSet");
@@ -332,4 +360,8 @@ var _WebTerminal = require("./WebTerminal");
332
360
 
333
361
  var _EditSidePanel = require("./EditSidePanel");
334
362
 
335
- var _OptionsTile = require("./OptionsTile");
363
+ var _OptionsTile = require("./OptionsTile");
364
+
365
+ var _CancelableTextEdit = require("./CancelableTextEdit");
366
+
367
+ var _InlineEdit = require("./InlineEdit");
@@ -15,34 +15,30 @@ var _getFocusableElements = require("../utils/getFocusableElements");
15
15
  * This source code is licensed under the Apache-2.0 license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
17
  */
18
-
19
- /**
20
- * Returns the previous state values included in the param
21
- * @param {object} previousState
22
- * @param {number} currentStep
23
- * @param {Function} getCreateComponentSteps
24
- * @param {string} componentBlockClass
25
- */
26
- var useCreateComponentFocus = function useCreateComponentFocus(previousState, currentStep, getCreateComponentSteps, componentBlockClass) {
18
+ // Focus the first focusable element and call the onMount prop for the current step if one is provided
19
+ var useCreateComponentFocus = function useCreateComponentFocus(_ref) {
20
+ var previousState = _ref.previousState,
21
+ currentStep = _ref.currentStep,
22
+ blockClass = _ref.blockClass,
23
+ onMount = _ref.onMount;
24
+ (0, _react.useEffect)(function () {
25
+ if (typeof onMount === 'function') {
26
+ onMount();
27
+ }
28
+ }, [onMount]);
27
29
  (0, _react.useEffect)(function () {
28
30
  if ((previousState === null || previousState === void 0 ? void 0 : previousState.currentStep) !== currentStep && currentStep > 0) {
29
- var visibleStepInnerContent = document.querySelector(".".concat(componentBlockClass, "__step.").concat(componentBlockClass, "__step--visible-step"));
30
- var createComponentSteps = getCreateComponentSteps();
31
- var focusableStepElements = createComponentSteps && createComponentSteps.length && (0, _getFocusableElements.getFocusableElements)(visibleStepInnerContent);
32
- var activeStepComponent = createComponentSteps && createComponentSteps.length && createComponentSteps[currentStep - 1];
33
-
34
- if (activeStepComponent && activeStepComponent.props.onMount) {
35
- activeStepComponent.props.onMount();
36
- }
31
+ var visibleStepInnerContent = document.querySelector(".".concat(blockClass, "__step.").concat(blockClass, "__step__step--visible-step"));
32
+ var focusableStepElements = visibleStepInnerContent ? (0, _getFocusableElements.getFocusableElements)(visibleStepInnerContent) : [];
37
33
 
38
34
  if (focusableStepElements && focusableStepElements.length) {
39
35
  focusableStepElements[0].focus();
40
36
  } else {
41
- var nextButton = document.querySelector(".".concat(componentBlockClass, "__create-button"));
37
+ var nextButton = document.querySelector(".".concat(blockClass, "__create-button"));
42
38
  nextButton === null || nextButton === void 0 ? void 0 : nextButton.focus();
43
39
  }
44
40
  }
45
- }, [currentStep, getCreateComponentSteps, previousState, componentBlockClass]);
41
+ }, [currentStep, previousState, blockClass, onMount]);
46
42
  };
47
43
 
48
44
  exports.useCreateComponentFocus = useCreateComponentFocus;
@@ -20,13 +20,15 @@ var _react = require("react");
20
20
  * LICENSE file in the root directory of this source tree.
21
21
  */
22
22
  var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
23
- var setCurrentStep = _ref.setCurrentStep,
23
+ var totalStepCount = _ref.totalStepCount,
24
+ onNext = _ref.onNext,
25
+ isSubmitDisabled = _ref.isSubmitDisabled,
26
+ setCurrentStep = _ref.setCurrentStep,
24
27
  setIsSubmitting = _ref.setIsSubmitting,
25
28
  setShouldViewAll = _ref.setShouldViewAll,
26
29
  onClose = _ref.onClose,
27
30
  onRequestSubmit = _ref.onRequestSubmit,
28
31
  componentName = _ref.componentName,
29
- getComponentSteps = _ref.getComponentSteps,
30
32
  currentStep = _ref.currentStep,
31
33
  shouldViewAll = _ref.shouldViewAll,
32
34
  backButtonText = _ref.backButtonText,
@@ -39,8 +41,6 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
39
41
  setModalIsOpen = _ref.setModalIsOpen;
40
42
  // useEffect to handle multi step logic
41
43
  (0, _react.useEffect)(function () {
42
- var _getComponentSteps;
43
-
44
44
  var onUnmount = function onUnmount() {
45
45
  if (componentName !== 'CreateFullPage') {
46
46
  setCurrentStep(0);
@@ -85,73 +85,47 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
85
85
  };
86
86
  }();
87
87
 
88
- var isSubmitDisabled = function isSubmitDisabled() {
89
- var step = 0;
90
- var submitDisabled = false;
91
- var viewAllSubmitDisabled = false;
92
- var createComponentSteps = getComponentSteps();
93
- createComponentSteps.forEach(function (child) {
94
- step++;
95
-
96
- if (currentStep === step) {
97
- submitDisabled = child.props.disableSubmit;
98
- }
99
-
100
- if (shouldViewAll && child.props.disableSubmit) {
101
- viewAllSubmitDisabled = true;
102
- }
103
- });
104
-
105
- if (!shouldViewAll) {
106
- return submitDisabled;
107
- }
108
-
109
- return viewAllSubmitDisabled;
110
- };
111
-
112
88
  var handleNext = /*#__PURE__*/function () {
113
89
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
114
- var createSteps;
115
90
  return _regenerator.default.wrap(function _callee2$(_context2) {
116
91
  while (1) {
117
92
  switch (_context2.prev = _context2.next) {
118
93
  case 0:
119
94
  setIsSubmitting(true);
120
- createSteps = getComponentSteps();
121
95
 
122
- if (!createSteps[currentStep - 1].props.onNext) {
123
- _context2.next = 15;
96
+ if (!(typeof onNext === 'function')) {
97
+ _context2.next = 14;
124
98
  break;
125
99
  }
126
100
 
127
- _context2.prev = 3;
128
- _context2.next = 6;
129
- return createSteps[currentStep - 1].props.onNext();
101
+ _context2.prev = 2;
102
+ _context2.next = 5;
103
+ return onNext();
130
104
 
131
- case 6:
105
+ case 5:
132
106
  continueToNextStep();
133
- _context2.next = 13;
107
+ _context2.next = 12;
134
108
  break;
135
109
 
136
- case 9:
137
- _context2.prev = 9;
138
- _context2.t0 = _context2["catch"](3);
110
+ case 8:
111
+ _context2.prev = 8;
112
+ _context2.t0 = _context2["catch"](2);
139
113
  setIsSubmitting(false);
140
114
  console.warn("".concat(componentName, " onNext error: ").concat(_context2.t0));
141
115
 
142
- case 13:
143
- _context2.next = 16;
116
+ case 12:
117
+ _context2.next = 15;
144
118
  break;
145
119
 
146
- case 15:
120
+ case 14:
147
121
  continueToNextStep();
148
122
 
149
- case 16:
123
+ case 15:
150
124
  case "end":
151
125
  return _context2.stop();
152
126
  }
153
127
  }
154
- }, _callee2, null, [[3, 9]]);
128
+ }, _callee2, null, [[2, 8]]);
155
129
  }));
156
130
 
157
131
  return function handleNext() {
@@ -161,51 +135,49 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
161
135
 
162
136
  var handleSubmit = /*#__PURE__*/function () {
163
137
  var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
164
- var createSteps;
165
138
  return _regenerator.default.wrap(function _callee3$(_context3) {
166
139
  while (1) {
167
140
  switch (_context3.prev = _context3.next) {
168
141
  case 0:
169
- setIsSubmitting(true);
170
- createSteps = getComponentSteps(); // last step should have onNext as well
142
+ setIsSubmitting(true); // last step should have onNext as well
171
143
 
172
- if (!createSteps[currentStep - 1].props.onNext) {
173
- _context3.next = 16;
144
+ if (!(typeof onNext === 'function')) {
145
+ _context3.next = 15;
174
146
  break;
175
147
  }
176
148
 
177
- _context3.prev = 3;
178
- _context3.next = 6;
179
- return createSteps[currentStep - 1].props.onNext();
149
+ _context3.prev = 2;
150
+ _context3.next = 5;
151
+ return onNext();
180
152
 
181
- case 6:
182
- _context3.next = 8;
153
+ case 5:
154
+ _context3.next = 7;
183
155
  return handleOnRequestSubmit();
184
156
 
185
- case 8:
186
- _context3.next = 14;
157
+ case 7:
158
+ _context3.next = 13;
187
159
  break;
188
160
 
189
- case 10:
190
- _context3.prev = 10;
191
- _context3.t0 = _context3["catch"](3);
161
+ case 9:
162
+ _context3.prev = 9;
163
+ _context3.t0 = _context3["catch"](2);
192
164
  setIsSubmitting(false);
193
165
  console.warn("".concat(componentName, " onNext error: ").concat(_context3.t0));
194
166
 
195
- case 14:
196
- _context3.next = 18;
167
+ case 13:
168
+ _context3.next = 17;
197
169
  break;
198
170
 
199
- case 16:
200
- _context3.next = 18;
171
+ case 15:
172
+ _context3.next = 17;
201
173
  return handleOnRequestSubmit();
202
174
 
203
- case 18:
175
+ case 17:
204
176
  case "end":
205
177
  return _context3.stop();
206
178
  }
207
179
  }
208
- }, _callee3, null, [[3, 10]]);
180
+ }, _callee3, null, [[2, 9]]);
209
181
  }));
210
182
 
211
183
  return function handleSubmit() {
@@ -213,12 +185,10 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
213
185
  };
214
186
  }();
215
187
 
216
- if ((_getComponentSteps = getComponentSteps()) !== null && _getComponentSteps !== void 0 && _getComponentSteps.length) {
217
- var createSteps = getComponentSteps();
218
- var total = createSteps.length;
188
+ if (totalStepCount > 0) {
219
189
  var buttons = [];
220
190
 
221
- if (total > 1 && !shouldViewAll) {
191
+ if (totalStepCount > 1 && !shouldViewAll) {
222
192
  buttons.push({
223
193
  key: 'create-action-button-back',
224
194
  label: backButtonText,
@@ -242,16 +212,16 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
242
212
  });
243
213
  buttons.push({
244
214
  key: 'create-action-button-submit',
245
- label: shouldViewAll ? submitButtonText : currentStep < total ? nextButtonText : submitButtonText,
246
- onClick: shouldViewAll ? handleSubmit : currentStep < total ? handleNext : handleSubmit,
247
- disabled: isSubmitDisabled(),
215
+ label: shouldViewAll ? submitButtonText : currentStep < totalStepCount ? nextButtonText : submitButtonText,
216
+ onClick: shouldViewAll ? handleSubmit : currentStep < totalStepCount ? handleNext : handleSubmit,
217
+ disabled: isSubmitDisabled,
248
218
  kind: 'primary',
249
219
  loading: isSubmitting,
250
220
  className: "".concat(componentBlockClass, "__create-button")
251
221
  });
252
222
  setCreateComponentActions(buttons);
253
223
  }
254
- }, [getComponentSteps, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, shouldViewAll, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setShouldViewAll, setModalIsOpen]);
224
+ }, [totalStepCount, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, shouldViewAll, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setShouldViewAll, setModalIsOpen]);
255
225
  var continueToNextStep = (0, _react.useCallback)(function () {
256
226
  setIsSubmitting(false);
257
227
  setCurrentStep(function (prev) {
@@ -16,18 +16,15 @@ var _react = require("react");
16
16
 
17
17
  /**
18
18
  * Logs a warning to console if an invalid number of steps are used with the given CreateComponent
19
- * @param {Function} getCreateComponentSteps
19
+ * @param {number} stepCount
20
20
  * @param {string} componentName
21
21
  */
22
- var useValidCreateStepCount = function useValidCreateStepCount(getCreateComponentSteps, componentName) {
22
+ var useValidCreateStepCount = function useValidCreateStepCount(stepCount, componentName) {
23
23
  (0, _react.useEffect)(function () {
24
- var createSteps = getCreateComponentSteps();
25
- var total = createSteps.length;
26
-
27
- if (total === 1) {
24
+ if (stepCount === 1) {
28
25
  console.warn("".concat(componentName, ": ").concat(componentName, "s with one step are not permitted. If you require only one step, please use either the CreateTearsheetNarrow, CreateSidePanel, or CreateModal components."));
29
26
  }
30
- }, [getCreateComponentSteps, componentName]);
27
+ }, [stepCount, componentName]);
31
28
  };
32
29
 
33
30
  exports.useValidCreateStepCount = useValidCreateStepCount;
@@ -56,6 +56,8 @@ var defaults = {
56
56
  UnauthorizedEmptyState: true,
57
57
  UserProfileImage: true,
58
58
  // other public components not yet reviewed and released:
59
+ MultiAddSelect: false,
60
+ SingleAddSelect: false,
59
61
  LoadingBar: false,
60
62
  ModifiedTabs: false,
61
63
  Toolbar: false,
@@ -63,7 +65,9 @@ var defaults = {
63
65
  ToolbarGroup: false,
64
66
  WebTerminal: false,
65
67
  EditSidePanel: false,
66
- OptionsTile: false
68
+ OptionsTile: false,
69
+ CancelableTextEdit: false,
70
+ InlineEdit: false
67
71
  /* new component flags here - comment used by generate CLI */
68
72
 
69
73
  },
@@ -31,7 +31,7 @@ var _storyStructure = require("../../../../../core/story-structure");
31
31
  */
32
32
  var getStoryTitle = function getStoryTitle(componentName) {
33
33
  var title = // if the component isn't in the master structure, put it in a lost+found section
34
- (0, _storyStructure.getPathForComponent)('c', componentName) || "Cloud & Cognitive/Lost + found/".concat(componentName); // add a canary tag if the component is public but not normally enabled
34
+ (0, _storyStructure.getPathForComponent)('c', componentName) || "Carbon for IBM Products/Lost + found/".concat(componentName); // add a canary tag if the component is public but not normally enabled
35
35
 
36
36
  return !_packageSettings.default.isComponentEnabled(componentName, true) && _packageSettings.default.isComponentPublic(componentName, true) ? "".concat(title, "#canary") : title;
37
37
  };
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.2.3",
4
+ "version": "1.4.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -46,31 +46,31 @@
46
46
  "generate": "cross-env FORCE_COLOR=1 node scripts/generate",
47
47
  "postinstall": "carbon-telemetry collect --install",
48
48
  "test": "jest --colors",
49
- "//upgrade-dependencies": "# don't upgrade carbon (done globally), react/react-dom (explicit range peer dependency)",
50
- "upgrade-dependencies": "npm-check-updates -u --color --reject '/(carbon|^react$|^react-dom$)/'"
49
+ "//upgrade-dependencies": "# don't upgrade carbon (done globally), react/react-dom (explicit range peer dependency) or chalk (until we can load it as ESM)",
50
+ "upgrade-dependencies": "npm-check-updates -u --color --reject '/(carbon|^react$|^react-dom$|^chalk$)/'"
51
51
  },
52
52
  "devDependencies": {
53
- "@babel/cli": "^7.16.0",
54
- "@babel/core": "^7.16.5",
55
- "babel-preset-ibm-cloud-cognitive": "^0.14.2",
56
- "chalk": "^5.0.0",
53
+ "@babel/cli": "^7.16.8",
54
+ "@babel/core": "^7.16.10",
55
+ "babel-preset-ibm-cloud-cognitive": "^0.14.4",
56
+ "chalk": "^4.1.2",
57
57
  "change-case": "^4.1.2",
58
58
  "copyfiles": "^2.4.1",
59
59
  "cross-env": "^7.0.3",
60
60
  "fs-extra": "^10.0.0",
61
61
  "glob": "^7.2.0",
62
- "jest": "^27.4.5",
63
- "jest-config-ibm-cloud-cognitive": "^0.23.3",
64
- "npm-check-updates": "^12.0.5",
62
+ "jest": "^27.4.7",
63
+ "jest-config-ibm-cloud-cognitive": "^0.23.5",
64
+ "npm-check-updates": "^12.2.0",
65
65
  "npm-run-all": "^4.1.5",
66
66
  "rimraf": "^3.0.2",
67
- "sass": "^1.45.0",
68
- "yargs": "^17.3.0"
67
+ "sass": "^1.49.0",
68
+ "yargs": "^17.3.1"
69
69
  },
70
70
  "dependencies": {
71
- "@babel/runtime": "^7.16.5",
71
+ "@babel/runtime": "^7.16.7",
72
72
  "@carbon/telemetry": "^0.0.0-alpha.6",
73
- "react-resize-detector": "^6.7.6"
73
+ "react-resize-detector": "^7.0.0"
74
74
  },
75
75
  "peerDependencies": {
76
76
  "@carbon/colors": "^10.34.0",
@@ -86,5 +86,5 @@
86
86
  "react": "^16.8.6 || ^17.0.1",
87
87
  "react-dom": "^16.8.6 || ^17.0.1"
88
88
  },
89
- "gitHead": "c1671e65c1d670f63ae37ec9c2db8cc02f4b4a38"
89
+ "gitHead": "64c7f310e4d344bce77216750d5989485d28a11c"
90
90
  }
@@ -0,0 +1,84 @@
1
+ //
2
+ // Copyright IBM Corp. 2021
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ // Standard imports.
9
+ @import '../../global/styles/project-settings';
10
+
11
+ @import 'carbon-components/scss/components/structured-list/structured-list';
12
+
13
+ @mixin add-select {
14
+ $block-class: #{$pkg-prefix}--add-select;
15
+ $tearsheet-class: #{$pkg-prefix}--tearsheet;
16
+
17
+ .#{$block-class}__header {
18
+ padding: $spacing-05;
19
+ padding-bottom: 0;
20
+ border-top: 1px solid $ui-03;
21
+ }
22
+
23
+ .#{$block-class}__body {
24
+ padding: $spacing-05;
25
+ }
26
+
27
+ .#{$block-class}__items-label {
28
+ margin-right: $spacing-03;
29
+
30
+ &-container {
31
+ display: flex;
32
+ align-items: center;
33
+ margin-top: $spacing-05;
34
+ margin-bottom: $spacing-03;
35
+ }
36
+ }
37
+
38
+ .#{$block-class}__selections {
39
+ border-top: 1px solid $ui-03;
40
+ }
41
+
42
+ // multi select specific
43
+
44
+ .#{$block-class}__influencer-header {
45
+ display: flex;
46
+ padding: $spacing-06 $spacing-05 $spacing-03 $spacing-05;
47
+ border-bottom: 1px solid $ui-03;
48
+
49
+ .#{$block-class}__influencer-title {
50
+ @include carbon--type-style('productive-heading-02');
51
+ }
52
+ }
53
+
54
+ .#{$block-class}__influencer-title {
55
+ margin-right: $spacing-03;
56
+ }
57
+
58
+ .#{$block-class}__influencer-body {
59
+ padding: $spacing-05;
60
+ }
61
+
62
+ // overrides
63
+
64
+ // the influencer sidebar needs to be even with the buttons
65
+ .#{$block-class} .#{$tearsheet-class} .#{$tearsheet-class}__influencer {
66
+ max-width: 29rem;
67
+ flex: 0 0 50%;
68
+ }
69
+
70
+ .#{$block-class} .#{$block-class}__items-label {
71
+ @include carbon--type-style('productive-heading-01');
72
+ }
73
+
74
+ .#{$block-class}
75
+ .#{$carbon-prefix}--modal-container--sm
76
+ .bx--modal-content
77
+ p {
78
+ padding-right: 0;
79
+ }
80
+ }
81
+
82
+ @include exports('add-select') {
83
+ @include add-select;
84
+ }
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright IBM Corp. 2021
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ // An index file is most useful when you have multiple components
9
+
10
+ @import './add-select';
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright IBM Corp. 2021
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //