@salt-ds/lab 1.0.0-alpha.61 → 1.0.0-alpha.62
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 +75 -0
- package/css/salt-lab.css +185 -1
- package/dist-cjs/date-picker/DatePickerRangeInput.js +1 -0
- package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerSingleInput.js +1 -0
- package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
- package/dist-cjs/index.js +6 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/splitter/SplitHandle.css.js +6 -0
- package/dist-cjs/splitter/SplitHandle.css.js.map +1 -0
- package/dist-cjs/splitter/SplitHandle.js +60 -0
- package/dist-cjs/splitter/SplitHandle.js.map +1 -0
- package/dist-cjs/splitter/SplitPanel.css.js +6 -0
- package/dist-cjs/splitter/SplitPanel.css.js.map +1 -0
- package/dist-cjs/splitter/SplitPanel.js +37 -0
- package/dist-cjs/splitter/SplitPanel.js.map +1 -0
- package/dist-cjs/splitter/Splitter.js +31 -0
- package/dist-cjs/splitter/Splitter.js.map +1 -0
- package/dist-cjs/splitter/utils.js +18 -0
- package/dist-cjs/splitter/utils.js.map +1 -0
- package/dist-cjs/stepped-tracker/stepReducer.js +127 -81
- package/dist-cjs/stepped-tracker/stepReducer.js.map +1 -1
- package/dist-cjs/stepped-tracker/useStepReducer.js +6 -4
- package/dist-cjs/stepped-tracker/useStepReducer.js.map +1 -1
- package/dist-cjs/stepped-tracker/utils.js +44 -9
- package/dist-cjs/stepped-tracker/utils.js.map +1 -1
- package/dist-cjs/tabs-next/TabListNext.css.js +1 -1
- package/dist-cjs/tabs-next/TabListNext.js +10 -16
- package/dist-cjs/tabs-next/TabListNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabOverflowList.js +1 -1
- package/dist-cjs/tabs-next/TabOverflowList.js.map +1 -1
- package/dist-cjs/tabs-next/TabsNext.js +4 -51
- package/dist-cjs/tabs-next/TabsNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabsNextContext.js +1 -1
- package/dist-cjs/tabs-next/TabsNextContext.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useCollection.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useOverflow.js +48 -5
- package/dist-cjs/tabs-next/hooks/useOverflow.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useRestoreActiveTab.js +93 -0
- package/dist-cjs/tabs-next/hooks/useRestoreActiveTab.js.map +1 -0
- package/dist-es/date-picker/DatePickerRangeInput.js +1 -0
- package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
- package/dist-es/date-picker/DatePickerSingleInput.js +1 -0
- package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
- package/dist-es/index.js +3 -0
- package/dist-es/index.js.map +1 -1
- package/dist-es/splitter/SplitHandle.css.js +4 -0
- package/dist-es/splitter/SplitHandle.css.js.map +1 -0
- package/dist-es/splitter/SplitHandle.js +58 -0
- package/dist-es/splitter/SplitHandle.js.map +1 -0
- package/dist-es/splitter/SplitPanel.css.js +4 -0
- package/dist-es/splitter/SplitPanel.css.js.map +1 -0
- package/dist-es/splitter/SplitPanel.js +35 -0
- package/dist-es/splitter/SplitPanel.js.map +1 -0
- package/dist-es/splitter/Splitter.js +27 -0
- package/dist-es/splitter/Splitter.js.map +1 -0
- package/dist-es/splitter/utils.js +15 -0
- package/dist-es/splitter/utils.js.map +1 -0
- package/dist-es/stepped-tracker/stepReducer.js +128 -82
- package/dist-es/stepped-tracker/stepReducer.js.map +1 -1
- package/dist-es/stepped-tracker/useStepReducer.js +7 -5
- package/dist-es/stepped-tracker/useStepReducer.js.map +1 -1
- package/dist-es/stepped-tracker/utils.js +43 -9
- package/dist-es/stepped-tracker/utils.js.map +1 -1
- package/dist-es/tabs-next/TabListNext.css.js +1 -1
- package/dist-es/tabs-next/TabListNext.js +11 -17
- package/dist-es/tabs-next/TabListNext.js.map +1 -1
- package/dist-es/tabs-next/TabOverflowList.js +1 -1
- package/dist-es/tabs-next/TabOverflowList.js.map +1 -1
- package/dist-es/tabs-next/TabsNext.js +5 -52
- package/dist-es/tabs-next/TabsNext.js.map +1 -1
- package/dist-es/tabs-next/TabsNextContext.js +1 -1
- package/dist-es/tabs-next/TabsNextContext.js.map +1 -1
- package/dist-es/tabs-next/hooks/useCollection.js.map +1 -1
- package/dist-es/tabs-next/hooks/useOverflow.js +49 -6
- package/dist-es/tabs-next/hooks/useOverflow.js.map +1 -1
- package/dist-es/tabs-next/hooks/useRestoreActiveTab.js +91 -0
- package/dist-es/tabs-next/hooks/useRestoreActiveTab.js.map +1 -0
- package/dist-types/index.d.ts +1 -0
- package/dist-types/splitter/SplitHandle.d.ts +21 -0
- package/dist-types/splitter/SplitPanel.d.ts +10 -0
- package/dist-types/splitter/Splitter.d.ts +22 -0
- package/dist-types/splitter/index.d.ts +4 -0
- package/dist-types/splitter/utils.d.ts +4 -0
- package/dist-types/stepped-tracker/Step.types.d.ts +2 -4
- package/dist-types/stepped-tracker/stepReducer.types.d.ts +6 -4
- package/dist-types/stepped-tracker/utils.d.ts +6 -3
- package/dist-types/tabs/drag-drop/drag-utils.d.ts +6 -6
- package/dist-types/tabs-next/TabsNextContext.d.ts +1 -1
- package/dist-types/tabs-next/hooks/useOverflow.d.ts +1 -1
- package/dist-types/tabs-next/hooks/useRestoreActiveTab.d.ts +10 -0
- package/package.json +4 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function computeAccent(appearance, orientation) {
|
|
4
|
+
if (appearance === "transparent") {
|
|
5
|
+
return "none";
|
|
6
|
+
}
|
|
7
|
+
if (orientation === "horizontal") {
|
|
8
|
+
return "top-bottom";
|
|
9
|
+
}
|
|
10
|
+
return "left-right";
|
|
11
|
+
}
|
|
12
|
+
function computeVariant(appearance) {
|
|
13
|
+
return appearance === "bordered" ? "primary" : "transparent";
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
exports.computeAccent = computeAccent;
|
|
17
|
+
exports.computeVariant = computeVariant;
|
|
18
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../src/splitter/utils.ts"],"sourcesContent":["import type { SplitHandleBorder } from \"./SplitHandle\";\nimport type { SplitterAppearance, SplitterOrientation } from \"./Splitter\";\n\nexport function computeAccent(\n appearance: SplitterAppearance,\n orientation: SplitterOrientation,\n): SplitHandleBorder {\n if (appearance === \"transparent\") {\n return \"none\";\n }\n\n if (orientation === \"horizontal\") {\n return \"top-bottom\";\n }\n\n return \"left-right\";\n}\n\nexport function computeVariant(\n appearance: SplitterAppearance,\n): \"primary\" | \"transparent\" {\n return appearance === \"bordered\" ? \"primary\" : \"transparent\";\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,aAAA,CACd,YACA,WACmB,EAAA;AACnB,EAAA,IAAI,eAAe,aAAe,EAAA;AAChC,IAAO,OAAA,MAAA;AAAA;AAGT,EAAA,IAAI,gBAAgB,YAAc,EAAA;AAChC,IAAO,OAAA,YAAA;AAAA;AAGT,EAAO,OAAA,YAAA;AACT;AAEO,SAAS,eACd,UAC2B,EAAA;AAC3B,EAAO,OAAA,UAAA,KAAe,aAAa,SAAY,GAAA,aAAA;AACjD;;;;;"}
|
|
@@ -4,105 +4,151 @@ var utils = require('./utils.js');
|
|
|
4
4
|
|
|
5
5
|
function stepReducer(state, action) {
|
|
6
6
|
var _a, _b;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
switch (action.type) {
|
|
8
|
+
case "next": {
|
|
9
|
+
if (((_a = state.activeStep) == null ? void 0 : _a.status) === "error") {
|
|
10
|
+
return state;
|
|
11
|
+
}
|
|
12
|
+
const activeStepIndex = state.activeStepIndex + 1;
|
|
13
|
+
const lastStepIndex = state.flatSteps.length - 1;
|
|
14
|
+
if (activeStepIndex > lastStepIndex) {
|
|
15
|
+
const steps2 = utils.assignStepsStage(state.steps, "completed");
|
|
16
|
+
const flatSteps2 = utils.flattenSteps(steps2);
|
|
17
|
+
return {
|
|
18
|
+
steps: steps2,
|
|
19
|
+
flatSteps: flatSteps2,
|
|
20
|
+
activeStepIndex: lastStepIndex + 1,
|
|
21
|
+
activeStep: null,
|
|
22
|
+
previousStep: flatSteps2[lastStepIndex],
|
|
23
|
+
nextStep: null,
|
|
24
|
+
started: true,
|
|
25
|
+
ended: true
|
|
26
|
+
};
|
|
20
27
|
}
|
|
28
|
+
const activeStepId = state.flatSteps[activeStepIndex].id;
|
|
29
|
+
const steps = utils.autoStageSteps(utils.resetSteps(state.steps), { activeStepId });
|
|
30
|
+
const flatSteps = utils.flattenSteps(steps);
|
|
21
31
|
return {
|
|
22
|
-
steps
|
|
32
|
+
steps,
|
|
23
33
|
flatSteps,
|
|
24
|
-
activeStepIndex
|
|
25
|
-
activeStep:
|
|
26
|
-
previousStep:
|
|
27
|
-
nextStep:
|
|
34
|
+
activeStepIndex,
|
|
35
|
+
activeStep: flatSteps[activeStepIndex],
|
|
36
|
+
previousStep: flatSteps[activeStepIndex - 1],
|
|
37
|
+
nextStep: flatSteps[activeStepIndex + 1] ?? null,
|
|
28
38
|
started: true,
|
|
29
39
|
ended: false
|
|
30
40
|
};
|
|
31
41
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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";
|
|
42
|
+
case "previous": {
|
|
43
|
+
if (((_b = state.activeStep) == null ? void 0 : _b.status) === "error") {
|
|
44
|
+
return state;
|
|
60
45
|
}
|
|
46
|
+
const activeStepIndex = state.activeStepIndex - 1;
|
|
47
|
+
if (activeStepIndex < 0) {
|
|
48
|
+
const steps2 = utils.assignStepsStage(state.steps, "pending");
|
|
49
|
+
const flatSteps2 = utils.flattenSteps(steps2);
|
|
50
|
+
return {
|
|
51
|
+
steps: steps2,
|
|
52
|
+
flatSteps: flatSteps2,
|
|
53
|
+
activeStepIndex: -1,
|
|
54
|
+
activeStep: null,
|
|
55
|
+
previousStep: null,
|
|
56
|
+
nextStep: flatSteps2[0],
|
|
57
|
+
started: false,
|
|
58
|
+
ended: false
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const activeStepId = state.flatSteps[activeStepIndex].id;
|
|
62
|
+
const steps = utils.autoStageSteps(utils.resetSteps(state.steps), { activeStepId });
|
|
63
|
+
const flatSteps = utils.flattenSteps(steps);
|
|
61
64
|
return {
|
|
62
|
-
steps
|
|
65
|
+
steps,
|
|
63
66
|
flatSteps,
|
|
64
|
-
activeStepIndex
|
|
65
|
-
activeStep:
|
|
66
|
-
previousStep:
|
|
67
|
-
nextStep:
|
|
67
|
+
activeStepIndex,
|
|
68
|
+
activeStep: flatSteps[activeStepIndex],
|
|
69
|
+
previousStep: flatSteps[activeStepIndex - 1] ?? null,
|
|
70
|
+
nextStep: flatSteps[activeStepIndex + 1],
|
|
68
71
|
started: true,
|
|
69
72
|
ended: false
|
|
70
73
|
};
|
|
71
74
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
state.activeStep.status = "error";
|
|
90
|
-
return { ...state };
|
|
75
|
+
case "status/error": {
|
|
76
|
+
const { activeStep, activeStepIndex } = state;
|
|
77
|
+
if (!activeStep) {
|
|
78
|
+
return state;
|
|
79
|
+
}
|
|
80
|
+
const activeStepId = activeStep.id;
|
|
81
|
+
const steps = utils.assignStepStatus(state.steps, activeStepId, "error");
|
|
82
|
+
const flatSteps = utils.flattenSteps(steps);
|
|
83
|
+
return {
|
|
84
|
+
...state,
|
|
85
|
+
steps,
|
|
86
|
+
flatSteps,
|
|
87
|
+
activeStepIndex,
|
|
88
|
+
activeStep: flatSteps[activeStepIndex],
|
|
89
|
+
previousStep: flatSteps[activeStepIndex - 1] ?? null,
|
|
90
|
+
nextStep: flatSteps[activeStepIndex + 1]
|
|
91
|
+
};
|
|
91
92
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
case "status/warning": {
|
|
94
|
+
const { activeStep, activeStepIndex } = state;
|
|
95
|
+
if (!activeStep) {
|
|
96
|
+
return state;
|
|
97
|
+
}
|
|
98
|
+
const activeStepId = activeStep.id;
|
|
99
|
+
const steps = utils.assignStepStatus(state.steps, activeStepId, "warning");
|
|
100
|
+
const flatSteps = utils.flattenSteps(steps);
|
|
101
|
+
return {
|
|
102
|
+
...state,
|
|
103
|
+
steps,
|
|
104
|
+
flatSteps,
|
|
105
|
+
activeStepIndex,
|
|
106
|
+
activeStep: flatSteps[activeStepIndex],
|
|
107
|
+
previousStep: flatSteps[activeStepIndex - 1] ?? null,
|
|
108
|
+
nextStep: flatSteps[activeStepIndex + 1]
|
|
109
|
+
};
|
|
97
110
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
111
|
+
case "status/clear": {
|
|
112
|
+
const { activeStep, activeStepIndex } = state;
|
|
113
|
+
if (!activeStep) {
|
|
114
|
+
return state;
|
|
115
|
+
}
|
|
116
|
+
const activeStepId = activeStep.id;
|
|
117
|
+
const steps = utils.assignStepStatus(state.steps, activeStepId, void 0);
|
|
118
|
+
const flatSteps = utils.flattenSteps(steps);
|
|
119
|
+
return {
|
|
120
|
+
...state,
|
|
121
|
+
steps,
|
|
122
|
+
flatSteps,
|
|
123
|
+
activeStepIndex,
|
|
124
|
+
activeStep: flatSteps[activeStepIndex],
|
|
125
|
+
previousStep: flatSteps[activeStepIndex - 1] ?? null,
|
|
126
|
+
nextStep: flatSteps[activeStepIndex + 1]
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
case "reset": {
|
|
130
|
+
const firstStepId = state.flatSteps[0].id;
|
|
131
|
+
const steps = utils.autoStageSteps(
|
|
132
|
+
utils.resetSteps(state.steps, { resetStatus: true }),
|
|
133
|
+
{ activeStepId: firstStepId }
|
|
134
|
+
);
|
|
135
|
+
const flatSteps = utils.flattenSteps(steps);
|
|
136
|
+
return {
|
|
137
|
+
steps,
|
|
138
|
+
flatSteps,
|
|
139
|
+
activeStepIndex: 0,
|
|
140
|
+
activeStep: flatSteps[0],
|
|
141
|
+
previousStep: null,
|
|
142
|
+
nextStep: flatSteps[1],
|
|
143
|
+
started: true,
|
|
144
|
+
ended: false
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
default: {
|
|
148
|
+
const exhaustiveCheck = action;
|
|
149
|
+
throw new Error(`Unhandled action: ${exhaustiveCheck}`);
|
|
103
150
|
}
|
|
104
151
|
}
|
|
105
|
-
return state;
|
|
106
152
|
}
|
|
107
153
|
|
|
108
154
|
module.exports = stepReducer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepReducer.js","sources":["../src/stepped-tracker/stepReducer.ts"],"sourcesContent":["import type { StepReducerAction, StepReducerState } from \"./stepReducer.types\";\nimport {
|
|
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","assignStepsStage","flatSteps","flattenSteps","autoStageSteps","resetSteps","assignStepStatus"],"mappings":"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"}
|
|
@@ -5,11 +5,13 @@ var stepReducer = require('./stepReducer.js');
|
|
|
5
5
|
var utils = require('./utils.js');
|
|
6
6
|
|
|
7
7
|
function useStepReducer(initialSteps, options) {
|
|
8
|
-
const
|
|
9
|
-
() =>
|
|
10
|
-
|
|
8
|
+
const initializer = react.useCallback(
|
|
9
|
+
(initialSteps2) => {
|
|
10
|
+
return utils.initStepReducerState(initialSteps2, options);
|
|
11
|
+
},
|
|
12
|
+
[options]
|
|
11
13
|
);
|
|
12
|
-
return react.useReducer(stepReducer,
|
|
14
|
+
return react.useReducer(stepReducer, initialSteps, initializer);
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
exports.useStepReducer = useStepReducer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStepReducer.js","sources":["../src/stepped-tracker/useStepReducer.ts"],"sourcesContent":["import {
|
|
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":["useCallback","initialSteps","initStepReducerState","useReducer"],"mappings":";;;;;;AAQgB,SAAA,cAAA,CACd,cACA,OACA,EAAA;AACA,EAAA,MAAM,WAAc,GAAAA,iBAAA;AAAA,IAClB,CAACC,aAA+B,KAAA;AAC9B,MAAO,OAAAC,0BAAA,CAAqBD,eAAc,OAAO,CAAA;AAAA,KACnD;AAAA,IACA,CAAC,OAAO;AAAA,GACV;AAEA,EAAO,OAAAE,gBAAA,CAAW,WAAa,EAAA,YAAA,EAAc,WAAW,CAAA;AAC1D;;;;"}
|
|
@@ -1,16 +1,47 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
function
|
|
3
|
+
function assignStepsStage(steps, stage) {
|
|
4
4
|
return steps.map((step) => {
|
|
5
|
-
step.
|
|
5
|
+
if (!step.substeps) {
|
|
6
|
+
return { ...step, stage };
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
...step,
|
|
10
|
+
stage,
|
|
11
|
+
substeps: assignStepsStage(step.substeps, stage)
|
|
12
|
+
};
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function assignStepStatus(steps, stepId, status) {
|
|
16
|
+
return steps.map((step) => {
|
|
17
|
+
if (step.id === stepId) {
|
|
18
|
+
return { ...step, status };
|
|
19
|
+
}
|
|
6
20
|
if (step.substeps) {
|
|
7
|
-
|
|
21
|
+
return {
|
|
22
|
+
...step,
|
|
23
|
+
substeps: assignStepStatus(step.substeps, stepId, status)
|
|
24
|
+
};
|
|
8
25
|
}
|
|
9
26
|
return step;
|
|
10
27
|
});
|
|
11
28
|
}
|
|
12
|
-
function resetSteps(steps) {
|
|
13
|
-
|
|
29
|
+
function resetSteps(steps, options = { resetStatus: false }) {
|
|
30
|
+
const { resetStatus } = options;
|
|
31
|
+
return steps.map((step) => {
|
|
32
|
+
if (!step.substeps) {
|
|
33
|
+
return {
|
|
34
|
+
...step,
|
|
35
|
+
stage: void 0,
|
|
36
|
+
status: !resetStatus ? step.status : void 0
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
...step,
|
|
41
|
+
stage: void 0,
|
|
42
|
+
substeps: resetSteps(step.substeps, options)
|
|
43
|
+
};
|
|
44
|
+
});
|
|
14
45
|
}
|
|
15
46
|
function autoStageSteps(steps, options) {
|
|
16
47
|
function autoStageHelper(steps2) {
|
|
@@ -20,11 +51,14 @@ function autoStageSteps(steps, options) {
|
|
|
20
51
|
if (pivotIndex !== -1) {
|
|
21
52
|
const activeStep = steps2[pivotIndex];
|
|
22
53
|
activeStep.stage ||= "active";
|
|
23
|
-
const previousSteps =
|
|
54
|
+
const previousSteps = assignStepsStage(
|
|
24
55
|
steps2.slice(0, pivotIndex),
|
|
25
56
|
"completed"
|
|
26
57
|
);
|
|
27
|
-
const nextSteps =
|
|
58
|
+
const nextSteps = assignStepsStage(
|
|
59
|
+
steps2.slice(pivotIndex + 1),
|
|
60
|
+
"pending"
|
|
61
|
+
);
|
|
28
62
|
return [...previousSteps, activeStep, ...nextSteps];
|
|
29
63
|
}
|
|
30
64
|
return steps2.reduce(
|
|
@@ -42,7 +76,7 @@ function autoStageSteps(steps, options) {
|
|
|
42
76
|
null
|
|
43
77
|
);
|
|
44
78
|
}
|
|
45
|
-
return autoStageHelper(steps) ||
|
|
79
|
+
return autoStageHelper(steps) || assignStepsStage(steps, steps[0].stage || "pending");
|
|
46
80
|
}
|
|
47
81
|
function flattenSteps(steps) {
|
|
48
82
|
return steps.reduce((acc, step) => {
|
|
@@ -78,7 +112,8 @@ function initStepReducerState(initialSteps, options) {
|
|
|
78
112
|
};
|
|
79
113
|
}
|
|
80
114
|
|
|
81
|
-
exports.
|
|
115
|
+
exports.assignStepStatus = assignStepStatus;
|
|
116
|
+
exports.assignStepsStage = assignStepsStage;
|
|
82
117
|
exports.autoStageSteps = autoStageSteps;
|
|
83
118
|
exports.flattenSteps = flattenSteps;
|
|
84
119
|
exports.initStepReducerState = initStepReducerState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../src/stepped-tracker/utils.ts"],"sourcesContent":["import type { StepRecord, StepStage } from \"./Step.types\";\nimport type { StepReducerOptions, StepReducerState } from \"./stepReducer.types\";\n\nexport function
|
|
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":";;AAGgB,SAAA,gBAAA,CACd,OACA,KACc,EAAA;AACd,EAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AACzB,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAClB,MAAO,OAAA,EAAE,GAAG,IAAA,EAAM,KAAM,EAAA;AAAA;AAG1B,IAAO,OAAA;AAAA,MACL,GAAG,IAAA;AAAA,MACH,KAAA;AAAA,MACA,QAAU,EAAA,gBAAA,CAAiB,IAAK,CAAA,QAAA,EAAU,KAAK;AAAA,KACjD;AAAA,GACD,CAAA;AACH;AAEgB,SAAA,gBAAA,CACd,KACA,EAAA,MAAA,EACA,MACc,EAAA;AACd,EAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AACzB,IAAI,IAAA,IAAA,CAAK,OAAO,MAAQ,EAAA;AACtB,MAAO,OAAA,EAAE,GAAG,IAAA,EAAM,MAAO,EAAA;AAAA;AAG3B,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAO,OAAA;AAAA,QACL,GAAG,IAAA;AAAA,QACH,QAAU,EAAA,gBAAA,CAAiB,IAAK,CAAA,QAAA,EAAU,QAAQ,MAAM;AAAA,OAC1D;AAAA;AAGF,IAAO,OAAA,IAAA;AAAA,GACR,CAAA;AACH;AAEO,SAAS,WACd,KACA,EAAA,OAAA,GAAU,EAAE,WAAA,EAAa,OACX,EAAA;AACd,EAAM,MAAA,EAAE,aAAgB,GAAA,OAAA;AAExB,EAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AACzB,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAClB,MAAO,OAAA;AAAA,QACL,GAAG,IAAA;AAAA,QACH,KAAO,EAAA,KAAA,CAAA;AAAA,QACP,MAAQ,EAAA,CAAC,WAAc,GAAA,IAAA,CAAK,MAAS,GAAA,KAAA;AAAA,OACvC;AAAA;AAGF,IAAO,OAAA;AAAA,MACL,GAAG,IAAA;AAAA,MACH,KAAO,EAAA,KAAA,CAAA;AAAA,MACP,QAAU,EAAA,UAAA,CAAW,IAAK,CAAA,QAAA,EAAU,OAAO;AAAA,KAC7C;AAAA,GACD,CAAA;AACH;AAEgB,SAAA,cAAA,CACd,OACA,OACc,EAAA;AACd,EAAA,SAAS,gBAAgBA,MAA0C,EAAA;AACjE,IAAA,MAAM,aAAaA,MAAM,CAAA,SAAA;AAAA,MACvB,CAAC,IAAA,KAAA,CACE,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,EAAA,MACL,mCAAS,YACT,CAAA,IAAA,IAAA,CAAK,EAAO,KAAA,OAAA,CAAQ,YACtB,IAAA,IAAA,CAAK,KAAU,KAAA,QAAA,IACf,KAAK,KAAU,KAAA;AAAA,KACnB;AAEA,IAAA,IAAI,eAAe,CAAI,CAAA,EAAA;AACrB,MAAM,MAAA,UAAA,GAAaA,OAAM,UAAU,CAAA;AAEnC,MAAA,UAAA,CAAW,KAAU,KAAA,QAAA;AAErB,MAAA,MAAM,aAAgB,GAAA,gBAAA;AAAA,QACpBA,MAAAA,CAAM,KAAM,CAAA,CAAA,EAAG,UAAU,CAAA;AAAA,QACzB;AAAA,OACF;AACA,MAAA,MAAM,SAAY,GAAA,gBAAA;AAAA,QAChBA,MAAAA,CAAM,KAAM,CAAA,UAAA,GAAa,CAAC,CAAA;AAAA,QAC1B;AAAA,OACF;AAEA,MAAA,OAAO,CAAC,GAAG,aAAe,EAAA,UAAA,EAAY,GAAG,SAAS,CAAA;AAAA;AAGpD,IAAA,OAAOA,MAAM,CAAA,MAAA;AAAA,MACX,CAAC,GAAK,EAAA,IAAA,EAAM,KAAU,KAAA;AACpB,QAAA,IAAI,KAAK,QAAU,EAAA;AACjB,UAAM,MAAA,QAAA,GAAW,eAAgB,CAAA,IAAA,CAAK,QAAQ,CAAA;AAE9C,UAAA,IAAI,QAAU,EAAA;AACZ,YAAAA,MAAAA,CAAM,KAAK,CAAA,CAAE,QAAW,GAAA,QAAA;AACxB,YAAAA,MAAAA,CAAM,KAAK,CAAA,CAAE,KAAQ,GAAA,YAAA;AAErB,YAAA,OAAO,gBAAgBA,MAAK,CAAA;AAAA;AAC9B;AAGF,QAAO,OAAA,GAAA;AAAA,OACT;AAAA,MACA;AAAA,KACF;AAAA;AAGF,EACE,OAAA,eAAA,CAAgB,KAAK,CACrB,IAAA,gBAAA,CAAiB,OAAO,KAAM,CAAA,CAAC,CAAE,CAAA,KAAA,IAAS,SAAS,CAAA;AAEvD;AAEO,SAAS,aAAa,KAAmC,EAAA;AAC9D,EAAA,OAAO,KAAM,CAAA,MAAA,CAAO,CAAC,GAAA,EAAK,IAAS,KAAA;AACjC,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,GAAA,CAAI,IAAK,CAAA,GAAG,YAAa,CAAA,IAAA,CAAK,QAAQ,CAAC,CAAA;AAEvC,MAAO,OAAA,GAAA;AAAA;AAGT,IAAA,GAAA,CAAI,KAAK,IAAI,CAAA;AAEb,IAAO,OAAA,GAAA;AAAA,GACT,EAAG,EAAkB,CAAA;AACvB;AAEgB,SAAA,oBAAA,CACd,cACA,OACA,EAAA;AACA,EAAM,MAAA,KAAA,GAAQ,cAAe,CAAA,YAAA,EAAc,OAAO,CAAA;AAClD,EAAM,MAAA,SAAA,GAAY,aAAa,KAAK,CAAA;AACpC,EAAM,MAAA,OAAA,GAAU,CAAC,SAAU,CAAA,KAAA,CAAM,CAAC,IAAS,KAAA,IAAA,CAAK,UAAU,SAAS,CAAA;AACnE,EAAA,MAAM,QAAQ,SAAU,CAAA,KAAA,CAAM,CAAC,IAAS,KAAA,IAAA,CAAK,UAAU,WAAW,CAAA;AAElE,EAAA,IAAI,kBAAkB,SAAU,CAAA,SAAA,CAAU,CAAC,IAAS,KAAA,IAAA,CAAK,UAAU,QAAQ,CAAA;AAE3E,EAAI,IAAA,eAAA,KAAoB,MAAM,KAAO,EAAA;AACnC,IAAA,eAAA,GAAkB,SAAU,CAAA,MAAA;AAAA;AAG9B,EAAM,MAAA,UAAA,GAAa,SAAU,CAAA,eAAe,CAAK,IAAA,IAAA;AACjD,EAAA,MAAM,YAAe,GAAA,SAAA,CAAU,eAAkB,GAAA,CAAC,CAAK,IAAA,IAAA;AACvD,EAAA,MAAM,QAAW,GAAA,SAAA,CAAU,eAAkB,GAAA,CAAC,CAAK,IAAA,IAAA;AAEnD,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA;AAAA,IACA,eAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/* Component class applied to the root element */\n.saltTabListNext {\n display: flex;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n position: relative;\n background: transparent;\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n gap: var(--salt-spacing-100);\n max-width: 100%;\n}\n\n.saltTabListNext-center {\n justify-content: center;\n}\n\n.saltTabListNext-right {\n justify-content: flex-end;\n}\n\n.saltTabListNext-activeColorPrimary {\n --saltTabListNext-activeColor: var(--salt-container-primary-background);\n}\n\n.saltTabListNext-activeColorSecondary {\n --saltTabListNext-activeColor: var(--salt-container-secondary-background);\n}\n\n.saltTabListNext-activeColorTertiary {\n --saltTabListNext-activeColor: var(--salt-container-tertiary-background);\n}\n\n.saltTabListNext-overflowWarning {\n display: none;\n}\n";
|
|
3
|
+
var css_248z = "/* Component class applied to the root element */\n.saltTabListNext {\n display: flex;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n position: relative;\n background: transparent;\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n gap: var(--salt-spacing-100);\n max-width: 100%;\n width: 100%;\n}\n\n.saltTabListNext-center {\n justify-content: center;\n}\n\n.saltTabListNext-right {\n justify-content: flex-end;\n}\n\n.saltTabListNext-activeColorPrimary {\n --saltTabListNext-activeColor: var(--salt-container-primary-background);\n}\n\n.saltTabListNext-activeColorSecondary {\n --saltTabListNext-activeColor: var(--salt-container-secondary-background);\n}\n\n.saltTabListNext-activeColorTertiary {\n --saltTabListNext-activeColor: var(--salt-container-tertiary-background);\n}\n\n.saltTabListNext-overflowWarning {\n display: none;\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = css_248z;
|
|
6
6
|
//# sourceMappingURL=TabListNext.css.js.map
|
|
@@ -10,6 +10,7 @@ var TabListNext$1 = require('./TabListNext.css.js');
|
|
|
10
10
|
var TabOverflowList = require('./TabOverflowList.js');
|
|
11
11
|
var TabsNextContext = require('./TabsNextContext.js');
|
|
12
12
|
var useOverflow = require('./hooks/useOverflow.js');
|
|
13
|
+
var useRestoreActiveTab = require('./hooks/useRestoreActiveTab.js');
|
|
13
14
|
|
|
14
15
|
const withBaseName = core.makePrefixer("saltTabListNext");
|
|
15
16
|
const TabListNext = react.forwardRef(
|
|
@@ -39,18 +40,24 @@ const TabListNext = react.forwardRef(
|
|
|
39
40
|
activeTab,
|
|
40
41
|
menuOpen,
|
|
41
42
|
setMenuOpen,
|
|
42
|
-
|
|
43
|
+
removedActiveTabRef
|
|
43
44
|
} = TabsNextContext.useTabsNext();
|
|
44
45
|
const tabstripRef = react.useRef(null);
|
|
45
46
|
const handleRef = core.useForkRef(tabstripRef, ref);
|
|
46
47
|
const overflowButtonRef = react.useRef(null);
|
|
47
|
-
const [visible, hidden, isMeasuring] = useOverflow.useOverflow({
|
|
48
|
+
const [visible, hidden, isMeasuring, realSelectedIndexRef] = useOverflow.useOverflow({
|
|
48
49
|
container: tabstripRef,
|
|
49
50
|
tabs: items,
|
|
50
51
|
children,
|
|
51
52
|
selected,
|
|
52
53
|
overflowButton: overflowButtonRef
|
|
53
54
|
});
|
|
55
|
+
useRestoreActiveTab.useRestoreActiveTab({
|
|
56
|
+
container: tabstripRef,
|
|
57
|
+
tabs: items,
|
|
58
|
+
realSelectedIndex: realSelectedIndexRef,
|
|
59
|
+
removedActiveTabRef
|
|
60
|
+
});
|
|
54
61
|
const handleKeyDown = (event) => {
|
|
55
62
|
var _a, _b, _c;
|
|
56
63
|
onKeyDown == null ? void 0 : onKeyDown(event);
|
|
@@ -77,19 +84,6 @@ const TabListNext = react.forwardRef(
|
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
86
|
};
|
|
80
|
-
core.useIsomorphicLayoutEffect(() => {
|
|
81
|
-
var _a;
|
|
82
|
-
if (!returnFocus.current || visible.length < 1 || selected === void 0)
|
|
83
|
-
return;
|
|
84
|
-
const itemToFocus = items.find((i) => i.value === returnFocus.current);
|
|
85
|
-
(_a = itemToFocus == null ? void 0 : itemToFocus.element) == null ? void 0 : _a.focus({ preventScroll: true });
|
|
86
|
-
requestAnimationFrame(() => {
|
|
87
|
-
var _a2;
|
|
88
|
-
if (((_a2 = targetWindow == null ? void 0 : targetWindow.document) == null ? void 0 : _a2.activeElement) === (itemToFocus == null ? void 0 : itemToFocus.element)) {
|
|
89
|
-
returnFocus.current = void 0;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}, [visible, returnFocus, targetWindow, items, selected]);
|
|
93
87
|
const warningId = core.useId();
|
|
94
88
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
95
89
|
"div",
|
|
@@ -108,7 +102,7 @@ const TabListNext = react.forwardRef(
|
|
|
108
102
|
"aria-describedby": clsx.clsx(ariaDescribedBy, warningId),
|
|
109
103
|
...rest,
|
|
110
104
|
children: [
|
|
111
|
-
hidden.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { id: warningId, className: withBaseName("overflowWarning"), children: "Note: This tab list includes overflow; tab positions may be inaccurate or change when a tab is selected" }),
|
|
105
|
+
!isMeasuring && hidden.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { id: warningId, className: withBaseName("overflowWarning"), children: "Note: This tab list includes overflow; tab positions may be inaccurate or change when a tab is selected" }),
|
|
112
106
|
visible,
|
|
113
107
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
114
108
|
TabOverflowList.TabOverflowList,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabListNext.js","sources":["../src/tabs-next/TabListNext.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"TabListNext.js","sources":["../src/tabs-next/TabListNext.tsx"],"sourcesContent":["import { capitalize, makePrefixer, useForkRef, useId } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n forwardRef,\n useRef,\n} from \"react\";\n\nimport tablistNextCss from \"./TabListNext.css\";\nimport { TabOverflowList } from \"./TabOverflowList\";\nimport { useTabsNext } from \"./TabsNextContext\";\nimport { useOverflow } from \"./hooks/useOverflow\";\nimport { useRestoreActiveTab } from \"./hooks/useRestoreActiveTab\";\n\nconst withBaseName = makePrefixer(\"saltTabListNext\");\n\nexport interface TabListNextProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n /**\n * Styling active color variant. Defaults to \"primary\".\n */\n activeColor?: \"primary\" | \"secondary\" | \"tertiary\";\n /**\n * The appearance of the tabs. Defaults to \"bordered\".\n */\n appearance?: \"bordered\" | \"transparent\";\n}\n\nexport const TabListNext = forwardRef<HTMLDivElement, TabListNextProps>(\n function TabstripNext(props, ref) {\n const {\n appearance = \"bordered\",\n activeColor = \"primary\",\n \"aria-describedby\": ariaDescribedBy,\n children,\n className,\n onKeyDown,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tablist-next\",\n css: tablistNextCss,\n window: targetWindow,\n });\n\n const {\n selected,\n getNext,\n getPrevious,\n getFirst,\n getLast,\n items,\n activeTab,\n menuOpen,\n setMenuOpen,\n removedActiveTabRef,\n } = useTabsNext();\n\n const tabstripRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(tabstripRef, ref);\n const overflowButtonRef = useRef<HTMLButtonElement>(null);\n\n const [visible, hidden, isMeasuring, realSelectedIndexRef] = useOverflow({\n container: tabstripRef,\n tabs: items,\n children,\n selected,\n overflowButton: overflowButtonRef,\n });\n\n useRestoreActiveTab({\n container: tabstripRef,\n tabs: items,\n realSelectedIndex: realSelectedIndexRef,\n removedActiveTabRef,\n });\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n\n const actionMap = {\n ArrowRight: getNext,\n ArrowLeft: getPrevious,\n Home: getFirst,\n End: getLast,\n ArrowUp: menuOpen ? getPrevious : undefined,\n ArrowDown: menuOpen ? getNext : undefined,\n };\n\n const action = actionMap[event.key as keyof typeof actionMap];\n\n if (action) {\n event.preventDefault();\n const activeTabId = activeTab.current?.id;\n if (!activeTabId) return;\n const nextItem = action(activeTabId);\n if (nextItem) {\n nextItem.element?.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n });\n nextItem.element?.focus({ preventScroll: true });\n }\n }\n };\n\n const warningId = useId();\n\n return (\n <div\n role=\"tablist\"\n className={clsx(\n withBaseName(),\n withBaseName(appearance),\n withBaseName(\"horizontal\"),\n withBaseName(`activeColor${capitalize(activeColor)}`),\n className,\n )}\n data-ismeasuring={isMeasuring ? true : undefined}\n ref={handleRef}\n onKeyDown={handleKeyDown}\n aria-describedby={clsx(ariaDescribedBy, warningId)}\n {...rest}\n >\n {!isMeasuring && hidden.length > 0 && (\n <span id={warningId} className={withBaseName(\"overflowWarning\")}>\n Note: This tab list includes overflow; tab positions may be\n inaccurate or change when a tab is selected\n </span>\n )}\n {visible}\n <TabOverflowList\n isMeasuring={isMeasuring}\n buttonRef={overflowButtonRef}\n tabstripRef={tabstripRef}\n open={menuOpen}\n setOpen={setMenuOpen}\n >\n {hidden}\n </TabOverflowList>\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","useWindow","useComponentCssInjection","tablistNextCss","useTabsNext","useRef","useForkRef","useOverflow","useRestoreActiveTab","useId","jsxs","clsx","capitalize","jsx","TabOverflowList"],"mappings":";;;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,kBAAa,iBAAiB,CAAA;AAc5C,MAAM,WAAc,GAAAC,gBAAA;AAAA,EACzB,SAAS,YAAa,CAAA,KAAA,EAAO,GAAK,EAAA;AAChC,IAAM,MAAA;AAAA,MACJ,UAAa,GAAA,UAAA;AAAA,MACb,WAAc,GAAA,SAAA;AAAA,MACd,kBAAoB,EAAA,eAAA;AAAA,MACpB,QAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,GAAG;AAAA,KACD,GAAA,KAAA;AACJ,IAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,mBAAA;AAAA,MACR,GAAK,EAAAC,aAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,QACEC,2BAAY,EAAA;AAEhB,IAAM,MAAA,WAAA,GAAcC,aAAuB,IAAI,CAAA;AAC/C,IAAM,MAAA,SAAA,GAAYC,eAAW,CAAA,WAAA,EAAa,GAAG,CAAA;AAC7C,IAAM,MAAA,iBAAA,GAAoBD,aAA0B,IAAI,CAAA;AAExD,IAAA,MAAM,CAAC,OAAS,EAAA,MAAA,EAAQ,WAAa,EAAA,oBAAoB,IAAIE,uBAAY,CAAA;AAAA,MACvE,SAAW,EAAA,WAAA;AAAA,MACX,IAAM,EAAA,KAAA;AAAA,MACN,QAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAgB,EAAA;AAAA,KACjB,CAAA;AAED,IAAoBC,uCAAA,CAAA;AAAA,MAClB,SAAW,EAAA,WAAA;AAAA,MACX,IAAM,EAAA,KAAA;AAAA,MACN,iBAAmB,EAAA,oBAAA;AAAA,MACnB;AAAA,KACD,CAAA;AAED,IAAM,MAAA,aAAA,GAAgB,CAAC,KAAyC,KAAA;AAjFpE,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAkFM,MAAY,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA;AAEZ,MAAA,MAAM,SAAY,GAAA;AAAA,QAChB,UAAY,EAAA,OAAA;AAAA,QACZ,SAAW,EAAA,WAAA;AAAA,QACX,IAAM,EAAA,QAAA;AAAA,QACN,GAAK,EAAA,OAAA;AAAA,QACL,OAAA,EAAS,WAAW,WAAc,GAAA,KAAA,CAAA;AAAA,QAClC,SAAA,EAAW,WAAW,OAAU,GAAA,KAAA;AAAA,OAClC;AAEA,MAAM,MAAA,MAAA,GAAS,SAAU,CAAA,KAAA,CAAM,GAA6B,CAAA;AAE5D,MAAA,IAAI,MAAQ,EAAA;AACV,QAAA,KAAA,CAAM,cAAe,EAAA;AACrB,QAAM,MAAA,WAAA,GAAA,CAAc,EAAU,GAAA,SAAA,CAAA,OAAA,KAAV,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAA;AACvC,QAAA,IAAI,CAAC,WAAa,EAAA;AAClB,QAAM,MAAA,QAAA,GAAW,OAAO,WAAW,CAAA;AACnC,QAAA,IAAI,QAAU,EAAA;AACZ,UAAS,CAAA,EAAA,GAAA,QAAA,CAAA,OAAA,KAAT,mBAAkB,cAAe,CAAA;AAAA,YAC/B,KAAO,EAAA,SAAA;AAAA,YACP,MAAQ,EAAA;AAAA,WACV,CAAA;AACA,UAAA,CAAA,EAAA,GAAA,QAAA,CAAS,OAAT,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,KAAM,CAAA,EAAE,eAAe,IAAK,EAAA,CAAA;AAAA;AAChD;AACF,KACF;AAEA,IAAA,MAAM,YAAYC,UAAM,EAAA;AAExB,IACE,uBAAAC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,SAAA;AAAA,QACL,SAAW,EAAAC,SAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb,aAAa,UAAU,CAAA;AAAA,UACvB,aAAa,YAAY,CAAA;AAAA,UACzB,YAAa,CAAA,CAAA,WAAA,EAAcC,eAAW,CAAA,WAAW,CAAC,CAAE,CAAA,CAAA;AAAA,UACpD;AAAA,SACF;AAAA,QACA,kBAAA,EAAkB,cAAc,IAAO,GAAA,KAAA,CAAA;AAAA,QACvC,GAAK,EAAA,SAAA;AAAA,QACL,SAAW,EAAA,aAAA;AAAA,QACX,kBAAA,EAAkBD,SAAK,CAAA,eAAA,EAAiB,SAAS,CAAA;AAAA,QAChD,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,CAAC,WAAe,IAAA,MAAA,CAAO,MAAS,GAAA,CAAA,oBAC9BE,cAAA,CAAA,MAAA,EAAA,EAAK,EAAI,EAAA,SAAA,EAAW,SAAW,EAAA,YAAA,CAAa,iBAAiB,CAAA,EAAG,QAGjE,EAAA,yGAAA,EAAA,CAAA;AAAA,UAED,OAAA;AAAA,0BACDA,cAAA;AAAA,YAACC,+BAAA;AAAA,YAAA;AAAA,cACC,WAAA;AAAA,cACA,SAAW,EAAA,iBAAA;AAAA,cACX,WAAA;AAAA,cACA,IAAM,EAAA,QAAA;AAAA,cACN,OAAS,EAAA,WAAA;AAAA,cAER,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,KACF;AAAA;AAGN;;;;"}
|
|
@@ -89,7 +89,7 @@ const TabOverflowList = react.forwardRef(
|
|
|
89
89
|
const listId = core.useId();
|
|
90
90
|
const childCount = react.Children.count(children);
|
|
91
91
|
if (childCount === 0 && !isMeasuring) return null;
|
|
92
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: withBaseName(), ref: handleRootRef, children: [
|
|
92
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: withBaseName(), ref: handleRootRef, "data-overflow": true, children: [
|
|
93
93
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
94
94
|
core.Button,
|
|
95
95
|
{
|