@carbon/ibm-products 2.9.0 → 2.10.0

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