@alfalab/core-components-steps 1.1.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.
Files changed (62) hide show
  1. package/Component.d.ts +89 -0
  2. package/Component.js +59 -0
  3. package/components/step/Component.d.ts +70 -0
  4. package/components/step/Component.js +126 -0
  5. package/components/step/index.css +151 -0
  6. package/components/step/index.d.ts +1 -0
  7. package/components/step/index.js +17 -0
  8. package/components/step-indicator/Component.d.ts +6 -0
  9. package/components/step-indicator/Component.js +22 -0
  10. package/components/step-indicator/index.css +4 -0
  11. package/components/step-indicator/index.d.ts +1 -0
  12. package/components/step-indicator/index.js +12 -0
  13. package/cssm/Component.d.ts +89 -0
  14. package/cssm/Component.js +60 -0
  15. package/cssm/components/step/Component.d.ts +70 -0
  16. package/cssm/components/step/Component.js +126 -0
  17. package/cssm/components/step/index.d.ts +1 -0
  18. package/cssm/components/step/index.js +19 -0
  19. package/cssm/components/step/index.module.css +150 -0
  20. package/cssm/components/step-indicator/Component.d.ts +6 -0
  21. package/cssm/components/step-indicator/Component.js +21 -0
  22. package/cssm/components/step-indicator/index.d.ts +1 -0
  23. package/cssm/components/step-indicator/index.js +13 -0
  24. package/cssm/components/step-indicator/index.module.css +3 -0
  25. package/cssm/index.d.ts +1 -0
  26. package/cssm/index.js +21 -0
  27. package/cssm/index.module.css +17 -0
  28. package/esm/Component.d.ts +89 -0
  29. package/esm/Component.js +50 -0
  30. package/esm/components/step/Component.d.ts +70 -0
  31. package/esm/components/step/Component.js +117 -0
  32. package/esm/components/step/index.css +151 -0
  33. package/esm/components/step/index.d.ts +1 -0
  34. package/esm/components/step/index.js +9 -0
  35. package/esm/components/step-indicator/Component.d.ts +6 -0
  36. package/esm/components/step-indicator/Component.js +13 -0
  37. package/esm/components/step-indicator/index.css +4 -0
  38. package/esm/components/step-indicator/index.d.ts +1 -0
  39. package/esm/components/step-indicator/index.js +4 -0
  40. package/esm/index.css +18 -0
  41. package/esm/index.d.ts +1 -0
  42. package/esm/index.js +10 -0
  43. package/index.css +18 -0
  44. package/index.d.ts +1 -0
  45. package/index.js +18 -0
  46. package/modern/Component.d.ts +89 -0
  47. package/modern/Component.js +48 -0
  48. package/modern/components/step/Component.d.ts +70 -0
  49. package/modern/components/step/Component.js +85 -0
  50. package/modern/components/step/index.css +151 -0
  51. package/modern/components/step/index.d.ts +1 -0
  52. package/modern/components/step/index.js +9 -0
  53. package/modern/components/step-indicator/Component.d.ts +6 -0
  54. package/modern/components/step-indicator/Component.js +12 -0
  55. package/modern/components/step-indicator/index.css +4 -0
  56. package/modern/components/step-indicator/index.d.ts +1 -0
  57. package/modern/components/step-indicator/index.js +4 -0
  58. package/modern/index.css +18 -0
  59. package/modern/index.d.ts +1 -0
  60. package/modern/index.js +10 -0
  61. package/package.json +25 -0
  62. package/send-stats.js +82 -0
package/Component.d.ts ADDED
@@ -0,0 +1,89 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { ReactNode } from "react";
4
+ import { StepIndicatorProps } from "./components/step-indicator/index";
5
+ type StepsProps = {
6
+ /**
7
+ * Дополнительный класс
8
+ */
9
+ className?: string;
10
+ /**
11
+ * Дочерние элементы
12
+ */
13
+ children: ReactNode;
14
+ /**
15
+ * Активный шаг, указанный по умолчанию
16
+ * @default 1
17
+ */
18
+ defaultActiveStep?: number;
19
+ /**
20
+ * Активный шаг
21
+ */
22
+ activeStep?: number;
23
+ /**
24
+ * Управление возможностью отключения пометки пройденного шага
25
+ * @default true
26
+ */
27
+ isMarkCompletedSteps?: boolean;
28
+ /**
29
+ * Управление ориентацией компонента
30
+ * @default false
31
+ */
32
+ isVerticalAlign?: boolean;
33
+ /**
34
+ * Управление отображением номера шага
35
+ */
36
+ ordered?: boolean;
37
+ /**
38
+ * Включение / отключение интерактивности шагов
39
+ */
40
+ interactive?: boolean;
41
+ /**
42
+ * Кастомный метод для управления состоянием disabled шага и
43
+ * возможностью перехода на этот шаг
44
+ * @param stepNumber - номер шага
45
+ * @return Флаг состояния disabled
46
+ */
47
+ checkIsStepDisabled?: (stepNumber: number) => boolean;
48
+ /**
49
+ * Кастомный метод для управления состоянием шага error
50
+ * @param stepNumber - номер шага
51
+ * @return Флаг состояния error
52
+ */
53
+ checkIsStepError?: (stepNumber: number) => boolean;
54
+ /**
55
+ * Кастомный метод для управления состоянием шага warning
56
+ * @param stepNumber - номер шага
57
+ * @return Флаг состояния warning
58
+ */
59
+ checkIsStepWarning?: (stepNumber: number) => boolean;
60
+ /**
61
+ * Кастомный метод для управления состоянием шага waiting
62
+ * @param stepNumber - номер шага
63
+ * @return Флаг состояния waiting
64
+ */
65
+ checkIsStepWaiting?: (stepNumber: number) => boolean;
66
+ /**
67
+ * Кастомный метод для управления состоянием шага positive
68
+ * @param stepNumber - номер шага
69
+ * @return Флаг состояния positive
70
+ */
71
+ checkIsStepPositive?: (stepNumber: number) => boolean;
72
+ /**
73
+ * Кастомный метод для установки кастомного индикатора шага
74
+ * @param stepNumber - номер шага
75
+ * @return Объект StepIndicatorProps { className, content, iconColor }
76
+ */
77
+ checkIsStepCustom?: (stepNumber: number) => StepIndicatorProps;
78
+ /**
79
+ * Обработчик клика на шаг
80
+ * @param stepNumber - номер активного шага
81
+ */
82
+ onChange?: (stepNumber: number) => void;
83
+ /**
84
+ * Идентификатор для систем автоматизированного тестирования
85
+ */
86
+ dataTestId?: string;
87
+ };
88
+ declare const Steps: React.FC<StepsProps>;
89
+ export { StepsProps, Steps };
package/Component.js ADDED
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var cn = require('classnames');
7
+ var components_step_Component = require('./components/step/Component.js');
8
+ require('@alfalab/hooks');
9
+ require('@alfalab/icons-glyph/CheckmarkCircleMIcon');
10
+ require('@alfalab/icons-glyph/ExclamationCircleMIcon');
11
+ require('@alfalab/icons-glyph/ClockMIcon');
12
+ require('@alfalab/core-components-badge');
13
+ require('./components/step-indicator/Component.js');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
19
+
20
+ var styles = {"component":"steps__component_rm960","vertical":"steps__vertical_rm960"};
21
+ require('./index.css')
22
+
23
+ var Steps = function (_a) {
24
+ var _b;
25
+ var className = _a.className, children = _a.children, _c = _a.defaultActiveStep, defaultActiveStep = _c === void 0 ? 1 : _c, activeStepProp = _a.activeStep, _d = _a.isMarkCompletedSteps, isMarkCompletedSteps = _d === void 0 ? true : _d, _e = _a.isVerticalAlign, isVerticalAlign = _e === void 0 ? false : _e, _f = _a.ordered, ordered = _f === void 0 ? true : _f, _g = _a.interactive, interactive = _g === void 0 ? true : _g, checkIsStepDisabled = _a.checkIsStepDisabled, checkIsStepError = _a.checkIsStepError, checkIsStepWarning = _a.checkIsStepWarning, checkIsStepWaiting = _a.checkIsStepWaiting, checkIsStepPositive = _a.checkIsStepPositive, checkIsStepCustom = _a.checkIsStepCustom, onChange = _a.onChange, dataTestId = _a.dataTestId;
26
+ var _h = React.useState(activeStepProp || defaultActiveStep), activeStep = _h[0], setActiveStep = _h[1];
27
+ var stepsLength = React__default['default'].Children.count(children);
28
+ React.useEffect(function () {
29
+ if (activeStepProp) {
30
+ setActiveStep(activeStepProp);
31
+ }
32
+ }, [activeStepProp]);
33
+ var handleStepClick = function (stepNumber) {
34
+ setActiveStep(stepNumber);
35
+ if (onChange) {
36
+ onChange(stepNumber);
37
+ }
38
+ };
39
+ if (!stepsLength)
40
+ return null;
41
+ return (React__default['default'].createElement("div", { className: cn__default['default'](className, styles.component, (_b = {},
42
+ _b[styles.vertical] = isVerticalAlign,
43
+ _b)), "data-test-id": dataTestId }, React__default['default'].Children.map(children, function (step, index) {
44
+ var stepNumber = index + 1;
45
+ var isSelected = stepNumber === activeStep;
46
+ var isStepCompleted = isMarkCompletedSteps && stepNumber < activeStep;
47
+ var disabled = checkIsStepDisabled ? checkIsStepDisabled(stepNumber) : false;
48
+ var isPositive = checkIsStepPositive ? checkIsStepPositive(stepNumber) : false;
49
+ var isError = checkIsStepError ? checkIsStepError(stepNumber) : false;
50
+ var isWarning = checkIsStepWarning ? checkIsStepWarning(stepNumber) : false;
51
+ var isWaiting = checkIsStepWaiting ? checkIsStepWaiting(stepNumber) : false;
52
+ var customStepIndicator = checkIsStepCustom && checkIsStepCustom(stepNumber);
53
+ var isNotLastStep = stepsLength !== stepNumber;
54
+ var isInteractive = !disabled && interactive;
55
+ return (React__default['default'].createElement(components_step_Component.Step, { stepNumber: stepNumber, isSelected: isSelected, isStepCompleted: isStepCompleted, disabled: disabled, isPositive: isPositive, isError: isError, isWarning: isWarning, isWaiting: isWaiting, customStepIndicator: customStepIndicator, onClick: handleStepClick, ordered: ordered, interactive: isInteractive, isVerticalAlign: isVerticalAlign, isNotLastStep: isNotLastStep, key: stepNumber }, step));
56
+ })));
57
+ };
58
+
59
+ exports.Steps = Steps;
@@ -0,0 +1,70 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { ReactNode } from "react";
4
+ import { StepIndicatorProps } from "../step-indicator/index";
5
+ type StepProps = {
6
+ /**
7
+ * Название шага
8
+ */
9
+ children: ReactNode;
10
+ /**
11
+ * Номер шага
12
+ */
13
+ stepNumber: number;
14
+ /**
15
+ * Маркер того, что текущий шаг выбран
16
+ */
17
+ isSelected: boolean;
18
+ /**
19
+ * Маркер того, что текущий шаг доступен для клика
20
+ */
21
+ disabled: boolean;
22
+ /**
23
+ * Управление отображением номера шага
24
+ */
25
+ ordered?: boolean;
26
+ /**
27
+ * Включение / отключение интерактивности шагов
28
+ */
29
+ interactive?: boolean;
30
+ /**
31
+ * Маркер того, что текущий шаг находится в состоянии "Positive"
32
+ */
33
+ isPositive: boolean;
34
+ /**
35
+ * Маркер того, что текущий шаг находится в состоянии "Error"
36
+ */
37
+ isError: boolean;
38
+ /**
39
+ * Маркер того, что текущий шаг находится в состоянии "Warning"
40
+ */
41
+ isWarning: boolean;
42
+ /**
43
+ * Маркер того, что текущий шаг находится в состоянии "Waiting"
44
+ */
45
+ isWaiting: boolean;
46
+ /**
47
+ * Маркер того, что текущий шаг нужно пометить как завершенный
48
+ */
49
+ isStepCompleted: boolean;
50
+ /**
51
+ * Свойства кастомного индикатора текущего шага
52
+ */
53
+ customStepIndicator?: StepIndicatorProps;
54
+ /**
55
+ * Управление ориентацией компонента
56
+ * @default false
57
+ */
58
+ isVerticalAlign?: boolean;
59
+ /**
60
+ * Указывает, является ли текущий шаг последним в списке
61
+ */
62
+ isNotLastStep?: boolean;
63
+ /**
64
+ * Обработчик нажатия на текущей шаг
65
+ * @param stepNumber - номер шага
66
+ */
67
+ onClick: (stepNumber: number) => void;
68
+ };
69
+ declare const Step: React.FC<StepProps>;
70
+ export { StepProps, Step };
@@ -0,0 +1,126 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var cn = require('classnames');
7
+ var hooks = require('@alfalab/hooks');
8
+ var CheckmarkCircleMIcon = require('@alfalab/icons-glyph/CheckmarkCircleMIcon');
9
+ var ExclamationCircleMIcon = require('@alfalab/icons-glyph/ExclamationCircleMIcon');
10
+ var ClockMIcon = require('@alfalab/icons-glyph/ClockMIcon');
11
+ require('@alfalab/core-components-badge');
12
+ var components_stepIndicator_Component = require('../step-indicator/Component.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
18
+
19
+ /*! *****************************************************************************
20
+ Copyright (c) Microsoft Corporation.
21
+
22
+ Permission to use, copy, modify, and/or distribute this software for any
23
+ purpose with or without fee is hereby granted.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
26
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
27
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
28
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
29
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
30
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
31
+ PERFORMANCE OF THIS SOFTWARE.
32
+ ***************************************************************************** */
33
+ var __assign = function () {
34
+ __assign = Object.assign || function __assign(t) {
35
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
36
+ s = arguments[i];
37
+ for (var p in s)
38
+ if (Object.prototype.hasOwnProperty.call(s, p))
39
+ t[p] = s[p];
40
+ }
41
+ return t;
42
+ };
43
+ return __assign.apply(this, arguments);
44
+ };
45
+
46
+ var styles = {"step":"steps__step_xhvt7","vertical":"steps__vertical_xhvt7","interactive":"steps__interactive_xhvt7","disabled":"steps__disabled_xhvt7","text":"steps__text_xhvt7","indicator":"steps__indicator_xhvt7","option":"steps__option_xhvt7","dash":"steps__dash_xhvt7","completed":"steps__completed_xhvt7","focused":"steps__focused_xhvt7","selected":"steps__selected_xhvt7","checkbox":"steps__checkbox_xhvt7","dot":"steps__dot_xhvt7","error":"steps__error_xhvt7","unordered":"steps__unordered_xhvt7","completedIndicator":"steps__completedIndicator_xhvt7"};
47
+ require('./index.css')
48
+
49
+ var Step = function (_a) {
50
+ var _b, _c, _d, _e;
51
+ var children = _a.children, stepNumber = _a.stepNumber, isSelected = _a.isSelected, disabled = _a.disabled, ordered = _a.ordered, isPositive = _a.isPositive, isError = _a.isError, isWarning = _a.isWarning, isWaiting = _a.isWaiting, customStepIndicator = _a.customStepIndicator, isStepCompleted = _a.isStepCompleted, onClick = _a.onClick, interactive = _a.interactive, isVerticalAlign = _a.isVerticalAlign, isNotLastStep = _a.isNotLastStep;
52
+ var stepRef = React.useRef(null);
53
+ var focused = hooks.useFocus(stepRef, 'keyboard')[0];
54
+ var handleButtonClick = function () {
55
+ if (!disabled && onClick) {
56
+ onClick(stepNumber);
57
+ }
58
+ };
59
+ var handleTextClick = function (e) {
60
+ if (!interactive) {
61
+ e.stopPropagation();
62
+ }
63
+ };
64
+ var handleKeyDown = function (event) {
65
+ if (event.key === 'Enter') {
66
+ handleButtonClick();
67
+ }
68
+ };
69
+ var getStepIndicator = function () {
70
+ if (customStepIndicator) {
71
+ return React__default['default'].createElement(components_stepIndicator_Component.StepIndicator, __assign({}, customStepIndicator));
72
+ }
73
+ if (isError) {
74
+ return React__default['default'].createElement(components_stepIndicator_Component.StepIndicator, { iconColor: 'negative', content: React__default['default'].createElement(ExclamationCircleMIcon.ExclamationCircleMIcon, null) });
75
+ }
76
+ if (isWarning) {
77
+ return React__default['default'].createElement(components_stepIndicator_Component.StepIndicator, { iconColor: 'attention', content: React__default['default'].createElement(ExclamationCircleMIcon.ExclamationCircleMIcon, null) });
78
+ }
79
+ if (isWaiting) {
80
+ return React__default['default'].createElement(components_stepIndicator_Component.StepIndicator, { iconColor: 'secondary', content: React__default['default'].createElement(ClockMIcon.ClockMIcon, null) });
81
+ }
82
+ if (isPositive) {
83
+ return React__default['default'].createElement(components_stepIndicator_Component.StepIndicator, { iconColor: 'positive', content: React__default['default'].createElement(CheckmarkCircleMIcon.CheckmarkCircleMIcon, null) });
84
+ }
85
+ if (isStepCompleted) {
86
+ return React__default['default'].createElement(components_stepIndicator_Component.StepIndicator, { iconColor: 'positive', content: React__default['default'].createElement(CheckmarkCircleMIcon.CheckmarkCircleMIcon, null), className: styles.completedIndicator });
87
+ }
88
+ if (!ordered) {
89
+ return (React__default['default'].createElement("div", { className: styles.checkbox },
90
+ React__default['default'].createElement("span", { className: styles.dot })));
91
+ }
92
+ return stepNumber;
93
+ };
94
+ var renderDash = function () {
95
+ var _a;
96
+ return (React__default['default'].createElement("div", { className: cn__default['default'](styles.dash, (_a = {},
97
+ _a[styles.vertical] = isVerticalAlign,
98
+ _a[styles.completed] = isStepCompleted,
99
+ _a)) }));
100
+ };
101
+ return (React__default['default'].createElement("div", { role: 'button', tabIndex: 0, ref: stepRef, className: cn__default['default'](styles.step, (_b = {},
102
+ _b[styles.completed] = isStepCompleted,
103
+ _b[styles.error] = isError,
104
+ _b[styles.selected] = isSelected,
105
+ _b[styles.disabled] = disabled,
106
+ _b[styles.focused] = focused,
107
+ _b[styles.vertical] = isVerticalAlign,
108
+ _b[styles.interactive] = interactive,
109
+ _b)), onClick: handleButtonClick, onKeyDown: handleKeyDown },
110
+ React__default['default'].createElement("div", { className: cn__default['default'](styles.indicator, (_c = {},
111
+ _c[styles.vertical] = isVerticalAlign,
112
+ _c[styles.interactive] = interactive,
113
+ _c)) },
114
+ React__default['default'].createElement("div", { className: cn__default['default'](styles.option, (_d = {},
115
+ _d[styles.unordered] = !ordered,
116
+ _d[styles.vertical] = isVerticalAlign,
117
+ _d[styles.error] = isError,
118
+ _d)) }, getStepIndicator()),
119
+ isNotLastStep && isVerticalAlign && renderDash()),
120
+ React__default['default'].createElement("div", { className: cn__default['default'](styles.text, (_e = {},
121
+ _e[styles.interactive] = interactive,
122
+ _e)), onClick: handleTextClick }, children),
123
+ isNotLastStep && !isVerticalAlign && renderDash()));
124
+ };
125
+
126
+ exports.Step = Step;
@@ -0,0 +1,151 @@
1
+ /* hash: j46l8 */
2
+ :root {
3
+ --color-light-border-link: #007aff;
4
+ --color-light-border-primary: #dbdee1;
5
+ --color-light-graphic-positive: #2fc26e;
6
+ --color-light-graphic-primary: #0b1f35;
7
+ --color-light-graphic-primary-inverted: #fff;
8
+ --color-light-graphic-quaternary: #dbdee1;
9
+ --color-light-text-primary: #0b1f35;
10
+ --color-light-bg-primary-inverted-alpha-7: rgba(11, 31, 53, 0.07);
11
+ --color-light-bg-primary-inverted-alpha-15: rgba(11, 31, 53, 0.15);
12
+ }
13
+ :root {
14
+
15
+ /* Hard */
16
+
17
+ /* Up */
18
+
19
+ /* Hard up */
20
+ }
21
+ :root {
22
+ --gap-3xs: 2px;
23
+ --gap-2xs: 4px;
24
+ --gap-xs: 8px;
25
+ }
26
+ :root {
27
+ --focus-color: var(--color-light-border-link);
28
+ }
29
+ :root {
30
+ --steps-option-svg-color: var(--color-light-graphic-positive);
31
+ --steps-dash-border: 2px solid var(--color-light-graphic-positive);
32
+ }
33
+ .steps__step_xhvt7 {
34
+ display: flex;
35
+ outline: none
36
+ }
37
+ .steps__step_xhvt7:not(.steps__vertical_xhvt7) {
38
+ align-items: center;
39
+ }
40
+ .steps__step_xhvt7.steps__interactive_xhvt7:not(.steps__disabled_xhvt7):hover {
41
+ cursor: pointer;
42
+ }
43
+ .steps__step_xhvt7.steps__disabled_xhvt7:hover .steps__text_xhvt7 {
44
+ background: unset;
45
+ }
46
+ .steps__step_xhvt7.steps__disabled_xhvt7 .steps__indicator_xhvt7 {
47
+ cursor: unset;
48
+ }
49
+ .steps__indicator_xhvt7 {
50
+ cursor: pointer;
51
+ display: flex;
52
+ align-items: center;
53
+ margin-right: var(--gap-2xs)
54
+ }
55
+ .steps__indicator_xhvt7.steps__vertical_xhvt7 {
56
+ flex-direction: column;
57
+ margin-right: var(--gap-xs);
58
+ }
59
+ .steps__option_xhvt7 {
60
+ font-size: 14px;
61
+ line-height: 20px;
62
+ font-weight: 700;
63
+
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ color: var(--color-light-graphic-primary);
68
+ background: var(--color-light-graphic-quaternary);
69
+ min-width: 24px;
70
+ height: 24px;
71
+ border-radius: 50%
72
+ }
73
+ .steps__option_xhvt7.steps__vertical_xhvt7 {
74
+ margin-top: var(--gap-xs);
75
+ }
76
+ .steps__dash_xhvt7 {
77
+ flex: 1 1 auto;
78
+ min-width: 24px;
79
+ border-top: 2px solid var(--color-light-border-primary);
80
+ margin-right: var(--gap-xs)
81
+ }
82
+ .steps__dash_xhvt7.steps__completed_xhvt7 {
83
+ border-top: var(--steps-dash-border);
84
+ }
85
+ .steps__dash_xhvt7.steps__vertical_xhvt7 {
86
+ min-width: unset;
87
+ min-height: 24px;
88
+ margin-right: 0;
89
+ margin-top: var(--gap-xs);
90
+ border-left: 2px solid var(--color-light-border-primary);
91
+ border-top: none;
92
+ }
93
+ .steps__dash_xhvt7.steps__completed_xhvt7.steps__vertical_xhvt7 {
94
+ border-left: var(--steps-dash-border);
95
+ }
96
+ .steps__text_xhvt7 {
97
+ font-size: 16px;
98
+ line-height: 24px;
99
+ font-weight: 400;
100
+
101
+ transition: background 0.2s;
102
+ padding: var(--gap-xs);
103
+ color: var(--color-light-text-primary);
104
+ border-radius: var(--gap-xs);
105
+ height: min-content
106
+ }
107
+ .steps__text_xhvt7.steps__interactive_xhvt7:not(.steps__disabled_xhvt7):hover {
108
+ background: var(--color-light-bg-primary-inverted-alpha-7);
109
+ }
110
+ .steps__text_xhvt7.steps__interactive_xhvt7:not(.steps__disabled_xhvt7):active {
111
+ background: var(--color-light-bg-primary-inverted-alpha-15);
112
+ }
113
+ .steps__focused_xhvt7 {
114
+ outline: var(--gap-3xs) solid var(--focus-color);
115
+ outline-offset: var(--gap-3xs);
116
+ }
117
+ .steps__selected_xhvt7 .steps__text_xhvt7 {
118
+ color: var(--color-light-graphic-primary);
119
+ }
120
+ .steps__selected_xhvt7 .steps__option_xhvt7 {
121
+ color: var(--color-light-graphic-primary-inverted);
122
+ background: var(--color-light-graphic-primary);
123
+ }
124
+ .steps__checkbox_xhvt7 {
125
+ display: flex;
126
+ justify-content: center;
127
+ align-items: center;
128
+ border-radius: 50%;
129
+ width: 20px;
130
+ height: 20px;
131
+ border: 2px solid var(--color-light-graphic-quaternary);
132
+ }
133
+ .steps__dot_xhvt7 {
134
+ width: 10px;
135
+ height: 10px;
136
+ border-radius: 50%;
137
+ background: var(--color-light-graphic-quaternary);
138
+ }
139
+ .steps__selected_xhvt7 .steps__checkbox_xhvt7 {
140
+ border: 2px solid var(--color-light-graphic-primary)
141
+ }
142
+ .steps__selected_xhvt7 .steps__checkbox_xhvt7 .steps__dot_xhvt7 {
143
+ background: var(--color-light-graphic-primary);
144
+ }
145
+ .steps__option_xhvt7:not(.steps__error_xhvt7).steps__unordered_xhvt7 {
146
+ background: unset;
147
+ }
148
+ .steps__completedIndicator_xhvt7 > [class*='positive'] {
149
+ color: var(--steps-option-svg-color);
150
+ background-color: var(--steps-option-svg-color);
151
+ }
@@ -0,0 +1 @@
1
+ export * from "./Component";
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('react');
6
+ require('classnames');
7
+ var components_step_Component = require('./Component.js');
8
+ require('@alfalab/hooks');
9
+ require('@alfalab/icons-glyph/CheckmarkCircleMIcon');
10
+ require('@alfalab/icons-glyph/ExclamationCircleMIcon');
11
+ require('@alfalab/icons-glyph/ClockMIcon');
12
+ require('@alfalab/core-components-badge');
13
+ require('../step-indicator/Component.js');
14
+
15
+
16
+
17
+ exports.Step = components_step_Component.Step;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { BadgeProps } from "@alfalab/core-components-badge";
4
+ type StepIndicatorProps = Pick<BadgeProps, 'content' | 'iconColor' | 'className'>;
5
+ declare const StepIndicator: React.FC<StepIndicatorProps>;
6
+ export { StepIndicatorProps, StepIndicator };
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var cn = require('classnames');
7
+ var coreComponentsBadge = require('@alfalab/core-components-badge');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
13
+
14
+ var styles = {"component":"steps__component_19vei"};
15
+ require('./index.css')
16
+
17
+ var StepIndicator = function (_a) {
18
+ var content = _a.content, iconColor = _a.iconColor, className = _a.className;
19
+ return (React__default['default'].createElement(coreComponentsBadge.Badge, { size: 'l', view: 'icon', iconColor: iconColor, className: cn__default['default'](styles.component, className), content: content }));
20
+ };
21
+
22
+ exports.StepIndicator = StepIndicator;
@@ -0,0 +1,4 @@
1
+ /* hash: crmt3 */
2
+ .steps__component_19vei {
3
+ padding: 0;
4
+ }
@@ -0,0 +1 @@
1
+ export * from "./Component";
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('react');
6
+ require('classnames');
7
+ require('@alfalab/core-components-badge');
8
+ var components_stepIndicator_Component = require('./Component.js');
9
+
10
+
11
+
12
+ exports.StepIndicator = components_stepIndicator_Component.StepIndicator;
@@ -0,0 +1,89 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { ReactNode } from "react";
4
+ import { StepIndicatorProps } from "./components/step-indicator/index";
5
+ type StepsProps = {
6
+ /**
7
+ * Дополнительный класс
8
+ */
9
+ className?: string;
10
+ /**
11
+ * Дочерние элементы
12
+ */
13
+ children: ReactNode;
14
+ /**
15
+ * Активный шаг, указанный по умолчанию
16
+ * @default 1
17
+ */
18
+ defaultActiveStep?: number;
19
+ /**
20
+ * Активный шаг
21
+ */
22
+ activeStep?: number;
23
+ /**
24
+ * Управление возможностью отключения пометки пройденного шага
25
+ * @default true
26
+ */
27
+ isMarkCompletedSteps?: boolean;
28
+ /**
29
+ * Управление ориентацией компонента
30
+ * @default false
31
+ */
32
+ isVerticalAlign?: boolean;
33
+ /**
34
+ * Управление отображением номера шага
35
+ */
36
+ ordered?: boolean;
37
+ /**
38
+ * Включение / отключение интерактивности шагов
39
+ */
40
+ interactive?: boolean;
41
+ /**
42
+ * Кастомный метод для управления состоянием disabled шага и
43
+ * возможностью перехода на этот шаг
44
+ * @param stepNumber - номер шага
45
+ * @return Флаг состояния disabled
46
+ */
47
+ checkIsStepDisabled?: (stepNumber: number) => boolean;
48
+ /**
49
+ * Кастомный метод для управления состоянием шага error
50
+ * @param stepNumber - номер шага
51
+ * @return Флаг состояния error
52
+ */
53
+ checkIsStepError?: (stepNumber: number) => boolean;
54
+ /**
55
+ * Кастомный метод для управления состоянием шага warning
56
+ * @param stepNumber - номер шага
57
+ * @return Флаг состояния warning
58
+ */
59
+ checkIsStepWarning?: (stepNumber: number) => boolean;
60
+ /**
61
+ * Кастомный метод для управления состоянием шага waiting
62
+ * @param stepNumber - номер шага
63
+ * @return Флаг состояния waiting
64
+ */
65
+ checkIsStepWaiting?: (stepNumber: number) => boolean;
66
+ /**
67
+ * Кастомный метод для управления состоянием шага positive
68
+ * @param stepNumber - номер шага
69
+ * @return Флаг состояния positive
70
+ */
71
+ checkIsStepPositive?: (stepNumber: number) => boolean;
72
+ /**
73
+ * Кастомный метод для установки кастомного индикатора шага
74
+ * @param stepNumber - номер шага
75
+ * @return Объект StepIndicatorProps { className, content, iconColor }
76
+ */
77
+ checkIsStepCustom?: (stepNumber: number) => StepIndicatorProps;
78
+ /**
79
+ * Обработчик клика на шаг
80
+ * @param stepNumber - номер активного шага
81
+ */
82
+ onChange?: (stepNumber: number) => void;
83
+ /**
84
+ * Идентификатор для систем автоматизированного тестирования
85
+ */
86
+ dataTestId?: string;
87
+ };
88
+ declare const Steps: React.FC<StepsProps>;
89
+ export { StepsProps, Steps };