@datametria/vue-components 2.3.1 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +625 -594
  2. package/dist/index.es.js +1962 -1887
  3. package/dist/index.umd.js +6 -6
  4. package/dist/src/components/DatametriaForm.vue.d.ts +1 -1
  5. package/dist/src/components/DatametriaInput.vue.d.ts +9 -1
  6. package/dist/src/components/DatametriaSelect.vue.d.ts +10 -1
  7. package/dist/vue-components.css +1 -1
  8. package/package.json +103 -102
  9. package/src/components/DatametriaAlert.vue +151 -133
  10. package/src/components/DatametriaAutocomplete.vue +250 -229
  11. package/src/components/DatametriaAvatar.vue +256 -238
  12. package/src/components/DatametriaBadge.vue +101 -96
  13. package/src/components/DatametriaBreadcrumb.vue +132 -128
  14. package/src/components/DatametriaButton.vue +191 -173
  15. package/src/components/DatametriaCard.vue +84 -66
  16. package/src/components/DatametriaCheckbox.vue +197 -193
  17. package/src/components/DatametriaChip.vue +159 -141
  18. package/src/components/DatametriaContainer.vue +70 -52
  19. package/src/components/DatametriaDataTable.vue +318 -300
  20. package/src/components/DatametriaDatePicker.vue +396 -378
  21. package/src/components/DatametriaDialog.vue +297 -293
  22. package/src/components/DatametriaDivider.vue +105 -98
  23. package/src/components/DatametriaDropdown.vue +356 -350
  24. package/src/components/DatametriaEmpty.vue +155 -151
  25. package/src/components/DatametriaFileUpload.vue +413 -395
  26. package/src/components/DatametriaFloatingBar.vue +144 -126
  27. package/src/components/DatametriaForm.vue +174 -156
  28. package/src/components/DatametriaFormItem.vue +183 -179
  29. package/src/components/DatametriaGrid.vue +55 -37
  30. package/src/components/DatametriaInput.vue +314 -263
  31. package/src/components/DatametriaMenu.vue +618 -600
  32. package/src/components/DatametriaModal.vue +147 -129
  33. package/src/components/DatametriaNavbar.vue +277 -223
  34. package/src/components/DatametriaPagination.vue +375 -371
  35. package/src/components/DatametriaPasswordInput.vue +446 -426
  36. package/src/components/DatametriaPopconfirm.vue +240 -234
  37. package/src/components/DatametriaProgress.vue +228 -224
  38. package/src/components/DatametriaRadio.vue +151 -147
  39. package/src/components/DatametriaResult.vue +135 -131
  40. package/src/components/DatametriaSelect.vue +311 -211
  41. package/src/components/DatametriaSidebar.vue +294 -222
  42. package/src/components/DatametriaSkeleton.vue +257 -234
  43. package/src/components/DatametriaSlider.vue +409 -391
  44. package/src/components/DatametriaSortableTable.vue +826 -802
  45. package/src/components/DatametriaSpinner.vue +114 -110
  46. package/src/components/DatametriaSteps.vue +318 -312
  47. package/src/components/DatametriaSwitch.vue +146 -142
  48. package/src/components/DatametriaTabPane.vue +94 -76
  49. package/src/components/DatametriaTable.vue +118 -100
  50. package/src/components/DatametriaTabs.vue +315 -297
  51. package/src/components/DatametriaTextarea.vue +213 -195
  52. package/src/components/DatametriaTimePicker.vue +317 -299
  53. package/src/components/DatametriaToast.vue +176 -176
  54. package/src/components/DatametriaTooltip.vue +421 -400
  55. package/src/components/DatametriaTree.vue +126 -122
  56. package/src/components/DatametriaTreeNode.vue +176 -172
  57. package/src/components/DatametriaUpload.vue +379 -361
  58. package/src/components/__tests__/DatametriaAlert.test.js +35 -35
  59. package/src/components/__tests__/DatametriaAlert.test.ts +190 -190
  60. package/src/components/__tests__/DatametriaAvatar.test.ts +151 -151
  61. package/src/components/__tests__/DatametriaBadge.test.js +29 -29
  62. package/src/components/__tests__/DatametriaBadge.test.ts +167 -167
  63. package/src/components/__tests__/DatametriaBreadcrumb.test.ts +187 -0
  64. package/src/components/__tests__/DatametriaButton.test.js +30 -30
  65. package/src/components/__tests__/DatametriaButton.test.ts +283 -283
  66. package/src/components/__tests__/DatametriaCard.test.ts +201 -201
  67. package/src/components/__tests__/DatametriaCheckbox.test.ts +204 -0
  68. package/src/components/__tests__/DatametriaChip.test.js +38 -38
  69. package/src/components/__tests__/DatametriaContainer.test.ts +52 -52
  70. package/src/components/__tests__/DatametriaDialog.test.ts +338 -0
  71. package/src/components/__tests__/DatametriaDivider.test.ts +54 -54
  72. package/src/components/__tests__/DatametriaDropdown.test.ts +357 -0
  73. package/src/components/__tests__/DatametriaEmpty.test.ts +261 -0
  74. package/src/components/__tests__/DatametriaFileUpload.test.ts +290 -290
  75. package/src/components/__tests__/DatametriaFloatingBar.test.ts +137 -137
  76. package/src/components/__tests__/DatametriaForm.test.ts +96 -0
  77. package/src/components/__tests__/DatametriaFormItem.test.ts +58 -0
  78. package/src/components/__tests__/DatametriaGrid.test.ts +31 -31
  79. package/src/components/__tests__/DatametriaInput.test.ts +72 -72
  80. package/src/components/__tests__/DatametriaMenu.test.ts +366 -366
  81. package/src/components/__tests__/DatametriaModal.test.ts +86 -86
  82. package/src/components/__tests__/DatametriaNavbar.test.js +48 -48
  83. package/src/components/__tests__/DatametriaNavbar.test.ts +203 -203
  84. package/src/components/__tests__/DatametriaPasswordInput.test.js +305 -305
  85. package/src/components/__tests__/DatametriaRadio.test.ts +195 -0
  86. package/src/components/__tests__/DatametriaSelect.test.ts +77 -77
  87. package/src/components/__tests__/DatametriaSidebar.test.ts +169 -169
  88. package/src/components/__tests__/DatametriaSlider.test.ts +261 -261
  89. package/src/components/__tests__/DatametriaSortableTable.test.js +168 -168
  90. package/src/components/__tests__/DatametriaSpinner.test.ts +156 -156
  91. package/src/components/__tests__/DatametriaSteps.test.ts +211 -0
  92. package/src/components/__tests__/DatametriaSwitch.test.ts +129 -0
  93. package/src/components/__tests__/DatametriaTabPane.test.ts +205 -0
  94. package/src/components/__tests__/DatametriaTable.test.ts +97 -97
  95. package/src/components/__tests__/DatametriaTabs.test.ts +232 -232
  96. package/src/components/__tests__/DatametriaToast.test.js +48 -48
  97. package/src/components/__tests__/DatametriaToast.test.ts +99 -99
  98. package/src/components/__tests__/DatametriaTree.test.ts +376 -0
  99. package/src/components/__tests__/index.test.ts +48 -0
  100. package/src/composables/useAccessibilityScale.ts +94 -94
  101. package/src/composables/useBreakpoints.ts +82 -82
  102. package/src/composables/useHapticFeedback.ts +439 -439
  103. package/src/composables/useRipple.ts +218 -218
  104. package/src/composables/useTheme.ts +5 -1
  105. package/src/index.ts +84 -84
  106. package/src/stories/Variants.stories.js +95 -95
  107. package/src/styles/design-tokens.css +623 -623
  108. package/src/theme/ThemeProvider.vue +96 -96
  109. package/src/theme/__tests__/ThemeProvider.test.ts +208 -208
  110. package/src/theme/__tests__/constants.test.ts +31 -31
  111. package/src/theme/__tests__/presets.test.ts +166 -166
  112. package/src/theme/__tests__/tokens.test.ts +155 -155
  113. package/src/theme/__tests__/types.test.ts +153 -153
  114. package/src/theme/__tests__/useTheme.test.ts +146 -146
  115. package/src/theme/constants.ts +14 -14
  116. package/src/theme/index.ts +12 -12
  117. package/src/theme/presets/datametria.ts +94 -94
  118. package/src/theme/presets/default.ts +94 -94
  119. package/src/theme/presets/index.ts +8 -8
  120. package/src/theme/tokens/colors.ts +28 -28
  121. package/src/theme/tokens/index.ts +47 -47
  122. package/src/theme/tokens/spacing.ts +21 -21
  123. package/src/theme/tokens/typography.ts +35 -35
  124. package/src/theme/types.ts +111 -111
  125. package/src/theme/useTheme.ts +28 -28
  126. package/src/types/index.ts +55 -55
@@ -1,314 +1,320 @@
1
- <template>
2
- <div
3
- class="datametria-steps"
4
- :class="[
5
- `datametria-steps--${direction}`,
6
- { 'datametria-steps--simple': simple }
7
- ]"
8
- >
9
- <div
10
- v-for="(item, index) in items"
11
- :key="index"
12
- class="datametria-steps__item"
13
- :class="[
14
- `is-${getStepStatus(index)}`,
15
- { 'is-last': index === items.length - 1 }
16
- ]"
17
- >
18
- <div class="datametria-steps__head">
19
- <div class="datametria-steps__line" v-if="index > 0">
20
- <div class="datametria-steps__line-inner"></div>
21
- </div>
22
- <div class="datametria-steps__icon">
23
- <span v-if="getStepStatus(index) === 'finish'" class="icon-check">✓</span>
24
- <span v-else-if="getStepStatus(index) === 'error'" class="icon-error">✕</span>
25
- <span v-else class="icon-number">{{ index + 1 }}</span>
26
- </div>
27
- </div>
28
- <div class="datametria-steps__main">
29
- <div class="datametria-steps__title">{{ item.title }}</div>
30
- <div v-if="item.description" class="datametria-steps__description">
31
- {{ item.description }}
32
- </div>
33
- </div>
34
- </div>
35
- </div>
36
- </template>
37
-
38
- <script setup lang="ts">
39
- import { computed } from 'vue'
40
-
41
- /**
42
- * DatametriaSteps - Componente de passos/wizard
43
- *
44
- * @component
45
- * @example
46
- * <DatametriaSteps
47
- * :active="1"
48
- * :items="[
49
- * { title: 'Passo 1', description: 'Descrição' },
50
- * { title: 'Passo 2' },
51
- * { title: 'Passo 3' }
52
- * ]"
53
- * direction="horizontal"
54
- * />
55
- */
56
-
57
- export interface StepItem {
58
- /** Título do passo */
59
- title: string
60
- /** Descrição do passo (opcional) */
61
- description?: string
62
- /** Status customizado do passo */
63
- status?: 'wait' | 'process' | 'finish' | 'error'
64
- }
65
-
66
- interface Props {
67
- /** Índice do passo ativo (0-based) */
68
- active?: number
69
- /** Array de itens dos passos */
70
- items: StepItem[]
71
- /** Direção dos passos */
72
- direction?: 'horizontal' | 'vertical'
73
- /** Modo simples (sem descrição) */
74
- simple?: boolean
75
- /** Status global (sobrescreve status individual) */
76
- status?: 'wait' | 'process' | 'finish' | 'error'
77
- }
78
-
79
- const props = withDefaults(defineProps<Props>(), {
80
- active: 0,
81
- direction: 'horizontal',
82
- simple: false
83
- })
84
-
85
- const emit = defineEmits<{
86
- change: [index: number]
87
- }>()
88
-
89
- /**
90
- * Determina o status de um passo baseado no índice ativo
91
- */
92
- const getStepStatus = (index: number): 'wait' | 'process' | 'finish' | 'error' => {
93
- // Status customizado do item tem prioridade
94
- if (props.items[index]?.status) {
95
- return props.items[index].status!
1
+ <template>
2
+ <div
3
+ class="datametria-steps"
4
+ :class="[
5
+ `datametria-steps--${direction}`,
6
+ { 'datametria-steps--simple': simple }
7
+ ]"
8
+ >
9
+ <div
10
+ v-for="(item, index) in items"
11
+ :key="index"
12
+ class="datametria-steps__item"
13
+ :class="[
14
+ `is-${getStepStatus(index)}`,
15
+ { 'is-last': index === items.length - 1 }
16
+ ]"
17
+ >
18
+ <div class="datametria-steps__head">
19
+ <div class="datametria-steps__line" v-if="index > 0">
20
+ <div class="datametria-steps__line-inner"></div>
21
+ </div>
22
+ <div class="datametria-steps__icon">
23
+ <span v-if="getStepStatus(index) === 'finish'" class="icon-check">✓</span>
24
+ <span v-else-if="getStepStatus(index) === 'error'" class="icon-error">✕</span>
25
+ <span v-else class="icon-number">{{ index + 1 }}</span>
26
+ </div>
27
+ </div>
28
+ <div class="datametria-steps__main">
29
+ <div class="datametria-steps__title">{{ item.title }}</div>
30
+ <div v-if="item.description" class="datametria-steps__description">
31
+ {{ item.description }}
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </template>
37
+
38
+ <script setup lang="ts">
39
+ import { computed } from 'vue'
40
+
41
+ /**
42
+ * DatametriaSteps - Componente de passos/wizard
43
+ *
44
+ * @component
45
+ * @example
46
+ * <DatametriaSteps
47
+ * :active="1"
48
+ * :items="[
49
+ * { title: 'Passo 1', description: 'Descrição' },
50
+ * { title: 'Passo 2' },
51
+ * { title: 'Passo 3' }
52
+ * ]"
53
+ * direction="horizontal"
54
+ * />
55
+ */
56
+
57
+ export interface StepItem {
58
+ /** Título do passo */
59
+ title: string
60
+ /** Descrição do passo (opcional) */
61
+ description?: string
62
+ /** Status customizado do passo */
63
+ status?: 'wait' | 'process' | 'finish' | 'error'
64
+ }
65
+
66
+ interface Props {
67
+ /** Índice do passo ativo (0-based) */
68
+ active?: number
69
+ /** Array de itens dos passos */
70
+ items: StepItem[]
71
+ /** Direção dos passos */
72
+ direction?: 'horizontal' | 'vertical'
73
+ /** Modo simples (sem descrição) */
74
+ simple?: boolean
75
+ /** Status global (sobrescreve status individual) */
76
+ status?: 'wait' | 'process' | 'finish' | 'error'
77
+ }
78
+
79
+ const props = withDefaults(defineProps<Props>(), {
80
+ active: 0,
81
+ direction: 'horizontal',
82
+ simple: false
83
+ })
84
+
85
+ const emit = defineEmits<{
86
+ change: [index: number]
87
+ }>()
88
+
89
+ /**
90
+ * Determina o status de um passo baseado no índice ativo
91
+ */
92
+ const getStepStatus = (index: number): 'wait' | 'process' | 'finish' | 'error' => {
93
+ // Status customizado do item tem prioridade
94
+ if (props.items[index]?.status) {
95
+ return props.items[index].status!
96
+ }
97
+
98
+ // Status global tem segunda prioridade
99
+ if (props.status) {
100
+ return props.status
101
+ }
102
+
103
+ // Status baseado no índice ativo
104
+ if (index < props.active) {
105
+ return 'finish'
106
+ } else if (index === props.active) {
107
+ return 'process'
108
+ } else {
109
+ return 'wait'
110
+ }
111
+ }
112
+ </script>
113
+
114
+ <style scoped>
115
+ .datametria-steps {
116
+ display: flex;
117
+ font-size: 14px;
118
+ }
119
+
120
+ .datametria-steps--horizontal {
121
+ flex-direction: row;
122
+ }
123
+
124
+ .datametria-steps--vertical {
125
+ flex-direction: column;
126
+ }
127
+
128
+ .datametria-steps__item {
129
+ position: relative;
130
+ flex: 1;
131
+ display: flex;
132
+ overflow: hidden;
133
+ }
134
+
135
+ .datametria-steps--horizontal .datametria-steps__item {
136
+ flex-direction: column;
137
+ }
138
+
139
+ .datametria-steps--vertical .datametria-steps__item {
140
+ flex-direction: row;
141
+ padding-bottom: 24px;
142
+ }
143
+
144
+ .datametria-steps--vertical .datametria-steps__item.is-last {
145
+ padding-bottom: 0;
146
+ }
147
+
148
+ .datametria-steps__head {
149
+ position: relative;
150
+ display: flex;
151
+ align-items: center;
152
+ }
153
+
154
+ .datametria-steps--horizontal .datametria-steps__head {
155
+ flex-direction: column;
156
+ margin-bottom: 8px;
157
+ }
158
+
159
+ .datametria-steps--vertical .datametria-steps__head {
160
+ flex-direction: column;
161
+ margin-right: 16px;
162
+ flex-shrink: 0;
163
+ }
164
+
165
+ .datametria-steps__icon {
166
+ width: 32px;
167
+ height: 32px;
168
+ border-radius: 50%;
169
+ display: flex;
170
+ align-items: center;
171
+ justify-content: center;
172
+ font-size: 16px;
173
+ font-weight: 500;
174
+ border: 2px solid var(--datametria-border, #dcdfe6);
175
+ background: var(--datametria-bg, #fff);
176
+ color: var(--datametria-text-secondary, #909399);
177
+ transition: all 0.3s;
178
+ z-index: 1;
179
+ }
180
+
181
+ .datametria-steps__item.is-process .datametria-steps__icon {
182
+ border-color: var(--datametria-primary, #0072ce);
183
+ background: var(--datametria-primary, #0072ce);
184
+ color: #fff;
185
+ }
186
+
187
+ .datametria-steps__item.is-finish .datametria-steps__icon {
188
+ border-color: var(--datametria-success, #67c23a);
189
+ background: var(--datametria-success, #67c23a);
190
+ color: #fff;
191
+ }
192
+
193
+ .datametria-steps__item.is-error .datametria-steps__icon {
194
+ border-color: var(--datametria-danger, #f56c6c);
195
+ background: var(--datametria-danger, #f56c6c);
196
+ color: #fff;
197
+ }
198
+
199
+ .datametria-steps__line {
200
+ position: absolute;
201
+ background: var(--datametria-border, #dcdfe6);
202
+ }
203
+
204
+ .datametria-steps--horizontal .datametria-steps__line {
205
+ height: 2px;
206
+ top: 15px;
207
+ left: -50%;
208
+ right: 50%;
209
+ }
210
+
211
+ .datametria-steps--vertical .datametria-steps__line {
212
+ width: 2px;
213
+ top: 32px;
214
+ bottom: 0;
215
+ left: 15px;
216
+ }
217
+
218
+ .datametria-steps__line-inner {
219
+ width: 0;
220
+ height: 100%;
221
+ background: var(--datametria-primary, #0072ce);
222
+ transition: width 0.3s, height 0.3s;
223
+ }
224
+
225
+ .datametria-steps__item.is-finish .datametria-steps__line-inner,
226
+ .datametria-steps__item.is-process .datametria-steps__line-inner {
227
+ width: 100%;
228
+ height: 100%;
229
+ background: var(--datametria-success, #67c23a);
230
+ }
231
+
232
+ .datametria-steps__item.is-error .datametria-steps__line-inner {
233
+ width: 100%;
234
+ height: 100%;
235
+ background: var(--datametria-danger, #f56c6c);
236
+ }
237
+
238
+ .datametria-steps__main {
239
+ text-align: center;
240
+ }
241
+
242
+ .datametria-steps--vertical .datametria-steps__main {
243
+ text-align: left;
244
+ flex: 1;
245
+ }
246
+
247
+ .datametria-steps__title {
248
+ font-size: 14px;
249
+ font-weight: 500;
250
+ color: var(--datametria-text-primary, #303133);
251
+ line-height: 1.5;
252
+ }
253
+
254
+ .datametria-steps__item.is-wait .datametria-steps__title {
255
+ color: var(--datametria-text-secondary, #909399);
256
+ }
257
+
258
+ .datametria-steps__item.is-process .datametria-steps__title {
259
+ color: var(--datametria-primary, #0072ce);
260
+ }
261
+
262
+ .datametria-steps__item.is-finish .datametria-steps__title {
263
+ color: var(--datametria-success, #67c23a);
264
+ }
265
+
266
+ .datametria-steps__item.is-error .datametria-steps__title {
267
+ color: var(--datametria-danger, #f56c6c);
268
+ }
269
+
270
+ .datametria-steps__description {
271
+ font-size: 12px;
272
+ color: var(--datametria-text-secondary, #909399);
273
+ margin-top: 4px;
274
+ line-height: 1.5;
275
+ }
276
+
277
+ .datametria-steps--simple .datametria-steps__description {
278
+ display: none;
279
+ }
280
+
281
+ /* Dark mode */
282
+ @media (prefers-color-scheme: dark) {
283
+ .datametria-steps__icon {
284
+ border-color: var(--datametria-border-dark, #4c4d4f);
285
+ background: var(--datametria-bg-dark, #1d1e1f);
286
+ color: var(--datametria-text-secondary-dark, #909399);
96
287
  }
97
-
98
- // Status global tem segunda prioridade
99
- if (props.status) {
100
- return props.status
101
- }
102
-
103
- // Status baseado no índice ativo
104
- if (index < props.active) {
105
- return 'finish'
106
- } else if (index === props.active) {
107
- return 'process'
108
- } else {
109
- return 'wait'
110
- }
111
- }
112
- </script>
113
-
114
- <style scoped>
115
- .datametria-steps {
116
- display: flex;
117
- font-size: 14px;
118
- }
119
-
120
- .datametria-steps--horizontal {
121
- flex-direction: row;
122
- }
123
-
124
- .datametria-steps--vertical {
125
- flex-direction: column;
126
- }
127
-
128
- .datametria-steps__item {
129
- position: relative;
130
- flex: 1;
131
- display: flex;
132
- overflow: hidden;
133
- }
134
-
135
- .datametria-steps--horizontal .datametria-steps__item {
136
- flex-direction: column;
137
- }
138
-
139
- .datametria-steps--vertical .datametria-steps__item {
140
- flex-direction: row;
141
- padding-bottom: 24px;
142
- }
143
-
144
- .datametria-steps--vertical .datametria-steps__item.is-last {
145
- padding-bottom: 0;
146
- }
147
-
148
- .datametria-steps__head {
149
- position: relative;
150
- display: flex;
151
- align-items: center;
152
- }
153
-
154
- .datametria-steps--horizontal .datametria-steps__head {
155
- flex-direction: column;
156
- margin-bottom: 8px;
157
- }
158
-
159
- .datametria-steps--vertical .datametria-steps__head {
160
- flex-direction: column;
161
- margin-right: 16px;
162
- flex-shrink: 0;
163
- }
164
-
165
- .datametria-steps__icon {
166
- width: 32px;
167
- height: 32px;
168
- border-radius: 50%;
169
- display: flex;
170
- align-items: center;
171
- justify-content: center;
172
- font-size: 16px;
173
- font-weight: 500;
174
- border: 2px solid var(--datametria-border, #dcdfe6);
175
- background: var(--datametria-bg, #fff);
176
- color: var(--datametria-text-secondary, #909399);
177
- transition: all 0.3s;
178
- z-index: 1;
179
- }
180
-
181
- .datametria-steps__item.is-process .datametria-steps__icon {
182
- border-color: var(--datametria-primary, #0072ce);
183
- background: var(--datametria-primary, #0072ce);
184
- color: #fff;
185
- }
186
-
187
- .datametria-steps__item.is-finish .datametria-steps__icon {
188
- border-color: var(--datametria-success, #67c23a);
189
- background: var(--datametria-success, #67c23a);
190
- color: #fff;
191
- }
192
-
193
- .datametria-steps__item.is-error .datametria-steps__icon {
194
- border-color: var(--datametria-danger, #f56c6c);
195
- background: var(--datametria-danger, #f56c6c);
196
- color: #fff;
197
- }
198
-
199
- .datametria-steps__line {
200
- position: absolute;
201
- background: var(--datametria-border, #dcdfe6);
202
- }
203
-
204
- .datametria-steps--horizontal .datametria-steps__line {
205
- height: 2px;
206
- top: 15px;
207
- left: -50%;
208
- right: 50%;
209
- }
210
-
211
- .datametria-steps--vertical .datametria-steps__line {
212
- width: 2px;
213
- top: 32px;
214
- bottom: 0;
215
- left: 15px;
216
- }
217
288
 
218
- .datametria-steps__line-inner {
219
- width: 0;
220
- height: 100%;
221
- background: var(--datametria-primary, #0072ce);
222
- transition: width 0.3s, height 0.3s;
223
- }
224
-
225
- .datametria-steps__item.is-finish .datametria-steps__line-inner,
226
- .datametria-steps__item.is-process .datametria-steps__line-inner {
227
- width: 100%;
228
- height: 100%;
229
- background: var(--datametria-success, #67c23a);
230
- }
231
-
232
- .datametria-steps__item.is-error .datametria-steps__line-inner {
233
- width: 100%;
234
- height: 100%;
235
- background: var(--datametria-danger, #f56c6c);
236
- }
237
-
238
- .datametria-steps__main {
239
- text-align: center;
240
- }
241
-
242
- .datametria-steps--vertical .datametria-steps__main {
243
- text-align: left;
244
- flex: 1;
245
- }
246
-
247
- .datametria-steps__title {
248
- font-size: 14px;
249
- font-weight: 500;
250
- color: var(--datametria-text-primary, #303133);
251
- line-height: 1.5;
252
- }
253
-
254
- .datametria-steps__item.is-wait .datametria-steps__title {
255
- color: var(--datametria-text-secondary, #909399);
256
- }
257
-
258
- .datametria-steps__item.is-process .datametria-steps__title {
259
- color: var(--datametria-primary, #0072ce);
260
- }
261
-
262
- .datametria-steps__item.is-finish .datametria-steps__title {
263
- color: var(--datametria-success, #67c23a);
264
- }
265
-
266
- .datametria-steps__item.is-error .datametria-steps__title {
267
- color: var(--datametria-danger, #f56c6c);
268
- }
269
-
270
- .datametria-steps__description {
271
- font-size: 12px;
272
- color: var(--datametria-text-secondary, #909399);
273
- margin-top: 4px;
274
- line-height: 1.5;
275
- }
276
-
277
- .datametria-steps--simple .datametria-steps__description {
278
- display: none;
279
- }
280
-
281
- /* Dark mode */
282
- @media (prefers-color-scheme: dark) {
283
- .datametria-steps__icon {
284
- border-color: var(--datametria-border-dark, #4c4d4f);
285
- background: var(--datametria-bg-dark, #1d1e1f);
286
- color: var(--datametria-text-secondary-dark, #909399);
287
- }
288
-
289
- .datametria-steps__item.is-process .datametria-steps__icon {
290
- border-color: var(--datametria-primary-dark, #409eff);
291
- background: var(--datametria-primary-dark, #409eff);
292
- }
293
-
294
- .datametria-steps__line {
295
- background: var(--datametria-border-dark, #4c4d4f);
296
- }
297
-
298
- .datametria-steps__title {
299
- color: var(--datametria-text-primary-dark, #e5eaf3);
300
- }
301
-
302
- .datametria-steps__item.is-wait .datametria-steps__title {
303
- color: var(--datametria-text-secondary-dark, #909399);
304
- }
305
-
306
- .datametria-steps__item.is-process .datametria-steps__title {
307
- color: var(--datametria-primary-dark, #409eff);
308
- }
309
-
310
- .datametria-steps__description {
311
- color: var(--datametria-text-secondary-dark, #909399);
312
- }
313
- }
314
- </style>
289
+ [data-theme="dark"] .datametria-steps__icon {
290
+ border-color: var(--datametria-border-dark, #4c4d4f);
291
+ background: var(--datametria-bg-dark, #1d1e1f);
292
+ color: var(--datametria-text-secondary-dark, #909399);
293
+ }
294
+
295
+ .datametria-steps__item.is-process .datametria-steps__icon {
296
+ border-color: var(--datametria-primary-dark, #409eff);
297
+ background: var(--datametria-primary-dark, #409eff);
298
+ }
299
+
300
+ .datametria-steps__line {
301
+ background: var(--datametria-border-dark, #4c4d4f);
302
+ }
303
+
304
+ .datametria-steps__title {
305
+ color: var(--datametria-text-primary-dark, #e5eaf3);
306
+ }
307
+
308
+ .datametria-steps__item.is-wait .datametria-steps__title {
309
+ color: var(--datametria-text-secondary-dark, #909399);
310
+ }
311
+
312
+ .datametria-steps__item.is-process .datametria-steps__title {
313
+ color: var(--datametria-primary-dark, #409eff);
314
+ }
315
+
316
+ .datametria-steps__description {
317
+ color: var(--datametria-text-secondary-dark, #909399);
318
+ }
319
+ }
320
+ </style>