@pisell/materials 1.0.978 → 1.0.979

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 (135) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +6 -6
  6. package/build/lowcode/preview.js +9 -9
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +15 -15
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +23 -23
  11. package/es/components/PisellProcedure/PisellProcedure.d.ts +27 -0
  12. package/es/components/PisellProcedure/components/ProcedureAction.d.ts +8 -0
  13. package/es/components/PisellProcedure/components/ProcedureContent.d.ts +8 -0
  14. package/es/components/PisellProcedure/components/ProcedureHeader.d.ts +8 -0
  15. package/es/components/PisellProcedure/components/ProcedureSummary.d.ts +8 -0
  16. package/es/components/PisellProcedure/hooks/useResponsive.d.ts +6 -0
  17. package/es/components/PisellProcedure/index.d.ts +4 -0
  18. package/es/components/PisellProcedure/types.d.ts +303 -0
  19. package/es/components/PisellSteps/PisellSteps.d.ts +14 -0
  20. package/es/components/PisellSteps/PisellSteps.js +170 -148
  21. package/es/components/PisellSteps/PisellSteps.less +248 -383
  22. package/es/components/PisellSteps/hooks/index.d.ts +4 -0
  23. package/es/components/PisellSteps/hooks/index.js +4 -0
  24. package/es/components/PisellSteps/hooks/useAnchor.d.ts +9 -0
  25. package/es/components/PisellSteps/hooks/useAnchor.js +55 -0
  26. package/es/components/PisellSteps/hooks/useResponsive.d.ts +8 -0
  27. package/es/components/PisellSteps/hooks/useResponsive.js +43 -0
  28. package/es/components/PisellSteps/hooks/useStepClick.d.ts +11 -0
  29. package/es/components/PisellSteps/hooks/useStepClick.js +35 -0
  30. package/es/components/PisellSteps/hooks/useStepsState.d.ts +9 -0
  31. package/es/components/PisellSteps/hooks/useStepsState.js +60 -0
  32. package/es/components/PisellSteps/index.d.ts +3 -0
  33. package/es/components/PisellSteps/index.js +2 -5
  34. package/es/components/PisellSteps/types.d.ts +271 -0
  35. package/es/components/PisellSteps/utils/index.d.ts +54 -0
  36. package/es/components/PisellSteps/utils/index.js +118 -0
  37. package/es/components/Template/PisellSteps.d.ts +0 -0
  38. package/es/components/Template/PisellSteps.js +1 -0
  39. package/es/components/Template/PisellSteps.less +1 -0
  40. package/es/components/Template/components/index.d.ts +0 -0
  41. package/es/components/Template/components/index.js +1 -0
  42. package/es/components/Template/hooks/index.d.ts +0 -0
  43. package/es/components/Template/hooks/index.js +1 -0
  44. package/es/components/Template/utils/index.d.ts +0 -0
  45. package/es/components/Template/utils/index.js +1 -0
  46. package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +56 -0
  47. package/es/components/dataSourceComponents/dataSourceForm/utils.js +3 -4
  48. package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +1 -0
  49. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +101 -0
  50. package/es/components/dataSourceComponents/fields/Input.Mobile/WithMode.d.ts +17 -0
  51. package/es/components/dataSourceComponents/fields/Input.Phone/WithMode.d.ts +16 -0
  52. package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  53. package/es/components/dataSourceComponents/fields/Switch/ReadPretty.d.ts +5 -0
  54. package/es/components/dataSourceComponents/fields/Switch/ReadPretty.js +16 -0
  55. package/es/components/dataSourceComponents/fields/Switch/ReadPretty.less +2 -0
  56. package/es/components/dataSourceComponents/fields/Switch/WithMode.d.ts +3 -0
  57. package/es/components/dataSourceComponents/fields/Switch/WithMode.js +5 -0
  58. package/es/components/dataSourceComponents/fields/Switch/index.d.ts +3 -0
  59. package/es/components/dataSourceComponents/fields/Switch/index.js +8 -0
  60. package/es/components/dataSourceComponents/fields/Switch/type.d.ts +16 -0
  61. package/es/components/dataSourceComponents/fields/Switch/type.js +1 -0
  62. package/es/components/dataSourceComponents/fields/index.d.ts +12 -12
  63. package/es/components/dataSourceComponents/provider/variables/VariablesProvider.d.ts +4 -0
  64. package/es/components/pisellCardList/index.d.ts +107 -0
  65. package/es/components/pisellGoodPassCard/index.d.ts +50 -0
  66. package/es/components/pisellWalletPassCard/index.d.ts +146 -0
  67. package/es/components/productCard/index.d.ts +7 -0
  68. package/es/index.d.ts +149 -0
  69. package/es/index.js +1 -1
  70. package/lib/components/PisellProcedure/PisellProcedure.d.ts +27 -0
  71. package/lib/components/PisellProcedure/components/ProcedureAction.d.ts +8 -0
  72. package/lib/components/PisellProcedure/components/ProcedureContent.d.ts +8 -0
  73. package/lib/components/PisellProcedure/components/ProcedureHeader.d.ts +8 -0
  74. package/lib/components/PisellProcedure/components/ProcedureSummary.d.ts +8 -0
  75. package/lib/components/PisellProcedure/hooks/useResponsive.d.ts +6 -0
  76. package/lib/components/PisellProcedure/index.d.ts +4 -0
  77. package/lib/components/PisellProcedure/types.d.ts +303 -0
  78. package/lib/components/PisellSteps/PisellSteps.d.ts +14 -0
  79. package/lib/components/PisellSteps/PisellSteps.js +155 -102
  80. package/lib/components/PisellSteps/PisellSteps.less +248 -383
  81. package/lib/components/PisellSteps/hooks/index.d.ts +4 -0
  82. package/lib/components/PisellSteps/hooks/index.js +38 -0
  83. package/lib/components/PisellSteps/hooks/useAnchor.d.ts +9 -0
  84. package/lib/components/PisellSteps/hooks/useAnchor.js +63 -0
  85. package/lib/components/PisellSteps/hooks/useResponsive.d.ts +8 -0
  86. package/lib/components/PisellSteps/hooks/useResponsive.js +48 -0
  87. package/lib/components/PisellSteps/hooks/useStepClick.d.ts +11 -0
  88. package/lib/components/PisellSteps/hooks/useStepClick.js +55 -0
  89. package/lib/components/PisellSteps/hooks/useStepsState.d.ts +9 -0
  90. package/lib/components/PisellSteps/hooks/useStepsState.js +54 -0
  91. package/lib/components/PisellSteps/index.d.ts +3 -0
  92. package/lib/components/PisellSteps/index.js +2 -7
  93. package/lib/components/PisellSteps/types.d.ts +271 -0
  94. package/lib/components/PisellSteps/utils/index.d.ts +54 -0
  95. package/lib/components/PisellSteps/utils/index.js +88 -0
  96. package/lib/components/Template/PisellSteps.d.ts +0 -0
  97. package/lib/components/Template/PisellSteps.js +0 -0
  98. package/lib/components/Template/PisellSteps.less +1 -0
  99. package/lib/components/Template/components/index.d.ts +0 -0
  100. package/lib/components/Template/components/index.js +0 -0
  101. package/lib/components/Template/hooks/index.d.ts +0 -0
  102. package/lib/components/Template/hooks/index.js +0 -0
  103. package/lib/components/Template/utils/index.d.ts +0 -0
  104. package/lib/components/Template/utils/index.js +0 -0
  105. package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +56 -0
  106. package/lib/components/dataSourceComponents/dataSourceForm/utils.js +3 -3
  107. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +1 -0
  108. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +101 -0
  109. package/lib/components/dataSourceComponents/fields/Input.Mobile/WithMode.d.ts +17 -0
  110. package/lib/components/dataSourceComponents/fields/Input.Phone/WithMode.d.ts +16 -0
  111. package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  112. package/lib/components/dataSourceComponents/fields/Switch/ReadPretty.d.ts +5 -0
  113. package/lib/components/dataSourceComponents/fields/Switch/ReadPretty.js +52 -0
  114. package/lib/components/dataSourceComponents/fields/Switch/ReadPretty.less +2 -0
  115. package/lib/components/dataSourceComponents/fields/Switch/WithMode.d.ts +3 -0
  116. package/lib/components/dataSourceComponents/fields/Switch/WithMode.js +39 -0
  117. package/lib/components/dataSourceComponents/fields/Switch/index.d.ts +3 -0
  118. package/lib/components/dataSourceComponents/fields/Switch/index.js +42 -0
  119. package/lib/components/dataSourceComponents/fields/Switch/type.d.ts +16 -0
  120. package/lib/components/dataSourceComponents/fields/Switch/type.js +17 -0
  121. package/lib/components/dataSourceComponents/fields/index.d.ts +12 -12
  122. package/lib/components/dataSourceComponents/provider/variables/VariablesProvider.d.ts +4 -0
  123. package/lib/components/pisellCardList/index.d.ts +107 -0
  124. package/lib/components/pisellGoodPassCard/index.d.ts +50 -0
  125. package/lib/components/pisellWalletPassCard/index.d.ts +146 -0
  126. package/lib/components/productCard/index.d.ts +7 -0
  127. package/lib/index.d.ts +149 -0
  128. package/lib/index.js +3 -3
  129. package/lowcode/data-source-form/constants.ts +3 -0
  130. package/lowcode/data-source-form/utils.ts +36 -7
  131. package/lowcode/form-item-switch/meta.ts +145 -0
  132. package/lowcode/form-item-switch/snippets.ts +15 -0
  133. package/lowcode/pisell-steps/meta.ts +621 -271
  134. package/lowcode/pisell-steps/snippets.ts +27 -69
  135. package/package.json +3 -3
@@ -1,457 +1,322 @@
1
- // PisellSteps 步骤条组件样式
2
- // 基于 Ant Design Steps 进行样式增强和主题定制
3
-
4
- // ==================== CSS 变量定义 ====================
5
- .pisell-steps {
6
- // 尺寸相关
7
- --pisell-step-icon-size: 32px;
8
- --pisell-step-icon-size-small: 24px;
9
- --pisell-step-title-font-size: 16px;
10
- --pisell-step-title-font-size-small: 14px;
11
- --pisell-step-description-font-size: 14px;
12
- --pisell-step-description-font-size-small: 12px;
13
- --pisell-step-title-line-height: 24px;
14
- --pisell-step-title-line-height-small: 20px;
15
- --pisell-step-description-line-height: 22px;
16
- --pisell-step-description-line-height-small: 18px;
17
-
18
- // 状态颜色(根据设计图的 Pisell 主题色)
19
- --pisell-step-finish-color: #7f56d9; // Primary/600
20
- --pisell-step-finish-bg: #f4ebff; // Primary/100
21
- --pisell-step-process-color: #7f56d9; // Primary/600
22
- --pisell-step-process-bg: #7f56d9; // Primary/600
23
- --pisell-step-wait-color: rgba(0, 0, 0, 0.45);
24
- --pisell-step-wait-bg: rgba(0, 0, 0, 0.06);
25
- --pisell-step-wait-border: rgba(0, 0, 0, 0.25);
26
- --pisell-step-error-color: #ff4d4f;
27
- --pisell-step-error-bg: #fff;
28
-
29
- // 文本颜色
30
- --pisell-step-text-color: rgba(0, 0, 0, 0.88);
31
- --pisell-step-text-color-secondary: rgba(0, 0, 0, 0.45);
32
-
33
- // 间距
34
- --pisell-step-margin: 16px;
35
- --pisell-step-margin-xs: 8px;
36
- --pisell-step-padding-xs: 4px;
37
- --pisell-step-padding-sm: 12px;
38
-
39
- // 圆点尺寸
40
- --pisell-step-dot-size: 8px;
41
- --pisell-step-dot-size-small: 6px;
42
- --pisell-step-dot-size-active: 10px;
43
- --pisell-step-dot-size-active-small: 8px;
44
-
45
- // 连接器
46
- --pisell-step-connector-color-finish: var(--pisell-step-finish-color);
47
- --pisell-step-connector-color-wait: rgba(0, 0, 0, 0.25);
1
+ // PisellSteps 组件样式
2
+ // 基于 Ant Design Steps 进行样式扩展和定制
3
+
4
+ @pisell-steps-prefix: pisell-steps;
5
+
6
+ // ============ CSS 变量定义 ============
7
+ .@{pisell-steps-prefix} {
8
+ // 图标相关
9
+ --pisell-steps-icon-size: 32px;
10
+ --pisell-steps-icon-color: inherit;
11
+
12
+ // 间距相关
13
+ --pisell-steps-item-gap: 8px;
14
+ --pisell-steps-margin: 16px;
15
+
16
+ // 栅格布局
17
+ --pisell-steps-grid-columns: 3;
18
+
19
+ // 颜色变量
20
+ --pisell-steps-primary-color: #7f56d9;
21
+ --pisell-steps-primary-light: #f4ebff;
22
+ --pisell-steps-text-color: rgba(0, 0, 0, 0.88);
23
+ --pisell-steps-text-secondary: rgba(0, 0, 0, 0.45);
24
+ --pisell-steps-border-color: rgba(0, 0, 0, 0.06);
25
+ --pisell-steps-error-color: #ff4d4f;
26
+ --pisell-steps-success-color: #52c41a;
27
+ }
48
28
 
49
- // 基础样式
29
+ // ============ 基础样式 ============
30
+ .@{pisell-steps-prefix} {
31
+ position: relative;
50
32
  width: 100%;
51
33
 
52
- // ==================== 完成状态样式 ====================
53
- :global {
54
- .ant-steps-item-finish {
55
- .ant-steps-item-icon {
56
- background-color: var(--pisell-step-finish-bg);
57
- border-color: var(--pisell-step-finish-color);
58
-
59
- .ant-steps-icon {
60
- color: var(--pisell-step-finish-color);
61
- }
62
- }
63
-
64
- .ant-steps-item-title {
65
- color: var(--pisell-step-text-color);
66
- font-size: var(--pisell-step-title-font-size);
67
- line-height: var(--pisell-step-title-line-height);
68
- }
69
-
70
- .ant-steps-item-description {
71
- color: var(--pisell-step-text-color-secondary);
72
- font-size: var(--pisell-step-description-font-size);
73
- line-height: var(--pisell-step-description-line-height);
74
- }
75
-
76
- >.ant-steps-item-container>.ant-steps-item-tail::after {
77
- background-color: var(--pisell-step-connector-color-finish);
78
- }
79
- }
80
-
81
- // ==================== 进行中状态样式 ====================
82
- .ant-steps-item-process {
83
- .ant-steps-item-icon {
84
- background-color: var(--pisell-step-process-bg);
85
- border-color: var(--pisell-step-process-color);
86
-
87
- .ant-steps-icon {
88
- color: #ffffff;
89
- font-weight: 500;
90
- }
91
- }
92
-
93
- .ant-steps-item-title {
94
- color: var(--pisell-step-text-color);
95
- font-size: var(--pisell-step-title-font-size);
96
- line-height: var(--pisell-step-title-line-height);
97
- font-weight: 500;
98
- }
99
-
100
- .ant-steps-item-description {
101
- color: var(--pisell-step-text-color);
102
- font-size: var(--pisell-step-description-font-size);
103
- line-height: var(--pisell-step-description-line-height);
104
- }
105
- }
106
-
107
- // ==================== 等待状态样式 ====================
108
- .ant-steps-item-wait {
109
- .ant-steps-item-icon {
110
- background-color: var(--pisell-step-wait-bg);
111
- border-color: var(--pisell-step-wait-border);
112
-
113
- .ant-steps-icon {
114
- color: var(--pisell-step-wait-color);
115
- }
116
- }
117
-
118
- .ant-steps-item-title {
119
- color: var(--pisell-step-wait-color);
120
- font-size: var(--pisell-step-title-font-size);
121
- line-height: var(--pisell-step-title-line-height);
122
- }
123
-
124
- .ant-steps-item-description {
125
- color: var(--pisell-step-wait-color);
126
- font-size: var(--pisell-step-description-font-size);
127
- line-height: var(--pisell-step-description-line-height);
128
- }
129
-
130
- >.ant-steps-item-container>.ant-steps-item-tail::after {
131
- background-color: var(--pisell-step-connector-color-wait);
34
+ // 覆盖 Ant Design 默认样式,使用自定义主题色
35
+ .ant-steps-item-finish {
36
+ .ant-steps-item-icon {
37
+ background-color: var(--pisell-steps-primary-light);
38
+ border-color: var(--pisell-steps-primary-color);
39
+
40
+ > .ant-steps-icon {
41
+ color: var(--pisell-steps-primary-color);
132
42
  }
133
43
  }
134
-
135
- // ==================== 错误状态样式 ====================
136
- .ant-steps-item-error {
137
- .ant-steps-item-icon {
138
- background-color: var(--pisell-step-error-bg);
139
- border-color: var(--pisell-step-error-color);
140
-
141
- .ant-steps-icon {
142
- color: var(--pisell-step-error-color);
143
- }
144
- }
145
-
146
- .ant-steps-item-title {
147
- color: var(--pisell-step-error-color);
148
- }
149
-
150
- .ant-steps-item-description {
151
- color: var(--pisell-step-error-color);
152
- }
153
-
154
- >.ant-steps-item-container>.ant-steps-item-tail::after {
155
- background-color: var(--pisell-step-error-color);
156
- }
44
+
45
+ .ant-steps-item-tail::after {
46
+ background-color: var(--pisell-steps-primary-color);
157
47
  }
158
48
  }
159
- }
160
49
 
161
- // ==================== 小尺寸样式 ====================
162
- .pisell-steps-small {
163
- :global {
50
+ .ant-steps-item-process {
164
51
  .ant-steps-item-icon {
165
- width: var(--pisell-step-icon-size-small);
166
- height: var(--pisell-step-icon-size-small);
167
- line-height: var(--pisell-step-icon-size-small);
168
- font-size: 12px;
169
- }
170
-
171
- .ant-steps-item-title {
172
- font-size: var(--pisell-step-title-font-size-small) !important;
173
- line-height: var(--pisell-step-title-line-height-small) !important;
174
- }
175
-
176
- .ant-steps-item-description {
177
- font-size: var(--pisell-step-description-font-size-small) !important;
178
- line-height: var(--pisell-step-description-line-height-small) !important;
52
+ background-color: var(--pisell-steps-primary-color);
53
+ border-color: var(--pisell-steps-primary-color);
54
+
55
+ > .ant-steps-icon {
56
+ color: #ffffff;
57
+ }
179
58
  }
180
59
  }
181
- }
182
60
 
183
- // ==================== 圆点样式 ====================
184
- .pisell-steps-dot {
185
- :global {
61
+ .ant-steps-item-wait {
186
62
  .ant-steps-item-icon {
187
- width: var(--pisell-step-dot-size);
188
- height: var(--pisell-step-dot-size);
189
- border: none;
190
-
191
- .ant-steps-icon-dot {
192
- width: var(--pisell-step-dot-size);
193
- height: var(--pisell-step-dot-size);
194
- }
195
- }
196
-
197
- // 进行中的圆点稍大
198
- .ant-steps-item-process .ant-steps-item-icon {
199
- width: var(--pisell-step-dot-size-active);
200
- height: var(--pisell-step-dot-size-active);
201
-
202
- .ant-steps-icon-dot {
203
- width: var(--pisell-step-dot-size-active);
204
- height: var(--pisell-step-dot-size-active);
63
+ background-color: var(--pisell-steps-border-color);
64
+ border-color: var(--pisell-steps-border-color);
65
+
66
+ > .ant-steps-icon {
67
+ color: var(--pisell-steps-text-secondary);
205
68
  }
206
69
  }
207
-
208
- // 圆点样式下的文本居中
209
- .ant-steps-item-content {
210
- text-align: center;
211
- }
212
70
  }
213
71
 
214
- // 小尺寸圆点
215
- &.pisell-steps-small {
216
- :global {
217
- .ant-steps-item-icon {
218
- width: var(--pisell-step-dot-size-small);
219
- height: var(--pisell-step-dot-size-small);
220
-
221
- .ant-steps-icon-dot {
222
- width: var(--pisell-step-dot-size-small);
223
- height: var(--pisell-step-dot-size-small);
224
- }
225
- }
226
-
227
- .ant-steps-item-process .ant-steps-item-icon {
228
- width: var(--pisell-step-dot-size-active-small);
229
- height: var(--pisell-step-dot-size-active-small);
230
-
231
- .ant-steps-icon-dot {
232
- width: var(--pisell-step-dot-size-active-small);
233
- height: var(--pisell-step-dot-size-active-small);
234
- }
72
+ .ant-steps-item-error {
73
+ .ant-steps-item-icon {
74
+ background-color: var(--pisell-steps-error-color);
75
+ border-color: var(--pisell-steps-error-color);
76
+
77
+ > .ant-steps-icon {
78
+ color: #ffffff;
235
79
  }
236
80
  }
237
81
  }
238
82
  }
239
83
 
240
- // ==================== 隐藏连接器 ====================
241
- .pisell-steps-no-connector {
242
- :global {
243
- .ant-steps-item-tail {
244
- display: none !important;
245
- }
246
- }
247
- }
84
+ // ============ 可点击样式 ============
85
+ .@{pisell-steps-prefix}-clickable {
86
+ .ant-steps-item {
87
+ cursor: pointer;
88
+ transition: all 0.3s ease;
248
89
 
249
- // ==================== 响应式样式 ====================
250
- .pisell-steps-responsive {
251
- &.pisell-steps-horizontal {
252
- @media (max-width: 768px) {
253
- overflow-x: auto;
254
- overflow-y: hidden;
255
-
256
- :global {
257
- .ant-steps-item {
258
- flex-shrink: 0;
259
- min-width: 120px;
260
- }
90
+ &:hover {
91
+ .ant-steps-item-icon {
92
+ transform: scale(1.1);
261
93
  }
262
94
  }
263
95
 
264
- @media (max-width: 480px) {
265
- :global {
266
- .ant-steps-item {
267
- min-width: 100px;
268
- }
269
-
96
+ &-finish {
97
+ &:hover {
270
98
  .ant-steps-item-title {
271
- font-size: 14px !important;
272
- }
273
-
274
- .ant-steps-item-description {
275
- font-size: 12px !important;
99
+ color: var(--pisell-steps-primary-color);
276
100
  }
277
101
  }
278
102
  }
279
103
  }
280
104
  }
281
105
 
282
- // ==================== 竖向标签布局 ====================
283
- .pisell-steps-label-vertical {
284
- :global {
285
- .ant-steps-item-content {
286
- display: flex;
287
- flex-direction: column;
288
- align-items: center;
289
- text-align: center;
290
-
291
- .ant-steps-item-title {
292
- padding-top: var(--pisell-step-margin-xs);
293
- }
294
- }
106
+ // ============ 尺寸变体 ============
107
+ .@{pisell-steps-prefix}-small {
108
+ .ant-steps-item-icon {
109
+ width: 24px;
110
+ height: 24px;
111
+ line-height: 24px;
112
+ font-size: 12px;
113
+ }
114
+
115
+ .ant-steps-item-title {
116
+ font-size: 14px;
117
+ }
118
+
119
+ .ant-steps-item-description {
120
+ font-size: 12px;
295
121
  }
296
122
  }
297
123
 
298
- // ==================== 图标底部对齐 ====================
299
- .pisell-steps-icon-bottom {
300
- &.pisell-steps-vertical {
301
- :global {
302
- .ant-steps-item-icon {
303
- order: 2;
304
- }
124
+ .@{pisell-steps-prefix}-large {
125
+ .ant-steps-item-icon {
126
+ width: 40px;
127
+ height: 40px;
128
+ line-height: 40px;
129
+ font-size: 18px;
130
+ }
131
+
132
+ .ant-steps-item-title {
133
+ font-size: 18px;
134
+ }
135
+
136
+ .ant-steps-item-description {
137
+ font-size: 16px;
138
+ }
139
+ }
305
140
 
306
- .ant-steps-item-content {
307
- order: 1;
308
- }
141
+ // ============ 类型变体 ============
142
+ // Dot 类型
143
+ .@{pisell-steps-prefix}-dot {
144
+ .ant-steps-item-icon {
145
+ width: 8px;
146
+ height: 8px;
147
+
148
+ .ant-steps-icon-dot {
149
+ width: 8px;
150
+ height: 8px;
309
151
  }
310
152
  }
311
153
  }
312
154
 
313
- // ==================== 导航类型样式 ====================
314
- .pisell-steps-navigation {
315
- :global {
316
- .ant-steps-item {
317
- padding-left: 0;
318
- overflow: visible;
319
-
320
- &::before {
321
- display: none;
322
- }
323
-
324
- .ant-steps-item-container {
325
- padding: var(--pisell-step-padding-xs) var(--pisell-step-margin);
326
- background-color: #fafafa;
327
- border-radius: 4px;
328
- transition: all 0.3s ease;
329
-
330
- &:hover {
331
- background-color: #f0f0f0;
332
- }
333
- }
334
-
335
- &.ant-steps-item-active .ant-steps-item-container {
336
- background-color: var(--pisell-step-finish-bg);
337
- box-shadow: 0 2px 4px rgba(127, 86, 217, 0.1);
338
- }
339
-
340
- &.ant-steps-item-finish .ant-steps-item-container:hover {
341
- background-color: var(--pisell-step-finish-bg);
342
- }
155
+ // Navigation 类型
156
+ .@{pisell-steps-prefix}-navigation {
157
+ .ant-steps-item {
158
+ padding: 12px 24px;
159
+
160
+ &::before {
161
+ content: '';
162
+ position: absolute;
163
+ top: 0;
164
+ right: -12px;
165
+ width: 0;
166
+ height: 0;
167
+ border-top: 24px solid transparent;
168
+ border-bottom: 24px solid transparent;
169
+ border-left: 12px solid var(--pisell-steps-border-color);
170
+ z-index: 1;
343
171
  }
344
172
  }
345
173
  }
346
174
 
347
- // ==================== 行内类型样式 ====================
348
- .pisell-steps-inline {
349
- :global {
175
+ // ============ 响应式样式 ============
176
+ .@{pisell-steps-prefix}-responsive {
177
+ @media (max-width: 768px) {
178
+ overflow-x: auto;
179
+ -webkit-overflow-scrolling: touch;
180
+
350
181
  .ant-steps {
351
- display: inline-flex;
182
+ min-width: max-content;
352
183
  }
353
-
184
+
354
185
  .ant-steps-item {
355
- display: inline-flex;
356
- padding-inline-start: 0;
357
-
358
- .ant-steps-item-icon {
359
- margin-right: var(--pisell-step-margin-xs);
360
- }
361
-
362
- .ant-steps-item-content {
363
- display: inline-block;
364
- }
186
+ min-width: 120px;
187
+ flex-shrink: 0;
365
188
  }
366
189
  }
367
- }
368
-
369
- // ==================== 可点击步骤样式 ====================
370
- .pisell-steps {
371
- :global {
372
-
373
- // 已完成的步骤可点击
374
- .ant-steps-item-finish:not(.ant-steps-item-disabled) {
375
- cursor: pointer;
376
-
377
- .ant-steps-item-container {
378
- transition: all 0.3s ease;
190
+
191
+ @media (max-width: 480px) {
192
+ .ant-steps-item {
193
+ min-width: 100px;
194
+
195
+ .ant-steps-item-title {
196
+ font-size: 12px;
379
197
  }
380
-
381
- &:hover {
382
- .ant-steps-item-icon {
383
- border-color: var(--pisell-step-process-color);
384
- box-shadow: 0 0 0 2px rgba(127, 86, 217, 0.1);
385
- }
386
-
387
- .ant-steps-item-title {
388
- color: var(--pisell-step-process-color);
389
- }
198
+
199
+ .ant-steps-item-description {
200
+ display: none;
390
201
  }
391
-
392
- // 激活状态
393
- &:active {
394
- .ant-steps-item-icon {
395
- transform: scale(0.95);
396
- }
202
+
203
+ .ant-steps-item-icon {
204
+ width: 24px;
205
+ height: 24px;
206
+ line-height: 24px;
207
+ font-size: 12px;
397
208
  }
398
209
  }
210
+ }
211
+ }
399
212
 
400
- // 添加可点击样式类
401
- .pisell-steps-item-clickable {
402
- cursor: pointer;
403
- }
404
-
405
- // 禁用状态
406
- .ant-steps-item-disabled {
407
- cursor: not-allowed;
408
- opacity: 0.5;
213
+ // ============ 栅格布局 ============
214
+ .@{pisell-steps-prefix}-grid-layout {
215
+ .ant-steps {
216
+ display: grid;
217
+ grid-template-columns: repeat(var(--pisell-steps-grid-columns), 1fr);
218
+ gap: var(--pisell-steps-margin);
219
+ }
220
+ }
409
221
 
410
- .ant-steps-item-container {
411
- pointer-events: none;
412
- }
222
+ // ============ 连接器位置 ============
223
+ .@{pisell-steps-prefix}-connector-top {
224
+ .ant-steps-item-tail {
225
+ top: 8px;
226
+ }
227
+ }
413
228
 
414
- &:hover {
229
+ .@{pisell-steps-prefix}-connector-bottom {
230
+ .ant-steps-item-tail {
231
+ top: auto;
232
+ bottom: 8px;
233
+ }
234
+ }
415
235
 
416
- .ant-steps-item-icon,
417
- .ant-steps-item-title {
418
- border-color: inherit;
419
- color: inherit;
420
- }
421
- }
236
+ // ============ 项布局 ============
237
+ .@{pisell-steps-prefix}-item-vertical {
238
+ .ant-steps-item {
239
+ flex-direction: column;
240
+
241
+ .ant-steps-item-icon {
242
+ margin-bottom: var(--pisell-steps-item-gap);
422
243
  }
423
244
  }
424
245
  }
425
246
 
426
- // ==================== 动画效果 ====================
427
- .pisell-steps {
428
- :global {
429
- .ant-steps-item {
430
- transition: all 0.3s ease;
431
- }
247
+ // ============ 动画效果 ============
248
+ .@{pisell-steps-prefix}-animated {
249
+ .ant-steps-item {
250
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
251
+ }
252
+
253
+ .ant-steps-item-icon {
254
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
255
+ }
256
+
257
+ .ant-steps-item-tail::after {
258
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
259
+ }
260
+ }
432
261
 
433
- .ant-steps-item-icon {
434
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
435
- }
262
+ // ============ 进度百分比显示 ============
263
+ .@{pisell-steps-prefix}-progress-info {
264
+ position: absolute;
265
+ top: 50%;
266
+ left: 50%;
267
+ transform: translate(-50%, -50%);
268
+ pointer-events: none;
269
+
270
+ .@{pisell-steps-prefix}-progress-percent {
271
+ display: inline-block;
272
+ padding: 2px 8px;
273
+ background-color: var(--pisell-steps-primary-color);
274
+ color: #ffffff;
275
+ font-size: 12px;
276
+ border-radius: 10px;
277
+ font-weight: 500;
278
+ }
279
+ }
436
280
 
437
- .ant-steps-item-title,
438
- .ant-steps-item-description {
439
- transition: color 0.3s ease;
281
+ // ============ 竖向布局特殊样式 ============
282
+ .@{pisell-steps-prefix}-vertical {
283
+ .ant-steps-item {
284
+ padding-bottom: var(--pisell-steps-margin);
285
+
286
+ &:last-child {
287
+ padding-bottom: 0;
440
288
  }
289
+ }
290
+
291
+ .@{pisell-steps-prefix}-progress-info {
292
+ left: 16px;
293
+ transform: translateY(-50%);
294
+ }
295
+ }
441
296
 
442
- .ant-steps-item-tail::after {
443
- transition: background-color 0.3s ease;
297
+ // ============ 自定义图标尺寸 ============
298
+ .@{pisell-steps-prefix} {
299
+ .ant-steps-item-icon {
300
+ width: var(--pisell-steps-icon-size);
301
+ height: var(--pisell-steps-icon-size);
302
+ line-height: var(--pisell-steps-icon-size);
303
+
304
+ .ant-steps-icon {
305
+ color: var(--pisell-steps-icon-color);
444
306
  }
445
307
  }
446
308
  }
447
309
 
448
- // ==================== 打印样式优化 ====================
449
- @media print {
450
- .pisell-steps {
451
- :global {
310
+ // ============ 禁用状态 ============
311
+ .@{pisell-steps-prefix} {
312
+ .ant-steps-item-disabled {
313
+ cursor: not-allowed;
314
+ opacity: 0.5;
315
+
316
+ &:hover {
452
317
  .ant-steps-item-icon {
453
- box-shadow: none !important;
318
+ transform: none;
454
319
  }
455
320
  }
456
321
  }
457
- }
322
+ }