taro-react-uilib 1.1.0 → 1.2.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 (121) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/components/Checkbox/Group/index.js +2 -0
  3. package/dist/components/Checkbox/Group/index.js.map +1 -0
  4. package/dist/components/Checkbox/index.js +2 -0
  5. package/dist/components/Checkbox/index.js.map +1 -0
  6. package/dist/components/Picker/Picker.js +1 -1
  7. package/dist/components/Picker/Picker.js.map +1 -1
  8. package/dist/components/Picker/index.js +1 -1
  9. package/dist/components/Picker/index.js.map +1 -1
  10. package/dist/components/PickerSlot/index.js +2 -0
  11. package/dist/components/PickerSlot/index.js.map +1 -0
  12. package/dist/components/Radio/Group/index.js +2 -0
  13. package/dist/components/Radio/Group/index.js.map +1 -0
  14. package/dist/components/Radio/index.js +2 -0
  15. package/dist/components/Radio/index.js.map +1 -0
  16. package/dist/components/Space/Item.js +2 -0
  17. package/dist/components/Space/Item.js.map +1 -0
  18. package/dist/components/Space/config-provider.js +2 -0
  19. package/dist/components/Space/config-provider.js.map +1 -0
  20. package/dist/components/Space/index.js +2 -0
  21. package/dist/components/Space/index.js.map +1 -0
  22. package/dist/components/Step/Steps/index.js +2 -0
  23. package/dist/components/Step/Steps/index.js.map +1 -0
  24. package/dist/components/Step/index.js +2 -0
  25. package/dist/components/Step/index.js.map +1 -0
  26. package/dist/components/ThemeProvider/index.js +1 -1
  27. package/dist/components/ThemeProvider/index.js.map +1 -1
  28. package/dist/components/node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js +172 -0
  29. package/dist/components/node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js.map +1 -0
  30. package/dist/components/src/hooks/index.js +1 -1
  31. package/dist/components/src/hooks/index.js.map +1 -1
  32. package/dist/components/src/hooks/useFlexGapSupport.js +2 -0
  33. package/dist/components/src/hooks/useFlexGapSupport.js.map +1 -0
  34. package/dist/components/src/hooks/useGenerateId.js +2 -0
  35. package/dist/components/src/hooks/useGenerateId.js.map +1 -0
  36. package/dist/components/src/hooks/useRefs.js +2 -0
  37. package/dist/components/src/hooks/useRefs.js.map +1 -0
  38. package/dist/components/src/hooks/useTouch.js +2 -0
  39. package/dist/components/src/hooks/useTouch.js.map +1 -0
  40. package/dist/components/src/index.js +1 -1
  41. package/dist/components/src/utils/index.js +1 -1
  42. package/dist/components/src/utils/index.js.map +1 -1
  43. package/dist/index.js +173 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.umd.js +173 -2
  46. package/dist/index.umd.js.map +1 -1
  47. package/dist/styles/components/checkbox.scss +117 -0
  48. package/dist/styles/components/dialog.scss +2 -0
  49. package/dist/styles/components/font/.DS_Store +0 -0
  50. package/dist/styles/components/index.scss +5 -0
  51. package/dist/styles/components/numberkeyboard.scss +1 -3
  52. package/dist/styles/components/picker.scss +7 -112
  53. package/dist/styles/components/pickerslot.scss +98 -0
  54. package/dist/styles/components/radio.scss +102 -0
  55. package/dist/styles/components/space.scss +37 -0
  56. package/dist/styles/components/step.scss +173 -0
  57. package/dist/styles/components/themeprovider.scss +3 -0
  58. package/dist/styles/components/toast.scss +1 -1
  59. package/dist/styles/index.scss +1 -1
  60. package/dist/styles/themes/default.scss +13 -13
  61. package/dist/styles/themes/variable.scss +2 -0
  62. package/lib/components/Checkbox/Group/index.js +49 -0
  63. package/lib/components/Checkbox/Group/index.js.map +1 -0
  64. package/lib/components/Checkbox/index.js +43 -0
  65. package/lib/components/Checkbox/index.js.map +1 -0
  66. package/lib/components/Picker/Picker.js +192 -96
  67. package/lib/components/Picker/Picker.js.map +1 -1
  68. package/lib/components/Picker/index.js +2 -5
  69. package/lib/components/Picker/index.js.map +1 -1
  70. package/lib/components/PickerSlot/index.js +226 -0
  71. package/lib/components/PickerSlot/index.js.map +1 -0
  72. package/lib/components/Radio/Group/index.js +56 -0
  73. package/lib/components/Radio/Group/index.js.map +1 -0
  74. package/lib/components/Radio/index.js +43 -0
  75. package/lib/components/Radio/index.js.map +1 -0
  76. package/lib/components/Space/Item.js +25 -0
  77. package/lib/components/Space/Item.js.map +1 -0
  78. package/lib/components/Space/config-provider.js +8 -0
  79. package/lib/components/Space/config-provider.js.map +1 -0
  80. package/lib/components/Space/index.js +77 -0
  81. package/lib/components/Space/index.js.map +1 -0
  82. package/lib/components/Step/Steps/index.js +31 -0
  83. package/lib/components/Step/Steps/index.js.map +1 -0
  84. package/lib/components/Step/index.js +19 -0
  85. package/lib/components/Step/index.js.map +1 -0
  86. package/lib/components/ThemeProvider/index.js +4 -0
  87. package/lib/components/ThemeProvider/index.js.map +1 -1
  88. package/lib/hooks/index.js +0 -34
  89. package/lib/hooks/index.js.map +1 -1
  90. package/lib/hooks/useFlexGapSupport.js +10 -0
  91. package/lib/hooks/useFlexGapSupport.js.map +1 -0
  92. package/lib/hooks/useGenerateId.js +12 -0
  93. package/lib/hooks/useGenerateId.js.map +1 -0
  94. package/lib/hooks/useRefs.js +13 -0
  95. package/lib/hooks/useRefs.js.map +1 -0
  96. package/lib/hooks/useTouch.js +67 -0
  97. package/lib/hooks/useTouch.js.map +1 -0
  98. package/lib/index.js +4 -0
  99. package/lib/index.js.map +1 -1
  100. package/lib/utils/index.js +39 -2
  101. package/lib/utils/index.js.map +1 -1
  102. package/package.json +2 -1
  103. package/types/components/Checkbox/Group/index.d.ts +23 -0
  104. package/types/components/Checkbox/index.d.ts +29 -0
  105. package/types/components/Picker/Picker.d.ts +21 -20
  106. package/types/components/Picker/index.d.ts +6 -7
  107. package/types/components/PickerSlot/index.d.ts +24 -0
  108. package/types/components/Radio/Group/index.d.ts +26 -0
  109. package/types/components/Radio/index.d.ts +29 -0
  110. package/types/components/Space/Item.d.ts +11 -0
  111. package/types/components/Space/config-provider.d.ts +12 -0
  112. package/types/components/Space/index.d.ts +21 -0
  113. package/types/components/Step/Steps/index.d.ts +13 -0
  114. package/types/components/Step/index.d.ts +18 -0
  115. package/types/hooks/index.d.ts +0 -22
  116. package/types/hooks/useFlexGapSupport.d.ts +2 -0
  117. package/types/hooks/useGenerateId.d.ts +1 -0
  118. package/types/hooks/useRefs.d.ts +1 -0
  119. package/types/hooks/useTouch.d.ts +18 -0
  120. package/types/index.d.ts +4 -0
  121. package/types/utils/index.d.ts +6 -0
@@ -0,0 +1,117 @@
1
+ @import "../../styles/themes/variable.scss";
2
+ @import "../../styles/themes/animation.scss";
3
+
4
+ #{$xh-prefix}-checkbox {
5
+ display: flex;
6
+ align-items: flex-start;
7
+ &.center {
8
+ align-items: center;
9
+ }
10
+ &.end {
11
+ align-items: flex-end;
12
+ }
13
+ &.around {
14
+ justify-content: space-around;
15
+ }
16
+ &.between {
17
+ justify-content: space-between;
18
+ }
19
+ &.rtl {
20
+ direction: rtl;
21
+ #{$xh-prefix}-checkbox-label {
22
+ margin-left: 0;
23
+ margin-right: 10px;
24
+ direction: ltr;
25
+ }
26
+ }
27
+ &-input {
28
+ &:not(.tt) {
29
+ display: none;
30
+ }
31
+ &:checked + &-fake {
32
+ background-color: var(--color-primary);
33
+ border-color: transparent;
34
+ &:after {
35
+ border-right: 3px solid #FFF;
36
+ border-bottom: 5px solid #FFF;
37
+ }
38
+ }
39
+ &:disabled + &-fake {
40
+ background: rgba(0, 0, 0, .04);
41
+ border-color: $color-disabled;
42
+ cursor: not-allowed;
43
+ }
44
+ &[checked] + &-fake{
45
+ background-color: var(--color-primary);
46
+ border-color: transparent;
47
+ &:after {
48
+ border-right: 3px solid #FFF;
49
+ border-bottom: 5px solid #FFF;
50
+ }
51
+ }
52
+ &[checked="true"] {
53
+ display: block;
54
+ }
55
+ &[checked="true"] + &-fake{
56
+ background-color: var(--color-primary);
57
+ &:after {
58
+ border-right: 3px solid #FFF;
59
+ border-bottom: 5px solid #FFF;
60
+ }
61
+ }
62
+ &[disabled] + &-fake {
63
+ background: rgba(0, 0, 0, .04);
64
+ border-color: $color-disabled;
65
+ cursor: not-allowed;
66
+ }
67
+ }
68
+ &-input-fake:not(.tt) {
69
+ width: 40px;
70
+ height: 40px;
71
+ display: inline-block;
72
+ vertical-align: middle;
73
+ border: 1px solid #707070;
74
+ border-radius: 3px;
75
+ position: relative;
76
+ flex-shrink: 0;
77
+ transition: background-color .2s;
78
+ &.circle {
79
+ border-radius: 50%;
80
+ }
81
+ &:after {
82
+ content: "";
83
+ display: inline-block;
84
+ width: 8px;
85
+ height: 18px;
86
+ border-right: 3px solid transparent;
87
+ border-bottom: 5px solid transparent;
88
+ position: absolute;
89
+ left: 50%;
90
+ top: 50%;
91
+ transform: translate(-50%, -50%) rotate(45deg);
92
+ }
93
+
94
+ }
95
+ &.h5 {
96
+ #{$xh-prefix}-checkbox-label {
97
+ line-height: 1;
98
+ }
99
+ }
100
+ &-label {
101
+ margin-left: 10px;
102
+ }
103
+ }
104
+
105
+
106
+ #{$xh-prefix}-checkbox-group {
107
+ &.padding {
108
+ #{$xh-prefix}-checkbox {
109
+ padding: 30px 0;
110
+ }
111
+ }
112
+ &.border {
113
+ #{$xh-prefix}-checkbox {
114
+ border-bottom: 1px solid #EEE;
115
+ }
116
+ }
117
+ }
@@ -1,3 +1,5 @@
1
+ @import './button.scss';
2
+ @import './mask.scss';
1
3
  @import "../../styles/themes/default.scss";
2
4
  @import "../../styles/themes/variable.scss";
3
5
  @import "../../styles/themes/animation.scss";
@@ -2,6 +2,7 @@
2
2
  @import './bankicon.scss';
3
3
  @import './button.scss';
4
4
  @import './captcha.scss';
5
+ @import './checkbox.scss';
5
6
  @import './dialog.scss';
6
7
  @import './dialogref.scss';
7
8
  @import './fade.scss';
@@ -14,11 +15,15 @@
14
15
  @import './page.scss';
15
16
  @import './passwordinput.scss';
16
17
  @import './picker.scss';
18
+ @import './pickerslot.scss';
17
19
  @import './popup.scss';
18
20
  @import './progress.scss';
21
+ @import './radio.scss';
19
22
  @import './scale.scss';
20
23
  @import './scrollview.scss';
21
24
  @import './slide.scss';
25
+ @import './space.scss';
26
+ @import './step.scss';
22
27
  @import './tabbar.scss';
23
28
  @import './themeprovider.scss';
24
29
  @import './toast.scss';
@@ -1,5 +1,3 @@
1
- // @import '../style/themes/variable.scss';
2
- // @import '../style/themes/default.scss';
3
1
  @import "../../styles/themes/variable.scss";
4
2
  @import "../../styles/themes/default.scss";
5
3
  #{$xh-prefix}-number-keyboard {
@@ -28,7 +26,7 @@
28
26
  font-size: 30px;
29
27
  font-family: PingFang SC-Regular, PingFang SC;
30
28
  font-weight: 400;
31
- color: #f6ab03;
29
+ color: $color-primary-dark;
32
30
  }
33
31
 
34
32
  &-body {
@@ -1,12 +1,10 @@
1
+ @import './mask.scss';
1
2
  @import './popup.scss';
2
3
  @import "../../styles/themes/default.scss";
3
4
  @import "../../styles/themes/variable.scss";
4
5
 
5
6
  #{$xh-prefix}-picker {
6
- &-field {
7
- width: 100%;
8
- display: inline-block;
9
- }
7
+ background-color: #FFF;
10
8
 
11
9
  &-header {
12
10
  display: flex;
@@ -18,6 +16,7 @@
18
16
  border-bottom: 2px solid $border-color;
19
17
  min-height: 80px;
20
18
  box-sizing: border-box;
19
+ padding: 10px 20px;
21
20
  &-button {
22
21
  display: inline-block;
23
22
  font-size: 30px;
@@ -31,117 +30,13 @@
31
30
  }
32
31
  }
33
32
  &-title {
34
- font-size: 28px;
33
+ font-size: 32px;
35
34
  }
36
35
  }
37
-
38
- &-cancel {
39
- color: $font-color-tertiary;
40
- }
41
-
42
- &-confirm {
43
- color: $color-primary;
44
- }
45
-
46
- &-space {
47
- display: block;
48
- width: 60px;
49
- margin-left: 25px;
50
- }
51
-
52
- &-close {
53
- display: inline-block;
54
- & > img {
55
- width: 30px;
56
- height: 30px;
57
- display: inline-block;
58
- }
59
- }
60
-
61
- &-title-content {
36
+ &-panel {
37
+ position: relative;
62
38
  display: flex;
63
- align-items: center;
64
- font-size: 38px;
65
- line-height: 38px;
66
- color: $font-color;
67
- font-weight: bold;
68
39
  }
40
+ }
69
41
 
70
- &-body {
71
- display: flex;
72
- overflow: hidden;
73
- background: #fff;
74
- font-size: 30px;
75
- position: relative;
76
- height: 500px;
77
- flex-direction: column;
78
- justify-content: center;
79
- touch-action: "none";
80
- &-view {
81
- position: absolute;
82
- top: calc(50% - 38px);
83
- width: 100%;
84
- touch-action: "none";
85
- transition: transform 200ms;
86
- &-item {
87
- height: 76px;
88
- line-height: 76px;
89
- text-align: center;
90
- }
91
- &::before {
92
- content: " ";
93
- display: block;
94
- position: absolute;
95
- width: 100%;
96
- height: 100vh;
97
- top: -100vh;
98
- }
99
- &::after {
100
- content: " ";
101
- display: block;
102
- position: absolute;
103
- width: 100%;
104
- height: 100vh;
105
- top: 0;
106
- }
107
- }
108
- &-mask {
109
- position: absolute;
110
- z-index: 10000;
111
- left: 0;
112
- top: 0;
113
- width: 100%;
114
- height: 100%;
115
- display: flex;
116
- flex-direction: column;
117
- pointer-events: none;
118
- &-top {
119
- background: linear-gradient(
120
- 0deg,
121
- hsla(0, 0%, 100%, 0.6),
122
- hsla(0, 0%, 100%, 0.8) 50%,
123
- #fff
124
- );
125
- flex: auto;
126
- }
127
- &-middle {
128
- height: 68px;
129
- border-top: 1px solid $border-color;
130
- border-bottom: 1px solid $border-color;
131
- }
132
- &-bottom {
133
- background: linear-gradient(
134
- 180deg,
135
- hsla(0, 0%, 100%, 0.6),
136
- hsla(0, 0%, 100%, 0.8) 50%,
137
- #fff
138
- );
139
- flex: auto;
140
- }
141
- }
142
- }
143
42
 
144
- &-footer {
145
- display: block;
146
- }
147
- }
@@ -0,0 +1,98 @@
1
+ .xh-picker-list {
2
+ flex: 1;
3
+ position: relative;
4
+ height: 252PX;
5
+ overflow: hidden;
6
+ text-align: center;
7
+ touch-action: none;
8
+
9
+ .xh-picker-list-panel {
10
+ transform-style: preserve-3d;
11
+ }
12
+
13
+ .xh-picker-mask {
14
+ position: absolute;
15
+ top: 0;
16
+ left: 0;
17
+ right: 0;
18
+ bottom: 0;
19
+ background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4)), linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4));
20
+ background-position: top, bottom;
21
+ background-size: 100% 108PX;
22
+ background-repeat: no-repeat;
23
+ z-index: 3;
24
+ }
25
+
26
+ .xh-picker-indicator {
27
+ position: absolute;
28
+ top: 108PX;
29
+ height: 36PX;
30
+ width: 100%;
31
+ border: #d8d8d8;
32
+ border-left: 0;
33
+ border-right: 0;
34
+ color: #1a1a1a;
35
+ font-size: 4px;
36
+ z-index: 3;
37
+ border-top: 1px solid $border-color;
38
+ border-bottom: 1px solid $border-color;
39
+ }
40
+
41
+ .xh-picker-content,
42
+ .xh-picker-roller {
43
+ position: absolute;
44
+ top: 108PX;
45
+ width: 100%;
46
+ height: 36PX;
47
+ }
48
+
49
+ .xh-picker-content {
50
+ background: #fff;
51
+ z-index: 2;
52
+ overflow: hidden;
53
+ }
54
+
55
+ .xh-picker-item,
56
+ .xh-picker-roller-item {
57
+ white-space: nowrap;
58
+ overflow: hidden;
59
+ text-overflow: ellipsis;
60
+ height: 36PX;
61
+ line-height: 36PX;
62
+ color: #d8d8d8;
63
+ font-size: 14PX;
64
+ text-align: center;
65
+ }
66
+
67
+ .xh-picker-item {
68
+ font-size: 16PX;
69
+ background: #fff;
70
+ }
71
+
72
+ .xh-picker-roller {
73
+ z-index: 1;
74
+ transform-style: preserve-3d;
75
+
76
+ .xh-picker-roller-item {
77
+ backface-visibility: hidden;
78
+ position: absolute;
79
+ top: 0;
80
+ width: 100%;
81
+ color: #333;
82
+ }
83
+
84
+ .xh-picker-roller-item-title {
85
+ display: block;
86
+ width: 100%;
87
+ height: 36PX;
88
+ line-height: 36PX;
89
+ color: #1a1a1a;
90
+ font-size: 16PX;
91
+ }
92
+
93
+ .xh-picker-roller-item-hidden {
94
+ visibility: hidden;
95
+ opacity: 0;
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,102 @@
1
+ @import "../../styles/themes/variable.scss";
2
+ @import "../../styles/themes/animation.scss";
3
+
4
+ #{$xh-prefix}-radio {
5
+ display: flex;
6
+ align-items: flex-start;
7
+ &.center {
8
+ align-items: center;
9
+ }
10
+ &.end {
11
+ align-items: flex-end;
12
+ }
13
+ &.around {
14
+ justify-content: space-around;
15
+ }
16
+ &.between {
17
+ justify-content: space-between;
18
+ }
19
+ &.rtl {
20
+ direction: rtl;
21
+ .xh-radio-label {
22
+ margin-left: 0;
23
+ margin-right: 10px;
24
+ direction: ltr;
25
+ }
26
+ }
27
+ &-input {
28
+ &:not(.tt) {
29
+ display: none;
30
+ }
31
+ &:checked + &-fake {
32
+ background-color: var(--color-primary);
33
+ border-color: transparent;
34
+ &:after {
35
+ border-right: 3px solid #FFF;
36
+ border-bottom: 5px solid #FFF;
37
+ }
38
+ }
39
+ &:disabled + &-fake {
40
+ background: rgba(0, 0, 0, .04);
41
+ border-color: $color-disabled;
42
+ cursor: not-allowed;
43
+ }
44
+ &[checked] + &-fake{
45
+ background-color: var(--color-primary);
46
+ border-color: transparent;
47
+ &:after {
48
+ border-right: 3px solid #FFF;
49
+ border-bottom: 5px solid #FFF;
50
+ }
51
+ }
52
+ &[disabled] + &-fake {
53
+ background: rgba(0, 0, 0, .04);
54
+ border-color: $color-disabled;
55
+ cursor: not-allowed;
56
+ }
57
+ }
58
+ &-input-fake:not(.tt) {
59
+ width: 40px;
60
+ height: 40px;
61
+ display: inline-block;
62
+ vertical-align: middle;
63
+ border: 1px solid #707070;
64
+ border-radius: 3px;
65
+ position: relative;
66
+ flex-shrink: 0;
67
+ transition: background-color .2s;
68
+ &.circle {
69
+ border-radius: 50%;
70
+ }
71
+ &:after {
72
+ content: "";
73
+ display: inline-block;
74
+ width: 8px;
75
+ height: 18px;
76
+ border-right: 3px solid transparent;
77
+ border-bottom: 5px solid transparent;
78
+ position: absolute;
79
+ left: 50%;
80
+ top: 50%;
81
+ transform: translate(-50%, -50%) rotate(45deg);
82
+ }
83
+
84
+ }
85
+ &-label {
86
+ line-height: 1;
87
+ margin-left: 10px;
88
+ }
89
+ }
90
+
91
+ #{$xh-prefix}-radio-group {
92
+ &.padding {
93
+ #{$xh-prefix}-radio {
94
+ padding: 30px 0;
95
+ }
96
+ }
97
+ &.border {
98
+ #{$xh-prefix}-radio {
99
+ border-bottom: 1px solid #EEE;
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,37 @@
1
+ @import "../../styles/themes/variable.scss";
2
+ @import "../../styles/themes/default.scss";
3
+ @import "../../styles/themes/animation.scss";
4
+
5
+ $space-prefix-cls: #{$xh-prefix}-space;
6
+ $space-item-prefix-cls: #{$xh-prefix}-space-item;
7
+ #{$space-prefix-cls} {
8
+ display: inline-flex;
9
+
10
+ &-vertical {
11
+ flex-direction: column;
12
+ }
13
+
14
+ &-align {
15
+ &-center {
16
+ align-items: center;
17
+ }
18
+
19
+ &-start {
20
+ align-items: flex-start;
21
+ }
22
+
23
+ &-end {
24
+ align-items: flex-end;
25
+ }
26
+
27
+ &-baseline {
28
+ align-items: baseline;
29
+ }
30
+ }
31
+ }
32
+
33
+ #{$space-prefix-cls} {
34
+ &-rtl {
35
+ direction: rtl;
36
+ }
37
+ }
@@ -0,0 +1,173 @@
1
+ @import "../../styles/themes/variable.scss";
2
+
3
+ $class-prefix-step: #{$xh-prefix}-step;
4
+ $class-prefix-steps: #{$xh-prefix}-steps;
5
+
6
+ #{$class-prefix-step} {
7
+ --line-to-next-color: #e5e5e5;
8
+ --icon-color: #e5e5e5;
9
+
10
+ #{$class-prefix-step}-indicator {
11
+ position: relative;
12
+ &::after {
13
+ content: '';
14
+ position: absolute;
15
+ z-index: 0;
16
+ background-color: var(--line-to-next-color);
17
+ }
18
+ #{$class-prefix-step}-icon-container {
19
+ position: absolute;
20
+ z-index: 1;
21
+ color: var(--icon-color);
22
+ }
23
+ }
24
+
25
+ &:last-child {
26
+ #{$class-prefix-step}-indicator::after {
27
+ display: none;
28
+ }
29
+ }
30
+ &-status-finish {
31
+ --line-to-next-color: var(--color-primary);
32
+ }
33
+
34
+ &-status-wait {
35
+ --icon-color: #e5e5e5;
36
+ #{$class-prefix-step}-title {
37
+ color: var(--font-color-tertiary);
38
+ }
39
+ }
40
+ &-status-process {
41
+ --icon-color: var(--color-primary);
42
+ #{$class-prefix-step}-title {
43
+ color: var(--color-primary);
44
+ }
45
+ }
46
+ &-status-finish {
47
+ --icon-color: var(--color-primary);
48
+ }
49
+ &-status-error {
50
+ --icon-color: var(--color-warning);
51
+ #{$class-prefix-step}-title {
52
+ color: var(--color-warning);
53
+ }
54
+ }
55
+ }
56
+
57
+ #{$class-prefix-steps} {
58
+ --indicator-margin-right: 0;
59
+ --icon-size: 18px;
60
+
61
+ width: 100%;
62
+ box-sizing: border-box;
63
+
64
+ &-horizontal {
65
+ display: flex;
66
+ justify-content: space-around;
67
+ padding: 8px 0;
68
+
69
+ #{$class-prefix-step} {
70
+ flex: 1;
71
+
72
+ #{$class-prefix-step}-indicator {
73
+ width: 100%;
74
+ height: 24px;
75
+ &::after {
76
+ left: 50%;
77
+ top: 50%;
78
+ height: 1px;
79
+ transform: translateY(-50%);
80
+ width: 100%;
81
+ }
82
+ #{$class-prefix-step}-icon-container {
83
+ left: 50%;
84
+ top: 50%;
85
+ transform: translate(-50%, -50%);
86
+ }
87
+ }
88
+ }
89
+
90
+ #{$class-prefix-step}-content {
91
+ text-align: center;
92
+ font-size: 18px;
93
+ padding: 2px 8px 0;
94
+ #{$class-prefix-step}-title {
95
+ font-size: 28px;
96
+ font-family: PingFangSC-Medium, PingFang SC;
97
+ }
98
+ #{$class-prefix-step}-description {
99
+ margin-top: 4px;
100
+ color: var(--font-color-tertiary);
101
+ font-size: 24px;
102
+ }
103
+ }
104
+ }
105
+
106
+ &-vertical {
107
+ padding: 8px 16px;
108
+
109
+ #{$class-prefix-step} {
110
+ display: flex;
111
+ align-items: stretch;
112
+
113
+ #{$class-prefix-step}-indicator {
114
+ flex: none;
115
+ min-width: 28PX;
116
+ margin-right: 5px;
117
+
118
+ &::after {
119
+ left: 50%;
120
+ top: calc(28px * 1.5 / 2);
121
+ width: 1px;
122
+ transform: translateX(-50%);
123
+ height: 100%;
124
+ }
125
+ #{$class-prefix-step}-icon-container {
126
+ top: 28px * 1.5 / 2;
127
+ left: 50%;
128
+ transform: translate(-50%, -50%);
129
+ &.fancy {
130
+ .xh-step-icon-dot {
131
+ width: 20px;
132
+ height: 20px;
133
+ background-color: #f65f04;
134
+ border: 10px solid #fcdfcc;
135
+ }
136
+ }
137
+ }
138
+ }
139
+
140
+ &:last-child {
141
+ #{$class-prefix-step}-content {
142
+ padding-bottom: 0;
143
+ }
144
+ }
145
+ #{$class-prefix-step}-content {
146
+ flex: auto;
147
+ padding-bottom: 32px;
148
+ #{$class-prefix-step}-title {
149
+ font-size: var(--title-font-size);
150
+ line-height: 1.5;
151
+ font-size: 28px;
152
+ }
153
+ #{$class-prefix-step}-description {
154
+ padding-top: 4px;
155
+ font-size: 24px;
156
+ color: var(--font-color-tertiary);
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+
163
+ #{$class-prefix-step}-icon-container {
164
+ font-size: var(--icon-size);
165
+ }
166
+
167
+ #{$class-prefix-step}-icon-dot {
168
+ display: block;
169
+ width: 16px;
170
+ height: 16px;
171
+ background: currentColor;
172
+ border-radius: 50%;
173
+ }