@arc-ui/components 11.20.0 → 11.21.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 (28) hide show
  1. package/dist/ProgressStepper/ProgressStepper.cjs.js +1 -3
  2. package/dist/ProgressStepper/ProgressStepper.esm.js +1 -3
  3. package/dist/Select/Select.cjs.js +1 -1
  4. package/dist/Select/Select.esm.js +1 -1
  5. package/dist/SiteHeaderV2/SiteHeaderV2.cjs.js +1 -1
  6. package/dist/SiteHeaderV2/SiteHeaderV2.esm.js +1 -1
  7. package/dist/TextArea/TextArea.cjs.js +7 -7
  8. package/dist/TextArea/TextArea.esm.js +7 -7
  9. package/dist/_shared/cjs/ProgressStepper-20a61620.js +100 -0
  10. package/dist/_shared/cjs/{SiteHeaderV2-301c765c.js → SiteHeaderV2-b41fdb49.js} +32 -23
  11. package/dist/_shared/esm/ProgressStepper-74d48612.js +94 -0
  12. package/dist/_shared/esm/{SiteHeaderV2-0096e25b.js → SiteHeaderV2-f06ac085.js} +33 -24
  13. package/dist/index.es.js +87 -116
  14. package/dist/index.es.js.map +1 -1
  15. package/dist/index.js +87 -116
  16. package/dist/index.js.map +1 -1
  17. package/dist/styles.css +3 -3
  18. package/dist/types/components/ProgressStepper/ProgressStepper.d.ts +1 -1
  19. package/dist/types/components/ProgressStepper/ProgressStepperItem/ProgressStepperItem.d.ts +3 -7
  20. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Complete.d.ts +2 -0
  21. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Current.d.ts +2 -0
  22. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Error.d.ts +2 -0
  23. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Todo.d.ts +2 -0
  24. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Warning.d.ts +2 -0
  25. package/dist/types/components/SiteHeaderV2/SiteHeaderV2.d.ts +5 -0
  26. package/package.json +1 -1
  27. package/dist/_shared/cjs/ProgressStepper-3af8a210.js +0 -141
  28. package/dist/_shared/esm/ProgressStepper-d4c5b6d9.js +0 -135
@@ -2,15 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ProgressStepper = require('../_shared/cjs/ProgressStepper-3af8a210.js');
5
+ var ProgressStepper = require('../_shared/cjs/ProgressStepper-20a61620.js');
6
6
  require('../_shared/cjs/filter-data-attrs-1c9a530c.js');
7
7
  require('react');
8
8
  require('../_shared/cjs/index-9947ac13.js');
9
- require('../_shared/cjs/BtIconAlert.esm-1a0ff9f0.js');
10
9
  require('../_shared/cjs/Icon-b46897a3.js');
11
10
  require('../_shared/cjs/suffix-modifier-64dcd338.js');
12
11
  require('../_shared/cjs/Surface-038db6e1.js');
13
- require('../_shared/cjs/VerticalSpace-dc53bb70.js');
14
12
  require('../_shared/cjs/VisuallyHidden-e2c8b291.js');
15
13
 
16
14
 
@@ -1,10 +1,8 @@
1
- export { P as ProgressStepper } from '../_shared/esm/ProgressStepper-d4c5b6d9.js';
1
+ export { P as ProgressStepper } from '../_shared/esm/ProgressStepper-74d48612.js';
2
2
  import '../_shared/esm/filter-data-attrs-ea8f4ed4.js';
3
3
  import 'react';
4
4
  import '../_shared/esm/index-2e73c2e9.js';
5
- import '../_shared/esm/BtIconAlert.esm-a4608d47.js';
6
5
  import '../_shared/esm/Icon-15799695.js';
7
6
  import '../_shared/esm/suffix-modifier-3d548e45.js';
8
7
  import '../_shared/esm/Surface-0ca6817d.js';
9
- import '../_shared/esm/VerticalSpace-43cd9138.js';
10
8
  import '../_shared/esm/VisuallyHidden-b9eebf71.js';
@@ -1201,7 +1201,7 @@ var Select = function (_a) {
1201
1201
  "arc-Select-trigger--invalid": errorMessage
1202
1202
  },
1203
1203
  _b["arc-Select-trigger--size".concat(selectSize && selectSize.toUpperCase())] = selectSize && selectSize !== "m",
1204
- _b)) }, filterDataAttrs.filterDataAttrs(props)),
1204
+ _b)), "aria-describedby": "".concat(id, "-helper") }, filterDataAttrs.filterDataAttrs(props)),
1205
1205
  React__default["default"].createElement($cc7e05a45900e73f$export$4c8d1a57a761ef94, { className: "arc-Select-triggerText", placeholder: placeholder, "aria-label": getSelectedValueName(uncontrolledValue) }),
1206
1206
  React__default["default"].createElement($cc7e05a45900e73f$export$f04a61298a47a40f, { className: "arc-Select-triggerIcon" },
1207
1207
  React__default["default"].createElement(Icon.Icon, { icon: BtIconChevronDown2Px_esm.BtIconChevronDown2Px, size: getIconSize(selectSize) }))),
@@ -1193,7 +1193,7 @@ var Select = function (_a) {
1193
1193
  "arc-Select-trigger--invalid": errorMessage
1194
1194
  },
1195
1195
  _b["arc-Select-trigger--size".concat(selectSize && selectSize.toUpperCase())] = selectSize && selectSize !== "m",
1196
- _b)) }, filterDataAttrs(props)),
1196
+ _b)), "aria-describedby": "".concat(id, "-helper") }, filterDataAttrs(props)),
1197
1197
  React__default.createElement($cc7e05a45900e73f$export$4c8d1a57a761ef94, { className: "arc-Select-triggerText", placeholder: placeholder, "aria-label": getSelectedValueName(uncontrolledValue) }),
1198
1198
  React__default.createElement($cc7e05a45900e73f$export$f04a61298a47a40f, { className: "arc-Select-triggerIcon" },
1199
1199
  React__default.createElement(Icon, { icon: BtIconChevronDown2Px, size: getIconSize(selectSize) }))),
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var SiteHeaderV2 = require('../_shared/cjs/SiteHeaderV2-301c765c.js');
5
+ var SiteHeaderV2 = require('../_shared/cjs/SiteHeaderV2-b41fdb49.js');
6
6
  require('../_shared/cjs/filter-data-attrs-1c9a530c.js');
7
7
  require('../_shared/cjs/use-media-query-e61881d8.js');
8
8
  require('react');
@@ -1,4 +1,4 @@
1
- export { S as SiteHeaderV2 } from '../_shared/esm/SiteHeaderV2-0096e25b.js';
1
+ export { S as SiteHeaderV2 } from '../_shared/esm/SiteHeaderV2-f06ac085.js';
2
2
  import '../_shared/esm/filter-data-attrs-ea8f4ed4.js';
3
3
  import '../_shared/esm/use-media-query-4c807227.js';
4
4
  import 'react';
@@ -19,16 +19,17 @@ require('../_shared/cjs/Filter-1bde635c.js');
19
19
  var FormControl = require('../_shared/cjs/FormControl-5f3b6ce4.js');
20
20
  require('../_shared/cjs/Group-0429741a.js');
21
21
  require('../_shared/cjs/Poster-9b48fd61.js');
22
- require('../_shared/cjs/ProgressStepper-3af8a210.js');
22
+ require('../_shared/cjs/ProgressStepper-20a61620.js');
23
23
  require('../_shared/cjs/RadioGroup-07bb155e.js');
24
24
  require('../_shared/cjs/debounce-123468fb.js');
25
25
  require('../_shared/cjs/SiteFooter-65b6360c.js');
26
26
  require('../_shared/cjs/SiteHeader.rehydrator-ea49f8d5.js');
27
- require('../_shared/cjs/SiteHeaderV2-301c765c.js');
27
+ require('../_shared/cjs/SiteHeaderV2-b41fdb49.js');
28
28
  require('../_shared/cjs/Tabs-24e6f45b.js');
29
29
  require('../_shared/cjs/TextInput-5da70ec2.js');
30
30
  require('../_shared/cjs/Toast-7a20d1b9.js');
31
31
  require('../_shared/cjs/UniversalHeader-b8389447.js');
32
+ var VisuallyHidden = require('../_shared/cjs/VisuallyHidden-e2c8b291.js');
32
33
  require('../_shared/cjs/suffix-modifier-64dcd338.js');
33
34
  require('../_shared/cjs/BtIconChevronRight2Px.esm-dbf8cbee.js');
34
35
  require('../_shared/cjs/Icon-b46897a3.js');
@@ -39,8 +40,6 @@ require('../_shared/cjs/BtIconTickAlt2Px.esm-57c89acc.js');
39
40
  require('../_shared/cjs/BtIconAlert.esm-1a0ff9f0.js');
40
41
  require('../_shared/cjs/DisclosureMini-d0eeb6bb.js');
41
42
  require('../_shared/cjs/BtIconChevronDown2Px.esm-39030ee0.js');
42
- require('../_shared/cjs/VisuallyHidden-e2c8b291.js');
43
- require('../_shared/cjs/VerticalSpace-dc53bb70.js');
44
43
  require('../_shared/cjs/use-media-query-e61881d8.js');
45
44
  require('../_shared/cjs/BrandLogo-aea340c8.js');
46
45
  require('../_shared/cjs/Curve-d038052b.js');
@@ -90,15 +89,16 @@ var TextArea = React.forwardRef(function (_a, ref) {
90
89
  return (React__default["default"].createElement(FormControl.FormControl, filterDataAttrs.__assign({ errorMessage: errorMessage, helper: helper, htmlFor: id, isDisabled: isDisabled, label: label, hideLabel: hideLabel, labelSize: labelSize, requirementStatus: isRequired ? "required" : "optional", disclosureTitle: disclosureTitle, disclosureText: disclosureText, onClickDisclosure: onClickDisclosure, supplementaryInfo: maxLength &&
91
90
  showCharacterCount && (React__default["default"].createElement(React__default["default"].Fragment, null,
92
91
  React__default["default"].createElement(Text.Text, { tone: isDisabled ? "muted" : "default" },
93
- React__default["default"].createElement("span", { className: "arc-TextArea-characterCount" },
92
+ React__default["default"].createElement("span", { className: "arc-TextArea-characterCount", "aria-live": "polite" },
94
93
  characterCount,
95
94
  " / ",
96
- maxLength)))) }, filterDataAttrs.filterDataAttrs(props)),
95
+ maxLength,
96
+ characterCount === maxLength && (React__default["default"].createElement(VisuallyHidden.VisuallyHidden, null, "Maximum characters reached")))))) }, filterDataAttrs.filterDataAttrs(props)),
97
97
  React__default["default"].createElement("textarea", { id: id, className: index.classNames("arc-TextArea", {
98
98
  "arc-TextArea--noResize": resize !== "manual",
99
99
  "arc-TextArea--onDarkSurface": surface === "dark",
100
100
  "arc-TextArea--invalid": errorMessage
101
- }), defaultValue: typeof value !== "undefined" ? undefined : defaultValue, disabled: isDisabled, value: value, readOnly: isReadOnly, maxLength: maxLength, name: name, onChange: handleOnChange, onBlur: onBlur, ref: getTextAreaRef, style: { width: width } })));
101
+ }), defaultValue: typeof value !== "undefined" ? undefined : defaultValue, disabled: isDisabled, value: value, readOnly: isReadOnly, maxLength: maxLength, name: name, onChange: handleOnChange, onBlur: onBlur, ref: getTextAreaRef, style: { width: width }, "aria-describedby": "".concat(id, "-helper") })));
102
102
  });
103
103
 
104
104
  exports.TextArea = TextArea;
@@ -15,16 +15,17 @@ import '../_shared/esm/Filter-58a42358.js';
15
15
  import { F as FormControl } from '../_shared/esm/FormControl-cc99cde0.js';
16
16
  import '../_shared/esm/Group-73fdb896.js';
17
17
  import '../_shared/esm/Poster-4ec2f679.js';
18
- import '../_shared/esm/ProgressStepper-d4c5b6d9.js';
18
+ import '../_shared/esm/ProgressStepper-74d48612.js';
19
19
  import '../_shared/esm/RadioGroup-362be63f.js';
20
20
  import '../_shared/esm/debounce-6fed6b84.js';
21
21
  import '../_shared/esm/SiteFooter-38ee1536.js';
22
22
  import '../_shared/esm/SiteHeader.rehydrator-65c8cf71.js';
23
- import '../_shared/esm/SiteHeaderV2-0096e25b.js';
23
+ import '../_shared/esm/SiteHeaderV2-f06ac085.js';
24
24
  import '../_shared/esm/Tabs-a85af483.js';
25
25
  import '../_shared/esm/TextInput-1d1c5fd6.js';
26
26
  import '../_shared/esm/Toast-7a232e15.js';
27
27
  import '../_shared/esm/UniversalHeader-80c7313f.js';
28
+ import { V as VisuallyHidden } from '../_shared/esm/VisuallyHidden-b9eebf71.js';
28
29
  import '../_shared/esm/suffix-modifier-3d548e45.js';
29
30
  import '../_shared/esm/BtIconChevronRight2Px.esm-75e92636.js';
30
31
  import '../_shared/esm/Icon-15799695.js';
@@ -35,8 +36,6 @@ import '../_shared/esm/BtIconTickAlt2Px.esm-0bc2ded0.js';
35
36
  import '../_shared/esm/BtIconAlert.esm-a4608d47.js';
36
37
  import '../_shared/esm/DisclosureMini-ec17b008.js';
37
38
  import '../_shared/esm/BtIconChevronDown2Px.esm-217276c2.js';
38
- import '../_shared/esm/VisuallyHidden-b9eebf71.js';
39
- import '../_shared/esm/VerticalSpace-43cd9138.js';
40
39
  import '../_shared/esm/use-media-query-4c807227.js';
41
40
  import '../_shared/esm/BrandLogo-1af78f76.js';
42
41
  import '../_shared/esm/Curve-d8679dde.js';
@@ -82,15 +81,16 @@ var TextArea = forwardRef(function (_a, ref) {
82
81
  return (React__default.createElement(FormControl, __assign({ errorMessage: errorMessage, helper: helper, htmlFor: id, isDisabled: isDisabled, label: label, hideLabel: hideLabel, labelSize: labelSize, requirementStatus: isRequired ? "required" : "optional", disclosureTitle: disclosureTitle, disclosureText: disclosureText, onClickDisclosure: onClickDisclosure, supplementaryInfo: maxLength &&
83
82
  showCharacterCount && (React__default.createElement(React__default.Fragment, null,
84
83
  React__default.createElement(Text, { tone: isDisabled ? "muted" : "default" },
85
- React__default.createElement("span", { className: "arc-TextArea-characterCount" },
84
+ React__default.createElement("span", { className: "arc-TextArea-characterCount", "aria-live": "polite" },
86
85
  characterCount,
87
86
  " / ",
88
- maxLength)))) }, filterDataAttrs(props)),
87
+ maxLength,
88
+ characterCount === maxLength && (React__default.createElement(VisuallyHidden, null, "Maximum characters reached")))))) }, filterDataAttrs(props)),
89
89
  React__default.createElement("textarea", { id: id, className: classNames("arc-TextArea", {
90
90
  "arc-TextArea--noResize": resize !== "manual",
91
91
  "arc-TextArea--onDarkSurface": surface === "dark",
92
92
  "arc-TextArea--invalid": errorMessage
93
- }), defaultValue: typeof value !== "undefined" ? undefined : defaultValue, disabled: isDisabled, value: value, readOnly: isReadOnly, maxLength: maxLength, name: name, onChange: handleOnChange, onBlur: onBlur, ref: getTextAreaRef, style: { width: width } })));
93
+ }), defaultValue: typeof value !== "undefined" ? undefined : defaultValue, disabled: isDisabled, value: value, readOnly: isReadOnly, maxLength: maxLength, name: name, onChange: handleOnChange, onBlur: onBlur, ref: getTextAreaRef, style: { width: width }, "aria-describedby": "".concat(id, "-helper") })));
94
94
  });
95
95
 
96
96
  export { TextArea };
@@ -0,0 +1,100 @@
1
+ 'use strict';
2
+
3
+ var filterDataAttrs = require('./filter-data-attrs-1c9a530c.js');
4
+ var React = require('react');
5
+ var index = require('./index-9947ac13.js');
6
+ var Icon = require('./Icon-b46897a3.js');
7
+ var Surface = require('./Surface-038db6e1.js');
8
+ var VisuallyHidden = require('./VisuallyHidden-e2c8b291.js');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
+
14
+ var Error = function () { return (React__default["default"].createElement("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
15
+ React__default["default"].createElement("g", { "clip-path": "url(#a)" },
16
+ React__default["default"].createElement("path", { d: "m13.06 12 2.845-2.845a.75.75 0 0 0-1.06-1.06L12 10.94 9.155 8.095a.75.75 0 0 0-1.06 1.06L10.939 12l-2.844 2.845a.75.75 0 1 0 1.06 1.06L12 13.061l2.845 2.844a.75.75 0 0 0 1.06-1.06L13.06 12Z", fill: "currentColor" })),
17
+ React__default["default"].createElement("rect", { x: ".667", y: ".667", width: "22.667", height: "22.667", rx: "11.333", stroke: "currentColor", "stroke-width": "1.333" }),
18
+ React__default["default"].createElement("defs", null,
19
+ React__default["default"].createElement("clipPath", { id: "a" },
20
+ React__default["default"].createElement("rect", { width: "24", height: "24", rx: "12" }))))); };
21
+
22
+ var Warning = function () { return (React__default["default"].createElement("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
23
+ React__default["default"].createElement("rect", { x: ".667", y: ".667", width: "22.667", height: "22.667", rx: "11.333", stroke: "currentColor", "stroke-width": "1.333" }),
24
+ React__default["default"].createElement("path", { d: "M12 15.747a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm.004-1.487a.375.375 0 0 0 .375-.375l.001-6.757a.375.375 0 1 0-.75 0l-.001 6.757a.375.375 0 0 0 .375.375Z", fill: "currentColor", stroke: "currentColor", "stroke-width": ".3" }))); };
25
+
26
+ var Complete = function () { return (React__default["default"].createElement("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
27
+ React__default["default"].createElement("g", { "clip-path": "url(#a)" },
28
+ React__default["default"].createElement("path", { d: "m10.125 16.435-3.53-3.53a.75.75 0 0 1 0-1.06.768.768 0 0 1 1.06 0l2.47 2.47 6.22-6.22a.75.75 0 1 1 1.06 1.06l-7.28 7.28Z", fill: "currentColor" })),
29
+ React__default["default"].createElement("rect", { x: ".667", y: ".667", width: "22.667", height: "22.667", rx: "11.333", stroke: "currentColor", "stroke-width": "1.333" }),
30
+ React__default["default"].createElement("defs", null,
31
+ React__default["default"].createElement("clipPath", { id: "a" },
32
+ React__default["default"].createElement("rect", { width: "24", height: "24", rx: "12" }))))); };
33
+
34
+ var Current = function () { return (React__default["default"].createElement("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
35
+ React__default["default"].createElement("rect", { x: "0.666667", y: "0.666667", width: "22.6667", height: "22.6667", rx: "11.3333", stroke: "url(#paint0_linear_1_1050)", "stroke-width": "1.33333" }),
36
+ React__default["default"].createElement("circle", { cx: "12", cy: "12", r: "7", fill: "currentColor" }),
37
+ React__default["default"].createElement("defs", null,
38
+ React__default["default"].createElement("linearGradient", { id: "paint0_linear_1_1050", x1: "36.6036", y1: "-4.31391e-07", x2: "-12.6036", y2: "24", gradientUnits: "userSpaceOnUse" },
39
+ React__default["default"].createElement("stop", { "stop-color": "#F200F5" }),
40
+ React__default["default"].createElement("stop", { offset: "1", "stop-color": "#1EC8E6" }))))); };
41
+
42
+ var Todo = function () { return (React__default["default"].createElement("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
43
+ React__default["default"].createElement("rect", { x: ".667", y: ".667", width: "22.667", height: "22.667", rx: "11.333", stroke: "currentColor", "stroke-width": "1.333" }))); };
44
+
45
+ // export current step as an icon
46
+ var ProgressStepperItem = function (_a) {
47
+ var _b;
48
+ var title = _a.title, titleHref = _a.titleHref, subTitle = _a.subTitle, _c = _a.direction, direction = _c === void 0 ? "horizontal" : _c, _d = _a.status, status = _d === void 0 ? "todo" : _d, _e = _a.size, size = _e === void 0 ? "large" : _e, isFluid = _a.isFluid, ariaLabel = _a.ariaLabel, onClick = _a.onClick, previousStep = _a.previousStep, stepContent = _a.stepContent, isStepContentHidden = _a.isStepContentHidden, props = filterDataAttrs.__rest(_a, ["title", "titleHref", "subTitle", "direction", "status", "size", "isFluid", "ariaLabel", "onClick", "previousStep", "stepContent", "isStepContentHidden"]);
49
+ var surface = React.useContext(Surface.Context).surface;
50
+ var statusIcons = {
51
+ todo: Todo,
52
+ completed: Complete,
53
+ current: Current,
54
+ warning: Warning,
55
+ error: Error
56
+ };
57
+ var onClickHandler = function (event) {
58
+ event.preventDefault();
59
+ onClick && onClick();
60
+ };
61
+ var capitaliseFirstLetter = function (word) {
62
+ return word.charAt(0).toUpperCase() + word.slice(1);
63
+ };
64
+ return (React__default["default"].createElement("div", filterDataAttrs.__assign({ className: index.classNames("arc-ProgressStepperItem", "arc-ProgressStepperItem--".concat(status), "arc-ProgressStepperItem--".concat(size), (_b = {
65
+ "arc-ProgressStepperItem--vertical": direction === "vertical",
66
+ "arc-ProgressStepperItem--isFluid": isFluid && direction !== "vertical",
67
+ "arc-ProgressStepperItem--onDarkSurface": surface === "dark",
68
+ "arc-ProgressStepperItem--previousStepCompleted": previousStep === "completed"
69
+ },
70
+ _b["arc-ProgressStepperItem--hasInteractiveStatus"] = status !== "todo",
71
+ _b)) }, filterDataAttrs.filterDataAttrs(props)),
72
+ React__default["default"].createElement("div", { className: "arc-ProgressStepperItem-iconSection" },
73
+ React__default["default"].createElement("div", { className: "arc-ProgressStepperItem-iconWrapper", "data-testid": "arc-ProgressStepperItem-iconWrapper" },
74
+ React__default["default"].createElement(Icon.Icon, { size: size === "small" ? 16 : 24, icon: statusIcons[status] }))),
75
+ React__default["default"].createElement("div", { className: "arc-ProgressStepperItem-textSection" },
76
+ status !== "todo" && (React__default["default"].createElement(VisuallyHidden.VisuallyHidden, null,
77
+ capitaliseFirstLetter(status),
78
+ ":")),
79
+ titleHref ? (React__default["default"].createElement("a", { href: titleHref, "aria-label": ariaLabel, className: index.classNames("arc-ProgressStepperItem-title", "arc-ProgressStepperItem-title--link"), onClick: onClickHandler }, title)) : (React__default["default"].createElement("div", { className: "arc-ProgressStepperItem-title" }, title)),
80
+ React__default["default"].createElement("div", { className: "arc-ProgressStepperItem-subTitle" }, subTitle),
81
+ stepContent && !isStepContentHidden && direction === "vertical" && (React__default["default"].createElement(React__default["default"].Fragment, null,
82
+ React__default["default"].createElement("div", { className: "arc-ProgressStepperItem-nodeItem" }, stepContent))))));
83
+ };
84
+
85
+ /** Use `ProgressStepper` to illustrate the progress of a specific task within a page, by displaying a step-by-step progress through the user journey. This is commonly used in multi-step processes or wizards. */
86
+ var ProgressStepper = function (_a) {
87
+ var children = _a.children, size = _a.size, isFluid = _a.isFluid, direction = _a.direction, isExpandable = _a.isExpandable, props = filterDataAttrs.__rest(_a, ["children", "size", "isFluid", "direction", "isExpandable"]);
88
+ var items = React__default["default"].Children.toArray(children);
89
+ var getStepStatus = function (item) {
90
+ var _a;
91
+ return (_a = item === null || item === void 0 ? void 0 : item.props) === null || _a === void 0 ? void 0 : _a.status;
92
+ };
93
+ return (React__default["default"].createElement("div", filterDataAttrs.__assign({ className: index.classNames("arc-ProgressStepper", {
94
+ "arc-ProgressStepper--vertical": direction === "vertical"
95
+ }) }, filterDataAttrs.filterDataAttrs(props)), items.map(function (item, index) { return (React__default["default"].createElement(React__default["default"].Fragment, { key: "StepperItem-".concat(index) },
96
+ React__default["default"].createElement(ProgressStepperItem, filterDataAttrs.__assign({ title: item.props.title, titleHref: item.props.titleHref, subTitle: item.props.subTitle, status: item.props.status, stepContent: item.props.stepContent, isStepContentHidden: item.props.isStepContentHidden, onClick: item.props.onClick, isFluid: isFluid, direction: direction, isExpandable: isExpandable, size: size, previousStep: getStepStatus(items[index - 1]) }, filterDataAttrs.filterDataAttrs(item.props))))); })));
97
+ };
98
+ ProgressStepper.Item = ProgressStepperItem;
99
+
100
+ exports.ProgressStepper = ProgressStepper;
@@ -24,8 +24,8 @@ var Item = function (_a) {
24
24
  return (React__default["default"].createElement("li", filterDataAttrs.__assign({ className: index.classNames((_b = {},
25
25
  _b["arc-SiteHeaderV2Item"] = true,
26
26
  _b["arc-SiteHeaderV2Item--emphasised"] = true,
27
- _b)) }, filterDataAttrs.filterDataAttrs(props)),
28
- React__default["default"].createElement("a", { onClick: handleLinkClick.handleLinkClick({ handler: onClick }), className: "arc-SiteHeaderV2Item-link", href: href },
27
+ _b)) }, filterDataAttrs.filterDataAttrs(props), { role: "none" }),
28
+ React__default["default"].createElement("a", { onClick: handleLinkClick.handleLinkClick({ handler: onClick }), className: "arc-SiteHeaderV2Item-link", href: href, role: "menuitem" },
29
29
  children,
30
30
  React__default["default"].createElement("span", { className: "arc-SiteHeaderV2Item-linkIcon" },
31
31
  React__default["default"].createElement(BtIconChevronRightMid_esm.BtIconChevronRightMid, null)))));
@@ -33,7 +33,6 @@ var Item = function (_a) {
33
33
 
34
34
  var ItemGroup = function (_a) {
35
35
  var children = _a.children, href = _a.href, title = _a.title, subtitle = _a.subtitle, onClick = _a.onClick, viewAllTitle = _a.viewAllTitle, props = filterDataAttrs.__rest(_a, ["children", "href", "title", "subtitle", "onClick", "viewAllTitle"]);
36
- var _b = React.useState(false), hasClientSideJavaScript = _b[0], setHasClientSideJavaScript = _b[1];
37
36
  var isMinWidthArcBreakpointL = useMediaQuery.useMediaQuery("(min-width: ".concat(useMediaQuery.ArcBreakpointL, "px)"));
38
37
  React.useEffect(function () {
39
38
  React__default["default"].Children.map(children, function (item) {
@@ -42,10 +41,6 @@ var ItemGroup = function (_a) {
42
41
  }
43
42
  });
44
43
  }, [children]);
45
- React.useEffect(function () {
46
- // useEffect does not run in ReactDomServer renders
47
- setHasClientSideJavaScript(true);
48
- }, [setHasClientSideJavaScript]);
49
44
  var ElementType = "div";
50
45
  if (title) {
51
46
  ElementType = "details";
@@ -53,16 +48,14 @@ var ItemGroup = function (_a) {
53
48
  return (React__default["default"].createElement("li", { className: "arc-SiteHeaderV2ItemGroup" },
54
49
  React__default["default"].createElement(ElementType, filterDataAttrs.__assign({ className: "arc-SiteHeaderV2ItemGroup-details", open: Boolean(title && isMinWidthArcBreakpointL) }, filterDataAttrs.filterDataAttrs(props)),
55
50
  title ? (React__default["default"].createElement(React__default["default"].Fragment, null,
56
- React__default["default"].createElement("summary", { className: "arc-SiteHeaderV2ItemGroup-summary", tabIndex: isMinWidthArcBreakpointL ? -1 : 0 }, href ? (React__default["default"].createElement("div", { className: "arc-SiteHeaderV2ItemGroup-heading" },
51
+ React__default["default"].createElement("summary", { className: "arc-SiteHeaderV2ItemGroup-summary" }, href ? (React__default["default"].createElement("div", { className: "arc-SiteHeaderV2ItemGroup-heading" },
57
52
  React__default["default"].createElement("a", { onClick: handleLinkClick.handleLinkClick({
58
53
  handler: onClick
59
- }), className: "arc-SiteHeaderV2ItemGroup-title", href: href, tabIndex: !hasClientSideJavaScript || isMinWidthArcBreakpointL
60
- ? 0
61
- : -1 }, title),
54
+ }), className: "arc-SiteHeaderV2ItemGroup-title", href: href }, title),
62
55
  React__default["default"].createElement("span", { className: "arc-SiteHeaderV2ItemGroup-titleIcon" },
63
56
  React__default["default"].createElement(BtIconChevronRightMid_esm.BtIconChevronRightMid, null)))) : (React__default["default"].createElement("div", { className: "arc-SiteHeaderV2ItemGroup-title" }, title))),
64
57
  React__default["default"].createElement("span", { className: "arc-SiteHeaderV2ItemGroup-subtitle" }, subtitle))) : null,
65
- React__default["default"].createElement("ul", { className: "arc-SiteHeaderV2ItemGroup-items" },
58
+ React__default["default"].createElement("ul", { className: "arc-SiteHeaderV2ItemGroup-items", role: "menubar" },
66
59
  children,
67
60
  href && title ? (React__default["default"].createElement("li", { className: "arc-SiteHeaderV2Item arc-SiteHeaderV2Item--viewAll" },
68
61
  React__default["default"].createElement("a", { className: "arc-SiteHeaderV2Item-link", onClick: handleLinkClick.handleLinkClick({
@@ -79,8 +72,8 @@ var Column = function (_a) {
79
72
  }
80
73
  });
81
74
  }, [children]);
82
- return (React__default["default"].createElement("li", filterDataAttrs.__assign({ className: "arc-SiteHeaderV2Column" }, filterDataAttrs.filterDataAttrs(props)),
83
- React__default["default"].createElement("ul", { className: "arc-SiteHeaderV2Column-items" }, children)));
75
+ return (React__default["default"].createElement("li", filterDataAttrs.__assign({ className: "arc-SiteHeaderV2Column" }, filterDataAttrs.filterDataAttrs(props), { role: "none" }),
76
+ React__default["default"].createElement("ul", { className: "arc-SiteHeaderV2Column-items", role: "none" }, children)));
84
77
  };
85
78
 
86
79
  var BackButton = function (_a) {
@@ -98,11 +91,13 @@ var Panel = function (_a) {
98
91
  var _b, _c, _d, _e, _f;
99
92
  var children = _a.children, navItemRef = _a.navItemRef, isNavItem = _a.isNavItem, open = _a.open, setOpen = _a.setOpen, setOpenPanelOnFirstClick = _a.setOpenPanelOnFirstClick, subNavItemRef = _a.subNavItemRef; _a.navLink; var _h = _a.subNavLink, subNavLink = _h === void 0 ? "" : _h, title = _a.title, subtitle = _a.subtitle, viewAll = _a.viewAll, withSubNav = _a.withSubNav; _a.fade; var isPrimary = _a.isPrimary, props = filterDataAttrs.__rest(_a, ["children", "navItemRef", "isNavItem", "open", "setOpen", "setOpenPanelOnFirstClick", "subNavItemRef", "navLink", "subNavLink", "title", "subtitle", "viewAll", "withSubNav", "fade", "isPrimary"]);
100
93
  var isMinWidthArcBreakpointL = useMediaQuery.useMediaQuery("(min-width: ".concat(useMediaQuery.ArcBreakpointL, "px)"));
94
+ var menubarRef = useHeaderV2Context().menubarRef;
101
95
  React.useEffect(function () {
102
96
  // Where appropriate, close the Panel when clicking outside of it,
103
97
  // by listening to clicks on the entire document and acting accordingly.
104
98
  var handleClick = function (e) {
105
99
  var _a, _b;
100
+ menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current.classList.add("noFocus");
106
101
  // Don't close the Panel…
107
102
  if (
108
103
  // The click is inside the current SubNavItem.
@@ -142,9 +137,11 @@ var Panel = function (_a) {
142
137
  subNavItemRef,
143
138
  subNavLink,
144
139
  setOpenPanelOnFirstClick,
140
+ menubarRef,
145
141
  ]);
146
142
  React.useEffect(function () {
147
143
  var handleClick = function (e) {
144
+ menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current.classList.add("noFocus");
148
145
  // Close the Panel…
149
146
  if (e.target.classList.contains("arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel")) {
150
147
  setOpenPanelOnFirstClick(false);
@@ -160,7 +157,7 @@ var Panel = function (_a) {
160
157
  return function () {
161
158
  document.removeEventListener("click", handleClick);
162
159
  };
163
- }, [navItemRef, setOpenPanelOnFirstClick]);
160
+ }, [navItemRef, setOpenPanelOnFirstClick, menubarRef]);
164
161
  React.useEffect(function () {
165
162
  var handleKeydown = function (e) {
166
163
  // Check the viewport width at time of press
@@ -173,12 +170,15 @@ var Panel = function (_a) {
173
170
  }
174
171
  return setOpen(false);
175
172
  }
173
+ if (e.key === "Tab") {
174
+ menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current.classList.remove("noFocus");
175
+ }
176
176
  };
177
177
  window.addEventListener("keydown", handleKeydown);
178
178
  return function () {
179
179
  window.removeEventListener("keydown", handleKeydown);
180
180
  };
181
- }, [setOpen, subNavItemRef]);
181
+ }, [setOpen, subNavItemRef, menubarRef]);
182
182
  return (React__default["default"].createElement("div", { style: { display: "flex" } },
183
183
  React__default["default"].createElement("div", filterDataAttrs.__assign({ className: index.classNames((_b = {},
184
184
  _b["arc-SiteHeaderV2Panel"] = true,
@@ -267,8 +267,9 @@ var NavItem = function (_a) {
267
267
  handler: onClick
268
268
  }), className: "arc-SiteHeaderV2NavItem-link", href: href }, title)) : null) : (React__default["default"].createElement(React__default["default"].Fragment, null,
269
269
  React__default["default"].createElement("div", { className: "arc-SiteHeaderV2NavItemWithSubNav-buttonContainer" },
270
- React__default["default"].createElement("button", { "aria-expanded": panelOpen, className: index.classNames((_c = {},
270
+ React__default["default"].createElement("button", { "aria-expanded": panelOpen, role: "menuitem", "aria-haspopup": "true", "aria-label": title, className: index.classNames((_c = {},
271
271
  _c["arc-SiteHeaderV2NavItem-link"] = true,
272
+ _c["arc-SiteHeaderV2NavItem-horizontalPanelFocus"] = !isPrimary,
272
273
  _c["arc-SiteHeaderV2NavItem-link--itemHasChildren"] = true,
273
274
  _c["arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel"] = !isPrimary && !opensFirstWithPanel,
274
275
  _c["arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel"] = opensFirstWithPanel,
@@ -406,10 +407,11 @@ var NavItemWithSubNav = function (_a) {
406
407
  ? horizontalPanelOpen
407
408
  : panelOpen,
408
409
  _b["arc-SiteHeaderV2NavItemWithSubNav-active"] = panelOpen || (opensFirstWithPanel && openSecondaryWithSubNav),
409
- _b)), ref: navItem }, filterDataAttrs.filterDataAttrs(props)),
410
+ _b)), role: "none", ref: navItem }, filterDataAttrs.filterDataAttrs(props)),
410
411
  React__default["default"].createElement("div", { className: "arc-SiteHeaderV2NavItemWithSubNav-buttonContainer" },
411
- React__default["default"].createElement("button", { "aria-expanded": horizontalPanelOpen, className: index.classNames((_c = {},
412
+ React__default["default"].createElement("button", { "aria-expanded": horizontalPanelOpen || panelOpen, role: "menuitem", "aria-label": title, "aria-haspopup": "true", tabIndex: 0, className: index.classNames((_c = {},
412
413
  _c["arc-SiteHeaderV2NavItem-link"] = true,
414
+ _c["arc-SiteHeaderV2NavItem-horizontalPanelFocus"] = !isPrimary,
413
415
  _c["arc-SiteHeaderV2NavItem-link--itemHasChildren"] = true,
414
416
  _c["arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel"] = !isPrimary && !opensFirstWithPanel,
415
417
  _c["arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel"] = opensFirstWithPanel,
@@ -542,7 +544,7 @@ var VerticalDivider = function () {
542
544
  return React__default["default"].createElement("li", { className: "arc-SiteHeaderV2VerticalDivider-line" });
543
545
  };
544
546
 
545
- var defaultContext = { transparent: false };
547
+ var defaultContext = { transparent: false, menubarRef: null };
546
548
  var Context = React.createContext(defaultContext);
547
549
  var Provider = Context.Provider;
548
550
  /**
@@ -554,6 +556,7 @@ var SiteHeaderV2 = function (_a) {
554
556
  var _j = React.useState(false), hasClientSideJavaScript = _j[0], setHasClientSideJavaScript = _j[1];
555
557
  var _k = React.useState(false), menuOpen = _k[0], setMenuOpen = _k[1];
556
558
  var isMinWidthArcBreakpointL = useMediaQuery.useMediaQuery("(min-width: ".concat(useMediaQuery.ArcBreakpointL, "px)"));
559
+ var menubarRef = React.useRef();
557
560
  React.useEffect(function () {
558
561
  React__default["default"].Children.map(children, function (item) {
559
562
  if (item &&
@@ -587,6 +590,9 @@ var SiteHeaderV2 = function (_a) {
587
590
  window.removeEventListener("keydown", handleKeydown);
588
591
  };
589
592
  }, [setMenuOpen]);
593
+ React.useEffect(function () {
594
+ menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current.classList.add("noFocus");
595
+ }, []);
590
596
  React.useEffect(function () {
591
597
  var handleClick = function (e) {
592
598
  if (e.target.getAttribute("href")) {
@@ -602,7 +608,7 @@ var SiteHeaderV2 = function (_a) {
602
608
  // useEffect does not run in ReactDomServer renders
603
609
  setHasClientSideJavaScript(true);
604
610
  }, [setHasClientSideJavaScript]);
605
- return (React__default["default"].createElement(Provider, { value: { transparent: isTransparent } },
611
+ return (React__default["default"].createElement(Provider, { value: { transparent: isTransparent, menubarRef: menubarRef } },
606
612
  React__default["default"].createElement("div", filterDataAttrs.__assign({ className: index.classNames((_b = {},
607
613
  _b["arc-SiteHeaderV2"] = true,
608
614
  _b["arc-SiteHeaderV2--menuOpen"] = menuOpen,
@@ -619,8 +625,8 @@ var SiteHeaderV2 = function (_a) {
619
625
  children && (React__default["default"].createElement("nav", { className: "arc-SiteHeaderV2-nav" },
620
626
  React__default["default"].createElement("div", { className: "arc-SiteHeaderV2-menuButton" },
621
627
  React__default["default"].createElement(MenuButton, { menuOpen: menuOpen, setMenuOpen: setMenuOpen })),
622
- React__default["default"].createElement("div", { className: "arc-SiteHeaderV2-main" },
623
- React__default["default"].createElement("ul", { className: "arc-SiteHeaderV2-navItems" }, children),
628
+ React__default["default"].createElement("div", { className: "arc-SiteHeaderV2-main", tabIndex: -1 },
629
+ React__default["default"].createElement("ul", { role: "menubar", "aria-label": "navigation", ref: menubarRef, className: "arc-SiteHeaderV2-navItems" }, children),
624
630
  hasLogin && (React__default["default"].createElement(React__default["default"].Fragment, null, loginOnClick ? (React__default["default"].createElement("div", { className: "arc-SiteHeaderV2-mobileButtonContainer" },
625
631
  React__default["default"].createElement("button", { className: "arc-SiteHeaderV2-mobileLogin", onClick: loginOnClick },
626
632
  loginTitle,
@@ -635,6 +641,9 @@ var SiteHeaderV2 = function (_a) {
635
641
  basket ? (React__default["default"].createElement("div", { className: "arc-SiteHeaderV2-basket" }, basket)) : null,
636
642
  hasLogin && (React__default["default"].createElement(React__default["default"].Fragment, null, loginOnClick ? (React__default["default"].createElement("div", { className: "arc-SiteHeaderV2-loginLink arc-SiteHeaderV2-loginLink--function", onClick: loginOnClick }, loginTitle)) : (React__default["default"].createElement("a", { className: "arc-SiteHeaderV2-loginLink", href: loginHref }, loginTitle)))))))))));
637
643
  };
644
+ function useHeaderV2Context() {
645
+ return React.useContext(Context);
646
+ }
638
647
  SiteHeaderV2.Column = Column;
639
648
  SiteHeaderV2.Item = Item;
640
649
  SiteHeaderV2.ItemGroup = ItemGroup;
@@ -0,0 +1,94 @@
1
+ import { _ as __rest, a as __assign, f as filterDataAttrs } from './filter-data-attrs-ea8f4ed4.js';
2
+ import React__default, { useContext } from 'react';
3
+ import { c as classNames } from './index-2e73c2e9.js';
4
+ import { I as Icon } from './Icon-15799695.js';
5
+ import { C as Context } from './Surface-0ca6817d.js';
6
+ import { V as VisuallyHidden } from './VisuallyHidden-b9eebf71.js';
7
+
8
+ var Error = function () { return (React__default.createElement("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
9
+ React__default.createElement("g", { "clip-path": "url(#a)" },
10
+ React__default.createElement("path", { d: "m13.06 12 2.845-2.845a.75.75 0 0 0-1.06-1.06L12 10.94 9.155 8.095a.75.75 0 0 0-1.06 1.06L10.939 12l-2.844 2.845a.75.75 0 1 0 1.06 1.06L12 13.061l2.845 2.844a.75.75 0 0 0 1.06-1.06L13.06 12Z", fill: "currentColor" })),
11
+ React__default.createElement("rect", { x: ".667", y: ".667", width: "22.667", height: "22.667", rx: "11.333", stroke: "currentColor", "stroke-width": "1.333" }),
12
+ React__default.createElement("defs", null,
13
+ React__default.createElement("clipPath", { id: "a" },
14
+ React__default.createElement("rect", { width: "24", height: "24", rx: "12" }))))); };
15
+
16
+ var Warning = function () { return (React__default.createElement("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
17
+ React__default.createElement("rect", { x: ".667", y: ".667", width: "22.667", height: "22.667", rx: "11.333", stroke: "currentColor", "stroke-width": "1.333" }),
18
+ React__default.createElement("path", { d: "M12 15.747a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm.004-1.487a.375.375 0 0 0 .375-.375l.001-6.757a.375.375 0 1 0-.75 0l-.001 6.757a.375.375 0 0 0 .375.375Z", fill: "currentColor", stroke: "currentColor", "stroke-width": ".3" }))); };
19
+
20
+ var Complete = function () { return (React__default.createElement("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
21
+ React__default.createElement("g", { "clip-path": "url(#a)" },
22
+ React__default.createElement("path", { d: "m10.125 16.435-3.53-3.53a.75.75 0 0 1 0-1.06.768.768 0 0 1 1.06 0l2.47 2.47 6.22-6.22a.75.75 0 1 1 1.06 1.06l-7.28 7.28Z", fill: "currentColor" })),
23
+ React__default.createElement("rect", { x: ".667", y: ".667", width: "22.667", height: "22.667", rx: "11.333", stroke: "currentColor", "stroke-width": "1.333" }),
24
+ React__default.createElement("defs", null,
25
+ React__default.createElement("clipPath", { id: "a" },
26
+ React__default.createElement("rect", { width: "24", height: "24", rx: "12" }))))); };
27
+
28
+ var Current = function () { return (React__default.createElement("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
29
+ React__default.createElement("rect", { x: "0.666667", y: "0.666667", width: "22.6667", height: "22.6667", rx: "11.3333", stroke: "url(#paint0_linear_1_1050)", "stroke-width": "1.33333" }),
30
+ React__default.createElement("circle", { cx: "12", cy: "12", r: "7", fill: "currentColor" }),
31
+ React__default.createElement("defs", null,
32
+ React__default.createElement("linearGradient", { id: "paint0_linear_1_1050", x1: "36.6036", y1: "-4.31391e-07", x2: "-12.6036", y2: "24", gradientUnits: "userSpaceOnUse" },
33
+ React__default.createElement("stop", { "stop-color": "#F200F5" }),
34
+ React__default.createElement("stop", { offset: "1", "stop-color": "#1EC8E6" }))))); };
35
+
36
+ var Todo = function () { return (React__default.createElement("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
37
+ React__default.createElement("rect", { x: ".667", y: ".667", width: "22.667", height: "22.667", rx: "11.333", stroke: "currentColor", "stroke-width": "1.333" }))); };
38
+
39
+ // export current step as an icon
40
+ var ProgressStepperItem = function (_a) {
41
+ var _b;
42
+ var title = _a.title, titleHref = _a.titleHref, subTitle = _a.subTitle, _c = _a.direction, direction = _c === void 0 ? "horizontal" : _c, _d = _a.status, status = _d === void 0 ? "todo" : _d, _e = _a.size, size = _e === void 0 ? "large" : _e, isFluid = _a.isFluid, ariaLabel = _a.ariaLabel, onClick = _a.onClick, previousStep = _a.previousStep, stepContent = _a.stepContent, isStepContentHidden = _a.isStepContentHidden, props = __rest(_a, ["title", "titleHref", "subTitle", "direction", "status", "size", "isFluid", "ariaLabel", "onClick", "previousStep", "stepContent", "isStepContentHidden"]);
43
+ var surface = useContext(Context).surface;
44
+ var statusIcons = {
45
+ todo: Todo,
46
+ completed: Complete,
47
+ current: Current,
48
+ warning: Warning,
49
+ error: Error
50
+ };
51
+ var onClickHandler = function (event) {
52
+ event.preventDefault();
53
+ onClick && onClick();
54
+ };
55
+ var capitaliseFirstLetter = function (word) {
56
+ return word.charAt(0).toUpperCase() + word.slice(1);
57
+ };
58
+ return (React__default.createElement("div", __assign({ className: classNames("arc-ProgressStepperItem", "arc-ProgressStepperItem--".concat(status), "arc-ProgressStepperItem--".concat(size), (_b = {
59
+ "arc-ProgressStepperItem--vertical": direction === "vertical",
60
+ "arc-ProgressStepperItem--isFluid": isFluid && direction !== "vertical",
61
+ "arc-ProgressStepperItem--onDarkSurface": surface === "dark",
62
+ "arc-ProgressStepperItem--previousStepCompleted": previousStep === "completed"
63
+ },
64
+ _b["arc-ProgressStepperItem--hasInteractiveStatus"] = status !== "todo",
65
+ _b)) }, filterDataAttrs(props)),
66
+ React__default.createElement("div", { className: "arc-ProgressStepperItem-iconSection" },
67
+ React__default.createElement("div", { className: "arc-ProgressStepperItem-iconWrapper", "data-testid": "arc-ProgressStepperItem-iconWrapper" },
68
+ React__default.createElement(Icon, { size: size === "small" ? 16 : 24, icon: statusIcons[status] }))),
69
+ React__default.createElement("div", { className: "arc-ProgressStepperItem-textSection" },
70
+ status !== "todo" && (React__default.createElement(VisuallyHidden, null,
71
+ capitaliseFirstLetter(status),
72
+ ":")),
73
+ titleHref ? (React__default.createElement("a", { href: titleHref, "aria-label": ariaLabel, className: classNames("arc-ProgressStepperItem-title", "arc-ProgressStepperItem-title--link"), onClick: onClickHandler }, title)) : (React__default.createElement("div", { className: "arc-ProgressStepperItem-title" }, title)),
74
+ React__default.createElement("div", { className: "arc-ProgressStepperItem-subTitle" }, subTitle),
75
+ stepContent && !isStepContentHidden && direction === "vertical" && (React__default.createElement(React__default.Fragment, null,
76
+ React__default.createElement("div", { className: "arc-ProgressStepperItem-nodeItem" }, stepContent))))));
77
+ };
78
+
79
+ /** Use `ProgressStepper` to illustrate the progress of a specific task within a page, by displaying a step-by-step progress through the user journey. This is commonly used in multi-step processes or wizards. */
80
+ var ProgressStepper = function (_a) {
81
+ var children = _a.children, size = _a.size, isFluid = _a.isFluid, direction = _a.direction, isExpandable = _a.isExpandable, props = __rest(_a, ["children", "size", "isFluid", "direction", "isExpandable"]);
82
+ var items = React__default.Children.toArray(children);
83
+ var getStepStatus = function (item) {
84
+ var _a;
85
+ return (_a = item === null || item === void 0 ? void 0 : item.props) === null || _a === void 0 ? void 0 : _a.status;
86
+ };
87
+ return (React__default.createElement("div", __assign({ className: classNames("arc-ProgressStepper", {
88
+ "arc-ProgressStepper--vertical": direction === "vertical"
89
+ }) }, filterDataAttrs(props)), items.map(function (item, index) { return (React__default.createElement(React__default.Fragment, { key: "StepperItem-".concat(index) },
90
+ React__default.createElement(ProgressStepperItem, __assign({ title: item.props.title, titleHref: item.props.titleHref, subTitle: item.props.subTitle, status: item.props.status, stepContent: item.props.stepContent, isStepContentHidden: item.props.isStepContentHidden, onClick: item.props.onClick, isFluid: isFluid, direction: direction, isExpandable: isExpandable, size: size, previousStep: getStepStatus(items[index - 1]) }, filterDataAttrs(item.props))))); })));
91
+ };
92
+ ProgressStepper.Item = ProgressStepperItem;
93
+
94
+ export { ProgressStepper as P };