@mimi-ng/cli 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -1
- package/dist/init/css.js +17 -0
- package/dist/init/index.js +7 -5
- package/dist/init/items.js +9 -0
- package/dist/registry.json +482 -1
- package/dist/templates/components/avatar/avatar.ts +1 -1
- package/dist/templates/components/avatar/avatar.variants.ts +4 -4
- package/dist/templates/components/badge/badge.ts +41 -6
- package/dist/templates/components/badge/badge.variants.ts +105 -11
- package/dist/templates/components/button/button.ts +74 -7
- package/dist/templates/components/button/button.variants.ts +145 -21
- package/dist/templates/components/calendar/calendar-texts.ts +72 -0
- package/dist/templates/components/calendar/calendar.ts +588 -0
- package/dist/templates/components/calendar/dates.ts +181 -0
- package/dist/templates/components/calendar/index.ts +3 -0
- package/dist/templates/components/card/card.ts +8 -5
- package/dist/templates/components/checkbox/checkbox.ts +3 -3
- package/dist/templates/components/chip/chip-texts.ts +40 -0
- package/dist/templates/components/chip/chip.ts +116 -0
- package/dist/templates/components/chip/index.ts +2 -0
- package/dist/templates/components/color-picker/color-picker-texts.ts +57 -0
- package/dist/templates/components/color-picker/color-picker.ts +718 -0
- package/dist/templates/components/color-picker/color.ts +157 -0
- package/dist/templates/components/color-picker/index.ts +3 -0
- package/dist/templates/components/combobox/combobox-texts.ts +70 -0
- package/dist/templates/components/combobox/combobox.ts +798 -0
- package/dist/templates/components/combobox/index.ts +2 -0
- package/dist/templates/components/confirm/confirm-texts.ts +46 -0
- package/dist/templates/components/confirm/confirm.ts +190 -0
- package/dist/templates/components/confirm/index.ts +2 -0
- package/dist/templates/components/context-menu/context-menu.ts +378 -0
- package/dist/templates/components/context-menu/index.ts +14 -0
- package/dist/templates/components/date-picker/date-picker.ts +240 -0
- package/dist/templates/components/date-picker/index.ts +3 -0
- package/dist/templates/components/date-range/date-range.ts +308 -0
- package/dist/templates/components/date-range/index.ts +1 -0
- package/dist/templates/components/dialog/dialog-texts.ts +41 -0
- package/dist/templates/components/dialog/dialog.ts +701 -0
- package/dist/templates/components/dialog/index.ts +18 -0
- package/dist/templates/components/dropdown-menu/dropdown-menu.ts +252 -0
- package/dist/templates/components/dropdown-menu/index.ts +14 -0
- package/dist/templates/components/file-upload/file-upload-texts.ts +77 -0
- package/dist/templates/components/file-upload/file-upload.ts +698 -0
- package/dist/templates/components/file-upload/index.ts +2 -0
- package/dist/templates/components/form-field/form-error.ts +1 -1
- package/dist/templates/components/form-field/form-field.ts +3 -2
- package/dist/templates/components/input/input.variants.ts +6 -4
- package/dist/templates/components/input-mask/index.ts +1 -0
- package/dist/templates/components/input-mask/input-mask.ts +319 -0
- package/dist/templates/components/input-otp/index.ts +1 -0
- package/dist/templates/components/input-otp/input-otp.ts +212 -0
- package/dist/templates/components/menu/index.ts +15 -0
- package/dist/templates/components/menu/menu.ts +656 -0
- package/dist/templates/components/number-input/index.ts +2 -0
- package/dist/templates/components/number-input/number-input-texts.ts +46 -0
- package/dist/templates/components/number-input/number-input.ts +450 -0
- package/dist/templates/components/option-list/index.ts +11 -0
- package/dist/templates/components/option-list/option-list.ts +518 -0
- package/dist/templates/components/pagination/index.ts +2 -0
- package/dist/templates/components/pagination/pagination-page-size.ts +74 -0
- package/dist/templates/components/pagination/pagination-texts.ts +69 -0
- package/dist/templates/components/pagination/pagination.ts +443 -0
- package/dist/templates/components/password/index.ts +2 -0
- package/dist/templates/components/password/password-texts.ts +68 -0
- package/dist/templates/components/password/password.ts +363 -0
- package/dist/templates/components/popover/index.ts +12 -0
- package/dist/templates/components/popover/popover.ts +407 -0
- package/dist/templates/components/progress/index.ts +1 -0
- package/dist/templates/components/progress/progress.ts +217 -0
- package/dist/templates/components/select/index.ts +12 -0
- package/dist/templates/components/select/select-texts.ts +62 -0
- package/dist/templates/components/select/select.ts +1086 -0
- package/dist/templates/components/separator/separator.variants.ts +10 -7
- package/dist/templates/components/skeleton/skeleton.ts +4 -1
- package/dist/templates/components/slider/index.ts +2 -0
- package/dist/templates/components/slider/slider-texts.ts +26 -0
- package/dist/templates/components/slider/slider.ts +425 -0
- package/dist/templates/components/switch/switch.ts +6 -6
- package/dist/templates/components/tabs/index.ts +2 -0
- package/dist/templates/components/tabs/tabs.ts +426 -0
- package/dist/templates/components/tags-input/index.ts +2 -0
- package/dist/templates/components/tags-input/tags-input-texts.ts +44 -0
- package/dist/templates/components/tags-input/tags-input.ts +303 -0
- package/dist/templates/components/textarea/textarea.variants.ts +14 -11
- package/dist/templates/components/toast/index.ts +3 -0
- package/dist/templates/components/toast/toast-config.ts +45 -0
- package/dist/templates/components/toast/toast-texts.ts +46 -0
- package/dist/templates/components/toast/toast.ts +1000 -0
- package/dist/templates/components/toggle-group/index.ts +1 -0
- package/dist/templates/components/toggle-group/toggle-group.ts +406 -0
- package/dist/templates/components/toolbar/index.ts +1 -0
- package/dist/templates/components/toolbar/toolbar.ts +377 -0
- package/dist/templates/components/tooltip/index.ts +7 -0
- package/dist/templates/components/tooltip/tooltip.ts +407 -0
- package/dist/templates/theme/provider.ts +75 -6
- package/dist/templates/theme/theme-base.css +410 -9
- package/dist/templates/theme/types.ts +494 -4
- package/dist/templates/utils/cn.ts +15 -1
- package/dist/templates/utils/control-styles.ts +2 -2
- package/dist/templates/utils/overlay.ts +153 -0
- package/dist/ui/index.js +184 -8
- package/dist/ui/schema.json +100 -0
- package/dist/utils/write-files.js +166 -59
- package/package.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Preset tipado del tema (spec 6.3). Cada propiedad se convierte en una variable --mimi-*
|
|
3
|
-
* de theme-base.css. Los derivados con color-mix (primary-hover, ring-soft, switch-off
|
|
4
|
-
* no están aquí: se recalculan solos a partir de los
|
|
3
|
+
* de theme-base.css. Los derivados con color-mix (primary-hover, ring-soft, switch-off y los
|
|
4
|
+
* <tono>-soft, <tono>-hover y <tono>-ring) no están aquí: se recalculan solos a partir de los
|
|
5
|
+
* colores.
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
8
|
/** Colores. `colors` se aplica en claro y `darkColors` en oscuro. */
|
|
@@ -25,9 +26,29 @@ export interface MimiColorTokens {
|
|
|
25
26
|
border?: string;
|
|
26
27
|
input?: string;
|
|
27
28
|
inputBackground?: string;
|
|
29
|
+
/** Borde de un campo con el puntero encima (por defecto, mezcla de foreground e input). */
|
|
30
|
+
inputHover?: string;
|
|
28
31
|
ring?: string;
|
|
29
32
|
/** Fondo que oscurece la página detrás de paneles y diálogos. */
|
|
30
33
|
overlay?: string;
|
|
34
|
+
success?: string;
|
|
35
|
+
successForeground?: string;
|
|
36
|
+
/** Texto sobre el fondo suave de success. */
|
|
37
|
+
successSoftForeground?: string;
|
|
38
|
+
warning?: string;
|
|
39
|
+
warningForeground?: string;
|
|
40
|
+
warningSoftForeground?: string;
|
|
41
|
+
info?: string;
|
|
42
|
+
infoForeground?: string;
|
|
43
|
+
infoSoftForeground?: string;
|
|
44
|
+
destructiveSoftForeground?: string;
|
|
45
|
+
/** Cuánto tono lleva cada fondo suave (-soft), en porcentaje: '12%'. */
|
|
46
|
+
softMix?: string;
|
|
47
|
+
tooltip?: string;
|
|
48
|
+
tooltipForeground?: string;
|
|
49
|
+
/** Fondo translúcido de las píldoras flotantes (mimi-toolbar, Pagination). */
|
|
50
|
+
glass?: string;
|
|
51
|
+
glassBorder?: string;
|
|
31
52
|
}
|
|
32
53
|
|
|
33
54
|
/** Sombras (`box-shadow` completo). `shadows` en claro y `darkShadows` en oscuro. */
|
|
@@ -41,12 +62,28 @@ export interface MimiShadowTokens {
|
|
|
41
62
|
neutralHover?: string;
|
|
42
63
|
/** Pulgar del Switch. */
|
|
43
64
|
thumb?: string;
|
|
65
|
+
success?: string;
|
|
66
|
+
successHover?: string;
|
|
67
|
+
warning?: string;
|
|
68
|
+
warningHover?: string;
|
|
69
|
+
info?: string;
|
|
70
|
+
infoHover?: string;
|
|
71
|
+
/** Menús, diálogos, toasts y píldoras flotantes. */
|
|
72
|
+
popover?: string;
|
|
73
|
+
/** Glow (opción glow): van a --mimi-glow y --mimi-glow-<tono>, sin el prefijo shadow-. */
|
|
74
|
+
glow?: string;
|
|
75
|
+
glowPrimary?: string;
|
|
76
|
+
glowSuccess?: string;
|
|
77
|
+
glowWarning?: string;
|
|
78
|
+
glowInfo?: string;
|
|
79
|
+
glowDestructive?: string;
|
|
44
80
|
}
|
|
45
81
|
|
|
46
82
|
/** Radios fijos. Si no se definen, sm y card se calculan a partir de `radius`. */
|
|
47
83
|
export interface MimiRadiusTokens {
|
|
48
84
|
sm?: string;
|
|
49
85
|
card?: string;
|
|
86
|
+
/** @deprecated Usa components.badge.radius (la misma variable). Sigue hasta la 1.0. */
|
|
50
87
|
badge?: string;
|
|
51
88
|
}
|
|
52
89
|
|
|
@@ -71,9 +108,41 @@ export interface MimiControlSizeTokens {
|
|
|
71
108
|
heightLg?: string;
|
|
72
109
|
}
|
|
73
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Tokens compartidos por todos los controles (spec 13, nivel 2). Las alturas van a
|
|
113
|
+
* --mimi-control-height*; el resto, sin prefijo: focusRing → --mimi-focus-ring.
|
|
114
|
+
*/
|
|
115
|
+
export interface MimiSharedTokens extends MimiControlSizeTokens {
|
|
116
|
+
/** Halo de foco en campos y botones (box-shadow). */
|
|
117
|
+
focusRing?: string;
|
|
118
|
+
/** Contorno de foco con teclado (outline). */
|
|
119
|
+
focusOutline?: string;
|
|
120
|
+
focusOffset?: string;
|
|
121
|
+
disabledOpacity?: string | number;
|
|
122
|
+
iconSize?: string;
|
|
123
|
+
iconSizeSm?: string;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Efectos que no son movimiento ni controles: desenfoques (y, más adelante, los de Mimi
|
|
128
|
+
* Effects). Iguales en claro y oscuro.
|
|
129
|
+
*/
|
|
130
|
+
export interface MimiEffectTokens {
|
|
131
|
+
/** Desenfoque del fondo detrás de Dialog y Sheet. */
|
|
132
|
+
overlayBlur?: string;
|
|
133
|
+
/** Desenfoque de las píldoras translúcidas. */
|
|
134
|
+
glassBlur?: string;
|
|
135
|
+
}
|
|
136
|
+
|
|
74
137
|
/** Tokens por componente. Cada componente los lee con la cascada de la spec 6.2. */
|
|
75
138
|
export interface MimiControlTokens extends MimiControlSizeTokens {
|
|
76
139
|
radius?: string;
|
|
140
|
+
/** Padding horizontal del tamaño default: --mimi-<prefijo>-px. */
|
|
141
|
+
px?: string;
|
|
142
|
+
/**
|
|
143
|
+
* @deprecated Nombre de la 0.1.0 (--mimi-<prefijo>-padding-x): usa `px`. Sigue funcionando
|
|
144
|
+
* hasta la 1.0 (spec 12).
|
|
145
|
+
*/
|
|
77
146
|
paddingX?: string;
|
|
78
147
|
fontSize?: string;
|
|
79
148
|
borderWidth?: string;
|
|
@@ -82,11 +151,19 @@ export interface MimiControlTokens extends MimiControlSizeTokens {
|
|
|
82
151
|
|
|
83
152
|
/** paddingX y fontSize se aplican al tamaño default; sm y lg usan los valores del diseño. */
|
|
84
153
|
export interface MimiButtonTokens extends MimiControlTokens {
|
|
154
|
+
/** Espacio entre ícono y texto del tamaño default. */
|
|
155
|
+
gap?: string;
|
|
156
|
+
/** Escala al presionar; si no, --mimi-press-scale. Con movimiento reducido vale 1. */
|
|
157
|
+
pressScale?: string | number;
|
|
85
158
|
fontWeight?: string | number;
|
|
86
159
|
letterSpacing?: string;
|
|
87
160
|
}
|
|
88
161
|
|
|
89
162
|
export interface MimiInputTokens extends MimiControlTokens {
|
|
163
|
+
/**
|
|
164
|
+
* @deprecated Es un color: cámbialo en el CSS con --mimi-input-placeholder (spec 6.2). Sigue
|
|
165
|
+
* funcionando hasta la 1.0.
|
|
166
|
+
*/
|
|
90
167
|
placeholderColor?: string;
|
|
91
168
|
disabledOpacity?: string | number;
|
|
92
169
|
}
|
|
@@ -95,16 +172,428 @@ export interface MimiCardTokens {
|
|
|
95
172
|
radius?: string;
|
|
96
173
|
borderWidth?: string;
|
|
97
174
|
shadow?: string;
|
|
175
|
+
/** Padding exterior de las partes (1.5rem); los paddingHeader/Content/Footer lo detallan. */
|
|
176
|
+
padding?: string;
|
|
98
177
|
paddingHeader?: string;
|
|
99
178
|
paddingContent?: string;
|
|
100
179
|
paddingFooter?: string;
|
|
101
180
|
}
|
|
102
181
|
|
|
182
|
+
export interface MimiAvatarTokens {
|
|
183
|
+
size?: string;
|
|
184
|
+
sizeSm?: string;
|
|
185
|
+
sizeLg?: string;
|
|
186
|
+
radius?: string;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export interface MimiSwitchTokens {
|
|
190
|
+
/** Ancho de la pista. El pulgar se desplaza ancho − alto. */
|
|
191
|
+
width?: string;
|
|
192
|
+
/** Alto de la pista. El pulgar mide alto − 4px. */
|
|
193
|
+
height?: string;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export interface MimiCheckboxTokens {
|
|
197
|
+
size?: string;
|
|
198
|
+
radius?: string;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/** FormField (prefijo field). */
|
|
202
|
+
export interface MimiFieldTokens {
|
|
203
|
+
gap?: string;
|
|
204
|
+
labelSize?: string;
|
|
205
|
+
labelWeight?: string | number;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export interface MimiSeparatorTokens {
|
|
209
|
+
/** Grosor de la línea. */
|
|
210
|
+
size?: string;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
export interface MimiSkeletonTokens {
|
|
214
|
+
radius?: string;
|
|
215
|
+
/** Duración del pulso: '1.6s'. */
|
|
216
|
+
duration?: string;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export interface MimiBadgeTokens {
|
|
220
|
+
height?: string;
|
|
221
|
+
px?: string;
|
|
222
|
+
fontSize?: string;
|
|
223
|
+
fontWeight?: string | number;
|
|
224
|
+
/** --mimi-badge-radius (el mismo que radii.badge de la 0.1.0). */
|
|
225
|
+
radius?: string;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/** Textarea: si no se definen, usa los de Input y después los compartidos. */
|
|
229
|
+
export interface MimiTextareaTokens {
|
|
230
|
+
radius?: string;
|
|
231
|
+
minHeight?: string;
|
|
232
|
+
lineHeight?: string;
|
|
233
|
+
py?: string;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/** Popover. Fondo, borde y sombra van en el CSS (`--mimi-popover-bg`, `-border`, `-shadow`). */
|
|
237
|
+
export interface MimiPopoverTokens {
|
|
238
|
+
radius?: string;
|
|
239
|
+
/** Padding del panel (16px). */
|
|
240
|
+
padding?: string;
|
|
241
|
+
/** Lado de la flecha (10px). */
|
|
242
|
+
arrow?: string;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/** Tooltip. Fondo y texto van en el CSS (`--mimi-tooltip-bg`, `--mimi-tooltip-fg`). */
|
|
246
|
+
export interface MimiTooltipTokens {
|
|
247
|
+
radius?: string;
|
|
248
|
+
fontSize?: string;
|
|
249
|
+
/** Lado de la flecha (8px). */
|
|
250
|
+
arrow?: string;
|
|
251
|
+
/** Retraso al abrir (300ms). `mimiTooltipDelay` lo cambia en un tooltip. */
|
|
252
|
+
delay?: string;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Dropdown Menu y Context Menu. Fondo, borde, sombra, hover, atajo y tono de peligro van en el CSS
|
|
257
|
+
* (`--mimi-menu-bg`, `-border`, `-shadow`, `-item-hover`, `-shortcut`, `-danger`, `-danger-hover`).
|
|
258
|
+
*/
|
|
259
|
+
export interface MimiMenuTokens {
|
|
260
|
+
radius?: string;
|
|
261
|
+
/** Ancho del panel (240px). */
|
|
262
|
+
width?: string;
|
|
263
|
+
/** Alto de cada ítem (32px). */
|
|
264
|
+
itemHeight?: string;
|
|
265
|
+
itemRadius?: string;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Select. Fondos, borde, sombra y opción activa van en el CSS (`--mimi-select-trigger-bg`,
|
|
270
|
+
* `-border`, `-menu-bg`, `-menu-shadow`, `-option-hover`).
|
|
271
|
+
*/
|
|
272
|
+
export interface MimiSelectTokens {
|
|
273
|
+
/** Radio del disparador y del panel. */
|
|
274
|
+
radius?: string;
|
|
275
|
+
/** Alto del disparador (el de los controles). */
|
|
276
|
+
height?: string;
|
|
277
|
+
/** Alto de cada opción (34px). */
|
|
278
|
+
optionHeight?: string;
|
|
279
|
+
optionRadius?: string;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Dialog. El fondo oscurecido, el fondo del panel y la sombra van en el CSS
|
|
284
|
+
* (`--mimi-dialog-overlay`, `-bg`, `-shadow`).
|
|
285
|
+
*/
|
|
286
|
+
export interface MimiDialogTokens {
|
|
287
|
+
radius?: string;
|
|
288
|
+
/** Ancho del panel (420px). */
|
|
289
|
+
width?: string;
|
|
290
|
+
/** Relleno a los lados del encabezado, el cuerpo y el pie (24px). */
|
|
291
|
+
padding?: string;
|
|
292
|
+
/** Tamaño de la X (32px). */
|
|
293
|
+
closeSize?: string;
|
|
294
|
+
/** Desenfoque del fondo (el global `effects.overlayBlur`). */
|
|
295
|
+
overlayBlur?: string;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Confirm. Los colores del círculo del tono danger van en el CSS (`--mimi-confirm-icon-bg`,
|
|
300
|
+
* `-icon-fg`).
|
|
301
|
+
*/
|
|
302
|
+
export interface MimiConfirmTokens {
|
|
303
|
+
/** Ancho del panel (380px). */
|
|
304
|
+
width?: string;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Toast. El fondo, el borde y la sombra van en el CSS (`--mimi-toast-bg`, `-border`, `-shadow`).
|
|
309
|
+
*/
|
|
310
|
+
export interface MimiToastTokens {
|
|
311
|
+
radius?: string;
|
|
312
|
+
/** Ancho de la pila (340px). */
|
|
313
|
+
width?: string;
|
|
314
|
+
/** Separación de la pila con el borde de la pantalla (16px). */
|
|
315
|
+
offset?: string;
|
|
316
|
+
/** Cuánto asoma cada toast de atrás con la pila colapsada (12px). */
|
|
317
|
+
stackGap?: string;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Tabs. Los colores (pestañas, indicador y píldora) van en el CSS (`--mimi-tabs-fg`,
|
|
322
|
+
* `-active-fg`, `-indicator`, `-pill-bg`, `-pill-active`).
|
|
323
|
+
*/
|
|
324
|
+
export interface MimiTabsTokens {
|
|
325
|
+
/** Alto de las pestañas subrayadas (44px). */
|
|
326
|
+
height?: string;
|
|
327
|
+
/** Curva del indicador (`cubic-bezier(.3, 1.35, .5, 1)`). */
|
|
328
|
+
spring?: string;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* mimi-toolbar. Fondo, borde, sombra, disco activo, anillo y presionado van en el CSS
|
|
333
|
+
* (`--mimi-toolbar-bg`, `-border`, `-shadow`, `-active-bg`, `-active-fg`, `-ring`, `-pressed-bg`).
|
|
334
|
+
*/
|
|
335
|
+
export interface MimiToolbarTokens {
|
|
336
|
+
/** Tamaño de cada botón (40px). */
|
|
337
|
+
itemSize?: string;
|
|
338
|
+
/** Desenfoque del fondo (el global `effects.glassBlur`). */
|
|
339
|
+
blur?: string;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Pagination. Fondo, borde, sombra flotante y error van en el CSS (`--mimi-pagination-bg`,
|
|
344
|
+
* `-border`, `-shadow`, `-error`).
|
|
345
|
+
*/
|
|
346
|
+
export interface MimiPaginationTokens {
|
|
347
|
+
/** Tamaño de ← y → y alto del selector (el alto de control: sm 32px, md 40px). */
|
|
348
|
+
itemSize?: string;
|
|
349
|
+
/** Ancho del campo de página (sm 44px, md 52px). */
|
|
350
|
+
inputWidth?: string;
|
|
351
|
+
/** Desenfoque del fondo (el global `effects.glassBlur`). */
|
|
352
|
+
blur?: string;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Toggle Group. Fondo, textos, indicador y su sombra van en el CSS (`--mimi-toggle-group-bg`,
|
|
357
|
+
* `-fg`, `-active-fg`, `-indicator`, `-indicator-shadow`).
|
|
358
|
+
*/
|
|
359
|
+
export interface MimiToggleGroupTokens {
|
|
360
|
+
/** Radio de cada ítem y del indicador (el global `radius`); el del grupo es radio + relleno. */
|
|
361
|
+
radius?: string;
|
|
362
|
+
/** Relleno del grupo (3px). */
|
|
363
|
+
padding?: string;
|
|
364
|
+
/** Separación entre ítems (2px). */
|
|
365
|
+
gap?: string;
|
|
366
|
+
/** Alto de cada ítem (32px). */
|
|
367
|
+
itemHeight?: string;
|
|
368
|
+
/** Relleno horizontal de cada ítem (12px). */
|
|
369
|
+
itemPx?: string;
|
|
370
|
+
/** Ancho mínimo de un ítem (el de uno solo con ícono, 44px). */
|
|
371
|
+
iconWidth?: string;
|
|
372
|
+
/** Tamaño de texto (13.5px). */
|
|
373
|
+
fontSize?: string;
|
|
374
|
+
/** Curva del indicador (`cubic-bezier(.3, 1.35, .5, 1)`, la de Tabs). */
|
|
375
|
+
spring?: string;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Progress. La pista y la parte llena van en el CSS (`--mimi-progress-track`, `-fill`).
|
|
380
|
+
*/
|
|
381
|
+
export interface MimiProgressTokens {
|
|
382
|
+
/** Grosor de la barra (8px). */
|
|
383
|
+
height?: string;
|
|
384
|
+
/** Tamaño del círculo `default` (76px). */
|
|
385
|
+
circleSize?: string;
|
|
386
|
+
/** Grosor del trazo del círculo `default`, en unidades del viewBox de 36 (3). */
|
|
387
|
+
circleWidth?: string | number;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Number Input. El fondo del botón en hover va en el CSS (`--mimi-number-button-hover`); el
|
|
392
|
+
* borde, el fondo y los anillos son los de Input (globales).
|
|
393
|
+
*/
|
|
394
|
+
export interface MimiNumberInputTokens {
|
|
395
|
+
/** Altura (el alto de control). */
|
|
396
|
+
height?: string;
|
|
397
|
+
/** Radio de la caja (el global `radius`). */
|
|
398
|
+
radius?: string;
|
|
399
|
+
/** Relleno horizontal de la caja (4px). */
|
|
400
|
+
px?: string;
|
|
401
|
+
/** Tamaño de los botones − y + (30px). */
|
|
402
|
+
buttonSize?: string;
|
|
403
|
+
/** Radio de los botones (el global `radius-sm`). */
|
|
404
|
+
buttonRadius?: string;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* Password. El hover del botón y la pista del medidor van en el CSS
|
|
409
|
+
* (`--mimi-password-toggle-hover`, `-meter-track`); los colores de los niveles son los globales
|
|
410
|
+
* `--mimi-strength-*`.
|
|
411
|
+
*/
|
|
412
|
+
export interface MimiPasswordTokens {
|
|
413
|
+
/** Botón de mostrar u ocultar (32px). */
|
|
414
|
+
toggleSize?: string;
|
|
415
|
+
/** Radio del botón (el global `radius-sm`). */
|
|
416
|
+
toggleRadius?: string;
|
|
417
|
+
/** Alto de cada barra del medidor (6px). */
|
|
418
|
+
meterHeight?: string;
|
|
419
|
+
/** Separación entre barras (4px). */
|
|
420
|
+
meterGap?: string;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Input Mask. El color del marcador y el fondo del prefijo van en el CSS
|
|
425
|
+
* (`--mimi-mask-placeholder`, `-prefix-bg`); la caja usa los tokens de Input.
|
|
426
|
+
*/
|
|
427
|
+
export interface MimiInputMaskTokens {
|
|
428
|
+
/** Separación entre el prefijo, el ícono y el texto (8px). */
|
|
429
|
+
gap?: string;
|
|
430
|
+
/** Alto del prefijo (26px). */
|
|
431
|
+
prefixHeight?: string;
|
|
432
|
+
/** Radio del prefijo (el global `radius-sm`). */
|
|
433
|
+
prefixRadius?: string;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Input OTP. Fondo, borde, separador y cursor van en el CSS (`--mimi-otp-bg`, `-border`,
|
|
438
|
+
* `-separator`, `-caret`).
|
|
439
|
+
*/
|
|
440
|
+
export interface MimiInputOtpTokens {
|
|
441
|
+
/** Ancho de la casilla (46px). */
|
|
442
|
+
width?: string;
|
|
443
|
+
/** Alto de la casilla (54px). */
|
|
444
|
+
height?: string;
|
|
445
|
+
/** Separación entre casillas (8px). */
|
|
446
|
+
gap?: string;
|
|
447
|
+
/** Radio (el global `radius`). */
|
|
448
|
+
radius?: string;
|
|
449
|
+
/** Tamaño del carácter (22px). */
|
|
450
|
+
fontSize?: string;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
/** Chip (Tags Input y Combobox). Los colores van en el CSS (`--mimi-chip-bg`, `-fg`). */
|
|
454
|
+
export interface MimiChipTokens {
|
|
455
|
+
/** Alto (26px). */
|
|
456
|
+
height?: string;
|
|
457
|
+
/** Radio (el global `badge-radius`). */
|
|
458
|
+
radius?: string;
|
|
459
|
+
/** Tamaño de texto (13px). */
|
|
460
|
+
fontSize?: string;
|
|
461
|
+
/** Botón de quitar (18px). */
|
|
462
|
+
removeSize?: string;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
/** Tags Input. El borde con el límite alcanzado va en el CSS (`--mimi-tags-full-border`). */
|
|
466
|
+
export interface MimiTagsInputTokens {
|
|
467
|
+
/** Separación entre chips (6px). */
|
|
468
|
+
gap?: string;
|
|
469
|
+
/** Relleno de la caja (`5px 10px 5px 6px`). */
|
|
470
|
+
padding?: string;
|
|
471
|
+
/** Ancho mínimo del campo de texto (120px). */
|
|
472
|
+
inputMinWidth?: string;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Slider. Pista, relleno, pulgar y su sombra van en el CSS (`--mimi-slider-track`, `-fill`,
|
|
477
|
+
* `-thumb`, `-thumb-shadow`); la burbuja usa los colores de Tooltip.
|
|
478
|
+
*/
|
|
479
|
+
export interface MimiSliderTokens {
|
|
480
|
+
/** Grosor de la pista (6px). */
|
|
481
|
+
height?: string;
|
|
482
|
+
/** Tamaño del pulgar (20px). */
|
|
483
|
+
thumbSize?: string;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Combobox. El fondo y la sombra del panel y la opción activa van en el CSS
|
|
488
|
+
* (`--mimi-combobox-menu-bg`, `-menu-shadow`, `-option-hover`).
|
|
489
|
+
*/
|
|
490
|
+
export interface MimiComboboxTokens {
|
|
491
|
+
/** Alto del campo (el global `control-height`). */
|
|
492
|
+
height?: string;
|
|
493
|
+
/** Radio del campo y del panel (el global `radius`). */
|
|
494
|
+
radius?: string;
|
|
495
|
+
/** Alto máximo del panel (228px). */
|
|
496
|
+
menuMaxHeight?: string;
|
|
497
|
+
/** Alto mínimo de cada opción (34px). */
|
|
498
|
+
optionHeight?: string;
|
|
499
|
+
/** Radio de cada opción (el global `radius-sm`). */
|
|
500
|
+
optionRadius?: string;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* Calendario, Date Picker y Date Range (una tabla, decidido por defecto en la G2.9). Los colores
|
|
505
|
+
* van en el CSS (`--mimi-date-cell-hover`, `-selected-bg`, `-selected-fg`, `-range`,
|
|
506
|
+
* `-today-ring`, `-menu-bg`, `-menu-shadow`).
|
|
507
|
+
*/
|
|
508
|
+
export interface MimiDateTokens {
|
|
509
|
+
/** Tamaño de cada día (36px). */
|
|
510
|
+
cellSize?: string;
|
|
511
|
+
/** Radio de cada día (el global `radius-sm`). */
|
|
512
|
+
cellRadius?: string;
|
|
513
|
+
/** Relleno del panel (12px). */
|
|
514
|
+
padding?: string;
|
|
515
|
+
/** Ancho de la columna de atajos del rango (130px). */
|
|
516
|
+
presetsWidth?: string;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* File Upload. Fondos y bordes de la zona van en el CSS (`--mimi-upload-bg`, `-border`,
|
|
521
|
+
* `-active-bg`, `-active-border`).
|
|
522
|
+
*/
|
|
523
|
+
export interface MimiFileUploadTokens {
|
|
524
|
+
/** Radio de la zona (el global `radius-card`). */
|
|
525
|
+
radius?: string;
|
|
526
|
+
/** Alto mínimo de la zona (176px). */
|
|
527
|
+
height?: string;
|
|
528
|
+
/** Círculo del ícono (44px). */
|
|
529
|
+
iconSize?: string;
|
|
530
|
+
/** Radio de cada fila (el global `radius`). */
|
|
531
|
+
itemRadius?: string;
|
|
532
|
+
/** Miniatura de cada fila (44px). */
|
|
533
|
+
thumbSize?: string;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* Color Picker. Fondo, sombra, el borde y la sombra de los pulgares y el borde de las muestras
|
|
538
|
+
* van en el CSS (`--mimi-color-picker-bg`, `-shadow`, `-thumb-border`, `-thumb-shadow`,
|
|
539
|
+
* `-swatch-border`).
|
|
540
|
+
*/
|
|
541
|
+
export interface MimiColorPickerTokens {
|
|
542
|
+
/** Radio del panel (el global `radius`). */
|
|
543
|
+
radius?: string;
|
|
544
|
+
/** Ancho del panel (280px). */
|
|
545
|
+
width?: string;
|
|
546
|
+
/** Relleno y separación (12px). */
|
|
547
|
+
padding?: string;
|
|
548
|
+
/** Alto del área de saturación (150px). */
|
|
549
|
+
areaHeight?: string;
|
|
550
|
+
/** Radio del área (el global `radius-sm`). */
|
|
551
|
+
areaRadius?: string;
|
|
552
|
+
/** Alto de la barra de tono (12px). */
|
|
553
|
+
hueHeight?: string;
|
|
554
|
+
/** Separación de las muestras (6px). */
|
|
555
|
+
swatchGap?: string;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Tokens por componente (spec 13). Solo los que no dependen del modo: los colores de los
|
|
560
|
+
* componentes (`--mimi-<prefijo>-bg`, `-fg`, `-border`…) se cambian en el CSS (spec 6.2).
|
|
561
|
+
*/
|
|
103
562
|
export interface MimiComponentTokens {
|
|
104
563
|
button?: MimiButtonTokens;
|
|
105
564
|
input?: MimiInputTokens;
|
|
106
565
|
card?: MimiCardTokens;
|
|
107
|
-
|
|
566
|
+
avatar?: MimiAvatarTokens;
|
|
567
|
+
switch?: MimiSwitchTokens;
|
|
568
|
+
checkbox?: MimiCheckboxTokens;
|
|
569
|
+
formField?: MimiFieldTokens;
|
|
570
|
+
separator?: MimiSeparatorTokens;
|
|
571
|
+
skeleton?: MimiSkeletonTokens;
|
|
572
|
+
badge?: MimiBadgeTokens;
|
|
573
|
+
textarea?: MimiTextareaTokens;
|
|
574
|
+
popover?: MimiPopoverTokens;
|
|
575
|
+
tooltip?: MimiTooltipTokens;
|
|
576
|
+
menu?: MimiMenuTokens;
|
|
577
|
+
select?: MimiSelectTokens;
|
|
578
|
+
dialog?: MimiDialogTokens;
|
|
579
|
+
confirm?: MimiConfirmTokens;
|
|
580
|
+
toast?: MimiToastTokens;
|
|
581
|
+
tabs?: MimiTabsTokens;
|
|
582
|
+
toolbar?: MimiToolbarTokens;
|
|
583
|
+
pagination?: MimiPaginationTokens;
|
|
584
|
+
toggleGroup?: MimiToggleGroupTokens;
|
|
585
|
+
progress?: MimiProgressTokens;
|
|
586
|
+
numberInput?: MimiNumberInputTokens;
|
|
587
|
+
password?: MimiPasswordTokens;
|
|
588
|
+
inputMask?: MimiInputMaskTokens;
|
|
589
|
+
inputOtp?: MimiInputOtpTokens;
|
|
590
|
+
chip?: MimiChipTokens;
|
|
591
|
+
tagsInput?: MimiTagsInputTokens;
|
|
592
|
+
slider?: MimiSliderTokens;
|
|
593
|
+
combobox?: MimiComboboxTokens;
|
|
594
|
+
date?: MimiDateTokens;
|
|
595
|
+
fileUpload?: MimiFileUploadTokens;
|
|
596
|
+
colorPicker?: MimiColorPickerTokens;
|
|
108
597
|
}
|
|
109
598
|
|
|
110
599
|
export interface MimiThemePreset {
|
|
@@ -119,6 +608,7 @@ export interface MimiThemePreset {
|
|
|
119
608
|
darkShadows?: MimiShadowTokens;
|
|
120
609
|
fonts?: MimiFontTokens;
|
|
121
610
|
motion?: MimiMotionTokens;
|
|
122
|
-
|
|
611
|
+
effects?: MimiEffectTokens;
|
|
612
|
+
controls?: MimiSharedTokens;
|
|
123
613
|
components?: MimiComponentTokens;
|
|
124
614
|
}
|
|
@@ -5,7 +5,7 @@ import { extendTailwindMerge } from 'tailwind-merge';
|
|
|
5
5
|
* tailwind-merge solo reconoce tallas (sm, md, lg…) en las escalas de sombra y radio.
|
|
6
6
|
* Sin registrar los tokens de Mimi, `shadow-card` se tomaría como color de sombra y
|
|
7
7
|
* `rounded-card` no se fusionaría con otros `rounded-*`; lo mismo `animate-mimi-pulse` con
|
|
8
|
-
* `animate-none
|
|
8
|
+
* `animate-none` y `backdrop-blur-glass` con otros `backdrop-blur-*`. Los colores no hace falta registrarlos: la escala de color acepta cualquier
|
|
9
9
|
* nombre.
|
|
10
10
|
*/
|
|
11
11
|
const twMerge = extendTailwindMerge({
|
|
@@ -20,8 +20,22 @@ const twMerge = extendTailwindMerge({
|
|
|
20
20
|
'neutral',
|
|
21
21
|
'neutral-hover',
|
|
22
22
|
'thumb',
|
|
23
|
+
'success',
|
|
24
|
+
'success-hover',
|
|
25
|
+
'warning',
|
|
26
|
+
'warning-hover',
|
|
27
|
+
'info',
|
|
28
|
+
'info-hover',
|
|
29
|
+
'popover',
|
|
30
|
+
'glow',
|
|
31
|
+
'glow-primary',
|
|
32
|
+
'glow-success',
|
|
33
|
+
'glow-warning',
|
|
34
|
+
'glow-info',
|
|
35
|
+
'glow-destructive',
|
|
23
36
|
],
|
|
24
37
|
radius: ['card', 'badge'],
|
|
38
|
+
blur: ['glass', 'overlay'],
|
|
25
39
|
animate: ['mimi-pulse'],
|
|
26
40
|
},
|
|
27
41
|
classGroups: {
|
|
@@ -19,9 +19,9 @@ export const fieldFocusStyles =
|
|
|
19
19
|
export const controlDisabledStyles =
|
|
20
20
|
'disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50';
|
|
21
21
|
|
|
22
|
-
/** Inválido: borde destructive fijo y halo destructive-
|
|
22
|
+
/** Inválido: borde destructive fijo y halo destructive-ring solo al enfocar. */
|
|
23
23
|
export const controlInvalidStyles =
|
|
24
|
-
'aria-invalid:border-destructive aria-invalid:focus-visible:border-destructive aria-invalid:focus-visible:ring-destructive-
|
|
24
|
+
'aria-invalid:border-destructive aria-invalid:focus-visible:border-destructive aria-invalid:focus-visible:ring-destructive-ring';
|
|
25
25
|
|
|
26
26
|
/** Transición y escala al hacer clic. Solo botones. */
|
|
27
27
|
export const controlPressStyles = 'mimi-transition active:scale-(--mimi-press-scale)';
|