carbon-react 116.2.0 → 116.2.1

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 (32) hide show
  1. package/esm/components/action-popover/action-popover.component.js +5 -1
  2. package/esm/components/modal/__internal__/modal-manager.d.ts +1 -1
  3. package/esm/components/modal/__internal__/modal-manager.js +2 -2
  4. package/esm/components/modal/modal.component.js +6 -1
  5. package/esm/components/progress-tracker/index.d.ts +2 -1
  6. package/esm/components/progress-tracker/progress-tracker.component.d.ts +46 -0
  7. package/esm/components/progress-tracker/progress-tracker.component.js +175 -59
  8. package/esm/components/progress-tracker/progress-tracker.style.d.ts +8 -0
  9. package/esm/components/progress-tracker/progress-tracker.style.js +47 -60
  10. package/esm/components/select/select-list/select-list.component.js +6 -1
  11. package/esm/components/toast/toast.component.js +5 -1
  12. package/esm/hooks/__internal__/useMenuKeyboardNavigation/useMenuKeyboardNavigation.js +5 -1
  13. package/esm/hooks/__internal__/useModalManager/useModalManager.d.ts +8 -1
  14. package/esm/hooks/__internal__/useModalManager/useModalManager.js +9 -3
  15. package/lib/components/action-popover/action-popover.component.js +5 -1
  16. package/lib/components/modal/__internal__/modal-manager.d.ts +1 -1
  17. package/lib/components/modal/__internal__/modal-manager.js +2 -2
  18. package/lib/components/modal/modal.component.js +6 -1
  19. package/lib/components/progress-tracker/index.d.ts +2 -1
  20. package/lib/components/progress-tracker/progress-tracker.component.d.ts +46 -0
  21. package/lib/components/progress-tracker/progress-tracker.component.js +175 -62
  22. package/lib/components/progress-tracker/progress-tracker.style.d.ts +8 -0
  23. package/lib/components/progress-tracker/progress-tracker.style.js +46 -62
  24. package/lib/components/select/select-list/select-list.component.js +6 -1
  25. package/lib/components/toast/toast.component.js +5 -1
  26. package/lib/hooks/__internal__/useMenuKeyboardNavigation/useMenuKeyboardNavigation.js +5 -1
  27. package/lib/hooks/__internal__/useModalManager/useModalManager.d.ts +8 -1
  28. package/lib/hooks/__internal__/useModalManager/useModalManager.js +9 -3
  29. package/package.json +2 -2
  30. package/scripts/check_rfcs/check_rfcs.js +27 -12
  31. package/esm/components/progress-tracker/progress-tracker.d.ts +0 -40
  32. package/lib/components/progress-tracker/progress-tracker.d.ts +0 -40
@@ -73,7 +73,7 @@ let ModalManagerInstance = /*#__PURE__*/function () {
73
73
  }
74
74
  }, {
75
75
  key: "removeModal",
76
- value: function removeModal(modal) {
76
+ value: function removeModal(modal, triggerRefocusOnClose = true) {
77
77
  const modalIndex = this.modalList.findIndex(({
78
78
  modal: m
79
79
  }) => m === modal);
@@ -93,7 +93,7 @@ let ModalManagerInstance = /*#__PURE__*/function () {
93
93
  setTriggerRefocusFlag
94
94
  } = this.getTopModal();
95
95
 
96
- if (setTriggerRefocusFlag) {
96
+ if (setTriggerRefocusFlag && triggerRefocusOnClose) {
97
97
  setTriggerRefocusFlag(true);
98
98
  }
99
99
  }
@@ -76,7 +76,12 @@ const Modal = ({
76
76
  onCancel(ev);
77
77
  }
78
78
  }, [disableClose, disableEscKey, onCancel]);
79
- (0, _useModalManager.default)(open, closeModal, ref, setTriggerRefocusFlag);
79
+ (0, _useModalManager.default)({
80
+ open,
81
+ closeModal,
82
+ modalRef: ref,
83
+ setTriggerRefocusFlag
84
+ });
80
85
  let background;
81
86
  let content;
82
87
 
@@ -1 +1,2 @@
1
- export { default } from "./progress-tracker";
1
+ export { default } from "./progress-tracker.component";
2
+ export type { ProgressTrackerProps } from "./progress-tracker.component";
@@ -0,0 +1,46 @@
1
+ /// <reference types="react" />
2
+ import { MarginProps } from "styled-system";
3
+ export interface ProgressTrackerProps extends MarginProps {
4
+ /** Specifies an aria label to the component */
5
+ "aria-label"?: string;
6
+ /** Specifies the aria describedby for the component */
7
+ "aria-describedby"?: string;
8
+ /** The value of progress to be read out to the user. */
9
+ "aria-valuenow"?: number;
10
+ /** The minimum value of the progress tracker */
11
+ "aria-valuemin"?: number;
12
+ /** The maximum value of the progress tracker */
13
+ "aria-valuemax"?: number;
14
+ /** Prop to define the human readable text alternative of aria-valuenow
15
+ * if aria-valuenow is not a number
16
+ */
17
+ "aria-valuetext"?: string;
18
+ /** Size of the progress bar. */
19
+ size?: "small" | "medium" | "large";
20
+ /** Length of the progress bar, any valid css string. */
21
+ length?: string;
22
+ /** Current progress (percentage). */
23
+ progress?: number;
24
+ /** If error occurs. */
25
+ error?: boolean;
26
+ /** Flag to control whether the default value labels (as percentages) should be rendered. */
27
+ description?: string;
28
+ /** Value to add a description to the label */
29
+ showDefaultLabels?: boolean;
30
+ /** Value to display as current progress. */
31
+ currentProgressLabel?: string;
32
+ /** Value to display as the maximum progress limit. */
33
+ maxProgressLabel?: string;
34
+ /** Value of the preposition defined between Value1 and Value2 on the label. */
35
+ customValuePreposition?: string;
36
+ /**
37
+ * The position the value label are rendered in.
38
+ * Top/bottom apply to horizontal and left/right to vertical orientation.
39
+ */
40
+ labelsPosition?: "top" | "bottom";
41
+ }
42
+ declare const ProgressTracker: {
43
+ ({ "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, "aria-valuenow": ariaValueNow, "aria-valuemin": ariaValueMin, "aria-valuemax": ariaValueMax, "aria-valuetext": ariaValueText, size, length, error, progress, description, showDefaultLabels, currentProgressLabel, customValuePreposition, maxProgressLabel, labelsPosition, ...rest }: ProgressTrackerProps): JSX.Element;
44
+ displayName: string;
45
+ };
46
+ export default ProgressTracker;
@@ -9,14 +9,10 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _propTypes2 = _interopRequireDefault(require("@styled-system/prop-types"));
13
-
14
12
  var _useLocale = _interopRequireDefault(require("../../hooks/__internal__/useLocale"));
15
13
 
16
14
  var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags"));
17
15
 
18
- var _utils = require("../../style/utils");
19
-
20
16
  var _progressTracker = require("./progress-tracker.style");
21
17
 
22
18
  var _useResizeObserver = _interopRequireDefault(require("../../hooks/__internal__/useResizeObserver"));
@@ -29,8 +25,6 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
29
25
 
30
26
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
27
 
32
- const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
33
-
34
28
  const ProgressTracker = ({
35
29
  "aria-label": ariaLabel = "progress tracker",
36
30
  "aria-describedby": ariaDescribedBy,
@@ -51,11 +45,13 @@ const ProgressTracker = ({
51
45
  ...rest
52
46
  }) => {
53
47
  const l = (0, _useLocale.default)();
54
- const barRef = (0, _react.useRef)();
55
- const [barLength, setBarLength] = (0, _react.useState)(0);
48
+ const barRef = (0, _react.useRef)(null);
49
+ const [barLength, setBarLength] = (0, _react.useState)("0px");
56
50
  const prefixLabels = labelsPosition !== "bottom";
57
51
  const updateBarLength = (0, _react.useCallback)(() => {
58
- setBarLength(`${barRef.current.offsetWidth}px`);
52
+ var _barRef$current;
53
+
54
+ setBarLength(`${(_barRef$current = barRef.current) === null || _barRef$current === void 0 ? void 0 : _barRef$current.offsetWidth}px`);
59
55
  }, []);
60
56
  (0, _react.useLayoutEffect)(() => {
61
57
  updateBarLength();
@@ -80,14 +76,13 @@ const ProgressTracker = ({
80
76
  const displayedCurrentProgressLabel = label(currentProgressLabel, `${progress}%`);
81
77
  const displayedMaxProgressLabel = label(maxProgressLabel, "100%");
82
78
  return /*#__PURE__*/_react.default.createElement(_progressTracker.StyledValuesLabel, {
83
- position: labelsPosition,
79
+ labelsPosition: labelsPosition,
84
80
  size: size
85
81
  }, displayedCurrentProgressLabel && /*#__PURE__*/_react.default.createElement(_progressTracker.StyledValue, null, displayedCurrentProgressLabel), displayedMaxProgressLabel && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, customValuePreposition || l.progressTracker.of()), /*#__PURE__*/_react.default.createElement(_progressTracker.StyledValue, null, displayedMaxProgressLabel)), description && /*#__PURE__*/_react.default.createElement(_progressTracker.StyledDescription, null, description));
86
82
  };
87
83
 
88
84
  const defaultValueNow = ariaValueMin + (ariaValueMax - ariaValueMin) * progress / 100;
89
85
  return /*#__PURE__*/_react.default.createElement(_progressTracker.StyledProgressTracker, _extends({
90
- size: size,
91
86
  length: length
92
87
  }, rest, (0, _tags.default)("progress-bar", rest), {
93
88
  role: "progressbar",
@@ -110,60 +105,178 @@ const ProgressTracker = ({
110
105
  })), !prefixLabels && renderValueLabels());
111
106
  };
112
107
 
113
- ProgressTracker.propTypes = { ...marginPropTypes,
114
-
115
- /** Specifies an aria label to the component */
116
- "aria-label": _propTypes.default.string,
117
-
118
- /** Specifies the aria describedby for the component */
108
+ ProgressTracker.propTypes = {
119
109
  "aria-describedby": _propTypes.default.string,
120
-
121
- /** The value of progress to be read out to the user. */
122
- "aria-valuenow": _propTypes.default.number,
123
-
124
- /** The minimum value of the progress tracker */
125
- "aria-valuemin": _propTypes.default.number,
126
-
127
- /** The maximum value of the progress tracker */
110
+ "aria-label": _propTypes.default.string,
128
111
  "aria-valuemax": _propTypes.default.number,
129
-
130
- /** Prop to define the human readable text alternative of aria-valuenow
131
- * if aria-valuenow is not a number
132
- */
112
+ "aria-valuemin": _propTypes.default.number,
113
+ "aria-valuenow": _propTypes.default.number,
133
114
  "aria-valuetext": _propTypes.default.string,
134
-
135
- /** Size of the progress bar. */
136
- size: _propTypes.default.oneOf(["small", "medium", "large"]),
137
-
138
- /** Length of the progress bar, any valid css string. */
139
- length: _propTypes.default.string,
140
-
141
- /** Current progress (percentage). */
142
- progress: _propTypes.default.number,
143
-
144
- /** If error occurs. */
145
- error: _propTypes.default.bool,
146
-
147
- /** Flag to control whether the default value labels (as percentages) should be rendered. */
148
- description: _propTypes.default.string,
149
-
150
- /** Value to add a description to the label */
151
- showDefaultLabels: _propTypes.default.bool,
152
-
153
- /** Value to display as current progress. */
154
- currentProgressLabel: _propTypes.default.string,
155
-
156
- /** Value to display as the maximum progress limit. */
157
- maxProgressLabel: _propTypes.default.string,
158
-
159
- /** Value of the preposition defined between Value1 and Value2 on the label. */
160
- customValuePreposition: _propTypes.default.string,
161
-
162
- /**
163
- * The position the value label are rendered in.
164
- * Top/bottom apply to horizontal and left/right to vertical orientation.
165
- */
166
- labelsPosition: _propTypes.default.oneOf(["top", "bottom"])
115
+ "currentProgressLabel": _propTypes.default.string,
116
+ "customValuePreposition": _propTypes.default.string,
117
+ "description": _propTypes.default.string,
118
+ "error": _propTypes.default.bool,
119
+ "labelsPosition": _propTypes.default.oneOf(["bottom", "top"]),
120
+ "length": _propTypes.default.string,
121
+ "m": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
122
+ "__@toStringTag": _propTypes.default.string.isRequired,
123
+ "description": _propTypes.default.string,
124
+ "toString": _propTypes.default.func.isRequired,
125
+ "valueOf": _propTypes.default.func.isRequired
126
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
127
+ "__@toStringTag": _propTypes.default.string.isRequired,
128
+ "description": _propTypes.default.string,
129
+ "toString": _propTypes.default.func.isRequired,
130
+ "valueOf": _propTypes.default.func.isRequired
131
+ }), _propTypes.default.string]),
132
+ "margin": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
133
+ "__@toStringTag": _propTypes.default.string.isRequired,
134
+ "description": _propTypes.default.string,
135
+ "toString": _propTypes.default.func.isRequired,
136
+ "valueOf": _propTypes.default.func.isRequired
137
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
138
+ "__@toStringTag": _propTypes.default.string.isRequired,
139
+ "description": _propTypes.default.string,
140
+ "toString": _propTypes.default.func.isRequired,
141
+ "valueOf": _propTypes.default.func.isRequired
142
+ }), _propTypes.default.string]),
143
+ "marginBottom": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
144
+ "__@toStringTag": _propTypes.default.string.isRequired,
145
+ "description": _propTypes.default.string,
146
+ "toString": _propTypes.default.func.isRequired,
147
+ "valueOf": _propTypes.default.func.isRequired
148
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
149
+ "__@toStringTag": _propTypes.default.string.isRequired,
150
+ "description": _propTypes.default.string,
151
+ "toString": _propTypes.default.func.isRequired,
152
+ "valueOf": _propTypes.default.func.isRequired
153
+ }), _propTypes.default.string]),
154
+ "marginLeft": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
155
+ "__@toStringTag": _propTypes.default.string.isRequired,
156
+ "description": _propTypes.default.string,
157
+ "toString": _propTypes.default.func.isRequired,
158
+ "valueOf": _propTypes.default.func.isRequired
159
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
160
+ "__@toStringTag": _propTypes.default.string.isRequired,
161
+ "description": _propTypes.default.string,
162
+ "toString": _propTypes.default.func.isRequired,
163
+ "valueOf": _propTypes.default.func.isRequired
164
+ }), _propTypes.default.string]),
165
+ "marginRight": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
166
+ "__@toStringTag": _propTypes.default.string.isRequired,
167
+ "description": _propTypes.default.string,
168
+ "toString": _propTypes.default.func.isRequired,
169
+ "valueOf": _propTypes.default.func.isRequired
170
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
171
+ "__@toStringTag": _propTypes.default.string.isRequired,
172
+ "description": _propTypes.default.string,
173
+ "toString": _propTypes.default.func.isRequired,
174
+ "valueOf": _propTypes.default.func.isRequired
175
+ }), _propTypes.default.string]),
176
+ "marginTop": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
177
+ "__@toStringTag": _propTypes.default.string.isRequired,
178
+ "description": _propTypes.default.string,
179
+ "toString": _propTypes.default.func.isRequired,
180
+ "valueOf": _propTypes.default.func.isRequired
181
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
182
+ "__@toStringTag": _propTypes.default.string.isRequired,
183
+ "description": _propTypes.default.string,
184
+ "toString": _propTypes.default.func.isRequired,
185
+ "valueOf": _propTypes.default.func.isRequired
186
+ }), _propTypes.default.string]),
187
+ "marginX": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
188
+ "__@toStringTag": _propTypes.default.string.isRequired,
189
+ "description": _propTypes.default.string,
190
+ "toString": _propTypes.default.func.isRequired,
191
+ "valueOf": _propTypes.default.func.isRequired
192
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
193
+ "__@toStringTag": _propTypes.default.string.isRequired,
194
+ "description": _propTypes.default.string,
195
+ "toString": _propTypes.default.func.isRequired,
196
+ "valueOf": _propTypes.default.func.isRequired
197
+ }), _propTypes.default.string]),
198
+ "marginY": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
199
+ "__@toStringTag": _propTypes.default.string.isRequired,
200
+ "description": _propTypes.default.string,
201
+ "toString": _propTypes.default.func.isRequired,
202
+ "valueOf": _propTypes.default.func.isRequired
203
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
204
+ "__@toStringTag": _propTypes.default.string.isRequired,
205
+ "description": _propTypes.default.string,
206
+ "toString": _propTypes.default.func.isRequired,
207
+ "valueOf": _propTypes.default.func.isRequired
208
+ }), _propTypes.default.string]),
209
+ "maxProgressLabel": _propTypes.default.string,
210
+ "mb": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
211
+ "__@toStringTag": _propTypes.default.string.isRequired,
212
+ "description": _propTypes.default.string,
213
+ "toString": _propTypes.default.func.isRequired,
214
+ "valueOf": _propTypes.default.func.isRequired
215
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
216
+ "__@toStringTag": _propTypes.default.string.isRequired,
217
+ "description": _propTypes.default.string,
218
+ "toString": _propTypes.default.func.isRequired,
219
+ "valueOf": _propTypes.default.func.isRequired
220
+ }), _propTypes.default.string]),
221
+ "ml": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
222
+ "__@toStringTag": _propTypes.default.string.isRequired,
223
+ "description": _propTypes.default.string,
224
+ "toString": _propTypes.default.func.isRequired,
225
+ "valueOf": _propTypes.default.func.isRequired
226
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
227
+ "__@toStringTag": _propTypes.default.string.isRequired,
228
+ "description": _propTypes.default.string,
229
+ "toString": _propTypes.default.func.isRequired,
230
+ "valueOf": _propTypes.default.func.isRequired
231
+ }), _propTypes.default.string]),
232
+ "mr": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
233
+ "__@toStringTag": _propTypes.default.string.isRequired,
234
+ "description": _propTypes.default.string,
235
+ "toString": _propTypes.default.func.isRequired,
236
+ "valueOf": _propTypes.default.func.isRequired
237
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
238
+ "__@toStringTag": _propTypes.default.string.isRequired,
239
+ "description": _propTypes.default.string,
240
+ "toString": _propTypes.default.func.isRequired,
241
+ "valueOf": _propTypes.default.func.isRequired
242
+ }), _propTypes.default.string]),
243
+ "mt": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
244
+ "__@toStringTag": _propTypes.default.string.isRequired,
245
+ "description": _propTypes.default.string,
246
+ "toString": _propTypes.default.func.isRequired,
247
+ "valueOf": _propTypes.default.func.isRequired
248
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
249
+ "__@toStringTag": _propTypes.default.string.isRequired,
250
+ "description": _propTypes.default.string,
251
+ "toString": _propTypes.default.func.isRequired,
252
+ "valueOf": _propTypes.default.func.isRequired
253
+ }), _propTypes.default.string]),
254
+ "mx": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
255
+ "__@toStringTag": _propTypes.default.string.isRequired,
256
+ "description": _propTypes.default.string,
257
+ "toString": _propTypes.default.func.isRequired,
258
+ "valueOf": _propTypes.default.func.isRequired
259
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
260
+ "__@toStringTag": _propTypes.default.string.isRequired,
261
+ "description": _propTypes.default.string,
262
+ "toString": _propTypes.default.func.isRequired,
263
+ "valueOf": _propTypes.default.func.isRequired
264
+ }), _propTypes.default.string]),
265
+ "my": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
266
+ "__@toStringTag": _propTypes.default.string.isRequired,
267
+ "description": _propTypes.default.string,
268
+ "toString": _propTypes.default.func.isRequired,
269
+ "valueOf": _propTypes.default.func.isRequired
270
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
271
+ "__@toStringTag": _propTypes.default.string.isRequired,
272
+ "description": _propTypes.default.string,
273
+ "toString": _propTypes.default.func.isRequired,
274
+ "valueOf": _propTypes.default.func.isRequired
275
+ }), _propTypes.default.string]),
276
+ "progress": _propTypes.default.number,
277
+ "showDefaultLabels": _propTypes.default.bool,
278
+ "size": _propTypes.default.oneOf(["large", "medium", "small"])
167
279
  };
280
+ ProgressTracker.displayName = "ProgressTracker";
168
281
  var _default = ProgressTracker;
169
282
  exports.default = _default;
@@ -0,0 +1,8 @@
1
+ import { ProgressTrackerProps } from "./progress-tracker.component";
2
+ declare const StyledProgressTracker: import("styled-components").StyledComponent<"div", any, Pick<ProgressTrackerProps, "length" | "margin">, never>;
3
+ declare const StyledProgressBar: import("styled-components").StyledComponent<"span", any, Pick<ProgressTrackerProps, "error" | "progress" | "size">, never>;
4
+ declare const StyledValue: import("styled-components").StyledComponent<"span", any, {}, never>;
5
+ declare const StyledDescription: import("styled-components").StyledComponent<"span", any, {}, never>;
6
+ declare const StyledValuesLabel: import("styled-components").StyledComponent<"span", any, Pick<ProgressTrackerProps, "size" | "labelsPosition">, never>;
7
+ declare const InnerBar: import("styled-components").StyledComponent<"span", any, Pick<ProgressTrackerProps, "error" | "progress" | "length" | "size">, never>;
8
+ export { StyledProgressBar, InnerBar, StyledProgressTracker, StyledValuesLabel, StyledValue, StyledDescription, };
@@ -7,20 +7,47 @@ exports.StyledDescription = exports.StyledValue = exports.StyledValuesLabel = ex
7
7
 
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
 
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
10
  var _styledSystem = require("styled-system");
13
11
 
14
12
  var _base = _interopRequireDefault(require("../../style/themes/base"));
15
13
 
16
- var _progressTracker = require("./progress-tracker.config");
17
-
18
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
15
 
20
16
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
21
17
 
22
18
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
23
19
 
20
+ function getHeight(size) {
21
+ switch (size) {
22
+ case "small":
23
+ return "var(--sizing050)";
24
+
25
+ case "large":
26
+ return "var(--sizing200)";
27
+
28
+ default:
29
+ return "var(--sizing100)";
30
+ }
31
+ }
32
+
33
+ function getBackgroundColour({
34
+ progress,
35
+ error
36
+ }) {
37
+ if (error) return "var(--colorsSemanticNegative500)";
38
+ if (progress && progress >= 100) return "var(--colorsSemanticPositive500)";
39
+ return "var(--colorsSemanticNeutral500)";
40
+ }
41
+
42
+ function getBorderColour({
43
+ progress,
44
+ error
45
+ }) {
46
+ if (error) return "var(--colorsSemanticNegative500)";
47
+ if (progress === 100) return "var(--colorsSemanticPositive500)";
48
+ return "var(--colorsSemanticNeutral500)";
49
+ }
50
+
24
51
  const StyledProgressTracker = _styledComponents.default.div`
25
52
  ${_styledSystem.margin}
26
53
  text-align: center;
@@ -42,7 +69,10 @@ const StyledProgressBar = _styledComponents.default.span`
42
69
  display: flex;
43
70
  position: relative;
44
71
  background-color: var(--colorsSemanticNeutral200);
45
- border: 1px solid ${getBorderColour(progress, error)};
72
+ border: 1px solid ${getBorderColour({
73
+ progress,
74
+ error
75
+ })};
46
76
  border-radius: 25px;
47
77
  overflow-x: hidden;
48
78
  height: ${getHeight(size)};
@@ -72,81 +102,35 @@ const StyledValuesLabel = _styledComponents.default.span`
72
102
  gap: 4px;
73
103
  font-size: ${({
74
104
  size
75
- }) => fontSizes[size]};
105
+ }) => size && fontSizes[size]};
76
106
  ${({
77
- position
78
- }) => position === "bottom" && "margin-top: 8px"};
107
+ labelsPosition
108
+ }) => labelsPosition === "bottom" && "margin-top: 8px"};
79
109
  ${({
80
- position
81
- }) => position !== "bottom" && "margin-bottom: 8px"};
110
+ labelsPosition
111
+ }) => labelsPosition !== "bottom" && "margin-bottom: 8px"};
82
112
  `;
83
113
  exports.StyledValuesLabel = StyledValuesLabel;
84
114
  const InnerBar = _styledComponents.default.span`
85
115
  ${({
86
116
  progress,
87
- size,
117
+ size = "medium",
88
118
  length,
89
119
  error
90
120
  }) => (0, _styledComponents.css)`
91
121
  position: relative;
92
122
  left: 0;
93
- background-color: ${getBackgroundColour(progress, error)};
123
+ background-color: ${getBackgroundColour({
124
+ progress,
125
+ error
126
+ })};
94
127
  border-radius: 25px;
95
- width: calc(${length} * ${progress / 100});
128
+ width: calc(${length} * ${progress && progress / 100});
96
129
  min-width: 2px;
97
130
  height: ${getHeight(size)};
98
131
  `}
99
132
  `;
100
133
  exports.InnerBar = InnerBar;
101
-
102
- function getHeight(size) {
103
- switch (size) {
104
- case "small":
105
- return "var(--sizing050)";
106
-
107
- case "large":
108
- return "var(--sizing200)";
109
-
110
- default:
111
- return "var(--sizing100)";
112
- }
113
- }
114
-
115
- function getBackgroundColour(progress, error) {
116
- if (error) return "var(--colorsSemanticNegative500)";
117
- if (progress >= 100) return "var(--colorsSemanticPositive500)";
118
- return "var(--colorsSemanticNeutral500)";
119
- }
120
-
121
- function getBorderColour(progress, error) {
122
- if (error) return "var(--colorsSemanticNegative500)";
123
- if (progress === 100) return "var(--colorsSemanticPositive500)";
124
- return "var(--colorsSemanticNeutral500)";
125
- }
126
-
127
134
  StyledProgressTracker.defaultProps = {
128
135
  theme: _base.default
129
- };
130
- StyledProgressBar.defaultProps = {
131
- size: "medium"
132
- };
133
- InnerBar.defaultProps = {
134
- progress: 0,
135
- size: "medium"
136
- };
137
- InnerBar.propTypes = {
138
- size: _propTypes.default.oneOf(_progressTracker.PROGRESS_TRACKER_SIZES),
139
- progress: _propTypes.default.number
140
- };
141
- StyledProgressTracker.propTypes = {
142
- theme: _propTypes.default.object
143
- };
144
- StyledValuesLabel.propTypes = {
145
- position: _propTypes.default.oneOf(["top", "bottom", "left", "right"])
146
- };
147
- StyledValue.propTypes = {
148
- isMaxValue: _propTypes.default.bool
149
- };
150
- StyledProgressBar.propTypes = {
151
- size: _propTypes.default.oneOf(_progressTracker.PROGRESS_TRACKER_SIZES)
152
136
  };
@@ -285,7 +285,12 @@ const SelectList = /*#__PURE__*/_react.default.forwardRef(({
285
285
  onSelectListClose();
286
286
  }
287
287
  }, [onSelectListClose]);
288
- (0, _useModalManager.default)(isOpen, handleEscapeKey, listRef);
288
+ (0, _useModalManager.default)({
289
+ open: isOpen,
290
+ closeModal: handleEscapeKey,
291
+ modalRef: listRef,
292
+ triggerRefocusOnClose: false
293
+ });
289
294
  const handleListScroll = (0, _react.useCallback)(event => {
290
295
  const element = event.target;
291
296
  /* istanbul ignore else */
@@ -67,7 +67,11 @@ const Toast = /*#__PURE__*/_react.default.forwardRef(({
67
67
  onDismiss(ev);
68
68
  }
69
69
  }, [onDismiss]);
70
- (0, _useModalManager.default)(open, dismissToast, refToPass);
70
+ (0, _useModalManager.default)({
71
+ open,
72
+ closeModal: dismissToast,
73
+ modalRef: refToPass
74
+ });
71
75
  (0, _react.useEffect)(() => {
72
76
  /* istanbul ignore next */
73
77
  if (timer.current) clearTimeout(timer.current);
@@ -31,7 +31,11 @@ var _default = (mainControlRef, childrenRefs, hide, isOpen) => {
31
31
  }, [refocusMainControl]); // useModalmanager is used here to handle the escape key
32
32
  // and to ensure that closing the menu does not close the modal
33
33
 
34
- (0, _useModalManager.default)(isOpen, handleEscapeKey, mainControlRef);
34
+ (0, _useModalManager.default)({
35
+ open: isOpen,
36
+ closeModal: handleEscapeKey,
37
+ modalRef: mainControlRef
38
+ });
35
39
  const handleKeyDown = (0, _react.useCallback)(ev => {
36
40
  if (!(_events.default.isEnterKey(ev) || _events.default.isSpaceKey(ev))) {
37
41
  ev.preventDefault();
@@ -1,3 +1,10 @@
1
1
  import React from "react";
2
- declare const useModalManager: (open: boolean, closeModal: (e: KeyboardEvent) => void, modalRef: React.RefObject<HTMLElement>, setTriggerRefocusFlag?: ((flag: boolean) => void) | undefined) => void;
2
+ declare type UseModalManagerArgs = {
3
+ open: boolean;
4
+ closeModal: (e: KeyboardEvent) => void;
5
+ modalRef: React.RefObject<HTMLElement>;
6
+ setTriggerRefocusFlag?: (flag: boolean) => void;
7
+ triggerRefocusOnClose?: boolean;
8
+ };
9
+ declare const useModalManager: ({ open, closeModal, modalRef, setTriggerRefocusFlag, triggerRefocusOnClose, }: UseModalManagerArgs) => void;
3
10
  export default useModalManager;
@@ -11,7 +11,13 @@ var _modalManager = _interopRequireDefault(require("../../../components/modal/__
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
- const useModalManager = (open, closeModal, modalRef, setTriggerRefocusFlag) => {
14
+ const useModalManager = ({
15
+ open,
16
+ closeModal,
17
+ modalRef,
18
+ setTriggerRefocusFlag,
19
+ triggerRefocusOnClose = true
20
+ }) => {
15
21
  const listenerAdded = (0, _react.useRef)(false);
16
22
  const modalRegistered = (0, _react.useRef)(false);
17
23
  const handleClose = (0, _react.useCallback)(ev => {
@@ -56,11 +62,11 @@ const useModalManager = (open, closeModal, modalRef, setTriggerRefocusFlag) => {
56
62
  }, [setTriggerRefocusFlag]);
57
63
  const unregisterModal = (0, _react.useCallback)(ref => {
58
64
  if (modalRegistered.current) {
59
- _modalManager.default.removeModal(ref);
65
+ _modalManager.default.removeModal(ref, triggerRefocusOnClose);
60
66
 
61
67
  modalRegistered.current = false;
62
68
  }
63
- }, []);
69
+ }, [triggerRefocusOnClose]);
64
70
  (0, _react.useEffect)(() => {
65
71
  const ref = modalRef.current;
66
72
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "116.2.0",
3
+ "version": "116.2.1",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",
@@ -20,7 +20,7 @@
20
20
  "copy-files": "node ./scripts/copy-files.js",
21
21
  "precompile": "npm run type-check && npm run clean-lib && npm run build && npm run build:types && npm run copy-files",
22
22
  "prepublishOnly": "npm run precompile",
23
- "postinstall": "node ./scripts/check_rfcs/check_rfcs.js",
23
+ "postinstall": "node ./scripts/check_rfcs/index.js",
24
24
  "watch": "npm run clean-lib && npm run copy-files -- --watch & npm run babel -- --watch",
25
25
  "build-storybook": "cross-env STORYBOOK_BUILD=true NODE_OPTIONS=--openssl-legacy-provider build-storybook -c .storybook",
26
26
  "start-storybook": "cross-env STORYBOOK_BUILD=true NODE_OPTIONS=--openssl-legacy-provider start-storybook -c .storybook",