@zjpcy/simple-design 1.3.8-test → 1.3.9-test

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.
@@ -32,99 +32,104 @@
32
32
  fill: var(--idp-icon-hover-fill);
33
33
  }
34
34
 
35
+ /* 单独使用 icon-container 的通用悬停效果(不包含特定类组合) */
36
+ .icon-container:hover .icon {
37
+ fill: var(--idp-icon-hover-fill);
38
+ }
39
+
35
40
  /* ============================================
36
41
  主题色 - 与 Button 组件保持一致
37
42
  ============================================ */
38
43
 
39
44
  /* Primary 主题 */
40
- .icon-container.icon-primary .icon {
45
+ .icon-theme-primary .icon {
41
46
  fill: var(--idp-primary-color);
42
47
  }
43
48
 
44
- .icon-container.icon-primary:hover .icon {
49
+ .icon-theme-primary:hover .icon {
45
50
  fill: var(--idp-primary-hover-color);
46
51
  }
47
52
 
48
53
  /* Success 主题 */
49
- .icon-container.icon-success .icon {
54
+ .icon-theme-success .icon {
50
55
  fill: var(--idp-success-color);
51
56
  }
52
57
 
53
- .icon-container.icon-success:hover .icon {
58
+ .icon-theme-success:hover .icon {
54
59
  fill: #73d13d;
55
60
  }
56
61
 
57
62
  /* Warning 主题 */
58
- .icon-container.icon-warning .icon {
63
+ .icon-theme-warning .icon {
59
64
  fill: var(--idp-warning-color);
60
65
  }
61
66
 
62
- .icon-container.icon-warning:hover .icon {
67
+ .icon-theme-warning:hover .icon {
63
68
  fill: #ffc53d;
64
69
  }
65
70
 
66
71
  /* Danger 主题 */
67
- .icon-container.icon-danger .icon {
72
+ .icon-theme-danger .icon {
68
73
  fill: var(--idp-error-color);
69
74
  }
70
75
 
71
- .icon-container.icon-danger:hover .icon {
76
+ .icon-theme-danger:hover .icon {
72
77
  fill: #ff7875;
73
78
  }
74
79
 
75
80
  /* Info 主题 */
76
- .icon-container.icon-info .icon {
81
+ .icon-theme-info .icon {
77
82
  fill: var(--idp-info-color);
78
83
  }
79
84
 
80
- .icon-container.icon-info:hover .icon {
85
+ .icon-theme-info:hover .icon {
81
86
  fill: var(--idp-primary-hover-color);
82
87
  }
83
88
 
84
89
  /* Secondary 主题 */
85
- .icon-container.icon-secondary .icon {
90
+ .icon-theme-secondary .icon {
86
91
  fill: var(--idp-text-color-secondary);
87
92
  }
88
93
 
89
- .icon-container.icon-secondary:hover .icon {
94
+ .icon-theme-secondary:hover .icon {
90
95
  fill: var(--idp-text-color);
91
96
  }
92
97
 
93
98
  /* ============================================
94
99
  尺寸变体
95
100
  ============================================ */
96
- .icon-container.icon-small {
101
+ .icon-size-small {
97
102
  font-size: 12px;
98
103
  }
99
104
 
100
- .icon-container.icon-small .icon {
105
+ .icon-size-small .icon {
101
106
  width: 12px;
102
107
  height: 12px;
103
108
  }
104
109
 
105
- .icon-container.icon-medium {
110
+ .icon-size-medium {
106
111
  font-size: 14px;
107
112
  }
108
113
 
109
- .icon-container.icon-medium .icon {
114
+ .icon-size-medium .icon {
110
115
  width: 14px;
111
116
  height: 14px;
112
117
  }
113
118
 
114
- .icon-container.icon-large {
119
+ .icon-size-large {
115
120
  font-size: 16px;
116
121
  }
117
122
 
118
- .icon-container.icon-large .icon {
123
+ .icon-size-large .icon {
119
124
  width: 16px;
120
125
  height: 16px;
121
126
  }
122
127
 
123
- .icon-container.icon-xlarge {
128
+ .icon-size-xlarge {
124
129
  font-size: 20px;
125
130
  }
126
131
 
127
- .icon-container.icon-xlarge .icon {
132
+ .icon-size-xlarge .icon {
128
133
  width: 20px;
129
134
  height: 20px;
130
135
  }
@@ -132,7 +137,7 @@
132
137
  /* ============================================
133
138
  圆形图标按钮样式 - 带背景
134
139
  ============================================ */
135
- .icon-container.icon-circle {
140
+ .icon-circle {
136
141
  width: 32px;
137
142
  height: 32px;
138
143
  border-radius: 50%;
@@ -141,25 +146,25 @@
141
146
  box-shadow: var(--idp-shadow-extra-light);
142
147
  }
143
148
 
144
- .icon-container.icon-circle:hover {
149
+ .icon-circle:hover {
145
150
  background: linear-gradient(135deg, var(--idp-bg-color-white) 0%, var(--idp-bg-color) 100%);
146
151
  border-color: var(--idp-primary-hover-color);
147
152
  box-shadow: var(--idp-shadow-sm);
148
153
  transform: translateY(-1px);
149
154
  }
150
155
 
151
- .icon-container.icon-circle:active {
156
+ .icon-circle:active {
152
157
  transform: translateY(0);
153
158
  box-shadow: var(--idp-shadow-extra-light);
154
159
  }
155
160
 
156
161
  /* 圆形图标按钮 - 尺寸 */
157
- .icon-container.icon-circle.icon-small {
162
+ .icon-circle.icon-size-small {
158
163
  width: 24px;
159
164
  height: 24px;
160
165
  }
161
166
 
162
- .icon-container.icon-circle.icon-large {
167
+ .icon-circle.icon-size-large {
163
168
  width: 40px;
164
169
  height: 40px;
165
170
  }
@@ -167,38 +172,38 @@
167
172
  /* ============================================
168
173
  禁用状态
169
174
  ============================================ */
170
- .icon-container.icon-disabled,
171
- .icon-container.icon-disabled .icon {
175
+ .icon-state-disabled,
176
+ .icon-state-disabled .icon {
172
177
  cursor: not-allowed;
173
178
  opacity: var(--idp-opacity-disabled);
174
179
  }
175
180
 
176
- .icon-container.icon-disabled:hover .icon {
181
+ .icon-state-disabled:hover .icon {
177
182
  fill: var(--idp-icon-fill);
178
183
  }
179
184
 
180
185
  /* 禁用状态下各主题 */
181
- .icon-container.icon-disabled.icon-primary:hover .icon {
186
+ .icon-state-disabled.icon-theme-primary:hover .icon {
182
187
  fill: var(--idp-primary-color);
183
188
  }
184
189
 
185
- .icon-container.icon-disabled.icon-success:hover .icon {
190
+ .icon-state-disabled.icon-theme-success:hover .icon {
186
191
  fill: var(--idp-success-color);
187
192
  }
188
193
 
189
- .icon-container.icon-disabled.icon-warning:hover .icon {
194
+ .icon-state-disabled.icon-theme-warning:hover .icon {
190
195
  fill: var(--idp-warning-color);
191
196
  }
192
197
 
193
- .icon-container.icon-disabled.icon-danger:hover .icon {
198
+ .icon-state-disabled.icon-theme-danger:hover .icon {
194
199
  fill: var(--idp-error-color);
195
200
  }
196
201
 
197
- .icon-container.icon-disabled.icon-info:hover .icon {
202
+ .icon-state-disabled.icon-theme-info:hover .icon {
198
203
  fill: var(--idp-info-color);
199
204
  }
200
205
 
201
- .icon-container.icon-disabled.icon-secondary:hover .icon {
206
+ .icon-state-disabled.icon-theme-secondary:hover .icon {
202
207
  fill: var(--idp-text-color-secondary);
203
208
  }
204
209
 
@@ -231,15 +236,15 @@
231
236
  /* ============================================
232
237
  对齐方式
233
238
  ============================================ */
234
- .icon-container.align-left {
239
+ .icon-align-left {
235
240
  justify-content: flex-start;
236
241
  }
237
242
 
238
- .icon-container.align-center {
243
+ .icon-align-center {
239
244
  justify-content: center;
240
245
  }
241
246
 
242
- .icon-container.align-right {
247
+ .icon-align-right {
243
248
  justify-content: flex-end;
244
249
  }
245
250
 
@@ -579,7 +584,7 @@
579
584
  }
580
585
 
581
586
  /* 带提示文本时的间距 */
582
- .idp-spin-has-tip {
587
+ .idp-spin-content-tip {
583
588
  gap: 12px;
584
589
  }
585
590
 
@@ -610,28 +615,28 @@
610
615
  }
611
616
 
612
617
  /* 尺寸变体 - small */
613
- .idp-spin-small .idp-spin-icon {
618
+ .idp-spin-icon-small {
614
619
  width: 16px;
615
620
  height: 16px;
616
621
  }
617
622
 
618
- .idp-spin-small .idp-spin-tip {
623
+ .idp-spin-tip-small {
619
624
  font-size: 12px;
620
625
  }
621
626
 
622
627
  /* 尺寸变体 - default */
623
- .idp-spin-default .idp-spin-icon {
628
+ .idp-spin-icon-default{
624
629
  width: 24px;
625
630
  height: 24px;
626
631
  }
627
632
 
628
633
  /* 尺寸变体 - large */
629
- .idp-spin-large .idp-spin-icon {
634
+ .idp-spin-icon-large {
630
635
  width: 32px;
631
636
  height: 32px;
632
637
  }
633
638
 
634
- .idp-spin-large .idp-spin-tip {
639
+ .idp-spin-tip-large {
635
640
  font-size: 16px;
636
641
  }
637
642
 
@@ -658,17 +663,17 @@
658
663
  }
659
664
 
660
665
  /* 遮罩层尺寸 */
661
- .idp-spin-mask-small .idp-spin-icon {
666
+ .idp-spin-mask .idp-spin-icon-small {
662
667
  width: 16px;
663
668
  height: 16px;
664
669
  }
665
670
 
666
- .idp-spin-mask-default .idp-spin-icon {
671
+ .idp-spin-mask .idp-spin-icon-default {
667
672
  width: 24px;
668
673
  height: 24px;
669
674
  }
670
675
 
671
- .idp-spin-mask-large .idp-spin-icon {
676
+ .idp-spin-mask .idp-spin-icon-large {
672
677
  width: 32px;
673
678
  height: 32px;
674
679
  }
@@ -1568,12 +1573,12 @@
1568
1573
  box-shadow: var(--idp-input-box-shadow-hover);
1569
1574
  }
1570
1575
 
1571
- .cascader.cascader-open .cascader-trigger {
1576
+ .cascader-open .cascader-trigger {
1572
1577
  border-color: var(--idp-primary-color);
1573
1578
  box-shadow: var(--idp-input-box-shadow-focus);
1574
1579
  }
1575
1580
 
1576
- .cascader.cascader-disabled .cascader-trigger {
1581
+ .cascader-disabled .cascader-trigger {
1577
1582
  color: var(--idp-text-color-light);
1578
1583
  background: linear-gradient(135deg, var(--idp-bg-color-light) 0%, var(--idp-bg-color) 100%);
1579
1584
  cursor: not-allowed;
@@ -1853,7 +1858,7 @@
1853
1858
  color: var(--idp-success-color);
1854
1859
  }
1855
1860
 
1856
- .cascader-menu-item-selected.cascader-menu-item-active {
1861
+ .cascader-menu-item-selected-active {
1857
1862
  background: linear-gradient(135deg, var(--idp-primary-light-color) 0%, rgba(24, 144, 255, 0.06) 100%);
1858
1863
  color: var(--idp-primary-color);
1859
1864
  }
@@ -2472,13 +2477,12 @@
2472
2477
  min-height: 1em;
2473
2478
  display: inline-block;
2474
2479
  vertical-align: middle;
2475
- background-color: var(--idp-border-color-extra-light);
2476
2480
  }
2477
2481
 
2478
2482
  /* ============================================
2479
- 虚线样式 - 水平
2483
+ 虚线样式 - 水平(使用组合类名避免多类选择器)
2480
2484
  ============================================ */
2481
- .divider-dashed.divider-horizontal {
2485
+ .divider-dashed-horizontal {
2482
2486
  background: repeating-linear-gradient(
2483
2487
  to right,
2484
2488
  var(--idp-border-color-extra-light),
@@ -2489,9 +2493,9 @@
2489
2493
  }
2490
2494
 
2491
2495
  /* ============================================
2492
- 虚线样式 - 垂直
2496
+ 虚线样式 - 垂直(使用组合类名避免多类选择器)
2493
2497
  ============================================ */
2494
- .divider-dashed.divider-vertical {
2498
+ .divider-dashed-vertical {
2495
2499
  background: repeating-linear-gradient(
2496
2500
  to bottom,
2497
2501
  var(--idp-border-color-extra-light),
@@ -2522,8 +2526,8 @@
2522
2526
  background-color: var(--idp-border-color-extra-light);
2523
2527
  }
2524
2528
 
2525
- .divider-with-text.divider-dashed::before,
2526
- .divider-with-text.divider-dashed::after {
2529
+ .divider-with-text .divider-dashed-horizontal::before,
2530
+ .divider-with-text .divider-dashed-horizontal::after {
2527
2531
  background: repeating-linear-gradient(
2528
2532
  to right,
2529
2533
  var(--idp-border-color-extra-light),
@@ -2561,17 +2565,17 @@
2561
2565
  }
2562
2566
 
2563
2567
  /* ============================================
2564
- 主题色变体 - 主色调
2568
+ 主题色变体 - 主色调(使用组合类名避免多类选择器)
2565
2569
  ============================================ */
2566
2570
  .divider-primary {
2567
2571
  background-color: var(--idp-primary-color);
2568
2572
  }
2569
2573
 
2570
- .divider-primary.divider-vertical {
2574
+ .divider-primary-vertical {
2571
2575
  background-color: var(--idp-primary-color);
2572
2576
  }
2573
2577
 
2574
- .divider-primary.divider-dashed.divider-horizontal {
2578
+ .divider-primary-dashed-horizontal {
2575
2579
  background: repeating-linear-gradient(
2576
2580
  to right,
2577
2581
  var(--idp-primary-color),
@@ -2581,7 +2585,7 @@
2581
2585
  );
2582
2586
  }
2583
2587
 
2584
- .divider-primary.divider-dashed.divider-vertical {
2588
+ .divider-primary-dashed-vertical {
2585
2589
  background: repeating-linear-gradient(
2586
2590
  to bottom,
2587
2591
  var(--idp-primary-color),
@@ -2595,13 +2599,14 @@
2595
2599
  color: var(--idp-primary-color);
2596
2600
  }
2597
2601
 
2598
- .divider-primary.divider-with-text::before,
2599
- .divider-primary.divider-with-text::after {
2602
+ /* 使用组合类名避免多类选择器 */
2603
+ .divider-primary-with-text::before,
2604
+ .divider-primary-with-text::after {
2600
2605
  background-color: var(--idp-primary-color);
2601
2606
  }
2602
2607
 
2603
- .divider-primary.divider-with-text.divider-dashed::before,
2604
- .divider-primary.divider-with-text.divider-dashed::after {
2608
+ .divider-primary-with-text .divider-dashed-horizontal::before,
2609
+ .divider-primary-with-text .divider-dashed-horizontal::after {
2605
2610
  background: repeating-linear-gradient(
2606
2611
  to right,
2607
2612
  var(--idp-primary-color),
@@ -2612,21 +2617,21 @@
2612
2617
  }
2613
2618
 
2614
2619
  /* ============================================
2615
- 尺寸变体
2620
+ 尺寸变体(使用组合类名避免多类选择器)
2616
2621
  ============================================ */
2617
- .divider-thin.divider-horizontal {
2622
+ .divider-thin-horizontal {
2618
2623
  height: 0.5px;
2619
2624
  }
2620
2625
 
2621
- .divider-thin.divider-vertical {
2626
+ .divider-thin-vertical {
2622
2627
  width: 0.5px;
2623
2628
  }
2624
2629
 
2625
- .divider-thick.divider-horizontal {
2630
+ .divider-thick-horizontal {
2626
2631
  height: 2px;
2627
2632
  }
2628
2633
 
2629
- .divider-thick.divider-vertical {
2634
+ .divider-thick-vertical {
2630
2635
  width: 2px;
2631
2636
  }
2632
2637
 
@@ -2637,7 +2642,7 @@
2637
2642
  margin: 8px 0;
2638
2643
  }
2639
2644
 
2640
- .divider-margin-small.divider-vertical {
2645
+ .divider-margin-small-vertical {
2641
2646
  margin: 0 8px;
2642
2647
  }
2643
2648
 
@@ -2645,7 +2650,7 @@
2645
2650
  margin: 16px 0;
2646
2651
  }
2647
2652
 
2648
- .divider-margin-medium.divider-vertical {
2653
+ .divider-margin-medium-vertical {
2649
2654
  margin: 0 16px;
2650
2655
  }
2651
2656
 
@@ -2653,7 +2658,7 @@
2653
2658
  margin: 24px 0;
2654
2659
  }
2655
2660
 
2656
- .divider-margin-large.divider-vertical {
2661
+ .divider-margin-large-vertical {
2657
2662
  margin: 0 24px;
2658
2663
  }
2659
2664
 
@@ -2769,7 +2774,7 @@
2769
2774
  font-family: inherit;
2770
2775
  border: 1px solid var(--idp-input-border);
2771
2776
  border-radius: var(--idp-border-radius-lg);
2772
- background: linear-gradient(135deg, var(--idp-bg-color-white) 0%, var(--idp-bg-color) 100%);
2777
+ background: linear-gradient(135deg, var(--idp-bg-color-white) 100%, var(--idp-bg-color) 100%);
2773
2778
  transition: all var(--idp-transition-duration) var(--idp-transition-timing-function);
2774
2779
  outline: none;
2775
2780
  box-sizing: border-box;
@@ -3018,7 +3023,7 @@
3018
3023
  /* ============================================
3019
3024
  禁用和只读状态
3020
3025
  ============================================ */
3021
- .input-wrapper.input-disabled {
3026
+ .input-wrapper-disabled {
3022
3027
  background: linear-gradient(135deg, var(--idp-bg-color-light) 0%, var(--idp-bg-color) 100%);
3023
3028
  border-color: var(--idp-border-color-extra-light);
3024
3029
  color: var(--idp-text-color-light);
@@ -3026,29 +3031,29 @@
3026
3031
  box-shadow: none;
3027
3032
  }
3028
3033
 
3029
- .input-wrapper.input-disabled:hover {
3034
+ .input-wrapper-disabled:hover {
3030
3035
  box-shadow: none;
3031
3036
  border-color: var(--idp-border-color-extra-light);
3032
3037
  }
3033
3038
 
3034
- .input-wrapper.input-disabled .input-inner {
3039
+ .input-wrapper-disabled .input-inner {
3035
3040
  background-color: transparent;
3036
3041
  color: var(--idp-text-color-light);
3037
3042
  cursor: not-allowed;
3038
3043
  }
3039
3044
 
3040
- .input-wrapper.input-readonly {
3045
+ .input-wrapper-readonly {
3041
3046
  background: linear-gradient(135deg, var(--idp-bg-color) 0%, var(--idp-bg-color-light) 100%);
3042
3047
  border-color: var(--idp-border-color);
3043
3048
  cursor: default;
3044
3049
  }
3045
3050
 
3046
- .input-wrapper.input-readonly:hover {
3051
+ .input-wrapper-readonly:hover {
3047
3052
  box-shadow: var(--idp-shadow-extra-light);
3048
3053
  border-color: var(--idp-border-color-extra-light);
3049
3054
  }
3050
3055
 
3051
- .input-wrapper.input-readonly .input-inner {
3056
+ .input-wrapper-readonly .input-inner {
3052
3057
  background-color: transparent;
3053
3058
  cursor: default;
3054
3059
  }
@@ -3149,13 +3154,13 @@
3149
3154
  box-shadow: var(--idp-input-box-shadow-hover);
3150
3155
  }
3151
3156
 
3152
- .textarea-input-wrapper.focused {
3157
+ .textarea-input-wrapper-focused {
3153
3158
  border-color: var(--idp-input-border-focus);
3154
3159
  box-shadow: var(--idp-input-box-shadow-focus);
3155
3160
  background: var(--idp-bg-color-white);
3156
3161
  }
3157
3162
 
3158
- .textarea-input-wrapper.disabled {
3163
+ .textarea-input-wrapper-disabled {
3159
3164
  background: linear-gradient(135deg, var(--idp-bg-color-light) 0%, var(--idp-bg-color) 100%);
3160
3165
  border-color: var(--idp-border-color-extra-light);
3161
3166
  color: var(--idp-text-color-light);
@@ -3163,18 +3168,18 @@
3163
3168
  box-shadow: none;
3164
3169
  }
3165
3170
 
3166
- .textarea-input-wrapper.disabled:hover {
3171
+ .textarea-input-wrapper-disabled:hover {
3167
3172
  box-shadow: none;
3168
3173
  border-color: var(--idp-border-color-extra-light);
3169
3174
  }
3170
3175
 
3171
- .textarea-input-wrapper.readonly {
3176
+ .textarea-input-wrapper-readonly {
3172
3177
  background: linear-gradient(135deg, var(--idp-bg-color) 0%, var(--idp-bg-color-light) 100%);
3173
3178
  border-color: var(--idp-border-color);
3174
3179
  cursor: default;
3175
3180
  }
3176
3181
 
3177
- .textarea-input-wrapper.readonly:hover {
3182
+ .textarea-input-wrapper-readonly:hover {
3178
3183
  box-shadow: var(--idp-shadow-extra-light);
3179
3184
  border-color: var(--idp-border-color-extra-light);
3180
3185
  }
@@ -4624,12 +4629,12 @@
4624
4629
  color: var(--idp-text-color-light);
4625
4630
  }
4626
4631
 
4627
- .idp-radio--disabled.idp-radio--checked .idp-radio__inner {
4632
+ .idp-radio--disabled-checked .idp-radio__inner {
4628
4633
  background-color: #bfbfbf;
4629
4634
  border-color: #bfbfbf;
4630
4635
  }
4631
4636
 
4632
- .idp-radio--disabled.idp-radio--checked .idp-radio__inner::after {
4637
+ .idp-radio--disabled-checked .idp-radio__inner::after {
4633
4638
  background-color: #fff;
4634
4639
  }
4635
4640
 
@@ -4697,12 +4702,12 @@
4697
4702
  }
4698
4703
 
4699
4704
  /* 按钮类型时未选中的 radio 默认背景色 */
4700
- .idp-radio-group--button .idp-radio:not(.idp-radio--checked) {
4705
+ .idp-radio-group--button .idp-radio--unchecked {
4701
4706
  background-color: #e8e8e8;
4702
4707
  }
4703
4708
 
4704
4709
  /* 按钮类型时未选中的 radio 悬停背景色 */
4705
- .idp-radio-group--button .idp-radio:not(.idp-radio--disabled):not(.idp-radio--checked):hover {
4710
+ .idp-radio-group--button .idp-radio--unchecked:not(.idp-radio--disabled):hover {
4706
4711
  background-color: #f0f0f0;
4707
4712
  }
4708
4713
 
@@ -4727,7 +4732,7 @@
4727
4732
  cursor: not-allowed;
4728
4733
  }
4729
4734
 
4730
- .idp-radio-group--button .idp-radio--disabled.idp-radio--checked {
4735
+ .idp-radio-group--button .idp-radio--disabled-checked {
4731
4736
  color: #999;
4732
4737
  }
4733
4738
 
@@ -4761,17 +4766,17 @@
4761
4766
  }
4762
4767
 
4763
4768
  /* 大尺寸按钮样式 */
4764
- .idp-radio-group--button.idp-radio-group--large .idp-radio {
4769
+ .idp-radio-group--button-large .idp-radio {
4765
4770
  padding: 0 20px;
4766
4771
  height: 32px;
4767
4772
  font-size: 15px;
4768
4773
  }
4769
4774
 
4770
- .idp-radio-group--button.idp-radio-group--large {
4775
+ .idp-radio-group--button-large {
4771
4776
  padding: 4px;
4772
4777
  }
4773
4778
 
4774
- .idp-radio-group--button.idp-radio-group--large .idp-radio-group__indicator {
4779
+ .idp-radio-group--button-large .idp-radio-group__indicator {
4775
4780
  top: 4px;
4776
4781
  }
4777
4782
 
@@ -4798,17 +4803,17 @@
4798
4803
  }
4799
4804
 
4800
4805
  /* 中等尺寸按钮样式 */
4801
- .idp-radio-group--button.idp-radio-group--middle .idp-radio {
4806
+ .idp-radio-group--button-middle .idp-radio {
4802
4807
  padding: 0 16px;
4803
4808
  height: 28px;
4804
4809
  font-size: 14px;
4805
4810
  }
4806
4811
 
4807
- .idp-radio-group--button.idp-radio-group--middle {
4812
+ .idp-radio-group--button-middle {
4808
4813
  padding: 3px;
4809
4814
  }
4810
4815
 
4811
- .idp-radio-group--button.idp-radio-group--middle .idp-radio-group__indicator {
4816
+ .idp-radio-group--button-middle .idp-radio-group__indicator {
4812
4817
  top: 3px;
4813
4818
  }
4814
4819
 
@@ -4836,22 +4841,22 @@
4836
4841
  }
4837
4842
 
4838
4843
  /* 小尺寸按钮样式 */
4839
- .idp-radio-group--button.idp-radio-group--small .idp-radio {
4844
+ .idp-radio-group--button-small .idp-radio {
4840
4845
  padding: 0 12px;
4841
4846
  height: 22px;
4842
4847
  font-size: 12px;
4843
4848
  }
4844
4849
 
4845
- .idp-radio-group--button.idp-radio-group--small {
4850
+ .idp-radio-group--button-small {
4846
4851
  padding: 2px;
4847
4852
  border-radius: 4px;
4848
4853
  }
4849
4854
 
4850
- .idp-radio-group--button.idp-radio-group--small .idp-radio {
4855
+ .idp-radio-group--button-small .idp-radio {
4851
4856
  border-radius: 3px;
4852
4857
  }
4853
4858
 
4854
- .idp-radio-group--button.idp-radio-group--small .idp-radio-group__indicator {
4859
+ .idp-radio-group--button-small .idp-radio-group__indicator {
4855
4860
  top: 2px;
4856
4861
  border-radius: 3px;
4857
4862
  }
@@ -4960,31 +4965,31 @@
4960
4965
  box-shadow: var(--select-shadow-focus);
4961
4966
  }
4962
4967
 
4963
- .select-selector.select-open {
4968
+ .select-selector-open {
4964
4969
  border-color: var(--select-border-color-focus);
4965
4970
  box-shadow: var(--select-shadow-focus);
4966
4971
  }
4967
4972
 
4968
- .select-selector.select-disabled {
4973
+ .select-selector-disabled {
4969
4974
  cursor: not-allowed;
4970
4975
  opacity: var(--select-opacity-disabled);
4971
4976
  background: var(--idp-input-disabled-bg, #f5f5f5);
4972
4977
  }
4973
4978
 
4974
4979
  /* 尺寸样式 */
4975
- .select-selector.select-small {
4980
+ .select-selector-small {
4976
4981
  min-height: var(--select-height-small);
4977
4982
  padding: var(--select-padding-small);
4978
4983
  font-size: var(--select-font-size-small);
4979
4984
  }
4980
4985
 
4981
- .select-selector.select-default {
4986
+ .select-selector-default {
4982
4987
  min-height: var(--select-height-default);
4983
4988
  padding: var(--select-padding-default);
4984
4989
  font-size: var(--select-font-size-default);
4985
4990
  }
4986
4991
 
4987
- .select-selector.select-large {
4992
+ .select-selector-large {
4988
4993
  min-height: var(--select-height-large);
4989
4994
  padding: var(--select-padding-large);
4990
4995
  font-size: var(--select-font-size-large);
@@ -5010,7 +5015,7 @@
5010
5015
  overflow: hidden;
5011
5016
  }
5012
5017
 
5013
- .select-dropdown.select-open {
5018
+ .select-dropdown-open {
5014
5019
  opacity: 1;
5015
5020
  visibility: visible;
5016
5021
  transform: translateY(0);
@@ -5032,19 +5037,19 @@
5032
5037
  background: var(--select-bg-hover);
5033
5038
  }
5034
5039
 
5035
- .select-option.select-selected {
5040
+ .select-option-selected {
5036
5041
  background: var(--select-bg-selected);
5037
5042
  color: var(--select-primary-color);
5038
5043
  font-weight: 500;
5039
5044
  }
5040
5045
 
5041
- .select-option.select-disabled {
5046
+ .select-option-disabled {
5042
5047
  cursor: not-allowed;
5043
5048
  opacity: 0.6;
5044
5049
  color: var(--select-text-color-light);
5045
5050
  }
5046
5051
 
5047
- .select-option.select-disabled:hover {
5052
+ .select-option-disabled:hover {
5048
5053
  background: transparent;
5049
5054
  }
5050
5055
 
@@ -5145,7 +5150,7 @@
5145
5150
  transition: transform var(--select-transition-duration) ease;
5146
5151
  }
5147
5152
 
5148
- .select-arrow.select-open {
5153
+ .select-arrow-open {
5149
5154
  transform: rotate(180deg);
5150
5155
  }
5151
5156
 
@@ -5183,11 +5188,11 @@
5183
5188
  padding: 10px;
5184
5189
  }
5185
5190
 
5186
- .idp-pagination.align-center {
5191
+ .idp-pagination-align-center {
5187
5192
  justify-content: center;
5188
5193
  }
5189
5194
 
5190
- .idp-pagination.align-right {
5195
+ .idp-pagination-align-right {
5191
5196
  justify-content: flex-end;
5192
5197
  }
5193
5198
 
@@ -5319,16 +5324,16 @@
5319
5324
  }
5320
5325
 
5321
5326
  /* 小尺寸样式 */
5322
- .idp-pagination.mini .idp-pagination-item,
5323
- .idp-pagination.mini .idp-pagination-prev,
5324
- .idp-pagination.mini .idp-pagination-next {
5327
+ .idp-pagination-mini .idp-pagination-item,
5328
+ .idp-pagination-mini .idp-pagination-prev,
5329
+ .idp-pagination-mini .idp-pagination-next {
5325
5330
  min-width: var(--pagination-item-size-sm);
5326
5331
  height: var(--pagination-item-size-sm);
5327
5332
  line-height: calc(var(--pagination-item-size-sm) - 2px);
5328
5333
  font-size: 12px;
5329
5334
  }
5330
5335
 
5331
- .idp-pagination.mini .idp-pagination-ellipsis {
5336
+ .idp-pagination-mini .idp-pagination-ellipsis {
5332
5337
  min-width: var(--pagination-item-size-sm);
5333
5338
  height: var(--pagination-item-size-sm);
5334
5339
  line-height: calc(var(--pagination-item-size-sm) - 2px);
@@ -5379,7 +5384,7 @@
5379
5384
  background-color: rgba(24, 144, 255, 0.02);
5380
5385
  }
5381
5386
 
5382
- .idp-page-size-select-trigger.is-open {
5387
+ .idp-page-size-select-trigger-open {
5383
5388
  border-color: #1890ff;
5384
5389
  box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.15);
5385
5390
  background-color: rgba(24, 144, 255, 0.04);
@@ -5408,7 +5413,7 @@
5408
5413
  color: #40a9ff;
5409
5414
  }
5410
5415
 
5411
- .idp-page-size-select-trigger.is-open .idp-page-size-select-arrow {
5416
+ .idp-page-size-select-trigger-open .idp-page-size-select-arrow {
5412
5417
  transform: rotate(180deg);
5413
5418
  color: #1890ff;
5414
5419
  }
@@ -5442,7 +5447,7 @@
5442
5447
  }
5443
5448
 
5444
5449
  /* 打开状态 - 使用更优雅的贝塞尔曲线 */
5445
- .idp-page-size-select-dropdown.is-open {
5450
+ .idp-page-size-select-dropdown-open {
5446
5451
  animation: dropdownOpen 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
5447
5452
  }
5448
5453
 
@@ -5513,7 +5518,7 @@
5513
5518
  }
5514
5519
 
5515
5520
  /* 选中状态 - 更明显的视觉反馈 */
5516
- .idp-page-size-select-option.is-selected {
5521
+ .idp-page-size-select-option-selected {
5517
5522
  background-color: rgba(24, 144, 255, 0.12);
5518
5523
  color: #1890ff;
5519
5524
  font-weight: 500;
@@ -5606,7 +5611,7 @@
5606
5611
  transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
5607
5612
  }
5608
5613
 
5609
- .idp-tooltip-visible {
5614
+ .idp-tooltip.is-visible {
5610
5615
  opacity: 1;
5611
5616
  transform: scale(1);
5612
5617
  }
@@ -5617,7 +5622,7 @@
5617
5622
  transform: scale(0.95) translateY(8px);
5618
5623
  }
5619
5624
 
5620
- .idp-tooltip-top.idp-tooltip-visible {
5625
+ .idp-tooltip-top.is-visible {
5621
5626
  transform: scale(1) translateY(0);
5622
5627
  }
5623
5628
 
@@ -5626,7 +5631,7 @@
5626
5631
  transform: scale(0.95) translateY(-8px);
5627
5632
  }
5628
5633
 
5629
- .idp-tooltip-bottom.idp-tooltip-visible {
5634
+ .idp-tooltip-bottom.is-visible {
5630
5635
  transform: scale(1) translateY(0);
5631
5636
  }
5632
5637
 
@@ -5635,7 +5640,7 @@
5635
5640
  transform: scale(0.95) translateX(8px);
5636
5641
  }
5637
5642
 
5638
- .idp-tooltip-left.idp-tooltip-visible {
5643
+ .idp-tooltip-left.is-visible {
5639
5644
  transform: scale(1) translateX(0);
5640
5645
  }
5641
5646
 
@@ -5644,7 +5649,7 @@
5644
5649
  transform: scale(0.95) translateX(-8px);
5645
5650
  }
5646
5651
 
5647
- .idp-tooltip-right.idp-tooltip-visible {
5652
+ .idp-tooltip-right.is-visible {
5648
5653
  transform: scale(1) translateX(0);
5649
5654
  }
5650
5655
 
@@ -5713,7 +5718,7 @@
5713
5718
  box-shadow: var(--idp-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.15));
5714
5719
  }
5715
5720
 
5716
- .custom-table-container.bordered {
5721
+ .custom-table-bordered {
5717
5722
  border-radius: var(--idp-border-radius-lg, 8px);
5718
5723
  box-shadow: var(--idp-shadow-extra-light, 0 2px 8px rgba(0, 0, 0, 0.08));
5719
5724
  overflow: hidden;
@@ -5735,9 +5740,12 @@
5735
5740
  contain: layout style paint;
5736
5741
  /* 禁用滚动锚定防止闪动 */
5737
5742
  overflow-anchor: none;
5743
+ /* Firefox 隐藏滚动条 */
5744
+ scrollbar-width: none;
5745
+ -ms-overflow-style: none;
5738
5746
  }
5739
5747
 
5740
- /* 隐藏表头滚动条 */
5748
+ /* 隐藏表头滚动条 - Webkit */
5741
5749
  .custom-table-header::-webkit-scrollbar {
5742
5750
  display: none;
5743
5751
  }
@@ -5784,6 +5792,13 @@
5784
5792
  contain: layout style paint;
5785
5793
  /* 禁用滚动锚定防止闪动 */
5786
5794
  overflow-anchor: none;
5795
+ /* 修复固定列时可能出现的额外滚动条问题 */
5796
+ position: relative;
5797
+ }
5798
+
5799
+ /* 确保表体内容不会撑出额外空间 */
5800
+ .custom-table-body > table {
5801
+ position: relative;
5787
5802
  }
5788
5803
 
5789
5804
  /* 确保表格不会撑破容器 */
@@ -5792,6 +5807,8 @@
5792
5807
  width: 100%;
5793
5808
  table-layout: fixed;
5794
5809
  min-width: 0;
5810
+ /* 修复固定列时表格宽度导致的滚动问题 */
5811
+ max-width: none;
5795
5812
  }
5796
5813
 
5797
5814
  .custom-table {
@@ -5802,25 +5819,25 @@
5802
5819
  }
5803
5820
 
5804
5821
  /* Bordered 模式样式 */
5805
- .custom-table.bordered th,
5806
- .custom-table.bordered td {
5822
+ .custom-table-bordered-body th,
5823
+ .custom-table-bordered-body td {
5807
5824
  border: 1px solid var(--idp-table-border-light, #f0f0f0);
5808
5825
  }
5809
5826
 
5810
- .custom-table.bordered th {
5827
+ .custom-table-bordered-body th {
5811
5828
  background-color: var(--idp-table-header-bg, #fafafa) !important;
5812
5829
  font-weight: 600;
5813
5830
  }
5814
5831
 
5815
- .custom-table.bordered tbody tr {
5832
+ .custom-table-bordered-body tbody tr {
5816
5833
  transition: background-color var(--idp-transition-duration, 0.2s) var(--idp-transition-timing-function, ease-in-out);
5817
5834
  }
5818
5835
 
5819
- .custom-table.bordered tbody tr:hover td {
5836
+ .custom-table-bordered-body tbody tr:hover td {
5820
5837
  background-color: var(--idp-table-row-hover-bg, #fafafa);
5821
5838
  }
5822
5839
 
5823
- .custom-table.bordered tbody tr:last-child td {
5840
+ .custom-table-bordered-body tbody tr:last-child td {
5824
5841
  border-bottom: 1px solid var(--idp-table-border-light, #f0f0f0);
5825
5842
  }
5826
5843
 
@@ -5845,11 +5862,11 @@
5845
5862
  }
5846
5863
 
5847
5864
  /* 表头分隔线样式(非 bordered 模式) */
5848
- .custom-table:not(.bordered) thead th {
5865
+ .custom-table-header-separator thead th {
5849
5866
  position: relative;
5850
5867
  }
5851
5868
 
5852
- .custom-table:not(.bordered) thead th:not(:last-child)::after {
5869
+ .custom-table-header-separator thead th:not(:last-child)::after {
5853
5870
  content: '';
5854
5871
  position: absolute;
5855
5872
  top: 50%;
@@ -5860,7 +5877,7 @@
5860
5877
  transform: translateY(-50%);
5861
5878
  }
5862
5879
 
5863
- .custom-table:not(.bordered) thead th[style*="position: sticky"][style*="right"]::before {
5880
+ .custom-table-header-separator thead th[style*="position: sticky"][style*="right"]::before {
5864
5881
  content: '';
5865
5882
  position: absolute;
5866
5883
  top: 50%;
@@ -5871,7 +5888,7 @@
5871
5888
  transform: translateY(-50%);
5872
5889
  }
5873
5890
 
5874
- .custom-table:not(.bordered) thead th:not(:last-child):has(+ th[style*="position: sticky"][style*="right"])::after {
5891
+ .custom-table-header-separator thead th:not(:last-child):has(+ th[style*="position: sticky"][style*="right"])::after {
5875
5892
  display: none;
5876
5893
  }
5877
5894
 
@@ -5922,11 +5939,15 @@
5922
5939
  transition: none !important;
5923
5940
  /* 禁用滚动锚定 */
5924
5941
  overflow-anchor: none;
5942
+ /* 防止固定列导致额外的滚动空间 */
5943
+ position: sticky !important;
5925
5944
  }
5926
5945
 
5927
5946
  .custom-table th[style*="right: 0"],
5928
5947
  .custom-table td[style*="right: 0"] {
5929
5948
  box-shadow: -1px 0 0 0 var(--idp-table-border-light, #f0f0f0);
5949
+ /* 确保右侧固定列不会超出表格边界 */
5950
+ right: 0 !important;
5930
5951
  }
5931
5952
 
5932
5953
  /* 修复右侧固定列样式 */
@@ -5941,6 +5962,8 @@
5941
5962
  contain: layout style paint;
5942
5963
  /* 移除transition避免快速滚动时的闪动 */
5943
5964
  transition: none !important;
5965
+ /* 防止右侧固定列造成水平滚动 */
5966
+ right: 0 !important;
5944
5967
  }
5945
5968
 
5946
5969
  /* 修复表头固定列样式 */
@@ -6239,7 +6262,7 @@
6239
6262
  }
6240
6263
 
6241
6264
  /* 拖拽时的行样式 */
6242
- .idp-table-sortable-row.is-dragging {
6265
+ .idp-table-sortable-row-dragging {
6243
6266
  background-color: var(--idp-table-bg, #fff) !important;
6244
6267
  box-shadow: var(--idp-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.15));
6245
6268
  z-index: 100;
@@ -6247,17 +6270,17 @@
6247
6270
  }
6248
6271
 
6249
6272
  /* 拖拽时 td 样式与默认 tbody td 保持一致 */
6250
- .idp-table-sortable-row.is-dragging td {
6273
+ .idp-table-sortable-row-dragging td {
6251
6274
  background-color: var(--idp-table-bg, #fff) !important;
6252
6275
  border-bottom: 1px solid var(--idp-table-border-light, #f0f0f0);
6253
6276
  }
6254
6277
 
6255
6278
  /* 拖拽时保持固定列阴影效果 */
6256
- .idp-table-sortable-row.is-dragging td.idp-table-fixed-left-shadow {
6279
+ .idp-table-sortable-row-dragging td.idp-table-fixed-left-shadow {
6257
6280
  box-shadow: inset -3px 0px 12px -10px rgba(24, 144, 255, 0.24) !important;
6258
6281
  }
6259
6282
 
6260
- .idp-table-sortable-row.is-dragging td.idp-table-fixed-right-shadow {
6283
+ .idp-table-sortable-row-dragging td.idp-table-fixed-right-shadow {
6261
6284
  box-shadow: inset 3px 0px 12px -10px rgba(24, 144, 255, 0.24) !important;
6262
6285
  }
6263
6286
 
@@ -6271,7 +6294,7 @@
6271
6294
  }
6272
6295
 
6273
6296
  /* 拖拽容器样式 */
6274
- .custom-table-container.draggable .custom-table tbody tr {
6297
+ .custom-table-draggable .custom-table tbody tr {
6275
6298
  position: relative;
6276
6299
  }
6277
6300
 
@@ -6285,7 +6308,7 @@
6285
6308
  }
6286
6309
 
6287
6310
  /* 拖拽遮罩层样式 */
6288
- .custom-table-container.draggable {
6311
+ .custom-table-draggable {
6289
6312
  -webkit-user-select: none;
6290
6313
  -moz-user-select: none;
6291
6314
  user-select: none;
@@ -6302,16 +6325,16 @@
6302
6325
  }
6303
6326
 
6304
6327
  /* 禁用文本选择以避免拖拽时的文本选中 */
6305
- .custom-table-container.draggable .custom-table {
6328
+ .custom-table-draggable .custom-table {
6306
6329
  -webkit-user-select: none;
6307
6330
  -moz-user-select: none;
6308
6331
  user-select: none;
6309
6332
  }
6310
6333
 
6311
6334
  /* 允许单元格内的输入框和按钮正常选择 */
6312
- .custom-table-container.draggable .custom-table input,
6313
- .custom-table-container.draggable .custom-table button,
6314
- .custom-table-container.draggable .custom-table textarea {
6335
+ .custom-table-draggable .custom-table input,
6336
+ .custom-table-draggable .custom-table button,
6337
+ .custom-table-draggable .custom-table textarea {
6315
6338
  -webkit-user-select: text;
6316
6339
  -moz-user-select: text;
6317
6340
  user-select: text;
@@ -6337,7 +6360,7 @@
6337
6360
  }
6338
6361
 
6339
6362
  /* 拖拽时的边框高亮 */
6340
- .idp-table-sortable-row.is-dragging {
6363
+ .idp-table-sortable-row.idp-table-sortable-row-dragging {
6341
6364
  box-shadow: var(--idp-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.15));
6342
6365
  }
6343
6366
 
@@ -7212,8 +7235,8 @@ html {
7212
7235
  position: relative;
7213
7236
  }
7214
7237
 
7215
- /* 折叠状态下菜单项宽度 */
7216
- .idp-menu.collapsed .idp-menu-item-wrapper {
7238
+ /* 折叠状态下菜单项宽度 - 使用组合类名 */
7239
+ .idp-menu-item-wrapper-collapsed {
7217
7240
  width: 60px;
7218
7241
  }
7219
7242
 
@@ -7257,110 +7280,126 @@ html {
7257
7280
  }
7258
7281
 
7259
7282
  /* ============================================
7260
- Light 主题样式
7283
+ Light 主题样式 - 使用组合类名
7261
7284
  ============================================ */
7262
- .idp-menu-item.light {
7285
+ .idp-menu-item-light {
7263
7286
  color: var(--idp-text-color, rgba(0, 0, 0, 0.85));
7264
7287
  }
7265
7288
 
7266
- .idp-menu-item.light:hover:not(.disabled) {
7289
+ .idp-menu-item-light:hover:not(.idp-menu-item-disabled) {
7267
7290
  background-color: var(--idp-primary-light-color, rgba(24, 144, 255, 0.06));
7268
7291
  color: var(--idp-primary-color, #1890ff);
7269
7292
  }
7270
7293
 
7271
- .idp-menu-item.light.selected {
7294
+ .idp-menu-item-light-selected {
7272
7295
  background-color: var(--idp-primary-light-color, rgba(24, 144, 255, 0.12));
7273
7296
  color: var(--idp-primary-color, #1890ff);
7274
- box-shadow: inset 3px 0 0 var(--idp-primary-color, #1890ff);
7275
7297
  font-weight: 600;
7276
7298
  }
7277
7299
 
7278
- .idp-menu-item.light.selected:hover {
7300
+ /* 垂直/内联模式下的选中样式 - 带左侧阴影 */
7301
+ .idp-menu-item-light-selected-vertical {
7302
+ box-shadow: inset 3px 0 0 var(--idp-primary-color, #1890ff);
7303
+ }
7304
+
7305
+ .idp-menu-item-light-selected:hover {
7279
7306
  background-color: var(--idp-primary-light-color, rgba(24, 144, 255, 0.18));
7280
7307
  }
7281
7308
 
7282
- .idp-menu-item.light .idp-menu-item-arrow {
7309
+ .idp-menu-item-light-selected-vertical:hover {
7310
+ background-color: var(--idp-primary-light-color, rgba(24, 144, 255, 0.18));
7311
+ }
7312
+
7313
+ .idp-menu-item-light .idp-menu-item-arrow {
7283
7314
  color: var(--idp-text-color-tertiary, rgba(0, 0, 0, 0.45));
7284
7315
  }
7285
7316
 
7286
- .idp-menu-item.light:hover:not(.disabled) .idp-menu-item-arrow {
7317
+ .idp-menu-item-light:hover:not(.idp-menu-item-disabled) .idp-menu-item-arrow {
7287
7318
  color: var(--idp-primary-color, #1890ff);
7288
7319
  }
7289
7320
 
7290
7321
  /* ============================================
7291
- Dark 主题样式
7322
+ Dark 主题样式 - 使用组合类名
7292
7323
  ============================================ */
7293
7324
  .idp-menu-dark {
7294
7325
  background: transparent;
7295
7326
  }
7296
7327
 
7297
- .idp-menu-item.dark {
7328
+ .idp-menu-item-dark {
7298
7329
  color: rgba(255, 255, 255, 0.85);
7299
7330
  }
7300
7331
 
7301
- .idp-menu-item.dark:hover:not(.disabled) {
7332
+ .idp-menu-item-dark:hover:not(.idp-menu-item-disabled) {
7302
7333
  background-color: rgba(255, 255, 255, 0.08);
7303
7334
  color: #fff;
7304
7335
  }
7305
7336
 
7306
- .idp-menu-item.dark.selected {
7337
+ .idp-menu-item-dark-selected {
7307
7338
  background-color: rgba(24, 144, 255, 0.25);
7308
7339
  color: #fff;
7309
- box-shadow: inset 3px 0 0 var(--idp-primary-color, #1890ff);
7310
7340
  font-weight: 600;
7311
7341
  }
7312
7342
 
7313
- .idp-menu-item.dark.selected:hover {
7343
+ /* 垂直/内联模式下的选中样式 - 带左侧阴影 */
7344
+ .idp-menu-item-dark-selected-vertical {
7345
+ box-shadow: inset 3px 0 0 var(--idp-primary-color, #1890ff);
7346
+ }
7347
+
7348
+ .idp-menu-item-dark-selected:hover {
7314
7349
  background-color: rgba(24, 144, 255, 0.35);
7315
7350
  }
7316
7351
 
7317
- .idp-menu-item.dark .idp-menu-item-arrow {
7352
+ .idp-menu-item-dark-selected-vertical:hover {
7353
+ background-color: rgba(24, 144, 255, 0.35);
7354
+ }
7355
+
7356
+ .idp-menu-item-dark .idp-menu-item-arrow {
7318
7357
  color: rgba(255, 255, 255, 0.45);
7319
7358
  }
7320
7359
 
7321
- .idp-menu-item.dark:hover:not(.disabled) .idp-menu-item-arrow {
7360
+ .idp-menu-item-dark:hover:not(.idp-menu-item-disabled) .idp-menu-item-arrow {
7322
7361
  color: #fff;
7323
7362
  }
7324
7363
 
7325
7364
  /* ============================================
7326
- Dark 主题子菜单样式
7365
+ Dark 主题子菜单样式 - 使用组合类名
7327
7366
  ============================================ */
7328
7367
  /* 水平模式弹出菜单 - Dark 主题 */
7329
- .idp-menu-dark .idp-menu-submenu.horizontal-popup,
7330
- .idp-menu-dark .idp-menu-submenu.horizontal-popup .idp-menu-submenu {
7368
+ .idp-menu-submenu-horizontal-popup-dark,
7369
+ .idp-menu-submenu-horizontal-popup-dark .idp-menu-submenu-horizontal-popup-dark {
7331
7370
  background: linear-gradient(135deg, #001529 0%, #002140 100%);
7332
7371
  border: 1px solid #303030;
7333
7372
  }
7334
7373
 
7335
7374
  /* 垂直模式子菜单 - Dark 主题 */
7336
- .idp-menu-dark .idp-menu-submenu.vertical {
7375
+ .idp-menu-submenu-vertical-dark {
7337
7376
  background-color: rgba(255, 255, 255, 0.04);
7338
7377
  }
7339
7378
 
7340
7379
  /* 内联模式子菜单 - Dark 主题 */
7341
- .idp-menu-dark .idp-menu-submenu.inline {
7380
+ .idp-menu-submenu-inline-dark {
7342
7381
  background-color: rgba(255, 255, 255, 0.04);
7343
7382
  }
7344
7383
 
7345
7384
  /* Dark 主题下子菜单中的菜单项 */
7346
- .idp-menu-dark .idp-menu-submenu .idp-menu-item.dark {
7385
+ .idp-menu-submenu-dark .idp-menu-item-dark {
7347
7386
  color: rgba(255, 255, 255, 0.85);
7348
7387
  }
7349
7388
 
7350
- .idp-menu-dark .idp-menu-submenu .idp-menu-item.dark:hover:not(.disabled) {
7389
+ .idp-menu-submenu-dark .idp-menu-item-dark:hover:not(.idp-menu-item-disabled) {
7351
7390
  background-color: rgba(255, 255, 255, 0.08);
7352
7391
  color: #fff;
7353
7392
  }
7354
7393
 
7355
- .idp-menu-dark .idp-menu-submenu .idp-menu-item.dark.selected {
7394
+ .idp-menu-submenu-dark .idp-menu-item-dark-selected {
7356
7395
  background-color: rgba(24, 144, 255, 0.25);
7357
7396
  color: #fff;
7358
7397
  }
7359
7398
 
7360
7399
  /* ============================================
7361
- 禁用状态
7400
+ 禁用状态 - 使用单一类名
7362
7401
  ============================================ */
7363
- .idp-menu-item.disabled {
7402
+ .idp-menu-item-disabled {
7364
7403
  cursor: not-allowed;
7365
7404
  color: var(--idp-text-color-light, #bfbfbf);
7366
7405
  background-color: transparent;
@@ -7379,7 +7418,7 @@ html {
7379
7418
  }
7380
7419
 
7381
7420
  /* ============================================
7382
- 菜单项图标
7421
+ 菜单项图标 - 使用组合类名
7383
7422
  ============================================ */
7384
7423
  .idp-menu-item-icon {
7385
7424
  display: flex;
@@ -7391,7 +7430,7 @@ html {
7391
7430
  transition: all var(--idp-transition-duration, 0.2s) ease;
7392
7431
  }
7393
7432
 
7394
- .idp-menu-item-icon.collapsed {
7433
+ .idp-menu-item-icon-collapsed {
7395
7434
  margin-right: 0;
7396
7435
  }
7397
7436
 
@@ -7440,7 +7479,7 @@ html {
7440
7479
  }
7441
7480
 
7442
7481
  /* ============================================
7443
- 折叠状态下的缩略标签
7482
+ 折叠状态下的缩略标签 - 使用组合类名
7444
7483
  ============================================ */
7445
7484
  .idp-menu-item-collapsed-label {
7446
7485
  width: 24px;
@@ -7467,34 +7506,34 @@ html {
7467
7506
  }
7468
7507
 
7469
7508
  /* Dark 主题下折叠标签 */
7470
- .idp-menu-item.dark .idp-menu-item-collapsed-label {
7509
+ .idp-menu-item-dark .idp-menu-item-collapsed-label {
7471
7510
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.75) 100%);
7472
7511
  color: var(--idp-primary-color, #1890ff);
7473
7512
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
7474
7513
  }
7475
7514
 
7476
- .idp-menu-item.dark:hover .idp-menu-item-collapsed-label {
7515
+ .idp-menu-item-dark:hover .idp-menu-item-collapsed-label {
7477
7516
  background: linear-gradient(135deg, #fff 0%, rgba(255, 255, 255, 0.9) 100%);
7478
7517
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
7479
7518
  }
7480
7519
 
7481
7520
  /* 选中状态下的折叠标签 */
7482
- .idp-menu-item.selected .idp-menu-item-collapsed-label {
7521
+ .idp-menu-item-selected .idp-menu-item-collapsed-label {
7483
7522
  box-shadow: 0 2px 6px rgba(24, 144, 255, 0.4);
7484
7523
  }
7485
7524
 
7486
- .idp-menu-item.selected:hover .idp-menu-item-collapsed-label {
7525
+ .idp-menu-item-selected:hover .idp-menu-item-collapsed-label {
7487
7526
  box-shadow: 0 3px 8px rgba(24, 144, 255, 0.5);
7488
7527
  }
7489
7528
 
7490
7529
  /* Dark 主题选中状态下的折叠标签 */
7491
- .idp-menu-item.dark.selected .idp-menu-item-collapsed-label {
7530
+ .idp-menu-item-dark-selected .idp-menu-item-collapsed-label {
7492
7531
  background: linear-gradient(135deg, #fff 0%, #fff 100%);
7493
7532
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
7494
7533
  }
7495
7534
 
7496
7535
  /* ============================================
7497
- 菜单项箭头
7536
+ 菜单项箭头 - 使用组合类名
7498
7537
  ============================================ */
7499
7538
  .idp-menu-item-arrow {
7500
7539
  display: flex;
@@ -7504,15 +7543,15 @@ html {
7504
7543
  flex-shrink: 0;
7505
7544
  }
7506
7545
 
7507
- .idp-menu-item-arrow.open {
7546
+ .idp-menu-item-arrow-open {
7508
7547
  transform: rotate(180deg);
7509
7548
  }
7510
7549
 
7511
- .idp-menu-item-arrow.horizontal {
7550
+ .idp-menu-item-arrow-horizontal {
7512
7551
  transform: rotate(-90deg);
7513
7552
  }
7514
7553
 
7515
- .idp-menu-item-arrow.horizontal.open {
7554
+ .idp-menu-item-arrow-horizontal-open {
7516
7555
  transform: rotate(0deg);
7517
7556
  }
7518
7557
 
@@ -7554,29 +7593,28 @@ html {
7554
7593
  min-width: 200px;
7555
7594
  }
7556
7595
 
7557
- /* 扁平模式下子菜单容器始终可见 */
7558
- .idp-menu-submenu-wrapper.vertical-flat {
7596
+ /* 扁平模式下子菜单容器始终可见 - 使用组合类名 */
7597
+ .idp-menu-submenu-wrapper-vertical-flat {
7559
7598
  position: relative;
7560
7599
  width: 100%;
7561
7600
  }
7562
7601
 
7563
7602
  /* 扁平模式子菜单 - 无展开/关闭动画,直接显示 */
7564
- .idp-menu-submenu.vertical-flat {
7603
+ .idp-menu-submenu-vertical-flat {
7565
7604
  overflow: visible;
7566
7605
  background-color: transparent;
7567
7606
  display: block;
7568
7607
  opacity: 1;
7569
7608
  width: 100%;
7570
- /* margin-left: 8px; */
7571
7609
  }
7572
7610
 
7573
- .idp-menu-submenu.vertical-flat > .idp-menu-submenu-content {
7611
+ .idp-menu-submenu-vertical-flat > .idp-menu-submenu-content {
7574
7612
  overflow: visible;
7575
7613
  width: 100%;
7576
7614
  }
7577
7615
 
7578
7616
  /* 扁平模式子菜单项样式 */
7579
- .idp-menu-submenu.vertical-flat .idp-menu-item {
7617
+ .idp-menu-submenu-vertical-flat .idp-menu-item {
7580
7618
  margin: 2px 0;
7581
7619
  height: 36px;
7582
7620
  opacity: 1;
@@ -7590,10 +7628,10 @@ html {
7590
7628
  }
7591
7629
 
7592
7630
  /* ============================================
7593
- 扁平模式下祖节点(有子菜单的父级)样式
7631
+ 扁平模式下祖节点(有子菜单的父级)样式 - 使用组合类名
7594
7632
  ============================================ */
7595
7633
  /* 祖节点不可选中 - 移除选中效果 */
7596
- .idp-menu-vertical-flat .idp-menu-item.has-children {
7634
+ .idp-menu-vertical-flat .idp-menu-item-has-children {
7597
7635
  cursor: default;
7598
7636
  pointer-events: none;
7599
7637
  font-weight: 600;
@@ -7601,29 +7639,29 @@ html {
7601
7639
  border-bottom: 1px solid #e5e5e5ab;
7602
7640
  }
7603
7641
 
7604
- .idp-menu-vertical-flat .idp-menu-item.has-children:hover {
7642
+ .idp-menu-vertical-flat .idp-menu-item-has-children:hover {
7605
7643
  background-color: transparent;
7606
7644
  color: var(--idp-text-color, rgba(0, 0, 0, 0.85));
7607
7645
  }
7608
7646
 
7609
7647
  /* Light 主题 - 扁平模式下祖节点 hover 时不改变背景色和颜色 */
7610
- .idp-menu-vertical-flat .idp-menu-item.light.has-children:hover:not(.disabled) {
7648
+ .idp-menu-vertical-flat .idp-menu-item-light-has-children:hover:not(.idp-menu-item-disabled) {
7611
7649
  background-color: transparent;
7612
7650
  color: var(--idp-text-color, rgba(0, 0, 0, 0.85));
7613
7651
  }
7614
7652
 
7615
7653
  /* 同时覆盖 Light 主题下箭头颜色 */
7616
- .idp-menu-vertical-flat .idp-menu-item.light.has-children:hover:not(.disabled) .idp-menu-item-arrow {
7654
+ .idp-menu-vertical-flat .idp-menu-item-light-has-children:hover:not(.idp-menu-item-disabled) .idp-menu-item-arrow {
7617
7655
  color: var(--idp-text-color-tertiary, rgba(0, 0, 0, 0.45));
7618
7656
  }
7619
7657
 
7620
7658
  /* 祖节点内容区域可交互(用于显示) */
7621
- .idp-menu-vertical-flat .idp-menu-item.has-children > .idp-menu-item-content {
7659
+ .idp-menu-vertical-flat .idp-menu-item-has-children > .idp-menu-item-content {
7622
7660
  pointer-events: auto;
7623
7661
  }
7624
7662
 
7625
7663
  /* 祖节点下方添加分隔线 */
7626
- .idp-menu-vertical-flat .idp-menu-item.has-children::after {
7664
+ .idp-menu-vertical-flat .idp-menu-item-has-children::after {
7627
7665
  content: '';
7628
7666
  position: absolute;
7629
7667
  bottom: 0;
@@ -7639,8 +7677,8 @@ html {
7639
7677
  );
7640
7678
  }
7641
7679
 
7642
- /* 扁平模式下子菜单容器 - 添加层级背景和间距 */
7643
- .idp-menu-submenu-wrapper.vertical-flat {
7680
+ /* 扁平模式下子菜单容器 - 添加层级背景和间距 - 使用组合类名 */
7681
+ .idp-menu-submenu-wrapper-vertical-flat-container {
7644
7682
  position: relative;
7645
7683
  width: 100%;
7646
7684
  margin-bottom: 8px;
@@ -7649,28 +7687,28 @@ html {
7649
7687
  }
7650
7688
 
7651
7689
  /* 最后一个子菜单容器不需要下边框 */
7652
- .idp-menu-submenu-wrapper.vertical-flat:last-child {
7690
+ .idp-menu-submenu-wrapper-vertical-flat-container:last-child {
7653
7691
  border-bottom: none;
7654
7692
  margin-bottom: 0;
7655
7693
  padding-bottom: 0;
7656
7694
  }
7657
7695
 
7658
7696
  /* 扁平模式下子菜单项缩进 */
7659
- .idp-menu-submenu.vertical-flat .idp-menu-item {
7697
+ .idp-menu-submenu-vertical-flat .idp-menu-item {
7660
7698
  padding-left: 24px;
7661
7699
  }
7662
7700
 
7663
7701
  /* 扁平模式下多级嵌套缩进 */
7664
- .idp-menu-submenu.vertical-flat .idp-menu-submenu.vertical-flat .idp-menu-item {
7702
+ .idp-menu-submenu-vertical-flat .idp-menu-submenu-vertical-flat .idp-menu-item {
7665
7703
  padding-left: 40px;
7666
7704
  }
7667
7705
 
7668
- .idp-menu-submenu.vertical-flat .idp-menu-submenu.vertical-flat .idp-menu-submenu.vertical-flat .idp-menu-item {
7706
+ .idp-menu-submenu-vertical-flat .idp-menu-submenu-vertical-flat .idp-menu-submenu-vertical-flat .idp-menu-item {
7669
7707
  padding-left: 56px;
7670
7708
  }
7671
7709
 
7672
7710
  /* 扁平模式下嵌套子菜单也需要占满宽度 */
7673
- .idp-menu-submenu.vertical-flat .idp-menu-submenu-wrapper.vertical-flat {
7711
+ .idp-menu-submenu-vertical-flat .idp-menu-submenu-wrapper-vertical-flat {
7674
7712
  width: 100%;
7675
7713
  margin-bottom: 0;
7676
7714
  padding-bottom: 0;
@@ -7678,39 +7716,39 @@ html {
7678
7716
  }
7679
7717
 
7680
7718
  /* ============================================
7681
- Dark 主题下扁平模式样式
7719
+ Dark 主题下扁平模式样式 - 使用组合类名
7682
7720
  ============================================ */
7683
- .idp-menu-dark.idp-menu-vertical-flat {
7721
+ .idp-menu-dark-vertical-flat {
7684
7722
  background: transparent;
7685
7723
  }
7686
7724
 
7687
- .idp-menu-dark .idp-menu-submenu.vertical-flat {
7725
+ .idp-menu-dark .idp-menu-submenu-vertical-flat {
7688
7726
  background-color: transparent;
7689
7727
  }
7690
7728
 
7691
7729
  /* Dark 主题下祖节点样式 */
7692
- .idp-menu-dark .idp-menu-vertical-flat .idp-menu-item.has-children {
7730
+ .idp-menu-dark-vertical-flat .idp-menu-item-has-children {
7693
7731
  color: rgba(255, 255, 255, 0.95);
7694
7732
  }
7695
7733
 
7696
- .idp-menu-dark .idp-menu-vertical-flat .idp-menu-item.has-children:hover {
7734
+ .idp-menu-dark-vertical-flat .idp-menu-item-has-children:hover {
7697
7735
  background-color: transparent;
7698
7736
  color: rgba(255, 255, 255, 0.95);
7699
7737
  }
7700
7738
 
7701
7739
  /* Dark 主题 - 扁平模式下祖节点 hover 时不改变背景色和颜色 */
7702
- .idp-menu-dark .idp-menu-vertical-flat .idp-menu-item.dark.has-children:hover:not(.disabled) {
7740
+ .idp-menu-dark-vertical-flat .idp-menu-item-dark-has-children:hover:not(.idp-menu-item-disabled) {
7703
7741
  background-color: transparent;
7704
7742
  color: rgba(255, 255, 255, 0.95);
7705
7743
  }
7706
7744
 
7707
7745
  /* 同时覆盖 Dark 主题下箭头颜色 */
7708
- .idp-menu-dark .idp-menu-vertical-flat .idp-menu-item.dark.has-children:hover:not(.disabled) .idp-menu-item-arrow {
7746
+ .idp-menu-dark-vertical-flat .idp-menu-item-dark-has-children:hover:not(.idp-menu-item-disabled) .idp-menu-item-arrow {
7709
7747
  color: rgba(255, 255, 255, 0.45);
7710
7748
  }
7711
7749
 
7712
7750
  /* Dark 主题下分隔线 */
7713
- .idp-menu-dark .idp-menu-vertical-flat .idp-menu-item.has-children::after {
7751
+ .idp-menu-dark-vertical-flat .idp-menu-item-has-children::after {
7714
7752
  background: linear-gradient(
7715
7753
  90deg,
7716
7754
  transparent 0%,
@@ -7720,12 +7758,12 @@ html {
7720
7758
  );
7721
7759
  }
7722
7760
 
7723
- .idp-menu-dark .idp-menu-submenu-wrapper.vertical-flat {
7761
+ .idp-menu-dark .idp-menu-submenu-wrapper-vertical-flat {
7724
7762
  border-bottom-color: rgba(255, 255, 255, 0.1);
7725
7763
  }
7726
7764
 
7727
7765
  /* ============================================
7728
- 垂直模式 (Vertical)
7766
+ 垂直模式 (Vertical) - 使用组合类名
7729
7767
  ============================================ */
7730
7768
  .idp-menu-vertical {
7731
7769
  display: flex;
@@ -7734,31 +7772,31 @@ html {
7734
7772
  min-width: 200px;
7735
7773
  }
7736
7774
 
7737
- .idp-menu-vertical.collapsed,
7738
- .idp-menu-vertical-flat.collapsed {
7775
+ .idp-menu-vertical-collapsed,
7776
+ .idp-menu-vertical-flat-collapsed {
7739
7777
  min-width: 56px;
7740
7778
  width: 56px;
7741
7779
  }
7742
7780
 
7743
- .idp-menu-vertical .idp-menu-item.root {
7781
+ .idp-menu-vertical .idp-menu-item-root {
7744
7782
  justify-content: center;
7745
7783
  }
7746
7784
 
7747
- .idp-menu-vertical.collapsed .idp-menu-item.root,
7748
- .idp-menu-vertical-flat.collapsed .idp-menu-item.root {
7785
+ .idp-menu-vertical-collapsed .idp-menu-item-root,
7786
+ .idp-menu-vertical-flat-collapsed .idp-menu-item-root {
7749
7787
  padding: 0;
7750
7788
  justify-content: center;
7751
7789
  }
7752
7790
 
7753
- .idp-menu-vertical.collapsed .idp-menu-item-content,
7754
- .idp-menu-vertical-flat.collapsed .idp-menu-item-content {
7791
+ .idp-menu-vertical-collapsed .idp-menu-item-content,
7792
+ .idp-menu-vertical-flat-collapsed .idp-menu-item-content {
7755
7793
  justify-content: center;
7756
7794
  }
7757
7795
 
7758
- .idp-menu-vertical.collapsed .idp-menu-item-label,
7759
- .idp-menu-vertical.collapsed .idp-menu-item-arrow,
7760
- .idp-menu-vertical-flat.collapsed .idp-menu-item-label,
7761
- .idp-menu-vertical-flat.collapsed .idp-menu-item-arrow {
7796
+ .idp-menu-vertical-collapsed .idp-menu-item-label,
7797
+ .idp-menu-vertical-collapsed .idp-menu-item-arrow,
7798
+ .idp-menu-vertical-flat-collapsed .idp-menu-item-label,
7799
+ .idp-menu-vertical-flat-collapsed .idp-menu-item-arrow {
7762
7800
  display: none;
7763
7801
  }
7764
7802
 
@@ -7767,12 +7805,12 @@ html {
7767
7805
  position: relative;
7768
7806
  }
7769
7807
 
7770
- .idp-menu-submenu-wrapper.horizontal {
7808
+ .idp-menu-submenu-wrapper-horizontal {
7771
7809
  position: static;
7772
7810
  }
7773
7811
 
7774
- /* 垂直模式子菜单 */
7775
- .idp-menu-submenu.vertical {
7812
+ /* 垂直模式子菜单 - 使用组合类名 */
7813
+ .idp-menu-submenu-vertical {
7776
7814
  overflow: hidden;
7777
7815
  background-color: #f5f5f559;
7778
7816
  border-radius: var(--idp-border-radius-sm, 4px);
@@ -7783,16 +7821,16 @@ html {
7783
7821
  will-change: grid-template-rows, opacity;
7784
7822
  }
7785
7823
 
7786
- .idp-menu-submenu.vertical.open {
7824
+ .idp-menu-submenu-vertical-open {
7787
7825
  grid-template-rows: 1fr;
7788
7826
  opacity: 1;
7789
7827
  }
7790
7828
 
7791
- .idp-menu-submenu.vertical > .idp-menu-submenu-content {
7829
+ .idp-menu-submenu-vertical > .idp-menu-submenu-content {
7792
7830
  overflow: hidden;
7793
7831
  }
7794
7832
 
7795
- .idp-menu-submenu.vertical .idp-menu-item {
7833
+ .idp-menu-submenu-vertical .idp-menu-item {
7796
7834
  margin: 2px 0;
7797
7835
  height: 36px;
7798
7836
  opacity: 0;
@@ -7800,23 +7838,23 @@ html {
7800
7838
  transition: opacity 0.2s ease-out, transform 0.2s ease-out, background-color var(--idp-transition-duration, 0.2s) ease, color var(--idp-transition-duration, 0.2s) ease;
7801
7839
  }
7802
7840
 
7803
- .idp-menu-submenu.vertical.open .idp-menu-item {
7841
+ .idp-menu-submenu-vertical-open .idp-menu-item {
7804
7842
  opacity: 1;
7805
7843
  transform: translateX(0);
7806
7844
  }
7807
7845
 
7808
7846
  /* 子菜单项依次动画 */
7809
- .idp-menu-submenu.vertical.open .idp-menu-item:nth-child(1) { transition-delay: 0.01s, 0.01s, 0s, 0s; }
7810
- .idp-menu-submenu.vertical.open .idp-menu-item:nth-child(2) { transition-delay: 0.02s, 0.02s, 0s, 0s; }
7811
- .idp-menu-submenu.vertical.open .idp-menu-item:nth-child(3) { transition-delay: 0.03s, 0.03s, 0s, 0s; }
7812
- .idp-menu-submenu.vertical.open .idp-menu-item:nth-child(4) { transition-delay: 0.04s, 0.04s, 0s, 0s; }
7813
- .idp-menu-submenu.vertical.open .idp-menu-item:nth-child(5) { transition-delay: 0.05s, 0.05s, 0s, 0s; }
7814
- .idp-menu-submenu.vertical.open .idp-menu-item:nth-child(6) { transition-delay: 0.06s, 0.06s, 0s, 0s; }
7815
- .idp-menu-submenu.vertical.open .idp-menu-item:nth-child(7) { transition-delay: 0.07s, 0.07s, 0s, 0s; }
7816
- .idp-menu-submenu.vertical.open .idp-menu-item:nth-child(8) { transition-delay: 0.08s, 0.08s, 0s, 0s; }
7847
+ .idp-menu-submenu-vertical-open .idp-menu-item:nth-child(1) { transition-delay: 0.01s, 0.01s, 0s, 0s; }
7848
+ .idp-menu-submenu-vertical-open .idp-menu-item:nth-child(2) { transition-delay: 0.02s, 0.02s, 0s, 0s; }
7849
+ .idp-menu-submenu-vertical-open .idp-menu-item:nth-child(3) { transition-delay: 0.03s, 0.03s, 0s, 0s; }
7850
+ .idp-menu-submenu-vertical-open .idp-menu-item:nth-child(4) { transition-delay: 0.04s, 0.04s, 0s, 0s; }
7851
+ .idp-menu-submenu-vertical-open .idp-menu-item:nth-child(5) { transition-delay: 0.05s, 0.05s, 0s, 0s; }
7852
+ .idp-menu-submenu-vertical-open .idp-menu-item:nth-child(6) { transition-delay: 0.06s, 0.06s, 0s, 0s; }
7853
+ .idp-menu-submenu-vertical-open .idp-menu-item:nth-child(7) { transition-delay: 0.07s, 0.07s, 0s, 0s; }
7854
+ .idp-menu-submenu-vertical-open .idp-menu-item:nth-child(8) { transition-delay: 0.08s, 0.08s, 0s, 0s; }
7817
7855
 
7818
7856
  /* ============================================
7819
- 水平模式 (Horizontal)
7857
+ 水平模式 (Horizontal) - 使用组合类名
7820
7858
  ============================================ */
7821
7859
  .idp-menu-horizontal {
7822
7860
  display: flex;
@@ -7826,31 +7864,31 @@ html {
7826
7864
  width: 100%;
7827
7865
  }
7828
7866
 
7829
- .idp-menu-horizontal .idp-menu-item-wrapper.root {
7867
+ .idp-menu-horizontal .idp-menu-item-wrapper-root {
7830
7868
  position: relative;
7831
7869
  display: inline-block;
7832
7870
  }
7833
7871
 
7834
- .idp-menu-horizontal .idp-menu-item.root {
7872
+ .idp-menu-horizontal .idp-menu-item-root {
7835
7873
  height: 48px;
7836
7874
  margin: 0 4px;
7837
7875
  border-bottom: 2px solid transparent;
7838
- border-radius: 0;
7876
+ border-radius: 4px;
7839
7877
  }
7840
7878
 
7841
- .idp-menu-horizontal .idp-menu-item.root:hover:not(.disabled) {
7879
+ .idp-menu-horizontal .idp-menu-item-root:hover:not(.idp-menu-item-disabled) {
7842
7880
  background-color: transparent;
7843
7881
  border-bottom-color: var(--idp-primary-color, #1890ff);
7844
7882
  }
7845
7883
 
7846
- .idp-menu-horizontal .idp-menu-item.root.selected {
7884
+ .idp-menu-horizontal .idp-menu-item-root-selected {
7847
7885
  background-color: transparent;
7848
7886
  border-bottom-color: var(--idp-primary-color, #1890ff);
7849
7887
  box-shadow: none;
7850
7888
  }
7851
7889
 
7852
- /* 水平模式子菜单 wrapper - 用于定位 */
7853
- .idp-menu-submenu-wrapper.horizontal-popup-wrapper {
7890
+ /* 水平模式子菜单 wrapper - 用于定位 - 使用组合类名 */
7891
+ .idp-menu-submenu-wrapper-horizontal-popup {
7854
7892
  position: absolute;
7855
7893
  top: 100%;
7856
7894
  left: 50%;
@@ -7861,8 +7899,8 @@ html {
7861
7899
  z-index: 999;
7862
7900
  }
7863
7901
 
7864
- /* 水平模式子菜单弹出 */
7865
- .idp-menu-submenu.horizontal-popup {
7902
+ /* 水平模式子菜单弹出 - 使用组合类名 */
7903
+ .idp-menu-submenu-horizontal-popup {
7866
7904
  position: relative;
7867
7905
  min-width: 160px;
7868
7906
  background: var(--idp-bg-color-white, #fff);
@@ -7878,18 +7916,18 @@ html {
7878
7916
  will-change: opacity, transform;
7879
7917
  }
7880
7918
 
7881
- .idp-menu-submenu.horizontal-popup.open {
7919
+ .idp-menu-submenu-horizontal-popup-open {
7882
7920
  opacity: 1;
7883
7921
  transform: translateY(0);
7884
7922
  pointer-events: auto;
7885
7923
  }
7886
7924
 
7887
7925
  /* 展开时 wrapper 也需要可交互 */
7888
- .idp-menu-submenu-wrapper.horizontal-popup-wrapper .idp-menu-submenu.horizontal-popup.open {
7926
+ .idp-menu-submenu-wrapper-horizontal-popup .idp-menu-submenu-horizontal-popup-open {
7889
7927
  pointer-events: auto;
7890
7928
  }
7891
7929
 
7892
- .idp-menu-submenu.horizontal-popup .idp-menu-item {
7930
+ .idp-menu-submenu-horizontal-popup .idp-menu-item {
7893
7931
  margin: 0;
7894
7932
  border-radius: 0;
7895
7933
  opacity: 0;
@@ -7897,23 +7935,23 @@ html {
7897
7935
  transition: opacity 0.15s ease-out, transform 0.15s ease-out, background-color var(--idp-transition-duration, 0.2s) ease, color var(--idp-transition-duration, 0.2s) ease;
7898
7936
  }
7899
7937
 
7900
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item {
7938
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item {
7901
7939
  opacity: 1;
7902
7940
  transform: translateX(0);
7903
7941
  }
7904
7942
 
7905
7943
  /* 子菜单项依次动画 */
7906
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item:nth-child(1) { transition-delay: 0.01s, 0.01s, 0s, 0s; }
7907
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item:nth-child(2) { transition-delay: 0.02s, 0.02s, 0s, 0s; }
7908
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item:nth-child(3) { transition-delay: 0.03s, 0.03s, 0s, 0s; }
7909
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item:nth-child(4) { transition-delay: 0.04s, 0.04s, 0s, 0s; }
7910
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item:nth-child(5) { transition-delay: 0.05s, 0.05s, 0s, 0s; }
7911
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item:nth-child(6) { transition-delay: 0.06s, 0.06s, 0s, 0s; }
7912
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item:nth-child(7) { transition-delay: 0.07s, 0.07s, 0s, 0s; }
7913
- .idp-menu-submenu.horizontal-popup.open .idp-menu-item:nth-child(8) { transition-delay: 0.08s, 0.08s, 0s, 0s; }
7944
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item:nth-child(1) { transition-delay: 0.01s, 0.01s, 0s, 0s; }
7945
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item:nth-child(2) { transition-delay: 0.02s, 0.02s, 0s, 0s; }
7946
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item:nth-child(3) { transition-delay: 0.03s, 0.03s, 0s, 0s; }
7947
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item:nth-child(4) { transition-delay: 0.04s, 0.04s, 0s, 0s; }
7948
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item:nth-child(5) { transition-delay: 0.05s, 0.05s, 0s, 0s; }
7949
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item:nth-child(6) { transition-delay: 0.06s, 0.06s, 0s, 0s; }
7950
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item:nth-child(7) { transition-delay: 0.07s, 0.07s, 0s, 0s; }
7951
+ .idp-menu-submenu-horizontal-popup-open .idp-menu-item:nth-child(8) { transition-delay: 0.08s, 0.08s, 0s, 0s; }
7914
7952
 
7915
7953
  /* 水平模式嵌套子菜单 */
7916
- .idp-menu-submenu.horizontal-popup .idp-menu-submenu {
7954
+ .idp-menu-submenu-horizontal-popup .idp-menu-submenu {
7917
7955
  position: absolute;
7918
7956
  left: 100%;
7919
7957
  top: 0;
@@ -7932,19 +7970,19 @@ html {
7932
7970
  }
7933
7971
 
7934
7972
  /* Dark 主题嵌套子菜单 */
7935
- .idp-menu-dark .idp-menu-submenu.horizontal-popup .idp-menu-submenu {
7973
+ .idp-menu-submenu-horizontal-popup-dark .idp-menu-submenu {
7936
7974
  background: linear-gradient(135deg, #001529 0%, #002140 100%);
7937
7975
  border: 1px solid #303030;
7938
7976
  }
7939
7977
 
7940
- .idp-menu-submenu.horizontal-popup .idp-menu-submenu.open {
7978
+ .idp-menu-submenu-horizontal-popup .idp-menu-submenu-open {
7941
7979
  opacity: 1;
7942
7980
  transform: translateX(0);
7943
7981
  pointer-events: auto;
7944
7982
  }
7945
7983
 
7946
7984
  /* ============================================
7947
- 内联模式 (Inline)
7985
+ 内联模式 (Inline) - 使用组合类名
7948
7986
  ============================================ */
7949
7987
  .idp-menu-inline {
7950
7988
  display: flex;
@@ -7957,7 +7995,7 @@ html {
7957
7995
  margin: 0;
7958
7996
  }
7959
7997
 
7960
- .idp-menu-submenu.inline {
7998
+ .idp-menu-submenu-inline {
7961
7999
  overflow: hidden;
7962
8000
  background-color: var(--idp-bg-color-light, rgba(0, 0, 0, 0.02));
7963
8001
  display: grid;
@@ -7967,16 +8005,16 @@ html {
7967
8005
  will-change: grid-template-rows, opacity;
7968
8006
  }
7969
8007
 
7970
- .idp-menu-submenu.inline.open {
8008
+ .idp-menu-submenu-inline-open {
7971
8009
  grid-template-rows: 1fr;
7972
8010
  opacity: 1;
7973
8011
  }
7974
8012
 
7975
- .idp-menu-submenu.inline > .idp-menu-submenu-content {
8013
+ .idp-menu-submenu-inline > .idp-menu-submenu-content {
7976
8014
  overflow: hidden;
7977
8015
  }
7978
8016
 
7979
- .idp-menu-submenu.inline .idp-menu-item {
8017
+ .idp-menu-submenu-inline .idp-menu-item {
7980
8018
  height: 36px;
7981
8019
  margin: 0;
7982
8020
  opacity: 0;
@@ -7984,38 +8022,38 @@ html {
7984
8022
  transition: opacity 0.2s ease-out, transform 0.2s ease-out, background-color var(--idp-transition-duration, 0.2s) ease, color var(--idp-transition-duration, 0.2s) ease;
7985
8023
  }
7986
8024
 
7987
- .idp-menu-submenu.inline.open .idp-menu-item {
8025
+ .idp-menu-submenu-inline-open .idp-menu-item {
7988
8026
  opacity: 1;
7989
8027
  transform: translateX(0);
7990
8028
  }
7991
8029
 
7992
8030
  /* 子菜单项依次动画 */
7993
- .idp-menu-submenu.inline.open .idp-menu-item:nth-child(1) { transition-delay: 0.01s, 0.01s, 0s, 0s; }
7994
- .idp-menu-submenu.inline.open .idp-menu-item:nth-child(2) { transition-delay: 0.02s, 0.02s, 0s, 0s; }
7995
- .idp-menu-submenu.inline.open .idp-menu-item:nth-child(3) { transition-delay: 0.03s, 0.03s, 0s, 0s; }
7996
- .idp-menu-submenu.inline.open .idp-menu-item:nth-child(4) { transition-delay: 0.04s, 0.04s, 0s, 0s; }
7997
- .idp-menu-submenu.inline.open .idp-menu-item:nth-child(5) { transition-delay: 0.05s, 0.05s, 0s, 0s; }
7998
- .idp-menu-submenu.inline.open .idp-menu-item:nth-child(6) { transition-delay: 0.06s, 0.06s, 0s, 0s; }
7999
- .idp-menu-submenu.inline.open .idp-menu-item:nth-child(7) { transition-delay: 0.07s, 0.07s, 0s, 0s; }
8000
- .idp-menu-submenu.inline.open .idp-menu-item:nth-child(8) { transition-delay: 0.08s, 0.08s, 0s, 0s; }
8031
+ .idp-menu-submenu-inline-open .idp-menu-item:nth-child(1) { transition-delay: 0.01s, 0.01s, 0s, 0s; }
8032
+ .idp-menu-submenu-inline-open .idp-menu-item:nth-child(2) { transition-delay: 0.02s, 0.02s, 0s, 0s; }
8033
+ .idp-menu-submenu-inline-open .idp-menu-item:nth-child(3) { transition-delay: 0.03s, 0.03s, 0s, 0s; }
8034
+ .idp-menu-submenu-inline-open .idp-menu-item:nth-child(4) { transition-delay: 0.04s, 0.04s, 0s, 0s; }
8035
+ .idp-menu-submenu-inline-open .idp-menu-item:nth-child(5) { transition-delay: 0.05s, 0.05s, 0s, 0s; }
8036
+ .idp-menu-submenu-inline-open .idp-menu-item:nth-child(6) { transition-delay: 0.06s, 0.06s, 0s, 0s; }
8037
+ .idp-menu-submenu-inline-open .idp-menu-item:nth-child(7) { transition-delay: 0.07s, 0.07s, 0s, 0s; }
8038
+ .idp-menu-submenu-inline-open .idp-menu-item:nth-child(8) { transition-delay: 0.08s, 0.08s, 0s, 0s; }
8001
8039
 
8002
8040
  /* ============================================
8003
- 嵌套层级样式
8041
+ 嵌套层级样式 - 使用组合类名
8004
8042
  ============================================ */
8005
- .idp-menu-submenu.level-0,
8006
- .idp-menu-submenu.level-1,
8007
- .idp-menu-submenu.level-2 {
8043
+ .idp-menu-submenu-level-0,
8044
+ .idp-menu-submenu-level-1,
8045
+ .idp-menu-submenu-level-2 {
8008
8046
  margin-left: 0;
8009
8047
  }
8010
8048
 
8011
8049
  /* ============================================
8012
- 选中状态下的父级高亮
8050
+ 选中状态下的父级高亮 - 使用组合类名
8013
8051
  ============================================ */
8014
- .idp-menu-item.has-children.selected {
8052
+ .idp-menu-item-has-children-selected {
8015
8053
  color: var(--idp-primary-color, #1890ff);
8016
8054
  }
8017
8055
 
8018
- .idp-menu-item.has-children.selected .idp-menu-item-arrow {
8056
+ .idp-menu-item-has-children-selected .idp-menu-item-arrow {
8019
8057
  color: var(--idp-primary-color, #1890ff);
8020
8058
  }
8021
8059
 
@@ -8037,9 +8075,10 @@ html {
8037
8075
  animation: idp-menu-fade-in 0.3s ease;
8038
8076
  }
8039
8077
 
8040
- .idp-menu-item-warrper-vertical-flat {
8078
+ .idp-menu-item-wrapper-vertical-flat {
8041
8079
  border-bottom: 1px solid #E5E5E5;
8042
8080
  }
8081
+
8043
8082
  :root {
8044
8083
  /* 禁用状态透明度 */
8045
8084
  --rate-disabled-opacity: 0.6;
@@ -8097,7 +8136,7 @@ html {
8097
8136
  justify-content: center;
8098
8137
  }
8099
8138
 
8100
- .rate.disabled {
8139
+ .rate-disabled {
8101
8140
  cursor: var(--rate-cursor-not-allowed);
8102
8141
  opacity: var(--rate-disabled-opacity);
8103
8142
  }
@@ -8119,7 +8158,7 @@ html {
8119
8158
  transform: scale(var(--rate-hover-scale));
8120
8159
  }
8121
8160
 
8122
- .rate.disabled .rate-star:hover {
8161
+ .rate-disabled .rate-star:hover {
8123
8162
  transform: none;
8124
8163
  }
8125
8164
 
@@ -8145,18 +8184,18 @@ html {
8145
8184
  will-change: width, opacity;
8146
8185
  }
8147
8186
 
8148
- .rate-star-fill.half {
8187
+ .rate-star-fill-half {
8149
8188
  width: var(--rate-half-width);
8150
8189
  opacity: 1;
8151
8190
  }
8152
8191
 
8153
- .rate-star-fill.full {
8192
+ .rate-star-fill-full {
8154
8193
  width: var(--rate-full-width);
8155
8194
  opacity: 1;
8156
8195
  }
8157
8196
 
8158
8197
  /* 确保空星状态完全隐藏 */
8159
- .rate-star-fill:not(.half):not(.full) {
8198
+ .rate-star-fill-empty {
8160
8199
  width: var(--rate-empty-width);
8161
8200
  opacity: var(--rate-empty-opacity);
8162
8201
  }
@@ -8187,9 +8226,9 @@ html {
8187
8226
  z-index: var(--rate-z-index); /* 确保在图标上方 */
8188
8227
  }
8189
8228
 
8190
- .rate.disabled .rate-star-left,
8191
- .rate.disabled .rate-star-right,
8192
- .rate.disabled .rate-character-full {
8229
+ .rate-disabled .rate-star-left,
8230
+ .rate-disabled .rate-star-right,
8231
+ .rate-disabled .rate-character-full {
8193
8232
  cursor: var(--rate-cursor-not-allowed);
8194
8233
  }
8195
8234
 
@@ -8216,7 +8255,7 @@ html {
8216
8255
  transition: color var(--rate-transition-fast) var(--rate-transition-timing);
8217
8256
  }
8218
8257
 
8219
- .rate-chats-mode.disabled .rate-chat-item {
8258
+ .rate-chats-mode-disabled .rate-chat-item {
8220
8259
  background-color: transparent !important;
8221
8260
  cursor: var(--rate-cursor-not-allowed);
8222
8261
  }
@@ -8282,23 +8321,23 @@ html {
8282
8321
  }
8283
8322
 
8284
8323
  /* 拖动时完全禁用过渡 - 直接响应鼠标移动 */
8285
- .slider-container.dragging .slider-handle {
8324
+ .slider-container-dragging .slider-handle {
8286
8325
  transition: none;
8287
8326
  }
8288
8327
 
8289
8328
  /* 禁用状态 */
8290
- .slider-container.disabled .slider-track {
8329
+ .slider-container-disabled .slider-track {
8291
8330
  background: var(--idp-slider-disabled-track-bg);
8292
8331
  cursor: not-allowed;
8293
8332
  box-shadow: none;
8294
8333
  }
8295
8334
 
8296
- .slider-container.disabled .slider-track-filled {
8335
+ .slider-container-disabled .slider-track-filled {
8297
8336
  background: var(--idp-slider-disabled-filled-bg);
8298
8337
  box-shadow: none;
8299
8338
  }
8300
8339
 
8301
- .slider-container.disabled .slider-handle {
8340
+ .slider-container-disabled .slider-handle {
8302
8341
  background: var(--idp-bg-color-white);
8303
8342
  border-color: var(--idp-slider-disabled-handle-border);
8304
8343
  cursor: not-allowed;
@@ -8371,8 +8410,8 @@ html {
8371
8410
  border-top-color: var(--idp-slider-tooltip-bg);
8372
8411
  }
8373
8412
 
8374
- .slider-container:not(.disabled) .slider-handle:hover .slider-tooltip,
8375
- .slider-container:not(.disabled) .slider-handle:active .slider-tooltip {
8413
+ .slider-container:not(.slider-container-disabled) .slider-handle:hover .slider-tooltip,
8414
+ .slider-container:not(.slider-container-disabled) .slider-handle:active .slider-tooltip {
8376
8415
  opacity: 1;
8377
8416
  top: -40px;
8378
8417
  }
@@ -8384,7 +8423,7 @@ html {
8384
8423
  }
8385
8424
 
8386
8425
  /* 禁用状态下的工具提示 */
8387
- .slider-container.disabled .slider-tooltip {
8426
+ .slider-container-disabled .slider-tooltip {
8388
8427
  display: none;
8389
8428
  }
8390
8429
 
@@ -8441,7 +8480,7 @@ html {
8441
8480
  }
8442
8481
 
8443
8482
  /* 面板类型容器 */
8444
- .idp-steps.panel {
8483
+ .idp-steps .idp-steps-panel {
8445
8484
  background: linear-gradient(135deg, var(--idp-steps-bg) 0%, var(--idp-steps-bg-light) 100%);
8446
8485
  border-radius: var(--idp-steps-border-radius);
8447
8486
  padding: 24px;
@@ -8450,31 +8489,31 @@ html {
8450
8489
  }
8451
8490
 
8452
8491
  /* 方向布局 */
8453
- .idp-steps.horizontal {
8492
+ .idp-steps .idp-steps-direction-horizontal {
8454
8493
  flex-direction: row;
8455
8494
  align-items: flex-start;
8456
8495
  justify-content: space-between;
8457
8496
  }
8458
8497
 
8459
- .idp-steps.vertical {
8498
+ .idp-steps .idp-steps-direction-vertical {
8460
8499
  flex-direction: column;
8461
8500
  }
8462
8501
 
8463
8502
  /* ============================================
8464
8503
  Size Variants - 尺寸变体
8465
8504
  ============================================ */
8466
- .idp-steps.small .idp-step-node {
8505
+ .idp-steps .idp-steps-size-small .idp-step-node {
8467
8506
  width: var(--idp-steps-node-small);
8468
8507
  height: var(--idp-steps-node-small);
8469
8508
  font-size: 12px;
8470
8509
  min-width: var(--idp-steps-node-small);
8471
8510
  }
8472
8511
 
8473
- .idp-steps.small .idp-step-title {
8512
+ .idp-steps .idp-steps-size-small .idp-step-title {
8474
8513
  font-size: 12px;
8475
8514
  }
8476
8515
 
8477
- .idp-steps.small .idp-step-description {
8516
+ .idp-steps .idp-steps-size-small .idp-step-description {
8478
8517
  font-size: 11px;
8479
8518
  }
8480
8519
 
@@ -8490,7 +8529,7 @@ html {
8490
8529
  }
8491
8530
 
8492
8531
  /* 面板类型步骤项 */
8493
- .idp-steps.panel .idp-step {
8532
+ .idp-steps .idp-steps-panel .idp-step {
8494
8533
  background: linear-gradient(135deg, var(--idp-steps-bg) 0%, var(--idp-steps-bg-light) 100%);
8495
8534
  border-radius: var(--idp-border-radius-md, 6px);
8496
8535
  padding: 16px;
@@ -8500,38 +8539,38 @@ html {
8500
8539
  box-shadow: var(--idp-shadow-extra-light, 0 2px 8px rgba(0, 0, 0, 0.08));
8501
8540
  }
8502
8541
 
8503
- .idp-steps.panel .idp-step:hover {
8542
+ .idp-steps .idp-steps-panel .idp-step:hover {
8504
8543
  box-shadow: var(--idp-steps-shadow-md);
8505
8544
  transform: translateY(-2px);
8506
8545
  border-color: var(--idp-steps-primary-color);
8507
8546
  }
8508
8547
 
8509
- .idp-steps.panel .idp-step.process {
8548
+ .idp-steps .idp-steps-panel .idp-step .idp-step-process {
8510
8549
  border-color: var(--idp-steps-primary-color);
8511
8550
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.08) 0%, rgba(24, 144, 255, 0.02) 100%);
8512
8551
  box-shadow: var(--idp-steps-shadow-primary);
8513
8552
  }
8514
8553
 
8515
- .idp-steps.panel .idp-step.finish {
8554
+ .idp-steps .idp-steps-panel .idp-step .idp-step-finish {
8516
8555
  border-color: var(--idp-steps-success-color);
8517
8556
  background: linear-gradient(135deg, rgba(82, 196, 26, 0.08) 0%, rgba(82, 196, 26, 0.02) 100%);
8518
8557
  box-shadow: var(--idp-steps-shadow-success);
8519
8558
  }
8520
8559
 
8521
- .idp-steps.panel .idp-step.error {
8560
+ .idp-steps .idp-steps-panel .idp-step .idp-step-error {
8522
8561
  border-color: var(--idp-steps-error-color);
8523
8562
  background: linear-gradient(135deg, rgba(245, 34, 45, 0.08) 0%, rgba(245, 34, 45, 0.02) 100%);
8524
8563
  box-shadow: var(--idp-steps-shadow-error);
8525
8564
  }
8526
8565
 
8527
8566
  /* 禁用状态 */
8528
- .idp-step.disabled {
8567
+ .idp-step .idp-step-disabled {
8529
8568
  cursor: not-allowed;
8530
8569
  opacity: var(--idp-opacity-disabled, 0.65);
8531
8570
  }
8532
8571
 
8533
8572
  /* 水平方向 */
8534
- .idp-step.horizontal {
8573
+ .idp-step .idp-step-direction-horizontal {
8535
8574
  display: flex;
8536
8575
  flex-direction: column;
8537
8576
  align-items: center;
@@ -8542,7 +8581,7 @@ html {
8542
8581
  }
8543
8582
 
8544
8583
  /* 垂直方向 */
8545
- .idp-step.vertical {
8584
+ .idp-step .idp-step-direction-vertical {
8546
8585
  display: flex;
8547
8586
  align-items: flex-start;
8548
8587
  padding: 8px 0;
@@ -8559,13 +8598,13 @@ html {
8559
8598
  justify-content: center;
8560
8599
  }
8561
8600
 
8562
- .idp-step.horizontal .idp-step-head {
8601
+ .idp-step .idp-step-direction-horizontal .idp-step-head {
8563
8602
  margin-bottom: 8px;
8564
8603
  position: relative;
8565
8604
  width: 100%;
8566
8605
  }
8567
8606
 
8568
- .idp-step.vertical .idp-step-head {
8607
+ .idp-step .idp-step-direction-vertical .idp-step-head {
8569
8608
  margin-right: 16px;
8570
8609
  }
8571
8610
 
@@ -8597,13 +8636,13 @@ html {
8597
8636
  }
8598
8637
 
8599
8638
  /* 等待状态 */
8600
- .idp-step-node.wait {
8639
+ .idp-step-node .idp-step-node-wait {
8601
8640
  border-color: var(--idp-steps-wait-color);
8602
8641
  color: var(--idp-steps-wait-color);
8603
8642
  }
8604
8643
 
8605
8644
  /* 进行中状态 */
8606
- .idp-step-node.process {
8645
+ .idp-step-node .idp-step-node-process {
8607
8646
  border-color: var(--idp-steps-primary-color);
8608
8647
  background: linear-gradient(135deg, var(--idp-steps-primary-color) 0%, var(--idp-steps-primary-hover) 100%);
8609
8648
  color: var(--idp-steps-bg);
@@ -8612,7 +8651,7 @@ html {
8612
8651
  }
8613
8652
 
8614
8653
  /* 完成状态 */
8615
- .idp-step-node.finish {
8654
+ .idp-step-node .idp-step-node-finish {
8616
8655
  border-color: var(--idp-steps-success-color);
8617
8656
  background: linear-gradient(135deg, var(--idp-steps-success-color) 0%, var(--idp-steps-success-hover) 100%);
8618
8657
  color: var(--idp-steps-bg);
@@ -8621,7 +8660,7 @@ html {
8621
8660
  }
8622
8661
 
8623
8662
  /* 错误状态 */
8624
- .idp-step-node.error {
8663
+ .idp-step-node .idp-step-node-error {
8625
8664
  border-color: var(--idp-steps-error-color);
8626
8665
  background: linear-gradient(135deg, var(--idp-steps-error-color) 0%, var(--idp-steps-error-hover) 100%);
8627
8666
  color: var(--idp-steps-bg);
@@ -8687,32 +8726,32 @@ html {
8687
8726
  justify-content: center;
8688
8727
  }
8689
8728
 
8690
- .idp-step.finish .idp-step-arrow {
8729
+ .idp-step .idp-step-finish .idp-step-arrow {
8691
8730
  color: var(--idp-steps-success-color);
8692
8731
  }
8693
8732
 
8694
- .idp-step.process .idp-step-arrow {
8733
+ .idp-step .idp-step-process .idp-step-arrow {
8695
8734
  color: var(--idp-steps-primary-color);
8696
8735
  transform: translateY(-50%) scale(1.2);
8697
8736
  }
8698
8737
 
8699
- .idp-step.error .idp-step-arrow {
8738
+ .idp-step .idp-step-error .idp-step-arrow {
8700
8739
  color: var(--idp-steps-error-color);
8701
8740
  }
8702
8741
 
8703
- .idp-step.finish .idp-step-tail-title {
8742
+ .idp-step .idp-step-finish .idp-step-tail-title {
8704
8743
  color: var(--idp-steps-success-color);
8705
8744
  border-color: var(--idp-steps-success-color);
8706
8745
  background: linear-gradient(135deg, rgba(82, 196, 26, 0.08) 0%, var(--idp-steps-bg) 100%);
8707
8746
  }
8708
8747
 
8709
- .idp-step.process .idp-step-tail-title {
8748
+ .idp-step .idp-step-process .idp-step-tail-title {
8710
8749
  color: var(--idp-steps-primary-color);
8711
8750
  border-color: var(--idp-steps-primary-color);
8712
8751
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.08) 0%, var(--idp-steps-bg) 100%);
8713
8752
  }
8714
8753
 
8715
- .idp-step.error .idp-step-tail-title {
8754
+ .idp-step .idp-step-error .idp-step-tail-title {
8716
8755
  color: var(--idp-steps-error-color);
8717
8756
  border-color: var(--idp-steps-error-color);
8718
8757
  background: linear-gradient(135deg, rgba(245, 34, 45, 0.08) 0%, var(--idp-steps-bg) 100%);
@@ -8721,7 +8760,7 @@ html {
8721
8760
  /* ============================================
8722
8761
  Horizontal Direction - 水平方向样式
8723
8762
  ============================================ */
8724
- .idp-step.horizontal .idp-step-tail {
8763
+ .idp-step .idp-step-direction-horizontal .idp-step-tail {
8725
8764
  top: 50%;
8726
8765
  left: 50%;
8727
8766
  width: 110%;
@@ -8734,7 +8773,7 @@ html {
8734
8773
  /* ============================================
8735
8774
  Vertical Direction - 垂直方向样式
8736
8775
  ============================================ */
8737
- .idp-step.vertical .idp-step-tail {
8776
+ .idp-step .idp-step-direction-vertical .idp-step-tail {
8738
8777
  top: 100%;
8739
8778
  left: 50%;
8740
8779
  width: 2px;
@@ -8745,7 +8784,7 @@ html {
8745
8784
  justify-content: center;
8746
8785
  }
8747
8786
 
8748
- .idp-step.vertical .idp-step-tail-dashed {
8787
+ .idp-step .idp-step-direction-vertical .idp-step-tail-dashed {
8749
8788
  background: repeating-linear-gradient(
8750
8789
  180deg,
8751
8790
  var(--idp-steps-border-color),
@@ -8755,7 +8794,7 @@ html {
8755
8794
  );
8756
8795
  }
8757
8796
 
8758
- .idp-step.vertical .idp-step-tail-title {
8797
+ .idp-step .idp-step-direction-vertical .idp-step-tail-title {
8759
8798
  position: absolute;
8760
8799
  left: 10px;
8761
8800
  top: 50%;
@@ -8772,19 +8811,19 @@ html {
8772
8811
  box-shadow: var(--idp-shadow-extra-light, 0 2px 8px rgba(0, 0, 0, 0.08));
8773
8812
  }
8774
8813
 
8775
- .idp-step.vertical.finish .idp-step-tail-title {
8814
+ .idp-step .idp-step-direction-vertical.idp-step-finish .idp-step-tail-title {
8776
8815
  color: var(--idp-steps-success-color);
8777
8816
  border-color: var(--idp-steps-success-color);
8778
8817
  background: linear-gradient(135deg, rgba(82, 196, 26, 0.08) 0%, var(--idp-steps-bg) 100%);
8779
8818
  }
8780
8819
 
8781
- .idp-step.vertical.process .idp-step-tail-title {
8820
+ .idp-step .idp-step-direction-vertical.idp-step-process .idp-step-tail-title {
8782
8821
  color: var(--idp-steps-primary-color);
8783
8822
  border-color: var(--idp-steps-primary-color);
8784
8823
  background: linear-gradient(135deg, rgba(24, 144, 255, 0.08) 0%, var(--idp-steps-bg) 100%);
8785
8824
  }
8786
8825
 
8787
- .idp-step.vertical.error .idp-step-tail-title {
8826
+ .idp-step .idp-step-direction-vertical.idp-step-error .idp-step-tail-title {
8788
8827
  color: var(--idp-steps-error-color);
8789
8828
  border-color: var(--idp-steps-error-color);
8790
8829
  background: linear-gradient(135deg, rgba(245, 34, 45, 0.08) 0%, var(--idp-steps-bg) 100%);
@@ -8793,19 +8832,19 @@ html {
8793
8832
  /* ============================================
8794
8833
  Tail Color States - 连接线状态颜色
8795
8834
  ============================================ */
8796
- .idp-step.finish .idp-step-tail {
8835
+ .idp-step .idp-step-finish .idp-step-tail {
8797
8836
  background: linear-gradient(90deg, var(--idp-steps-success-color) 0%, var(--idp-steps-success-hover) 100%);
8798
8837
  background-size: 200% 100%;
8799
8838
  animation: idpStepsColorFlow 1.2s ease-in-out forwards;
8800
8839
  }
8801
8840
 
8802
- .idp-step.process .idp-step-tail {
8841
+ .idp-step .idp-step-process .idp-step-tail {
8803
8842
  background: linear-gradient(90deg, var(--idp-steps-success-color) 0%, var(--idp-steps-primary-color) 50%, var(--idp-steps-primary-color) 100%);
8804
8843
  background-size: 200% 100%;
8805
8844
  animation: idpStepsColorFlow 0.8s ease-in-out forwards;
8806
8845
  }
8807
8846
 
8808
- .idp-step.error .idp-step-tail {
8847
+ .idp-step .idp-step-error .idp-step-tail {
8809
8848
  background: linear-gradient(90deg, var(--idp-steps-success-color) 0%, var(--idp-steps-error-color) 50%, var(--idp-steps-error-color) 100%);
8810
8849
  background-size: 200% 100%;
8811
8850
  animation: idpStepsColorFlow 0.6s ease-in-out forwards;
@@ -8818,19 +8857,19 @@ html {
8818
8857
  flex: 1;
8819
8858
  }
8820
8859
 
8821
- .idp-step.horizontal .idp-step-content {
8860
+ .idp-step .idp-step-direction-horizontal .idp-step-content {
8822
8861
  max-width: 120px;
8823
8862
  word-wrap: break-word;
8824
8863
  }
8825
8864
 
8826
- .idp-step.vertical .idp-step-content {
8865
+ .idp-step .idp-step-direction-vertical .idp-step-content {
8827
8866
  padding-top: 4px;
8828
8867
  max-width: 180px;
8829
8868
  min-width: 100px;
8830
8869
  word-wrap: break-word;
8831
8870
  }
8832
8871
 
8833
- .idp-steps.panel .idp-step-content {
8872
+ .idp-steps .idp-steps-panel .idp-step-content {
8834
8873
  margin-top: 12px;
8835
8874
  padding: 0;
8836
8875
  max-width: 150px;
@@ -8848,30 +8887,30 @@ html {
8848
8887
  transition: color var(--idp-transition-duration, 0.2s) ease;
8849
8888
  }
8850
8889
 
8851
- .idp-steps.panel .idp-step-title {
8890
+ .idp-steps .idp-steps-panel .idp-step-title {
8852
8891
  font-size: 16px;
8853
8892
  font-weight: 600;
8854
8893
  margin-bottom: 8px;
8855
8894
  }
8856
8895
 
8857
8896
  /* 标题状态颜色 */
8858
- .idp-step.wait .idp-step-title {
8897
+ .idp-step .idp-step-wait .idp-step-title {
8859
8898
  color: var(--idp-steps-wait-color);
8860
8899
  }
8861
8900
 
8862
- .idp-step.process .idp-step-title {
8901
+ .idp-step .idp-step-process .idp-step-title {
8863
8902
  color: var(--idp-steps-primary-color);
8864
8903
  }
8865
8904
 
8866
- .idp-step.finish .idp-step-title {
8905
+ .idp-step .idp-step-finish .idp-step-title {
8867
8906
  color: var(--idp-steps-success-color);
8868
8907
  }
8869
8908
 
8870
- .idp-step.error .idp-step-title {
8909
+ .idp-step .idp-step-error .idp-step-title {
8871
8910
  color: var(--idp-steps-error-color);
8872
8911
  }
8873
8912
 
8874
- .idp-step.disabled .idp-step-title {
8913
+ .idp-step .idp-step-disabled .idp-step-title {
8875
8914
  color: var(--idp-steps-disabled-color);
8876
8915
  }
8877
8916
 
@@ -8884,32 +8923,32 @@ html {
8884
8923
  line-height: 1.4;
8885
8924
  }
8886
8925
 
8887
- .idp-steps.panel .idp-step-description {
8926
+ .idp-steps .idp-steps-panel .idp-step-description {
8888
8927
  font-size: 14px;
8889
8928
  line-height: 1.5;
8890
8929
  }
8891
8930
 
8892
8931
  /* 描述状态颜色 */
8893
- .idp-step.wait .idp-step-description {
8932
+ .idp-step .idp-step-wait .idp-step-description {
8894
8933
  color: var(--idp-steps-wait-color);
8895
8934
  }
8896
8935
 
8897
- .idp-step.process .idp-step-description {
8936
+ .idp-step .idp-step-process .idp-step-description {
8898
8937
  color: var(--idp-steps-primary-color);
8899
8938
  opacity: 0.85;
8900
8939
  }
8901
8940
 
8902
- .idp-step.finish .idp-step-description {
8941
+ .idp-step .idp-step-finish .idp-step-description {
8903
8942
  color: var(--idp-steps-success-color);
8904
8943
  opacity: 0.85;
8905
8944
  }
8906
8945
 
8907
- .idp-step.error .idp-step-description {
8946
+ .idp-step .idp-step-error .idp-step-description {
8908
8947
  color: var(--idp-steps-error-color);
8909
8948
  opacity: 0.85;
8910
8949
  }
8911
8950
 
8912
- .idp-step.disabled .idp-step-description {
8951
+ .idp-step .idp-step-disabled .idp-step-description {
8913
8952
  color: var(--idp-steps-disabled-color);
8914
8953
  }
8915
8954
 
@@ -8929,36 +8968,36 @@ html {
8929
8968
  Responsive Design - 响应式设计
8930
8969
  ============================================ */
8931
8970
  @media (max-width: 768px) {
8932
- .idp-steps.horizontal {
8971
+ .idp-steps .idp-steps-direction-horizontal {
8933
8972
  flex-direction: column;
8934
8973
  }
8935
8974
 
8936
- .idp-step.horizontal {
8975
+ .idp-step .idp-step-direction-horizontal {
8937
8976
  align-items: flex-start;
8938
8977
  text-align: left;
8939
8978
  padding: 8px 0;
8940
8979
  }
8941
8980
 
8942
- .idp-step.horizontal .idp-step-head {
8981
+ .idp-step .idp-step-direction-horizontal .idp-step-head {
8943
8982
  flex-direction: row;
8944
8983
  margin-bottom: 0;
8945
8984
  margin-right: 12px;
8946
8985
  }
8947
8986
 
8948
- .idp-step.horizontal .idp-step-tail {
8987
+ .idp-step .idp-step-direction-horizontal .idp-step-tail {
8949
8988
  display: none;
8950
8989
  }
8951
8990
 
8952
- .idp-step.vertical .idp-step-head {
8991
+ .idp-step .idp-step-direction-vertical .idp-step-head {
8953
8992
  margin-right: 12px;
8954
8993
  }
8955
8994
 
8956
8995
  /* 面板类型在移动端调整 */
8957
- .idp-steps.panel {
8996
+ .idp-steps .idp-steps-panel {
8958
8997
  padding: 16px;
8959
8998
  }
8960
8999
 
8961
- .idp-steps.panel .idp-step {
9000
+ .idp-steps .idp-steps-panel .idp-step {
8962
9001
  margin: 8px 0;
8963
9002
  padding: 12px;
8964
9003
  }
@@ -9423,7 +9462,7 @@ html {
9423
9462
  }
9424
9463
 
9425
9464
  /* 当增加按钮接近右端时,固定在可视区域 */
9426
- .idp-tabs--card .idp-tabs-tab--add.sticky {
9465
+ .idp-tabs--card .idp-tabs-tab--add .idp-tabs-tab-add-sticky {
9427
9466
  position: sticky;
9428
9467
  right: 0;
9429
9468
  }
@@ -9777,11 +9816,14 @@ body {
9777
9816
  transform: translateX(-100%);
9778
9817
  }
9779
9818
 
9780
- .idp-drawer--left.idp-drawer--visible {
9819
+ /* 使用后代选择器避免多类选择器 */
9820
+ .idp-drawer-wrapper--visible .idp-drawer--left,
9821
+ .idp-drawer-overlay--visible .idp-drawer--left {
9781
9822
  transform: translateX(0);
9782
9823
  }
9783
9824
 
9784
- .idp-drawer--left.idp-drawer--closing {
9825
+ .idp-drawer-wrapper--closing .idp-drawer--left,
9826
+ .idp-drawer-overlay--closing .idp-drawer--left {
9785
9827
  transform: translateX(-100%);
9786
9828
  }
9787
9829
 
@@ -9795,11 +9837,14 @@ body {
9795
9837
  transform: translateX(100%);
9796
9838
  }
9797
9839
 
9798
- .idp-drawer--right.idp-drawer--visible {
9840
+ /* 使用后代选择器避免多类选择器 */
9841
+ .idp-drawer-wrapper--visible .idp-drawer--right,
9842
+ .idp-drawer-overlay--visible .idp-drawer--right {
9799
9843
  transform: translateX(0);
9800
9844
  }
9801
9845
 
9802
- .idp-drawer--right.idp-drawer--closing {
9846
+ .idp-drawer-wrapper--closing .idp-drawer--right,
9847
+ .idp-drawer-overlay--closing .idp-drawer--right {
9803
9848
  transform: translateX(100%);
9804
9849
  }
9805
9850
 
@@ -9813,11 +9858,14 @@ body {
9813
9858
  transform: translateY(-100%);
9814
9859
  }
9815
9860
 
9816
- .idp-drawer--top.idp-drawer--visible {
9861
+ /* 使用后代选择器避免多类选择器 */
9862
+ .idp-drawer-wrapper--visible .idp-drawer--top,
9863
+ .idp-drawer-overlay--visible .idp-drawer--top {
9817
9864
  transform: translateY(0);
9818
9865
  }
9819
9866
 
9820
- .idp-drawer--top.idp-drawer--closing {
9867
+ .idp-drawer-wrapper--closing .idp-drawer--top,
9868
+ .idp-drawer-overlay--closing .idp-drawer--top {
9821
9869
  transform: translateY(-100%);
9822
9870
  }
9823
9871
 
@@ -9831,26 +9879,29 @@ body {
9831
9879
  transform: translateY(100%);
9832
9880
  }
9833
9881
 
9834
- .idp-drawer--bottom.idp-drawer--visible {
9882
+ /* 使用后代选择器避免多类选择器 */
9883
+ .idp-drawer-wrapper--visible .idp-drawer--bottom,
9884
+ .idp-drawer-overlay--visible .idp-drawer--bottom {
9835
9885
  transform: translateY(0);
9836
9886
  }
9837
9887
 
9838
- .idp-drawer--bottom.idp-drawer--closing {
9888
+ .idp-drawer-wrapper--closing .idp-drawer--bottom,
9889
+ .idp-drawer-overlay--closing .idp-drawer--bottom {
9839
9890
  transform: translateY(100%);
9840
9891
  }
9841
9892
 
9842
9893
  /* ============================================
9843
9894
  无遮罩层时的定位
9844
9895
  ============================================ */
9845
- .idp-drawer--no-mask.idp-drawer--left,
9846
- .idp-drawer--no-mask.idp-drawer--right {
9896
+ .idp-drawer-wrapper--no-mask .idp-drawer--left,
9897
+ .idp-drawer-wrapper--no-mask .idp-drawer--right {
9847
9898
  position: fixed;
9848
9899
  top: 0;
9849
9900
  bottom: 0;
9850
9901
  }
9851
9902
 
9852
- .idp-drawer--no-mask.idp-drawer--top,
9853
- .idp-drawer--no-mask.idp-drawer--bottom {
9903
+ .idp-drawer-wrapper--no-mask .idp-drawer--top,
9904
+ .idp-drawer-wrapper--no-mask .idp-drawer--bottom {
9854
9905
  position: fixed;
9855
9906
  left: 0;
9856
9907
  right: 0;
@@ -10107,13 +10158,13 @@ body {
10107
10158
  }
10108
10159
 
10109
10160
  /* 无遮罩层时的拖拽手柄定位 */
10110
- .idp-drawer--no-mask .idp-drawer-resize-handle--left,
10111
- .idp-drawer--no-mask .idp-drawer-resize-handle--right {
10161
+ .idp-drawer-wrapper--no-mask .idp-drawer-resize-handle--left,
10162
+ .idp-drawer-wrapper--no-mask .idp-drawer-resize-handle--right {
10112
10163
  position: fixed;
10113
10164
  }
10114
10165
 
10115
- .idp-drawer--no-mask .idp-drawer-resize-handle--top,
10116
- .idp-drawer--no-mask .idp-drawer-resize-handle--bottom {
10166
+ .idp-drawer-wrapper--no-mask .idp-drawer-resize-handle--top,
10167
+ .idp-drawer-wrapper--no-mask .idp-drawer-resize-handle--bottom {
10117
10168
  position: fixed;
10118
10169
  }
10119
10170
 
@@ -10268,21 +10319,22 @@ body {
10268
10319
  box-shadow: none;
10269
10320
  }
10270
10321
 
10271
- .idp-checkbox--disabled.idp-checkbox--checked .idp-checkbox__inner {
10322
+ /* 使用组合类避免多类选择器 */
10323
+ .idp-checkbox--disabled-checked .idp-checkbox__inner {
10272
10324
  background: var(--idp-input-disabled-bg);
10273
10325
  border-color: var(--idp-input-disabled-border);
10274
10326
  }
10275
10327
 
10276
- .idp-checkbox--disabled.idp-checkbox--checked .idp-checkbox__inner::after {
10328
+ .idp-checkbox--disabled-checked .idp-checkbox__inner::after {
10277
10329
  border-color: var(--idp-text-color-light);
10278
10330
  }
10279
10331
 
10280
- .idp-checkbox--disabled.idp-checkbox--indeterminate .idp-checkbox__inner {
10332
+ .idp-checkbox--disabled-indeterminate .idp-checkbox__inner {
10281
10333
  background: var(--idp-input-disabled-bg);
10282
10334
  border-color: var(--idp-input-disabled-border);
10283
10335
  }
10284
10336
 
10285
- .idp-checkbox--disabled.idp-checkbox--indeterminate .idp-checkbox__inner::after {
10337
+ .idp-checkbox--disabled-indeterminate .idp-checkbox__inner::after {
10286
10338
  background-color: var(--idp-text-color-light);
10287
10339
  }
10288
10340
 
@@ -10477,7 +10529,7 @@ body {
10477
10529
  }
10478
10530
 
10479
10531
  /* 显示状态 */
10480
- .idp-popconfirm.idp-popconfirm-visible {
10532
+ .idp-popconfirm-visible {
10481
10533
  opacity: 1;
10482
10534
  transform: scale(1) translateY(0);
10483
10535
  }
@@ -10753,7 +10805,7 @@ body {
10753
10805
  font-family: inherit;
10754
10806
  }
10755
10807
 
10756
- .idp-progress--line {
10808
+ .idp-progress-line {
10757
10809
  flex-direction: row;
10758
10810
  }
10759
10811
 
@@ -10841,31 +10893,31 @@ body {
10841
10893
  /* ============================================
10842
10894
  尺寸变体
10843
10895
  ============================================ */
10844
- .idp-progress--small .idp-progress-inner,
10845
- .idp-progress--small .idp-progress-steps,
10846
- .idp-progress--small .idp-progress-segments {
10896
+ .idp-progress-small .idp-progress-inner,
10897
+ .idp-progress-small .idp-progress-steps,
10898
+ .idp-progress-small .idp-progress-segments {
10847
10899
  height: 6px;
10848
10900
  border-radius: var(--idp-border-radius-sm);
10849
10901
  }
10850
10902
 
10851
- .idp-progress--small .idp-progress-bg {
10903
+ .idp-progress-small .idp-progress-bg {
10852
10904
  border-radius: var(--idp-border-radius-sm);
10853
10905
  }
10854
10906
 
10855
- .idp-progress--default .idp-progress-inner,
10856
- .idp-progress--default .idp-progress-steps,
10857
- .idp-progress--default .idp-progress-segments {
10907
+ .idp-progress-default .idp-progress-inner,
10908
+ .idp-progress-default .idp-progress-steps,
10909
+ .idp-progress-default .idp-progress-segments {
10858
10910
  height: 10px;
10859
10911
  }
10860
10912
 
10861
- .idp-progress--large .idp-progress-inner,
10862
- .idp-progress--large .idp-progress-steps,
10863
- .idp-progress--large .idp-progress-segments {
10913
+ .idp-progress-large .idp-progress-inner,
10914
+ .idp-progress-large .idp-progress-steps,
10915
+ .idp-progress-large .idp-progress-segments {
10864
10916
  height: 14px;
10865
10917
  }
10866
10918
 
10867
10919
  /* 大尺寸下增大字体 */
10868
- .idp-progress--large .idp-progress-info {
10920
+ .idp-progress-large .idp-progress-info {
10869
10921
  font-size: 16px;
10870
10922
  min-width: 48px;
10871
10923
  }
@@ -10873,7 +10925,7 @@ body {
10873
10925
  /* ============================================
10874
10926
  圆形进度条
10875
10927
  ============================================ */
10876
- .idp-progress--circle {
10928
+ .idp-progress-circle {
10877
10929
  position: relative;
10878
10930
  display: inline-flex;
10879
10931
  justify-content: center;
@@ -10881,14 +10933,18 @@ body {
10881
10933
  width: auto;
10882
10934
  }
10883
10935
 
10884
- .idp-progress--circle .idp-progress-info {
10936
+ .idp-progress-circle .idp-progress-info {
10885
10937
  position: absolute;
10886
10938
  top: 50%;
10887
10939
  left: 50%;
10888
10940
  transform: translate(-50%, -50%);
10889
10941
  margin: 0;
10942
+ display: flex;
10890
10943
  flex-direction: column;
10944
+ align-items: center;
10945
+ justify-content: center;
10891
10946
  gap: 4px;
10947
+ min-width: auto;
10892
10948
  }
10893
10949
 
10894
10950
  /* ============================================
@@ -10933,12 +10989,12 @@ body {
10933
10989
  /* ============================================
10934
10990
  激活状态动画
10935
10991
  ============================================ */
10936
- .idp-progress--active .idp-progress-bg {
10992
+ .idp-progress-active .idp-progress-bg {
10937
10993
  position: relative;
10938
10994
  overflow: hidden;
10939
10995
  }
10940
10996
 
10941
- .idp-progress--active .idp-progress-bg::after {
10997
+ .idp-progress-active .idp-progress-bg::after {
10942
10998
  content: '';
10943
10999
  position: absolute;
10944
11000
  top: 0;
@@ -10966,19 +11022,25 @@ body {
10966
11022
  /* ============================================
10967
11023
  仪表盘样式
10968
11024
  ============================================ */
10969
- .idp-progress--dashboard {
11025
+ .idp-progress-dashboard {
10970
11026
  position: relative;
10971
11027
  display: inline-flex;
10972
11028
  justify-content: center;
10973
11029
  align-items: center;
10974
11030
  }
10975
11031
 
10976
- .idp-progress--dashboard .idp-progress-info {
11032
+ .idp-progress-dashboard .idp-progress-info {
10977
11033
  position: absolute;
10978
11034
  top: 60%;
10979
11035
  left: 50%;
10980
11036
  transform: translate(-50%, -50%);
10981
11037
  margin: 0;
11038
+ display: flex;
11039
+ flex-direction: column;
11040
+ align-items: center;
11041
+ justify-content: center;
11042
+ gap: 4px;
11043
+ min-width: auto;
10982
11044
  }
10983
11045
 
10984
11046
  /* ============================================
@@ -11033,19 +11095,19 @@ body {
11033
11095
  }
11034
11096
 
11035
11097
  /* 小尺寸多段进度条 */
11036
- .idp-progress--small .idp-progress-segments {
11098
+ .idp-progress-small .idp-progress-segments {
11037
11099
  border-radius: var(--idp-border-radius-sm);
11038
11100
  }
11039
11101
 
11040
- .idp-progress--small .idp-progress-segment:first-child {
11102
+ .idp-progress-small .idp-progress-segment:first-child {
11041
11103
  border-radius: var(--idp-border-radius-sm) 0 0 var(--idp-border-radius-sm);
11042
11104
  }
11043
11105
 
11044
- .idp-progress--small .idp-progress-segment:last-child {
11106
+ .idp-progress-small .idp-progress-segment:last-child {
11045
11107
  border-radius: 0 var(--idp-border-radius-sm) var(--idp-border-radius-sm) 0;
11046
11108
  }
11047
11109
 
11048
- .idp-progress--small .idp-progress-segment:only-child {
11110
+ .idp-progress-small .idp-progress-segment:only-child {
11049
11111
  border-radius: var(--idp-border-radius-sm);
11050
11112
  }
11051
11113
 
@@ -11102,16 +11164,16 @@ body {
11102
11164
  }
11103
11165
 
11104
11166
  /* 小尺寸步骤进度条 */
11105
- .idp-progress--small .idp-progress-steps {
11167
+ .idp-progress-small .idp-progress-steps {
11106
11168
  border-radius: var(--idp-border-radius-sm);
11107
11169
  }
11108
11170
 
11109
11171
  /* 大尺寸步骤进度条 */
11110
- .idp-progress--large .idp-progress-steps {
11172
+ .idp-progress-large .idp-progress-steps {
11111
11173
  border-radius: var(--idp-border-radius-lg);
11112
11174
  }
11113
11175
 
11114
- .idp-progress--large .idp-progress-step {
11176
+ .idp-progress-large .idp-progress-step {
11115
11177
  border-radius: var(--idp-border-radius-md);
11116
11178
  }
11117
11179
 
@@ -11125,7 +11187,7 @@ body {
11125
11187
  margin-left: 8px;
11126
11188
  }
11127
11189
 
11128
- .idp-progress--large .idp-progress-info {
11190
+ .idp-progress-large .idp-progress-info {
11129
11191
  font-size: 14px;
11130
11192
  }
11131
11193
  }
@@ -11140,7 +11202,7 @@ body {
11140
11202
  }
11141
11203
 
11142
11204
  .idp-progress-bg--animated::before,
11143
- .idp-progress--active .idp-progress-bg::after {
11205
+ .idp-progress-active .idp-progress-bg::after {
11144
11206
  animation: none;
11145
11207
  }
11146
11208
  }
@@ -11190,19 +11252,19 @@ body {
11190
11252
  box-shadow: var(--timepicker-shadow-hover);
11191
11253
  }
11192
11254
 
11193
- .time-picker-trigger.focused {
11255
+ .time-picker-trigger.is-focused {
11194
11256
  border-color: var(--timepicker-primary);
11195
11257
  box-shadow: var(--timepicker-shadow-hover);
11196
11258
  }
11197
11259
 
11198
- .time-picker-trigger.disabled {
11260
+ .time-picker-trigger.is-disabled {
11199
11261
  background-color: var(--timepicker-bg-disabled);
11200
11262
  border-color: var(--timepicker-border);
11201
11263
  cursor: not-allowed;
11202
11264
  color: var(--timepicker-text-disabled);
11203
11265
  }
11204
11266
 
11205
- .time-picker-trigger.disabled:hover {
11267
+ .time-picker-trigger.is-disabled:hover {
11206
11268
  border-color: var(--timepicker-border);
11207
11269
  box-shadow: none;
11208
11270
  }
@@ -11235,11 +11297,11 @@ body {
11235
11297
  font-size: 14px;
11236
11298
  }
11237
11299
 
11238
- .time-picker-value.placeholder {
11300
+ .time-picker-value.is-placeholder {
11239
11301
  color: var(--timepicker-text-disabled);
11240
11302
  }
11241
11303
 
11242
- .time-picker-trigger.disabled .time-picker-value {
11304
+ .time-picker-trigger.is-disabled .time-picker-value {
11243
11305
  color: var(--timepicker-text-disabled);
11244
11306
  }
11245
11307
 
@@ -11311,7 +11373,7 @@ body {
11311
11373
  }
11312
11374
 
11313
11375
  /* 下拉面板打开时的旋转动画 */
11314
- .time-picker-icon.open {
11376
+ .time-picker-icon.is-open {
11315
11377
  transform: translate(-50%, -50%) rotate(180deg);
11316
11378
  }
11317
11379
 
@@ -11411,13 +11473,13 @@ body {
11411
11473
  background-color: var(--timepicker-bg-hover);
11412
11474
  }
11413
11475
 
11414
- .time-picker-option.selected {
11476
+ .time-picker-option.is-selected {
11415
11477
  background-color: var(--timepicker-primary-light);
11416
11478
  color: var(--timepicker-primary);
11417
11479
  font-weight: 500;
11418
11480
  }
11419
11481
 
11420
- .time-picker-option.selected::before {
11482
+ .time-picker-option.is-selected::before {
11421
11483
  content: '';
11422
11484
  position: absolute;
11423
11485
  left: 0;
@@ -11429,13 +11491,13 @@ body {
11429
11491
  border-radius: 0 2px 2px 0;
11430
11492
  }
11431
11493
 
11432
- .time-picker-option.disabled {
11494
+ .time-picker-option.is-disabled {
11433
11495
  color: var(--timepicker-text-disabled);
11434
11496
  cursor: not-allowed;
11435
11497
  background-color: transparent;
11436
11498
  }
11437
11499
 
11438
- .time-picker-option.disabled:hover {
11500
+ .time-picker-option.is-disabled:hover {
11439
11501
  background-color: transparent;
11440
11502
  }
11441
11503
 
@@ -11554,18 +11616,18 @@ body {
11554
11616
  box-shadow: var(--timepicker-shadow-hover);
11555
11617
  }
11556
11618
 
11557
- .time-range-picker-trigger.focused {
11619
+ .time-range-picker-trigger.is-focused {
11558
11620
  border-color: var(--timepicker-primary);
11559
11621
  box-shadow: var(--timepicker-shadow-hover);
11560
11622
  }
11561
11623
 
11562
- .time-range-picker-trigger.disabled {
11624
+ .time-range-picker-trigger.is-disabled {
11563
11625
  background-color: var(--timepicker-bg-disabled);
11564
11626
  border-color: var(--timepicker-border);
11565
11627
  cursor: not-allowed;
11566
11628
  }
11567
11629
 
11568
- .time-range-picker-trigger.disabled:hover {
11630
+ .time-range-picker-trigger.is-disabled:hover {
11569
11631
  border-color: var(--timepicker-border);
11570
11632
  box-shadow: none;
11571
11633
  }
@@ -11603,7 +11665,7 @@ body {
11603
11665
  background-color: var(--timepicker-bg-hover);
11604
11666
  }
11605
11667
 
11606
- .time-range-picker-input.active {
11668
+ .time-range-picker-input.is-active {
11607
11669
  background-color: var(--timepicker-primary-light);
11608
11670
  }
11609
11671
 
@@ -11614,7 +11676,7 @@ body {
11614
11676
  white-space: nowrap;
11615
11677
  }
11616
11678
 
11617
- .time-range-picker-value.placeholder {
11679
+ .time-range-picker-value.is-placeholder {
11618
11680
  color: var(--timepicker-text-disabled);
11619
11681
  }
11620
11682
 
@@ -13711,13 +13773,13 @@ body {
13711
13773
  }
13712
13774
 
13713
13775
  /* 水平布局 */
13714
- .idp-splitter.idp-splitter--horizontal {
13776
+ .idp-splitter-horizontal {
13715
13777
  flex-direction: row;
13716
13778
  align-items: stretch;
13717
13779
  }
13718
13780
 
13719
13781
  /* 垂直布局 */
13720
- .idp-splitter.idp-splitter--vertical {
13782
+ .idp-splitter-vertical {
13721
13783
  flex-direction: column;
13722
13784
  align-items: stretch;
13723
13785
  }
@@ -13733,23 +13795,23 @@ body {
13733
13795
  }
13734
13796
 
13735
13797
  /* 水平布局面板 */
13736
- .idp-splitter--horizontal .idp-splitter__panel {
13798
+ .idp-splitter-horizontal .idp-splitter__panel {
13737
13799
  height: auto;
13738
13800
  min-height: 100%;
13739
13801
  }
13740
13802
 
13741
13803
  /* 垂直布局面板 */
13742
- .idp-splitter--vertical .idp-splitter__panel {
13804
+ .idp-splitter-vertical .idp-splitter__panel {
13743
13805
  width: auto;
13744
13806
  min-width: 100%;
13745
13807
  }
13746
13808
 
13747
13809
  /* 面板阴影效果 - 非最后一个面板添加阴影 */
13748
- .idp-splitter--horizontal .idp-splitter__panel:not(:last-of-type) {
13810
+ .idp-splitter-horizontal .idp-splitter__panel:not(:last-of-type) {
13749
13811
  box-shadow: var(--idp-splitter-panel-shadow);
13750
13812
  }
13751
13813
 
13752
- .idp-splitter--vertical .idp-splitter__panel:not(:last-of-type) {
13814
+ .idp-splitter-vertical .idp-splitter__panel:not(:last-of-type) {
13753
13815
  box-shadow: var(--idp-splitter-panel-shadow-vertical);
13754
13816
  }
13755
13817
 
@@ -13758,7 +13820,7 @@ body {
13758
13820
  box-shadow: 2px 0 12px rgba(0, 0, 0, 0.12);
13759
13821
  }
13760
13822
 
13761
- .idp-splitter--vertical:hover .idp-splitter__panel:not(:last-of-type) {
13823
+ .idp-splitter-vertical:hover .idp-splitter__panel:not(:last-of-type) {
13762
13824
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
13763
13825
  }
13764
13826
 
@@ -13783,7 +13845,7 @@ body {
13783
13845
  }
13784
13846
 
13785
13847
  /* 水平分割条 */
13786
- .idp-splitter--horizontal .idp-splitter__bar {
13848
+ .idp-splitter-horizontal .idp-splitter__bar {
13787
13849
  cursor: col-resize;
13788
13850
  width: var(--idp-splitter-bar-size);
13789
13851
  height: 100%;
@@ -13792,7 +13854,7 @@ body {
13792
13854
  }
13793
13855
 
13794
13856
  /* 垂直分割条 */
13795
- .idp-splitter--vertical .idp-splitter__bar {
13857
+ .idp-splitter-vertical .idp-splitter__bar {
13796
13858
  cursor: row-resize;
13797
13859
  width: 100%;
13798
13860
  height: var(--idp-splitter-bar-size);
@@ -13801,26 +13863,26 @@ body {
13801
13863
  }
13802
13864
 
13803
13865
  /* 分割条悬停状态 - 渐变背景和阴影增强 */
13804
- .idp-splitter__bar:not(.idp-splitter__bar--disabled):hover {
13866
+ .idp-splitter__bar:not(.idp-splitter__bar-disabled):hover {
13805
13867
  background: var(--idp-splitter-bar-hover-bg);
13806
13868
  box-shadow: var(--idp-splitter-shadow-md);
13807
13869
  }
13808
13870
 
13809
13871
  /* 分割条拖拽状态 - 发光效果和层级提升 */
13810
- .idp-splitter__bar--dragging {
13872
+ .idp-splitter__bar-dragging {
13811
13873
  z-index: 100 !important;
13812
13874
  background: var(--idp-splitter-bar-hover-bg);
13813
13875
  box-shadow: var(--idp-splitter-shadow-active);
13814
13876
  }
13815
13877
 
13816
13878
  /* 分割条禁用状态 */
13817
- .idp-splitter__bar--disabled {
13879
+ .idp-splitter__bar-disabled {
13818
13880
  cursor: not-allowed !important;
13819
13881
  background: var(--idp-bg-color-light);
13820
13882
  opacity: var(--idp-opacity-disabled);
13821
13883
  }
13822
13884
 
13823
- .idp-splitter__bar--disabled .idp-splitter__line {
13885
+ .idp-splitter__bar-disabled .idp-splitter__line {
13824
13886
  background: var(--idp-splitter-line-disabled-color) !important;
13825
13887
  }
13826
13888
 
@@ -13835,7 +13897,7 @@ body {
13835
13897
  }
13836
13898
 
13837
13899
  /* 水平分割线 - 垂直方向的小圆点 */
13838
- .idp-splitter--horizontal .idp-splitter__line {
13900
+ .idp-splitter-horizontal .idp-splitter__line {
13839
13901
  width: var(--idp-splitter-line-width);
13840
13902
  height: var(--idp-splitter-line-length);
13841
13903
  min-height: var(--idp-splitter-line-min-length);
@@ -13843,7 +13905,7 @@ body {
13843
13905
  }
13844
13906
 
13845
13907
  /* 垂直分割线 - 水平方向的小圆点 */
13846
- .idp-splitter--vertical .idp-splitter__line {
13908
+ .idp-splitter-vertical .idp-splitter__line {
13847
13909
  width: var(--idp-splitter-line-length);
13848
13910
  min-width: var(--idp-splitter-line-min-length);
13849
13911
  height: var(--idp-splitter-line-width);
@@ -13851,13 +13913,13 @@ body {
13851
13913
  }
13852
13914
 
13853
13915
  /* 分割线悬停状态 - 主色调渐变 */
13854
- .idp-splitter__bar:not(.idp-splitter__bar--disabled):hover .idp-splitter__line {
13916
+ .idp-splitter__bar:not(.idp-splitter__bar-disabled):hover .idp-splitter__line {
13855
13917
  background: var(--idp-splitter-line-hover-bg);
13856
13918
  box-shadow: 0 0 6px rgba(24, 144, 255, 0.4);
13857
13919
  }
13858
13920
 
13859
13921
  /* 分割线拖拽激活状态 */
13860
- .idp-splitter__bar--dragging .idp-splitter__line {
13922
+ .idp-splitter__bar-dragging .idp-splitter__line {
13861
13923
  background: var(--idp-splitter-line-active-color) !important;
13862
13924
  box-shadow: var(--idp-splitter-shadow-active);
13863
13925
  }
@@ -13865,13 +13927,13 @@ body {
13865
13927
  /* ============================================
13866
13928
  拖拽时的全局样式
13867
13929
  ============================================ */
13868
- .idp-splitter--dragging {
13930
+ .idp-splitter-dragging {
13869
13931
  -webkit-user-select: none;
13870
13932
  -moz-user-select: none;
13871
13933
  user-select: none;
13872
13934
  }
13873
13935
 
13874
- .idp-splitter--dragging .idp-splitter__panel {
13936
+ .idp-splitter-dragging .idp-splitter__panel {
13875
13937
  pointer-events: none;
13876
13938
  }
13877
13939
 
@@ -13887,22 +13949,22 @@ body {
13887
13949
 
13888
13950
  /* 触摸设备优化 */
13889
13951
  @media (pointer: coarse) {
13890
- .idp-splitter--horizontal .idp-splitter__bar {
13952
+ .idp-splitter-horizontal .idp-splitter__bar {
13891
13953
  width: 14px;
13892
13954
  }
13893
13955
 
13894
- .idp-splitter--vertical .idp-splitter__bar {
13956
+ .idp-splitter-vertical .idp-splitter__bar {
13895
13957
  height: 14px;
13896
13958
  }
13897
13959
 
13898
13960
  /* 触摸设备增大分割线 */
13899
- .idp-splitter--horizontal .idp-splitter__line {
13961
+ .idp-splitter-horizontal .idp-splitter__line {
13900
13962
  width: 3px;
13901
13963
  height: 40px;
13902
13964
  min-height: 40px;
13903
13965
  }
13904
13966
 
13905
- .idp-splitter--vertical .idp-splitter__line {
13967
+ .idp-splitter-vertical .idp-splitter__line {
13906
13968
  width: 40px;
13907
13969
  min-width: 40px;
13908
13970
  height: 3px;