@salt-ds/lab 1.0.0-alpha.65 → 1.0.0-alpha.67

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 (150) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/css/salt-lab.css +111 -214
  3. package/dist-cjs/carousel/Carousel.css.js +1 -1
  4. package/dist-cjs/carousel/Carousel.js +30 -87
  5. package/dist-cjs/carousel/Carousel.js.map +1 -1
  6. package/dist-cjs/carousel/CarouselContext.js +62 -0
  7. package/dist-cjs/carousel/CarouselContext.js.map +1 -0
  8. package/dist-cjs/carousel/CarouselControls.css.js +6 -0
  9. package/dist-cjs/carousel/CarouselControls.css.js.map +1 -0
  10. package/dist-cjs/carousel/CarouselControls.js +122 -0
  11. package/dist-cjs/carousel/CarouselControls.js.map +1 -0
  12. package/dist-cjs/carousel/CarouselReducer.js +77 -0
  13. package/dist-cjs/carousel/CarouselReducer.js.map +1 -0
  14. package/dist-cjs/carousel/CarouselSlide.css.js +6 -0
  15. package/dist-cjs/carousel/CarouselSlide.css.js.map +1 -0
  16. package/dist-cjs/carousel/CarouselSlide.js +95 -45
  17. package/dist-cjs/carousel/CarouselSlide.js.map +1 -1
  18. package/dist-cjs/carousel/CarouselSlider.css.js +6 -0
  19. package/dist-cjs/carousel/CarouselSlider.css.js.map +1 -0
  20. package/dist-cjs/carousel/CarouselSlider.js +93 -0
  21. package/dist-cjs/carousel/CarouselSlider.js.map +1 -0
  22. package/dist-cjs/index.js +6 -8
  23. package/dist-cjs/index.js.map +1 -1
  24. package/dist-es/carousel/Carousel.css.js +1 -1
  25. package/dist-es/carousel/Carousel.js +32 -89
  26. package/dist-es/carousel/Carousel.js.map +1 -1
  27. package/dist-es/carousel/CarouselContext.js +58 -0
  28. package/dist-es/carousel/CarouselContext.js.map +1 -0
  29. package/dist-es/carousel/CarouselControls.css.js +4 -0
  30. package/dist-es/carousel/CarouselControls.css.js.map +1 -0
  31. package/dist-es/carousel/CarouselControls.js +120 -0
  32. package/dist-es/carousel/CarouselControls.js.map +1 -0
  33. package/dist-es/carousel/CarouselReducer.js +75 -0
  34. package/dist-es/carousel/CarouselReducer.js.map +1 -0
  35. package/dist-es/carousel/CarouselSlide.css.js +4 -0
  36. package/dist-es/carousel/CarouselSlide.css.js.map +1 -0
  37. package/dist-es/carousel/CarouselSlide.js +96 -46
  38. package/dist-es/carousel/CarouselSlide.js.map +1 -1
  39. package/dist-es/carousel/CarouselSlider.css.js +4 -0
  40. package/dist-es/carousel/CarouselSlider.css.js.map +1 -0
  41. package/dist-es/carousel/CarouselSlider.js +91 -0
  42. package/dist-es/carousel/CarouselSlider.js.map +1 -0
  43. package/dist-es/index.js +3 -4
  44. package/dist-es/index.js.map +1 -1
  45. package/dist-types/carousel/Carousel.d.ts +10 -23
  46. package/dist-types/carousel/CarouselContext.d.ts +11 -0
  47. package/dist-types/carousel/CarouselControls.d.ts +26 -0
  48. package/dist-types/carousel/CarouselReducer.d.ts +30 -0
  49. package/dist-types/carousel/CarouselSlide.d.ts +31 -8
  50. package/dist-types/carousel/CarouselSlider.d.ts +13 -0
  51. package/dist-types/carousel/index.d.ts +2 -0
  52. package/dist-types/index.d.ts +0 -1
  53. package/dist-types/utils/index.d.ts +1 -1
  54. package/package.json +2 -2
  55. package/dist-cjs/stepped-tracker/Step.Connector.css.js +0 -6
  56. package/dist-cjs/stepped-tracker/Step.Connector.css.js.map +0 -1
  57. package/dist-cjs/stepped-tracker/Step.Connector.js +0 -21
  58. package/dist-cjs/stepped-tracker/Step.Connector.js.map +0 -1
  59. package/dist-cjs/stepped-tracker/Step.Description.css.js +0 -6
  60. package/dist-cjs/stepped-tracker/Step.Description.css.js.map +0 -1
  61. package/dist-cjs/stepped-tracker/Step.Description.js +0 -35
  62. package/dist-cjs/stepped-tracker/Step.Description.js.map +0 -1
  63. package/dist-cjs/stepped-tracker/Step.ExpandTrigger.css.js +0 -6
  64. package/dist-cjs/stepped-tracker/Step.ExpandTrigger.css.js.map +0 -1
  65. package/dist-cjs/stepped-tracker/Step.ExpandTrigger.js +0 -38
  66. package/dist-cjs/stepped-tracker/Step.ExpandTrigger.js.map +0 -1
  67. package/dist-cjs/stepped-tracker/Step.Icon.css.js +0 -6
  68. package/dist-cjs/stepped-tracker/Step.Icon.css.js.map +0 -1
  69. package/dist-cjs/stepped-tracker/Step.Icon.js +0 -57
  70. package/dist-cjs/stepped-tracker/Step.Icon.js.map +0 -1
  71. package/dist-cjs/stepped-tracker/Step.Label.css.js +0 -6
  72. package/dist-cjs/stepped-tracker/Step.Label.css.js.map +0 -1
  73. package/dist-cjs/stepped-tracker/Step.Label.js +0 -37
  74. package/dist-cjs/stepped-tracker/Step.Label.js.map +0 -1
  75. package/dist-cjs/stepped-tracker/Step.SROnly.css.js +0 -6
  76. package/dist-cjs/stepped-tracker/Step.SROnly.css.js.map +0 -1
  77. package/dist-cjs/stepped-tracker/Step.SROnly.js +0 -21
  78. package/dist-cjs/stepped-tracker/Step.SROnly.js.map +0 -1
  79. package/dist-cjs/stepped-tracker/Step.css.js +0 -6
  80. package/dist-cjs/stepped-tracker/Step.css.js.map +0 -1
  81. package/dist-cjs/stepped-tracker/Step.js +0 -161
  82. package/dist-cjs/stepped-tracker/Step.js.map +0 -1
  83. package/dist-cjs/stepped-tracker/SteppedTracker.Provider.js +0 -19
  84. package/dist-cjs/stepped-tracker/SteppedTracker.Provider.js.map +0 -1
  85. package/dist-cjs/stepped-tracker/SteppedTracker.css.js +0 -6
  86. package/dist-cjs/stepped-tracker/SteppedTracker.css.js.map +0 -1
  87. package/dist-cjs/stepped-tracker/SteppedTracker.js +0 -36
  88. package/dist-cjs/stepped-tracker/SteppedTracker.js.map +0 -1
  89. package/dist-cjs/stepped-tracker/stepReducer.js +0 -155
  90. package/dist-cjs/stepped-tracker/stepReducer.js.map +0 -1
  91. package/dist-cjs/stepped-tracker/useStepReducer.js +0 -18
  92. package/dist-cjs/stepped-tracker/useStepReducer.js.map +0 -1
  93. package/dist-cjs/stepped-tracker/utils.js +0 -121
  94. package/dist-cjs/stepped-tracker/utils.js.map +0 -1
  95. package/dist-es/stepped-tracker/Step.Connector.css.js +0 -4
  96. package/dist-es/stepped-tracker/Step.Connector.css.js.map +0 -1
  97. package/dist-es/stepped-tracker/Step.Connector.js +0 -19
  98. package/dist-es/stepped-tracker/Step.Connector.js.map +0 -1
  99. package/dist-es/stepped-tracker/Step.Description.css.js +0 -4
  100. package/dist-es/stepped-tracker/Step.Description.css.js.map +0 -1
  101. package/dist-es/stepped-tracker/Step.Description.js +0 -33
  102. package/dist-es/stepped-tracker/Step.Description.js.map +0 -1
  103. package/dist-es/stepped-tracker/Step.ExpandTrigger.css.js +0 -4
  104. package/dist-es/stepped-tracker/Step.ExpandTrigger.css.js.map +0 -1
  105. package/dist-es/stepped-tracker/Step.ExpandTrigger.js +0 -36
  106. package/dist-es/stepped-tracker/Step.ExpandTrigger.js.map +0 -1
  107. package/dist-es/stepped-tracker/Step.Icon.css.js +0 -4
  108. package/dist-es/stepped-tracker/Step.Icon.css.js.map +0 -1
  109. package/dist-es/stepped-tracker/Step.Icon.js +0 -55
  110. package/dist-es/stepped-tracker/Step.Icon.js.map +0 -1
  111. package/dist-es/stepped-tracker/Step.Label.css.js +0 -4
  112. package/dist-es/stepped-tracker/Step.Label.css.js.map +0 -1
  113. package/dist-es/stepped-tracker/Step.Label.js +0 -35
  114. package/dist-es/stepped-tracker/Step.Label.js.map +0 -1
  115. package/dist-es/stepped-tracker/Step.SROnly.css.js +0 -4
  116. package/dist-es/stepped-tracker/Step.SROnly.css.js.map +0 -1
  117. package/dist-es/stepped-tracker/Step.SROnly.js +0 -19
  118. package/dist-es/stepped-tracker/Step.SROnly.js.map +0 -1
  119. package/dist-es/stepped-tracker/Step.css.js +0 -4
  120. package/dist-es/stepped-tracker/Step.css.js.map +0 -1
  121. package/dist-es/stepped-tracker/Step.js +0 -159
  122. package/dist-es/stepped-tracker/Step.js.map +0 -1
  123. package/dist-es/stepped-tracker/SteppedTracker.Provider.js +0 -15
  124. package/dist-es/stepped-tracker/SteppedTracker.Provider.js.map +0 -1
  125. package/dist-es/stepped-tracker/SteppedTracker.css.js +0 -4
  126. package/dist-es/stepped-tracker/SteppedTracker.css.js.map +0 -1
  127. package/dist-es/stepped-tracker/SteppedTracker.js +0 -34
  128. package/dist-es/stepped-tracker/SteppedTracker.js.map +0 -1
  129. package/dist-es/stepped-tracker/stepReducer.js +0 -153
  130. package/dist-es/stepped-tracker/stepReducer.js.map +0 -1
  131. package/dist-es/stepped-tracker/useStepReducer.js +0 -16
  132. package/dist-es/stepped-tracker/useStepReducer.js.map +0 -1
  133. package/dist-es/stepped-tracker/utils.js +0 -114
  134. package/dist-es/stepped-tracker/utils.js.map +0 -1
  135. package/dist-types/stepped-tracker/Step.Connector.d.ts +0 -1
  136. package/dist-types/stepped-tracker/Step.Description.d.ts +0 -4
  137. package/dist-types/stepped-tracker/Step.ExpandTrigger.d.ts +0 -5
  138. package/dist-types/stepped-tracker/Step.Icon.d.ts +0 -8
  139. package/dist-types/stepped-tracker/Step.Label.d.ts +0 -4
  140. package/dist-types/stepped-tracker/Step.SROnly.d.ts +0 -5
  141. package/dist-types/stepped-tracker/Step.d.ts +0 -2
  142. package/dist-types/stepped-tracker/Step.types.d.ts +0 -19
  143. package/dist-types/stepped-tracker/SteppedTracker.Provider.d.ts +0 -9
  144. package/dist-types/stepped-tracker/SteppedTracker.d.ts +0 -2
  145. package/dist-types/stepped-tracker/SteppedTracker.types.d.ts +0 -6
  146. package/dist-types/stepped-tracker/index.d.ts +0 -6
  147. package/dist-types/stepped-tracker/stepReducer.d.ts +0 -2
  148. package/dist-types/stepped-tracker/stepReducer.types.d.ts +0 -27
  149. package/dist-types/stepped-tracker/useStepReducer.d.ts +0 -3
  150. package/dist-types/stepped-tracker/utils.d.ts +0 -10
@@ -1,4 +0,0 @@
1
- var css_248z = ".saltStep {\n /* Copy of size calculations of <Icon /> */\n --step-icon-base-size: var(--salt-size-icon, 12px);\n --step-icon-size-multiplier: var(--saltIcon-size-multiplier, 1.5);\n --step-icon-size: calc(var(--step-icon-base-size) * var(--step-icon-size-multiplier));\n --step-depth: var(--saltStep-depth, 0);\n}\n\n.saltSteppedTracker-horizontal .saltStep {\n position: relative;\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n \"icon\"\n \"label\"\n \"description\";\n justify-items: center;\n align-items: center;\n text-align: center;\n flex: 1;\n padding: 0 var(--salt-spacing-25);\n}\n\n.saltSteppedTracker-vertical .saltStep {\n display: grid;\n grid-template-columns: var(--step-icon-size) 1fr min-content;\n grid-template-areas:\n \"icon label expand\"\n \"connector description .\"\n \"stepped-tracker stepped-tracker stepped-tracker\";\n justify-items: start;\n align-items: start;\n gap: 0 var(--salt-spacing-100);\n width: 100%;\n transition-duration: inherit;\n transition-timing-function: inherit;\n transition-property: grid-template-rows;\n}\n\n.saltSteppedTracker-vertical .saltStep-terminal {\n grid-template-areas:\n \"icon label label\"\n \"connector description description\"\n \"stepped-tracker stepped-tracker stepped-tracker\";\n}\n\n.saltSteppedTracker-vertical > .saltStep.saltStep-expanded {\n grid-template-rows:\n var(--salt-size-base)\n min-content\n 1fr;\n}\n\n.saltSteppedTracker-vertical > .saltStep.saltStep-collapsed {\n grid-template-rows:\n var(--salt-size-base)\n min-content\n 0fr;\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=Step.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Step.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,159 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { makePrefixer, useId, useControlled } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import clsx from 'clsx';
6
- import { useContext, useEffect } from 'react';
7
- import { StepConnector } from './Step.Connector.js';
8
- import { StepDescription } from './Step.Description.js';
9
- import { StepExpandTrigger } from './Step.ExpandTrigger.js';
10
- import { StepIcon } from './Step.Icon.js';
11
- import { StepLabel } from './Step.Label.js';
12
- import { StepSROnly } from './Step.SROnly.js';
13
- import css_248z from './Step.css.js';
14
- import { SteppedTracker } from './SteppedTracker.js';
15
- import { DepthContext } from './SteppedTracker.Provider.js';
16
-
17
- const withBaseName = makePrefixer("saltStep");
18
- function Step({
19
- id: idProp,
20
- label,
21
- description,
22
- status,
23
- stage = "pending",
24
- expanded: expandedProp,
25
- defaultExpanded,
26
- onToggle,
27
- className,
28
- style,
29
- substeps,
30
- children,
31
- ...props
32
- }) {
33
- const id = useId(idProp);
34
- const targetWindow = useWindow();
35
- const depth = useContext(DepthContext);
36
- const [expanded, setExpanded] = useControlled({
37
- name: "Step",
38
- state: "expanded",
39
- controlled: expandedProp,
40
- default: Boolean(defaultExpanded)
41
- });
42
- useComponentCssInjection({
43
- testId: "salt-step",
44
- css: css_248z,
45
- window: targetWindow
46
- });
47
- useEffect(() => {
48
- if (process.env.NODE_ENV !== "production") {
49
- if (depth === -1) {
50
- console.warn(
51
- "<Step /> should be used within a <SteppedTracker /> component!"
52
- );
53
- }
54
- if (depth > 2) {
55
- console.warn("<Step /> should not be nested more than 2 levels deep!");
56
- }
57
- }
58
- }, [depth]);
59
- const ariaCurrent = stage === "active" ? "step" : void 0;
60
- const iconSizeMultiplier = depth === 0 ? 1.5 : 1;
61
- const hasNestedSteps = !!children || !!substeps;
62
- const state = status || stage;
63
- const labelId = `${id}-label`;
64
- const descriptionId = `${id}-description`;
65
- const expandTriggerId = `${id}-expand-trigger`;
66
- const nestedSteppedTrackerId = `${id}-nested-stepped-tracker`;
67
- const srOnly = {
68
- stateId: `${id}-sr-only-state`,
69
- stateText: state !== "active" ? state : void 0,
70
- substepsId: `${id}-sr-only-substeps`,
71
- substepsText: "substeps",
72
- toggleSubstepsId: `${id}-sr-only-toggle-substeps`,
73
- toggleSubstepsText: "toggle substeps"
74
- };
75
- return /* @__PURE__ */ jsxs(
76
- "li",
77
- {
78
- id,
79
- "data-stage": stage,
80
- "data-status": status,
81
- "data-depth": depth,
82
- "aria-current": ariaCurrent,
83
- className: clsx(
84
- withBaseName(),
85
- withBaseName(`stage-${stage}`),
86
- withBaseName(`depth-${depth}`),
87
- status && withBaseName(`status-${status}`),
88
- !hasNestedSteps && withBaseName("terminal"),
89
- hasNestedSteps && expanded && withBaseName("expanded"),
90
- hasNestedSteps && !expanded && withBaseName("collapsed"),
91
- className
92
- ),
93
- style: {
94
- "--saltStep-depth": depth,
95
- ...style
96
- },
97
- ...props,
98
- children: [
99
- /* @__PURE__ */ jsxs(StepSROnly, { children: [
100
- label,
101
- " ",
102
- description,
103
- " ",
104
- srOnly.stateText
105
- ] }),
106
- /* @__PURE__ */ jsx(StepSROnly, { id: srOnly.toggleSubstepsId, "aria-hidden": true, children: srOnly.toggleSubstepsText }),
107
- /* @__PURE__ */ jsx(StepSROnly, { id: srOnly.substepsId, "aria-hidden": true, children: srOnly.substepsText }),
108
- /* @__PURE__ */ jsx(StepSROnly, { id: srOnly.stateId, "aria-hidden": true, children: srOnly.stateText }),
109
- /* @__PURE__ */ jsx(StepConnector, {}),
110
- /* @__PURE__ */ jsx(
111
- StepIcon,
112
- {
113
- stage,
114
- status,
115
- sizeMultiplier: iconSizeMultiplier,
116
- "aria-hidden": true
117
- }
118
- ),
119
- label && /* @__PURE__ */ jsx(StepLabel, { id: labelId, "aria-hidden": true, children: label }),
120
- description && /* @__PURE__ */ jsx(StepDescription, { id: descriptionId, "aria-hidden": true, children: description }),
121
- hasNestedSteps && /* @__PURE__ */ jsx(
122
- StepExpandTrigger,
123
- {
124
- id: expandTriggerId,
125
- "aria-expanded": expanded,
126
- "aria-controls": nestedSteppedTrackerId,
127
- "aria-labelledby": [
128
- labelId,
129
- descriptionId,
130
- srOnly.stateId,
131
- srOnly.toggleSubstepsId
132
- ].join(" "),
133
- expanded,
134
- onClick: (event) => {
135
- onToggle == null ? void 0 : onToggle(event);
136
- setExpanded(!expanded);
137
- }
138
- }
139
- ),
140
- hasNestedSteps && /* @__PURE__ */ jsxs(
141
- SteppedTracker,
142
- {
143
- id: nestedSteppedTrackerId,
144
- "aria-labelledby": [labelId, srOnly.substepsId].join(" "),
145
- "aria-hidden": !expanded,
146
- hidden: !expanded,
147
- children: [
148
- children,
149
- substeps == null ? void 0 : substeps.map((step) => /* @__PURE__ */ jsx(Step, { ...step }, step.id))
150
- ]
151
- }
152
- )
153
- ]
154
- }
155
- );
156
- }
157
-
158
- export { Step };
159
- //# sourceMappingURL=Step.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Step.js","sources":["../src/stepped-tracker/Step.tsx"],"sourcesContent":["import { makePrefixer, useControlled, useId } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport clsx from \"clsx\";\nimport { type CSSProperties, useContext, useEffect } from \"react\";\n\nimport { StepConnector } from \"./Step.Connector\";\nimport { StepDescription } from \"./Step.Description\";\nimport { StepExpandTrigger } from \"./Step.ExpandTrigger\";\nimport { StepIcon } from \"./Step.Icon\";\nimport { StepLabel } from \"./Step.Label\";\nimport { StepSROnly } from \"./Step.SROnly\";\nimport stepCSS from \"./Step.css\";\nimport { SteppedTracker } from \"./SteppedTracker\";\nimport { DepthContext } from \"./SteppedTracker.Provider\";\n\nimport type { StepProps } from \"./Step.types\";\n\nconst withBaseName = makePrefixer(\"saltStep\");\n\nexport function Step({\n id: idProp,\n label,\n description,\n status,\n stage = \"pending\",\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n className,\n style,\n substeps,\n children,\n ...props\n}: StepProps) {\n const id = useId(idProp);\n const targetWindow = useWindow();\n const depth = useContext(DepthContext);\n\n const [expanded, setExpanded] = useControlled({\n name: \"Step\",\n state: \"expanded\",\n controlled: expandedProp,\n default: Boolean(defaultExpanded),\n });\n\n useComponentCssInjection({\n testId: \"salt-step\",\n css: stepCSS,\n window: targetWindow,\n });\n\n useEffect(() => {\n if (process.env.NODE_ENV !== \"production\") {\n if (depth === -1) {\n console.warn(\n \"<Step /> should be used within a <SteppedTracker /> component!\",\n );\n }\n\n if (depth > 2) {\n console.warn(\"<Step /> should not be nested more than 2 levels deep!\");\n }\n }\n }, [depth]);\n\n const ariaCurrent = stage === \"active\" ? \"step\" : undefined;\n const iconSizeMultiplier = depth === 0 ? 1.5 : 1;\n const hasNestedSteps = !!children || !!substeps;\n const state = status || stage;\n\n const labelId = `${id}-label`;\n const descriptionId = `${id}-description`;\n const expandTriggerId = `${id}-expand-trigger`;\n const nestedSteppedTrackerId = `${id}-nested-stepped-tracker`;\n\n const srOnly = {\n stateId: `${id}-sr-only-state`,\n stateText: state !== \"active\" ? state : undefined,\n substepsId: `${id}-sr-only-substeps`,\n substepsText: \"substeps\",\n toggleSubstepsId: `${id}-sr-only-toggle-substeps`,\n toggleSubstepsText: \"toggle substeps\",\n };\n\n return (\n <li\n id={id}\n data-stage={stage}\n data-status={status}\n data-depth={depth}\n aria-current={ariaCurrent}\n className={clsx(\n withBaseName(),\n withBaseName(`stage-${stage}`),\n withBaseName(`depth-${depth}`),\n status && withBaseName(`status-${status}`),\n !hasNestedSteps && withBaseName(\"terminal\"),\n hasNestedSteps && expanded && withBaseName(\"expanded\"),\n hasNestedSteps && !expanded && withBaseName(\"collapsed\"),\n className,\n )}\n style={\n {\n \"--saltStep-depth\": depth,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n <StepSROnly>\n {label} {description} {srOnly.stateText}\n </StepSROnly>\n <StepSROnly id={srOnly.toggleSubstepsId} aria-hidden>\n {srOnly.toggleSubstepsText}\n </StepSROnly>\n <StepSROnly id={srOnly.substepsId} aria-hidden>\n {srOnly.substepsText}\n </StepSROnly>\n <StepSROnly id={srOnly.stateId} aria-hidden>\n {srOnly.stateText}\n </StepSROnly>\n <StepConnector />\n <StepIcon\n stage={stage}\n status={status}\n sizeMultiplier={iconSizeMultiplier}\n aria-hidden\n />\n {label && (\n <StepLabel id={labelId} aria-hidden>\n {label}\n </StepLabel>\n )}\n {description && (\n <StepDescription id={descriptionId} aria-hidden>\n {description}\n </StepDescription>\n )}\n {hasNestedSteps && (\n <StepExpandTrigger\n id={expandTriggerId}\n aria-expanded={expanded}\n aria-controls={nestedSteppedTrackerId}\n aria-labelledby={[\n labelId,\n descriptionId,\n srOnly.stateId,\n srOnly.toggleSubstepsId,\n ].join(\" \")}\n expanded={expanded}\n onClick={(event) => {\n onToggle?.(event);\n setExpanded(!expanded);\n }}\n />\n )}\n {hasNestedSteps && (\n <SteppedTracker\n id={nestedSteppedTrackerId}\n aria-labelledby={[labelId, srOnly.substepsId].join(\" \")}\n aria-hidden={!expanded}\n hidden={!expanded}\n >\n {children}\n {substeps?.map((step) => (\n <Step key={step.id} {...step} />\n ))}\n </SteppedTracker>\n )}\n </li>\n );\n}\n"],"names":["stepCSS"],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useContext } from 'react';
3
-
4
- const DepthContext = createContext(-1);
5
- const OrientationContext = createContext("horizontal");
6
- function SteppedTrackerProvider({
7
- orientation: orientationProp,
8
- children
9
- }) {
10
- const depth = useContext(DepthContext);
11
- return /* @__PURE__ */ jsx(OrientationContext.Provider, { value: orientationProp, children: /* @__PURE__ */ jsx(DepthContext.Provider, { value: depth + 1, children }) });
12
- }
13
-
14
- export { DepthContext, OrientationContext, SteppedTrackerProvider };
15
- //# sourceMappingURL=SteppedTracker.Provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SteppedTracker.Provider.js","sources":["../src/stepped-tracker/SteppedTracker.Provider.tsx"],"sourcesContent":["import { type ReactNode, createContext, useContext } from \"react\";\n\nimport type { StepDepth } from \"./Step.types\";\nimport type { SteppedTrackerOrientation } from \"./SteppedTracker.types\";\n\nexport const DepthContext = createContext<StepDepth>(-1);\nexport const OrientationContext =\n createContext<SteppedTrackerOrientation>(\"horizontal\");\n\nexport interface SteppedTrackerProviderProps {\n orientation: SteppedTrackerOrientation;\n children: ReactNode;\n}\n\nexport function SteppedTrackerProvider({\n orientation: orientationProp,\n children,\n}: SteppedTrackerProviderProps) {\n const depth = useContext(DepthContext);\n\n return (\n <OrientationContext.Provider value={orientationProp}>\n <DepthContext.Provider value={depth + 1}>\n {children}\n </DepthContext.Provider>\n </OrientationContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;AAKa,MAAA,YAAA,GAAe,cAAyB,CAAE,CAAA;AAC1C,MAAA,kBAAA,GACX,cAAyC,YAAY;AAOhD,SAAS,sBAAuB,CAAA;AAAA,EACrC,WAAa,EAAA,eAAA;AAAA,EACb;AACF,CAAgC,EAAA;AAC9B,EAAM,MAAA,KAAA,GAAQ,WAAW,YAAY,CAAA;AAErC,EAAA,uBACG,GAAA,CAAA,kBAAA,CAAmB,QAAnB,EAAA,EAA4B,OAAO,eAClC,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAa,CAAA,QAAA,EAAb,EAAsB,KAAA,EAAO,KAAQ,GAAA,CAAA,EACnC,UACH,CACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +0,0 @@
1
- var css_248z = ".saltSteppedTracker {\n grid-area: stepped-tracker;\n width: 100%;\n height: 100%;\n\n margin: 0;\n padding: 0;\n list-style-type: none;\n transition-duration: var(--salt-duration-perceptible);\n transition-timing-function: ease-in-out;\n transition-property: opacity, visibility;\n}\n\n@media (prefers-reduced-motion) {\n .saltSteppedTracker {\n transition-duration: var(--salt-duration-instant);\n }\n}\n\n.saltSteppedTracker-horizontal {\n display: flex;\n flex-direction: row;\n}\n\n.saltSteppedTracker-vertical {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.saltSteppedTracker-vertical > .saltStep.saltStep-expanded > .saltSteppedTracker {\n opacity: 1;\n visibility: visible;\n}\n\n.saltSteppedTracker-vertical > .saltStep.saltStep-collapsed > .saltSteppedTracker {\n opacity: 0;\n visibility: hidden;\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=SteppedTracker.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SteppedTracker.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,34 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { makePrefixer } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import { clsx } from 'clsx';
6
- import { forwardRef, useContext } from 'react';
7
- import { OrientationContext, SteppedTrackerProvider } from './SteppedTracker.Provider.js';
8
- import css_248z from './SteppedTracker.css.js';
9
-
10
- const withBaseName = makePrefixer("saltSteppedTracker");
11
- const SteppedTracker = forwardRef(
12
- function SteppedTracker2({ orientation: orientationProp, children, className, ...props }, ref) {
13
- const targetWindow = useWindow();
14
- const orientationContext = useContext(OrientationContext);
15
- const orientation = orientationProp || orientationContext;
16
- useComponentCssInjection({
17
- testId: "salt-SteppedTracker",
18
- css: css_248z,
19
- window: targetWindow
20
- });
21
- return /* @__PURE__ */ jsx(SteppedTrackerProvider, { orientation, children: /* @__PURE__ */ jsx(
22
- "ol",
23
- {
24
- className: clsx(withBaseName(), withBaseName(orientation), className),
25
- ref,
26
- ...props,
27
- children
28
- }
29
- ) });
30
- }
31
- );
32
-
33
- export { SteppedTracker };
34
- //# sourceMappingURL=SteppedTracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SteppedTracker.js","sources":["../src/stepped-tracker/SteppedTracker.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, useContext } from \"react\";\n\nimport {\n OrientationContext,\n SteppedTrackerProvider,\n} from \"./SteppedTracker.Provider\";\nimport SteppedTrackerCSS from \"./SteppedTracker.css\";\nimport type { SteppedTrackerProps } from \"./SteppedTracker.types\";\n\nconst withBaseName = makePrefixer(\"saltSteppedTracker\");\n\nexport const SteppedTracker = forwardRef<HTMLOListElement, SteppedTrackerProps>(\n function SteppedTracker(\n { orientation: orientationProp, children, className, ...props },\n ref,\n ) {\n const targetWindow = useWindow();\n const orientationContext = useContext(OrientationContext);\n const orientation = orientationProp || orientationContext;\n\n useComponentCssInjection({\n testId: \"salt-SteppedTracker\",\n css: SteppedTrackerCSS,\n window: targetWindow,\n });\n\n return (\n <SteppedTrackerProvider orientation={orientation}>\n <ol\n className={clsx(withBaseName(), withBaseName(orientation), className)}\n ref={ref}\n {...props}\n >\n {children}\n </ol>\n </SteppedTrackerProvider>\n );\n },\n);\n"],"names":["SteppedTracker","SteppedTrackerCSS"],"mappings":";;;;;;;;;AAaA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA;AAE/C,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,SAASA,eACP,CAAA,EAAE,WAAa,EAAA,eAAA,EAAiB,UAAU,SAAW,EAAA,GAAG,KAAM,EAAA,EAC9D,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAM,MAAA,kBAAA,GAAqB,WAAW,kBAAkB,CAAA;AACxD,IAAA,MAAM,cAAc,eAAmB,IAAA,kBAAA;AAEvC,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IACE,uBAAA,GAAA,CAAC,0BAAuB,WACtB,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,WAAW,IAAK,CAAA,YAAA,IAAgB,YAAa,CAAA,WAAW,GAAG,SAAS,CAAA;AAAA,QACpE,GAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KAEL,EAAA,CAAA;AAAA;AAGN;;;;"}
@@ -1,153 +0,0 @@
1
- import { autoStageSteps, resetSteps, flattenSteps, assignStepStatus, assignStepsStage } from './utils.js';
2
-
3
- function stepReducer(state, action) {
4
- var _a, _b;
5
- switch (action.type) {
6
- case "next": {
7
- if (((_a = state.activeStep) == null ? void 0 : _a.status) === "error") {
8
- return state;
9
- }
10
- const activeStepIndex = state.activeStepIndex + 1;
11
- const lastStepIndex = state.flatSteps.length - 1;
12
- if (activeStepIndex > lastStepIndex) {
13
- const steps2 = assignStepsStage(state.steps, "completed");
14
- const flatSteps2 = flattenSteps(steps2);
15
- return {
16
- steps: steps2,
17
- flatSteps: flatSteps2,
18
- activeStepIndex: lastStepIndex + 1,
19
- activeStep: null,
20
- previousStep: flatSteps2[lastStepIndex],
21
- nextStep: null,
22
- started: true,
23
- ended: true
24
- };
25
- }
26
- const activeStepId = state.flatSteps[activeStepIndex].id;
27
- const steps = autoStageSteps(resetSteps(state.steps), { activeStepId });
28
- const flatSteps = flattenSteps(steps);
29
- return {
30
- steps,
31
- flatSteps,
32
- activeStepIndex,
33
- activeStep: flatSteps[activeStepIndex],
34
- previousStep: flatSteps[activeStepIndex - 1],
35
- nextStep: flatSteps[activeStepIndex + 1] ?? null,
36
- started: true,
37
- ended: false
38
- };
39
- }
40
- case "previous": {
41
- if (((_b = state.activeStep) == null ? void 0 : _b.status) === "error") {
42
- return state;
43
- }
44
- const activeStepIndex = state.activeStepIndex - 1;
45
- if (activeStepIndex < 0) {
46
- const steps2 = assignStepsStage(state.steps, "pending");
47
- const flatSteps2 = flattenSteps(steps2);
48
- return {
49
- steps: steps2,
50
- flatSteps: flatSteps2,
51
- activeStepIndex: -1,
52
- activeStep: null,
53
- previousStep: null,
54
- nextStep: flatSteps2[0],
55
- started: false,
56
- ended: false
57
- };
58
- }
59
- const activeStepId = state.flatSteps[activeStepIndex].id;
60
- const steps = autoStageSteps(resetSteps(state.steps), { activeStepId });
61
- const flatSteps = flattenSteps(steps);
62
- return {
63
- steps,
64
- flatSteps,
65
- activeStepIndex,
66
- activeStep: flatSteps[activeStepIndex],
67
- previousStep: flatSteps[activeStepIndex - 1] ?? null,
68
- nextStep: flatSteps[activeStepIndex + 1],
69
- started: true,
70
- ended: false
71
- };
72
- }
73
- case "status/error": {
74
- const { activeStep, activeStepIndex } = state;
75
- if (!activeStep) {
76
- return state;
77
- }
78
- const activeStepId = activeStep.id;
79
- const steps = assignStepStatus(state.steps, activeStepId, "error");
80
- const flatSteps = flattenSteps(steps);
81
- return {
82
- ...state,
83
- steps,
84
- flatSteps,
85
- activeStepIndex,
86
- activeStep: flatSteps[activeStepIndex],
87
- previousStep: flatSteps[activeStepIndex - 1] ?? null,
88
- nextStep: flatSteps[activeStepIndex + 1]
89
- };
90
- }
91
- case "status/warning": {
92
- const { activeStep, activeStepIndex } = state;
93
- if (!activeStep) {
94
- return state;
95
- }
96
- const activeStepId = activeStep.id;
97
- const steps = assignStepStatus(state.steps, activeStepId, "warning");
98
- const flatSteps = flattenSteps(steps);
99
- return {
100
- ...state,
101
- steps,
102
- flatSteps,
103
- activeStepIndex,
104
- activeStep: flatSteps[activeStepIndex],
105
- previousStep: flatSteps[activeStepIndex - 1] ?? null,
106
- nextStep: flatSteps[activeStepIndex + 1]
107
- };
108
- }
109
- case "status/clear": {
110
- const { activeStep, activeStepIndex } = state;
111
- if (!activeStep) {
112
- return state;
113
- }
114
- const activeStepId = activeStep.id;
115
- const steps = assignStepStatus(state.steps, activeStepId, void 0);
116
- const flatSteps = flattenSteps(steps);
117
- return {
118
- ...state,
119
- steps,
120
- flatSteps,
121
- activeStepIndex,
122
- activeStep: flatSteps[activeStepIndex],
123
- previousStep: flatSteps[activeStepIndex - 1] ?? null,
124
- nextStep: flatSteps[activeStepIndex + 1]
125
- };
126
- }
127
- case "reset": {
128
- const firstStepId = state.flatSteps[0].id;
129
- const steps = autoStageSteps(
130
- resetSteps(state.steps, { resetStatus: true }),
131
- { activeStepId: firstStepId }
132
- );
133
- const flatSteps = flattenSteps(steps);
134
- return {
135
- steps,
136
- flatSteps,
137
- activeStepIndex: 0,
138
- activeStep: flatSteps[0],
139
- previousStep: null,
140
- nextStep: flatSteps[1],
141
- started: true,
142
- ended: false
143
- };
144
- }
145
- default: {
146
- const exhaustiveCheck = action;
147
- throw new Error(`Unhandled action: ${exhaustiveCheck}`);
148
- }
149
- }
150
- }
151
-
152
- export { stepReducer as default };
153
- //# sourceMappingURL=stepReducer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepReducer.js","sources":["../src/stepped-tracker/stepReducer.ts"],"sourcesContent":["import type { StepReducerAction, StepReducerState } from \"./stepReducer.types\";\nimport {\n assignStepStatus,\n assignStepsStage,\n autoStageSteps,\n flattenSteps,\n resetSteps,\n} from \"./utils\";\n\nexport default function stepReducer(\n state: StepReducerState,\n action: StepReducerAction,\n): StepReducerState {\n switch (action.type) {\n case \"next\": {\n if (state.activeStep?.status === \"error\") {\n return state;\n }\n\n const activeStepIndex = state.activeStepIndex + 1;\n const lastStepIndex = state.flatSteps.length - 1;\n\n if (activeStepIndex > lastStepIndex) {\n const steps = assignStepsStage(state.steps, \"completed\");\n const flatSteps = flattenSteps(steps);\n\n return {\n steps,\n flatSteps,\n activeStepIndex: lastStepIndex + 1,\n activeStep: null,\n previousStep: flatSteps[lastStepIndex],\n nextStep: null,\n started: true,\n ended: true,\n };\n }\n\n const activeStepId = state.flatSteps[activeStepIndex].id;\n const steps = autoStageSteps(resetSteps(state.steps), { activeStepId });\n const flatSteps = flattenSteps(steps);\n\n return {\n steps,\n flatSteps,\n activeStepIndex,\n activeStep: flatSteps[activeStepIndex],\n previousStep: flatSteps[activeStepIndex - 1],\n nextStep: flatSteps[activeStepIndex + 1] ?? null,\n started: true,\n ended: false,\n };\n }\n\n case \"previous\": {\n if (state.activeStep?.status === \"error\") {\n return state;\n }\n\n const activeStepIndex = state.activeStepIndex - 1;\n\n if (activeStepIndex < 0) {\n const steps = assignStepsStage(state.steps, \"pending\");\n const flatSteps = flattenSteps(steps);\n\n return {\n steps,\n flatSteps,\n activeStepIndex: -1,\n activeStep: null,\n previousStep: null,\n nextStep: flatSteps[0],\n started: false,\n ended: false,\n };\n }\n\n const activeStepId = state.flatSteps[activeStepIndex].id;\n const steps = autoStageSteps(resetSteps(state.steps), { activeStepId });\n const flatSteps = flattenSteps(steps);\n\n return {\n steps,\n flatSteps,\n activeStepIndex,\n activeStep: flatSteps[activeStepIndex],\n previousStep: flatSteps[activeStepIndex - 1] ?? null,\n nextStep: flatSteps[activeStepIndex + 1],\n started: true,\n ended: false,\n };\n }\n\n case \"status/error\": {\n const { activeStep, activeStepIndex } = state;\n\n if (!activeStep) {\n return state;\n }\n\n const activeStepId = activeStep.id;\n\n const steps = assignStepStatus(state.steps, activeStepId, \"error\");\n const flatSteps = flattenSteps(steps);\n\n return {\n ...state,\n steps,\n flatSteps,\n activeStepIndex,\n activeStep: flatSteps[activeStepIndex],\n previousStep: flatSteps[activeStepIndex - 1] ?? null,\n nextStep: flatSteps[activeStepIndex + 1],\n };\n }\n\n case \"status/warning\": {\n const { activeStep, activeStepIndex } = state;\n\n if (!activeStep) {\n return state;\n }\n\n const activeStepId = activeStep.id;\n\n const steps = assignStepStatus(state.steps, activeStepId, \"warning\");\n const flatSteps = flattenSteps(steps);\n\n return {\n ...state,\n steps,\n flatSteps,\n activeStepIndex,\n activeStep: flatSteps[activeStepIndex],\n previousStep: flatSteps[activeStepIndex - 1] ?? null,\n nextStep: flatSteps[activeStepIndex + 1],\n };\n }\n\n case \"status/clear\": {\n const { activeStep, activeStepIndex } = state;\n\n if (!activeStep) {\n return state;\n }\n\n const activeStepId = activeStep.id;\n\n const steps = assignStepStatus(state.steps, activeStepId, undefined);\n const flatSteps = flattenSteps(steps);\n\n return {\n ...state,\n steps,\n flatSteps,\n activeStepIndex,\n activeStep: flatSteps[activeStepIndex],\n previousStep: flatSteps[activeStepIndex - 1] ?? null,\n nextStep: flatSteps[activeStepIndex + 1],\n };\n }\n\n case \"reset\": {\n const firstStepId = state.flatSteps[0].id;\n\n const steps = autoStageSteps(\n resetSteps(state.steps, { resetStatus: true }),\n { activeStepId: firstStepId },\n );\n const flatSteps = flattenSteps(steps);\n\n return {\n steps,\n flatSteps,\n activeStepIndex: 0,\n activeStep: flatSteps[0],\n previousStep: null,\n nextStep: flatSteps[1],\n started: true,\n ended: false,\n };\n }\n\n default: {\n const exhaustiveCheck: never = action;\n throw new Error(`Unhandled action: ${exhaustiveCheck}`);\n }\n }\n}\n"],"names":["steps","flatSteps"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { useCallback, useReducer } from 'react';
2
- import stepReducer from './stepReducer.js';
3
- import { initStepReducerState } from './utils.js';
4
-
5
- function useStepReducer(initialSteps, options) {
6
- const initializer = useCallback(
7
- (initialSteps2) => {
8
- return initStepReducerState(initialSteps2, options);
9
- },
10
- [options]
11
- );
12
- return useReducer(stepReducer, initialSteps, initializer);
13
- }
14
-
15
- export { useStepReducer };
16
- //# sourceMappingURL=useStepReducer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStepReducer.js","sources":["../src/stepped-tracker/useStepReducer.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\n\nimport stepReducer from \"./stepReducer\";\n\nimport type { StepRecord } from \"./Step.types\";\nimport type { StepReducerOptions } from \"./stepReducer.types\";\nimport { initStepReducerState } from \"./utils\";\n\nexport function useStepReducer(\n initialSteps: StepRecord[],\n options?: StepReducerOptions,\n) {\n const initializer = useCallback(\n (initialSteps: StepRecord[]) => {\n return initStepReducerState(initialSteps, options);\n },\n [options],\n );\n\n return useReducer(stepReducer, initialSteps, initializer);\n}\n"],"names":["initialSteps"],"mappings":";;;;AAQgB,SAAA,cAAA,CACd,cACA,OACA,EAAA;AACA,EAAA,MAAM,WAAc,GAAA,WAAA;AAAA,IAClB,CAACA,aAA+B,KAAA;AAC9B,MAAO,OAAA,oBAAA,CAAqBA,eAAc,OAAO,CAAA;AAAA,KACnD;AAAA,IACA,CAAC,OAAO;AAAA,GACV;AAEA,EAAO,OAAA,UAAA,CAAW,WAAa,EAAA,YAAA,EAAc,WAAW,CAAA;AAC1D;;;;"}
@@ -1,114 +0,0 @@
1
- function assignStepsStage(steps, stage) {
2
- return steps.map((step) => {
3
- if (!step.substeps) {
4
- return { ...step, stage };
5
- }
6
- return {
7
- ...step,
8
- stage,
9
- substeps: assignStepsStage(step.substeps, stage)
10
- };
11
- });
12
- }
13
- function assignStepStatus(steps, stepId, status) {
14
- return steps.map((step) => {
15
- if (step.id === stepId) {
16
- return { ...step, status };
17
- }
18
- if (step.substeps) {
19
- return {
20
- ...step,
21
- substeps: assignStepStatus(step.substeps, stepId, status)
22
- };
23
- }
24
- return step;
25
- });
26
- }
27
- function resetSteps(steps, options = { resetStatus: false }) {
28
- const { resetStatus } = options;
29
- return steps.map((step) => {
30
- if (!step.substeps) {
31
- return {
32
- ...step,
33
- stage: void 0,
34
- status: !resetStatus ? step.status : void 0
35
- };
36
- }
37
- return {
38
- ...step,
39
- stage: void 0,
40
- substeps: resetSteps(step.substeps, options)
41
- };
42
- });
43
- }
44
- function autoStageSteps(steps, options) {
45
- function autoStageHelper(steps2) {
46
- const pivotIndex = steps2.findIndex(
47
- (step) => (step == null ? void 0 : step.id) && (options == null ? void 0 : options.activeStepId) && step.id === options.activeStepId || step.stage === "active" || step.stage === "inprogress"
48
- );
49
- if (pivotIndex !== -1) {
50
- const activeStep = steps2[pivotIndex];
51
- activeStep.stage ||= "active";
52
- const previousSteps = assignStepsStage(
53
- steps2.slice(0, pivotIndex),
54
- "completed"
55
- );
56
- const nextSteps = assignStepsStage(
57
- steps2.slice(pivotIndex + 1),
58
- "pending"
59
- );
60
- return [...previousSteps, activeStep, ...nextSteps];
61
- }
62
- return steps2.reduce(
63
- (acc, step, index) => {
64
- if (step.substeps) {
65
- const substeps = autoStageHelper(step.substeps);
66
- if (substeps) {
67
- steps2[index].substeps = substeps;
68
- steps2[index].stage = "inprogress";
69
- return autoStageHelper(steps2);
70
- }
71
- }
72
- return acc;
73
- },
74
- null
75
- );
76
- }
77
- return autoStageHelper(steps) || assignStepsStage(steps, steps[0].stage || "pending");
78
- }
79
- function flattenSteps(steps) {
80
- return steps.reduce((acc, step) => {
81
- if (step.substeps) {
82
- acc.push(...flattenSteps(step.substeps));
83
- return acc;
84
- }
85
- acc.push(step);
86
- return acc;
87
- }, []);
88
- }
89
- function initStepReducerState(initialSteps, options) {
90
- const steps = autoStageSteps(initialSteps, options);
91
- const flatSteps = flattenSteps(steps);
92
- const started = !flatSteps.every((step) => step.stage === "pending");
93
- const ended = flatSteps.every((step) => step.stage === "completed");
94
- let activeStepIndex = flatSteps.findIndex((step) => step.stage === "active");
95
- if (activeStepIndex === -1 && ended) {
96
- activeStepIndex = flatSteps.length;
97
- }
98
- const activeStep = flatSteps[activeStepIndex] || null;
99
- const previousStep = flatSteps[activeStepIndex - 1] || null;
100
- const nextStep = flatSteps[activeStepIndex + 1] || null;
101
- return {
102
- steps,
103
- flatSteps,
104
- activeStep,
105
- previousStep,
106
- nextStep,
107
- activeStepIndex,
108
- ended,
109
- started
110
- };
111
- }
112
-
113
- export { assignStepStatus, assignStepsStage, autoStageSteps, flattenSteps, initStepReducerState, resetSteps };
114
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../src/stepped-tracker/utils.ts"],"sourcesContent":["import type { StepRecord, StepStage, StepStatus } from \"./Step.types\";\nimport type { StepReducerOptions, StepReducerState } from \"./stepReducer.types\";\n\nexport function assignStepsStage(\n steps: StepRecord[],\n stage?: StepStage,\n): StepRecord[] {\n return steps.map((step) => {\n if (!step.substeps) {\n return { ...step, stage };\n }\n\n return {\n ...step,\n stage,\n substeps: assignStepsStage(step.substeps, stage),\n };\n });\n}\n\nexport function assignStepStatus(\n steps: StepRecord[],\n stepId: string,\n status: StepStatus | undefined,\n): StepRecord[] {\n return steps.map((step) => {\n if (step.id === stepId) {\n return { ...step, status };\n }\n\n if (step.substeps) {\n return {\n ...step,\n substeps: assignStepStatus(step.substeps, stepId, status),\n };\n }\n\n return step;\n });\n}\n\nexport function resetSteps(\n steps: StepRecord[],\n options = { resetStatus: false },\n): StepRecord[] {\n const { resetStatus } = options;\n\n return steps.map((step) => {\n if (!step.substeps) {\n return {\n ...step,\n stage: undefined,\n status: !resetStatus ? step.status : undefined,\n };\n }\n\n return {\n ...step,\n stage: undefined,\n substeps: resetSteps(step.substeps, options),\n };\n });\n}\n\nexport function autoStageSteps(\n steps: StepRecord[],\n options?: StepReducerOptions,\n): StepRecord[] {\n function autoStageHelper(steps: StepRecord[]): StepRecord[] | null {\n const pivotIndex = steps.findIndex(\n (step) =>\n (step?.id &&\n options?.activeStepId &&\n step.id === options.activeStepId) ||\n step.stage === \"active\" ||\n step.stage === \"inprogress\",\n );\n\n if (pivotIndex !== -1) {\n const activeStep = steps[pivotIndex];\n\n activeStep.stage ||= \"active\";\n\n const previousSteps = assignStepsStage(\n steps.slice(0, pivotIndex),\n \"completed\",\n );\n const nextSteps = assignStepsStage(\n steps.slice(pivotIndex + 1),\n \"pending\",\n );\n\n return [...previousSteps, activeStep, ...nextSteps] as StepRecord[];\n }\n\n return steps.reduce(\n (acc, step, index) => {\n if (step.substeps) {\n const substeps = autoStageHelper(step.substeps);\n\n if (substeps) {\n steps[index].substeps = substeps;\n steps[index].stage = \"inprogress\";\n\n return autoStageHelper(steps);\n }\n }\n\n return acc;\n },\n null as StepRecord[] | null,\n );\n }\n\n return (\n autoStageHelper(steps) ||\n assignStepsStage(steps, steps[0].stage || \"pending\")\n );\n}\n\nexport function flattenSteps(steps: StepRecord[]): StepRecord[] {\n return steps.reduce((acc, step) => {\n if (step.substeps) {\n acc.push(...flattenSteps(step.substeps));\n\n return acc;\n }\n\n acc.push(step);\n\n return acc;\n }, [] as StepRecord[]);\n}\n\nexport function initStepReducerState(\n initialSteps: StepRecord[],\n options?: StepReducerOptions,\n) {\n const steps = autoStageSteps(initialSteps, options);\n const flatSteps = flattenSteps(steps);\n const started = !flatSteps.every((step) => step.stage === \"pending\");\n const ended = flatSteps.every((step) => step.stage === \"completed\");\n\n let activeStepIndex = flatSteps.findIndex((step) => step.stage === \"active\");\n\n if (activeStepIndex === -1 && ended) {\n activeStepIndex = flatSteps.length;\n }\n\n const activeStep = flatSteps[activeStepIndex] || null;\n const previousStep = flatSteps[activeStepIndex - 1] || null;\n const nextStep = flatSteps[activeStepIndex + 1] || null;\n\n return {\n steps,\n flatSteps,\n activeStep,\n previousStep,\n nextStep,\n activeStepIndex,\n ended,\n started,\n } as StepReducerState;\n}\n"],"names":["steps"],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function StepConnector(): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +0,0 @@
1
- import { type TextProps } from "@salt-ds/core";
2
- export interface StepDescriptionProps extends TextProps<"div"> {
3
- }
4
- export declare function StepDescription({ id, className, styleAs, ...props }: StepDescriptionProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +0,0 @@
1
- import { type ButtonProps } from "@salt-ds/core";
2
- export interface StepExpandTriggerProps extends ButtonProps {
3
- expanded: boolean;
4
- }
5
- export declare function StepExpandTrigger({ id, expanded, className, ...props }: StepExpandTriggerProps): import("react/jsx-runtime").JSX.Element;
@@ -1,8 +0,0 @@
1
- import type { IconProps } from "@salt-ds/icons";
2
- import type { StepStage, StepStatus } from "./Step.types";
3
- export interface StepIconProps extends IconProps {
4
- stage: StepStage;
5
- status?: StepStatus;
6
- sizeMultiplier?: IconProps["size"];
7
- }
8
- export declare function StepIcon({ status, stage, size, sizeMultiplier, className, ...props }: StepIconProps): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +0,0 @@
1
- import { type TextProps } from "@salt-ds/core";
2
- export interface StepLabelProps extends TextProps<"div"> {
3
- }
4
- export declare function StepLabel({ id, className, styleAs, children, ...props }: StepLabelProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +0,0 @@
1
- import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
- export interface StepSROnlyProps extends ComponentPropsWithoutRef<"div"> {
3
- children?: ReactNode;
4
- }
5
- export declare function StepSROnly({ children, ...props }: StepSROnlyProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- import type { StepProps } from "./Step.types";
2
- export declare function Step({ id: idProp, label, description, status, stage, expanded: expandedProp, defaultExpanded, onToggle, className, style, substeps, children, ...props }: StepProps): import("react/jsx-runtime").JSX.Element;