@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.
Files changed (198) hide show
  1. package/CHANGELOG.md +301 -0
  2. package/css/salt-lab.css +192 -163
  3. package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
  4. package/dist-cjs/date-picker/DatePicker.js +3 -2
  5. package/dist-cjs/date-picker/DatePicker.js.map +1 -1
  6. package/dist-cjs/date-picker/DatePickerOverlayProvider.js +5 -2
  7. package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -1
  8. package/dist-cjs/date-picker/DatePickerRangeInput.js +3 -3
  9. package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
  10. package/dist-cjs/date-picker/DatePickerSingleInput.js +2 -2
  11. package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
  12. package/dist-cjs/dialog/DialogHeader.css.js +1 -1
  13. package/dist-cjs/dialog/DialogHeader.js +2 -2
  14. package/dist-cjs/dialog/DialogHeader.js.map +1 -1
  15. package/dist-cjs/index.js +4 -8
  16. package/dist-cjs/index.js.map +1 -1
  17. package/dist-cjs/overlay/OverlayHeader.css.js +1 -1
  18. package/dist-cjs/overlay/OverlayHeader.js +2 -2
  19. package/dist-cjs/overlay/OverlayHeader.js.map +1 -1
  20. package/dist-cjs/stepped-tracker/Step.Connector.css.js +6 -0
  21. package/dist-cjs/stepped-tracker/Step.Connector.css.js.map +1 -0
  22. package/dist-cjs/stepped-tracker/Step.Connector.js +21 -0
  23. package/dist-cjs/stepped-tracker/Step.Connector.js.map +1 -0
  24. package/dist-cjs/stepped-tracker/Step.Description.css.js +6 -0
  25. package/dist-cjs/stepped-tracker/Step.Description.css.js.map +1 -0
  26. package/dist-cjs/stepped-tracker/Step.Description.js +35 -0
  27. package/dist-cjs/stepped-tracker/Step.Description.js.map +1 -0
  28. package/dist-cjs/stepped-tracker/Step.ExpandTrigger.css.js +6 -0
  29. package/dist-cjs/stepped-tracker/Step.ExpandTrigger.css.js.map +1 -0
  30. package/dist-cjs/stepped-tracker/Step.ExpandTrigger.js +38 -0
  31. package/dist-cjs/stepped-tracker/Step.ExpandTrigger.js.map +1 -0
  32. package/dist-cjs/stepped-tracker/Step.Icon.css.js +6 -0
  33. package/dist-cjs/stepped-tracker/Step.Icon.css.js.map +1 -0
  34. package/dist-cjs/stepped-tracker/Step.Icon.js +57 -0
  35. package/dist-cjs/stepped-tracker/Step.Icon.js.map +1 -0
  36. package/dist-cjs/stepped-tracker/Step.Label.css.js +6 -0
  37. package/dist-cjs/stepped-tracker/Step.Label.css.js.map +1 -0
  38. package/dist-cjs/stepped-tracker/Step.Label.js +37 -0
  39. package/dist-cjs/stepped-tracker/Step.Label.js.map +1 -0
  40. package/dist-cjs/stepped-tracker/Step.SROnly.css.js +6 -0
  41. package/dist-cjs/stepped-tracker/Step.SROnly.css.js.map +1 -0
  42. package/dist-cjs/stepped-tracker/Step.SROnly.js +21 -0
  43. package/dist-cjs/stepped-tracker/Step.SROnly.js.map +1 -0
  44. package/dist-cjs/stepped-tracker/Step.css.js +6 -0
  45. package/dist-cjs/stepped-tracker/Step.css.js.map +1 -0
  46. package/dist-cjs/stepped-tracker/Step.js +161 -0
  47. package/dist-cjs/stepped-tracker/Step.js.map +1 -0
  48. package/dist-cjs/stepped-tracker/SteppedTracker.Provider.js +19 -0
  49. package/dist-cjs/stepped-tracker/SteppedTracker.Provider.js.map +1 -0
  50. package/dist-cjs/stepped-tracker/SteppedTracker.css.js +1 -1
  51. package/dist-cjs/stepped-tracker/SteppedTracker.js +10 -33
  52. package/dist-cjs/stepped-tracker/SteppedTracker.js.map +1 -1
  53. package/dist-cjs/stepped-tracker/stepReducer.js +109 -0
  54. package/dist-cjs/stepped-tracker/stepReducer.js.map +1 -0
  55. package/dist-cjs/stepped-tracker/useStepReducer.js +16 -0
  56. package/dist-cjs/stepped-tracker/useStepReducer.js.map +1 -0
  57. package/dist-cjs/stepped-tracker/utils.js +86 -0
  58. package/dist-cjs/stepped-tracker/utils.js.map +1 -0
  59. package/dist-es/calendar/useCalendarSelection.js.map +1 -1
  60. package/dist-es/date-picker/DatePicker.js +3 -2
  61. package/dist-es/date-picker/DatePicker.js.map +1 -1
  62. package/dist-es/date-picker/DatePickerOverlayProvider.js +5 -2
  63. package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -1
  64. package/dist-es/date-picker/DatePickerRangeInput.js +4 -4
  65. package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
  66. package/dist-es/date-picker/DatePickerSingleInput.js +3 -3
  67. package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
  68. package/dist-es/dialog/DialogHeader.css.js +1 -1
  69. package/dist-es/dialog/DialogHeader.js +3 -3
  70. package/dist-es/dialog/DialogHeader.js.map +1 -1
  71. package/dist-es/index.js +2 -4
  72. package/dist-es/index.js.map +1 -1
  73. package/dist-es/overlay/OverlayHeader.css.js +1 -1
  74. package/dist-es/overlay/OverlayHeader.js +3 -3
  75. package/dist-es/overlay/OverlayHeader.js.map +1 -1
  76. package/dist-es/stepped-tracker/Step.Connector.css.js +4 -0
  77. package/dist-es/stepped-tracker/Step.Connector.css.js.map +1 -0
  78. package/dist-es/stepped-tracker/Step.Connector.js +19 -0
  79. package/dist-es/stepped-tracker/Step.Connector.js.map +1 -0
  80. package/dist-es/stepped-tracker/Step.Description.css.js +4 -0
  81. package/dist-es/stepped-tracker/Step.Description.css.js.map +1 -0
  82. package/dist-es/stepped-tracker/Step.Description.js +33 -0
  83. package/dist-es/stepped-tracker/Step.Description.js.map +1 -0
  84. package/dist-es/stepped-tracker/Step.ExpandTrigger.css.js +4 -0
  85. package/dist-es/stepped-tracker/Step.ExpandTrigger.css.js.map +1 -0
  86. package/dist-es/stepped-tracker/Step.ExpandTrigger.js +36 -0
  87. package/dist-es/stepped-tracker/Step.ExpandTrigger.js.map +1 -0
  88. package/dist-es/stepped-tracker/Step.Icon.css.js +4 -0
  89. package/dist-es/stepped-tracker/Step.Icon.css.js.map +1 -0
  90. package/dist-es/stepped-tracker/Step.Icon.js +55 -0
  91. package/dist-es/stepped-tracker/Step.Icon.js.map +1 -0
  92. package/dist-es/stepped-tracker/Step.Label.css.js +4 -0
  93. package/dist-es/stepped-tracker/Step.Label.css.js.map +1 -0
  94. package/dist-es/stepped-tracker/Step.Label.js +35 -0
  95. package/dist-es/stepped-tracker/Step.Label.js.map +1 -0
  96. package/dist-es/stepped-tracker/Step.SROnly.css.js +4 -0
  97. package/dist-es/stepped-tracker/Step.SROnly.css.js.map +1 -0
  98. package/dist-es/stepped-tracker/Step.SROnly.js +19 -0
  99. package/dist-es/stepped-tracker/Step.SROnly.js.map +1 -0
  100. package/dist-es/stepped-tracker/Step.css.js +4 -0
  101. package/dist-es/stepped-tracker/Step.css.js.map +1 -0
  102. package/dist-es/stepped-tracker/Step.js +159 -0
  103. package/dist-es/stepped-tracker/Step.js.map +1 -0
  104. package/dist-es/stepped-tracker/SteppedTracker.Provider.js +15 -0
  105. package/dist-es/stepped-tracker/SteppedTracker.Provider.js.map +1 -0
  106. package/dist-es/stepped-tracker/SteppedTracker.css.js +1 -1
  107. package/dist-es/stepped-tracker/SteppedTracker.js +11 -34
  108. package/dist-es/stepped-tracker/SteppedTracker.js.map +1 -1
  109. package/dist-es/stepped-tracker/stepReducer.js +107 -0
  110. package/dist-es/stepped-tracker/stepReducer.js.map +1 -0
  111. package/dist-es/stepped-tracker/useStepReducer.js +14 -0
  112. package/dist-es/stepped-tracker/useStepReducer.js.map +1 -0
  113. package/dist-es/stepped-tracker/utils.js +80 -0
  114. package/dist-es/stepped-tracker/utils.js.map +1 -0
  115. package/dist-types/date-picker/DatePicker.d.ts +1 -1
  116. package/dist-types/date-picker/DatePickerActions.d.ts +2 -2
  117. package/dist-types/date-picker/DatePickerOverlayProvider.d.ts +4 -0
  118. package/dist-types/date-picker/DatePickerRangeInput.d.ts +1 -1
  119. package/dist-types/date-picker/DatePickerRangePanel.d.ts +1 -1
  120. package/dist-types/date-picker/DatePickerSinglePanel.d.ts +1 -1
  121. package/dist-types/index.d.ts +0 -1
  122. package/dist-types/localization-provider/LocalizationProvider.d.ts +2 -2
  123. package/dist-types/stepped-tracker/Step.Connector.d.ts +1 -0
  124. package/dist-types/stepped-tracker/Step.Description.d.ts +4 -0
  125. package/dist-types/stepped-tracker/Step.ExpandTrigger.d.ts +5 -0
  126. package/dist-types/stepped-tracker/Step.Icon.d.ts +8 -0
  127. package/dist-types/stepped-tracker/Step.Label.d.ts +4 -0
  128. package/dist-types/stepped-tracker/Step.SROnly.d.ts +5 -0
  129. package/dist-types/stepped-tracker/Step.d.ts +2 -0
  130. package/dist-types/stepped-tracker/Step.types.d.ts +21 -0
  131. package/dist-types/stepped-tracker/SteppedTracker.Provider.d.ts +9 -0
  132. package/dist-types/stepped-tracker/SteppedTracker.d.ts +2 -16
  133. package/dist-types/stepped-tracker/SteppedTracker.types.d.ts +6 -0
  134. package/dist-types/stepped-tracker/index.d.ts +5 -2
  135. package/dist-types/stepped-tracker/stepReducer.d.ts +2 -0
  136. package/dist-types/stepped-tracker/stepReducer.types.d.ts +25 -0
  137. package/dist-types/stepped-tracker/useStepReducer.d.ts +3 -0
  138. package/dist-types/stepped-tracker/utils.d.ts +7 -0
  139. package/package.json +15 -13
  140. package/dist-cjs/skip-link/SkipLink.css.js +0 -6
  141. package/dist-cjs/skip-link/SkipLink.css.js.map +0 -1
  142. package/dist-cjs/skip-link/SkipLink.js +0 -36
  143. package/dist-cjs/skip-link/SkipLink.js.map +0 -1
  144. package/dist-cjs/skip-link/SkipLinks.css.js +0 -6
  145. package/dist-cjs/skip-link/SkipLinks.css.js.map +0 -1
  146. package/dist-cjs/skip-link/SkipLinks.js +0 -24
  147. package/dist-cjs/skip-link/SkipLinks.js.map +0 -1
  148. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js +0 -59
  149. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js.map +0 -1
  150. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js +0 -6
  151. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js.map +0 -1
  152. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +0 -25
  153. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js.map +0 -1
  154. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +0 -43
  155. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js.map +0 -1
  156. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js +0 -6
  157. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +0 -1
  158. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js +0 -22
  159. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js.map +0 -1
  160. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js +0 -6
  161. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js.map +0 -1
  162. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +0 -96
  163. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +0 -1
  164. package/dist-es/skip-link/SkipLink.css.js +0 -4
  165. package/dist-es/skip-link/SkipLink.css.js.map +0 -1
  166. package/dist-es/skip-link/SkipLink.js +0 -34
  167. package/dist-es/skip-link/SkipLink.js.map +0 -1
  168. package/dist-es/skip-link/SkipLinks.css.js +0 -4
  169. package/dist-es/skip-link/SkipLinks.css.js.map +0 -1
  170. package/dist-es/skip-link/SkipLinks.js +0 -22
  171. package/dist-es/skip-link/SkipLinks.js.map +0 -1
  172. package/dist-es/skip-link/internal/useManageFocusOnTarget.js +0 -57
  173. package/dist-es/skip-link/internal/useManageFocusOnTarget.js.map +0 -1
  174. package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js +0 -4
  175. package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js.map +0 -1
  176. package/dist-es/stepped-tracker/StepLabel/StepLabel.js +0 -23
  177. package/dist-es/stepped-tracker/StepLabel/StepLabel.js.map +0 -1
  178. package/dist-es/stepped-tracker/SteppedTrackerContext.js +0 -38
  179. package/dist-es/stepped-tracker/SteppedTrackerContext.js.map +0 -1
  180. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js +0 -4
  181. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +0 -1
  182. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js +0 -20
  183. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js.map +0 -1
  184. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js +0 -4
  185. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js.map +0 -1
  186. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +0 -94
  187. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +0 -1
  188. package/dist-types/skip-link/SkipLink.d.ts +0 -15
  189. package/dist-types/skip-link/SkipLinks.d.ts +0 -2
  190. package/dist-types/skip-link/index.d.ts +0 -2
  191. package/dist-types/skip-link/internal/useManageFocusOnTarget.d.ts +0 -10
  192. package/dist-types/stepped-tracker/StepLabel/StepLabel.d.ts +0 -9
  193. package/dist-types/stepped-tracker/StepLabel/index.d.ts +0 -1
  194. package/dist-types/stepped-tracker/SteppedTrackerContext.d.ts +0 -18
  195. package/dist-types/stepped-tracker/TrackerConnector/TrackerConnector.d.ts +0 -9
  196. package/dist-types/stepped-tracker/TrackerConnector/index.d.ts +0 -1
  197. package/dist-types/stepped-tracker/TrackerStep/TrackerStep.d.ts +0 -18
  198. package/dist-types/stepped-tracker/TrackerStep/index.d.ts +0 -2
@@ -0,0 +1,107 @@
1
+ import { resetSteps, flattenSteps, autoStageSteps, assignSteps } from './utils.js';
2
+
3
+ function stepReducer(state, action) {
4
+ var _a, _b;
5
+ if (action.type === "next") {
6
+ if (((_a = state.activeStep) == null ? void 0 : _a.status) === "error") {
7
+ return state;
8
+ }
9
+ const steps = resetSteps(state.steps);
10
+ const flatSteps = flattenSteps(steps);
11
+ if (state.nextStep) {
12
+ const activeStepIndex2 = state.activeStepIndex + 1;
13
+ const activeStep2 = flatSteps[activeStepIndex2];
14
+ const previousStep2 = flatSteps[activeStepIndex2 - 1] || null;
15
+ const nextStep2 = flatSteps[activeStepIndex2 + 1] || null;
16
+ if (activeStep2) {
17
+ activeStep2.stage = "active";
18
+ }
19
+ return {
20
+ steps: autoStageSteps(steps),
21
+ flatSteps,
22
+ activeStepIndex: activeStepIndex2,
23
+ activeStep: activeStep2,
24
+ previousStep: previousStep2,
25
+ nextStep: nextStep2,
26
+ started: true,
27
+ ended: false
28
+ };
29
+ }
30
+ const activeStepIndex = flatSteps.length;
31
+ const previousStep = flatSteps.at(-1);
32
+ const activeStep = null;
33
+ const nextStep = null;
34
+ return {
35
+ steps: assignSteps(steps, "completed"),
36
+ flatSteps,
37
+ activeStepIndex,
38
+ activeStep,
39
+ previousStep,
40
+ nextStep,
41
+ started: true,
42
+ ended: true
43
+ };
44
+ }
45
+ if (action.type === "previous") {
46
+ if (((_b = state.activeStep) == null ? void 0 : _b.status) === "error") {
47
+ return state;
48
+ }
49
+ const steps = resetSteps(state.steps);
50
+ const flatSteps = flattenSteps(steps);
51
+ if (state.previousStep) {
52
+ const activeStepIndex2 = state.activeStepIndex - 1;
53
+ const activeStep2 = flatSteps[activeStepIndex2];
54
+ const previousStep2 = flatSteps[activeStepIndex2 - 1] || null;
55
+ const nextStep2 = flatSteps[activeStepIndex2 + 1] || null;
56
+ if (activeStep2) {
57
+ activeStep2.stage = "active";
58
+ }
59
+ return {
60
+ steps: autoStageSteps(steps),
61
+ flatSteps,
62
+ activeStepIndex: activeStepIndex2,
63
+ activeStep: activeStep2,
64
+ previousStep: previousStep2,
65
+ nextStep: nextStep2,
66
+ started: true,
67
+ ended: false
68
+ };
69
+ }
70
+ const activeStepIndex = -1;
71
+ const activeStep = null;
72
+ const previousStep = null;
73
+ const nextStep = flatSteps.at(0);
74
+ return {
75
+ steps: assignSteps(steps, "pending"),
76
+ flatSteps,
77
+ activeStepIndex,
78
+ activeStep,
79
+ previousStep,
80
+ nextStep,
81
+ ended: false,
82
+ started: false
83
+ };
84
+ }
85
+ if (action.type === "error") {
86
+ if (state.activeStep) {
87
+ state.activeStep.status = "error";
88
+ return { ...state };
89
+ }
90
+ }
91
+ if (action.type === "warning") {
92
+ if (state.activeStep) {
93
+ state.activeStep.status = "warning";
94
+ return { ...state };
95
+ }
96
+ }
97
+ if (action.type === "clear") {
98
+ if (state.activeStep) {
99
+ state.activeStep.status = void 0;
100
+ return { ...state };
101
+ }
102
+ }
103
+ return state;
104
+ }
105
+
106
+ export { stepReducer as default };
107
+ //# 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":["activeStepIndex","activeStep","previousStep","nextStep"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { useMemo, useReducer } from 'react';
2
+ import stepReducer from './stepReducer.js';
3
+ import { initStepReducerState } from './utils.js';
4
+
5
+ function useStepReducer(initialSteps, options) {
6
+ const state = useMemo(
7
+ () => initStepReducerState(initialSteps, options),
8
+ [initialSteps, options]
9
+ );
10
+ return useReducer(stepReducer, state);
11
+ }
12
+
13
+ export { useStepReducer };
14
+ //# 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":[],"mappings":";;;;AAQgB,SAAA,cAAA,CACd,cACA,OACA,EAAA;AACA,EAAA,MAAM,KAAQ,GAAA,OAAA;AAAA,IACZ,MAAM,oBAAqB,CAAA,YAAA,EAAc,OAAO,CAAA;AAAA,IAChD,CAAC,cAAc,OAAO;AAAA,GACxB;AAEA,EAAO,OAAA,UAAA,CAAW,aAAa,KAAK,CAAA;AACtC;;;;"}
@@ -0,0 +1,80 @@
1
+ function assignSteps(steps, stage) {
2
+ return steps.map((step) => {
3
+ step.stage = stage;
4
+ if (step.substeps) {
5
+ step.substeps = assignSteps(step.substeps, stage);
6
+ }
7
+ return step;
8
+ });
9
+ }
10
+ function resetSteps(steps) {
11
+ return assignSteps(steps, void 0);
12
+ }
13
+ function autoStageSteps(steps, options) {
14
+ function autoStageHelper(steps2) {
15
+ const pivotIndex = steps2.findIndex(
16
+ (step) => (step == null ? void 0 : step.id) && (options == null ? void 0 : options.activeStepId) && step.id === options.activeStepId || step.stage === "active" || step.stage === "inprogress"
17
+ );
18
+ if (pivotIndex !== -1) {
19
+ const activeStep = steps2[pivotIndex];
20
+ activeStep.stage ||= "active";
21
+ const previousSteps = assignSteps(
22
+ steps2.slice(0, pivotIndex),
23
+ "completed"
24
+ );
25
+ const nextSteps = assignSteps(steps2.slice(pivotIndex + 1), "pending");
26
+ return [...previousSteps, activeStep, ...nextSteps];
27
+ }
28
+ return steps2.reduce(
29
+ (acc, step, index) => {
30
+ if (step.substeps) {
31
+ const substeps = autoStageHelper(step.substeps);
32
+ if (substeps) {
33
+ steps2[index].substeps = substeps;
34
+ steps2[index].stage = "inprogress";
35
+ return autoStageHelper(steps2);
36
+ }
37
+ }
38
+ return acc;
39
+ },
40
+ null
41
+ );
42
+ }
43
+ return autoStageHelper(steps) || assignSteps(steps, steps[0].stage || "pending");
44
+ }
45
+ function flattenSteps(steps) {
46
+ return steps.reduce((acc, step) => {
47
+ if (step.substeps) {
48
+ acc.push(...flattenSteps(step.substeps));
49
+ return acc;
50
+ }
51
+ acc.push(step);
52
+ return acc;
53
+ }, []);
54
+ }
55
+ function initStepReducerState(initialSteps, options) {
56
+ const steps = autoStageSteps(initialSteps, options);
57
+ const flatSteps = flattenSteps(steps);
58
+ const started = !flatSteps.every((step) => step.stage === "pending");
59
+ const ended = flatSteps.every((step) => step.stage === "completed");
60
+ let activeStepIndex = flatSteps.findIndex((step) => step.stage === "active");
61
+ if (activeStepIndex === -1 && ended) {
62
+ activeStepIndex = flatSteps.length;
63
+ }
64
+ const activeStep = flatSteps[activeStepIndex] || null;
65
+ const previousStep = flatSteps[activeStepIndex - 1] || null;
66
+ const nextStep = flatSteps[activeStepIndex + 1] || null;
67
+ return {
68
+ steps,
69
+ flatSteps,
70
+ activeStep,
71
+ previousStep,
72
+ nextStep,
73
+ activeStepIndex,
74
+ ended,
75
+ started
76
+ };
77
+ }
78
+
79
+ export { assignSteps, autoStageSteps, flattenSteps, initStepReducerState, resetSteps };
80
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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 assignSteps(\n steps: StepRecord[],\n stage?: StepStage,\n): StepRecord[] {\n return steps.map((step) => {\n step.stage = stage;\n if (step.substeps) {\n step.substeps = assignSteps(step.substeps, stage);\n }\n\n return step;\n });\n}\n\nexport function resetSteps(steps: StepRecord[]): StepRecord[] {\n return assignSteps(steps, undefined);\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 = assignSteps(\n steps.slice(0, pivotIndex),\n \"completed\",\n );\n const nextSteps = assignSteps(steps.slice(pivotIndex + 1), \"pending\");\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) || assignSteps(steps, steps[0].stage || \"pending\")\n );\n}\n\nexport function flattenSteps(steps: StepRecord[]): StepRecord[] {\n return steps.reduce((acc, step) => {\n if (step.substeps) {\n acc.push(...flattenSteps(step.substeps));\n\n return acc;\n }\n\n acc.push(step);\n\n return acc;\n }, [] as StepRecord[]);\n}\n\nexport function initStepReducerState(\n initialSteps: StepRecord[],\n options?: StepReducerOptions,\n) {\n const steps = autoStageSteps(initialSteps, options);\n const flatSteps = flattenSteps(steps);\n const started = !flatSteps.every((step) => step.stage === \"pending\");\n const ended = flatSteps.every((step) => step.stage === \"completed\");\n\n let activeStepIndex = flatSteps.findIndex((step) => step.stage === \"active\");\n\n if (activeStepIndex === -1 && ended) {\n activeStepIndex = flatSteps.length;\n }\n\n const activeStep = flatSteps[activeStepIndex] || null;\n const previousStep = flatSteps[activeStepIndex - 1] || null;\n const nextStep = flatSteps[activeStepIndex + 1] || null;\n\n return {\n steps,\n flatSteps,\n activeStep,\n previousStep,\n nextStep,\n activeStepIndex,\n ended,\n started,\n } as StepReducerState;\n}\n"],"names":["steps"],"mappings":"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"}
@@ -39,4 +39,4 @@ export interface DatePickerRangeProps<TDate extends DateFrameworkType> extends D
39
39
  */
40
40
  export declare type DatePickerProps<TDate extends DateFrameworkType> = DatePickerSingleProps<TDate> | DatePickerRangeProps<TDate>;
41
41
  export declare const DatePickerMain: import("react").ForwardRefExoticComponent<DatePickerProps<any> & import("react").RefAttributes<HTMLDivElement>>;
42
- export declare const DatePicker: import("react").ForwardRefExoticComponent<DatePickerProps<Date | import("dayjs").Dayjs | import("luxon").DateTime<boolean> | import("moment").Moment> & import("react").RefAttributes<HTMLDivElement>>;
42
+ export declare const DatePicker: import("react").ForwardRefExoticComponent<DatePickerProps<unknown> & import("react").RefAttributes<HTMLDivElement>>;
@@ -66,7 +66,7 @@ export declare const DatePickerActions: import("react").ForwardRefExoticComponen
66
66
  * @param _event - The synthetic event.
67
67
  * @param date - The selected date range or null.
68
68
  */
69
- onApply?: ((_event: SyntheticEvent, date: DateRangeSelection<Date | import("dayjs").Dayjs | import("luxon").DateTime<boolean> | import("moment").Moment> | null) => void) | undefined;
69
+ onApply?: ((_event: SyntheticEvent, date: DateRangeSelection<unknown> | null) => void) | undefined;
70
70
  }) | (DatePickerActionsBaseProps & {
71
71
  /**
72
72
  * The selection variant, set to "single".
@@ -77,5 +77,5 @@ export declare const DatePickerActions: import("react").ForwardRefExoticComponen
77
77
  * @param _event - The synthetic event.
78
78
  * @param date - The selected single date or null.
79
79
  */
80
- onApply?: ((_event: SyntheticEvent, date: Date | import("dayjs").Dayjs | import("luxon").DateTime<boolean> | import("moment").Moment | null) => void) | undefined;
80
+ onApply?: ((_event: SyntheticEvent, date: unknown) => void) | undefined;
81
81
  })) & import("react").RefAttributes<HTMLDivElement>>;
@@ -71,6 +71,10 @@ interface DatePickerOverlayProviderProps {
71
71
  * The content to be rendered inside the overlay provider.
72
72
  */
73
73
  children: ReactNode;
74
+ /**
75
+ * When true, shouldn't open the overlay.
76
+ */
77
+ readOnly?: boolean;
74
78
  }
75
79
  export declare const DatePickerOverlayProvider: React.FC<DatePickerOverlayProviderProps>;
76
80
  export declare const useDatePickerOverlay: () => DatePickerOverlayContextType;
@@ -14,4 +14,4 @@ export interface DatePickerRangeInputProps<TDate extends DateFrameworkType> exte
14
14
  validate?: (date: DateRangeSelection<TDate> | null, details: DateInputRangeDetails) => DateInputRangeDetails;
15
15
  }
16
16
  export declare function defaultRangeValidator<TDate extends DateFrameworkType>(dateAdapter: SaltDateAdapter<TDate>, date: DateRangeSelection<TDate> | null, details: DateInputRangeDetails, minDate: TDate | undefined, maxDate: TDate | undefined): DateInputRangeDetails;
17
- export declare const DatePickerRangeInput: import("react").ForwardRefExoticComponent<DatePickerRangeInputProps<Date | import("dayjs").Dayjs | import("luxon").DateTime<boolean> | import("moment").Moment> & import("react").RefAttributes<HTMLDivElement>>;
17
+ export declare const DatePickerRangeInput: import("react").ForwardRefExoticComponent<DatePickerRangeInputProps<unknown> & import("react").RefAttributes<HTMLDivElement>>;
@@ -77,4 +77,4 @@ export interface DatePickerRangePanelProps<TDate extends DateFrameworkType> exte
77
77
  */
78
78
  EndCalendarDataGridProps?: CalendarGridProps<TDate>;
79
79
  }
80
- export declare const DatePickerRangePanel: import("react").ForwardRefExoticComponent<DatePickerRangePanelProps<Date | import("dayjs").Dayjs | import("luxon").DateTime<boolean> | import("moment").Moment> & import("react").RefAttributes<HTMLDivElement>>;
80
+ export declare const DatePickerRangePanel: import("react").ForwardRefExoticComponent<DatePickerRangePanelProps<unknown> & import("react").RefAttributes<HTMLDivElement>>;
@@ -47,4 +47,4 @@ export interface DatePickerSinglePanelProps<TDate extends DateFrameworkType> ext
47
47
  */
48
48
  CalendarDataGridProps?: CalendarGridProps<TDate>;
49
49
  }
50
- export declare const DatePickerSinglePanel: import("react").ForwardRefExoticComponent<DatePickerSinglePanelProps<Date | import("dayjs").Dayjs | import("luxon").DateTime<boolean> | import("moment").Moment> & import("react").RefAttributes<HTMLDivElement>>;
50
+ export declare const DatePickerSinglePanel: import("react").ForwardRefExoticComponent<DatePickerSinglePanelProps<unknown> & import("react").RefAttributes<HTMLDivElement>>;
@@ -36,7 +36,6 @@ export * from "./portal";
36
36
  export * from "./query-input";
37
37
  export * from "./responsive";
38
38
  export * from "./search-input";
39
- export * from "./skip-link";
40
39
  export * from "./slider";
41
40
  export * from "./static-list";
42
41
  export * from "./stepped-tracker";
@@ -45,7 +45,7 @@ export declare type LocalizationProviderContext<TDate extends DateFrameworkType>
45
45
  [K in keyof LocalizationProviderValue<TDate>]: LocalizationProviderValue<TDate>[K] | null;
46
46
  };
47
47
  export declare const LocalizationProviderContext: import("react").Context<LocalizationProviderValue<any> | null>;
48
- export declare const LocalizationProvider: <TDate extends Date | import("dayjs").Dayjs | import("luxon").DateTime<boolean> | import("moment").Moment, TLocale>(props: LocalizationProviderProps<TDate, TLocale>) => import("react/jsx-runtime").JSX.Element;
48
+ export declare const LocalizationProvider: <TDate extends unknown, TLocale>(props: LocalizationProviderProps<TDate, TLocale>) => import("react/jsx-runtime").JSX.Element;
49
49
  /**
50
50
  * Custom hook to access the localization context.
51
51
  *
@@ -59,4 +59,4 @@ export declare const LocalizationProvider: <TDate extends Date | import("dayjs")
59
59
  *
60
60
  * @throws Will throw an error if the hook is used outside of a `LocalizationProviderContext.Provider`.
61
61
  */
62
- export declare const useLocalization: <TDate extends Date | import("dayjs").Dayjs | import("luxon").DateTime<boolean> | import("moment").Moment>() => LocalizationProviderValue<TDate>;
62
+ export declare const useLocalization: <TDate extends unknown>() => LocalizationProviderValue<TDate>;
@@ -0,0 +1 @@
1
+ export declare function StepConnector(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { type TextProps } from "@salt-ds/core";
2
+ export interface StepDescriptionProps extends TextProps<"div"> {
3
+ }
4
+ export declare function StepDescription({ id, className, styleAs, ...props }: StepDescriptionProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { type ButtonProps } from "@salt-ds/core";
2
+ export interface StepExpandTriggerProps extends ButtonProps {
3
+ expanded: boolean;
4
+ }
5
+ export declare function StepExpandTrigger({ id, expanded, className, ...props }: StepExpandTriggerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { IconProps } from "@salt-ds/icons";
2
+ import type { StepStage, StepStatus } from "./Step.types";
3
+ export interface StepIconProps extends IconProps {
4
+ stage: StepStage;
5
+ status?: StepStatus;
6
+ sizeMultiplier?: IconProps["size"];
7
+ }
8
+ export declare function StepIcon({ status, stage, size, sizeMultiplier, className, ...props }: StepIconProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { type TextProps } from "@salt-ds/core";
2
+ export interface StepLabelProps extends TextProps<"div"> {
3
+ }
4
+ export declare function StepLabel({ id, className, styleAs, children, ...props }: StepLabelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ export interface StepSROnlyProps extends ComponentPropsWithoutRef<"div"> {
3
+ children?: ReactNode;
4
+ }
5
+ export declare function StepSROnly({ children, ...props }: StepSROnlyProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { StepProps } from "./Step.types";
2
+ export declare function Step({ id: idProp, label, description, status, stage, expanded: expandedProp, defaultExpanded, onToggle, className, style, substeps, children, ...props }: StepProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import type { ButtonProps } from "@salt-ds/core";
2
+ import type { ComponentPropsWithoutRef, ReactNode } from "react";
3
+ export interface StepProps extends Omit<ComponentPropsWithoutRef<"li">, "onToggle"> {
4
+ label?: ReactNode;
5
+ description?: ReactNode;
6
+ status?: StepStatus;
7
+ stage?: StepStage;
8
+ expanded?: boolean;
9
+ defaultExpanded?: boolean;
10
+ onToggle?: ButtonProps["onClick"];
11
+ substeps?: StepRecord[];
12
+ children?: ReactNode;
13
+ }
14
+ export declare type StepRecord = (Omit<StepProps, "children"> & {
15
+ id: string;
16
+ }) | (Omit<StepProps, "children"> & {
17
+ key: string;
18
+ });
19
+ export declare type StepStatus = "warning" | "error";
20
+ export declare type StepStage = "pending" | "locked" | "completed" | "inprogress" | "active";
21
+ export declare type StepDepth = number;
@@ -0,0 +1,9 @@
1
+ import { type ReactNode } from "react";
2
+ import type { SteppedTrackerOrientation } from "./SteppedTracker.types";
3
+ export declare const DepthContext: import("react").Context<number>;
4
+ export declare const OrientationContext: import("react").Context<SteppedTrackerOrientation>;
5
+ export interface SteppedTrackerProviderProps {
6
+ orientation: SteppedTrackerOrientation;
7
+ children: ReactNode;
8
+ }
9
+ export declare function SteppedTrackerProvider({ orientation: orientationProp, children, }: SteppedTrackerProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,16 +1,2 @@
1
- import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
- export interface SteppedTrackerProps extends ComponentPropsWithoutRef<"ul"> {
3
- /**
4
- * The index of the current activeStep
5
- */
6
- activeStep: number;
7
- /**
8
- * Should be one or more TrackerStep components
9
- */
10
- children: ReactNode;
11
- /**
12
- * The orientation of the SteppedTracker. Defaults to `horizontal`
13
- */
14
- orientation?: "horizontal" | "vertical";
15
- }
16
- export declare const SteppedTracker: import("react").ForwardRefExoticComponent<SteppedTrackerProps & import("react").RefAttributes<HTMLUListElement>>;
1
+ import type { SteppedTrackerProps } from "./SteppedTracker.types";
2
+ export declare const SteppedTracker: import("react").ForwardRefExoticComponent<Omit<SteppedTrackerProps, "ref"> & import("react").RefAttributes<HTMLOListElement>>;
@@ -0,0 +1,6 @@
1
+ import type { ComponentProps, ReactNode } from "react";
2
+ export interface SteppedTrackerProps extends ComponentProps<"ol"> {
3
+ orientation?: SteppedTrackerOrientation;
4
+ children: ReactNode;
5
+ }
6
+ export declare type SteppedTrackerOrientation = "horizontal" | "vertical";
@@ -1,3 +1,6 @@
1
1
  export * from "./SteppedTracker";
2
- export * from "./TrackerStep";
3
- export * from "./StepLabel";
2
+ export * from "./SteppedTracker.types";
3
+ export * from "./Step";
4
+ export * from "./Step.types";
5
+ export * from "./useStepReducer";
6
+ export * from "./stepReducer.types";
@@ -0,0 +1,2 @@
1
+ import type { StepReducerAction, StepReducerState } from "./stepReducer.types";
2
+ export default function stepReducer(state: StepReducerState, action: StepReducerAction): StepReducerState;
@@ -0,0 +1,25 @@
1
+ import type { StepRecord } from ".";
2
+ export interface StepReducerState {
3
+ steps: StepRecord[];
4
+ flatSteps: StepRecord[];
5
+ activeStep: StepRecord | null;
6
+ previousStep: StepRecord | null;
7
+ nextStep: StepRecord | null;
8
+ activeStepIndex: number;
9
+ started: boolean;
10
+ ended: boolean;
11
+ }
12
+ export declare type StepReducerAction = {
13
+ type: "next";
14
+ } | {
15
+ type: "previous";
16
+ } | {
17
+ type: "error";
18
+ } | {
19
+ type: "warning";
20
+ } | {
21
+ type: "clear";
22
+ };
23
+ export interface StepReducerOptions {
24
+ activeStepId?: string;
25
+ }
@@ -0,0 +1,3 @@
1
+ import type { StepRecord } from "./Step.types";
2
+ import type { StepReducerOptions } from "./stepReducer.types";
3
+ export declare function useStepReducer(initialSteps: StepRecord[], options?: StepReducerOptions): [import("./stepReducer.types").StepReducerState, import("react").Dispatch<import("./stepReducer.types").StepReducerAction>];
@@ -0,0 +1,7 @@
1
+ import type { StepRecord, StepStage } from "./Step.types";
2
+ import type { StepReducerOptions, StepReducerState } from "./stepReducer.types";
3
+ export declare function assignSteps(steps: StepRecord[], stage?: StepStage): StepRecord[];
4
+ export declare function resetSteps(steps: StepRecord[]): StepRecord[];
5
+ export declare function autoStageSteps(steps: StepRecord[], options?: StepReducerOptions): StepRecord[];
6
+ export declare function flattenSteps(steps: StepRecord[]): StepRecord[];
7
+ export declare function initStepReducerState(initialSteps: StepRecord[], options?: StepReducerOptions): StepReducerState;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salt-ds/lab",
3
- "version": "1.0.0-alpha.57",
3
+ "version": "1.0.0-alpha.59",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,12 +9,21 @@
9
9
  },
10
10
  "bugs": "https://github.com/jpmorganchase/salt-ds/issues",
11
11
  "main": "dist-cjs/index.js",
12
- "sideEffects": false,
12
+ "files": [
13
+ "css",
14
+ "dist-cjs",
15
+ "dist-es",
16
+ "dist-types",
17
+ "CHANGELOG.md"
18
+ ],
19
+ "sideEffects": [
20
+ "*.css"
21
+ ],
13
22
  "dependencies": {
14
- "@floating-ui/react": "^0.26.5",
15
- "@salt-ds/core": "^1.37.3",
16
- "@salt-ds/date-adapters": "0.1.0-alpha.1",
17
- "@salt-ds/icons": "^1.13.0",
23
+ "@floating-ui/react": "^0.26.28",
24
+ "@salt-ds/core": "^1.39.0",
25
+ "@salt-ds/date-adapters": "0.1.0-alpha.2",
26
+ "@salt-ds/icons": "^1.13.1",
18
27
  "@salt-ds/styles": "0.2.1",
19
28
  "@salt-ds/window": "0.1.1",
20
29
  "@types/react-window": "^1.8.2",
@@ -57,13 +66,6 @@
57
66
  "build": "yarn node ../../scripts/build.mjs",
58
67
  "bundle:css": "yarn node ./scripts/build.mjs"
59
68
  },
60
- "files": [
61
- "css",
62
- "dist-cjs",
63
- "dist-es",
64
- "dist-types",
65
- "CHANGELOG.md"
66
- ],
67
69
  "module": "dist-es/index.js",
68
70
  "typings": "dist-types/index.d.ts"
69
71
  }
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = "/* CSS Variables for the Skip Link */\n.saltSkipLink {\n --skipLink-padding: var(--saltSkipLink-padding, var(--salt-size-unit));\n --skipLink-margin: var(--saltSkipLink-margin, var(--salt-size-unit));\n --skipLink-background: var(--saltSkipLink-background, var(--salt-actionable-primary-background));\n --skipLink-color: var(--saltSkipLink-color, var(--salt-content-primary-foreground));\n}\n\n/* Overrides */\n.saltSkipLink {\n --saltLink-color-focus: var(--skipLink-color);\n}\n\n.saltSkipLink-target {\n --skipLink-target-focus: var(--salt-focused-outline);\n}\n\n/*Styles applied when the link is focused to hide the Skip Link when not in focus*/\n.saltSkipLink {\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n display: block;\n opacity: 0;\n overflow: hidden;\n position: absolute;\n}\n\n/* Styles applied when the link is focused to display the Skip Link only when in focus*/\n.saltSkipLink:focus {\n opacity: 1;\n width: auto;\n height: auto;\n white-space: nowrap;\n margin: var(--skipLink-margin);\n padding: calc(var(--skipLink-padding) - 1px) var(--skipLink-padding) var(--skipLink-padding);\n background: var(--skipLink-background);\n color: var(--skipLink-color);\n box-shadow: var(--salt-overlayable-shadow-popout);\n}\n\n.saltSkipLink {\n font-size: var(--salt-text-fontSize);\n font-family: var(--saltSkipLink-fontFamily, var(--salt-text-fontFamily));\n line-height: var(--saltSkipLink-lineHeight, var(--salt-text-lineHeight));\n}\n\n/*Styles applied to the skip link focus target*/\n.saltSkipLink-target {\n outline: var(--skipLink-target-focus);\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=SkipLink.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SkipLink.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,36 +0,0 @@
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 useManageFocusOnTarget = require('./internal/useManageFocusOnTarget.js');
10
- var SkipLink$1 = require('./SkipLink.css.js');
11
-
12
- const withBaseName = core.makePrefixer("saltSkipLink");
13
- const SkipLink = react.forwardRef(
14
- function SkipLink2({ className, targetRef, ...rest }, ref) {
15
- const targetWindow = window.useWindow();
16
- styles.useComponentCssInjection({
17
- testId: "salt-skip-link",
18
- css: SkipLink$1,
19
- window: targetWindow
20
- });
21
- const targetClass = clsx.clsx(withBaseName("target"), className);
22
- const eventHandlers = useManageFocusOnTarget.useManageFocusOnTarget({ targetRef, targetClass });
23
- return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
24
- core.Link,
25
- {
26
- ...eventHandlers,
27
- ...rest,
28
- className: clsx.clsx(withBaseName(), className),
29
- ref
30
- }
31
- ) });
32
- }
33
- );
34
-
35
- exports.SkipLink = SkipLink;
36
- //# sourceMappingURL=SkipLink.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SkipLink.js","sources":["../src/skip-link/SkipLink.tsx"],"sourcesContent":["import { Link, type LinkProps, makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type RefObject, forwardRef } from \"react\";\nimport { useManageFocusOnTarget } from \"./internal/useManageFocusOnTarget\";\n\nimport skipLinkCss from \"./SkipLink.css\";\n\ninterface SkipLinkProps extends LinkProps {\n /**\n * This is a ref that has access to the target element.\n *\n * This will be used to apply focus to that element\n *\n * Refs are referentially stable so if this changes it won't be picked up\n * will need to find a better way of passing in the target element to apply the attributes\n */\n targetRef?: RefObject<HTMLElement>;\n}\n\nconst withBaseName = makePrefixer(\"saltSkipLink\");\n\nexport const SkipLink = forwardRef<HTMLAnchorElement, SkipLinkProps>(\n function SkipLink({ className, targetRef, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-skip-link\",\n css: skipLinkCss,\n window: targetWindow,\n });\n\n const targetClass = clsx(withBaseName(\"target\"), className);\n\n const eventHandlers = useManageFocusOnTarget({ targetRef, targetClass });\n\n return (\n <li>\n <Link\n {...eventHandlers}\n {...rest}\n className={clsx(withBaseName(), className)}\n ref={ref}\n />\n </li>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","SkipLink","useWindow","useComponentCssInjection","skipLinkCss","clsx","useManageFocusOnTarget","jsx","Link"],"mappings":";;;;;;;;;;;AAqBA,MAAM,YAAA,GAAeA,kBAAa,cAAc,CAAA;AAEzC,MAAM,QAAW,GAAAC,gBAAA;AAAA,EACtB,SAASC,UAAS,EAAE,SAAA,EAAW,WAAW,GAAG,IAAA,IAAQ,GAAK,EAAA;AACxD,IAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,gBAAA;AAAA,MACR,GAAK,EAAAC,UAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAA,MAAM,WAAc,GAAAC,SAAA,CAAK,YAAa,CAAA,QAAQ,GAAG,SAAS,CAAA;AAE1D,IAAA,MAAM,aAAgB,GAAAC,6CAAA,CAAuB,EAAE,SAAA,EAAW,aAAa,CAAA;AAEvE,IAAA,sCACG,IACC,EAAA,EAAA,QAAA,kBAAAC,cAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACE,GAAG,aAAA;AAAA,QACH,GAAG,IAAA;AAAA,QACJ,SAAW,EAAAH,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC;AAAA;AAAA,KAEJ,EAAA,CAAA;AAAA;AAGN;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = ".saltSkipLinks {\n position: relative;\n float: left;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=SkipLinks.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SkipLinks.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var clsx = require('clsx');
6
- var react = require('react');
7
- var styles = require('@salt-ds/styles');
8
- var window = require('@salt-ds/window');
9
- var SkipLinks$1 = require('./SkipLinks.css.js');
10
-
11
- const withBaseName = core.makePrefixer("saltSkipLinks");
12
- const SkipLinks = react.forwardRef(function SkipLinks2(props, ref) {
13
- const { className, children, ...restProps } = props;
14
- const targetWindow = window.useWindow();
15
- styles.useComponentCssInjection({
16
- testId: "salt-skip-links",
17
- css: SkipLinks$1,
18
- window: targetWindow
19
- });
20
- return /* @__PURE__ */ jsxRuntime.jsx("ul", { ...restProps, className: clsx.clsx(withBaseName(), className), ref, children });
21
- });
22
-
23
- exports.SkipLinks = SkipLinks;
24
- //# sourceMappingURL=SkipLinks.js.map