@mimi-ng/cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +19 -1
  2. package/dist/collection.json +1 -1
  3. package/dist/init/css.js +17 -0
  4. package/dist/init/index.js +7 -5
  5. package/dist/init/items.js +9 -0
  6. package/dist/ng-add/index.js +17 -1
  7. package/dist/ng-add/schema.json +27 -0
  8. package/dist/registry.json +222 -1
  9. package/dist/templates/components/avatar/avatar.ts +1 -1
  10. package/dist/templates/components/avatar/avatar.variants.ts +4 -4
  11. package/dist/templates/components/badge/badge.ts +41 -6
  12. package/dist/templates/components/badge/badge.variants.ts +105 -11
  13. package/dist/templates/components/button/button.ts +74 -7
  14. package/dist/templates/components/button/button.variants.ts +145 -21
  15. package/dist/templates/components/card/card.ts +8 -5
  16. package/dist/templates/components/checkbox/checkbox.ts +3 -3
  17. package/dist/templates/components/confirm/confirm-texts.ts +46 -0
  18. package/dist/templates/components/confirm/confirm.ts +190 -0
  19. package/dist/templates/components/confirm/index.ts +2 -0
  20. package/dist/templates/components/context-menu/context-menu.ts +378 -0
  21. package/dist/templates/components/context-menu/index.ts +14 -0
  22. package/dist/templates/components/dialog/dialog-texts.ts +41 -0
  23. package/dist/templates/components/dialog/dialog.ts +701 -0
  24. package/dist/templates/components/dialog/index.ts +18 -0
  25. package/dist/templates/components/dropdown-menu/dropdown-menu.ts +252 -0
  26. package/dist/templates/components/dropdown-menu/index.ts +14 -0
  27. package/dist/templates/components/form-field/form-error.ts +1 -1
  28. package/dist/templates/components/form-field/form-field.ts +3 -2
  29. package/dist/templates/components/input/input.variants.ts +6 -4
  30. package/dist/templates/components/menu/index.ts +15 -0
  31. package/dist/templates/components/menu/menu.ts +656 -0
  32. package/dist/templates/components/pagination/index.ts +2 -0
  33. package/dist/templates/components/pagination/pagination-page-size.ts +74 -0
  34. package/dist/templates/components/pagination/pagination-texts.ts +69 -0
  35. package/dist/templates/components/pagination/pagination.ts +443 -0
  36. package/dist/templates/components/popover/index.ts +12 -0
  37. package/dist/templates/components/popover/popover.ts +399 -0
  38. package/dist/templates/components/select/index.ts +12 -0
  39. package/dist/templates/components/select/select-texts.ts +62 -0
  40. package/dist/templates/components/select/select.ts +1085 -0
  41. package/dist/templates/components/separator/separator.variants.ts +10 -7
  42. package/dist/templates/components/skeleton/skeleton.ts +4 -1
  43. package/dist/templates/components/switch/switch.ts +6 -6
  44. package/dist/templates/components/tabs/index.ts +2 -0
  45. package/dist/templates/components/tabs/tabs.ts +426 -0
  46. package/dist/templates/components/textarea/textarea.variants.ts +14 -11
  47. package/dist/templates/components/toast/index.ts +3 -0
  48. package/dist/templates/components/toast/toast-config.ts +45 -0
  49. package/dist/templates/components/toast/toast-texts.ts +46 -0
  50. package/dist/templates/components/toast/toast.ts +1000 -0
  51. package/dist/templates/components/toolbar/index.ts +1 -0
  52. package/dist/templates/components/toolbar/toolbar.ts +377 -0
  53. package/dist/templates/components/tooltip/index.ts +7 -0
  54. package/dist/templates/components/tooltip/tooltip.ts +407 -0
  55. package/dist/templates/theme/provider.ts +62 -6
  56. package/dist/templates/theme/theme-base.css +307 -9
  57. package/dist/templates/theme/types.ts +278 -4
  58. package/dist/templates/utils/cn.ts +15 -1
  59. package/dist/templates/utils/control-styles.ts +2 -2
  60. package/dist/templates/utils/overlay.ts +140 -0
  61. package/dist/ui/index.js +80 -8
  62. package/dist/ui/schema.json +44 -0
  63. package/dist/utils/write-files.js +156 -59
  64. package/package.json +6 -5
@@ -1,5 +1,5 @@
1
- /* Mimi · tema base (estilo Vivid).
2
- Valores tomados de docs/design/tokens-vivid.css. Nombres según docs/spec.md, sección 6.
1
+ /* Mimi · tema base.
2
+ Valores tomados de docs/design/tokens-mimi.css. Nombres según docs/spec.md, sección 6.
3
3
  Este archivo no importa Tailwind ni carga fuentes: lo hace la app que lo usa. */
4
4
 
5
5
  @custom-variant dark (&:where(.dark, .dark *));
@@ -26,8 +26,34 @@
26
26
  --mimi-border: oklch(0.922 0 0);
27
27
  --mimi-input: oklch(0.88 0 0);
28
28
  --mimi-input-background: oklch(1 0 0);
29
+ /* Borde de un campo con el puntero encima (tokens-mimi.css; lo usa Pagination desde la G1.11). */
30
+ --mimi-input-hover: color-mix(in oklab, var(--mimi-foreground) 30%, var(--mimi-input));
29
31
  --mimi-ring: oklch(0.708 0 0);
30
- --mimi-overlay: oklch(0 0 0 / 50%);
32
+
33
+ /* Tonos (contraste AA verificado en el diseño) */
34
+ --mimi-success: oklch(0.527 0.137 150);
35
+ --mimi-success-foreground: oklch(0.985 0 0);
36
+ --mimi-success-soft-foreground: oklch(0.42 0.115 150);
37
+ --mimi-warning: oklch(0.795 0.162 75);
38
+ --mimi-warning-foreground: oklch(0.28 0.07 55);
39
+ --mimi-warning-soft-foreground: oklch(0.45 0.11 60);
40
+ --mimi-info: oklch(0.546 0.19 255);
41
+ --mimi-info-foreground: oklch(0.985 0 0);
42
+ --mimi-info-soft-foreground: oklch(0.45 0.17 255);
43
+ --mimi-destructive-soft-foreground: oklch(0.5 0.2 27);
44
+ /* Cuánto tono lleva el fondo suave (-soft) */
45
+ --mimi-soft-mix: 12%;
46
+
47
+ /* Superficies */
48
+ --mimi-tooltip: oklch(0.205 0 0);
49
+ --mimi-tooltip-foreground: oklch(0.985 0 0);
50
+ --mimi-overlay: oklch(0.145 0 0 / 0.38);
51
+ --mimi-glass: oklch(1 0 0 / 0.72);
52
+ --mimi-glass-border: oklch(0 0 0 / 0.08);
53
+
54
+ /* Efectos (iguales en claro y oscuro) */
55
+ --mimi-overlay-blur: 6px;
56
+ --mimi-glass-blur: 16px;
31
57
 
32
58
  /* Fuentes (sin cargar: la app decide si trae Outfit) */
33
59
  --mimi-font-sans: 'Outfit', ui-sans-serif, system-ui, sans-serif;
@@ -42,6 +68,14 @@
42
68
  --mimi-control-height-sm: 2rem;
43
69
  --mimi-control-height-lg: 3rem;
44
70
 
71
+ /* Compartidos por los controles */
72
+ --mimi-focus-ring: 0 0 0 3px var(--mimi-ring-soft);
73
+ --mimi-focus-outline: 2px solid var(--mimi-ring);
74
+ --mimi-focus-offset: 2px;
75
+ --mimi-disabled-opacity: 0.5;
76
+ --mimi-icon-size: 1rem;
77
+ --mimi-icon-size-sm: 0.875rem;
78
+
45
79
  /* Movimiento. `translate` mueve el pulgar del Switch (y --mimi-lift si se usa). */
46
80
  --mimi-lift: 0px;
47
81
  --mimi-press-scale: 0.975;
@@ -71,18 +105,114 @@
71
105
  --mimi-shadow-neutral-hover: 0 2px 4px oklch(0 0 0 / 0.06), 0 10px 20px -8px oklch(0 0 0 / 0.14);
72
106
  /* Pulgar del Switch (igual en claro y oscuro) */
73
107
  --mimi-shadow-thumb: 0 1px 3px oklch(0 0 0 / 0.2);
108
+ --mimi-shadow-success:
109
+ 0 1px 2px color-mix(in oklch, var(--mimi-success) 25%, transparent),
110
+ 0 4px 12px -4px color-mix(in oklch, var(--mimi-success) 35%, transparent);
111
+ --mimi-shadow-success-hover:
112
+ 0 1px 2px color-mix(in oklch, var(--mimi-success) 30%, transparent),
113
+ 0 8px 18px -6px color-mix(in oklch, var(--mimi-success) 42%, transparent);
114
+ --mimi-shadow-warning:
115
+ 0 1px 2px color-mix(in oklch, var(--mimi-warning) 30%, transparent),
116
+ 0 4px 12px -4px color-mix(in oklch, var(--mimi-warning) 45%, transparent);
117
+ --mimi-shadow-warning-hover:
118
+ 0 1px 2px color-mix(in oklch, var(--mimi-warning) 35%, transparent),
119
+ 0 8px 18px -6px color-mix(in oklch, var(--mimi-warning) 52%, transparent);
120
+ --mimi-shadow-info:
121
+ 0 1px 2px color-mix(in oklch, var(--mimi-info) 25%, transparent),
122
+ 0 4px 12px -4px color-mix(in oklch, var(--mimi-info) 35%, transparent);
123
+ --mimi-shadow-info-hover:
124
+ 0 1px 2px color-mix(in oklch, var(--mimi-info) 30%, transparent),
125
+ 0 8px 18px -6px color-mix(in oklch, var(--mimi-info) 42%, transparent);
126
+ /* Menús, diálogos, toasts y píldoras flotantes */
127
+ --mimi-shadow-popover:
128
+ 0 0 0 1px oklch(0 0 0 / 0.04), 0 4px 8px -2px oklch(0 0 0 / 0.06),
129
+ 0 16px 32px -8px oklch(0 0 0 / 0.16);
130
+ /* Glow: brillo de color alrededor del componente (opción glow) */
131
+ --mimi-glow-primary:
132
+ 0 0 0 1px color-mix(in oklch, var(--mimi-primary) 22%, transparent),
133
+ 0 0 14px 0 color-mix(in oklch, var(--mimi-primary) 30%, transparent),
134
+ 0 0 32px 4px color-mix(in oklch, var(--mimi-primary) 16%, transparent);
135
+ --mimi-glow-success:
136
+ 0 0 0 1px color-mix(in oklch, var(--mimi-success) 30%, transparent),
137
+ 0 0 14px 0 color-mix(in oklch, var(--mimi-success) 45%, transparent),
138
+ 0 0 32px 4px color-mix(in oklch, var(--mimi-success) 25%, transparent);
139
+ --mimi-glow-warning:
140
+ 0 0 0 1px color-mix(in oklch, var(--mimi-warning) 35%, transparent),
141
+ 0 0 14px 0 color-mix(in oklch, var(--mimi-warning) 55%, transparent),
142
+ 0 0 32px 4px color-mix(in oklch, var(--mimi-warning) 30%, transparent);
143
+ --mimi-glow-info:
144
+ 0 0 0 1px color-mix(in oklch, var(--mimi-info) 30%, transparent),
145
+ 0 0 14px 0 color-mix(in oklch, var(--mimi-info) 45%, transparent),
146
+ 0 0 32px 4px color-mix(in oklch, var(--mimi-info) 25%, transparent);
147
+ --mimi-glow-destructive:
148
+ 0 0 0 1px color-mix(in oklch, var(--mimi-destructive) 30%, transparent),
149
+ 0 0 14px 0 color-mix(in oklch, var(--mimi-destructive) 45%, transparent),
150
+ 0 0 32px 4px color-mix(in oklch, var(--mimi-destructive) 25%, transparent);
151
+ --mimi-glow: var(--mimi-glow-primary);
74
152
 
75
153
  /* Derivados */
76
154
  --mimi-primary-hover: color-mix(in oklch, var(--mimi-primary) 88%, var(--mimi-background));
77
155
  --mimi-secondary-hover: color-mix(in oklch, var(--mimi-secondary) 80%, var(--mimi-foreground) 6%);
156
+ /* Hover de los sólidos con texto blanco: se aleja del texto, hacia foreground (AA, V.1). En
157
+ oscuro el texto es oscuro y el hover sigue yendo hacia el fondo. */
78
158
  --mimi-destructive-hover: color-mix(
79
159
  in oklch,
80
160
  var(--mimi-destructive) 88%,
81
- var(--mimi-background)
161
+ var(--mimi-foreground)
82
162
  );
83
163
  --mimi-ring-soft: color-mix(in oklch, var(--mimi-ring) 32%, transparent);
84
- --mimi-destructive-soft: color-mix(in oklch, var(--mimi-destructive) 24%, transparent);
85
164
  --mimi-switch-off: color-mix(in oklch, var(--mimi-foreground) 20%, transparent);
165
+ /* Tonos: <tono>-soft = fondo suave, <tono>-hover = hover, <tono>-ring = anillo */
166
+ --mimi-success-soft: color-mix(
167
+ in oklab,
168
+ var(--mimi-success) var(--mimi-soft-mix),
169
+ var(--mimi-background)
170
+ );
171
+ --mimi-warning-soft: color-mix(
172
+ in oklab,
173
+ var(--mimi-warning) var(--mimi-soft-mix),
174
+ var(--mimi-background)
175
+ );
176
+ --mimi-info-soft: color-mix(
177
+ in oklab,
178
+ var(--mimi-info) var(--mimi-soft-mix),
179
+ var(--mimi-background)
180
+ );
181
+ --mimi-success-hover: color-mix(in oklab, var(--mimi-success) 88%, var(--mimi-foreground));
182
+ --mimi-warning-hover: color-mix(in oklab, var(--mimi-warning) 88%, var(--mimi-background));
183
+ --mimi-info-hover: color-mix(in oklab, var(--mimi-info) 88%, var(--mimi-foreground));
184
+ --mimi-success-ring: color-mix(in oklch, var(--mimi-success) 30%, transparent);
185
+ --mimi-warning-ring: color-mix(in oklch, var(--mimi-warning) 34%, transparent);
186
+ --mimi-info-ring: color-mix(in oklch, var(--mimi-info) 30%, transparent);
187
+ --mimi-destructive-ring: color-mix(in oklch, var(--mimi-destructive) 24%, transparent);
188
+ /* Fondo suave de destructive. En la 1.0 pasa a llamarse destructive-soft (spec 12). */
189
+ --mimi-destructive-soft-bg: color-mix(
190
+ in oklab,
191
+ var(--mimi-destructive) var(--mimi-soft-mix),
192
+ var(--mimi-background)
193
+ );
194
+ /* Alias de la 0.1.0 (era el anillo). Se quita en la 1.0: usar destructive-ring (spec 12). */
195
+ --mimi-destructive-soft: var(--mimi-destructive-ring);
196
+ /* Variantes con tono (fórmulas de F2 Tokens y Tonos): hover de soft, borde y hover de outline */
197
+ --mimi-primary-soft-hover: color-mix(in oklab, var(--mimi-primary) 22%, var(--mimi-background));
198
+ --mimi-primary-border: color-mix(in oklch, var(--mimi-primary) 55%, transparent);
199
+ --mimi-primary-subtle: color-mix(in oklch, var(--mimi-primary) 10%, transparent);
200
+ --mimi-success-soft-hover: color-mix(in oklab, var(--mimi-success) 22%, var(--mimi-background));
201
+ --mimi-success-border: color-mix(in oklch, var(--mimi-success) 55%, transparent);
202
+ --mimi-success-subtle: color-mix(in oklch, var(--mimi-success) 10%, transparent);
203
+ --mimi-warning-soft-hover: color-mix(in oklab, var(--mimi-warning) 22%, var(--mimi-background));
204
+ --mimi-warning-border: color-mix(in oklch, var(--mimi-warning) 55%, transparent);
205
+ --mimi-warning-subtle: color-mix(in oklch, var(--mimi-warning) 10%, transparent);
206
+ --mimi-info-soft-hover: color-mix(in oklab, var(--mimi-info) 22%, var(--mimi-background));
207
+ --mimi-info-border: color-mix(in oklch, var(--mimi-info) 55%, transparent);
208
+ --mimi-info-subtle: color-mix(in oklch, var(--mimi-info) 10%, transparent);
209
+ --mimi-destructive-soft-hover: color-mix(
210
+ in oklab,
211
+ var(--mimi-destructive) 22%,
212
+ var(--mimi-background)
213
+ );
214
+ --mimi-destructive-border: color-mix(in oklch, var(--mimi-destructive) 55%, transparent);
215
+ --mimi-destructive-subtle: color-mix(in oklch, var(--mimi-destructive) 10%, transparent);
86
216
 
87
217
  color-scheme: light;
88
218
  }
@@ -93,7 +223,7 @@
93
223
  --mimi-foreground: oklch(0.985 0 0);
94
224
  --mimi-card: oklch(0.175 0 0);
95
225
  --mimi-card-foreground: oklch(0.985 0 0);
96
- --mimi-popover: oklch(0.175 0 0);
226
+ --mimi-popover: oklch(0.205 0 0);
97
227
  --mimi-popover-foreground: oklch(0.985 0 0);
98
228
  --mimi-primary: oklch(0.922 0 0);
99
229
  --mimi-primary-foreground: oklch(0.205 0 0);
@@ -108,8 +238,26 @@
108
238
  --mimi-border: oklch(1 0 0 / 10%);
109
239
  --mimi-input: oklch(1 0 0 / 15%);
110
240
  --mimi-input-background: oklch(1 0 0 / 4.5%);
241
+ --mimi-input-hover: color-mix(in oklab, var(--mimi-foreground) 30%, var(--mimi-input));
111
242
  --mimi-ring: oklch(0.556 0 0);
112
- --mimi-overlay: oklch(0 0 0 / 50%);
243
+
244
+ --mimi-success: oklch(0.72 0.15 150);
245
+ --mimi-success-foreground: oklch(0.2 0.05 150);
246
+ --mimi-success-soft-foreground: oklch(0.84 0.12 150);
247
+ --mimi-warning: oklch(0.81 0.15 78);
248
+ --mimi-warning-foreground: oklch(0.22 0.05 60);
249
+ --mimi-warning-soft-foreground: oklch(0.87 0.12 80);
250
+ --mimi-info: oklch(0.72 0.14 250);
251
+ --mimi-info-foreground: oklch(0.2 0.05 250);
252
+ --mimi-info-soft-foreground: oklch(0.84 0.1 250);
253
+ --mimi-destructive-soft-foreground: oklch(0.82 0.12 22);
254
+ --mimi-soft-mix: 18%;
255
+
256
+ --mimi-tooltip: oklch(0.922 0 0);
257
+ --mimi-tooltip-foreground: oklch(0.205 0 0);
258
+ --mimi-overlay: oklch(0 0 0 / 0.6);
259
+ --mimi-glass: oklch(0.205 0 0 / 0.7);
260
+ --mimi-glass-border: oklch(1 0 0 / 0.09);
113
261
 
114
262
  --mimi-shadow-card:
115
263
  inset 0 1px 0 oklch(1 0 0 / 0.04), 0 1px 2px oklch(0 0 0 / 0.5),
@@ -132,6 +280,48 @@
132
280
  --mimi-shadow-neutral-hover:
133
281
  inset 0 1px 0 oklch(1 0 0 / 0.06), 0 2px 4px oklch(0 0 0 / 0.5),
134
282
  0 10px 20px -8px oklch(0 0 0 / 0.75);
283
+ --mimi-shadow-success:
284
+ 0 1px 2px oklch(0 0 0 / 0.5),
285
+ 0 4px 12px -4px color-mix(in oklch, var(--mimi-success) 30%, transparent);
286
+ --mimi-shadow-success-hover:
287
+ 0 1px 2px oklch(0 0 0 / 0.5),
288
+ 0 8px 18px -6px color-mix(in oklch, var(--mimi-success) 40%, transparent);
289
+ --mimi-shadow-warning:
290
+ 0 1px 2px oklch(0 0 0 / 0.5),
291
+ 0 4px 12px -4px color-mix(in oklch, var(--mimi-warning) 30%, transparent);
292
+ --mimi-shadow-warning-hover:
293
+ 0 1px 2px oklch(0 0 0 / 0.5),
294
+ 0 8px 18px -6px color-mix(in oklch, var(--mimi-warning) 40%, transparent);
295
+ --mimi-shadow-info:
296
+ 0 1px 2px oklch(0 0 0 / 0.5),
297
+ 0 4px 12px -4px color-mix(in oklch, var(--mimi-info) 30%, transparent);
298
+ --mimi-shadow-info-hover:
299
+ 0 1px 2px oklch(0 0 0 / 0.5),
300
+ 0 8px 18px -6px color-mix(in oklch, var(--mimi-info) 40%, transparent);
301
+ --mimi-shadow-popover:
302
+ inset 0 1px 0 oklch(1 0 0 / 0.05), 0 0 0 1px oklch(0 0 0 / 0.6),
303
+ 0 16px 40px -8px oklch(0 0 0 / 0.8);
304
+ --mimi-glow-primary:
305
+ 0 0 0 1px color-mix(in oklch, var(--mimi-primary) 30%, transparent),
306
+ 0 0 16px 0 color-mix(in oklch, var(--mimi-primary) 32%, transparent),
307
+ 0 0 40px 6px color-mix(in oklch, var(--mimi-primary) 16%, transparent);
308
+ --mimi-glow-success:
309
+ 0 0 0 1px color-mix(in oklch, var(--mimi-success) 40%, transparent),
310
+ 0 0 16px 0 color-mix(in oklch, var(--mimi-success) 50%, transparent),
311
+ 0 0 40px 6px color-mix(in oklch, var(--mimi-success) 26%, transparent);
312
+ --mimi-glow-warning:
313
+ 0 0 0 1px color-mix(in oklch, var(--mimi-warning) 40%, transparent),
314
+ 0 0 16px 0 color-mix(in oklch, var(--mimi-warning) 50%, transparent),
315
+ 0 0 40px 6px color-mix(in oklch, var(--mimi-warning) 26%, transparent);
316
+ --mimi-glow-info:
317
+ 0 0 0 1px color-mix(in oklch, var(--mimi-info) 40%, transparent),
318
+ 0 0 16px 0 color-mix(in oklch, var(--mimi-info) 50%, transparent),
319
+ 0 0 40px 6px color-mix(in oklch, var(--mimi-info) 26%, transparent);
320
+ --mimi-glow-destructive:
321
+ 0 0 0 1px color-mix(in oklch, var(--mimi-destructive) 40%, transparent),
322
+ 0 0 16px 0 color-mix(in oklch, var(--mimi-destructive) 50%, transparent),
323
+ 0 0 40px 6px color-mix(in oklch, var(--mimi-destructive) 26%, transparent);
324
+ --mimi-glow: var(--mimi-glow-primary);
135
325
 
136
326
  /* Los derivados se redeclaran para que tomen la paleta oscura */
137
327
  --mimi-primary-hover: color-mix(in oklch, var(--mimi-primary) 88%, var(--mimi-background));
@@ -142,8 +332,58 @@
142
332
  var(--mimi-background)
143
333
  );
144
334
  --mimi-ring-soft: color-mix(in oklch, var(--mimi-ring) 32%, transparent);
145
- --mimi-destructive-soft: color-mix(in oklch, var(--mimi-destructive) 24%, transparent);
146
335
  --mimi-switch-off: color-mix(in oklch, var(--mimi-foreground) 20%, transparent);
336
+ /* Tonos: <tono>-soft = fondo suave, <tono>-hover = hover, <tono>-ring = anillo */
337
+ --mimi-success-soft: color-mix(
338
+ in oklab,
339
+ var(--mimi-success) var(--mimi-soft-mix),
340
+ var(--mimi-background)
341
+ );
342
+ --mimi-warning-soft: color-mix(
343
+ in oklab,
344
+ var(--mimi-warning) var(--mimi-soft-mix),
345
+ var(--mimi-background)
346
+ );
347
+ --mimi-info-soft: color-mix(
348
+ in oklab,
349
+ var(--mimi-info) var(--mimi-soft-mix),
350
+ var(--mimi-background)
351
+ );
352
+ --mimi-success-hover: color-mix(in oklab, var(--mimi-success) 88%, var(--mimi-background));
353
+ --mimi-warning-hover: color-mix(in oklab, var(--mimi-warning) 88%, var(--mimi-background));
354
+ --mimi-info-hover: color-mix(in oklab, var(--mimi-info) 88%, var(--mimi-background));
355
+ --mimi-success-ring: color-mix(in oklch, var(--mimi-success) 30%, transparent);
356
+ --mimi-warning-ring: color-mix(in oklch, var(--mimi-warning) 34%, transparent);
357
+ --mimi-info-ring: color-mix(in oklch, var(--mimi-info) 30%, transparent);
358
+ --mimi-destructive-ring: color-mix(in oklch, var(--mimi-destructive) 24%, transparent);
359
+ /* Fondo suave de destructive. En la 1.0 pasa a llamarse destructive-soft (spec 12). */
360
+ --mimi-destructive-soft-bg: color-mix(
361
+ in oklab,
362
+ var(--mimi-destructive) var(--mimi-soft-mix),
363
+ var(--mimi-background)
364
+ );
365
+ /* Alias de la 0.1.0 (era el anillo). Se quita en la 1.0: usar destructive-ring (spec 12). */
366
+ --mimi-destructive-soft: var(--mimi-destructive-ring);
367
+ /* Variantes con tono (fórmulas de F2 Tokens y Tonos): hover de soft, borde y hover de outline */
368
+ --mimi-primary-soft-hover: color-mix(in oklab, var(--mimi-primary) 22%, var(--mimi-background));
369
+ --mimi-primary-border: color-mix(in oklch, var(--mimi-primary) 55%, transparent);
370
+ --mimi-primary-subtle: color-mix(in oklch, var(--mimi-primary) 10%, transparent);
371
+ --mimi-success-soft-hover: color-mix(in oklab, var(--mimi-success) 22%, var(--mimi-background));
372
+ --mimi-success-border: color-mix(in oklch, var(--mimi-success) 55%, transparent);
373
+ --mimi-success-subtle: color-mix(in oklch, var(--mimi-success) 10%, transparent);
374
+ --mimi-warning-soft-hover: color-mix(in oklab, var(--mimi-warning) 22%, var(--mimi-background));
375
+ --mimi-warning-border: color-mix(in oklch, var(--mimi-warning) 55%, transparent);
376
+ --mimi-warning-subtle: color-mix(in oklch, var(--mimi-warning) 10%, transparent);
377
+ --mimi-info-soft-hover: color-mix(in oklab, var(--mimi-info) 22%, var(--mimi-background));
378
+ --mimi-info-border: color-mix(in oklch, var(--mimi-info) 55%, transparent);
379
+ --mimi-info-subtle: color-mix(in oklch, var(--mimi-info) 10%, transparent);
380
+ --mimi-destructive-soft-hover: color-mix(
381
+ in oklab,
382
+ var(--mimi-destructive) 22%,
383
+ var(--mimi-background)
384
+ );
385
+ --mimi-destructive-border: color-mix(in oklch, var(--mimi-destructive) 55%, transparent);
386
+ --mimi-destructive-subtle: color-mix(in oklch, var(--mimi-destructive) 10%, transparent);
147
387
 
148
388
  color-scheme: dark;
149
389
  }
@@ -179,9 +419,51 @@
179
419
  --color-destructive: var(--mimi-destructive);
180
420
  --color-destructive-foreground: var(--mimi-destructive-foreground);
181
421
  --color-destructive-hover: var(--mimi-destructive-hover);
182
- --color-destructive-soft: var(--mimi-destructive-soft);
422
+ --color-destructive-ring: var(--mimi-destructive-ring);
423
+ --color-destructive-soft-bg: var(--mimi-destructive-soft-bg);
424
+ --color-destructive-soft-foreground: var(--mimi-destructive-soft-foreground);
425
+ /* Alias de la 0.1.0: ring-destructive-soft sigue funcionando hasta la 1.0 (spec 12) */
426
+ --color-destructive-soft: var(--mimi-destructive-ring);
427
+ --color-success: var(--mimi-success);
428
+ --color-success-foreground: var(--mimi-success-foreground);
429
+ --color-success-soft: var(--mimi-success-soft);
430
+ --color-success-soft-foreground: var(--mimi-success-soft-foreground);
431
+ --color-success-hover: var(--mimi-success-hover);
432
+ --color-success-ring: var(--mimi-success-ring);
433
+ --color-warning: var(--mimi-warning);
434
+ --color-warning-foreground: var(--mimi-warning-foreground);
435
+ --color-warning-soft: var(--mimi-warning-soft);
436
+ --color-warning-soft-foreground: var(--mimi-warning-soft-foreground);
437
+ --color-warning-hover: var(--mimi-warning-hover);
438
+ --color-warning-ring: var(--mimi-warning-ring);
439
+ --color-info: var(--mimi-info);
440
+ --color-info-foreground: var(--mimi-info-foreground);
441
+ --color-info-soft: var(--mimi-info-soft);
442
+ --color-info-soft-foreground: var(--mimi-info-soft-foreground);
443
+ --color-info-hover: var(--mimi-info-hover);
444
+ --color-info-ring: var(--mimi-info-ring);
445
+ --color-primary-soft-hover: var(--mimi-primary-soft-hover);
446
+ --color-primary-border: var(--mimi-primary-border);
447
+ --color-primary-subtle: var(--mimi-primary-subtle);
448
+ --color-success-soft-hover: var(--mimi-success-soft-hover);
449
+ --color-success-border: var(--mimi-success-border);
450
+ --color-success-subtle: var(--mimi-success-subtle);
451
+ --color-warning-soft-hover: var(--mimi-warning-soft-hover);
452
+ --color-warning-border: var(--mimi-warning-border);
453
+ --color-warning-subtle: var(--mimi-warning-subtle);
454
+ --color-info-soft-hover: var(--mimi-info-soft-hover);
455
+ --color-info-border: var(--mimi-info-border);
456
+ --color-info-subtle: var(--mimi-info-subtle);
457
+ --color-destructive-soft-hover: var(--mimi-destructive-soft-hover);
458
+ --color-destructive-border: var(--mimi-destructive-border);
459
+ --color-destructive-subtle: var(--mimi-destructive-subtle);
460
+ --color-tooltip: var(--mimi-tooltip);
461
+ --color-tooltip-foreground: var(--mimi-tooltip-foreground);
462
+ --color-glass: var(--mimi-glass);
463
+ --color-glass-border: var(--mimi-glass-border);
183
464
  --color-border: var(--mimi-border);
184
465
  --color-input: var(--mimi-input);
466
+ --color-input-hover: var(--mimi-input-hover);
185
467
  --color-input-background: var(--mimi-input-background);
186
468
  --color-ring: var(--mimi-ring);
187
469
  --color-ring-soft: var(--mimi-ring-soft);
@@ -203,6 +485,22 @@
203
485
  --shadow-neutral: var(--mimi-shadow-neutral);
204
486
  --shadow-neutral-hover: var(--mimi-shadow-neutral-hover);
205
487
  --shadow-thumb: var(--mimi-shadow-thumb);
488
+ --shadow-success: var(--mimi-shadow-success);
489
+ --shadow-success-hover: var(--mimi-shadow-success-hover);
490
+ --shadow-warning: var(--mimi-shadow-warning);
491
+ --shadow-warning-hover: var(--mimi-shadow-warning-hover);
492
+ --shadow-info: var(--mimi-shadow-info);
493
+ --shadow-info-hover: var(--mimi-shadow-info-hover);
494
+ --shadow-popover: var(--mimi-shadow-popover);
495
+ --shadow-glow: var(--mimi-glow);
496
+ --shadow-glow-primary: var(--mimi-glow-primary);
497
+ --shadow-glow-success: var(--mimi-glow-success);
498
+ --shadow-glow-warning: var(--mimi-glow-warning);
499
+ --shadow-glow-info: var(--mimi-glow-info);
500
+ --shadow-glow-destructive: var(--mimi-glow-destructive);
501
+
502
+ --blur-glass: var(--mimi-glass-blur);
503
+ --blur-overlay: var(--mimi-overlay-blur);
206
504
 
207
505
  --font-sans: var(--mimi-font-sans);
208
506
  --font-mono: var(--mimi-font-mono);