@principal-ade/industry-theme 0.1.2

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 (46) hide show
  1. package/dist/cjs/ThemeProvider.d.ts +19 -0
  2. package/dist/cjs/ThemeProvider.d.ts.map +1 -0
  3. package/dist/cjs/ThemeShowcase.d.ts +24 -0
  4. package/dist/cjs/ThemeShowcase.d.ts.map +1 -0
  5. package/dist/cjs/defaultThemes.d.ts +8 -0
  6. package/dist/cjs/defaultThemes.d.ts.map +1 -0
  7. package/dist/cjs/glassmorphismTheme.d.ts +7 -0
  8. package/dist/cjs/glassmorphismTheme.d.ts.map +1 -0
  9. package/dist/cjs/index.d.ts +130 -0
  10. package/dist/cjs/index.d.ts.map +1 -0
  11. package/dist/cjs/index.js +1798 -0
  12. package/dist/cjs/package.json +1 -0
  13. package/dist/cjs/themeHelpers.d.ts +30 -0
  14. package/dist/cjs/themeHelpers.d.ts.map +1 -0
  15. package/dist/cjs/themes.d.ts +12 -0
  16. package/dist/cjs/themes.d.ts.map +1 -0
  17. package/dist/cjs/utils.d.ts +32 -0
  18. package/dist/cjs/utils.d.ts.map +1 -0
  19. package/dist/esm/ThemeProvider.d.ts +19 -0
  20. package/dist/esm/ThemeProvider.d.ts.map +1 -0
  21. package/dist/esm/ThemeShowcase.d.ts +24 -0
  22. package/dist/esm/ThemeShowcase.d.ts.map +1 -0
  23. package/dist/esm/defaultThemes.d.ts +8 -0
  24. package/dist/esm/defaultThemes.d.ts.map +1 -0
  25. package/dist/esm/glassmorphismTheme.d.ts +7 -0
  26. package/dist/esm/glassmorphismTheme.d.ts.map +1 -0
  27. package/dist/esm/index.d.ts +130 -0
  28. package/dist/esm/index.d.ts.map +1 -0
  29. package/dist/esm/index.js +1753 -0
  30. package/dist/esm/package.json +1 -0
  31. package/dist/esm/themeHelpers.d.ts +30 -0
  32. package/dist/esm/themeHelpers.d.ts.map +1 -0
  33. package/dist/esm/themes.d.ts +12 -0
  34. package/dist/esm/themes.d.ts.map +1 -0
  35. package/dist/esm/utils.d.ts +32 -0
  36. package/dist/esm/utils.d.ts.map +1 -0
  37. package/package.json +64 -0
  38. package/src/README.md +134 -0
  39. package/src/ThemeProvider.tsx +117 -0
  40. package/src/ThemeShowcase.tsx +442 -0
  41. package/src/defaultThemes.ts +369 -0
  42. package/src/glassmorphismTheme.ts +213 -0
  43. package/src/index.ts +230 -0
  44. package/src/themeHelpers.ts +106 -0
  45. package/src/themes.ts +746 -0
  46. package/src/utils.ts +135 -0
@@ -0,0 +1,1753 @@
1
+ // src/glassmorphismTheme.ts
2
+ var glassmorphismTheme = {
3
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
4
+ fonts: {
5
+ body: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
6
+ heading: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
7
+ monospace: '"Fira Code", "SF Mono", Monaco, Inconsolata, monospace'
8
+ },
9
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
10
+ fontScale: 1,
11
+ fontWeights: {
12
+ body: 400,
13
+ heading: 600,
14
+ bold: 700,
15
+ light: 300,
16
+ medium: 500,
17
+ semibold: 600
18
+ },
19
+ lineHeights: {
20
+ body: 1.6,
21
+ heading: 1.3,
22
+ tight: 1.4,
23
+ relaxed: 1.8
24
+ },
25
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
26
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
27
+ radii: [0, 8, 12, 16, 20, 24, 32, 40],
28
+ shadows: [
29
+ "none",
30
+ "0 8px 32px 0 rgba(31, 38, 135, 0.15)",
31
+ "0 12px 40px 0 rgba(31, 38, 135, 0.2)",
32
+ "0 16px 48px 0 rgba(31, 38, 135, 0.25)",
33
+ "0 20px 56px 0 rgba(31, 38, 135, 0.3)",
34
+ "0 24px 64px 0 rgba(31, 38, 135, 0.35)"
35
+ ],
36
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
37
+ colors: {
38
+ text: "rgba(255, 255, 255, 0.95)",
39
+ background: "rgba(255, 255, 255, 0.1)",
40
+ primary: "rgba(99, 102, 241, 0.9)",
41
+ secondary: "rgba(139, 92, 246, 0.9)",
42
+ accent: "rgba(236, 72, 153, 0.9)",
43
+ highlight: "rgba(99, 102, 241, 0.2)",
44
+ muted: "rgba(255, 255, 255, 0.05)",
45
+ success: "rgba(34, 197, 94, 0.9)",
46
+ warning: "rgba(251, 146, 60, 0.9)",
47
+ error: "rgba(239, 68, 68, 0.9)",
48
+ info: "rgba(59, 130, 246, 0.9)",
49
+ border: "rgba(255, 255, 255, 0.18)",
50
+ backgroundSecondary: "rgba(255, 255, 255, 0.15)",
51
+ backgroundTertiary: "rgba(255, 255, 255, 0.2)",
52
+ backgroundLight: "rgba(255, 255, 255, 0.08)",
53
+ backgroundHover: "rgba(255, 255, 255, 0.25)",
54
+ surface: "rgba(255, 255, 255, 0.12)",
55
+ textSecondary: "rgba(255, 255, 255, 0.8)",
56
+ textTertiary: "rgba(255, 255, 255, 0.6)",
57
+ textMuted: "rgba(255, 255, 255, 0.5)",
58
+ highlightBg: "rgba(251, 191, 36, 0.3)",
59
+ highlightBorder: "rgba(251, 191, 36, 0.5)"
60
+ },
61
+ modes: {
62
+ dark: {
63
+ text: "rgba(255, 255, 255, 0.95)",
64
+ background: "rgba(0, 0, 0, 0.3)",
65
+ primary: "rgba(129, 140, 248, 0.9)",
66
+ secondary: "rgba(167, 139, 250, 0.9)",
67
+ accent: "rgba(244, 114, 182, 0.9)",
68
+ highlight: "rgba(129, 140, 248, 0.25)",
69
+ muted: "rgba(0, 0, 0, 0.15)",
70
+ success: "rgba(74, 222, 128, 0.9)",
71
+ warning: "rgba(251, 191, 36, 0.9)",
72
+ error: "rgba(248, 113, 113, 0.9)",
73
+ info: "rgba(96, 165, 250, 0.9)",
74
+ border: "rgba(255, 255, 255, 0.15)",
75
+ backgroundSecondary: "rgba(0, 0, 0, 0.4)",
76
+ backgroundTertiary: "rgba(0, 0, 0, 0.5)",
77
+ backgroundLight: "rgba(0, 0, 0, 0.2)",
78
+ backgroundHover: "rgba(255, 255, 255, 0.1)",
79
+ surface: "rgba(0, 0, 0, 0.35)",
80
+ textSecondary: "rgba(255, 255, 255, 0.8)",
81
+ textTertiary: "rgba(255, 255, 255, 0.6)",
82
+ textMuted: "rgba(255, 255, 255, 0.4)",
83
+ highlightBg: "rgba(251, 191, 36, 0.35)",
84
+ highlightBorder: "rgba(251, 191, 36, 0.6)"
85
+ },
86
+ frosted: {
87
+ text: "rgba(31, 41, 55, 0.95)",
88
+ background: "rgba(255, 255, 255, 0.3)",
89
+ primary: "rgba(79, 70, 229, 0.95)",
90
+ secondary: "rgba(124, 58, 237, 0.95)",
91
+ accent: "rgba(219, 39, 119, 0.95)",
92
+ highlight: "rgba(79, 70, 229, 0.15)",
93
+ muted: "rgba(255, 255, 255, 0.4)",
94
+ success: "rgba(16, 185, 129, 0.95)",
95
+ warning: "rgba(245, 158, 11, 0.95)",
96
+ error: "rgba(220, 38, 38, 0.95)",
97
+ info: "rgba(37, 99, 235, 0.95)",
98
+ border: "rgba(255, 255, 255, 0.5)",
99
+ backgroundSecondary: "rgba(255, 255, 255, 0.4)",
100
+ backgroundTertiary: "rgba(255, 255, 255, 0.5)",
101
+ backgroundLight: "rgba(255, 255, 255, 0.25)",
102
+ backgroundHover: "rgba(255, 255, 255, 0.6)",
103
+ surface: "rgba(255, 255, 255, 0.35)",
104
+ textSecondary: "rgba(31, 41, 55, 0.8)",
105
+ textTertiary: "rgba(31, 41, 55, 0.6)",
106
+ textMuted: "rgba(31, 41, 55, 0.5)",
107
+ highlightBg: "rgba(251, 191, 36, 0.4)",
108
+ highlightBorder: "rgba(251, 191, 36, 0.7)"
109
+ }
110
+ },
111
+ buttons: {
112
+ primary: {
113
+ color: "white",
114
+ bg: "primary",
115
+ borderWidth: 1,
116
+ borderStyle: "solid",
117
+ borderColor: "rgba(255, 255, 255, 0.2)",
118
+ "&:hover": {
119
+ bg: "secondary"
120
+ }
121
+ },
122
+ secondary: {
123
+ color: "text",
124
+ bg: "rgba(255, 255, 255, 0.1)",
125
+ borderWidth: 1,
126
+ borderStyle: "solid",
127
+ borderColor: "rgba(255, 255, 255, 0.2)",
128
+ "&:hover": {
129
+ bg: "rgba(255, 255, 255, 0.2)"
130
+ }
131
+ },
132
+ ghost: {
133
+ color: "text",
134
+ bg: "transparent",
135
+ borderWidth: 1,
136
+ borderStyle: "solid",
137
+ borderColor: "transparent",
138
+ "&:hover": {
139
+ borderColor: "rgba(255, 255, 255, 0.2)",
140
+ bg: "rgba(255, 255, 255, 0.05)"
141
+ }
142
+ }
143
+ },
144
+ text: {
145
+ heading: {
146
+ fontFamily: "heading",
147
+ fontWeight: "heading",
148
+ lineHeight: "heading"
149
+ },
150
+ body: {
151
+ fontFamily: "body",
152
+ fontWeight: "body",
153
+ lineHeight: "body"
154
+ },
155
+ caption: {
156
+ fontSize: 1,
157
+ color: "textSecondary"
158
+ }
159
+ },
160
+ cards: {
161
+ primary: {
162
+ bg: "surface",
163
+ border: "1px solid",
164
+ borderColor: "border",
165
+ borderRadius: 3
166
+ },
167
+ secondary: {
168
+ bg: "backgroundSecondary",
169
+ border: "1px solid",
170
+ borderColor: "border",
171
+ borderRadius: 3
172
+ }
173
+ }
174
+ };
175
+ // src/defaultThemes.ts
176
+ var defaultMarkdownTheme = {
177
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
178
+ fonts: {
179
+ body: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
180
+ heading: '"Crimson Text", "Georgia", "Times New Roman", serif',
181
+ monospace: '"Fira Code", "SF Mono", Monaco, Inconsolata, monospace'
182
+ },
183
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
184
+ fontScale: 1,
185
+ fontWeights: {
186
+ body: 400,
187
+ heading: 600,
188
+ bold: 700,
189
+ light: 300,
190
+ medium: 500,
191
+ semibold: 600
192
+ },
193
+ lineHeights: {
194
+ body: 1.6,
195
+ heading: 1.3,
196
+ tight: 1.25,
197
+ relaxed: 1.75
198
+ },
199
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
200
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
201
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
202
+ shadows: [
203
+ "none",
204
+ "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
205
+ "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
206
+ "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",
207
+ "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
208
+ "0 25px 50px -12px rgba(0, 0, 0, 0.25)"
209
+ ],
210
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
211
+ colors: {
212
+ text: "#1a1a1a",
213
+ background: "#ffffff",
214
+ primary: "#007acc",
215
+ secondary: "#005a9e",
216
+ accent: "#1a1a1a",
217
+ highlight: "rgba(0, 122, 204, 0.1)",
218
+ muted: "#f0f0f0",
219
+ success: "#28a745",
220
+ warning: "#ffc107",
221
+ error: "#dc3545",
222
+ info: "#17a2b8",
223
+ border: "rgba(0, 0, 0, 0.1)",
224
+ backgroundSecondary: "#f8f9fa",
225
+ backgroundTertiary: "#e9ecef",
226
+ backgroundLight: "rgba(0, 0, 0, 0.03)",
227
+ backgroundHover: "rgba(0, 0, 0, 0.05)",
228
+ surface: "#ffffff",
229
+ textSecondary: "#555555",
230
+ textTertiary: "#888888",
231
+ textMuted: "#aaaaaa",
232
+ highlightBg: "rgba(255, 235, 59, 0.3)",
233
+ highlightBorder: "rgba(255, 235, 59, 0.6)"
234
+ },
235
+ buttons: {
236
+ primary: {
237
+ color: "white",
238
+ bg: "primary",
239
+ "&:hover": { bg: "secondary" }
240
+ },
241
+ secondary: {
242
+ color: "primary",
243
+ bg: "transparent",
244
+ borderWidth: 1,
245
+ borderStyle: "solid",
246
+ borderColor: "primary",
247
+ "&:hover": { bg: "highlight" }
248
+ },
249
+ ghost: {
250
+ color: "text",
251
+ bg: "transparent",
252
+ "&:hover": { bg: "backgroundHover" }
253
+ }
254
+ },
255
+ text: {
256
+ heading: {
257
+ fontFamily: "heading",
258
+ fontWeight: "heading",
259
+ lineHeight: "heading"
260
+ },
261
+ body: {
262
+ fontFamily: "body",
263
+ fontWeight: "body",
264
+ lineHeight: "body"
265
+ },
266
+ caption: {
267
+ fontSize: 1,
268
+ color: "textSecondary"
269
+ }
270
+ },
271
+ cards: {
272
+ primary: {
273
+ bg: "surface",
274
+ border: "1px solid",
275
+ borderColor: "border",
276
+ borderRadius: 2
277
+ },
278
+ secondary: {
279
+ bg: "backgroundSecondary",
280
+ border: "1px solid",
281
+ borderColor: "border",
282
+ borderRadius: 2
283
+ }
284
+ }
285
+ };
286
+ var defaultTerminalTheme = {
287
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
288
+ fonts: {
289
+ body: '"Courier New", Courier, monospace',
290
+ heading: '"Courier New", Courier, monospace',
291
+ monospace: '"Courier New", Courier, monospace'
292
+ },
293
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
294
+ fontScale: 1,
295
+ fontWeights: {
296
+ body: 400,
297
+ heading: 500,
298
+ bold: 600,
299
+ light: 300,
300
+ medium: 500,
301
+ semibold: 600
302
+ },
303
+ lineHeights: {
304
+ body: 1.4,
305
+ heading: 1.2,
306
+ tight: 1.3,
307
+ relaxed: 1.6
308
+ },
309
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
310
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
311
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
312
+ shadows: [
313
+ "none",
314
+ "0 0 5px rgba(255, 193, 7, 0.1)",
315
+ "0 0 10px rgba(255, 193, 7, 0.15)",
316
+ "0 0 15px rgba(255, 193, 7, 0.2)",
317
+ "0 0 20px rgba(255, 193, 7, 0.25)",
318
+ "0 0 30px rgba(255, 193, 7, 0.3)"
319
+ ],
320
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
321
+ colors: {
322
+ text: "#ffc107",
323
+ background: "#000000",
324
+ primary: "#ffc107",
325
+ secondary: "#ffb300",
326
+ accent: "#ffffff",
327
+ highlight: "rgba(255, 193, 7, 0.1)",
328
+ muted: "#1a1a1a",
329
+ success: "#4caf50",
330
+ warning: "#ff9800",
331
+ error: "#f44336",
332
+ info: "#2196f3",
333
+ border: "rgba(255, 193, 7, 0.2)",
334
+ backgroundSecondary: "#0a0a0a",
335
+ backgroundTertiary: "#111111",
336
+ backgroundLight: "rgba(255, 193, 7, 0.03)",
337
+ backgroundHover: "rgba(255, 193, 7, 0.05)",
338
+ surface: "#050505",
339
+ textSecondary: "#e0e0e0",
340
+ textTertiary: "#b0b0b0",
341
+ textMuted: "#808080",
342
+ highlightBg: "rgba(255, 193, 7, 0.2)",
343
+ highlightBorder: "rgba(255, 193, 7, 0.4)"
344
+ },
345
+ buttons: {
346
+ primary: {
347
+ color: "black",
348
+ bg: "primary",
349
+ borderWidth: 0,
350
+ "&:hover": { bg: "secondary" }
351
+ },
352
+ secondary: {
353
+ color: "primary",
354
+ bg: "transparent",
355
+ borderWidth: 1,
356
+ borderStyle: "solid",
357
+ borderColor: "primary",
358
+ "&:hover": { bg: "highlight" }
359
+ },
360
+ ghost: {
361
+ color: "text",
362
+ bg: "transparent",
363
+ "&:hover": { bg: "backgroundHover" }
364
+ }
365
+ },
366
+ text: {
367
+ heading: {
368
+ fontFamily: "heading",
369
+ fontWeight: "heading",
370
+ lineHeight: "heading"
371
+ },
372
+ body: {
373
+ fontFamily: "body",
374
+ fontWeight: "body",
375
+ lineHeight: "body"
376
+ },
377
+ caption: {
378
+ fontSize: 1,
379
+ color: "textSecondary"
380
+ }
381
+ },
382
+ cards: {
383
+ primary: {
384
+ bg: "surface",
385
+ border: "1px solid",
386
+ borderColor: "border",
387
+ borderRadius: 0
388
+ },
389
+ secondary: {
390
+ bg: "backgroundSecondary",
391
+ border: "1px solid",
392
+ borderColor: "border",
393
+ borderRadius: 0
394
+ }
395
+ }
396
+ };
397
+ var defaultEditorTheme = {
398
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
399
+ fonts: {
400
+ body: '"Fira Code", "SF Mono", Monaco, Inconsolata, monospace',
401
+ heading: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
402
+ monospace: '"Fira Code", "SF Mono", Monaco, Inconsolata, monospace'
403
+ },
404
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
405
+ fontScale: 1,
406
+ fontWeights: {
407
+ body: 400,
408
+ heading: 600,
409
+ bold: 700,
410
+ light: 300,
411
+ medium: 500,
412
+ semibold: 600
413
+ },
414
+ lineHeights: {
415
+ body: 1.5,
416
+ heading: 1.2,
417
+ tight: 1.3,
418
+ relaxed: 1.7
419
+ },
420
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
421
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
422
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
423
+ shadows: [
424
+ "none",
425
+ "0 1px 2px rgba(0, 0, 0, 0.05)",
426
+ "0 2px 4px rgba(0, 0, 0, 0.1)",
427
+ "0 4px 8px rgba(0, 0, 0, 0.15)",
428
+ "0 8px 16px rgba(0, 0, 0, 0.2)",
429
+ "0 12px 24px rgba(0, 0, 0, 0.25)"
430
+ ],
431
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
432
+ colors: {
433
+ text: "#d4d4d4",
434
+ background: "#1e1e1e",
435
+ primary: "#569cd6",
436
+ secondary: "#408ac9",
437
+ accent: "#c586c0",
438
+ highlight: "rgba(86, 156, 214, 0.1)",
439
+ muted: "#2a2a2a",
440
+ success: "#6a9955",
441
+ warning: "#d18616",
442
+ error: "#f44747",
443
+ info: "#569cd6",
444
+ border: "rgba(255, 255, 255, 0.1)",
445
+ backgroundSecondary: "#252526",
446
+ backgroundTertiary: "#333333",
447
+ backgroundLight: "rgba(255, 255, 255, 0.03)",
448
+ backgroundHover: "rgba(255, 255, 255, 0.05)",
449
+ surface: "#252526",
450
+ textSecondary: "#cccccc",
451
+ textTertiary: "#999999",
452
+ textMuted: "#666666",
453
+ highlightBg: "rgba(255, 235, 59, 0.2)",
454
+ highlightBorder: "rgba(255, 235, 59, 0.4)"
455
+ },
456
+ buttons: {
457
+ primary: {
458
+ color: "white",
459
+ bg: "primary",
460
+ "&:hover": { bg: "secondary" }
461
+ },
462
+ secondary: {
463
+ color: "primary",
464
+ bg: "transparent",
465
+ borderWidth: 1,
466
+ borderStyle: "solid",
467
+ borderColor: "primary",
468
+ "&:hover": { bg: "highlight" }
469
+ },
470
+ ghost: {
471
+ color: "text",
472
+ bg: "transparent",
473
+ "&:hover": { bg: "backgroundHover" }
474
+ }
475
+ },
476
+ text: {
477
+ heading: {
478
+ fontFamily: "heading",
479
+ fontWeight: "heading",
480
+ lineHeight: "heading"
481
+ },
482
+ body: {
483
+ fontFamily: "body",
484
+ fontWeight: "body",
485
+ lineHeight: "body"
486
+ },
487
+ caption: {
488
+ fontSize: 1,
489
+ color: "textSecondary"
490
+ }
491
+ },
492
+ cards: {
493
+ primary: {
494
+ bg: "surface",
495
+ border: "1px solid",
496
+ borderColor: "border",
497
+ borderRadius: 1
498
+ },
499
+ secondary: {
500
+ bg: "backgroundSecondary",
501
+ border: "1px solid",
502
+ borderColor: "border",
503
+ borderRadius: 1
504
+ }
505
+ }
506
+ };
507
+
508
+ // src/themes.ts
509
+ var regalTheme = {
510
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
511
+ fonts: {
512
+ body: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
513
+ heading: '"Crimson Text", "Georgia", "Times New Roman", serif',
514
+ monospace: '"Fira Code", "SF Mono", Monaco, Inconsolata, monospace'
515
+ },
516
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
517
+ fontScale: 1,
518
+ fontWeights: {
519
+ body: 400,
520
+ heading: 600,
521
+ bold: 700,
522
+ light: 300,
523
+ medium: 500,
524
+ semibold: 600
525
+ },
526
+ lineHeights: {
527
+ body: 1.5,
528
+ heading: 1.2,
529
+ tight: 1.25,
530
+ relaxed: 1.75
531
+ },
532
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
533
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
534
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
535
+ shadows: [
536
+ "none",
537
+ "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
538
+ "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
539
+ "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",
540
+ "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
541
+ "0 25px 50px -12px rgba(0, 0, 0, 0.25)"
542
+ ],
543
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
544
+ colors: {
545
+ text: "#f1e8dc",
546
+ background: "#1a1f2e",
547
+ primary: "#d4a574",
548
+ secondary: "#e0b584",
549
+ accent: "#c9b8a3",
550
+ highlight: "rgba(212, 165, 116, 0.15)",
551
+ muted: "#8b7968",
552
+ success: "#5c8a72",
553
+ warning: "#d4a574",
554
+ error: "#a85751",
555
+ info: "#d4a574",
556
+ border: "rgba(212, 165, 116, 0.2)",
557
+ backgroundSecondary: "#212738",
558
+ backgroundTertiary: "#2d3446",
559
+ backgroundLight: "rgba(212, 165, 116, 0.08)",
560
+ backgroundHover: "rgba(212, 165, 116, 0.15)",
561
+ surface: "#212738",
562
+ textSecondary: "#c9b8a3",
563
+ textTertiary: "#8b7968",
564
+ textMuted: "#8b7968",
565
+ highlightBg: "rgba(255, 193, 7, 0.25)",
566
+ highlightBorder: "rgba(255, 193, 7, 0.5)"
567
+ },
568
+ buttons: {
569
+ primary: {
570
+ color: "background",
571
+ bg: "primary",
572
+ "&:hover": {
573
+ bg: "secondary"
574
+ }
575
+ },
576
+ secondary: {
577
+ color: "text",
578
+ bg: "muted",
579
+ "&:hover": {
580
+ bg: "backgroundSecondary"
581
+ }
582
+ },
583
+ ghost: {
584
+ color: "primary",
585
+ bg: "transparent",
586
+ "&:hover": {
587
+ bg: "muted"
588
+ }
589
+ }
590
+ },
591
+ text: {
592
+ heading: {
593
+ fontFamily: "heading",
594
+ fontWeight: "heading",
595
+ lineHeight: "heading"
596
+ },
597
+ body: {
598
+ fontFamily: "body",
599
+ fontWeight: "body",
600
+ lineHeight: "body"
601
+ },
602
+ caption: {
603
+ fontSize: 1,
604
+ color: "textSecondary"
605
+ }
606
+ },
607
+ cards: {
608
+ primary: {
609
+ bg: "background",
610
+ border: "1px solid",
611
+ borderColor: "border",
612
+ borderRadius: 2
613
+ },
614
+ secondary: {
615
+ bg: "backgroundSecondary",
616
+ border: "1px solid",
617
+ borderColor: "border",
618
+ borderRadius: 2
619
+ }
620
+ }
621
+ };
622
+ var terminalTheme = {
623
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
624
+ fonts: {
625
+ body: '"SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace',
626
+ heading: '"SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace',
627
+ monospace: '"SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace'
628
+ },
629
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
630
+ fontScale: 1,
631
+ fontWeights: {
632
+ body: 400,
633
+ heading: 500,
634
+ bold: 600,
635
+ light: 300,
636
+ medium: 500,
637
+ semibold: 600
638
+ },
639
+ lineHeights: {
640
+ body: 1.6,
641
+ heading: 1.3,
642
+ tight: 1.4,
643
+ relaxed: 1.8
644
+ },
645
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
646
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
647
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
648
+ shadows: [
649
+ "none",
650
+ "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
651
+ "0 2px 4px 0 rgba(0, 0, 0, 0.06)",
652
+ "0 4px 6px 0 rgba(0, 0, 0, 0.07)",
653
+ "0 8px 12px 0 rgba(0, 0, 0, 0.08)",
654
+ "0 16px 24px 0 rgba(0, 0, 0, 0.10)"
655
+ ],
656
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
657
+ colors: {
658
+ text: "#e4e4e4",
659
+ background: "rgba(10, 10, 10, 0.85)",
660
+ primary: "#66b3ff",
661
+ secondary: "#80c4ff",
662
+ accent: "#66ff99",
663
+ highlight: "rgba(102, 179, 255, 0.15)",
664
+ muted: "rgba(26, 26, 26, 0.8)",
665
+ success: "#66ff99",
666
+ warning: "#ffcc66",
667
+ error: "#ff6666",
668
+ info: "#66b3ff",
669
+ border: "rgba(255, 255, 255, 0.1)",
670
+ backgroundSecondary: "rgba(15, 15, 15, 0.9)",
671
+ backgroundTertiary: "rgba(20, 20, 20, 0.9)",
672
+ backgroundLight: "rgba(255, 255, 255, 0.05)",
673
+ backgroundHover: "rgba(102, 179, 255, 0.08)",
674
+ surface: "rgba(15, 15, 15, 0.95)",
675
+ textSecondary: "rgba(255, 255, 255, 0.7)",
676
+ textTertiary: "rgba(255, 255, 255, 0.5)",
677
+ textMuted: "rgba(255, 255, 255, 0.4)",
678
+ highlightBg: "rgba(255, 235, 59, 0.25)",
679
+ highlightBorder: "rgba(255, 235, 59, 0.5)"
680
+ },
681
+ modes: {
682
+ light: {
683
+ text: "#1a1a1a",
684
+ background: "rgba(255, 255, 255, 0.9)",
685
+ primary: "#0066cc",
686
+ secondary: "#0052a3",
687
+ accent: "#00cc88",
688
+ highlight: "rgba(0, 102, 204, 0.08)",
689
+ muted: "rgba(245, 245, 245, 0.8)",
690
+ success: "#00cc88",
691
+ warning: "#ffaa00",
692
+ error: "#ff3333",
693
+ info: "#0066cc",
694
+ border: "rgba(0, 0, 0, 0.1)",
695
+ backgroundSecondary: "rgba(250, 250, 250, 0.9)",
696
+ backgroundTertiary: "rgba(245, 245, 245, 0.9)",
697
+ backgroundLight: "rgba(0, 0, 0, 0.02)",
698
+ backgroundHover: "rgba(0, 102, 204, 0.04)",
699
+ surface: "rgba(255, 255, 255, 0.95)",
700
+ textSecondary: "rgba(0, 0, 0, 0.6)",
701
+ textTertiary: "rgba(0, 0, 0, 0.4)",
702
+ textMuted: "rgba(0, 0, 0, 0.3)",
703
+ highlightBg: "rgba(255, 235, 59, 0.3)",
704
+ highlightBorder: "rgba(255, 235, 59, 0.6)"
705
+ }
706
+ },
707
+ buttons: {
708
+ primary: {
709
+ color: "white",
710
+ bg: "primary",
711
+ borderWidth: 0,
712
+ "&:hover": {
713
+ bg: "secondary"
714
+ }
715
+ },
716
+ secondary: {
717
+ color: "primary",
718
+ bg: "transparent",
719
+ borderWidth: 1,
720
+ borderStyle: "solid",
721
+ borderColor: "primary",
722
+ "&:hover": {
723
+ bg: "highlight"
724
+ }
725
+ },
726
+ ghost: {
727
+ color: "text",
728
+ bg: "transparent",
729
+ "&:hover": {
730
+ bg: "backgroundHover"
731
+ }
732
+ }
733
+ },
734
+ text: {
735
+ heading: {
736
+ fontFamily: "heading",
737
+ fontWeight: "heading",
738
+ lineHeight: "heading"
739
+ },
740
+ body: {
741
+ fontFamily: "body",
742
+ fontWeight: "body",
743
+ lineHeight: "body"
744
+ },
745
+ caption: {
746
+ fontSize: 1,
747
+ color: "textSecondary"
748
+ }
749
+ },
750
+ cards: {
751
+ primary: {
752
+ bg: "surface",
753
+ border: "1px solid",
754
+ borderColor: "border",
755
+ borderRadius: 1
756
+ },
757
+ secondary: {
758
+ bg: "backgroundSecondary",
759
+ border: "1px solid",
760
+ borderColor: "border",
761
+ borderRadius: 1
762
+ }
763
+ }
764
+ };
765
+ var matrixTheme = {
766
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
767
+ fonts: {
768
+ body: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
769
+ heading: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
770
+ monospace: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace'
771
+ },
772
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
773
+ fontScale: 1,
774
+ fontWeights: {
775
+ body: 400,
776
+ heading: 500,
777
+ bold: 600,
778
+ light: 300,
779
+ medium: 500,
780
+ semibold: 600
781
+ },
782
+ lineHeights: {
783
+ body: 1.5,
784
+ heading: 1.2,
785
+ tight: 1.3,
786
+ relaxed: 1.7
787
+ },
788
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
789
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
790
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
791
+ shadows: [
792
+ "none",
793
+ "0 0 5px rgba(0, 216, 53, 0.15)",
794
+ "0 0 10px rgba(0, 216, 53, 0.2)",
795
+ "0 0 15px rgba(0, 216, 53, 0.25)",
796
+ "0 0 20px rgba(0, 216, 53, 0.3)",
797
+ "0 0 30px rgba(0, 216, 53, 0.4)"
798
+ ],
799
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
800
+ colors: {
801
+ text: "#a8a8a8",
802
+ background: "#000000",
803
+ primary: "#00d835",
804
+ secondary: "#00a828",
805
+ accent: "#00d835",
806
+ highlight: "rgba(0, 216, 53, 0.15)",
807
+ muted: "#0a0a0a",
808
+ success: "#00d835",
809
+ warning: "#d4a000",
810
+ error: "#d63333",
811
+ info: "#00a8d6",
812
+ border: "rgba(0, 216, 53, 0.2)",
813
+ backgroundSecondary: "#0a0a0a",
814
+ backgroundTertiary: "#111111",
815
+ backgroundLight: "rgba(0, 216, 53, 0.03)",
816
+ backgroundHover: "rgba(0, 216, 53, 0.08)",
817
+ surface: "#050505",
818
+ textSecondary: "#808080",
819
+ textTertiary: "#606060",
820
+ textMuted: "#484848",
821
+ highlightBg: "rgba(0, 216, 53, 0.25)",
822
+ highlightBorder: "rgba(0, 216, 53, 0.5)"
823
+ },
824
+ buttons: {
825
+ primary: {
826
+ color: "black",
827
+ bg: "primary",
828
+ borderWidth: 0,
829
+ "&:hover": {
830
+ bg: "secondary"
831
+ }
832
+ },
833
+ secondary: {
834
+ color: "primary",
835
+ bg: "transparent",
836
+ borderWidth: 1,
837
+ borderStyle: "solid",
838
+ borderColor: "primary",
839
+ "&:hover": {
840
+ bg: "highlight"
841
+ }
842
+ },
843
+ ghost: {
844
+ color: "text",
845
+ bg: "transparent",
846
+ "&:hover": {
847
+ bg: "backgroundHover"
848
+ }
849
+ }
850
+ },
851
+ text: {
852
+ heading: {
853
+ fontFamily: "heading",
854
+ fontWeight: "heading",
855
+ lineHeight: "heading"
856
+ },
857
+ body: {
858
+ fontFamily: "body",
859
+ fontWeight: "body",
860
+ lineHeight: "body"
861
+ },
862
+ caption: {
863
+ fontSize: 1,
864
+ color: "textSecondary"
865
+ }
866
+ },
867
+ cards: {
868
+ primary: {
869
+ bg: "surface",
870
+ border: "1px solid",
871
+ borderColor: "border",
872
+ borderRadius: 0
873
+ },
874
+ secondary: {
875
+ bg: "backgroundSecondary",
876
+ border: "1px solid",
877
+ borderColor: "border",
878
+ borderRadius: 0
879
+ }
880
+ }
881
+ };
882
+ var matrixMinimalTheme = {
883
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
884
+ fonts: {
885
+ body: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
886
+ heading: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
887
+ monospace: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace'
888
+ },
889
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
890
+ fontScale: 1,
891
+ fontWeights: {
892
+ body: 400,
893
+ heading: 500,
894
+ bold: 600,
895
+ light: 300,
896
+ medium: 500,
897
+ semibold: 600
898
+ },
899
+ lineHeights: {
900
+ body: 1.5,
901
+ heading: 1.2,
902
+ tight: 1.3,
903
+ relaxed: 1.7
904
+ },
905
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
906
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
907
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
908
+ shadows: [
909
+ "none",
910
+ "0 1px 2px rgba(0, 0, 0, 0.05)",
911
+ "0 2px 4px rgba(0, 0, 0, 0.1)",
912
+ "0 4px 8px rgba(0, 0, 0, 0.15)",
913
+ "0 8px 16px rgba(0, 0, 0, 0.2)",
914
+ "0 0 20px rgba(0, 216, 53, 0.1)"
915
+ ],
916
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
917
+ colors: {
918
+ text: "#a8a8a8",
919
+ background: "#000000",
920
+ primary: "#b8b8b8",
921
+ secondary: "#909090",
922
+ accent: "#00d835",
923
+ highlight: "rgba(0, 216, 53, 0.1)",
924
+ muted: "#0a0a0a",
925
+ success: "#00d835",
926
+ warning: "#d4a000",
927
+ error: "#d63333",
928
+ info: "#00a8d6",
929
+ border: "rgba(184, 184, 184, 0.1)",
930
+ backgroundSecondary: "#0a0a0a",
931
+ backgroundTertiary: "#111111",
932
+ backgroundLight: "rgba(184, 184, 184, 0.02)",
933
+ backgroundHover: "rgba(0, 216, 53, 0.05)",
934
+ surface: "#050505",
935
+ textSecondary: "#808080",
936
+ textTertiary: "#606060",
937
+ textMuted: "#484848",
938
+ highlightBg: "rgba(0, 216, 53, 0.2)",
939
+ highlightBorder: "rgba(0, 216, 53, 0.4)"
940
+ },
941
+ buttons: {
942
+ primary: {
943
+ color: "black",
944
+ bg: "primary",
945
+ borderWidth: 0,
946
+ "&:hover": {
947
+ bg: "secondary"
948
+ }
949
+ },
950
+ secondary: {
951
+ color: "primary",
952
+ bg: "transparent",
953
+ borderWidth: 1,
954
+ borderStyle: "solid",
955
+ borderColor: "primary",
956
+ "&:hover": {
957
+ bg: "backgroundHover"
958
+ }
959
+ },
960
+ ghost: {
961
+ color: "text",
962
+ bg: "transparent",
963
+ "&:hover": {
964
+ bg: "backgroundHover"
965
+ }
966
+ }
967
+ },
968
+ text: {
969
+ heading: {
970
+ fontFamily: "heading",
971
+ fontWeight: "heading",
972
+ lineHeight: "heading"
973
+ },
974
+ body: {
975
+ fontFamily: "body",
976
+ fontWeight: "body",
977
+ lineHeight: "body"
978
+ },
979
+ caption: {
980
+ fontSize: 1,
981
+ color: "textSecondary"
982
+ }
983
+ },
984
+ cards: {
985
+ primary: {
986
+ bg: "surface",
987
+ border: "1px solid",
988
+ borderColor: "border",
989
+ borderRadius: 0
990
+ },
991
+ secondary: {
992
+ bg: "backgroundSecondary",
993
+ border: "1px solid",
994
+ borderColor: "border",
995
+ borderRadius: 0
996
+ }
997
+ }
998
+ };
999
+ var slateTheme = {
1000
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
1001
+ fonts: {
1002
+ body: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
1003
+ heading: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
1004
+ monospace: '"Fira Code", "SF Mono", Monaco, Inconsolata, monospace'
1005
+ },
1006
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
1007
+ fontScale: 1,
1008
+ fontWeights: {
1009
+ body: 400,
1010
+ heading: 600,
1011
+ bold: 700,
1012
+ light: 300,
1013
+ medium: 500,
1014
+ semibold: 600
1015
+ },
1016
+ lineHeights: {
1017
+ body: 1.6,
1018
+ heading: 1.3,
1019
+ tight: 1.25,
1020
+ relaxed: 1.75
1021
+ },
1022
+ breakpoints: ["640px", "768px", "1024px", "1280px"],
1023
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
1024
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
1025
+ shadows: [
1026
+ "none",
1027
+ "0 1px 3px 0 rgba(0, 0, 0, 0.2)",
1028
+ "0 4px 6px -1px rgba(0, 0, 0, 0.2)",
1029
+ "0 10px 15px -3px rgba(0, 0, 0, 0.2)",
1030
+ "0 20px 25px -5px rgba(0, 0, 0, 0.25)",
1031
+ "0 25px 50px -12px rgba(0, 0, 0, 0.3)"
1032
+ ],
1033
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
1034
+ colors: {
1035
+ text: "#9ca3af",
1036
+ background: "#1a1c1e",
1037
+ primary: "#d1d5db",
1038
+ secondary: "#6b7280",
1039
+ accent: "#f59e0b",
1040
+ highlight: "rgba(209, 213, 219, 0.15)",
1041
+ muted: "#2d3134",
1042
+ success: "#10b981",
1043
+ warning: "#f59e0b",
1044
+ error: "#ef4444",
1045
+ info: "#3b82f6",
1046
+ border: "rgba(156, 163, 175, 0.15)",
1047
+ backgroundSecondary: "#22252a",
1048
+ backgroundTertiary: "#2d3134",
1049
+ backgroundLight: "rgba(156, 163, 175, 0.05)",
1050
+ backgroundHover: "rgba(156, 163, 175, 0.1)",
1051
+ surface: "#1f2124",
1052
+ textSecondary: "#e5e7eb",
1053
+ textTertiary: "#6b7280",
1054
+ textMuted: "#4b5563",
1055
+ highlightBg: "rgba(245, 158, 11, 0.25)",
1056
+ highlightBorder: "rgba(245, 158, 11, 0.5)"
1057
+ },
1058
+ buttons: {
1059
+ primary: {
1060
+ color: "#1a1c1e",
1061
+ bg: "primary",
1062
+ borderWidth: 0,
1063
+ "&:hover": {
1064
+ bg: "#9ca3af"
1065
+ }
1066
+ },
1067
+ secondary: {
1068
+ color: "#e5e7eb",
1069
+ bg: "secondary",
1070
+ borderWidth: 0,
1071
+ "&:hover": {
1072
+ bg: "#4b5563"
1073
+ }
1074
+ },
1075
+ ghost: {
1076
+ color: "textSecondary",
1077
+ bg: "transparent",
1078
+ "&:hover": {
1079
+ bg: "backgroundHover"
1080
+ }
1081
+ }
1082
+ },
1083
+ text: {
1084
+ heading: {
1085
+ fontFamily: "heading",
1086
+ fontWeight: "heading",
1087
+ lineHeight: "heading",
1088
+ color: "textSecondary"
1089
+ },
1090
+ body: {
1091
+ fontFamily: "body",
1092
+ fontWeight: "body",
1093
+ lineHeight: "body"
1094
+ },
1095
+ caption: {
1096
+ fontSize: 1,
1097
+ color: "textTertiary"
1098
+ }
1099
+ },
1100
+ cards: {
1101
+ primary: {
1102
+ bg: "surface",
1103
+ border: "1px solid",
1104
+ borderColor: "border",
1105
+ borderRadius: 3
1106
+ },
1107
+ secondary: {
1108
+ bg: "backgroundSecondary",
1109
+ border: "1px solid",
1110
+ borderColor: "border",
1111
+ borderRadius: 3
1112
+ }
1113
+ }
1114
+ };
1115
+ // src/ThemeProvider.tsx
1116
+ import React, { createContext, useContext, useState, useEffect } from "react";
1117
+
1118
+ // src/themeHelpers.ts
1119
+ function overrideColors(theme, colors) {
1120
+ return {
1121
+ ...theme,
1122
+ colors: {
1123
+ ...theme.colors,
1124
+ ...colors
1125
+ }
1126
+ };
1127
+ }
1128
+ function makeTheme(baseTheme, overrides) {
1129
+ return {
1130
+ ...baseTheme,
1131
+ ...overrides,
1132
+ colors: {
1133
+ ...baseTheme.colors,
1134
+ ...overrides.colors
1135
+ },
1136
+ fonts: {
1137
+ ...baseTheme.fonts,
1138
+ ...overrides.fonts
1139
+ }
1140
+ };
1141
+ }
1142
+ function addMode(theme, modeName, colors, baseMode) {
1143
+ let baseColors;
1144
+ if (baseMode && theme.modes && theme.modes[baseMode]) {
1145
+ baseColors = {
1146
+ ...theme.colors,
1147
+ ...theme.modes[baseMode]
1148
+ };
1149
+ } else {
1150
+ baseColors = theme.colors;
1151
+ }
1152
+ const newMode = {
1153
+ ...baseColors,
1154
+ ...colors
1155
+ };
1156
+ return {
1157
+ ...theme,
1158
+ modes: {
1159
+ ...theme.modes,
1160
+ [modeName]: newMode
1161
+ }
1162
+ };
1163
+ }
1164
+ function getMode(theme, mode) {
1165
+ if (!mode || !theme.modes || !theme.modes[mode]) {
1166
+ return theme.colors;
1167
+ }
1168
+ return {
1169
+ ...theme.colors,
1170
+ ...theme.modes[mode]
1171
+ };
1172
+ }
1173
+
1174
+ // src/ThemeProvider.tsx
1175
+ var ThemeContext;
1176
+ var getThemeContext = () => {
1177
+ if (typeof window !== "undefined") {
1178
+ const globalWindow = window;
1179
+ if (!globalWindow.__principlemd_theme_context__) {
1180
+ globalWindow.__principlemd_theme_context__ = createContext(undefined);
1181
+ }
1182
+ return globalWindow.__principlemd_theme_context__;
1183
+ } else {
1184
+ if (!ThemeContext) {
1185
+ ThemeContext = createContext(undefined);
1186
+ }
1187
+ return ThemeContext;
1188
+ }
1189
+ };
1190
+ var ThemeContextSingleton = getThemeContext();
1191
+ var useTheme = () => {
1192
+ const context = useContext(ThemeContextSingleton);
1193
+ if (!context) {
1194
+ throw new Error("useTheme must be used within a ThemeProvider");
1195
+ }
1196
+ return context;
1197
+ };
1198
+ var ThemeProvider = ({
1199
+ children,
1200
+ theme: customTheme = theme,
1201
+ initialMode
1202
+ }) => {
1203
+ const [mode, setMode] = useState(initialMode);
1204
+ const activeTheme = React.useMemo(() => {
1205
+ if (!mode || !customTheme.modes || !customTheme.modes[mode]) {
1206
+ return customTheme;
1207
+ }
1208
+ return {
1209
+ ...customTheme,
1210
+ colors: getMode(customTheme, mode)
1211
+ };
1212
+ }, [customTheme, mode]);
1213
+ useEffect(() => {
1214
+ if (!initialMode) {
1215
+ const savedMode = localStorage.getItem("principlemd-theme-mode");
1216
+ if (savedMode) {
1217
+ setMode(savedMode);
1218
+ }
1219
+ }
1220
+ }, [initialMode]);
1221
+ useEffect(() => {
1222
+ if (mode) {
1223
+ localStorage.setItem("principlemd-theme-mode", mode);
1224
+ } else {
1225
+ localStorage.removeItem("principlemd-theme-mode");
1226
+ }
1227
+ }, [mode]);
1228
+ const value = {
1229
+ theme: activeTheme,
1230
+ mode,
1231
+ setMode
1232
+ };
1233
+ return /* @__PURE__ */ React.createElement(ThemeContextSingleton.Provider, {
1234
+ value
1235
+ }, children);
1236
+ };
1237
+ var withTheme = (Component) => {
1238
+ return (props) => {
1239
+ const { theme: theme2 } = useTheme();
1240
+ return /* @__PURE__ */ React.createElement(Component, {
1241
+ ...props,
1242
+ theme: theme2
1243
+ });
1244
+ };
1245
+ };
1246
+ // src/utils.ts
1247
+ var getColor = (theme2, colorKey) => {
1248
+ const colors = theme2.colors;
1249
+ const value = colors[colorKey];
1250
+ return typeof value === "string" ? value : colorKey;
1251
+ };
1252
+ var getSpace = (theme2, index) => {
1253
+ return theme2.space[index] || 0;
1254
+ };
1255
+ var getFontSize = (theme2, index) => {
1256
+ return theme2.fontSizes[index] || theme2.fontSizes[2];
1257
+ };
1258
+ var getRadius = (theme2, index) => {
1259
+ return theme2.radii[index] || 0;
1260
+ };
1261
+ var getShadow = (theme2, index) => {
1262
+ return theme2.shadows[index] || "none";
1263
+ };
1264
+ var getZIndex = (theme2, index) => {
1265
+ return theme2.zIndices[index] || 0;
1266
+ };
1267
+ var responsive = (values) => {
1268
+ return values.reduce((acc, value, index) => {
1269
+ if (index === 0) {
1270
+ return value;
1271
+ }
1272
+ return {
1273
+ ...acc,
1274
+ [`@media screen and (min-width: ${values[index - 1]})`]: value
1275
+ };
1276
+ }, {});
1277
+ };
1278
+ var sx = (styles) => styles;
1279
+ var createStyle = (theme2, styleObj) => {
1280
+ const processValue = (value) => {
1281
+ if (typeof value === "string") {
1282
+ if (value in theme2.colors) {
1283
+ return getColor(theme2, value);
1284
+ }
1285
+ return value;
1286
+ }
1287
+ if (typeof value === "number") {
1288
+ return value;
1289
+ }
1290
+ if (Array.isArray(value)) {
1291
+ return value.map(processValue);
1292
+ }
1293
+ if (typeof value === "object" && value !== null) {
1294
+ const processed2 = {};
1295
+ for (const [key, val] of Object.entries(value)) {
1296
+ processed2[key] = processValue(val);
1297
+ }
1298
+ return processed2;
1299
+ }
1300
+ return value;
1301
+ };
1302
+ const processed = {};
1303
+ for (const [key, val] of Object.entries(styleObj)) {
1304
+ processed[key] = processValue(val);
1305
+ }
1306
+ return processed;
1307
+ };
1308
+ var mergeThemes = (baseTheme, ...overrides) => {
1309
+ return overrides.reduce((theme2, override) => ({
1310
+ space: override.space || theme2.space,
1311
+ fonts: { ...theme2.fonts, ...override.fonts || {} },
1312
+ fontSizes: override.fontSizes || theme2.fontSizes,
1313
+ fontWeights: { ...theme2.fontWeights, ...override.fontWeights || {} },
1314
+ lineHeights: { ...theme2.lineHeights, ...override.lineHeights || {} },
1315
+ breakpoints: override.breakpoints || theme2.breakpoints,
1316
+ sizes: override.sizes || theme2.sizes,
1317
+ radii: override.radii || theme2.radii,
1318
+ shadows: override.shadows || theme2.shadows,
1319
+ zIndices: override.zIndices || theme2.zIndices,
1320
+ colors: {
1321
+ ...theme2.colors,
1322
+ ...override.colors || {}
1323
+ },
1324
+ buttons: { ...theme2.buttons, ...override.buttons || {} },
1325
+ text: { ...theme2.text, ...override.text || {} },
1326
+ cards: { ...theme2.cards, ...override.cards || {} }
1327
+ }), baseTheme);
1328
+ };
1329
+ // src/ThemeShowcase.tsx
1330
+ import React2 from "react";
1331
+ var ThemeShowcase = ({
1332
+ theme: theme2,
1333
+ title,
1334
+ showValues = true,
1335
+ sections = ["colors", "typography", "spacing", "shadows", "radii"]
1336
+ }) => {
1337
+ const containerStyle = {
1338
+ fontFamily: theme2.fonts.body,
1339
+ color: theme2.colors.text,
1340
+ backgroundColor: theme2.colors.background,
1341
+ padding: theme2.space[4],
1342
+ minHeight: "100vh"
1343
+ };
1344
+ const sectionStyle = {
1345
+ marginBottom: theme2.space[5],
1346
+ padding: theme2.space[4],
1347
+ backgroundColor: theme2.colors.surface || theme2.colors.backgroundSecondary,
1348
+ borderRadius: theme2.radii[2],
1349
+ border: `1px solid ${theme2.colors.border}`
1350
+ };
1351
+ const headingStyle = {
1352
+ fontFamily: theme2.fonts.heading,
1353
+ fontSize: theme2.fontSizes[5],
1354
+ fontWeight: theme2.fontWeights.heading,
1355
+ marginBottom: theme2.space[3],
1356
+ color: theme2.colors.primary
1357
+ };
1358
+ const subheadingStyle = {
1359
+ fontFamily: theme2.fonts.heading,
1360
+ fontSize: theme2.fontSizes[3],
1361
+ fontWeight: theme2.fontWeights.medium,
1362
+ marginBottom: theme2.space[2],
1363
+ marginTop: theme2.space[3],
1364
+ color: theme2.colors.text
1365
+ };
1366
+ return /* @__PURE__ */ React2.createElement("div", {
1367
+ style: containerStyle
1368
+ }, title && /* @__PURE__ */ React2.createElement("h1", {
1369
+ style: {
1370
+ ...headingStyle,
1371
+ fontSize: theme2.fontSizes[6],
1372
+ marginBottom: theme2.space[4]
1373
+ }
1374
+ }, title), sections.includes("colors") && /* @__PURE__ */ React2.createElement("div", {
1375
+ style: sectionStyle
1376
+ }, /* @__PURE__ */ React2.createElement("h2", {
1377
+ style: headingStyle
1378
+ }, "Colors"), /* @__PURE__ */ React2.createElement("h3", {
1379
+ style: subheadingStyle
1380
+ }, "Primary Colors"), /* @__PURE__ */ React2.createElement("div", {
1381
+ style: {
1382
+ display: "grid",
1383
+ gridTemplateColumns: "repeat(auto-fill, minmax(200px, 1fr))",
1384
+ gap: theme2.space[3],
1385
+ marginBottom: theme2.space[3]
1386
+ }
1387
+ }, ["text", "background", "primary", "secondary", "accent", "muted"].map((key) => {
1388
+ const color = theme2.colors[key];
1389
+ if (!color)
1390
+ return null;
1391
+ return /* @__PURE__ */ React2.createElement("div", {
1392
+ key,
1393
+ style: {
1394
+ display: "flex",
1395
+ alignItems: "center",
1396
+ padding: theme2.space[2],
1397
+ backgroundColor: theme2.colors.backgroundLight || theme2.colors.backgroundTertiary,
1398
+ borderRadius: theme2.radii[1]
1399
+ }
1400
+ }, /* @__PURE__ */ React2.createElement("div", {
1401
+ style: {
1402
+ width: 40,
1403
+ height: 40,
1404
+ backgroundColor: color,
1405
+ border: `1px solid ${theme2.colors.border}`,
1406
+ borderRadius: theme2.radii[1],
1407
+ marginRight: theme2.space[2]
1408
+ }
1409
+ }), /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement("div", {
1410
+ style: {
1411
+ fontFamily: theme2.fonts.monospace,
1412
+ fontSize: theme2.fontSizes[1],
1413
+ fontWeight: theme2.fontWeights.medium
1414
+ }
1415
+ }, key), showValues && /* @__PURE__ */ React2.createElement("div", {
1416
+ style: {
1417
+ fontFamily: theme2.fonts.monospace,
1418
+ fontSize: theme2.fontSizes[0],
1419
+ color: theme2.colors.textSecondary
1420
+ }
1421
+ }, color)));
1422
+ })), /* @__PURE__ */ React2.createElement("h3", {
1423
+ style: subheadingStyle
1424
+ }, "Status Colors"), /* @__PURE__ */ React2.createElement("div", {
1425
+ style: {
1426
+ display: "grid",
1427
+ gridTemplateColumns: "repeat(auto-fill, minmax(200px, 1fr))",
1428
+ gap: theme2.space[3],
1429
+ marginBottom: theme2.space[3]
1430
+ }
1431
+ }, ["success", "warning", "error", "info"].map((key) => {
1432
+ const color = theme2.colors[key];
1433
+ if (!color)
1434
+ return null;
1435
+ return /* @__PURE__ */ React2.createElement("div", {
1436
+ key,
1437
+ style: {
1438
+ display: "flex",
1439
+ alignItems: "center",
1440
+ padding: theme2.space[2],
1441
+ backgroundColor: theme2.colors.backgroundLight || theme2.colors.backgroundTertiary,
1442
+ borderRadius: theme2.radii[1]
1443
+ }
1444
+ }, /* @__PURE__ */ React2.createElement("div", {
1445
+ style: {
1446
+ width: 40,
1447
+ height: 40,
1448
+ backgroundColor: color,
1449
+ border: `1px solid ${theme2.colors.border}`,
1450
+ borderRadius: theme2.radii[1],
1451
+ marginRight: theme2.space[2]
1452
+ }
1453
+ }), /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement("div", {
1454
+ style: {
1455
+ fontFamily: theme2.fonts.monospace,
1456
+ fontSize: theme2.fontSizes[1],
1457
+ fontWeight: theme2.fontWeights.medium
1458
+ }
1459
+ }, key), showValues && /* @__PURE__ */ React2.createElement("div", {
1460
+ style: {
1461
+ fontFamily: theme2.fonts.monospace,
1462
+ fontSize: theme2.fontSizes[0],
1463
+ color: theme2.colors.textSecondary
1464
+ }
1465
+ }, color)));
1466
+ })), /* @__PURE__ */ React2.createElement("h3", {
1467
+ style: subheadingStyle
1468
+ }, "Background Colors"), /* @__PURE__ */ React2.createElement("div", {
1469
+ style: {
1470
+ display: "grid",
1471
+ gridTemplateColumns: "repeat(auto-fill, minmax(200px, 1fr))",
1472
+ gap: theme2.space[3]
1473
+ }
1474
+ }, ["backgroundSecondary", "backgroundTertiary", "backgroundLight", "backgroundHover", "surface"].map((key) => {
1475
+ const color = theme2.colors[key];
1476
+ if (!color)
1477
+ return null;
1478
+ return /* @__PURE__ */ React2.createElement("div", {
1479
+ key,
1480
+ style: {
1481
+ padding: theme2.space[3],
1482
+ backgroundColor: color,
1483
+ border: `1px solid ${theme2.colors.border}`,
1484
+ borderRadius: theme2.radii[1]
1485
+ }
1486
+ }, /* @__PURE__ */ React2.createElement("div", {
1487
+ style: {
1488
+ fontFamily: theme2.fonts.monospace,
1489
+ fontSize: theme2.fontSizes[1],
1490
+ fontWeight: theme2.fontWeights.medium
1491
+ }
1492
+ }, key), showValues && /* @__PURE__ */ React2.createElement("div", {
1493
+ style: {
1494
+ fontFamily: theme2.fonts.monospace,
1495
+ fontSize: theme2.fontSizes[0],
1496
+ color: theme2.colors.textSecondary,
1497
+ marginTop: theme2.space[1]
1498
+ }
1499
+ }, color));
1500
+ }))), sections.includes("typography") && /* @__PURE__ */ React2.createElement("div", {
1501
+ style: sectionStyle
1502
+ }, /* @__PURE__ */ React2.createElement("h2", {
1503
+ style: headingStyle
1504
+ }, "Typography"), /* @__PURE__ */ React2.createElement("h3", {
1505
+ style: subheadingStyle
1506
+ }, "Font Families"), /* @__PURE__ */ React2.createElement("div", {
1507
+ style: { marginBottom: theme2.space[4] }
1508
+ }, /* @__PURE__ */ React2.createElement("div", {
1509
+ style: {
1510
+ fontFamily: theme2.fonts.heading,
1511
+ fontSize: theme2.fontSizes[4],
1512
+ marginBottom: theme2.space[2]
1513
+ }
1514
+ }, "Heading Font: ", showValues && /* @__PURE__ */ React2.createElement("span", {
1515
+ style: {
1516
+ fontFamily: theme2.fonts.monospace,
1517
+ fontSize: theme2.fontSizes[1],
1518
+ color: theme2.colors.textSecondary
1519
+ }
1520
+ }, " ", theme2.fonts.heading)), /* @__PURE__ */ React2.createElement("div", {
1521
+ style: {
1522
+ fontFamily: theme2.fonts.body,
1523
+ fontSize: theme2.fontSizes[2],
1524
+ marginBottom: theme2.space[2]
1525
+ }
1526
+ }, "Body Font: ", showValues && /* @__PURE__ */ React2.createElement("span", {
1527
+ style: {
1528
+ fontFamily: theme2.fonts.monospace,
1529
+ fontSize: theme2.fontSizes[1],
1530
+ color: theme2.colors.textSecondary
1531
+ }
1532
+ }, " ", theme2.fonts.body)), /* @__PURE__ */ React2.createElement("div", {
1533
+ style: {
1534
+ fontFamily: theme2.fonts.monospace,
1535
+ fontSize: theme2.fontSizes[2]
1536
+ }
1537
+ }, "Monospace Font: ", showValues && /* @__PURE__ */ React2.createElement("span", {
1538
+ style: {
1539
+ fontSize: theme2.fontSizes[1],
1540
+ color: theme2.colors.textSecondary
1541
+ }
1542
+ }, " ", theme2.fonts.monospace))), /* @__PURE__ */ React2.createElement("h3", {
1543
+ style: subheadingStyle
1544
+ }, "Font Sizes"), /* @__PURE__ */ React2.createElement("div", {
1545
+ style: { marginBottom: theme2.space[4] }
1546
+ }, theme2.fontSizes.map((size, index) => /* @__PURE__ */ React2.createElement("div", {
1547
+ key: index,
1548
+ style: {
1549
+ fontSize: size,
1550
+ lineHeight: theme2.lineHeights.body,
1551
+ marginBottom: theme2.space[1]
1552
+ }
1553
+ }, "Size ", index, ": Sample Text ", showValues && `(${size}px)`))), /* @__PURE__ */ React2.createElement("h3", {
1554
+ style: subheadingStyle
1555
+ }, "Font Weights"), /* @__PURE__ */ React2.createElement("div", {
1556
+ style: {
1557
+ display: "grid",
1558
+ gridTemplateColumns: "repeat(auto-fit, minmax(150px, 1fr))",
1559
+ gap: theme2.space[2]
1560
+ }
1561
+ }, Object.entries(theme2.fontWeights).map(([name, weight]) => /* @__PURE__ */ React2.createElement("div", {
1562
+ key: name,
1563
+ style: {
1564
+ fontWeight: weight,
1565
+ fontSize: theme2.fontSizes[2]
1566
+ }
1567
+ }, name, " ", showValues && `(${weight})`)))), sections.includes("spacing") && /* @__PURE__ */ React2.createElement("div", {
1568
+ style: sectionStyle
1569
+ }, /* @__PURE__ */ React2.createElement("h2", {
1570
+ style: headingStyle
1571
+ }, "Spacing"), /* @__PURE__ */ React2.createElement("div", {
1572
+ style: { display: "flex", flexDirection: "column", gap: theme2.space[2] }
1573
+ }, theme2.space.map((space, index) => /* @__PURE__ */ React2.createElement("div", {
1574
+ key: index,
1575
+ style: { display: "flex", alignItems: "center" }
1576
+ }, /* @__PURE__ */ React2.createElement("div", {
1577
+ style: {
1578
+ width: 60,
1579
+ fontFamily: theme2.fonts.monospace,
1580
+ fontSize: theme2.fontSizes[1],
1581
+ color: theme2.colors.textSecondary
1582
+ }
1583
+ }, "[", index, "]"), /* @__PURE__ */ React2.createElement("div", {
1584
+ style: {
1585
+ height: 24,
1586
+ width: space,
1587
+ backgroundColor: theme2.colors.primary,
1588
+ borderRadius: theme2.radii[1]
1589
+ }
1590
+ }), showValues && /* @__PURE__ */ React2.createElement("div", {
1591
+ style: {
1592
+ marginLeft: theme2.space[2],
1593
+ fontFamily: theme2.fonts.monospace,
1594
+ fontSize: theme2.fontSizes[1],
1595
+ color: theme2.colors.textSecondary
1596
+ }
1597
+ }, space, "px"))))), sections.includes("radii") && /* @__PURE__ */ React2.createElement("div", {
1598
+ style: sectionStyle
1599
+ }, /* @__PURE__ */ React2.createElement("h2", {
1600
+ style: headingStyle
1601
+ }, "Border Radii"), /* @__PURE__ */ React2.createElement("div", {
1602
+ style: {
1603
+ display: "grid",
1604
+ gridTemplateColumns: "repeat(auto-fill, minmax(100px, 1fr))",
1605
+ gap: theme2.space[3]
1606
+ }
1607
+ }, theme2.radii.map((radius, index) => /* @__PURE__ */ React2.createElement("div", {
1608
+ key: index,
1609
+ style: { textAlign: "center" }
1610
+ }, /* @__PURE__ */ React2.createElement("div", {
1611
+ style: {
1612
+ width: 80,
1613
+ height: 80,
1614
+ backgroundColor: theme2.colors.primary,
1615
+ borderRadius: radius,
1616
+ marginBottom: theme2.space[1],
1617
+ margin: "0 auto"
1618
+ }
1619
+ }), /* @__PURE__ */ React2.createElement("div", {
1620
+ style: {
1621
+ fontFamily: theme2.fonts.monospace,
1622
+ fontSize: theme2.fontSizes[0],
1623
+ color: theme2.colors.textSecondary
1624
+ }
1625
+ }, "[", index, "] ", showValues && `${radius}px`))))), sections.includes("shadows") && /* @__PURE__ */ React2.createElement("div", {
1626
+ style: sectionStyle
1627
+ }, /* @__PURE__ */ React2.createElement("h2", {
1628
+ style: headingStyle
1629
+ }, "Shadows"), /* @__PURE__ */ React2.createElement("div", {
1630
+ style: {
1631
+ display: "grid",
1632
+ gridTemplateColumns: "repeat(auto-fill, minmax(150px, 1fr))",
1633
+ gap: theme2.space[4]
1634
+ }
1635
+ }, theme2.shadows.map((shadow, index) => /* @__PURE__ */ React2.createElement("div", {
1636
+ key: index,
1637
+ style: { textAlign: "center" }
1638
+ }, /* @__PURE__ */ React2.createElement("div", {
1639
+ style: {
1640
+ width: 100,
1641
+ height: 100,
1642
+ backgroundColor: theme2.colors.background,
1643
+ boxShadow: shadow,
1644
+ borderRadius: theme2.radii[2],
1645
+ margin: "0 auto",
1646
+ marginBottom: theme2.space[2],
1647
+ border: `1px solid ${theme2.colors.border}`
1648
+ }
1649
+ }), /* @__PURE__ */ React2.createElement("div", {
1650
+ style: {
1651
+ fontFamily: theme2.fonts.monospace,
1652
+ fontSize: theme2.fontSizes[0],
1653
+ color: theme2.colors.textSecondary
1654
+ }
1655
+ }, "Shadow [", index, "]"), showValues && /* @__PURE__ */ React2.createElement("div", {
1656
+ style: {
1657
+ fontFamily: theme2.fonts.monospace,
1658
+ fontSize: theme2.fontSizes[0],
1659
+ color: theme2.colors.textMuted,
1660
+ marginTop: theme2.space[1]
1661
+ }
1662
+ }, shadow === "none" ? "none" : "..."))))), theme2.modes && Object.keys(theme2.modes).length > 0 && /* @__PURE__ */ React2.createElement("div", {
1663
+ style: sectionStyle
1664
+ }, /* @__PURE__ */ React2.createElement("h2", {
1665
+ style: headingStyle
1666
+ }, "Available Modes"), /* @__PURE__ */ React2.createElement("div", {
1667
+ style: {
1668
+ display: "flex",
1669
+ gap: theme2.space[2],
1670
+ flexWrap: "wrap"
1671
+ }
1672
+ }, /* @__PURE__ */ React2.createElement("div", {
1673
+ style: {
1674
+ padding: `${theme2.space[2]}px ${theme2.space[3]}px`,
1675
+ backgroundColor: theme2.colors.primary,
1676
+ color: "#ffffff",
1677
+ borderRadius: theme2.radii[2],
1678
+ fontFamily: theme2.fonts.body,
1679
+ fontSize: theme2.fontSizes[1]
1680
+ }
1681
+ }, "default"), Object.keys(theme2.modes).map((modeName) => /* @__PURE__ */ React2.createElement("div", {
1682
+ key: modeName,
1683
+ style: {
1684
+ padding: `${theme2.space[2]}px ${theme2.space[3]}px`,
1685
+ backgroundColor: theme2.colors.secondary,
1686
+ color: theme2.colors.text,
1687
+ borderRadius: theme2.radii[2],
1688
+ fontFamily: theme2.fonts.body,
1689
+ fontSize: theme2.fontSizes[1]
1690
+ }
1691
+ }, modeName)))));
1692
+ };
1693
+
1694
+ // src/index.ts
1695
+ var theme = terminalTheme;
1696
+ function scaleThemeFonts(theme2, scale) {
1697
+ const currentScale = theme2.fontScale || 1;
1698
+ const effectiveScale = scale / currentScale;
1699
+ return {
1700
+ ...theme2,
1701
+ fontSizes: theme2.fontSizes.map((size) => Math.round(size * effectiveScale)),
1702
+ fontScale: scale
1703
+ };
1704
+ }
1705
+ function increaseFontScale(theme2) {
1706
+ const currentScale = theme2.fontScale || 1;
1707
+ const newScale = Math.min(currentScale * 1.1, 2);
1708
+ return scaleThemeFonts(theme2, newScale);
1709
+ }
1710
+ function decreaseFontScale(theme2) {
1711
+ const currentScale = theme2.fontScale || 1;
1712
+ const newScale = Math.max(currentScale * 0.9, 0.5);
1713
+ return scaleThemeFonts(theme2, newScale);
1714
+ }
1715
+ function resetFontScale(theme2) {
1716
+ return scaleThemeFonts(theme2, 1);
1717
+ }
1718
+ var src_default = theme;
1719
+ export {
1720
+ withTheme,
1721
+ useTheme,
1722
+ theme,
1723
+ terminalTheme,
1724
+ sx,
1725
+ slateTheme,
1726
+ scaleThemeFonts,
1727
+ responsive,
1728
+ resetFontScale,
1729
+ regalTheme,
1730
+ overrideColors,
1731
+ mergeThemes,
1732
+ matrixTheme,
1733
+ matrixMinimalTheme,
1734
+ makeTheme,
1735
+ increaseFontScale,
1736
+ glassmorphismTheme,
1737
+ getZIndex,
1738
+ getSpace,
1739
+ getShadow,
1740
+ getRadius,
1741
+ getMode,
1742
+ getFontSize,
1743
+ getColor,
1744
+ defaultTerminalTheme,
1745
+ defaultMarkdownTheme,
1746
+ defaultEditorTheme,
1747
+ src_default as default,
1748
+ decreaseFontScale,
1749
+ createStyle,
1750
+ addMode,
1751
+ ThemeShowcase,
1752
+ ThemeProvider
1753
+ };