@carbon/ibm-products 2.9.0 → 2.10.0

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 (28) hide show
  1. package/css/index-full-carbon.css +2 -1
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +2 -1
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +2 -1
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +2 -1
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/CreateFullPage/CreateFullPage.js +25 -3
  18. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +2 -2
  19. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +24 -11
  20. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +4 -7
  21. package/es/global/js/hooks/useClickOutside.js +6 -6
  22. package/lib/components/CreateFullPage/CreateFullPage.js +24 -2
  23. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +2 -2
  24. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +24 -11
  25. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +4 -7
  26. package/lib/global/js/hooks/useClickOutside.js +6 -6
  27. package/package.json +2 -2
  28. package/scss/components/EmptyStates/_empty-state.scss +2 -1
@@ -19,7 +19,8 @@ var _CreateInfluencer = require("../CreateInfluencer");
19
19
  var _ActionSet = require("../ActionSet");
20
20
  var _hooks = require("../../global/js/hooks");
21
21
  var _lastIndexInArray = require("../../global/js/utils/lastIndexInArray");
22
- var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "modalDangerButtonText", "modalDescription", "modalSecondaryButtonText", "modalTitle", "nextButtonText", "onClose", "onRequestSubmit", "firstFocusElement", "submitButtonText", "title"];
22
+ var _getNumberOfHiddenSteps = require("../../global/js/utils/getNumberOfHiddenSteps");
23
+ var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "initialStep", "modalDangerButtonText", "modalDescription", "modalSecondaryButtonText", "modalTitle", "nextButtonText", "onClose", "onRequestSubmit", "firstFocusElement", "submitButtonText", "title"];
23
24
  /**
24
25
  * Copyright IBM Corp. 2021, 2023
25
26
  *
@@ -62,6 +63,7 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
62
63
  cancelButtonText = _ref.cancelButtonText,
63
64
  children = _ref.children,
64
65
  className = _ref.className,
66
+ initialStep = _ref.initialStep,
65
67
  modalDangerButtonText = _ref.modalDangerButtonText,
66
68
  modalDescription = _ref.modalDescription,
67
69
  modalSecondaryButtonText = _ref.modalSecondaryButtonText,
@@ -132,7 +134,11 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
132
134
  if (lastItem !== lastIncludedStep) {
133
135
  setLastIncludedStep(lastItem);
134
136
  }
135
- }, [stepData, firstIncludedStep, lastIncludedStep]);
137
+ if (open && initialStep) {
138
+ var numberOfHiddenSteps = (0, _getNumberOfHiddenSteps.getNumberOfHiddenSteps)(stepData, initialStep);
139
+ setCurrentStep(Number(initialStep + numberOfHiddenSteps));
140
+ }
141
+ }, [stepData, firstIncludedStep, lastIncludedStep, initialStep]);
136
142
  (0, _hooks.useCreateComponentFocus)({
137
143
  previousState: previousState,
138
144
  currentStep: currentStep,
@@ -141,6 +147,16 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
141
147
  firstFocusElement: firstFocusElement
142
148
  });
143
149
  (0, _hooks.useValidCreateStepCount)(stepData.length, componentName);
150
+ (0, _hooks.useResetCreateComponent)({
151
+ firstIncludedStep: firstIncludedStep,
152
+ previousState: previousState,
153
+ open: open,
154
+ setCurrentStep: setCurrentStep,
155
+ stepData: stepData,
156
+ initialStep: initialStep,
157
+ totalSteps: stepData === null || stepData === void 0 ? void 0 : stepData.length,
158
+ componentName: componentName
159
+ });
144
160
  (0, _hooks.useCreateComponentStepChange)({
145
161
  firstIncludedStep: firstIncludedStep,
146
162
  lastIncludedStep: lastIncludedStep,
@@ -267,6 +283,12 @@ CreateFullPage.propTypes = {
267
283
  * Specifies elements to focus on first on render.
268
284
  */
269
285
  firstFocusElement: _propTypes.default.string,
286
+ /**
287
+ * This can be used to open the component to a step other than the first step.
288
+ * For example, a create flow was previously in progress, data was saved, and
289
+ * is now being completed.
290
+ */
291
+ initialStep: _propTypes.default.number,
270
292
  /**
271
293
  * The primary 'danger' button text in the modal
272
294
  */
@@ -162,7 +162,8 @@ var FilterFlyout = function FilterFlyout(_ref) {
162
162
  lastAppliedFilters.current = JSON.stringify(reactTableFiltersState);
163
163
  }, [reactTableFiltersState, lastAppliedFilters]);
164
164
  return /*#__PURE__*/_react2.default.createElement("div", {
165
- className: "".concat(componentClass, "__container")
165
+ className: "".concat(componentClass, "__container"),
166
+ ref: filterFlyoutRef
166
167
  }, /*#__PURE__*/_react2.default.createElement(_react.IconButton, {
167
168
  label: flyoutIconDescription,
168
169
  kind: "ghost",
@@ -171,7 +172,6 @@ var FilterFlyout = function FilterFlyout(_ref) {
171
172
  className: (0, _classnames.default)("".concat(componentClass, "__trigger"), (0, _defineProperty2.default)({}, "".concat(componentClass, "__trigger--open"), open)),
172
173
  disabled: data.length === 0
173
174
  }, /*#__PURE__*/_react2.default.createElement(_icons.Filter, null)), /*#__PURE__*/_react2.default.createElement("div", {
174
- ref: filterFlyoutRef,
175
175
  className: (0, _classnames.default)(componentClass, (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--open"), open), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--batch"), showActionSet), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--instant"), !showActionSet), _cx2))
176
176
  }, /*#__PURE__*/_react2.default.createElement("div", {
177
177
  className: "".concat(componentClass, "__inner-container")
@@ -24,7 +24,7 @@ var _excluded = ["align", "legendText"];
24
24
  */
25
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
- var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
27
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid__row-size");
28
28
  var RowSizeDropdown = function RowSizeDropdown(_ref) {
29
29
  var _ref$align = _ref.align,
30
30
  align = _ref$align === void 0 ? 'bottom-right' : _ref$align,
@@ -35,24 +35,37 @@ var RowSizeDropdown = function RowSizeDropdown(_ref) {
35
35
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
36
36
  isOpen = _React$useState2[0],
37
37
  setIsOpen = _React$useState2[1];
38
+ var onCloseHandler = function onCloseHandler() {
39
+ setIsOpen(false);
40
+ };
41
+ var onKeyHandler = function onKeyHandler(e) {
42
+ if (e.key === 'Escape') {
43
+ onCloseHandler();
44
+ }
45
+ };
46
+ var onBlurHandler = function onBlurHandler(e) {
47
+ if (!e.currentTarget.contains(e.relatedTarget)) {
48
+ onCloseHandler();
49
+ }
50
+ };
51
+ var onClickHandler = function onClickHandler() {
52
+ setIsOpen(!isOpen);
53
+ };
38
54
  return /*#__PURE__*/React.createElement(_react2.Popover, {
55
+ tabIndex: -1,
39
56
  isTabTip: true,
40
57
  align: "bottom-right",
41
58
  open: isOpen,
42
- onRequestClose: function onRequestClose() {
43
- return setIsOpen(false);
44
- },
45
- className: "".concat(blockClass, "__row-size-options-container")
59
+ onRequestClose: onCloseHandler,
60
+ className: "".concat(blockClass, "-options-container"),
61
+ onKeyDown: onKeyHandler,
62
+ onBlur: onBlurHandler
46
63
  }, /*#__PURE__*/React.createElement(_react2.IconButton, {
47
64
  align: align,
48
65
  kind: "ghost",
49
- onClick: function onClick() {
50
- return setIsOpen(function (prevOpen) {
51
- return !prevOpen;
52
- });
53
- },
66
+ onClick: onClickHandler,
54
67
  label: legendText,
55
- className: "".concat(blockClass, "__row-size-button")
68
+ className: "".concat(blockClass, "-button")
56
69
  }, /*#__PURE__*/React.createElement(_icons.Settings, {
57
70
  size: 16
58
71
  })), /*#__PURE__*/React.createElement(_react2.PopoverContent, null, /*#__PURE__*/React.createElement(_react2.Layer, null, /*#__PURE__*/React.createElement(_RowSizeRadioGroup.default, (0, _extends2.default)({}, props, {
@@ -17,7 +17,7 @@ var _settings = require("../../../../../settings");
17
17
  * LICENSE file in the root directory of this source tree.
18
18
  */
19
19
 
20
- var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
20
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid__row-size");
21
21
  var RowSizeRadioGroup = function RowSizeRadioGroup(_ref) {
22
22
  var rowSizes = _ref.rowSizes,
23
23
  selectedOption = _ref.selectedOption,
@@ -33,11 +33,8 @@ var RowSizeRadioGroup = function RowSizeRadioGroup(_ref) {
33
33
  xs: 'Extra small'
34
34
  } : _ref$rowSizeLabels;
35
35
  return /*#__PURE__*/_react.default.createElement("div", {
36
- className: "".concat(blockClass, "__row-size-dropdown"),
37
- role: "presentation",
38
- onClick: function onClick(e) {
39
- e.stopPropagation();
40
- }
36
+ className: "".concat(blockClass, "-dropdown"),
37
+ role: "presentation"
41
38
  }, /*#__PURE__*/_react.default.createElement(_react2.RadioButtonGroup, {
42
39
  legendText: legendText,
43
40
  name: "row-height-group",
@@ -52,7 +49,7 @@ var RowSizeRadioGroup = function RowSizeRadioGroup(_ref) {
52
49
  labelText = option.value;
53
50
  }
54
51
  return /*#__PURE__*/_react.default.createElement(_react2.RadioButton, {
55
- className: "".concat(blockClass, "__row-size-radio-button"),
52
+ className: "".concat(blockClass, "-radio-button"),
56
53
  key: option.value,
57
54
  labelText: labelText,
58
55
  value: option.value,
@@ -13,16 +13,16 @@ var _react = require("react");
13
13
  */
14
14
 
15
15
  var useClickOutside = function useClickOutside(ref, callback) {
16
- var handleClick = function handleClick(event) {
17
- if (ref.current && !ref.current.contains(event.target)) {
18
- callback(event.target);
19
- }
20
- };
21
16
  (0, _react.useEffect)(function () {
17
+ var handleClick = function handleClick(event) {
18
+ if (ref.current && !ref.current.contains(event.target)) {
19
+ callback(event.target);
20
+ }
21
+ };
22
22
  document.addEventListener('click', handleClick);
23
23
  return function () {
24
24
  document.removeEventListener('click', handleClick);
25
25
  };
26
- });
26
+ }, [callback, ref]);
27
27
  };
28
28
  exports.useClickOutside = useClickOutside;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "2.9.0",
4
+ "version": "2.10.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -92,5 +92,5 @@
92
92
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
93
93
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
94
94
  },
95
- "gitHead": "d16309a4cb6cc8d75c12335695015fc272752f36"
95
+ "gitHead": "d8d9e9401b213cb4e0d9deb7e6c583343ce63f79"
96
96
  }
@@ -28,6 +28,7 @@ $block-class: #{c4p-settings.$pkg-prefix}--empty-state;
28
28
  @include type.type-style('body-01');
29
29
 
30
30
  padding-bottom: $spacing-05;
31
+ color: $text-secondary;
31
32
  }
32
33
 
33
34
  .#{$block-class}__header--small {
@@ -78,5 +79,5 @@ $block-class: #{c4p-settings.$pkg-prefix}--empty-state;
78
79
  }
79
80
 
80
81
  .#{$block-class} .#{$block-class}__link {
81
- display: block;
82
+ display: inline-block;
82
83
  }