@octavius2929-personal/design-system 0.3.0 → 0.4.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/dist/index.d.ts CHANGED
@@ -1,8 +1,633 @@
1
1
  import * as react from 'react';
2
2
  import { SVGProps, ReactElement, ButtonHTMLAttributes, HTMLAttributes, ReactNode, InputHTMLAttributes, TableHTMLAttributes } from 'react';
3
3
 
4
+ declare const tintaSchema: {
5
+ light: {
6
+ color: {
7
+ bg1: string;
8
+ bg2: string;
9
+ bg3: string;
10
+ bgInset: string;
11
+ fg1: string;
12
+ fg2: string;
13
+ fg3: string;
14
+ fgOnAccent: string;
15
+ border1: string;
16
+ border2: string;
17
+ borderStrong: string;
18
+ accent: string;
19
+ accentHover: string;
20
+ accentSoft: string;
21
+ ok: string;
22
+ warn: string;
23
+ danger: string;
24
+ info: string;
25
+ focus: string;
26
+ scrim: string;
27
+ };
28
+ font: {
29
+ readonly display: "'DM Serif Display', 'Times New Roman', serif";
30
+ readonly text: "'Newsreader', Georgia, serif";
31
+ readonly mono: "'IBM Plex Mono', 'SFMono-Regular', monospace";
32
+ readonly black: "'UnifrakturMaguntia', 'Grenze Gotisch', serif";
33
+ };
34
+ text: {
35
+ readonly eyebrow: {
36
+ readonly size: "0.694rem";
37
+ readonly lineHeight: "1.2";
38
+ readonly weight: "500";
39
+ readonly letterSpacing: "0.14em";
40
+ };
41
+ readonly display: {
42
+ readonly size: "5.6rem";
43
+ readonly lineHeight: "1.05";
44
+ readonly weight: "600";
45
+ readonly letterSpacing: "-0.01em";
46
+ };
47
+ readonly h1: {
48
+ readonly size: "2.9rem";
49
+ readonly lineHeight: "1.05";
50
+ readonly weight: "600";
51
+ readonly letterSpacing: "-0.01em";
52
+ };
53
+ readonly h2: {
54
+ readonly size: "2.1rem";
55
+ readonly lineHeight: "1.2";
56
+ readonly weight: "600";
57
+ readonly letterSpacing: "0";
58
+ };
59
+ readonly h3: {
60
+ readonly size: "1.563rem";
61
+ readonly lineHeight: "1.2";
62
+ readonly weight: "500";
63
+ readonly letterSpacing: "0";
64
+ };
65
+ readonly h4: {
66
+ readonly size: "1.25rem";
67
+ readonly lineHeight: "1.2";
68
+ readonly weight: "600";
69
+ readonly letterSpacing: "0";
70
+ };
71
+ readonly body: {
72
+ readonly size: "1rem";
73
+ readonly lineHeight: "1.7";
74
+ readonly weight: "400";
75
+ readonly letterSpacing: "0";
76
+ };
77
+ readonly lead: {
78
+ readonly size: "1.25rem";
79
+ readonly lineHeight: "1.7";
80
+ readonly weight: "400";
81
+ readonly letterSpacing: "0";
82
+ };
83
+ readonly small: {
84
+ readonly size: "0.95rem";
85
+ readonly lineHeight: "1.5";
86
+ readonly weight: "400";
87
+ readonly letterSpacing: "0";
88
+ };
89
+ readonly caption: {
90
+ readonly size: "0.833rem";
91
+ readonly lineHeight: "1.5";
92
+ readonly weight: "400";
93
+ readonly letterSpacing: "0.04em";
94
+ };
95
+ };
96
+ space: {
97
+ readonly none: "0";
98
+ readonly xs: "0.25rem";
99
+ readonly sm: "0.5rem";
100
+ readonly md: "0.75rem";
101
+ readonly lg: "1rem";
102
+ readonly xl: "1.5rem";
103
+ readonly "2xl": "2rem";
104
+ readonly "3xl": "3rem";
105
+ readonly "4xl": "4rem";
106
+ readonly "5xl": "6rem";
107
+ };
108
+ radius: {
109
+ readonly none: "0px";
110
+ readonly sm: "3px";
111
+ readonly md: "5px";
112
+ readonly lg: "8px";
113
+ readonly base: "4px";
114
+ readonly full: "999px";
115
+ };
116
+ border: {
117
+ readonly hair: "1px";
118
+ readonly rule: "1.5px";
119
+ readonly heavy: "2px";
120
+ };
121
+ tracking: {
122
+ readonly tight: "-0.01em";
123
+ readonly normal: "0";
124
+ readonly wide: "0.04em";
125
+ readonly wider: "0.14em";
126
+ readonly widest: "0.28em";
127
+ };
128
+ leading: {
129
+ readonly tight: "1.05";
130
+ readonly snug: "1.2";
131
+ readonly normal: "1.5";
132
+ readonly relaxed: "1.7";
133
+ };
134
+ weight: {
135
+ readonly light: "300";
136
+ readonly regular: "400";
137
+ readonly medium: "500";
138
+ readonly semibold: "600";
139
+ readonly bold: "700";
140
+ };
141
+ dur: {
142
+ readonly fast: "120ms";
143
+ readonly base: "200ms";
144
+ readonly slow: "360ms";
145
+ };
146
+ ease: {
147
+ readonly ink: "cubic-bezier(0.2, 0, 0, 1)";
148
+ };
149
+ shadow: {
150
+ readonly sm: "0 1px 0 rgba(20,17,14,0.06)";
151
+ readonly md: "0 2px 10px -4px rgba(20,17,14,0.22)";
152
+ readonly lg: "0 12px 32px -10px rgba(20,17,14,0.34)";
153
+ };
154
+ };
155
+ dark: {
156
+ color: {
157
+ bg1: string;
158
+ bg2: string;
159
+ bg3: string;
160
+ bgInset: string;
161
+ fg1: string;
162
+ fg2: string;
163
+ fg3: string;
164
+ fgOnAccent: string;
165
+ border1: string;
166
+ border2: string;
167
+ borderStrong: string;
168
+ accent: string;
169
+ accentHover: string;
170
+ accentSoft: string;
171
+ ok: string;
172
+ warn: string;
173
+ danger: string;
174
+ info: string;
175
+ focus: string;
176
+ scrim: string;
177
+ };
178
+ font: {
179
+ readonly display: "'DM Serif Display', 'Times New Roman', serif";
180
+ readonly text: "'Newsreader', Georgia, serif";
181
+ readonly mono: "'IBM Plex Mono', 'SFMono-Regular', monospace";
182
+ readonly black: "'UnifrakturMaguntia', 'Grenze Gotisch', serif";
183
+ };
184
+ text: {
185
+ readonly eyebrow: {
186
+ readonly size: "0.694rem";
187
+ readonly lineHeight: "1.2";
188
+ readonly weight: "500";
189
+ readonly letterSpacing: "0.14em";
190
+ };
191
+ readonly display: {
192
+ readonly size: "5.6rem";
193
+ readonly lineHeight: "1.05";
194
+ readonly weight: "600";
195
+ readonly letterSpacing: "-0.01em";
196
+ };
197
+ readonly h1: {
198
+ readonly size: "2.9rem";
199
+ readonly lineHeight: "1.05";
200
+ readonly weight: "600";
201
+ readonly letterSpacing: "-0.01em";
202
+ };
203
+ readonly h2: {
204
+ readonly size: "2.1rem";
205
+ readonly lineHeight: "1.2";
206
+ readonly weight: "600";
207
+ readonly letterSpacing: "0";
208
+ };
209
+ readonly h3: {
210
+ readonly size: "1.563rem";
211
+ readonly lineHeight: "1.2";
212
+ readonly weight: "500";
213
+ readonly letterSpacing: "0";
214
+ };
215
+ readonly h4: {
216
+ readonly size: "1.25rem";
217
+ readonly lineHeight: "1.2";
218
+ readonly weight: "600";
219
+ readonly letterSpacing: "0";
220
+ };
221
+ readonly body: {
222
+ readonly size: "1rem";
223
+ readonly lineHeight: "1.7";
224
+ readonly weight: "400";
225
+ readonly letterSpacing: "0";
226
+ };
227
+ readonly lead: {
228
+ readonly size: "1.25rem";
229
+ readonly lineHeight: "1.7";
230
+ readonly weight: "400";
231
+ readonly letterSpacing: "0";
232
+ };
233
+ readonly small: {
234
+ readonly size: "0.95rem";
235
+ readonly lineHeight: "1.5";
236
+ readonly weight: "400";
237
+ readonly letterSpacing: "0";
238
+ };
239
+ readonly caption: {
240
+ readonly size: "0.833rem";
241
+ readonly lineHeight: "1.5";
242
+ readonly weight: "400";
243
+ readonly letterSpacing: "0.04em";
244
+ };
245
+ };
246
+ space: {
247
+ readonly none: "0";
248
+ readonly xs: "0.25rem";
249
+ readonly sm: "0.5rem";
250
+ readonly md: "0.75rem";
251
+ readonly lg: "1rem";
252
+ readonly xl: "1.5rem";
253
+ readonly "2xl": "2rem";
254
+ readonly "3xl": "3rem";
255
+ readonly "4xl": "4rem";
256
+ readonly "5xl": "6rem";
257
+ };
258
+ radius: {
259
+ readonly none: "0px";
260
+ readonly sm: "3px";
261
+ readonly md: "5px";
262
+ readonly lg: "8px";
263
+ readonly base: "4px";
264
+ readonly full: "999px";
265
+ };
266
+ border: {
267
+ readonly hair: "1px";
268
+ readonly rule: "1.5px";
269
+ readonly heavy: "2px";
270
+ };
271
+ tracking: {
272
+ readonly tight: "-0.01em";
273
+ readonly normal: "0";
274
+ readonly wide: "0.04em";
275
+ readonly wider: "0.14em";
276
+ readonly widest: "0.28em";
277
+ };
278
+ leading: {
279
+ readonly tight: "1.05";
280
+ readonly snug: "1.2";
281
+ readonly normal: "1.5";
282
+ readonly relaxed: "1.7";
283
+ };
284
+ weight: {
285
+ readonly light: "300";
286
+ readonly regular: "400";
287
+ readonly medium: "500";
288
+ readonly semibold: "600";
289
+ readonly bold: "700";
290
+ };
291
+ dur: {
292
+ readonly fast: "120ms";
293
+ readonly base: "200ms";
294
+ readonly slow: "360ms";
295
+ };
296
+ ease: {
297
+ readonly ink: "cubic-bezier(0.2, 0, 0, 1)";
298
+ };
299
+ shadow: {
300
+ readonly sm: "0 1px 0 rgba(20,17,14,0.06)";
301
+ readonly md: "0 2px 10px -4px rgba(20,17,14,0.22)";
302
+ readonly lg: "0 12px 32px -10px rgba(20,17,14,0.34)";
303
+ };
304
+ };
305
+ sepia: {
306
+ color: {
307
+ bg1: string;
308
+ bg2: string;
309
+ bg3: string;
310
+ bgInset: string;
311
+ fg1: string;
312
+ fg2: string;
313
+ fg3: string;
314
+ fgOnAccent: string;
315
+ border1: string;
316
+ border2: string;
317
+ borderStrong: string;
318
+ accent: string;
319
+ accentHover: string;
320
+ accentSoft: string;
321
+ ok: string;
322
+ warn: string;
323
+ danger: string;
324
+ info: string;
325
+ focus: string;
326
+ scrim: string;
327
+ };
328
+ font: {
329
+ readonly display: "'DM Serif Display', 'Times New Roman', serif";
330
+ readonly text: "'Newsreader', Georgia, serif";
331
+ readonly mono: "'IBM Plex Mono', 'SFMono-Regular', monospace";
332
+ readonly black: "'UnifrakturMaguntia', 'Grenze Gotisch', serif";
333
+ };
334
+ text: {
335
+ readonly eyebrow: {
336
+ readonly size: "0.694rem";
337
+ readonly lineHeight: "1.2";
338
+ readonly weight: "500";
339
+ readonly letterSpacing: "0.14em";
340
+ };
341
+ readonly display: {
342
+ readonly size: "5.6rem";
343
+ readonly lineHeight: "1.05";
344
+ readonly weight: "600";
345
+ readonly letterSpacing: "-0.01em";
346
+ };
347
+ readonly h1: {
348
+ readonly size: "2.9rem";
349
+ readonly lineHeight: "1.05";
350
+ readonly weight: "600";
351
+ readonly letterSpacing: "-0.01em";
352
+ };
353
+ readonly h2: {
354
+ readonly size: "2.1rem";
355
+ readonly lineHeight: "1.2";
356
+ readonly weight: "600";
357
+ readonly letterSpacing: "0";
358
+ };
359
+ readonly h3: {
360
+ readonly size: "1.563rem";
361
+ readonly lineHeight: "1.2";
362
+ readonly weight: "500";
363
+ readonly letterSpacing: "0";
364
+ };
365
+ readonly h4: {
366
+ readonly size: "1.25rem";
367
+ readonly lineHeight: "1.2";
368
+ readonly weight: "600";
369
+ readonly letterSpacing: "0";
370
+ };
371
+ readonly body: {
372
+ readonly size: "1rem";
373
+ readonly lineHeight: "1.7";
374
+ readonly weight: "400";
375
+ readonly letterSpacing: "0";
376
+ };
377
+ readonly lead: {
378
+ readonly size: "1.25rem";
379
+ readonly lineHeight: "1.7";
380
+ readonly weight: "400";
381
+ readonly letterSpacing: "0";
382
+ };
383
+ readonly small: {
384
+ readonly size: "0.95rem";
385
+ readonly lineHeight: "1.5";
386
+ readonly weight: "400";
387
+ readonly letterSpacing: "0";
388
+ };
389
+ readonly caption: {
390
+ readonly size: "0.833rem";
391
+ readonly lineHeight: "1.5";
392
+ readonly weight: "400";
393
+ readonly letterSpacing: "0.04em";
394
+ };
395
+ };
396
+ space: {
397
+ readonly none: "0";
398
+ readonly xs: "0.25rem";
399
+ readonly sm: "0.5rem";
400
+ readonly md: "0.75rem";
401
+ readonly lg: "1rem";
402
+ readonly xl: "1.5rem";
403
+ readonly "2xl": "2rem";
404
+ readonly "3xl": "3rem";
405
+ readonly "4xl": "4rem";
406
+ readonly "5xl": "6rem";
407
+ };
408
+ radius: {
409
+ readonly none: "0px";
410
+ readonly sm: "3px";
411
+ readonly md: "5px";
412
+ readonly lg: "8px";
413
+ readonly base: "4px";
414
+ readonly full: "999px";
415
+ };
416
+ border: {
417
+ readonly hair: "1px";
418
+ readonly rule: "1.5px";
419
+ readonly heavy: "2px";
420
+ };
421
+ tracking: {
422
+ readonly tight: "-0.01em";
423
+ readonly normal: "0";
424
+ readonly wide: "0.04em";
425
+ readonly wider: "0.14em";
426
+ readonly widest: "0.28em";
427
+ };
428
+ leading: {
429
+ readonly tight: "1.05";
430
+ readonly snug: "1.2";
431
+ readonly normal: "1.5";
432
+ readonly relaxed: "1.7";
433
+ };
434
+ weight: {
435
+ readonly light: "300";
436
+ readonly regular: "400";
437
+ readonly medium: "500";
438
+ readonly semibold: "600";
439
+ readonly bold: "700";
440
+ };
441
+ dur: {
442
+ readonly fast: "120ms";
443
+ readonly base: "200ms";
444
+ readonly slow: "360ms";
445
+ };
446
+ ease: {
447
+ readonly ink: "cubic-bezier(0.2, 0, 0, 1)";
448
+ };
449
+ shadow: {
450
+ readonly sm: "0 1px 0 rgba(20,17,14,0.06)";
451
+ readonly md: "0 2px 10px -4px rgba(20,17,14,0.22)";
452
+ readonly lg: "0 12px 32px -10px rgba(20,17,14,0.34)";
453
+ };
454
+ };
455
+ contrast: {
456
+ color: {
457
+ bg1: string;
458
+ bg2: string;
459
+ bg3: string;
460
+ bgInset: string;
461
+ fg1: string;
462
+ fg2: string;
463
+ fg3: string;
464
+ fgOnAccent: string;
465
+ border1: string;
466
+ border2: string;
467
+ borderStrong: string;
468
+ accent: string;
469
+ accentHover: string;
470
+ accentSoft: string;
471
+ ok: string;
472
+ warn: string;
473
+ danger: string;
474
+ info: string;
475
+ focus: string;
476
+ scrim: string;
477
+ };
478
+ font: {
479
+ readonly display: "'DM Serif Display', 'Times New Roman', serif";
480
+ readonly text: "'Newsreader', Georgia, serif";
481
+ readonly mono: "'IBM Plex Mono', 'SFMono-Regular', monospace";
482
+ readonly black: "'UnifrakturMaguntia', 'Grenze Gotisch', serif";
483
+ };
484
+ text: {
485
+ readonly eyebrow: {
486
+ readonly size: "0.694rem";
487
+ readonly lineHeight: "1.2";
488
+ readonly weight: "500";
489
+ readonly letterSpacing: "0.14em";
490
+ };
491
+ readonly display: {
492
+ readonly size: "5.6rem";
493
+ readonly lineHeight: "1.05";
494
+ readonly weight: "600";
495
+ readonly letterSpacing: "-0.01em";
496
+ };
497
+ readonly h1: {
498
+ readonly size: "2.9rem";
499
+ readonly lineHeight: "1.05";
500
+ readonly weight: "600";
501
+ readonly letterSpacing: "-0.01em";
502
+ };
503
+ readonly h2: {
504
+ readonly size: "2.1rem";
505
+ readonly lineHeight: "1.2";
506
+ readonly weight: "600";
507
+ readonly letterSpacing: "0";
508
+ };
509
+ readonly h3: {
510
+ readonly size: "1.563rem";
511
+ readonly lineHeight: "1.2";
512
+ readonly weight: "500";
513
+ readonly letterSpacing: "0";
514
+ };
515
+ readonly h4: {
516
+ readonly size: "1.25rem";
517
+ readonly lineHeight: "1.2";
518
+ readonly weight: "600";
519
+ readonly letterSpacing: "0";
520
+ };
521
+ readonly body: {
522
+ readonly size: "1rem";
523
+ readonly lineHeight: "1.7";
524
+ readonly weight: "400";
525
+ readonly letterSpacing: "0";
526
+ };
527
+ readonly lead: {
528
+ readonly size: "1.25rem";
529
+ readonly lineHeight: "1.7";
530
+ readonly weight: "400";
531
+ readonly letterSpacing: "0";
532
+ };
533
+ readonly small: {
534
+ readonly size: "0.95rem";
535
+ readonly lineHeight: "1.5";
536
+ readonly weight: "400";
537
+ readonly letterSpacing: "0";
538
+ };
539
+ readonly caption: {
540
+ readonly size: "0.833rem";
541
+ readonly lineHeight: "1.5";
542
+ readonly weight: "400";
543
+ readonly letterSpacing: "0.04em";
544
+ };
545
+ };
546
+ space: {
547
+ readonly none: "0";
548
+ readonly xs: "0.25rem";
549
+ readonly sm: "0.5rem";
550
+ readonly md: "0.75rem";
551
+ readonly lg: "1rem";
552
+ readonly xl: "1.5rem";
553
+ readonly "2xl": "2rem";
554
+ readonly "3xl": "3rem";
555
+ readonly "4xl": "4rem";
556
+ readonly "5xl": "6rem";
557
+ };
558
+ radius: {
559
+ readonly none: "0px";
560
+ readonly sm: "3px";
561
+ readonly md: "5px";
562
+ readonly lg: "8px";
563
+ readonly base: "4px";
564
+ readonly full: "999px";
565
+ };
566
+ border: {
567
+ readonly hair: "1px";
568
+ readonly rule: "1.5px";
569
+ readonly heavy: "2px";
570
+ };
571
+ tracking: {
572
+ readonly tight: "-0.01em";
573
+ readonly normal: "0";
574
+ readonly wide: "0.04em";
575
+ readonly wider: "0.14em";
576
+ readonly widest: "0.28em";
577
+ };
578
+ leading: {
579
+ readonly tight: "1.05";
580
+ readonly snug: "1.2";
581
+ readonly normal: "1.5";
582
+ readonly relaxed: "1.7";
583
+ };
584
+ weight: {
585
+ readonly light: "300";
586
+ readonly regular: "400";
587
+ readonly medium: "500";
588
+ readonly semibold: "600";
589
+ readonly bold: "700";
590
+ };
591
+ dur: {
592
+ readonly fast: "120ms";
593
+ readonly base: "200ms";
594
+ readonly slow: "360ms";
595
+ };
596
+ ease: {
597
+ readonly ink: "cubic-bezier(0.2, 0, 0, 1)";
598
+ };
599
+ shadow: {
600
+ readonly sm: "0 1px 0 rgba(20,17,14,0.06)";
601
+ readonly md: "0 2px 10px -4px rgba(20,17,14,0.22)";
602
+ readonly lg: "0 12px 32px -10px rgba(20,17,14,0.34)";
603
+ };
604
+ };
605
+ };
606
+
4
607
  type SchemaName = "tinta";
5
608
  type Mode = "light" | "dark" | "sepia" | "contrast";
609
+ declare const colorVars: {
610
+ bg1: `var(--${string})`;
611
+ bg2: `var(--${string})`;
612
+ bg3: `var(--${string})`;
613
+ bgInset: `var(--${string})`;
614
+ fg1: `var(--${string})`;
615
+ fg2: `var(--${string})`;
616
+ fg3: `var(--${string})`;
617
+ fgOnAccent: `var(--${string})`;
618
+ border1: `var(--${string})`;
619
+ border2: `var(--${string})`;
620
+ borderStrong: `var(--${string})`;
621
+ accent: `var(--${string})`;
622
+ accentHover: `var(--${string})`;
623
+ accentSoft: `var(--${string})`;
624
+ ok: `var(--${string})`;
625
+ warn: `var(--${string})`;
626
+ danger: `var(--${string})`;
627
+ info: `var(--${string})`;
628
+ focus: `var(--${string})`;
629
+ scrim: `var(--${string})`;
630
+ };
6
631
  declare const vars: {
7
632
  color: {
8
633
  bg1: `var(--${string})`;
@@ -23,6 +648,7 @@ declare const vars: {
23
648
  warn: `var(--${string})`;
24
649
  danger: `var(--${string})`;
25
650
  info: `var(--${string})`;
651
+ focus: `var(--${string})`;
26
652
  scrim: `var(--${string})`;
27
653
  };
28
654
  font: {
@@ -155,6 +781,7 @@ declare const vars: {
155
781
  declare const themes: Record<SchemaName, Record<Mode, string>>;
156
782
  declare const schemaNames: readonly SchemaName[];
157
783
  declare const modeNames: readonly Mode[];
784
+ type ColorTokens = typeof tintaSchema.light.color;
158
785
 
159
786
  declare function usePrevious<T>(value: T, initial: T): T;
160
787
  declare function usePrevious<T>(value: T, initial?: T): T | undefined;
@@ -422,7 +1049,7 @@ interface DialogProps {
422
1049
  children?: ReactNode;
423
1050
  }
424
1051
 
425
- declare function Dialog({ open, onClose, title, actions, children }: DialogProps): react.JSX.Element | null;
1052
+ declare function Dialog({ open, onClose, title, actions, children }: DialogProps): react.ReactPortal | null;
426
1053
 
427
1054
  interface SnackbarProps {
428
1055
  open: boolean;
@@ -431,7 +1058,7 @@ interface SnackbarProps {
431
1058
  onClose?: () => void;
432
1059
  }
433
1060
 
434
- declare function Snackbar({ open, message, action, onClose }: SnackbarProps): react.JSX.Element | null;
1061
+ declare function Snackbar({ open, message, action, onClose }: SnackbarProps): react.ReactPortal | null;
435
1062
 
436
1063
  interface TableColumn<Row> {
437
1064
  key: string;
@@ -496,20 +1123,31 @@ declare function MoreHorizontalIcon({ size, strokeWidth, ...rest }: IconProps):
496
1123
 
497
1124
  declare const text: Record<"display" | "eyebrow" | "h1" | "h2" | "h3" | "h4" | "body" | "lead" | "small" | "caption" | "code" | "blackletter", string>;
498
1125
 
1126
+ type ModePreference = Mode | "system";
499
1127
  interface ThemeContextValue {
500
1128
  schema: SchemaName;
1129
+ /** Modo efectivo ya resuelto (nunca "system"). */
501
1130
  mode: Mode;
1131
+ /** La preferencia cruda elegida (puede ser "system"). */
1132
+ preference: ModePreference;
502
1133
  themeClass: string;
503
1134
  setSchema: (schema: SchemaName) => void;
504
- setMode: (mode: Mode) => void;
1135
+ setMode: (mode: ModePreference) => void;
1136
+ /** Alterna binario claro↔oscuro a partir del modo efectivo. */
505
1137
  toggleMode: () => void;
1138
+ /** Rota por los cuatro modos en orden. */
1139
+ cycleMode: () => void;
506
1140
  }
507
1141
  interface ThemeProviderProps {
508
1142
  children: ReactNode;
509
1143
  defaultSchema?: SchemaName;
510
- defaultMode?: Mode;
1144
+ defaultMode?: ModePreference;
1145
+ /** Clave de localStorage donde se persiste la elección. */
1146
+ storageKey?: string;
1147
+ /** Si es false, no persiste ni rehidrata (útil para previews/tests). */
1148
+ persist?: boolean;
511
1149
  }
512
- declare function ThemeProvider({ children, defaultSchema, defaultMode, }: ThemeProviderProps): react.JSX.Element;
1150
+ declare function ThemeProvider({ children, defaultSchema, defaultMode, storageKey, persist, }: ThemeProviderProps): react.JSX.Element;
513
1151
  declare function useTheme(): ThemeContextValue;
514
1152
 
515
- export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeTone, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, type ButtonSize, type ButtonTone, type ButtonVariant, Card, type CardProps, type CardSectionProps, CheckIcon, Checkbox, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Chip, type ChipProps, type ChipTone, CircleCheckIcon, CircleXIcon, type Crumb, Dialog, type DialogProps, Divider, type DividerProps, EyeIcon, EyeOffIcon, type Icon, IconButton, type IconButtonProps, type IconButtonTone, type IconProps, InfoIcon, ListItem, type ListItemProps, Menu, type MenuItemDef, type MenuProps, MinusIcon, type Mode, MoreHorizontalIcon, Pagination, type PaginationProps, PlusIcon, Progress, type ProgressProps, type ProgressVariant, Radio, type RadioProps, type SchemaName, SearchIcon, Select, type SelectOption, type SelectProps, Slider, type SliderProps, Snackbar, type SnackbarProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, TextField, type TextFieldProps, ThemeProvider, type ThemeProviderProps, Tooltip, type TooltipPlacement, type TooltipProps, TriangleAlertIcon, XIcon, modeNames, schemaNames, text, vars as theme, themes, usePrevious, useTheme, useToggle };
1153
+ export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeTone, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, type ButtonSize, type ButtonTone, type ButtonVariant, Card, type CardProps, type CardSectionProps, CheckIcon, Checkbox, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Chip, type ChipProps, type ChipTone, CircleCheckIcon, CircleXIcon, type ColorTokens, type Crumb, Dialog, type DialogProps, Divider, type DividerProps, EyeIcon, EyeOffIcon, type Icon, IconButton, type IconButtonProps, type IconButtonTone, type IconProps, InfoIcon, ListItem, type ListItemProps, Menu, type MenuItemDef, type MenuProps, MinusIcon, type Mode, type ModePreference, MoreHorizontalIcon, Pagination, type PaginationProps, PlusIcon, Progress, type ProgressProps, type ProgressVariant, Radio, type RadioProps, type SchemaName, SearchIcon, Select, type SelectOption, type SelectProps, Slider, type SliderProps, Snackbar, type SnackbarProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, TextField, type TextFieldProps, ThemeProvider, type ThemeProviderProps, Tooltip, type TooltipPlacement, type TooltipProps, TriangleAlertIcon, XIcon, colorVars, modeNames, schemaNames, text, vars as theme, themes, usePrevious, useTheme, useToggle };