@alfalab/core-components-steps 2.0.0 → 2.1.0-snapshot-92b8690

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 (70) hide show
  1. package/components/step/index.css +31 -31
  2. package/components/step/index.module.css.js +1 -1
  3. package/components/step/index.module.css.js.map +1 -1
  4. package/components/step-indicator/index.css +1 -1
  5. package/components/step-indicator/index.module.css.js +1 -1
  6. package/components/step-indicator/index.module.css.js.map +1 -1
  7. package/dynamic-mixins/Component.d.ts +72 -0
  8. package/dynamic-mixins/Component.js +54 -0
  9. package/dynamic-mixins/Component.js.map +1 -0
  10. package/dynamic-mixins/components/step/Component.d.ts +56 -0
  11. package/dynamic-mixins/components/step/Component.js +117 -0
  12. package/dynamic-mixins/components/step/Component.js.map +1 -0
  13. package/dynamic-mixins/components/step/index.css +130 -0
  14. package/dynamic-mixins/components/step/index.d.ts +1 -0
  15. package/dynamic-mixins/components/step/index.js +10 -0
  16. package/dynamic-mixins/components/step/index.js.map +1 -0
  17. package/dynamic-mixins/components/step/index.module.css.js +8 -0
  18. package/dynamic-mixins/components/step/index.module.css.js.map +1 -0
  19. package/dynamic-mixins/components/step-indicator/Component.d.ts +4 -0
  20. package/dynamic-mixins/components/step-indicator/Component.js +21 -0
  21. package/dynamic-mixins/components/step-indicator/Component.js.map +1 -0
  22. package/dynamic-mixins/components/step-indicator/index.css +5 -0
  23. package/dynamic-mixins/components/step-indicator/index.d.ts +1 -0
  24. package/dynamic-mixins/components/step-indicator/index.js +10 -0
  25. package/dynamic-mixins/components/step-indicator/index.js.map +1 -0
  26. package/dynamic-mixins/components/step-indicator/index.module.css.js +8 -0
  27. package/dynamic-mixins/components/step-indicator/index.module.css.js.map +1 -0
  28. package/dynamic-mixins/index.css +8 -0
  29. package/dynamic-mixins/index.d.ts +1 -0
  30. package/dynamic-mixins/index.js +10 -0
  31. package/dynamic-mixins/index.js.map +1 -0
  32. package/dynamic-mixins/index.module.css.js +8 -0
  33. package/dynamic-mixins/index.module.css.js.map +1 -0
  34. package/dynamic-mixins/shared/index.d.ts +1 -0
  35. package/dynamic-mixins/shared/index.js +10 -0
  36. package/dynamic-mixins/shared/index.js.map +1 -0
  37. package/dynamic-mixins/types/common-props.d.ts +40 -0
  38. package/dynamic-mixins/types/common-props.js +3 -0
  39. package/dynamic-mixins/types/common-props.js.map +1 -0
  40. package/dynamic-mixins/utils/getStepsTestIds.d.ts +4 -0
  41. package/dynamic-mixins/utils/getStepsTestIds.js +15 -0
  42. package/dynamic-mixins/utils/getStepsTestIds.js.map +1 -0
  43. package/esm/components/step/index.css +31 -31
  44. package/esm/components/step/index.module.css.js +1 -1
  45. package/esm/components/step/index.module.css.js.map +1 -1
  46. package/esm/components/step-indicator/index.css +1 -1
  47. package/esm/components/step-indicator/index.module.css.js +1 -1
  48. package/esm/components/step-indicator/index.module.css.js.map +1 -1
  49. package/esm/index.css +2 -2
  50. package/esm/index.module.css.js +1 -1
  51. package/esm/index.module.css.js.map +1 -1
  52. package/index.css +2 -2
  53. package/index.module.css.js +1 -1
  54. package/index.module.css.js.map +1 -1
  55. package/modern/components/step/index.css +31 -31
  56. package/modern/components/step/index.module.css.js +1 -1
  57. package/modern/components/step/index.module.css.js.map +1 -1
  58. package/modern/components/step-indicator/index.css +1 -1
  59. package/modern/components/step-indicator/index.module.css.js +1 -1
  60. package/modern/components/step-indicator/index.module.css.js.map +1 -1
  61. package/modern/index.css +2 -2
  62. package/modern/index.module.css.js +1 -1
  63. package/modern/index.module.css.js.map +1 -1
  64. package/moderncssm/components/step/index.module.css +2 -0
  65. package/moderncssm/components/step-indicator/index.module.css +2 -0
  66. package/moderncssm/index.module.css +2 -1
  67. package/package.json +5 -5
  68. package/src/components/step/index.module.css +1 -1
  69. package/src/components/step-indicator/index.module.css +1 -1
  70. package/src/index.module.css +1 -1
@@ -24,30 +24,30 @@
24
24
  } :root {
25
25
  --steps-option-svg-color: var(--color-light-status-positive);
26
26
  --steps-dash-border: 2px solid var(--color-light-status-positive);
27
- } .steps__step_1exzg {
27
+ } .steps__step_116b4 {
28
28
  display: flex;
29
29
  outline: none
30
- } .steps__step_1exzg.steps__horizontal_1exzg {
30
+ } .steps__step_116b4.steps__horizontal_116b4 {
31
31
  flex-grow: 1;
32
- } .steps__step_1exzg:not(.steps__vertical_1exzg) {
32
+ } .steps__step_116b4:not(.steps__vertical_116b4) {
33
33
  align-items: center;
34
- } .steps__step_1exzg:last-of-type .steps__textWrapper_1exzg.steps__vertical_1exzg {
34
+ } .steps__step_116b4:last-of-type .steps__textWrapper_116b4.steps__vertical_116b4 {
35
35
  margin-bottom: var(--gap-0);
36
- } .steps__step_1exzg.steps__interactive_1exzg:not(.steps__disabled_1exzg):hover {
36
+ } .steps__step_116b4.steps__interactive_116b4:not(.steps__disabled_116b4):hover {
37
37
  cursor: pointer;
38
- } .steps__step_1exzg.steps__disabled_1exzg:hover .steps__text_1exzg {
38
+ } .steps__step_116b4.steps__disabled_116b4:hover .steps__text_116b4 {
39
39
  background: unset;
40
- } .steps__step_1exzg.steps__disabled_1exzg .steps__indicator_1exzg {
40
+ } .steps__step_116b4.steps__disabled_116b4 .steps__indicator_116b4 {
41
41
  cursor: unset;
42
- } .steps__indicator_1exzg {
42
+ } .steps__indicator_116b4 {
43
43
  cursor: pointer;
44
44
  display: flex;
45
45
  align-items: center;
46
46
  margin-right: var(--gap-4)
47
- } .steps__indicator_1exzg.steps__vertical_1exzg {
47
+ } .steps__indicator_116b4.steps__vertical_116b4 {
48
48
  flex-direction: column;
49
49
  margin-right: var(--gap-8);
50
- } .steps__option_1exzg {
50
+ } .steps__option_116b4 {
51
51
  font-size: 14px;
52
52
  line-height: 20px;
53
53
  font-weight: 700;
@@ -60,31 +60,31 @@
60
60
  min-width: 24px;
61
61
  height: 24px;
62
62
  border-radius: var(--border-radius-circle)
63
- } .steps__option_1exzg.steps__vertical_1exzg {
63
+ } .steps__option_116b4.steps__vertical_116b4 {
64
64
  margin-top: var(--gap-8);
65
- } .steps__dash_1exzg {
65
+ } .steps__dash_116b4 {
66
66
  flex: 1 1 auto;
67
67
  min-width: 24px;
68
68
  border-top: 2px solid var(--color-light-neutral-translucent-300);
69
69
  margin-right: var(--gap-8)
70
- } .steps__dash_1exzg.steps__completed_1exzg {
70
+ } .steps__dash_116b4.steps__completed_116b4 {
71
71
  border-top: var(--steps-dash-border);
72
- } .steps__dash_1exzg.steps__vertical_1exzg {
72
+ } .steps__dash_116b4.steps__vertical_116b4 {
73
73
  min-width: unset;
74
74
  min-height: 8px;
75
75
  margin-right: var(--gap-0);
76
76
  margin-top: var(--gap-8);
77
77
  border-left: 2px solid var(--color-light-neutral-translucent-300);
78
78
  border-top: none;
79
- } .steps__dash_1exzg.steps__completed_1exzg.steps__vertical_1exzg {
79
+ } .steps__dash_116b4.steps__completed_116b4.steps__vertical_116b4 {
80
80
  border-left: var(--steps-dash-border);
81
- } .steps__textWrapper_1exzg.steps__vertical_1exzg {
81
+ } .steps__textWrapper_116b4.steps__vertical_116b4 {
82
82
  min-height: 48px
83
- } .steps__textWrapper_1exzg.steps__vertical_1exzg.steps__gap-24_1exzg {
83
+ } .steps__textWrapper_116b4.steps__vertical_116b4.steps__gap-24_116b4 {
84
84
  margin-bottom: var(--gap-8);
85
- } .steps__textWrapper_1exzg.steps__vertical_1exzg.steps__gap-32_1exzg {
85
+ } .steps__textWrapper_116b4.steps__vertical_116b4.steps__gap-32_116b4 {
86
86
  margin-bottom: var(--gap-16);
87
- } .steps__text_1exzg {
87
+ } .steps__text_116b4 {
88
88
  font-size: 16px;
89
89
  line-height: 24px;
90
90
  font-weight: 400;
@@ -95,19 +95,19 @@
95
95
  border-radius: var(--gap-8);
96
96
  height: -moz-min-content;
97
97
  height: min-content
98
- } .steps__text_1exzg.steps__interactive_1exzg:not(.steps__disabled_1exzg):hover {
98
+ } .steps__text_116b4.steps__interactive_116b4:not(.steps__disabled_116b4):hover {
99
99
  background: var(--color-light-transparent-default-hover);
100
- } .steps__text_1exzg.steps__interactive_1exzg:not(.steps__disabled_1exzg):active {
100
+ } .steps__text_116b4.steps__interactive_116b4:not(.steps__disabled_116b4):active {
101
101
  background: var(--color-light-transparent-default-press);
102
- } .steps__focused_1exzg {
102
+ } .steps__focused_116b4 {
103
103
  outline: var(--gap-2) solid var(--focus-color);
104
104
  outline-offset: var(--gap-2);
105
- } .steps__selected_1exzg .steps__text_1exzg {
105
+ } .steps__selected_116b4 .steps__text_116b4 {
106
106
  color: var(--color-light-text-primary);
107
- } .steps__selected_1exzg .steps__option_1exzg {
107
+ } .steps__selected_116b4 .steps__option_116b4 {
108
108
  color: var(--color-light-text-primary-inverted);
109
109
  background: var(--color-light-neutral-translucent-1300);
110
- } .steps__checkbox_1exzg {
110
+ } .steps__checkbox_116b4 {
111
111
  display: flex;
112
112
  justify-content: center;
113
113
  align-items: center;
@@ -115,20 +115,20 @@
115
115
  width: 20px;
116
116
  height: 20px;
117
117
  border: 2px solid var(--color-light-neutral-translucent-300);
118
- } .steps__dot_1exzg {
118
+ } .steps__dot_116b4 {
119
119
  width: 10px;
120
120
  height: 10px;
121
121
  border-radius: var(--border-radius-circle);
122
122
  background: var(--color-light-neutral-translucent-300);
123
- } .steps__selected_1exzg .steps__checkbox_1exzg {
123
+ } .steps__selected_116b4 .steps__checkbox_116b4 {
124
124
  border: 2px solid var(--color-light-neutral-translucent-1300)
125
- } .steps__selected_1exzg .steps__checkbox_1exzg .steps__dot_1exzg {
125
+ } .steps__selected_116b4 .steps__checkbox_116b4 .steps__dot_116b4 {
126
126
  background: var(--color-light-neutral-translucent-1300);
127
- } .steps__option_1exzg:not(.steps__error_1exzg).steps__unordered_1exzg {
127
+ } .steps__option_116b4:not(.steps__error_116b4).steps__unordered_116b4 {
128
128
  background: unset;
129
- } .steps__completedIndicator_1exzg > [class*='positive'] {
129
+ } .steps__completedIndicator_116b4 > [class*='positive'] {
130
130
  color: var(--steps-option-svg-color);
131
131
  background-color: var(--steps-option-svg-color);
132
- } .steps__fullWidth_1exzg {
132
+ } .steps__fullWidth_116b4 {
133
133
  width: 100%;
134
134
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"step":"steps__step_1exzg","horizontal":"steps__horizontal_1exzg","vertical":"steps__vertical_1exzg","textWrapper":"steps__textWrapper_1exzg","interactive":"steps__interactive_1exzg","disabled":"steps__disabled_1exzg","text":"steps__text_1exzg","indicator":"steps__indicator_1exzg","option":"steps__option_1exzg","dash":"steps__dash_1exzg","completed":"steps__completed_1exzg","gap-24":"steps__gap-24_1exzg","gap-32":"steps__gap-32_1exzg","focused":"steps__focused_1exzg","selected":"steps__selected_1exzg","checkbox":"steps__checkbox_1exzg","dot":"steps__dot_1exzg","error":"steps__error_1exzg","unordered":"steps__unordered_1exzg","completedIndicator":"steps__completedIndicator_1exzg","fullWidth":"steps__fullWidth_1exzg"};
5
+ var styles = {"step":"steps__step_116b4","horizontal":"steps__horizontal_116b4","vertical":"steps__vertical_116b4","textWrapper":"steps__textWrapper_116b4","interactive":"steps__interactive_116b4","disabled":"steps__disabled_116b4","text":"steps__text_116b4","indicator":"steps__indicator_116b4","option":"steps__option_116b4","dash":"steps__dash_116b4","completed":"steps__completed_116b4","gap-24":"steps__gap-24_116b4","gap-32":"steps__gap-32_116b4","focused":"steps__focused_116b4","selected":"steps__selected_116b4","checkbox":"steps__checkbox_116b4","dot":"steps__dot_116b4","error":"steps__error_116b4","unordered":"steps__unordered_116b4","completedIndicator":"steps__completedIndicator_116b4","fullWidth":"steps__fullWidth_116b4"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/step/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n:root {\n --steps-option-svg-color: var(--color-light-status-positive);\n --steps-dash-border: 2px solid var(--color-light-status-positive);\n}\n\n.step {\n display: flex;\n outline: none;\n\n &.horizontal {\n flex-grow: 1;\n }\n\n &:not(.vertical) {\n align-items: center;\n }\n\n &:last-of-type .textWrapper.vertical {\n margin-bottom: var(--gap-0);\n }\n}\n\n.step.interactive:not(.disabled):hover {\n cursor: pointer;\n}\n\n.step.disabled:hover {\n & .text {\n background: unset;\n }\n}\n\n.step.disabled {\n & .indicator {\n cursor: unset;\n }\n}\n\n.indicator {\n cursor: pointer;\n display: flex;\n align-items: center;\n margin-right: var(--gap-4);\n\n &.vertical {\n flex-direction: column;\n margin-right: var(--gap-8);\n }\n}\n\n.option {\n @mixin accent_primary_small;\n\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--color-light-text-primary);\n background: var(--color-light-neutral-translucent-300);\n min-width: 24px;\n height: 24px;\n border-radius: var(--border-radius-circle);\n\n &.vertical {\n margin-top: var(--gap-8);\n }\n}\n\n.dash {\n flex: 1 1 auto;\n min-width: 24px;\n border-top: 2px solid var(--color-light-neutral-translucent-300);\n margin-right: var(--gap-8);\n\n &.completed {\n border-top: var(--steps-dash-border);\n }\n\n &.vertical {\n min-width: unset;\n min-height: 8px;\n margin-right: var(--gap-0);\n margin-top: var(--gap-8);\n border-left: 2px solid var(--color-light-neutral-translucent-300);\n border-top: none;\n }\n\n &.completed.vertical {\n border-left: var(--steps-dash-border);\n }\n}\n\n.textWrapper {\n &.vertical {\n min-height: 48px;\n\n &.gap-24 {\n margin-bottom: var(--gap-8);\n }\n\n &.gap-32 {\n margin-bottom: var(--gap-16);\n }\n }\n}\n\n.text {\n @mixin paragraph_primary_medium;\n\n transition: background 0.2s;\n padding: var(--gap-8);\n color: var(--color-light-text-primary);\n border-radius: var(--gap-8);\n height: min-content;\n\n &.interactive:not(.disabled) {\n &:hover {\n background: var(--color-light-transparent-default-hover);\n }\n\n &:active {\n background: var(--color-light-transparent-default-press);\n }\n }\n}\n\n.focused {\n outline: var(--gap-2) solid var(--focus-color);\n outline-offset: var(--gap-2);\n}\n\n.selected {\n & .text {\n color: var(--color-light-text-primary);\n }\n\n & .option {\n color: var(--color-light-text-primary-inverted);\n background: var(--color-light-neutral-translucent-1300);\n }\n}\n\n.checkbox {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-circle);\n width: 20px;\n height: 20px;\n border: 2px solid var(--color-light-neutral-translucent-300);\n}\n\n.dot {\n width: 10px;\n height: 10px;\n border-radius: var(--border-radius-circle);\n background: var(--color-light-neutral-translucent-300);\n}\n\n.selected .checkbox {\n border: 2px solid var(--color-light-neutral-translucent-1300);\n\n & .dot {\n background: var(--color-light-neutral-translucent-1300);\n }\n}\n\n.option:not(.error).unordered {\n background: unset;\n}\n\n.completedIndicator > [class*='positive'] {\n color: var(--steps-option-svg-color);\n background-color: var(--steps-option-svg-color);\n}\n\n.fullWidth {\n width: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,yBAAyB,CAAC,UAAU,CAAC,uBAAuB,CAAC,aAAa,CAAC,0BAA0B,CAAC,aAAa,CAAC,0BAA0B,CAAC,UAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,wBAAwB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,wBAAwB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,SAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,uBAAuB,CAAC,UAAU,CAAC,uBAAuB,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,iCAAiC,CAAC,WAAW,CAAC,wBAAwB,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/step/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n:root {\n --steps-option-svg-color: var(--color-light-status-positive);\n --steps-dash-border: 2px solid var(--color-light-status-positive);\n}\n\n.step {\n display: flex;\n outline: none;\n\n &.horizontal {\n flex-grow: 1;\n }\n\n &:not(.vertical) {\n align-items: center;\n }\n\n &:last-of-type .textWrapper.vertical {\n margin-bottom: var(--gap-0);\n }\n}\n\n.step.interactive:not(.disabled):hover {\n cursor: pointer;\n}\n\n.step.disabled:hover {\n & .text {\n background: unset;\n }\n}\n\n.step.disabled {\n & .indicator {\n cursor: unset;\n }\n}\n\n.indicator {\n cursor: pointer;\n display: flex;\n align-items: center;\n margin-right: var(--gap-4);\n\n &.vertical {\n flex-direction: column;\n margin-right: var(--gap-8);\n }\n}\n\n.option {\n @mixin accent_primary_small;\n\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--color-light-text-primary);\n background: var(--color-light-neutral-translucent-300);\n min-width: 24px;\n height: 24px;\n border-radius: var(--border-radius-circle);\n\n &.vertical {\n margin-top: var(--gap-8);\n }\n}\n\n.dash {\n flex: 1 1 auto;\n min-width: 24px;\n border-top: 2px solid var(--color-light-neutral-translucent-300);\n margin-right: var(--gap-8);\n\n &.completed {\n border-top: var(--steps-dash-border);\n }\n\n &.vertical {\n min-width: unset;\n min-height: 8px;\n margin-right: var(--gap-0);\n margin-top: var(--gap-8);\n border-left: 2px solid var(--color-light-neutral-translucent-300);\n border-top: none;\n }\n\n &.completed.vertical {\n border-left: var(--steps-dash-border);\n }\n}\n\n.textWrapper {\n &.vertical {\n min-height: 48px;\n\n &.gap-24 {\n margin-bottom: var(--gap-8);\n }\n\n &.gap-32 {\n margin-bottom: var(--gap-16);\n }\n }\n}\n\n.text {\n @mixin paragraph_primary_medium;\n\n transition: background 0.2s;\n padding: var(--gap-8);\n color: var(--color-light-text-primary);\n border-radius: var(--gap-8);\n height: min-content;\n\n &.interactive:not(.disabled) {\n &:hover {\n background: var(--color-light-transparent-default-hover);\n }\n\n &:active {\n background: var(--color-light-transparent-default-press);\n }\n }\n}\n\n.focused {\n outline: var(--gap-2) solid var(--focus-color);\n outline-offset: var(--gap-2);\n}\n\n.selected {\n & .text {\n color: var(--color-light-text-primary);\n }\n\n & .option {\n color: var(--color-light-text-primary-inverted);\n background: var(--color-light-neutral-translucent-1300);\n }\n}\n\n.checkbox {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-circle);\n width: 20px;\n height: 20px;\n border: 2px solid var(--color-light-neutral-translucent-300);\n}\n\n.dot {\n width: 10px;\n height: 10px;\n border-radius: var(--border-radius-circle);\n background: var(--color-light-neutral-translucent-300);\n}\n\n.selected .checkbox {\n border: 2px solid var(--color-light-neutral-translucent-1300);\n\n & .dot {\n background: var(--color-light-neutral-translucent-1300);\n }\n}\n\n.option:not(.error).unordered {\n background: unset;\n}\n\n.completedIndicator > [class*='positive'] {\n color: var(--steps-option-svg-color);\n background-color: var(--steps-option-svg-color);\n}\n\n.fullWidth {\n width: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,yBAAyB,CAAC,UAAU,CAAC,uBAAuB,CAAC,aAAa,CAAC,0BAA0B,CAAC,aAAa,CAAC,0BAA0B,CAAC,UAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,wBAAwB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,wBAAwB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,SAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,uBAAuB,CAAC,UAAU,CAAC,uBAAuB,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,iCAAiC,CAAC,WAAW,CAAC,wBAAwB,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
1
  :root {
2
2
  --gap-0: 0px;
3
- } .steps__component_1r6i2.steps__component_1r6i2 {
3
+ } .steps__component_qrkzb.steps__component_qrkzb {
4
4
  padding: var(--gap-0);
5
5
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"steps__component_1r6i2"};
5
+ var styles = {"component":"steps__component_qrkzb"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/step-indicator/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.component.component {\n padding: var(--gap-0);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/step-indicator/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.component.component {\n padding: var(--gap-0);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC;;;;"}
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ import { StepIndicatorProps } from './components/step-indicator';
3
+ import { CommonProps } from './types/common-props';
4
+ export declare type StepsProps = {
5
+ /**
6
+ * Дополнительный класс
7
+ */
8
+ className?: string;
9
+ /**
10
+ * Активный шаг, указанный по умолчанию
11
+ * @default 1
12
+ */
13
+ defaultActiveStep?: number;
14
+ /**
15
+ * Активный шаг
16
+ */
17
+ activeStep?: number;
18
+ /**
19
+ * Управление возможностью отключения пометки пройденного шага
20
+ * @default true
21
+ */
22
+ isMarkCompletedSteps?: boolean;
23
+ /**
24
+ * Кастомный метод для управления состоянием disabled шага и
25
+ * возможностью перехода на этот шаг
26
+ * @param stepNumber - номер шага
27
+ * @return Флаг состояния disabled
28
+ */
29
+ checkIsStepDisabled?: (stepNumber: number) => boolean;
30
+ /**
31
+ * Кастомный метод для управления состоянием шага error
32
+ * @param stepNumber - номер шага
33
+ * @return Флаг состояния error
34
+ */
35
+ checkIsStepError?: (stepNumber: number) => boolean;
36
+ /**
37
+ * Кастомный метод для управления состоянием шага criticalError
38
+ * @param stepNumber - номер шага
39
+ * @return Флаг состояния error
40
+ */
41
+ checkIsStepCriticalError?: (stepNumber: number) => boolean;
42
+ /**
43
+ * Кастомный метод для управления состоянием шага warning
44
+ * @param stepNumber - номер шага
45
+ * @return Флаг состояния warning
46
+ */
47
+ checkIsStepWarning?: (stepNumber: number) => boolean;
48
+ /**
49
+ * Кастомный метод для управления состоянием шага waiting
50
+ * @param stepNumber - номер шага
51
+ * @return Флаг состояния waiting
52
+ */
53
+ checkIsStepWaiting?: (stepNumber: number) => boolean;
54
+ /**
55
+ * Кастомный метод для управления состоянием шага positive
56
+ * @param stepNumber - номер шага
57
+ * @return Флаг состояния positive
58
+ */
59
+ checkIsStepPositive?: (stepNumber: number) => boolean;
60
+ /**
61
+ * Кастомный метод для установки кастомного индикатора шага
62
+ * @param stepNumber - номер шага
63
+ * @return Объект StepIndicatorProps { className, content, iconColor } или null
64
+ */
65
+ checkIsStepCustom?: (stepNumber: number) => StepIndicatorProps | null;
66
+ /**
67
+ * Обработчик клика на шаг
68
+ * @param stepNumber - номер активного шага
69
+ */
70
+ onChange?: (stepNumber: number) => void;
71
+ } & CommonProps;
72
+ export declare const Steps: React.FC<StepsProps>;
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var cn = require('classnames');
7
+ var Component = require('./components/step/Component.js');
8
+ var index_module = require('./index.module.css.js');
9
+
10
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
14
+
15
+ var Steps = function (_a) {
16
+ var _b;
17
+ 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, _h = _a.fullWidth, fullWidth = _h === void 0 ? false : _h, _j = _a.minSpaceBetweenSteps, minSpaceBetweenSteps = _j === void 0 ? 24 : _j, checkIsStepDisabled = _a.checkIsStepDisabled, checkIsStepError = _a.checkIsStepError, checkIsStepCriticalError = _a.checkIsStepCriticalError, checkIsStepWarning = _a.checkIsStepWarning, checkIsStepWaiting = _a.checkIsStepWaiting, checkIsStepPositive = _a.checkIsStepPositive, checkIsStepCustom = _a.checkIsStepCustom, onChange = _a.onChange, dataTestId = _a.dataTestId, completedDashColor = _a.completedDashColor;
18
+ var uncontrolled = activeStepProp === undefined;
19
+ var _k = React.useState(defaultActiveStep), activeStep = _k[0], setActiveStep = _k[1];
20
+ var stepsLength = React__default.default.Children.count(children);
21
+ var handleStepClick = function (stepNumber) {
22
+ if (uncontrolled) {
23
+ setActiveStep(stepNumber);
24
+ }
25
+ if (onChange) {
26
+ onChange(stepNumber);
27
+ }
28
+ };
29
+ if (!stepsLength)
30
+ return null;
31
+ var visibleActiveStep = uncontrolled ? activeStep : activeStepProp;
32
+ return (React__default.default.createElement("div", { className: cn__default.default(className, index_module.component, (_b = {},
33
+ _b[index_module.vertical] = isVerticalAlign,
34
+ _b)), "data-test-id": dataTestId }, React__default.default.Children.map(children, function (step, index) {
35
+ var stepNumber = index + 1;
36
+ var isSelected = stepNumber === visibleActiveStep;
37
+ var isStepCompleted = isMarkCompletedSteps && stepNumber < visibleActiveStep;
38
+ var disabled = checkIsStepDisabled ? checkIsStepDisabled(stepNumber) : false;
39
+ var isPositive = checkIsStepPositive ? checkIsStepPositive(stepNumber) : false;
40
+ var isError = checkIsStepError ? checkIsStepError(stepNumber) : false;
41
+ var isCriticalError = checkIsStepCriticalError
42
+ ? checkIsStepCriticalError(stepNumber)
43
+ : false;
44
+ var isWarning = checkIsStepWarning ? checkIsStepWarning(stepNumber) : false;
45
+ var isWaiting = checkIsStepWaiting ? checkIsStepWaiting(stepNumber) : false;
46
+ var customStepIndicator = checkIsStepCustom && checkIsStepCustom(stepNumber);
47
+ var isNotLastStep = stepsLength !== stepNumber;
48
+ var isInteractive = !disabled && interactive;
49
+ return (React__default.default.createElement(Component.Step, { stepNumber: stepNumber, isSelected: isSelected, isStepCompleted: isStepCompleted, disabled: disabled, isPositive: isPositive, isError: isError, isCriticalError: isCriticalError, isWarning: isWarning, isWaiting: isWaiting, customStepIndicator: customStepIndicator, onClick: handleStepClick, ordered: ordered, interactive: isInteractive, isVerticalAlign: isVerticalAlign, isNotLastStep: isNotLastStep, key: stepNumber, fullWidth: fullWidth, minSpaceBetweenSteps: minSpaceBetweenSteps, completedDashColor: completedDashColor, dataTestId: dataTestId }, step));
50
+ })));
51
+ };
52
+
53
+ exports.Steps = Steps;
54
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport cn from 'classnames';\n\nimport { Step } from './components/step';\nimport { StepIndicatorProps } from './components/step-indicator';\nimport { CommonProps } from './types/common-props';\n\nimport styles from './index.module.css';\n\nexport type StepsProps = {\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Активный шаг, указанный по умолчанию\n * @default 1\n */\n defaultActiveStep?: number;\n\n /**\n * Активный шаг\n */\n activeStep?: number;\n\n /**\n * Управление возможностью отключения пометки пройденного шага\n * @default true\n */\n isMarkCompletedSteps?: boolean;\n\n /**\n * Кастомный метод для управления состоянием disabled шага и\n * возможностью перехода на этот шаг\n * @param stepNumber - номер шага\n * @return Флаг состояния disabled\n */\n checkIsStepDisabled?: (stepNumber: number) => boolean;\n\n /**\n * Кастомный метод для управления состоянием шага error\n * @param stepNumber - номер шага\n * @return Флаг состояния error\n */\n checkIsStepError?: (stepNumber: number) => boolean;\n\n /**\n * Кастомный метод для управления состоянием шага criticalError\n * @param stepNumber - номер шага\n * @return Флаг состояния error\n */\n checkIsStepCriticalError?: (stepNumber: number) => boolean;\n\n /**\n * Кастомный метод для управления состоянием шага warning\n * @param stepNumber - номер шага\n * @return Флаг состояния warning\n */\n checkIsStepWarning?: (stepNumber: number) => boolean;\n\n /**\n * Кастомный метод для управления состоянием шага waiting\n * @param stepNumber - номер шага\n * @return Флаг состояния waiting\n */\n checkIsStepWaiting?: (stepNumber: number) => boolean;\n\n /**\n * Кастомный метод для управления состоянием шага positive\n * @param stepNumber - номер шага\n * @return Флаг состояния positive\n */\n checkIsStepPositive?: (stepNumber: number) => boolean;\n\n /**\n * Кастомный метод для установки кастомного индикатора шага\n * @param stepNumber - номер шага\n * @return Объект StepIndicatorProps { className, content, iconColor } или null\n */\n checkIsStepCustom?: (stepNumber: number) => StepIndicatorProps | null;\n\n /**\n * Обработчик клика на шаг\n * @param stepNumber - номер активного шага\n */\n onChange?: (stepNumber: number) => void;\n} & CommonProps;\n\nexport const Steps: React.FC<StepsProps> = ({\n className,\n children,\n defaultActiveStep = 1,\n activeStep: activeStepProp,\n isMarkCompletedSteps = true,\n isVerticalAlign = false,\n ordered = true,\n interactive = true,\n fullWidth = false,\n minSpaceBetweenSteps = 24,\n checkIsStepDisabled,\n checkIsStepError,\n checkIsStepCriticalError,\n checkIsStepWarning,\n checkIsStepWaiting,\n checkIsStepPositive,\n checkIsStepCustom,\n onChange,\n dataTestId,\n completedDashColor,\n}) => {\n const uncontrolled = activeStepProp === undefined;\n const [activeStep, setActiveStep] = useState(defaultActiveStep);\n\n const stepsLength = React.Children.count(children);\n\n const handleStepClick = (stepNumber: number) => {\n if (uncontrolled) {\n setActiveStep(stepNumber);\n }\n\n if (onChange) {\n onChange(stepNumber);\n }\n };\n\n if (!stepsLength) return null;\n\n const visibleActiveStep = uncontrolled ? activeStep : activeStepProp;\n\n return (\n <div\n className={cn(className, styles.component, {\n [styles.vertical]: isVerticalAlign,\n })}\n data-test-id={dataTestId}\n >\n {React.Children.map(children, (step, index) => {\n const stepNumber = index + 1;\n const isSelected = stepNumber === visibleActiveStep;\n const isStepCompleted = isMarkCompletedSteps && stepNumber < visibleActiveStep;\n const disabled = checkIsStepDisabled ? checkIsStepDisabled(stepNumber) : false;\n const isPositive = checkIsStepPositive ? checkIsStepPositive(stepNumber) : false;\n const isError = checkIsStepError ? checkIsStepError(stepNumber) : false;\n const isCriticalError = checkIsStepCriticalError\n ? checkIsStepCriticalError(stepNumber)\n : false;\n const isWarning = checkIsStepWarning ? checkIsStepWarning(stepNumber) : false;\n const isWaiting = checkIsStepWaiting ? checkIsStepWaiting(stepNumber) : false;\n const customStepIndicator = checkIsStepCustom && checkIsStepCustom(stepNumber);\n const isNotLastStep = stepsLength !== stepNumber;\n const isInteractive = !disabled && interactive;\n\n return (\n <Step\n stepNumber={stepNumber}\n isSelected={isSelected}\n isStepCompleted={isStepCompleted}\n disabled={disabled}\n isPositive={isPositive}\n isError={isError}\n isCriticalError={isCriticalError}\n isWarning={isWarning}\n isWaiting={isWaiting}\n customStepIndicator={customStepIndicator}\n onClick={handleStepClick}\n ordered={ordered}\n interactive={isInteractive}\n isVerticalAlign={isVerticalAlign}\n isNotLastStep={isNotLastStep}\n key={stepNumber}\n fullWidth={fullWidth}\n minSpaceBetweenSteps={minSpaceBetweenSteps}\n completedDashColor={completedDashColor}\n dataTestId={dataTestId}\n >\n {step}\n </Step>\n );\n })}\n </div>\n );\n};\n"],"names":["useState","React","cn","styles","Step"],"mappings":";;;;;;;;;;;;;;AAyFO,IAAM,KAAK,GAAyB,UAAC,EAqB3C,EAAA;;AApBG,IAAA,IAAA,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,EAAA,GAAA,EAAA,CAAA,iBAAqB,EAArB,iBAAiB,GAAA,EAAA,KAAA,MAAA,GAAG,CAAC,GAAA,EAAA,EACT,cAAc,GAAA,EAAA,CAAA,UAAA,EAC1B,EAA2B,GAAA,EAAA,CAAA,oBAAA,EAA3B,oBAAoB,GAAG,EAAA,KAAA,MAAA,GAAA,IAAI,GAAA,EAAA,EAC3B,uBAAuB,EAAvB,eAAe,mBAAG,KAAK,GAAA,EAAA,EACvB,EAAc,GAAA,EAAA,CAAA,OAAA,EAAd,OAAO,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,GAAA,EAAA,EACd,mBAAkB,EAAlB,WAAW,mBAAG,IAAI,GAAA,EAAA,EAClB,EAAA,GAAA,EAAA,CAAA,SAAiB,EAAjB,SAAS,GAAA,EAAA,KAAA,MAAA,GAAG,KAAK,GAAA,EAAA,EACjB,4BAAyB,EAAzB,oBAAoB,GAAG,EAAA,KAAA,MAAA,GAAA,EAAE,KAAA,EACzB,mBAAmB,yBAAA,EACnB,gBAAgB,sBAAA,EAChB,wBAAwB,GAAA,EAAA,CAAA,wBAAA,EACxB,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAClB,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAClB,mBAAmB,GAAA,EAAA,CAAA,mBAAA,EACnB,iBAAiB,GAAA,EAAA,CAAA,iBAAA,EACjB,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,kBAAkB,GAAA,EAAA,CAAA,kBAAA;AAElB,IAAA,IAAM,YAAY,GAAG,cAAc,KAAK,SAAS;IAC3C,IAAA,EAAA,GAA8BA,cAAQ,CAAC,iBAAiB,CAAC,EAAxD,UAAU,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,aAAa,GAAA,EAAA,CAAA,CAAA,CAA+B;IAE/D,IAAM,WAAW,GAAGC,sBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IAElD,IAAM,eAAe,GAAG,UAAC,UAAkB,EAAA;AACvC,QAAA,IAAI,YAAY,EAAE;YACd,aAAa,CAAC,UAAU,CAAC;AAC5B;AAED,QAAA,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,UAAU,CAAC;AACvB;AACL,KAAC;AAED,IAAA,IAAI,CAAC,WAAW;AAAE,QAAA,OAAO,IAAI;IAE7B,IAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc;IAEpE,QACIA,sBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,mBAAE,CAAC,SAAS,EAAEC,YAAM,CAAC,SAAS,GAAA,EAAA,GAAA,EAAA;AACrC,YAAA,EAAA,CAACA,YAAM,CAAC,QAAQ,CAAA,GAAG,eAAe;AACpC,YAAA,EAAA,EAAA,EAAA,cAAA,EACY,UAAU,EAAA,EAEvBF,sBAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,IAAI,EAAE,KAAK,EAAA;AACtC,QAAA,IAAM,UAAU,GAAG,KAAK,GAAG,CAAC;AAC5B,QAAA,IAAM,UAAU,GAAG,UAAU,KAAK,iBAAiB;AACnD,QAAA,IAAM,eAAe,GAAG,oBAAoB,IAAI,UAAU,GAAG,iBAAiB;AAC9E,QAAA,IAAM,QAAQ,GAAG,mBAAmB,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,KAAK;AAC9E,QAAA,IAAM,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,KAAK;AAChF,QAAA,IAAM,OAAO,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,KAAK;QACvE,IAAM,eAAe,GAAG;AACpB,cAAE,wBAAwB,CAAC,UAAU;cACnC,KAAK;AACX,QAAA,IAAM,SAAS,GAAG,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK;AAC7E,QAAA,IAAM,SAAS,GAAG,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK;QAC7E,IAAM,mBAAmB,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAC9E,QAAA,IAAM,aAAa,GAAG,WAAW,KAAK,UAAU;AAChD,QAAA,IAAM,aAAa,GAAG,CAAC,QAAQ,IAAI,WAAW;AAE9C,QAAA,QACIA,sBAAC,CAAA,aAAA,CAAAG,cAAI,IACD,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,aAAa,EAC1B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,oBAAoB,EAC1C,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,UAAU,IAErB,IAAI,CACF;KAEd,CAAC,CACA;AAEd;;;;"}
@@ -0,0 +1,56 @@
1
+ import { FC } from 'react';
2
+ import { CommonProps } from '../../types/common-props';
3
+ import { StepIndicatorProps } from '../step-indicator';
4
+ declare type StepProps = {
5
+ /**
6
+ * Номер шага
7
+ */
8
+ stepNumber: number;
9
+ /**
10
+ * Маркер того, что текущий шаг выбран
11
+ */
12
+ isSelected: boolean;
13
+ /**
14
+ * Маркер того, что текущий шаг доступен для клика
15
+ */
16
+ disabled: boolean;
17
+ /**
18
+ * Маркер того, что текущий шаг находится в состоянии "Positive"
19
+ */
20
+ isPositive: boolean;
21
+ /**
22
+ * Маркер того, что текущий шаг находится в состоянии "Error"
23
+ */
24
+ isError: boolean;
25
+ /**
26
+ * Маркер того, что текущий шаг находится в состоянии "isCriticalError"
27
+ */
28
+ isCriticalError: boolean;
29
+ /**
30
+ * Маркер того, что текущий шаг находится в состоянии "Warning"
31
+ */
32
+ isWarning: boolean;
33
+ /**
34
+ * Маркер того, что текущий шаг находится в состоянии "Waiting"
35
+ */
36
+ isWaiting: boolean;
37
+ /**
38
+ * Маркер того, что текущий шаг нужно пометить как завершенный
39
+ */
40
+ isStepCompleted: boolean;
41
+ /**
42
+ * Свойства кастомного индикатора текущего шага
43
+ */
44
+ customStepIndicator?: StepIndicatorProps | null;
45
+ /**
46
+ * Указывает, является ли текущий шаг последним в списке
47
+ */
48
+ isNotLastStep?: boolean;
49
+ /**
50
+ * Обработчик нажатия на текущей шаг
51
+ * @param stepNumber - номер шага
52
+ */
53
+ onClick: (stepNumber: number) => void;
54
+ } & CommonProps;
55
+ export declare const Step: FC<StepProps>;
56
+ export {};
@@ -0,0 +1,117 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var dynamicMixins = require('@alfalab/core-components-shared/dynamic-mixins');
9
+ var hooks = require('@alfalab/hooks');
10
+ var CheckmarkCircleMIcon = require('@alfalab/icons-glyph/CheckmarkCircleMIcon');
11
+ var ClockMIcon = require('@alfalab/icons-glyph/ClockMIcon');
12
+ var CrossCompactMIcon = require('@alfalab/icons-glyph/CrossCompactMIcon');
13
+ var ExclamationCircleMIcon = require('@alfalab/icons-glyph/ExclamationCircleMIcon');
14
+ var Component = require('../step-indicator/Component.js');
15
+ var index_module = require('./index.module.css.js');
16
+
17
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
18
+
19
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
20
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
21
+
22
+ var Step = function (_a) {
23
+ var _b, _c, _d, _e, _f;
24
+ var children = _a.children, stepNumber = _a.stepNumber, isSelected = _a.isSelected, disabled = _a.disabled, ordered = _a.ordered, isPositive = _a.isPositive, isError = _a.isError, isCriticalError = _a.isCriticalError, isWarning = _a.isWarning, isWaiting = _a.isWaiting, customStepIndicator = _a.customStepIndicator, isStepCompleted = _a.isStepCompleted, onClick = _a.onClick, interactive = _a.interactive, isVerticalAlign = _a.isVerticalAlign, isNotLastStep = _a.isNotLastStep, fullWidth = _a.fullWidth, _g = _a.minSpaceBetweenSteps, minSpaceBetweenSteps = _g === void 0 ? 24 : _g, completedDashColor = _a.completedDashColor, dataTestId = _a.dataTestId;
25
+ var stepRef = React.useRef(null);
26
+ var focused = hooks.useFocus(stepRef, 'keyboard')[0];
27
+ var handleButtonClick = function () {
28
+ if (!disabled && interactive && onClick) {
29
+ onClick(stepNumber);
30
+ }
31
+ };
32
+ var handleTextClick = function (e) {
33
+ if (!interactive) {
34
+ e.stopPropagation();
35
+ }
36
+ };
37
+ var handleKeyDown = function (event) {
38
+ if (event.key === 'Enter') {
39
+ handleButtonClick();
40
+ }
41
+ };
42
+ var getStepIndicator = function () {
43
+ if (customStepIndicator) {
44
+ return React__default.default.createElement(Component.StepIndicator, tslib.__assign({}, customStepIndicator));
45
+ }
46
+ if (isCriticalError) {
47
+ return React__default.default.createElement(Component.StepIndicator, { iconColor: 'negative', content: React__default.default.createElement(CrossCompactMIcon.CrossCompactMIcon, null) });
48
+ }
49
+ if (isError) {
50
+ return React__default.default.createElement(Component.StepIndicator, { iconColor: 'negative', content: React__default.default.createElement(ExclamationCircleMIcon.ExclamationCircleMIcon, null) });
51
+ }
52
+ if (isWarning) {
53
+ return React__default.default.createElement(Component.StepIndicator, { iconColor: 'attention', content: React__default.default.createElement(ExclamationCircleMIcon.ExclamationCircleMIcon, null) });
54
+ }
55
+ if (isWaiting) {
56
+ return React__default.default.createElement(Component.StepIndicator, { iconColor: 'secondary', content: React__default.default.createElement(ClockMIcon.ClockMIcon, null) });
57
+ }
58
+ if (isPositive) {
59
+ return React__default.default.createElement(Component.StepIndicator, { iconColor: 'positive', content: React__default.default.createElement(CheckmarkCircleMIcon.CheckmarkCircleMIcon, null) });
60
+ }
61
+ if (isStepCompleted) {
62
+ return (React__default.default.createElement(Component.StepIndicator, { iconColor: 'positive', content: React__default.default.createElement(CheckmarkCircleMIcon.CheckmarkCircleMIcon, null), className: index_module.completedIndicator }));
63
+ }
64
+ if (!ordered) {
65
+ return (React__default.default.createElement("div", { className: index_module.checkbox },
66
+ React__default.default.createElement("span", { className: index_module.dot })));
67
+ }
68
+ return stepNumber;
69
+ };
70
+ var getCustomDashColor = function () {
71
+ if (isStepCompleted && completedDashColor) {
72
+ return {
73
+ borderColor: completedDashColor,
74
+ };
75
+ }
76
+ return {};
77
+ };
78
+ var renderDash = function () {
79
+ var _a;
80
+ return (React__default.default.createElement("div", { className: cn__default.default(index_module.dash, (_a = {},
81
+ _a[index_module.vertical] = isVerticalAlign,
82
+ _a[index_module.completed] = isStepCompleted,
83
+ _a)), style: tslib.__assign({}, getCustomDashColor()) }));
84
+ };
85
+ return (React__default.default.createElement("div", { "data-test-id": dynamicMixins.getDataTestId(dataTestId, 'step'), role: 'button', tabIndex: 0, ref: stepRef, className: cn__default.default(index_module.step, (_b = {},
86
+ _b[index_module.completed] = isStepCompleted,
87
+ _b[index_module.error] = isError,
88
+ _b[index_module.selected] = isSelected,
89
+ _b[index_module.disabled] = disabled,
90
+ _b[index_module.focused] = focused,
91
+ _b[index_module.vertical] = isVerticalAlign,
92
+ _b[index_module.interactive] = interactive,
93
+ _b[index_module.fullWidth] = fullWidth && isVerticalAlign,
94
+ _b[index_module.horizontal] = !isVerticalAlign,
95
+ _b)), onClick: handleButtonClick, onKeyDown: handleKeyDown },
96
+ React__default.default.createElement("div", { className: cn__default.default(index_module.indicator, (_c = {},
97
+ _c[index_module.vertical] = isVerticalAlign,
98
+ _c[index_module.interactive] = interactive,
99
+ _c)) },
100
+ React__default.default.createElement("div", { className: cn__default.default(index_module.option, (_d = {},
101
+ _d[index_module.unordered] = !ordered,
102
+ _d[index_module.vertical] = isVerticalAlign,
103
+ _d[index_module.error] = isError,
104
+ _d)) }, getStepIndicator()),
105
+ isNotLastStep && isVerticalAlign && renderDash()),
106
+ React__default.default.createElement("div", { className: cn__default.default(index_module.textWrapper, index_module["gap-".concat(minSpaceBetweenSteps)], (_e = {},
107
+ _e[index_module.vertical] = isVerticalAlign,
108
+ _e)) },
109
+ React__default.default.createElement("div", { className: cn__default.default(index_module.text, (_f = {},
110
+ _f[index_module.interactive] = interactive,
111
+ _f[index_module.fullWidth] = fullWidth && isVerticalAlign,
112
+ _f)), onClick: handleTextClick }, children)),
113
+ isNotLastStep && !isVerticalAlign && renderDash()));
114
+ };
115
+
116
+ exports.Step = Step;
117
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/step/Component.tsx"],"sourcesContent":["import React, { FC, useRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\nimport { useFocus } from '@alfalab/hooks';\nimport { CheckmarkCircleMIcon } from '@alfalab/icons-glyph/CheckmarkCircleMIcon';\nimport { ClockMIcon } from '@alfalab/icons-glyph/ClockMIcon';\nimport { CrossCompactMIcon } from '@alfalab/icons-glyph/CrossCompactMIcon';\nimport { ExclamationCircleMIcon } from '@alfalab/icons-glyph/ExclamationCircleMIcon';\n\nimport { CommonProps } from '../../types/common-props';\nimport { StepIndicator, StepIndicatorProps } from '../step-indicator';\n\nimport styles from './index.module.css';\n\ntype StepProps = {\n /**\n * Номер шага\n */\n stepNumber: number;\n\n /**\n * Маркер того, что текущий шаг выбран\n */\n isSelected: boolean;\n\n /**\n * Маркер того, что текущий шаг доступен для клика\n */\n disabled: boolean;\n\n /**\n * Маркер того, что текущий шаг находится в состоянии \"Positive\"\n */\n isPositive: boolean;\n\n /**\n * Маркер того, что текущий шаг находится в состоянии \"Error\"\n */\n isError: boolean;\n\n /**\n * Маркер того, что текущий шаг находится в состоянии \"isCriticalError\"\n */\n isCriticalError: boolean;\n\n /**\n * Маркер того, что текущий шаг находится в состоянии \"Warning\"\n */\n isWarning: boolean;\n\n /**\n * Маркер того, что текущий шаг находится в состоянии \"Waiting\"\n */\n isWaiting: boolean;\n\n /**\n * Маркер того, что текущий шаг нужно пометить как завершенный\n */\n isStepCompleted: boolean;\n\n /**\n * Свойства кастомного индикатора текущего шага\n */\n customStepIndicator?: StepIndicatorProps | null;\n\n /**\n * Указывает, является ли текущий шаг последним в списке\n */\n isNotLastStep?: boolean;\n\n /**\n * Обработчик нажатия на текущей шаг\n * @param stepNumber - номер шага\n */\n onClick: (stepNumber: number) => void;\n} & CommonProps;\n\nexport const Step: FC<StepProps> = ({\n children,\n stepNumber,\n isSelected,\n disabled,\n ordered,\n isPositive,\n isError,\n isCriticalError,\n isWarning,\n isWaiting,\n customStepIndicator,\n isStepCompleted,\n onClick,\n interactive,\n isVerticalAlign,\n isNotLastStep,\n fullWidth,\n minSpaceBetweenSteps = 24,\n completedDashColor,\n dataTestId,\n}) => {\n const stepRef = useRef<HTMLDivElement>(null);\n\n const [focused] = useFocus(stepRef, 'keyboard');\n\n const handleButtonClick = () => {\n if (!disabled && interactive && onClick) {\n onClick(stepNumber);\n }\n };\n\n const handleTextClick = (e: React.MouseEvent<HTMLElement>) => {\n if (!interactive) {\n e.stopPropagation();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter') {\n handleButtonClick();\n }\n };\n\n const getStepIndicator = () => {\n if (customStepIndicator) {\n return <StepIndicator {...customStepIndicator} />;\n }\n if (isCriticalError) {\n return <StepIndicator iconColor='negative' content={<CrossCompactMIcon />} />;\n }\n if (isError) {\n return <StepIndicator iconColor='negative' content={<ExclamationCircleMIcon />} />;\n }\n if (isWarning) {\n return <StepIndicator iconColor='attention' content={<ExclamationCircleMIcon />} />;\n }\n if (isWaiting) {\n return <StepIndicator iconColor='secondary' content={<ClockMIcon />} />;\n }\n if (isPositive) {\n return <StepIndicator iconColor='positive' content={<CheckmarkCircleMIcon />} />;\n }\n if (isStepCompleted) {\n return (\n <StepIndicator\n iconColor='positive'\n content={<CheckmarkCircleMIcon />}\n className={styles.completedIndicator}\n />\n );\n }\n if (!ordered) {\n return (\n <div className={styles.checkbox}>\n <span className={styles.dot} />\n </div>\n );\n }\n\n return stepNumber;\n };\n\n const getCustomDashColor = () => {\n if (isStepCompleted && completedDashColor) {\n return {\n borderColor: completedDashColor,\n };\n }\n\n return {};\n };\n\n const renderDash = () => (\n <div\n className={cn(styles.dash, {\n [styles.vertical]: isVerticalAlign,\n [styles.completed]: isStepCompleted,\n })}\n style={{\n ...getCustomDashColor(),\n }}\n />\n );\n\n return (\n <div\n data-test-id={getDataTestId(dataTestId, 'step')}\n role='button'\n tabIndex={0}\n ref={stepRef}\n className={cn(styles.step, {\n [styles.completed]: isStepCompleted,\n [styles.error]: isError,\n [styles.selected]: isSelected,\n [styles.disabled]: disabled,\n [styles.focused]: focused,\n [styles.vertical]: isVerticalAlign,\n [styles.interactive]: interactive,\n [styles.fullWidth]: fullWidth && isVerticalAlign,\n [styles.horizontal]: !isVerticalAlign,\n })}\n onClick={handleButtonClick}\n onKeyDown={handleKeyDown}\n >\n <div\n className={cn(styles.indicator, {\n [styles.vertical]: isVerticalAlign,\n [styles.interactive]: interactive,\n })}\n >\n <div\n className={cn(styles.option, {\n [styles.unordered]: !ordered,\n [styles.vertical]: isVerticalAlign,\n [styles.error]: isError,\n })}\n >\n {getStepIndicator()}\n </div>\n {isNotLastStep && isVerticalAlign && renderDash()}\n </div>\n <div\n className={cn(styles.textWrapper, styles[`gap-${minSpaceBetweenSteps}`], {\n [styles.vertical]: isVerticalAlign,\n })}\n >\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */}\n <div\n className={cn(styles.text, {\n [styles.interactive]: interactive,\n [styles.fullWidth]: fullWidth && isVerticalAlign,\n })}\n onClick={handleTextClick}\n >\n {children}\n </div>\n </div>\n {isNotLastStep && !isVerticalAlign && renderDash()}\n </div>\n );\n};\n"],"names":["useRef","useFocus","React","StepIndicator","__assign","CrossCompactMIcon","ExclamationCircleMIcon","ClockMIcon","CheckmarkCircleMIcon","styles","cn","getDataTestId"],"mappings":"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"}