@salt-ds/lab 1.0.0-alpha.57 → 1.0.0-alpha.59
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.
- package/CHANGELOG.md +301 -0
- package/css/salt-lab.css +192 -163
- package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
- package/dist-cjs/date-picker/DatePicker.js +3 -2
- package/dist-cjs/date-picker/DatePicker.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerOverlayProvider.js +5 -2
- package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerRangeInput.js +3 -3
- package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerSingleInput.js +2 -2
- package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
- package/dist-cjs/dialog/DialogHeader.css.js +1 -1
- package/dist-cjs/dialog/DialogHeader.js +2 -2
- package/dist-cjs/dialog/DialogHeader.js.map +1 -1
- package/dist-cjs/index.js +4 -8
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/overlay/OverlayHeader.css.js +1 -1
- package/dist-cjs/overlay/OverlayHeader.js +2 -2
- package/dist-cjs/overlay/OverlayHeader.js.map +1 -1
- package/dist-cjs/stepped-tracker/Step.Connector.css.js +6 -0
- package/dist-cjs/stepped-tracker/Step.Connector.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.Connector.js +21 -0
- package/dist-cjs/stepped-tracker/Step.Connector.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.Description.css.js +6 -0
- package/dist-cjs/stepped-tracker/Step.Description.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.Description.js +35 -0
- package/dist-cjs/stepped-tracker/Step.Description.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.ExpandTrigger.css.js +6 -0
- package/dist-cjs/stepped-tracker/Step.ExpandTrigger.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.ExpandTrigger.js +38 -0
- package/dist-cjs/stepped-tracker/Step.ExpandTrigger.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.Icon.css.js +6 -0
- package/dist-cjs/stepped-tracker/Step.Icon.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.Icon.js +57 -0
- package/dist-cjs/stepped-tracker/Step.Icon.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.Label.css.js +6 -0
- package/dist-cjs/stepped-tracker/Step.Label.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.Label.js +37 -0
- package/dist-cjs/stepped-tracker/Step.Label.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.SROnly.css.js +6 -0
- package/dist-cjs/stepped-tracker/Step.SROnly.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.SROnly.js +21 -0
- package/dist-cjs/stepped-tracker/Step.SROnly.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.css.js +6 -0
- package/dist-cjs/stepped-tracker/Step.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/Step.js +161 -0
- package/dist-cjs/stepped-tracker/Step.js.map +1 -0
- package/dist-cjs/stepped-tracker/SteppedTracker.Provider.js +19 -0
- package/dist-cjs/stepped-tracker/SteppedTracker.Provider.js.map +1 -0
- package/dist-cjs/stepped-tracker/SteppedTracker.css.js +1 -1
- package/dist-cjs/stepped-tracker/SteppedTracker.js +10 -33
- package/dist-cjs/stepped-tracker/SteppedTracker.js.map +1 -1
- package/dist-cjs/stepped-tracker/stepReducer.js +109 -0
- package/dist-cjs/stepped-tracker/stepReducer.js.map +1 -0
- package/dist-cjs/stepped-tracker/useStepReducer.js +16 -0
- package/dist-cjs/stepped-tracker/useStepReducer.js.map +1 -0
- package/dist-cjs/stepped-tracker/utils.js +86 -0
- package/dist-cjs/stepped-tracker/utils.js.map +1 -0
- package/dist-es/calendar/useCalendarSelection.js.map +1 -1
- package/dist-es/date-picker/DatePicker.js +3 -2
- package/dist-es/date-picker/DatePicker.js.map +1 -1
- package/dist-es/date-picker/DatePickerOverlayProvider.js +5 -2
- package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -1
- package/dist-es/date-picker/DatePickerRangeInput.js +4 -4
- package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
- package/dist-es/date-picker/DatePickerSingleInput.js +3 -3
- package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
- package/dist-es/dialog/DialogHeader.css.js +1 -1
- package/dist-es/dialog/DialogHeader.js +3 -3
- package/dist-es/dialog/DialogHeader.js.map +1 -1
- package/dist-es/index.js +2 -4
- package/dist-es/index.js.map +1 -1
- package/dist-es/overlay/OverlayHeader.css.js +1 -1
- package/dist-es/overlay/OverlayHeader.js +3 -3
- package/dist-es/overlay/OverlayHeader.js.map +1 -1
- package/dist-es/stepped-tracker/Step.Connector.css.js +4 -0
- package/dist-es/stepped-tracker/Step.Connector.css.js.map +1 -0
- package/dist-es/stepped-tracker/Step.Connector.js +19 -0
- package/dist-es/stepped-tracker/Step.Connector.js.map +1 -0
- package/dist-es/stepped-tracker/Step.Description.css.js +4 -0
- package/dist-es/stepped-tracker/Step.Description.css.js.map +1 -0
- package/dist-es/stepped-tracker/Step.Description.js +33 -0
- package/dist-es/stepped-tracker/Step.Description.js.map +1 -0
- package/dist-es/stepped-tracker/Step.ExpandTrigger.css.js +4 -0
- package/dist-es/stepped-tracker/Step.ExpandTrigger.css.js.map +1 -0
- package/dist-es/stepped-tracker/Step.ExpandTrigger.js +36 -0
- package/dist-es/stepped-tracker/Step.ExpandTrigger.js.map +1 -0
- package/dist-es/stepped-tracker/Step.Icon.css.js +4 -0
- package/dist-es/stepped-tracker/Step.Icon.css.js.map +1 -0
- package/dist-es/stepped-tracker/Step.Icon.js +55 -0
- package/dist-es/stepped-tracker/Step.Icon.js.map +1 -0
- package/dist-es/stepped-tracker/Step.Label.css.js +4 -0
- package/dist-es/stepped-tracker/Step.Label.css.js.map +1 -0
- package/dist-es/stepped-tracker/Step.Label.js +35 -0
- package/dist-es/stepped-tracker/Step.Label.js.map +1 -0
- package/dist-es/stepped-tracker/Step.SROnly.css.js +4 -0
- package/dist-es/stepped-tracker/Step.SROnly.css.js.map +1 -0
- package/dist-es/stepped-tracker/Step.SROnly.js +19 -0
- package/dist-es/stepped-tracker/Step.SROnly.js.map +1 -0
- package/dist-es/stepped-tracker/Step.css.js +4 -0
- package/dist-es/stepped-tracker/Step.css.js.map +1 -0
- package/dist-es/stepped-tracker/Step.js +159 -0
- package/dist-es/stepped-tracker/Step.js.map +1 -0
- package/dist-es/stepped-tracker/SteppedTracker.Provider.js +15 -0
- package/dist-es/stepped-tracker/SteppedTracker.Provider.js.map +1 -0
- package/dist-es/stepped-tracker/SteppedTracker.css.js +1 -1
- package/dist-es/stepped-tracker/SteppedTracker.js +11 -34
- package/dist-es/stepped-tracker/SteppedTracker.js.map +1 -1
- package/dist-es/stepped-tracker/stepReducer.js +107 -0
- package/dist-es/stepped-tracker/stepReducer.js.map +1 -0
- package/dist-es/stepped-tracker/useStepReducer.js +14 -0
- package/dist-es/stepped-tracker/useStepReducer.js.map +1 -0
- package/dist-es/stepped-tracker/utils.js +80 -0
- package/dist-es/stepped-tracker/utils.js.map +1 -0
- package/dist-types/date-picker/DatePicker.d.ts +1 -1
- package/dist-types/date-picker/DatePickerActions.d.ts +2 -2
- package/dist-types/date-picker/DatePickerOverlayProvider.d.ts +4 -0
- package/dist-types/date-picker/DatePickerRangeInput.d.ts +1 -1
- package/dist-types/date-picker/DatePickerRangePanel.d.ts +1 -1
- package/dist-types/date-picker/DatePickerSinglePanel.d.ts +1 -1
- package/dist-types/index.d.ts +0 -1
- package/dist-types/localization-provider/LocalizationProvider.d.ts +2 -2
- package/dist-types/stepped-tracker/Step.Connector.d.ts +1 -0
- package/dist-types/stepped-tracker/Step.Description.d.ts +4 -0
- package/dist-types/stepped-tracker/Step.ExpandTrigger.d.ts +5 -0
- package/dist-types/stepped-tracker/Step.Icon.d.ts +8 -0
- package/dist-types/stepped-tracker/Step.Label.d.ts +4 -0
- package/dist-types/stepped-tracker/Step.SROnly.d.ts +5 -0
- package/dist-types/stepped-tracker/Step.d.ts +2 -0
- package/dist-types/stepped-tracker/Step.types.d.ts +21 -0
- package/dist-types/stepped-tracker/SteppedTracker.Provider.d.ts +9 -0
- package/dist-types/stepped-tracker/SteppedTracker.d.ts +2 -16
- package/dist-types/stepped-tracker/SteppedTracker.types.d.ts +6 -0
- package/dist-types/stepped-tracker/index.d.ts +5 -2
- package/dist-types/stepped-tracker/stepReducer.d.ts +2 -0
- package/dist-types/stepped-tracker/stepReducer.types.d.ts +25 -0
- package/dist-types/stepped-tracker/useStepReducer.d.ts +3 -0
- package/dist-types/stepped-tracker/utils.d.ts +7 -0
- package/package.json +15 -13
- package/dist-cjs/skip-link/SkipLink.css.js +0 -6
- package/dist-cjs/skip-link/SkipLink.css.js.map +0 -1
- package/dist-cjs/skip-link/SkipLink.js +0 -36
- package/dist-cjs/skip-link/SkipLink.js.map +0 -1
- package/dist-cjs/skip-link/SkipLinks.css.js +0 -6
- package/dist-cjs/skip-link/SkipLinks.css.js.map +0 -1
- package/dist-cjs/skip-link/SkipLinks.js +0 -24
- package/dist-cjs/skip-link/SkipLinks.js.map +0 -1
- package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js +0 -59
- package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js.map +0 -1
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js +0 -6
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js.map +0 -1
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +0 -25
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js.map +0 -1
- package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +0 -43
- package/dist-cjs/stepped-tracker/SteppedTrackerContext.js.map +0 -1
- package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js +0 -6
- package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +0 -1
- package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js +0 -22
- package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js.map +0 -1
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js +0 -6
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js.map +0 -1
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +0 -96
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +0 -1
- package/dist-es/skip-link/SkipLink.css.js +0 -4
- package/dist-es/skip-link/SkipLink.css.js.map +0 -1
- package/dist-es/skip-link/SkipLink.js +0 -34
- package/dist-es/skip-link/SkipLink.js.map +0 -1
- package/dist-es/skip-link/SkipLinks.css.js +0 -4
- package/dist-es/skip-link/SkipLinks.css.js.map +0 -1
- package/dist-es/skip-link/SkipLinks.js +0 -22
- package/dist-es/skip-link/SkipLinks.js.map +0 -1
- package/dist-es/skip-link/internal/useManageFocusOnTarget.js +0 -57
- package/dist-es/skip-link/internal/useManageFocusOnTarget.js.map +0 -1
- package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js +0 -4
- package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js.map +0 -1
- package/dist-es/stepped-tracker/StepLabel/StepLabel.js +0 -23
- package/dist-es/stepped-tracker/StepLabel/StepLabel.js.map +0 -1
- package/dist-es/stepped-tracker/SteppedTrackerContext.js +0 -38
- package/dist-es/stepped-tracker/SteppedTrackerContext.js.map +0 -1
- package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js +0 -4
- package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +0 -1
- package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js +0 -20
- package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js.map +0 -1
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js +0 -4
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js.map +0 -1
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +0 -94
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +0 -1
- package/dist-types/skip-link/SkipLink.d.ts +0 -15
- package/dist-types/skip-link/SkipLinks.d.ts +0 -2
- package/dist-types/skip-link/index.d.ts +0 -2
- package/dist-types/skip-link/internal/useManageFocusOnTarget.d.ts +0 -10
- package/dist-types/stepped-tracker/StepLabel/StepLabel.d.ts +0 -9
- package/dist-types/stepped-tracker/StepLabel/index.d.ts +0 -1
- package/dist-types/stepped-tracker/SteppedTrackerContext.d.ts +0 -18
- package/dist-types/stepped-tracker/TrackerConnector/TrackerConnector.d.ts +0 -9
- package/dist-types/stepped-tracker/TrackerConnector/index.d.ts +0 -1
- package/dist-types/stepped-tracker/TrackerStep/TrackerStep.d.ts +0 -18
- package/dist-types/stepped-tracker/TrackerStep/index.d.ts +0 -2
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var core = require('@salt-ds/core');
|
|
5
|
+
var styles = require('@salt-ds/styles');
|
|
6
|
+
var window = require('@salt-ds/window');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var Step_Label = require('./Step.Label.css.js');
|
|
9
|
+
|
|
10
|
+
const withBaseName = core.makePrefixer("saltStepLabel");
|
|
11
|
+
function StepLabel({
|
|
12
|
+
id,
|
|
13
|
+
className,
|
|
14
|
+
styleAs = "label",
|
|
15
|
+
children,
|
|
16
|
+
...props
|
|
17
|
+
}) {
|
|
18
|
+
const targetWindow = window.useWindow();
|
|
19
|
+
styles.useComponentCssInjection({
|
|
20
|
+
testId: "salt-step-label",
|
|
21
|
+
css: Step_Label,
|
|
22
|
+
window: targetWindow
|
|
23
|
+
});
|
|
24
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
25
|
+
core.Text,
|
|
26
|
+
{
|
|
27
|
+
id,
|
|
28
|
+
styleAs: "label",
|
|
29
|
+
className: clsx(withBaseName(), className),
|
|
30
|
+
...props,
|
|
31
|
+
children
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.StepLabel = StepLabel;
|
|
37
|
+
//# sourceMappingURL=Step.Label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Step.Label.js","sources":["../src/stepped-tracker/Step.Label.tsx"],"sourcesContent":["import { Text, type TextProps, makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport clsx from \"clsx\";\n\nimport stepLabelCSS from \"./Step.Label.css\";\n\nexport interface StepLabelProps extends TextProps<\"div\"> {}\n\nconst withBaseName = makePrefixer(\"saltStepLabel\");\n\nexport function StepLabel({\n id,\n className,\n styleAs = \"label\",\n children,\n ...props\n}: StepLabelProps) {\n const targetWindow = useWindow();\n\n useComponentCssInjection({\n testId: \"salt-step-label\",\n css: stepLabelCSS,\n window: targetWindow,\n });\n\n return (\n <Text\n id={id}\n styleAs=\"label\"\n className={clsx(withBaseName(), className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","stepLabelCSS","jsx","Text"],"mappings":";;;;;;;;;AASA,MAAM,YAAA,GAAeA,kBAAa,eAAe,CAAA;AAE1C,SAAS,SAAU,CAAA;AAAA,EACxB,EAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAU,GAAA,OAAA;AAAA,EACV,QAAA;AAAA,EACA,GAAG;AACL,CAAmB,EAAA;AACjB,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAE/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAAC,UAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EACE,uBAAAC,cAAA;AAAA,IAACC,SAAA;AAAA,IAAA;AAAA,MACC,EAAA;AAAA,MACA,OAAQ,EAAA,OAAA;AAAA,MACR,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACxC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Step.SROnly.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var core = require('@salt-ds/core');
|
|
5
|
+
var styles = require('@salt-ds/styles');
|
|
6
|
+
var window = require('@salt-ds/window');
|
|
7
|
+
var Step_SROnly = require('./Step.SROnly.css.js');
|
|
8
|
+
|
|
9
|
+
const withBaseName = core.makePrefixer("saltStepSROnly");
|
|
10
|
+
function StepSROnly({ children, ...props }) {
|
|
11
|
+
const targetWindow = window.useWindow();
|
|
12
|
+
styles.useComponentCssInjection({
|
|
13
|
+
testId: "salt-step-sr-only",
|
|
14
|
+
css: Step_SROnly,
|
|
15
|
+
window: targetWindow
|
|
16
|
+
});
|
|
17
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: withBaseName(), ...props, children });
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
exports.StepSROnly = StepSROnly;
|
|
21
|
+
//# sourceMappingURL=Step.SROnly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Step.SROnly.js","sources":["../src/stepped-tracker/Step.SROnly.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\n\nimport stepSROnlyCSS from \"./Step.SROnly.css\";\n\nconst withBaseName = makePrefixer(\"saltStepSROnly\");\n\nexport interface StepSROnlyProps extends ComponentPropsWithoutRef<\"div\"> {\n children?: ReactNode;\n}\n\nexport function StepSROnly({ children, ...props }: StepSROnlyProps) {\n const targetWindow = useWindow();\n\n useComponentCssInjection({\n testId: \"salt-step-sr-only\",\n css: stepSROnlyCSS,\n window: targetWindow,\n });\n\n return (\n <div className={withBaseName()} {...props}>\n {children}\n </div>\n );\n}\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","stepSROnlyCSS"],"mappings":";;;;;;;;AAOA,MAAM,YAAA,GAAeA,kBAAa,gBAAgB,CAAA;AAM3C,SAAS,UAAW,CAAA,EAAE,QAAU,EAAA,GAAG,OAA0B,EAAA;AAClE,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAE/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAC,WAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,sCACG,KAAI,EAAA,EAAA,SAAA,EAAW,cAAiB,EAAA,GAAG,OACjC,QACH,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
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";
|
|
4
|
+
|
|
5
|
+
module.exports = css_248z;
|
|
6
|
+
//# sourceMappingURL=Step.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Step.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var core = require('@salt-ds/core');
|
|
5
|
+
var styles = require('@salt-ds/styles');
|
|
6
|
+
var window = require('@salt-ds/window');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var Step_Connector = require('./Step.Connector.js');
|
|
10
|
+
var Step_Description = require('./Step.Description.js');
|
|
11
|
+
var Step_ExpandTrigger = require('./Step.ExpandTrigger.js');
|
|
12
|
+
var Step_Icon = require('./Step.Icon.js');
|
|
13
|
+
var Step_Label = require('./Step.Label.js');
|
|
14
|
+
var Step_SROnly = require('./Step.SROnly.js');
|
|
15
|
+
var Step$1 = require('./Step.css.js');
|
|
16
|
+
var SteppedTracker = require('./SteppedTracker.js');
|
|
17
|
+
var SteppedTracker_Provider = require('./SteppedTracker.Provider.js');
|
|
18
|
+
|
|
19
|
+
const withBaseName = core.makePrefixer("saltStep");
|
|
20
|
+
function Step({
|
|
21
|
+
id: idProp,
|
|
22
|
+
label,
|
|
23
|
+
description,
|
|
24
|
+
status,
|
|
25
|
+
stage = "pending",
|
|
26
|
+
expanded: expandedProp,
|
|
27
|
+
defaultExpanded,
|
|
28
|
+
onToggle,
|
|
29
|
+
className,
|
|
30
|
+
style,
|
|
31
|
+
substeps,
|
|
32
|
+
children,
|
|
33
|
+
...props
|
|
34
|
+
}) {
|
|
35
|
+
const id = core.useId(idProp);
|
|
36
|
+
const targetWindow = window.useWindow();
|
|
37
|
+
const depth = react.useContext(SteppedTracker_Provider.DepthContext);
|
|
38
|
+
const [expanded, setExpanded] = core.useControlled({
|
|
39
|
+
name: "Step",
|
|
40
|
+
state: "expanded",
|
|
41
|
+
controlled: expandedProp,
|
|
42
|
+
default: Boolean(defaultExpanded)
|
|
43
|
+
});
|
|
44
|
+
styles.useComponentCssInjection({
|
|
45
|
+
testId: "salt-step",
|
|
46
|
+
css: Step$1,
|
|
47
|
+
window: targetWindow
|
|
48
|
+
});
|
|
49
|
+
react.useEffect(() => {
|
|
50
|
+
if (process.env.NODE_ENV !== "production") {
|
|
51
|
+
if (depth === -1) {
|
|
52
|
+
console.warn(
|
|
53
|
+
"<Step /> should be used within a <SteppedTracker /> component!"
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
if (depth > 2) {
|
|
57
|
+
console.warn("<Step /> should not be nested more than 2 levels deep!");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}, [depth]);
|
|
61
|
+
const ariaCurrent = stage === "active" ? "step" : void 0;
|
|
62
|
+
const iconSizeMultiplier = depth === 0 ? 1.5 : 1;
|
|
63
|
+
const hasNestedSteps = !!children || !!substeps;
|
|
64
|
+
const state = status || stage;
|
|
65
|
+
const labelId = `${id}-label`;
|
|
66
|
+
const descriptionId = `${id}-description`;
|
|
67
|
+
const expandTriggerId = `${id}-expand-trigger`;
|
|
68
|
+
const nestedSteppedTrackerId = `${id}-nested-stepped-tracker`;
|
|
69
|
+
const srOnly = {
|
|
70
|
+
stateId: `${id}-sr-only-state`,
|
|
71
|
+
stateText: state !== "active" ? state : void 0,
|
|
72
|
+
substepsId: `${id}-sr-only-substeps`,
|
|
73
|
+
substepsText: "substeps",
|
|
74
|
+
toggleSubstepsId: `${id}-sr-only-toggle-substeps`,
|
|
75
|
+
toggleSubstepsText: "toggle substeps"
|
|
76
|
+
};
|
|
77
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
78
|
+
"li",
|
|
79
|
+
{
|
|
80
|
+
id,
|
|
81
|
+
"data-stage": stage,
|
|
82
|
+
"data-status": status,
|
|
83
|
+
"data-depth": depth,
|
|
84
|
+
"aria-current": ariaCurrent,
|
|
85
|
+
className: clsx(
|
|
86
|
+
withBaseName(),
|
|
87
|
+
withBaseName(`stage-${stage}`),
|
|
88
|
+
withBaseName(`depth-${depth}`),
|
|
89
|
+
status && withBaseName(`status-${status}`),
|
|
90
|
+
!hasNestedSteps && withBaseName("terminal"),
|
|
91
|
+
hasNestedSteps && expanded && withBaseName("expanded"),
|
|
92
|
+
hasNestedSteps && !expanded && withBaseName("collapsed"),
|
|
93
|
+
className
|
|
94
|
+
),
|
|
95
|
+
style: {
|
|
96
|
+
"--saltStep-depth": depth,
|
|
97
|
+
...style
|
|
98
|
+
},
|
|
99
|
+
...props,
|
|
100
|
+
children: [
|
|
101
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Step_SROnly.StepSROnly, { children: [
|
|
102
|
+
label,
|
|
103
|
+
" ",
|
|
104
|
+
description,
|
|
105
|
+
" ",
|
|
106
|
+
srOnly.stateText
|
|
107
|
+
] }),
|
|
108
|
+
/* @__PURE__ */ jsxRuntime.jsx(Step_SROnly.StepSROnly, { id: srOnly.toggleSubstepsId, "aria-hidden": true, children: srOnly.toggleSubstepsText }),
|
|
109
|
+
/* @__PURE__ */ jsxRuntime.jsx(Step_SROnly.StepSROnly, { id: srOnly.substepsId, "aria-hidden": true, children: srOnly.substepsText }),
|
|
110
|
+
/* @__PURE__ */ jsxRuntime.jsx(Step_SROnly.StepSROnly, { id: srOnly.stateId, "aria-hidden": true, children: srOnly.stateText }),
|
|
111
|
+
/* @__PURE__ */ jsxRuntime.jsx(Step_Connector.StepConnector, {}),
|
|
112
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
113
|
+
Step_Icon.StepIcon,
|
|
114
|
+
{
|
|
115
|
+
stage,
|
|
116
|
+
status,
|
|
117
|
+
sizeMultiplier: iconSizeMultiplier,
|
|
118
|
+
"aria-hidden": true
|
|
119
|
+
}
|
|
120
|
+
),
|
|
121
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(Step_Label.StepLabel, { id: labelId, "aria-hidden": true, children: label }),
|
|
122
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(Step_Description.StepDescription, { id: descriptionId, "aria-hidden": true, children: description }),
|
|
123
|
+
hasNestedSteps && /* @__PURE__ */ jsxRuntime.jsx(
|
|
124
|
+
Step_ExpandTrigger.StepExpandTrigger,
|
|
125
|
+
{
|
|
126
|
+
id: expandTriggerId,
|
|
127
|
+
"aria-expanded": expanded,
|
|
128
|
+
"aria-controls": nestedSteppedTrackerId,
|
|
129
|
+
"aria-labelledby": [
|
|
130
|
+
labelId,
|
|
131
|
+
descriptionId,
|
|
132
|
+
srOnly.stateId,
|
|
133
|
+
srOnly.toggleSubstepsId
|
|
134
|
+
].join(" "),
|
|
135
|
+
expanded,
|
|
136
|
+
onClick: (event) => {
|
|
137
|
+
onToggle == null ? void 0 : onToggle(event);
|
|
138
|
+
setExpanded(!expanded);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
),
|
|
142
|
+
hasNestedSteps && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
143
|
+
SteppedTracker.SteppedTracker,
|
|
144
|
+
{
|
|
145
|
+
id: nestedSteppedTrackerId,
|
|
146
|
+
"aria-labelledby": [labelId, srOnly.substepsId].join(" "),
|
|
147
|
+
"aria-hidden": !expanded,
|
|
148
|
+
hidden: !expanded,
|
|
149
|
+
children: [
|
|
150
|
+
children,
|
|
151
|
+
substeps == null ? void 0 : substeps.map((step) => /* @__PURE__ */ jsxRuntime.jsx(Step, { ...step }, step.id))
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
exports.Step = Step;
|
|
161
|
+
//# sourceMappingURL=Step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":["makePrefixer","useId","useWindow","useContext","DepthContext","useControlled","useComponentCssInjection","stepCSS","useEffect","jsxs","StepSROnly","jsx","StepConnector","StepIcon","StepLabel","StepDescription","StepExpandTrigger","SteppedTracker"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
|
|
6
|
+
const DepthContext = react.createContext(-1);
|
|
7
|
+
const OrientationContext = react.createContext("horizontal");
|
|
8
|
+
function SteppedTrackerProvider({
|
|
9
|
+
orientation: orientationProp,
|
|
10
|
+
children
|
|
11
|
+
}) {
|
|
12
|
+
const depth = react.useContext(DepthContext);
|
|
13
|
+
return /* @__PURE__ */ jsxRuntime.jsx(OrientationContext.Provider, { value: orientationProp, children: /* @__PURE__ */ jsxRuntime.jsx(DepthContext.Provider, { value: depth + 1, children }) });
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
exports.DepthContext = DepthContext;
|
|
17
|
+
exports.OrientationContext = OrientationContext;
|
|
18
|
+
exports.SteppedTrackerProvider = SteppedTrackerProvider;
|
|
19
|
+
//# sourceMappingURL=SteppedTracker.Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":["createContext","useContext","jsx"],"mappings":";;;;;AAKa,MAAA,YAAA,GAAeA,oBAAyB,CAAE,CAAA;AAC1C,MAAA,kBAAA,GACXA,oBAAyC,YAAY;AAOhD,SAAS,sBAAuB,CAAA;AAAA,EACrC,WAAa,EAAA,eAAA;AAAA,EACb;AACF,CAAgC,EAAA;AAC9B,EAAM,MAAA,KAAA,GAAQC,iBAAW,YAAY,CAAA;AAErC,EAAA,uBACGC,cAAA,CAAA,kBAAA,CAAmB,QAAnB,EAAA,EAA4B,OAAO,eAClC,EAAA,QAAA,kBAAAA,cAAA,CAAC,YAAa,CAAA,QAAA,EAAb,EAAsB,KAAA,EAAO,KAAQ,GAAA,CAAA,EACnC,UACH,CACF,EAAA,CAAA;AAEJ;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".saltSteppedTracker {\n
|
|
3
|
+
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";
|
|
4
4
|
|
|
5
5
|
module.exports = css_248z;
|
|
6
6
|
//# sourceMappingURL=SteppedTracker.css.js.map
|
|
@@ -6,50 +6,27 @@ var styles = require('@salt-ds/styles');
|
|
|
6
6
|
var window = require('@salt-ds/window');
|
|
7
7
|
var clsx = require('clsx');
|
|
8
8
|
var react = require('react');
|
|
9
|
-
var
|
|
9
|
+
var SteppedTracker_Provider = require('./SteppedTracker.Provider.js');
|
|
10
10
|
var SteppedTracker$1 = require('./SteppedTracker.css.js');
|
|
11
11
|
|
|
12
12
|
const withBaseName = core.makePrefixer("saltSteppedTracker");
|
|
13
|
-
const useCheckInvalidChildren = (children) => {
|
|
14
|
-
react.useEffect(() => {
|
|
15
|
-
if (process.env.NODE_ENV !== "production") {
|
|
16
|
-
let hasInvalidChild = false;
|
|
17
|
-
react.Children.forEach(children, (child) => {
|
|
18
|
-
if (!react.isValidElement(child)) {
|
|
19
|
-
hasInvalidChild = true;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
if (hasInvalidChild) {
|
|
23
|
-
console.error(
|
|
24
|
-
"Invalid child: children of SteppedTracker must be a TrackerStep component"
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}, [children]);
|
|
29
|
-
};
|
|
30
13
|
const SteppedTracker = react.forwardRef(
|
|
31
|
-
function SteppedTracker2({
|
|
32
|
-
children,
|
|
33
|
-
className,
|
|
34
|
-
activeStep,
|
|
35
|
-
orientation = "horizontal",
|
|
36
|
-
...restProps
|
|
37
|
-
}, ref) {
|
|
14
|
+
function SteppedTracker2({ orientation: orientationProp, children, className, ...props }, ref) {
|
|
38
15
|
const targetWindow = window.useWindow();
|
|
16
|
+
const orientationContext = react.useContext(SteppedTracker_Provider.OrientationContext);
|
|
17
|
+
const orientation = orientationProp || orientationContext;
|
|
39
18
|
styles.useComponentCssInjection({
|
|
40
|
-
testId: "salt-
|
|
19
|
+
testId: "salt-SteppedTracker",
|
|
41
20
|
css: SteppedTracker$1,
|
|
42
21
|
window: targetWindow
|
|
43
22
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SteppedTrackerContext.SteppedTrackerProvider, { totalSteps, activeStep, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
-
"ul",
|
|
23
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SteppedTracker_Provider.SteppedTrackerProvider, { orientation, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
24
|
+
"ol",
|
|
48
25
|
{
|
|
49
|
-
className: clsx.clsx(withBaseName(),
|
|
26
|
+
className: clsx.clsx(withBaseName(), withBaseName(orientation), className),
|
|
50
27
|
ref,
|
|
51
|
-
...
|
|
52
|
-
children
|
|
28
|
+
...props,
|
|
29
|
+
children
|
|
53
30
|
}
|
|
54
31
|
) });
|
|
55
32
|
}
|
|
@@ -1 +1 @@
|
|
|
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 {
|
|
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":["makePrefixer","forwardRef","SteppedTracker","useWindow","useContext","OrientationContext","useComponentCssInjection","SteppedTrackerCSS","jsx","SteppedTrackerProvider","clsx"],"mappings":";;;;;;;;;;;AAaA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AAE/C,MAAM,cAAiB,GAAAC,gBAAA;AAAA,EAC5B,SAASC,eACP,CAAA,EAAE,WAAa,EAAA,eAAA,EAAiB,UAAU,SAAW,EAAA,GAAG,KAAM,EAAA,EAC9D,GACA,EAAA;AACA,IAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,IAAM,MAAA,kBAAA,GAAqBC,iBAAWC,0CAAkB,CAAA;AACxD,IAAA,MAAM,cAAc,eAAmB,IAAA,kBAAA;AAEvC,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAAC,gBAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IACE,uBAAAC,cAAA,CAACC,kDAAuB,WACtB,EAAA,QAAA,kBAAAD,cAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,WAAWE,SAAK,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;;;;"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('./utils.js');
|
|
4
|
+
|
|
5
|
+
function stepReducer(state, action) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
if (action.type === "next") {
|
|
8
|
+
if (((_a = state.activeStep) == null ? void 0 : _a.status) === "error") {
|
|
9
|
+
return state;
|
|
10
|
+
}
|
|
11
|
+
const steps = utils.resetSteps(state.steps);
|
|
12
|
+
const flatSteps = utils.flattenSteps(steps);
|
|
13
|
+
if (state.nextStep) {
|
|
14
|
+
const activeStepIndex2 = state.activeStepIndex + 1;
|
|
15
|
+
const activeStep2 = flatSteps[activeStepIndex2];
|
|
16
|
+
const previousStep2 = flatSteps[activeStepIndex2 - 1] || null;
|
|
17
|
+
const nextStep2 = flatSteps[activeStepIndex2 + 1] || null;
|
|
18
|
+
if (activeStep2) {
|
|
19
|
+
activeStep2.stage = "active";
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
steps: utils.autoStageSteps(steps),
|
|
23
|
+
flatSteps,
|
|
24
|
+
activeStepIndex: activeStepIndex2,
|
|
25
|
+
activeStep: activeStep2,
|
|
26
|
+
previousStep: previousStep2,
|
|
27
|
+
nextStep: nextStep2,
|
|
28
|
+
started: true,
|
|
29
|
+
ended: false
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const activeStepIndex = flatSteps.length;
|
|
33
|
+
const previousStep = flatSteps.at(-1);
|
|
34
|
+
const activeStep = null;
|
|
35
|
+
const nextStep = null;
|
|
36
|
+
return {
|
|
37
|
+
steps: utils.assignSteps(steps, "completed"),
|
|
38
|
+
flatSteps,
|
|
39
|
+
activeStepIndex,
|
|
40
|
+
activeStep,
|
|
41
|
+
previousStep,
|
|
42
|
+
nextStep,
|
|
43
|
+
started: true,
|
|
44
|
+
ended: true
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (action.type === "previous") {
|
|
48
|
+
if (((_b = state.activeStep) == null ? void 0 : _b.status) === "error") {
|
|
49
|
+
return state;
|
|
50
|
+
}
|
|
51
|
+
const steps = utils.resetSteps(state.steps);
|
|
52
|
+
const flatSteps = utils.flattenSteps(steps);
|
|
53
|
+
if (state.previousStep) {
|
|
54
|
+
const activeStepIndex2 = state.activeStepIndex - 1;
|
|
55
|
+
const activeStep2 = flatSteps[activeStepIndex2];
|
|
56
|
+
const previousStep2 = flatSteps[activeStepIndex2 - 1] || null;
|
|
57
|
+
const nextStep2 = flatSteps[activeStepIndex2 + 1] || null;
|
|
58
|
+
if (activeStep2) {
|
|
59
|
+
activeStep2.stage = "active";
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
steps: utils.autoStageSteps(steps),
|
|
63
|
+
flatSteps,
|
|
64
|
+
activeStepIndex: activeStepIndex2,
|
|
65
|
+
activeStep: activeStep2,
|
|
66
|
+
previousStep: previousStep2,
|
|
67
|
+
nextStep: nextStep2,
|
|
68
|
+
started: true,
|
|
69
|
+
ended: false
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const activeStepIndex = -1;
|
|
73
|
+
const activeStep = null;
|
|
74
|
+
const previousStep = null;
|
|
75
|
+
const nextStep = flatSteps.at(0);
|
|
76
|
+
return {
|
|
77
|
+
steps: utils.assignSteps(steps, "pending"),
|
|
78
|
+
flatSteps,
|
|
79
|
+
activeStepIndex,
|
|
80
|
+
activeStep,
|
|
81
|
+
previousStep,
|
|
82
|
+
nextStep,
|
|
83
|
+
ended: false,
|
|
84
|
+
started: false
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
if (action.type === "error") {
|
|
88
|
+
if (state.activeStep) {
|
|
89
|
+
state.activeStep.status = "error";
|
|
90
|
+
return { ...state };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (action.type === "warning") {
|
|
94
|
+
if (state.activeStep) {
|
|
95
|
+
state.activeStep.status = "warning";
|
|
96
|
+
return { ...state };
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (action.type === "clear") {
|
|
100
|
+
if (state.activeStep) {
|
|
101
|
+
state.activeStep.status = void 0;
|
|
102
|
+
return { ...state };
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return state;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
module.exports = stepReducer;
|
|
109
|
+
//# sourceMappingURL=stepReducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepReducer.js","sources":["../src/stepped-tracker/stepReducer.ts"],"sourcesContent":["import type { StepReducerAction, StepReducerState } from \"./stepReducer.types\";\nimport { assignSteps, autoStageSteps, flattenSteps, resetSteps } from \"./utils\";\n\nexport default function stepReducer(\n state: StepReducerState,\n action: StepReducerAction,\n) {\n if (action.type === \"next\") {\n if (state.activeStep?.status === \"error\") {\n return state;\n }\n\n const steps = resetSteps(state.steps);\n const flatSteps = flattenSteps(steps);\n\n if (state.nextStep) {\n const activeStepIndex = state.activeStepIndex + 1;\n const activeStep = flatSteps[activeStepIndex];\n const previousStep = flatSteps[activeStepIndex - 1] || null;\n const nextStep = flatSteps[activeStepIndex + 1] || null;\n\n if (activeStep) {\n activeStep.stage = \"active\";\n }\n\n return {\n steps: autoStageSteps(steps),\n flatSteps,\n activeStepIndex,\n activeStep,\n previousStep,\n nextStep,\n started: true,\n ended: false,\n };\n }\n\n const activeStepIndex = flatSteps.length;\n const previousStep = flatSteps.at(-1);\n const activeStep = null;\n const nextStep = null;\n\n return {\n steps: assignSteps(steps, \"completed\"),\n flatSteps,\n activeStepIndex,\n activeStep,\n previousStep,\n nextStep,\n started: true,\n ended: true,\n } as StepReducerState;\n }\n\n if (action.type === \"previous\") {\n if (state.activeStep?.status === \"error\") {\n return state;\n }\n\n const steps = resetSteps(state.steps);\n const flatSteps = flattenSteps(steps);\n\n if (state.previousStep) {\n const activeStepIndex = state.activeStepIndex - 1;\n const activeStep = flatSteps[activeStepIndex];\n const previousStep = flatSteps[activeStepIndex - 1] || null;\n const nextStep = flatSteps[activeStepIndex + 1] || null;\n\n if (activeStep) {\n activeStep.stage = \"active\";\n }\n\n return {\n steps: autoStageSteps(steps),\n flatSteps,\n activeStepIndex,\n activeStep,\n previousStep,\n nextStep,\n started: true,\n ended: false,\n } as StepReducerState;\n }\n\n const activeStepIndex = -1;\n const activeStep = null;\n const previousStep = null;\n const nextStep = flatSteps.at(0);\n\n return {\n steps: assignSteps(steps, \"pending\"),\n flatSteps,\n activeStepIndex,\n activeStep,\n previousStep,\n nextStep,\n ended: false,\n started: false,\n } as StepReducerState;\n }\n\n if (action.type === \"error\") {\n if (state.activeStep) {\n state.activeStep.status = \"error\";\n return { ...state };\n }\n }\n\n if (action.type === \"warning\") {\n if (state.activeStep) {\n state.activeStep.status = \"warning\";\n return { ...state };\n }\n }\n\n if (action.type === \"clear\") {\n if (state.activeStep) {\n state.activeStep.status = undefined;\n return { ...state };\n }\n }\n\n return state;\n}\n"],"names":["resetSteps","flattenSteps","activeStepIndex","activeStep","previousStep","nextStep","autoStageSteps","assignSteps"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var stepReducer = require('./stepReducer.js');
|
|
5
|
+
var utils = require('./utils.js');
|
|
6
|
+
|
|
7
|
+
function useStepReducer(initialSteps, options) {
|
|
8
|
+
const state = react.useMemo(
|
|
9
|
+
() => utils.initStepReducerState(initialSteps, options),
|
|
10
|
+
[initialSteps, options]
|
|
11
|
+
);
|
|
12
|
+
return react.useReducer(stepReducer, state);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
exports.useStepReducer = useStepReducer;
|
|
16
|
+
//# sourceMappingURL=useStepReducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStepReducer.js","sources":["../src/stepped-tracker/useStepReducer.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\n\nimport stepReducer from \"./stepReducer\";\nimport { initStepReducerState } from \"./utils\";\n\nimport type { StepRecord } from \"./Step.types\";\nimport type { StepReducerOptions } from \"./stepReducer.types\";\n\nexport function useStepReducer(\n initialSteps: StepRecord[],\n options?: StepReducerOptions,\n) {\n const state = useMemo(\n () => initStepReducerState(initialSteps, options),\n [initialSteps, options],\n );\n\n return useReducer(stepReducer, state);\n}\n"],"names":["useMemo","initStepReducerState","useReducer"],"mappings":";;;;;;AAQgB,SAAA,cAAA,CACd,cACA,OACA,EAAA;AACA,EAAA,MAAM,KAAQ,GAAAA,aAAA;AAAA,IACZ,MAAMC,0BAAqB,CAAA,YAAA,EAAc,OAAO,CAAA;AAAA,IAChD,CAAC,cAAc,OAAO;AAAA,GACxB;AAEA,EAAO,OAAAC,gBAAA,CAAW,aAAa,KAAK,CAAA;AACtC;;;;"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function assignSteps(steps, stage) {
|
|
4
|
+
return steps.map((step) => {
|
|
5
|
+
step.stage = stage;
|
|
6
|
+
if (step.substeps) {
|
|
7
|
+
step.substeps = assignSteps(step.substeps, stage);
|
|
8
|
+
}
|
|
9
|
+
return step;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function resetSteps(steps) {
|
|
13
|
+
return assignSteps(steps, void 0);
|
|
14
|
+
}
|
|
15
|
+
function autoStageSteps(steps, options) {
|
|
16
|
+
function autoStageHelper(steps2) {
|
|
17
|
+
const pivotIndex = steps2.findIndex(
|
|
18
|
+
(step) => (step == null ? void 0 : step.id) && (options == null ? void 0 : options.activeStepId) && step.id === options.activeStepId || step.stage === "active" || step.stage === "inprogress"
|
|
19
|
+
);
|
|
20
|
+
if (pivotIndex !== -1) {
|
|
21
|
+
const activeStep = steps2[pivotIndex];
|
|
22
|
+
activeStep.stage ||= "active";
|
|
23
|
+
const previousSteps = assignSteps(
|
|
24
|
+
steps2.slice(0, pivotIndex),
|
|
25
|
+
"completed"
|
|
26
|
+
);
|
|
27
|
+
const nextSteps = assignSteps(steps2.slice(pivotIndex + 1), "pending");
|
|
28
|
+
return [...previousSteps, activeStep, ...nextSteps];
|
|
29
|
+
}
|
|
30
|
+
return steps2.reduce(
|
|
31
|
+
(acc, step, index) => {
|
|
32
|
+
if (step.substeps) {
|
|
33
|
+
const substeps = autoStageHelper(step.substeps);
|
|
34
|
+
if (substeps) {
|
|
35
|
+
steps2[index].substeps = substeps;
|
|
36
|
+
steps2[index].stage = "inprogress";
|
|
37
|
+
return autoStageHelper(steps2);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return acc;
|
|
41
|
+
},
|
|
42
|
+
null
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
return autoStageHelper(steps) || assignSteps(steps, steps[0].stage || "pending");
|
|
46
|
+
}
|
|
47
|
+
function flattenSteps(steps) {
|
|
48
|
+
return steps.reduce((acc, step) => {
|
|
49
|
+
if (step.substeps) {
|
|
50
|
+
acc.push(...flattenSteps(step.substeps));
|
|
51
|
+
return acc;
|
|
52
|
+
}
|
|
53
|
+
acc.push(step);
|
|
54
|
+
return acc;
|
|
55
|
+
}, []);
|
|
56
|
+
}
|
|
57
|
+
function initStepReducerState(initialSteps, options) {
|
|
58
|
+
const steps = autoStageSteps(initialSteps, options);
|
|
59
|
+
const flatSteps = flattenSteps(steps);
|
|
60
|
+
const started = !flatSteps.every((step) => step.stage === "pending");
|
|
61
|
+
const ended = flatSteps.every((step) => step.stage === "completed");
|
|
62
|
+
let activeStepIndex = flatSteps.findIndex((step) => step.stage === "active");
|
|
63
|
+
if (activeStepIndex === -1 && ended) {
|
|
64
|
+
activeStepIndex = flatSteps.length;
|
|
65
|
+
}
|
|
66
|
+
const activeStep = flatSteps[activeStepIndex] || null;
|
|
67
|
+
const previousStep = flatSteps[activeStepIndex - 1] || null;
|
|
68
|
+
const nextStep = flatSteps[activeStepIndex + 1] || null;
|
|
69
|
+
return {
|
|
70
|
+
steps,
|
|
71
|
+
flatSteps,
|
|
72
|
+
activeStep,
|
|
73
|
+
previousStep,
|
|
74
|
+
nextStep,
|
|
75
|
+
activeStepIndex,
|
|
76
|
+
ended,
|
|
77
|
+
started
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
exports.assignSteps = assignSteps;
|
|
82
|
+
exports.autoStageSteps = autoStageSteps;
|
|
83
|
+
exports.flattenSteps = flattenSteps;
|
|
84
|
+
exports.initStepReducerState = initStepReducerState;
|
|
85
|
+
exports.resetSteps = resetSteps;
|
|
86
|
+
//# sourceMappingURL=utils.js.map
|