@phpsoftbox/react-softbox 1.4.5 → 1.5.0

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.
@@ -0,0 +1,486 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import styles from './Wizard.module.css';
4
+ import Button from '../Button/Button';
5
+ import Progress from '../Progress/Progress';
6
+ const WIZARD_STEP_MARK = '__reactSoftBoxWizardStep__';
7
+ const resolveGuard = (guard, context) => {
8
+ if (guard === undefined) {
9
+ return true;
10
+ }
11
+ if (typeof guard === 'boolean') {
12
+ return guard;
13
+ }
14
+ return guard(context);
15
+ };
16
+ const resolveStepHidden = (step, context) => {
17
+ if (step.hidden === undefined) {
18
+ return false;
19
+ }
20
+ if (typeof step.hidden === 'boolean') {
21
+ return step.hidden;
22
+ }
23
+ return step.hidden(context);
24
+ };
25
+ const getStatusByIndex = (activeIndex, index) => {
26
+ if (index < activeIndex) {
27
+ return 'completed';
28
+ }
29
+ if (index === activeIndex) {
30
+ return 'active';
31
+ }
32
+ return 'upcoming';
33
+ };
34
+ function WizardStepNode(_props) {
35
+ return null;
36
+ }
37
+ WizardStepNode[WIZARD_STEP_MARK] = true;
38
+ const resolveStepChildren = (children) => {
39
+ const result = [];
40
+ let stepIndex = 0;
41
+ React.Children.forEach(children, (child) => {
42
+ if (!React.isValidElement(child)) {
43
+ return;
44
+ }
45
+ const childType = child.type;
46
+ if (!childType[WIZARD_STEP_MARK]) {
47
+ return;
48
+ }
49
+ stepIndex += 1;
50
+ const props = child.props;
51
+ const keyId = child.key !== null ? String(child.key) : undefined;
52
+ const id = props.id ?? keyId ?? `step-${stepIndex}`;
53
+ const content = props.content ?? props.children ?? null;
54
+ result.push({
55
+ id,
56
+ title: props.title,
57
+ description: props.description,
58
+ content,
59
+ component: props.component,
60
+ renderContent: props.renderContent,
61
+ canEnter: props.canEnter,
62
+ canExit: props.canExit,
63
+ hidden: props.hidden,
64
+ renderStep: props.renderStep,
65
+ template: props.template,
66
+ className: props.className,
67
+ });
68
+ });
69
+ return result;
70
+ };
71
+ function WizardBase({ steps, children, state, activeStepId, defaultStepId, onStepChange, onStepStateChange, onBlockedTransition, onComplete, renderStep, stepTemplate, template, showCurrentStep = true, showFutureSteps = true, stepsViewMode = 'all', stepsWindowSize = 5, stepsWindowSizeByBreakpoint, allowStepSelect = true, showActions = true, showPrevOnFirstStep = false, showProgress = false, progressProps, stepsOrientation = 'horizontal', previousLabel = 'Назад', nextLabel = 'Далее', finishLabel = 'Завершить', className, stepsClassName, contentClassName, actionsClassName, emptyState = null, ...props }) {
72
+ const resolvedSteps = React.useMemo(() => (steps && steps.length > 0 ? steps : resolveStepChildren(children)), [children, steps]);
73
+ const isControlled = activeStepId !== undefined;
74
+ const [viewportWidth, setViewportWidth] = React.useState(() => (typeof window !== 'undefined' ? window.innerWidth : 1440));
75
+ React.useEffect(() => {
76
+ if (typeof window === 'undefined') {
77
+ return;
78
+ }
79
+ const handleResize = () => setViewportWidth(window.innerWidth);
80
+ handleResize();
81
+ window.addEventListener('resize', handleResize);
82
+ return () => window.removeEventListener('resize', handleResize);
83
+ }, []);
84
+ const computeNavigableIndexes = React.useCallback((anchorIndex, anchorStepId) => (resolvedSteps
85
+ .map((step, index) => {
86
+ const hidden = resolveStepHidden(step, {
87
+ state,
88
+ activeStepId: anchorStepId,
89
+ activeIndex: anchorIndex,
90
+ step,
91
+ stepIndex: index,
92
+ });
93
+ return hidden ? null : index;
94
+ })
95
+ .filter((index) => index !== null)), [resolvedSteps, state]);
96
+ const fallbackIndex = React.useMemo(() => {
97
+ const indexes = computeNavigableIndexes(-1, undefined);
98
+ return indexes[0] ?? -1;
99
+ }, [computeNavigableIndexes]);
100
+ const fallbackId = fallbackIndex >= 0 ? resolvedSteps[fallbackIndex]?.id : undefined;
101
+ const [internalStepId, setInternalStepId] = React.useState(defaultStepId ?? fallbackId);
102
+ React.useEffect(() => {
103
+ if (isControlled) {
104
+ return;
105
+ }
106
+ const currentIndex = resolvedSteps.findIndex((step) => step.id === internalStepId);
107
+ const currentStep = currentIndex >= 0 ? resolvedSteps[currentIndex] : null;
108
+ const currentIsHidden = currentStep
109
+ ? resolveStepHidden(currentStep, {
110
+ state,
111
+ activeStepId: internalStepId,
112
+ activeIndex: currentIndex,
113
+ step: currentStep,
114
+ stepIndex: currentIndex,
115
+ })
116
+ : true;
117
+ if (currentIndex < 0 || currentIsHidden) {
118
+ setInternalStepId(fallbackId);
119
+ }
120
+ }, [fallbackId, internalStepId, isControlled, resolvedSteps, state]);
121
+ const resolvedStepId = isControlled ? activeStepId : internalStepId;
122
+ const activeIndex = React.useMemo(() => {
123
+ const index = resolvedSteps.findIndex((step) => step.id === resolvedStepId);
124
+ if (index >= 0) {
125
+ const step = resolvedSteps[index];
126
+ const hidden = resolveStepHidden(step, {
127
+ state,
128
+ activeStepId: resolvedStepId,
129
+ activeIndex: index,
130
+ step,
131
+ stepIndex: index,
132
+ });
133
+ if (!hidden) {
134
+ return index;
135
+ }
136
+ }
137
+ return fallbackIndex;
138
+ }, [fallbackIndex, resolvedStepId, resolvedSteps, state]);
139
+ const activeStep = activeIndex >= 0 ? resolvedSteps[activeIndex] : null;
140
+ const computeProgressForIndex = React.useCallback((index, stepId) => {
141
+ const indexes = computeNavigableIndexes(index, stepId);
142
+ const total = indexes.length;
143
+ const currentPosition = indexes.indexOf(index);
144
+ const current = currentPosition >= 0 ? currentPosition + 1 : 0;
145
+ const completed = current > 0 ? current - 1 : 0;
146
+ const percent = total > 0 ? Math.round((current / total) * 100) : 0;
147
+ return {
148
+ total,
149
+ current,
150
+ completed,
151
+ percent,
152
+ };
153
+ }, [computeNavigableIndexes]);
154
+ const progressState = React.useMemo(() => {
155
+ if (!activeStep || activeIndex < 0) {
156
+ return { total: 0, current: 0, completed: 0, percent: 0 };
157
+ }
158
+ return computeProgressForIndex(activeIndex, activeStep.id);
159
+ }, [activeIndex, activeStep, computeProgressForIndex]);
160
+ const onStepStateChangeRef = React.useRef(onStepStateChange);
161
+ React.useEffect(() => {
162
+ onStepStateChangeRef.current = onStepStateChange;
163
+ }, [onStepStateChange]);
164
+ const lastStepStateKeyRef = React.useRef(null);
165
+ React.useEffect(() => {
166
+ if (!activeStep || activeIndex < 0) {
167
+ return;
168
+ }
169
+ const key = `${activeStep.id}:${activeIndex}:${progressState.total}:${progressState.current}:${progressState.completed}:${progressState.percent}`;
170
+ if (lastStepStateKeyRef.current === key) {
171
+ return;
172
+ }
173
+ lastStepStateKeyRef.current = key;
174
+ onStepStateChangeRef.current?.({
175
+ activeStepId: activeStep.id,
176
+ activeIndex,
177
+ step: activeStep,
178
+ progress: progressState,
179
+ });
180
+ }, [activeIndex, activeStep, progressState.completed, progressState.current, progressState.percent, progressState.total]);
181
+ const visibleSteps = React.useMemo(() => resolvedSteps.map((step, index) => {
182
+ const status = getStatusByIndex(activeIndex, index);
183
+ const hiddenByStep = resolveStepHidden(step, {
184
+ state,
185
+ activeStepId: activeStep?.id,
186
+ activeIndex,
187
+ step,
188
+ stepIndex: index,
189
+ });
190
+ const hiddenByConfig = (status === 'active' && !showCurrentStep) || (status === 'upcoming' && !showFutureSteps);
191
+ return {
192
+ step,
193
+ index,
194
+ status,
195
+ isVisible: !hiddenByStep && !hiddenByConfig,
196
+ };
197
+ }), [activeIndex, activeStep?.id, resolvedSteps, showCurrentStep, showFutureSteps, state]);
198
+ const renderedSteps = React.useMemo(() => {
199
+ const onlyVisible = visibleSteps.filter((item) => item.isVisible);
200
+ if (stepsViewMode === 'active') {
201
+ return onlyVisible.filter((item) => item.index === activeIndex);
202
+ }
203
+ if (stepsViewMode === 'window') {
204
+ const resolveWindowSize = () => {
205
+ if (!stepsWindowSizeByBreakpoint) {
206
+ return stepsWindowSize;
207
+ }
208
+ if (viewportWidth <= 720 && stepsWindowSizeByBreakpoint.sm !== undefined) {
209
+ return stepsWindowSizeByBreakpoint.sm;
210
+ }
211
+ if (viewportWidth <= 1024 && stepsWindowSizeByBreakpoint.md !== undefined) {
212
+ return stepsWindowSizeByBreakpoint.md;
213
+ }
214
+ if (viewportWidth <= 1280 && stepsWindowSizeByBreakpoint.lg !== undefined) {
215
+ return stepsWindowSizeByBreakpoint.lg;
216
+ }
217
+ if (stepsWindowSizeByBreakpoint.xl !== undefined) {
218
+ return stepsWindowSizeByBreakpoint.xl;
219
+ }
220
+ if (stepsWindowSizeByBreakpoint.default !== undefined) {
221
+ return stepsWindowSizeByBreakpoint.default;
222
+ }
223
+ return stepsWindowSize;
224
+ };
225
+ const normalizedWindow = Math.max(1, Math.floor(resolveWindowSize()));
226
+ if (onlyVisible.length <= normalizedWindow) {
227
+ return onlyVisible;
228
+ }
229
+ const activePos = onlyVisible.findIndex((item) => item.index === activeIndex);
230
+ if (activePos < 0) {
231
+ return onlyVisible.slice(0, normalizedWindow);
232
+ }
233
+ const left = Math.floor((normalizedWindow - 1) / 2);
234
+ const right = normalizedWindow - left - 1;
235
+ let start = activePos - left;
236
+ let end = activePos + right;
237
+ if (start < 0) {
238
+ end += -start;
239
+ start = 0;
240
+ }
241
+ if (end >= onlyVisible.length) {
242
+ const overflow = end - onlyVisible.length + 1;
243
+ start = Math.max(0, start - overflow);
244
+ end = onlyVisible.length - 1;
245
+ }
246
+ return onlyVisible.slice(start, end + 1);
247
+ }
248
+ return onlyVisible;
249
+ }, [activeIndex, stepsViewMode, stepsWindowSize, stepsWindowSizeByBreakpoint, viewportWidth, visibleSteps]);
250
+ const visiblePositionMap = React.useMemo(() => {
251
+ const map = new Map();
252
+ visibleSteps
253
+ .filter((item) => item.isVisible)
254
+ .forEach((item, position) => {
255
+ map.set(item.index, position);
256
+ });
257
+ return map;
258
+ }, [visibleSteps]);
259
+ const totalVisibleSteps = visibleSteps.filter((item) => item.isVisible);
260
+ const hiddenAfterCount = React.useMemo(() => {
261
+ if (renderedSteps.length === 0) {
262
+ return 0;
263
+ }
264
+ const lastRenderedIndex = renderedSteps[renderedSteps.length - 1].index;
265
+ const lastRenderedPosition = totalVisibleSteps.findIndex((item) => item.index === lastRenderedIndex);
266
+ if (lastRenderedPosition < 0) {
267
+ return 0;
268
+ }
269
+ return Math.max(0, totalVisibleSteps.length - lastRenderedPosition - 1);
270
+ }, [renderedSteps, totalVisibleSteps]);
271
+ const findNeighborIndex = React.useCallback((fromIndex, delta) => {
272
+ const indexes = computeNavigableIndexes(fromIndex, resolvedSteps[fromIndex]?.id);
273
+ const position = indexes.indexOf(fromIndex);
274
+ if (position < 0) {
275
+ return -1;
276
+ }
277
+ const next = indexes[position + delta];
278
+ return next ?? -1;
279
+ }, [computeNavigableIndexes, resolvedSteps]);
280
+ const canTransition = React.useCallback((toIndex, direction) => {
281
+ if (!activeStep || activeIndex < 0 || toIndex < 0 || toIndex >= resolvedSteps.length) {
282
+ return false;
283
+ }
284
+ const toStep = resolvedSteps[toIndex];
285
+ const hidden = resolveStepHidden(toStep, {
286
+ state,
287
+ activeStepId: activeStep.id,
288
+ activeIndex,
289
+ step: toStep,
290
+ stepIndex: toIndex,
291
+ });
292
+ if (hidden) {
293
+ return false;
294
+ }
295
+ const context = {
296
+ state,
297
+ fromStep: activeStep,
298
+ toStep,
299
+ fromIndex: activeIndex,
300
+ toIndex,
301
+ direction,
302
+ };
303
+ const isForward = toIndex > activeIndex;
304
+ if (isForward && !resolveGuard(activeStep.canExit, context)) {
305
+ return false;
306
+ }
307
+ if (isForward && !resolveGuard(toStep.canEnter, context)) {
308
+ return false;
309
+ }
310
+ return true;
311
+ }, [activeIndex, activeStep, resolvedSteps, state]);
312
+ const attemptTransition = React.useCallback((toIndex, direction) => {
313
+ if (!activeStep || activeIndex < 0 || toIndex < 0 || toIndex >= resolvedSteps.length) {
314
+ return false;
315
+ }
316
+ const toStep = resolvedSteps[toIndex];
317
+ const hidden = resolveStepHidden(toStep, {
318
+ state,
319
+ activeStepId: activeStep.id,
320
+ activeIndex,
321
+ step: toStep,
322
+ stepIndex: toIndex,
323
+ });
324
+ if (hidden) {
325
+ return false;
326
+ }
327
+ const context = {
328
+ state,
329
+ fromStep: activeStep,
330
+ toStep,
331
+ fromIndex: activeIndex,
332
+ toIndex,
333
+ direction,
334
+ };
335
+ const isForward = toIndex > activeIndex;
336
+ if (isForward && !resolveGuard(activeStep.canExit, context)) {
337
+ onBlockedTransition?.({ ...context, reason: 'canExit' });
338
+ return false;
339
+ }
340
+ if (isForward && !resolveGuard(toStep.canEnter, context)) {
341
+ onBlockedTransition?.({ ...context, reason: 'canEnter' });
342
+ return false;
343
+ }
344
+ if (!isControlled) {
345
+ setInternalStepId(toStep.id);
346
+ }
347
+ onStepChange?.(toStep.id, {
348
+ previousStepId: activeStep.id,
349
+ previousIndex: activeIndex,
350
+ nextIndex: toIndex,
351
+ direction,
352
+ progress: computeProgressForIndex(toIndex, toStep.id),
353
+ });
354
+ return true;
355
+ }, [activeIndex, activeStep, computeProgressForIndex, isControlled, onBlockedTransition, onStepChange, resolvedSteps, state]);
356
+ const goPrev = React.useCallback(() => {
357
+ if (!activeStep || activeIndex < 0) {
358
+ return false;
359
+ }
360
+ const targetIndex = findNeighborIndex(activeIndex, -1);
361
+ if (targetIndex < 0) {
362
+ return false;
363
+ }
364
+ return attemptTransition(targetIndex, 'prev');
365
+ }, [activeIndex, activeStep, attemptTransition, findNeighborIndex]);
366
+ const goNext = React.useCallback(() => {
367
+ if (!activeStep || activeIndex < 0) {
368
+ return false;
369
+ }
370
+ const targetIndex = findNeighborIndex(activeIndex, 1);
371
+ if (targetIndex < 0) {
372
+ onComplete?.({ step: activeStep, index: activeIndex });
373
+ return false;
374
+ }
375
+ return attemptTransition(targetIndex, 'next');
376
+ }, [activeIndex, activeStep, attemptTransition, findNeighborIndex, onComplete]);
377
+ const goTo = React.useCallback((stepId) => {
378
+ const targetIndex = resolvedSteps.findIndex((step) => step.id === stepId);
379
+ if (targetIndex < 0) {
380
+ return false;
381
+ }
382
+ if (targetIndex === activeIndex) {
383
+ return true;
384
+ }
385
+ const direction = targetIndex > activeIndex ? 'next' : 'prev';
386
+ return attemptTransition(targetIndex, direction);
387
+ }, [activeIndex, attemptTransition, resolvedSteps]);
388
+ if (!activeStep || activeIndex < 0) {
389
+ return (_jsx("div", { className: [styles.wizard, className].filter(Boolean).join(' '), ...props, children: emptyState }));
390
+ }
391
+ const contentProps = {
392
+ state,
393
+ step: activeStep,
394
+ index: activeIndex,
395
+ isActive: true,
396
+ goNext,
397
+ goPrev,
398
+ goTo,
399
+ };
400
+ const renderStepContent = () => {
401
+ if (activeStep.renderContent) {
402
+ return activeStep.renderContent(contentProps);
403
+ }
404
+ if (activeStep.component) {
405
+ const Component = activeStep.component;
406
+ return _jsx(Component, { ...contentProps });
407
+ }
408
+ return activeStep.content ?? null;
409
+ };
410
+ const previousStepIndex = findNeighborIndex(activeIndex, -1);
411
+ const nextStepIndex = findNeighborIndex(activeIndex, 1);
412
+ const canGoPrev = previousStepIndex >= 0;
413
+ const canGoNext = nextStepIndex >= 0;
414
+ const stepsNode = (_jsxs("div", { className: [
415
+ styles.steps,
416
+ stepsOrientation === 'vertical' ? styles.stepsVertical : styles.stepsHorizontal,
417
+ stepsClassName,
418
+ ].filter(Boolean).join(' '), role: "tablist", "aria-label": "Wizard steps", children: [renderedSteps
419
+ .map((item, visibleIndexInWindow) => {
420
+ const isActive = item.index === activeIndex;
421
+ const direction = item.index > activeIndex ? 'next' : 'prev';
422
+ const canNavigate = isActive ? false : canTransition(item.index, direction);
423
+ const isClickable = allowStepSelect && !isActive && canNavigate;
424
+ const isDisabled = !isActive && (!allowStepSelect || !canNavigate);
425
+ const visibleIndex = visiblePositionMap.get(item.index) ?? visibleIndexInWindow;
426
+ const stepProps = {
427
+ step: item.step,
428
+ index: item.index,
429
+ visibleIndex,
430
+ status: item.status,
431
+ isActive,
432
+ isCompleted: item.status === 'completed',
433
+ isUpcoming: item.status === 'upcoming',
434
+ isVisible: item.isVisible,
435
+ isClickable,
436
+ goTo: () => {
437
+ if (isClickable) {
438
+ goTo(item.step.id);
439
+ }
440
+ },
441
+ };
442
+ const resolvedTemplate = item.step.template ?? item.step.renderStep ?? stepTemplate ?? renderStep;
443
+ if (resolvedTemplate) {
444
+ return (_jsx("div", { className: styles.stepSlot, children: resolvedTemplate(stepProps) }, item.step.id));
445
+ }
446
+ const stepClasses = [
447
+ styles.step,
448
+ item.step.className,
449
+ item.status === 'completed' ? styles.stepCompleted : null,
450
+ item.status === 'active' ? styles.stepActive : styles.stepUpcoming,
451
+ isDisabled ? styles.stepDisabled : null,
452
+ isClickable ? styles.stepClickable : null,
453
+ ]
454
+ .filter(Boolean)
455
+ .join(' ');
456
+ return (_jsx("div", { className: styles.stepSlot, children: _jsxs("button", { type: "button", className: stepClasses, role: "tab", "aria-selected": isActive, "aria-disabled": isDisabled ? 'true' : undefined, onClick: stepProps.goTo, disabled: isDisabled, children: [_jsx("span", { className: styles.stepIndex, children: visibleIndex + 1 }), _jsxs("span", { className: styles.stepMain, children: [_jsx("span", { className: styles.stepTitle, children: item.step.title }), item.step.description ? (_jsx("span", { className: styles.stepDescription, children: item.step.description })) : null] })] }) }, item.step.id));
457
+ }), hiddenAfterCount > 0 ? (_jsxs("div", { className: styles.stepOverflowIndicator, "aria-hidden": "true", children: ["+", hiddenAfterCount, " \u0435\u0449\u0451"] })) : null] }));
458
+ const resolvedProgressLabel = typeof progressProps?.label === 'function'
459
+ ? progressProps.label(progressState, state)
460
+ : progressProps?.label;
461
+ const progressNode = showProgress ? (_jsx(Progress, { value: progressState.percent, max: 100, label: resolvedProgressLabel, showValue: progressProps?.showValue ?? true, variant: progressProps?.variant ?? 'info', size: progressProps?.size ?? 'sm', className: progressProps?.className })) : null;
462
+ const contentNode = (_jsx("div", { className: [styles.content, contentClassName].filter(Boolean).join(' '), children: renderStepContent() }));
463
+ const actionsNode = showActions ? (_jsxs("div", { className: [styles.actions, actionsClassName].filter(Boolean).join(' '), children: [_jsx("div", { className: styles.actionsGroup, children: showPrevOnFirstStep || canGoPrev ? (_jsx(Button, { appearance: "outline", onClick: goPrev, disabled: !canGoPrev, children: previousLabel })) : null }), _jsx("div", { className: styles.actionsGroup, children: _jsx(Button, { onClick: goNext, children: canGoNext ? nextLabel : finishLabel }) })] })) : null;
464
+ const templateProps = {
465
+ state,
466
+ activeStep,
467
+ activeIndex,
468
+ progress: progressState,
469
+ canGoPrev,
470
+ canGoNext,
471
+ goPrev,
472
+ goNext,
473
+ goTo,
474
+ stepsNode,
475
+ progressNode,
476
+ contentNode,
477
+ actionsNode,
478
+ };
479
+ const content = template ? template(templateProps) : (_jsxs(_Fragment, { children: [progressNode, stepsNode, contentNode, actionsNode] }));
480
+ return (_jsx("div", { className: [styles.wizard, className].filter(Boolean).join(' '), ...props, children: content }));
481
+ }
482
+ const Wizard = Object.assign(WizardBase, {
483
+ Step: WizardStepNode,
484
+ });
485
+ export default Wizard;
486
+ //# sourceMappingURL=Wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wizard.js","sourceRoot":"","sources":["../../../src/components/Wizard/Wizard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ .wizard {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--spacing-4);
5
+ }
6
+
7
+ .steps {
8
+ display: flex;
9
+ gap: var(--spacing-2);
10
+ }
11
+
12
+ .stepsHorizontal {
13
+ display: grid;
14
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
15
+ align-items: stretch;
16
+ width: 100%;
17
+ }
18
+
19
+ .stepsVertical {
20
+ flex-direction: column;
21
+ align-items: stretch;
22
+ }
23
+
24
+ .stepSlot {
25
+ width: 100%;
26
+ min-width: 0;
27
+ }
28
+
29
+ .stepSlot > * {
30
+ width: 100%;
31
+ }
32
+
33
+ .step {
34
+ display: flex;
35
+ align-items: flex-start;
36
+ gap: var(--spacing-2);
37
+ min-height: 56px;
38
+ padding: 10px 12px;
39
+ border-radius: var(--radius-xs);
40
+ border: 1px solid var(--color-line);
41
+ background: var(--surface-panel-soft);
42
+ color: var(--color-muted);
43
+ font-size: var(--font-size-3);
44
+ line-height: 1.2;
45
+ }
46
+
47
+ .stepClickable {
48
+ cursor: pointer;
49
+ }
50
+
51
+ .stepDisabled {
52
+ opacity: 0.55;
53
+ cursor: not-allowed;
54
+ }
55
+
56
+ .stepDisabled .stepIndex {
57
+ background: rgba(30, 51, 85, 0.45);
58
+ }
59
+
60
+ .stepClickable:hover {
61
+ border-color: var(--color-teal);
62
+ color: var(--color-text);
63
+ }
64
+
65
+ .stepActive {
66
+ color: var(--color-text);
67
+ border-color: var(--color-teal);
68
+ box-shadow: var(--shadow-glow);
69
+ }
70
+
71
+ .stepCompleted {
72
+ color: var(--color-mint);
73
+ border-color: rgba(79, 230, 163, 0.8);
74
+ }
75
+
76
+ .stepUpcoming {
77
+ color: var(--color-muted);
78
+ }
79
+
80
+ .stepIndex {
81
+ display: inline-flex;
82
+ align-items: center;
83
+ justify-content: center;
84
+ width: 22px;
85
+ height: 22px;
86
+ border-radius: 999px;
87
+ background: rgba(30, 51, 85, 0.7);
88
+ color: inherit;
89
+ font-size: var(--font-size-2);
90
+ flex-shrink: 0;
91
+ }
92
+
93
+ .stepMain {
94
+ display: flex;
95
+ flex-direction: column;
96
+ gap: 4px;
97
+ align-items: flex-start;
98
+ min-width: 0;
99
+ line-height: 1.2;
100
+ }
101
+
102
+ .stepTitle {
103
+ white-space: nowrap;
104
+ font-weight: 600;
105
+ }
106
+
107
+ .stepDescription {
108
+ color: var(--color-muted-2);
109
+ font-size: var(--font-size-2);
110
+ }
111
+
112
+ .stepsVertical .step {
113
+ width: 100%;
114
+ justify-content: flex-start;
115
+ }
116
+
117
+ .stepOverflowIndicator {
118
+ display: inline-flex;
119
+ align-items: center;
120
+ justify-content: center;
121
+ min-height: 56px;
122
+ padding: 10px 12px;
123
+ border-radius: var(--radius-xs);
124
+ border: 1px dashed var(--color-line);
125
+ color: var(--color-muted-2);
126
+ font-size: var(--font-size-2);
127
+ background: var(--surface-panel-soft);
128
+ }
129
+
130
+ .stepsHorizontal .stepOverflowIndicator {
131
+ width: 100%;
132
+ }
133
+
134
+ .stepsVertical .stepOverflowIndicator {
135
+ width: 100%;
136
+ }
137
+
138
+ .content {
139
+ border: 1px solid var(--color-line);
140
+ border-radius: var(--radius-md);
141
+ padding: var(--spacing-4);
142
+ background: var(--surface-panel-soft);
143
+ }
144
+
145
+ .actions {
146
+ display: flex;
147
+ justify-content: space-between;
148
+ gap: var(--spacing-2);
149
+ }
150
+
151
+ .actionsGroup {
152
+ display: inline-flex;
153
+ align-items: center;
154
+ gap: var(--spacing-2);
155
+ }