tacel-canva 1.0.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/themes.js ADDED
@@ -0,0 +1,705 @@
1
+ /**
2
+ * Tacel Canva Module - Built-in Themes
3
+ * 30 professionally designed themes for the Canva integration
4
+ */
5
+
6
+ const themes = {
7
+ // ═══════════════════════════════════════════════════════════════
8
+ // DEFAULT & BRAND THEMES
9
+ // ═══════════════════════════════════════════════════════════════
10
+
11
+ 'default': {
12
+ name: 'Canva Default',
13
+ colors: ['#00c4cc', '#ffffff', '#1a1a2e'],
14
+ variables: {
15
+ '--tc-primary': '#00c4cc',
16
+ '--tc-primary-hover': '#00a8b0',
17
+ '--tc-primary-light': 'rgba(0, 196, 204, 0.1)',
18
+ '--tc-bg': '#ffffff',
19
+ '--tc-bg-secondary': '#f8f9fa',
20
+ '--tc-bg-tertiary': '#f0f2f5',
21
+ '--tc-border': '#e1e4e8',
22
+ '--tc-border-light': '#eef1f4',
23
+ '--tc-text': '#1a1a2e',
24
+ '--tc-text-muted': '#6b7280',
25
+ '--tc-text-light': '#9ca3af',
26
+ }
27
+ },
28
+
29
+ 'wire-scheduler': {
30
+ name: 'Wire Scheduler',
31
+ colors: ['#4a90e2', '#1e1e2e', '#ffffff'],
32
+ variables: {
33
+ '--tc-primary': '#4a90e2',
34
+ '--tc-primary-hover': '#357abd',
35
+ '--tc-primary-light': 'rgba(74, 144, 226, 0.15)',
36
+ '--tc-bg': '#1e1e2e',
37
+ '--tc-bg-secondary': '#252536',
38
+ '--tc-bg-tertiary': '#2d2d42',
39
+ '--tc-border': '#3a3a50',
40
+ '--tc-border-light': '#32324a',
41
+ '--tc-text': '#ffffff',
42
+ '--tc-text-muted': '#a0a0b0',
43
+ '--tc-text-light': '#707080',
44
+ }
45
+ },
46
+
47
+ 'office-hq': {
48
+ name: 'Office HQ',
49
+ colors: ['#c9a227', '#ffffff', '#3d3520'],
50
+ variables: {
51
+ '--tc-primary': '#c9a227',
52
+ '--tc-primary-hover': '#b8922a',
53
+ '--tc-primary-light': 'rgba(201, 162, 39, 0.1)',
54
+ '--tc-bg': '#ffffff',
55
+ '--tc-bg-secondary': '#faf8f0',
56
+ '--tc-bg-tertiary': '#f5f2e8',
57
+ '--tc-border': '#e0d5b8',
58
+ '--tc-border-light': '#ebe5d0',
59
+ '--tc-text': '#3d3520',
60
+ '--tc-text-muted': '#8a7d5a',
61
+ '--tc-text-light': '#a89870',
62
+ }
63
+ },
64
+
65
+ 'tech-portal': {
66
+ name: 'Tech Portal',
67
+ colors: ['#6366f1', '#0f0f1a', '#e0e7ff'],
68
+ variables: {
69
+ '--tc-primary': '#6366f1',
70
+ '--tc-primary-hover': '#4f46e5',
71
+ '--tc-primary-light': 'rgba(99, 102, 241, 0.15)',
72
+ '--tc-bg': '#0f0f1a',
73
+ '--tc-bg-secondary': '#1a1a2e',
74
+ '--tc-bg-tertiary': '#252542',
75
+ '--tc-border': '#2d2d50',
76
+ '--tc-border-light': '#252545',
77
+ '--tc-text': '#e0e7ff',
78
+ '--tc-text-muted': '#a5b4fc',
79
+ '--tc-text-light': '#6366f1',
80
+ }
81
+ },
82
+
83
+ 'shipworks': {
84
+ name: 'ShipWorks',
85
+ colors: ['#3b82f6', '#1e293b', '#f1f5f9'],
86
+ variables: {
87
+ '--tc-primary': '#3b82f6',
88
+ '--tc-primary-hover': '#2563eb',
89
+ '--tc-primary-light': 'rgba(59, 130, 246, 0.15)',
90
+ '--tc-bg': '#1e293b',
91
+ '--tc-bg-secondary': '#273449',
92
+ '--tc-bg-tertiary': '#334155',
93
+ '--tc-border': '#475569',
94
+ '--tc-border-light': '#3d4a5c',
95
+ '--tc-text': '#f1f5f9',
96
+ '--tc-text-muted': '#94a3b8',
97
+ '--tc-text-light': '#64748b',
98
+ }
99
+ },
100
+
101
+ // ═══════════════════════════════════════════════════════════════
102
+ // LIGHT THEMES
103
+ // ═══════════════════════════════════════════════════════════════
104
+
105
+ 'light-minimal': {
106
+ name: 'Light Minimal',
107
+ colors: ['#000000', '#ffffff', '#f5f5f5'],
108
+ variables: {
109
+ '--tc-primary': '#000000',
110
+ '--tc-primary-hover': '#333333',
111
+ '--tc-primary-light': 'rgba(0, 0, 0, 0.05)',
112
+ '--tc-bg': '#ffffff',
113
+ '--tc-bg-secondary': '#fafafa',
114
+ '--tc-bg-tertiary': '#f5f5f5',
115
+ '--tc-border': '#e5e5e5',
116
+ '--tc-border-light': '#f0f0f0',
117
+ '--tc-text': '#000000',
118
+ '--tc-text-muted': '#666666',
119
+ '--tc-text-light': '#999999',
120
+ }
121
+ },
122
+
123
+ 'ocean-breeze': {
124
+ name: 'Ocean Breeze',
125
+ colors: ['#0891b2', '#f0fdfa', '#164e63'],
126
+ variables: {
127
+ '--tc-primary': '#0891b2',
128
+ '--tc-primary-hover': '#0e7490',
129
+ '--tc-primary-light': 'rgba(8, 145, 178, 0.1)',
130
+ '--tc-bg': '#ffffff',
131
+ '--tc-bg-secondary': '#f0fdfa',
132
+ '--tc-bg-tertiary': '#ccfbf1',
133
+ '--tc-border': '#99f6e4',
134
+ '--tc-border-light': '#d1fae5',
135
+ '--tc-text': '#164e63',
136
+ '--tc-text-muted': '#0e7490',
137
+ '--tc-text-light': '#67e8f9',
138
+ }
139
+ },
140
+
141
+ 'rose-garden': {
142
+ name: 'Rose Garden',
143
+ colors: ['#e11d48', '#fff1f2', '#881337'],
144
+ variables: {
145
+ '--tc-primary': '#e11d48',
146
+ '--tc-primary-hover': '#be123c',
147
+ '--tc-primary-light': 'rgba(225, 29, 72, 0.1)',
148
+ '--tc-bg': '#ffffff',
149
+ '--tc-bg-secondary': '#fff1f2',
150
+ '--tc-bg-tertiary': '#ffe4e6',
151
+ '--tc-border': '#fecdd3',
152
+ '--tc-border-light': '#fecdd3',
153
+ '--tc-text': '#881337',
154
+ '--tc-text-muted': '#be123c',
155
+ '--tc-text-light': '#fb7185',
156
+ }
157
+ },
158
+
159
+ 'forest-green': {
160
+ name: 'Forest Green',
161
+ colors: ['#16a34a', '#f0fdf4', '#14532d'],
162
+ variables: {
163
+ '--tc-primary': '#16a34a',
164
+ '--tc-primary-hover': '#15803d',
165
+ '--tc-primary-light': 'rgba(22, 163, 74, 0.1)',
166
+ '--tc-bg': '#ffffff',
167
+ '--tc-bg-secondary': '#f0fdf4',
168
+ '--tc-bg-tertiary': '#dcfce7',
169
+ '--tc-border': '#bbf7d0',
170
+ '--tc-border-light': '#d1fae5',
171
+ '--tc-text': '#14532d',
172
+ '--tc-text-muted': '#166534',
173
+ '--tc-text-light': '#4ade80',
174
+ }
175
+ },
176
+
177
+ 'lavender-mist': {
178
+ name: 'Lavender Mist',
179
+ colors: ['#8b5cf6', '#f5f3ff', '#4c1d95'],
180
+ variables: {
181
+ '--tc-primary': '#8b5cf6',
182
+ '--tc-primary-hover': '#7c3aed',
183
+ '--tc-primary-light': 'rgba(139, 92, 246, 0.1)',
184
+ '--tc-bg': '#ffffff',
185
+ '--tc-bg-secondary': '#f5f3ff',
186
+ '--tc-bg-tertiary': '#ede9fe',
187
+ '--tc-border': '#ddd6fe',
188
+ '--tc-border-light': '#e9e5ff',
189
+ '--tc-text': '#4c1d95',
190
+ '--tc-text-muted': '#6d28d9',
191
+ '--tc-text-light': '#a78bfa',
192
+ }
193
+ },
194
+
195
+ 'sunset-orange': {
196
+ name: 'Sunset Orange',
197
+ colors: ['#ea580c', '#fff7ed', '#7c2d12'],
198
+ variables: {
199
+ '--tc-primary': '#ea580c',
200
+ '--tc-primary-hover': '#c2410c',
201
+ '--tc-primary-light': 'rgba(234, 88, 12, 0.1)',
202
+ '--tc-bg': '#ffffff',
203
+ '--tc-bg-secondary': '#fff7ed',
204
+ '--tc-bg-tertiary': '#ffedd5',
205
+ '--tc-border': '#fed7aa',
206
+ '--tc-border-light': '#feecd0',
207
+ '--tc-text': '#7c2d12',
208
+ '--tc-text-muted': '#c2410c',
209
+ '--tc-text-light': '#fb923c',
210
+ }
211
+ },
212
+
213
+ 'sky-blue': {
214
+ name: 'Sky Blue',
215
+ colors: ['#0284c7', '#f0f9ff', '#0c4a6e'],
216
+ variables: {
217
+ '--tc-primary': '#0284c7',
218
+ '--tc-primary-hover': '#0369a1',
219
+ '--tc-primary-light': 'rgba(2, 132, 199, 0.1)',
220
+ '--tc-bg': '#ffffff',
221
+ '--tc-bg-secondary': '#f0f9ff',
222
+ '--tc-bg-tertiary': '#e0f2fe',
223
+ '--tc-border': '#bae6fd',
224
+ '--tc-border-light': '#d0ebff',
225
+ '--tc-text': '#0c4a6e',
226
+ '--tc-text-muted': '#0369a1',
227
+ '--tc-text-light': '#38bdf8',
228
+ }
229
+ },
230
+
231
+ 'warm-sand': {
232
+ name: 'Warm Sand',
233
+ colors: ['#a16207', '#fefce8', '#713f12'],
234
+ variables: {
235
+ '--tc-primary': '#a16207',
236
+ '--tc-primary-hover': '#854d0e',
237
+ '--tc-primary-light': 'rgba(161, 98, 7, 0.1)',
238
+ '--tc-bg': '#ffffff',
239
+ '--tc-bg-secondary': '#fefce8',
240
+ '--tc-bg-tertiary': '#fef9c3',
241
+ '--tc-border': '#fef08a',
242
+ '--tc-border-light': '#fef3b0',
243
+ '--tc-text': '#713f12',
244
+ '--tc-text-muted': '#a16207',
245
+ '--tc-text-light': '#facc15',
246
+ }
247
+ },
248
+
249
+ 'mint-fresh': {
250
+ name: 'Mint Fresh',
251
+ colors: ['#059669', '#ecfdf5', '#064e3b'],
252
+ variables: {
253
+ '--tc-primary': '#059669',
254
+ '--tc-primary-hover': '#047857',
255
+ '--tc-primary-light': 'rgba(5, 150, 105, 0.1)',
256
+ '--tc-bg': '#ffffff',
257
+ '--tc-bg-secondary': '#ecfdf5',
258
+ '--tc-bg-tertiary': '#d1fae5',
259
+ '--tc-border': '#a7f3d0',
260
+ '--tc-border-light': '#c5f5e0',
261
+ '--tc-text': '#064e3b',
262
+ '--tc-text-muted': '#047857',
263
+ '--tc-text-light': '#34d399',
264
+ }
265
+ },
266
+
267
+ 'coral-reef': {
268
+ name: 'Coral Reef',
269
+ colors: ['#f43f5e', '#fff1f3', '#9f1239'],
270
+ variables: {
271
+ '--tc-primary': '#f43f5e',
272
+ '--tc-primary-hover': '#e11d48',
273
+ '--tc-primary-light': 'rgba(244, 63, 94, 0.1)',
274
+ '--tc-bg': '#ffffff',
275
+ '--tc-bg-secondary': '#fff1f3',
276
+ '--tc-bg-tertiary': '#ffe4e8',
277
+ '--tc-border': '#fecdd3',
278
+ '--tc-border-light': '#fed7dc',
279
+ '--tc-text': '#9f1239',
280
+ '--tc-text-muted': '#e11d48',
281
+ '--tc-text-light': '#fb7185',
282
+ }
283
+ },
284
+
285
+ // ═══════════════════════════════════════════════════════════════
286
+ // DARK THEMES
287
+ // ═══════════════════════════════════════════════════════════════
288
+
289
+ 'dark-minimal': {
290
+ name: 'Dark Minimal',
291
+ colors: ['#ffffff', '#121212', '#1e1e1e'],
292
+ variables: {
293
+ '--tc-primary': '#ffffff',
294
+ '--tc-primary-hover': '#e0e0e0',
295
+ '--tc-primary-light': 'rgba(255, 255, 255, 0.1)',
296
+ '--tc-bg': '#121212',
297
+ '--tc-bg-secondary': '#1e1e1e',
298
+ '--tc-bg-tertiary': '#2a2a2a',
299
+ '--tc-border': '#333333',
300
+ '--tc-border-light': '#2a2a2a',
301
+ '--tc-text': '#ffffff',
302
+ '--tc-text-muted': '#a0a0a0',
303
+ '--tc-text-light': '#666666',
304
+ }
305
+ },
306
+
307
+ 'midnight-blue': {
308
+ name: 'Midnight Blue',
309
+ colors: ['#60a5fa', '#0f172a', '#1e3a5f'],
310
+ variables: {
311
+ '--tc-primary': '#60a5fa',
312
+ '--tc-primary-hover': '#3b82f6',
313
+ '--tc-primary-light': 'rgba(96, 165, 250, 0.15)',
314
+ '--tc-bg': '#0f172a',
315
+ '--tc-bg-secondary': '#1e293b',
316
+ '--tc-bg-tertiary': '#334155',
317
+ '--tc-border': '#475569',
318
+ '--tc-border-light': '#3d4a5c',
319
+ '--tc-text': '#f1f5f9',
320
+ '--tc-text-muted': '#94a3b8',
321
+ '--tc-text-light': '#64748b',
322
+ }
323
+ },
324
+
325
+ 'deep-purple': {
326
+ name: 'Deep Purple',
327
+ colors: ['#a78bfa', '#1e1033', '#2e1065'],
328
+ variables: {
329
+ '--tc-primary': '#a78bfa',
330
+ '--tc-primary-hover': '#8b5cf6',
331
+ '--tc-primary-light': 'rgba(167, 139, 250, 0.15)',
332
+ '--tc-bg': '#1e1033',
333
+ '--tc-bg-secondary': '#2e1065',
334
+ '--tc-bg-tertiary': '#3b1a7a',
335
+ '--tc-border': '#4c1d95',
336
+ '--tc-border-light': '#3b1a7a',
337
+ '--tc-text': '#f5f3ff',
338
+ '--tc-text-muted': '#c4b5fd',
339
+ '--tc-text-light': '#8b5cf6',
340
+ }
341
+ },
342
+
343
+ 'emerald-night': {
344
+ name: 'Emerald Night',
345
+ colors: ['#34d399', '#0d1f17', '#064e3b'],
346
+ variables: {
347
+ '--tc-primary': '#34d399',
348
+ '--tc-primary-hover': '#10b981',
349
+ '--tc-primary-light': 'rgba(52, 211, 153, 0.15)',
350
+ '--tc-bg': '#0d1f17',
351
+ '--tc-bg-secondary': '#14332a',
352
+ '--tc-bg-tertiary': '#1a4538',
353
+ '--tc-border': '#065f46',
354
+ '--tc-border-light': '#1a4538',
355
+ '--tc-text': '#ecfdf5',
356
+ '--tc-text-muted': '#6ee7b7',
357
+ '--tc-text-light': '#10b981',
358
+ }
359
+ },
360
+
361
+ 'crimson-dark': {
362
+ name: 'Crimson Dark',
363
+ colors: ['#f87171', '#1f1215', '#7f1d1d'],
364
+ variables: {
365
+ '--tc-primary': '#f87171',
366
+ '--tc-primary-hover': '#ef4444',
367
+ '--tc-primary-light': 'rgba(248, 113, 113, 0.15)',
368
+ '--tc-bg': '#1f1215',
369
+ '--tc-bg-secondary': '#2d1a1e',
370
+ '--tc-bg-tertiary': '#3d2428',
371
+ '--tc-border': '#7f1d1d',
372
+ '--tc-border-light': '#4d2a2e',
373
+ '--tc-text': '#fef2f2',
374
+ '--tc-text-muted': '#fca5a5',
375
+ '--tc-text-light': '#ef4444',
376
+ }
377
+ },
378
+
379
+ 'golden-night': {
380
+ name: 'Golden Night',
381
+ colors: ['#fbbf24', '#1a1608', '#78350f'],
382
+ variables: {
383
+ '--tc-primary': '#fbbf24',
384
+ '--tc-primary-hover': '#f59e0b',
385
+ '--tc-primary-light': 'rgba(251, 191, 36, 0.15)',
386
+ '--tc-bg': '#1a1608',
387
+ '--tc-bg-secondary': '#2a2410',
388
+ '--tc-bg-tertiary': '#3a3218',
389
+ '--tc-border': '#78350f',
390
+ '--tc-border-light': '#4a4020',
391
+ '--tc-text': '#fefce8',
392
+ '--tc-text-muted': '#fde68a',
393
+ '--tc-text-light': '#f59e0b',
394
+ }
395
+ },
396
+
397
+ 'ocean-depth': {
398
+ name: 'Ocean Depth',
399
+ colors: ['#22d3ee', '#0a1628', '#164e63'],
400
+ variables: {
401
+ '--tc-primary': '#22d3ee',
402
+ '--tc-primary-hover': '#06b6d4',
403
+ '--tc-primary-light': 'rgba(34, 211, 238, 0.15)',
404
+ '--tc-bg': '#0a1628',
405
+ '--tc-bg-secondary': '#0f2438',
406
+ '--tc-bg-tertiary': '#153248',
407
+ '--tc-border': '#164e63',
408
+ '--tc-border-light': '#1a3a50',
409
+ '--tc-text': '#ecfeff',
410
+ '--tc-text-muted': '#67e8f9',
411
+ '--tc-text-light': '#06b6d4',
412
+ }
413
+ },
414
+
415
+ 'charcoal': {
416
+ name: 'Charcoal',
417
+ colors: ['#71717a', '#18181b', '#27272a'],
418
+ variables: {
419
+ '--tc-primary': '#a1a1aa',
420
+ '--tc-primary-hover': '#71717a',
421
+ '--tc-primary-light': 'rgba(161, 161, 170, 0.15)',
422
+ '--tc-bg': '#18181b',
423
+ '--tc-bg-secondary': '#27272a',
424
+ '--tc-bg-tertiary': '#3f3f46',
425
+ '--tc-border': '#52525b',
426
+ '--tc-border-light': '#3f3f46',
427
+ '--tc-text': '#fafafa',
428
+ '--tc-text-muted': '#a1a1aa',
429
+ '--tc-text-light': '#71717a',
430
+ }
431
+ },
432
+
433
+ 'aurora': {
434
+ name: 'Aurora',
435
+ colors: ['#c084fc', '#0c0a1d', '#1e1b4b'],
436
+ variables: {
437
+ '--tc-primary': '#c084fc',
438
+ '--tc-primary-hover': '#a855f7',
439
+ '--tc-primary-light': 'rgba(192, 132, 252, 0.15)',
440
+ '--tc-bg': '#0c0a1d',
441
+ '--tc-bg-secondary': '#1e1b4b',
442
+ '--tc-bg-tertiary': '#312e81',
443
+ '--tc-border': '#4338ca',
444
+ '--tc-border-light': '#3730a3',
445
+ '--tc-text': '#f5f3ff',
446
+ '--tc-text-muted': '#e9d5ff',
447
+ '--tc-text-light': '#a855f7',
448
+ }
449
+ },
450
+
451
+ 'slate-dark': {
452
+ name: 'Slate Dark',
453
+ colors: ['#94a3b8', '#0f172a', '#1e293b'],
454
+ variables: {
455
+ '--tc-primary': '#94a3b8',
456
+ '--tc-primary-hover': '#64748b',
457
+ '--tc-primary-light': 'rgba(148, 163, 184, 0.15)',
458
+ '--tc-bg': '#0f172a',
459
+ '--tc-bg-secondary': '#1e293b',
460
+ '--tc-bg-tertiary': '#334155',
461
+ '--tc-border': '#475569',
462
+ '--tc-border-light': '#3d4a5c',
463
+ '--tc-text': '#f8fafc',
464
+ '--tc-text-muted': '#cbd5e1',
465
+ '--tc-text-light': '#64748b',
466
+ }
467
+ },
468
+
469
+ // ═══════════════════════════════════════════════════════════════
470
+ // VIBRANT & CREATIVE THEMES
471
+ // ═══════════════════════════════════════════════════════════════
472
+
473
+ 'neon-pink': {
474
+ name: 'Neon Pink',
475
+ colors: ['#ec4899', '#1a0a14', '#831843'],
476
+ variables: {
477
+ '--tc-primary': '#ec4899',
478
+ '--tc-primary-hover': '#db2777',
479
+ '--tc-primary-light': 'rgba(236, 72, 153, 0.2)',
480
+ '--tc-bg': '#1a0a14',
481
+ '--tc-bg-secondary': '#2d1424',
482
+ '--tc-bg-tertiary': '#4a1e3a',
483
+ '--tc-border': '#831843',
484
+ '--tc-border-light': '#5a2040',
485
+ '--tc-text': '#fdf2f8',
486
+ '--tc-text-muted': '#f9a8d4',
487
+ '--tc-text-light': '#ec4899',
488
+ }
489
+ },
490
+
491
+ 'electric-blue': {
492
+ name: 'Electric Blue',
493
+ colors: ['#38bdf8', '#0a1929', '#0c4a6e'],
494
+ variables: {
495
+ '--tc-primary': '#38bdf8',
496
+ '--tc-primary-hover': '#0ea5e9',
497
+ '--tc-primary-light': 'rgba(56, 189, 248, 0.2)',
498
+ '--tc-bg': '#0a1929',
499
+ '--tc-bg-secondary': '#0f2942',
500
+ '--tc-bg-tertiary': '#15395a',
501
+ '--tc-border': '#0c4a6e',
502
+ '--tc-border-light': '#1a4060',
503
+ '--tc-text': '#f0f9ff',
504
+ '--tc-text-muted': '#7dd3fc',
505
+ '--tc-text-light': '#0ea5e9',
506
+ }
507
+ },
508
+
509
+ 'lime-punch': {
510
+ name: 'Lime Punch',
511
+ colors: ['#a3e635', '#0f1a0a', '#365314'],
512
+ variables: {
513
+ '--tc-primary': '#a3e635',
514
+ '--tc-primary-hover': '#84cc16',
515
+ '--tc-primary-light': 'rgba(163, 230, 53, 0.2)',
516
+ '--tc-bg': '#0f1a0a',
517
+ '--tc-bg-secondary': '#1a2e12',
518
+ '--tc-bg-tertiary': '#254520',
519
+ '--tc-border': '#365314',
520
+ '--tc-border-light': '#2a4018',
521
+ '--tc-text': '#f7fee7',
522
+ '--tc-text-muted': '#bef264',
523
+ '--tc-text-light': '#84cc16',
524
+ }
525
+ },
526
+
527
+ 'candy': {
528
+ name: 'Candy',
529
+ colors: ['#f472b6', '#fdf2f8', '#9d174d'],
530
+ variables: {
531
+ '--tc-primary': '#f472b6',
532
+ '--tc-primary-hover': '#ec4899',
533
+ '--tc-primary-light': 'rgba(244, 114, 182, 0.15)',
534
+ '--tc-bg': '#ffffff',
535
+ '--tc-bg-secondary': '#fdf2f8',
536
+ '--tc-bg-tertiary': '#fce7f3',
537
+ '--tc-border': '#fbcfe8',
538
+ '--tc-border-light': '#fce7f3',
539
+ '--tc-text': '#9d174d',
540
+ '--tc-text-muted': '#be185d',
541
+ '--tc-text-light': '#f472b6',
542
+ }
543
+ },
544
+
545
+ 'arctic': {
546
+ name: 'Arctic',
547
+ colors: ['#06b6d4', '#f8fafc', '#0e7490'],
548
+ variables: {
549
+ '--tc-primary': '#06b6d4',
550
+ '--tc-primary-hover': '#0891b2',
551
+ '--tc-primary-light': 'rgba(6, 182, 212, 0.1)',
552
+ '--tc-bg': '#ffffff',
553
+ '--tc-bg-secondary': '#f8fafc',
554
+ '--tc-bg-tertiary': '#f1f5f9',
555
+ '--tc-border': '#e2e8f0',
556
+ '--tc-border-light': '#f1f5f9',
557
+ '--tc-text': '#0e7490',
558
+ '--tc-text-muted': '#0891b2',
559
+ '--tc-text-light': '#22d3ee',
560
+ }
561
+ },
562
+
563
+ 'mocha': {
564
+ name: 'Mocha',
565
+ colors: ['#a78bfa', '#1e1e2e', '#313244'],
566
+ variables: {
567
+ '--tc-primary': '#cba6f7',
568
+ '--tc-primary-hover': '#b4befe',
569
+ '--tc-primary-light': 'rgba(203, 166, 247, 0.15)',
570
+ '--tc-bg': '#1e1e2e',
571
+ '--tc-bg-secondary': '#313244',
572
+ '--tc-bg-tertiary': '#45475a',
573
+ '--tc-border': '#585b70',
574
+ '--tc-border-light': '#45475a',
575
+ '--tc-text': '#cdd6f4',
576
+ '--tc-text-muted': '#a6adc8',
577
+ '--tc-text-light': '#7f849c',
578
+ }
579
+ },
580
+
581
+ 'dracula': {
582
+ name: 'Dracula',
583
+ colors: ['#bd93f9', '#282a36', '#44475a'],
584
+ variables: {
585
+ '--tc-primary': '#bd93f9',
586
+ '--tc-primary-hover': '#ff79c6',
587
+ '--tc-primary-light': 'rgba(189, 147, 249, 0.15)',
588
+ '--tc-bg': '#282a36',
589
+ '--tc-bg-secondary': '#44475a',
590
+ '--tc-bg-tertiary': '#6272a4',
591
+ '--tc-border': '#6272a4',
592
+ '--tc-border-light': '#44475a',
593
+ '--tc-text': '#f8f8f2',
594
+ '--tc-text-muted': '#f8f8f2',
595
+ '--tc-text-light': '#6272a4',
596
+ }
597
+ },
598
+
599
+ 'nord': {
600
+ name: 'Nord',
601
+ colors: ['#88c0d0', '#2e3440', '#3b4252'],
602
+ variables: {
603
+ '--tc-primary': '#88c0d0',
604
+ '--tc-primary-hover': '#81a1c1',
605
+ '--tc-primary-light': 'rgba(136, 192, 208, 0.15)',
606
+ '--tc-bg': '#2e3440',
607
+ '--tc-bg-secondary': '#3b4252',
608
+ '--tc-bg-tertiary': '#434c5e',
609
+ '--tc-border': '#4c566a',
610
+ '--tc-border-light': '#434c5e',
611
+ '--tc-text': '#eceff4',
612
+ '--tc-text-muted': '#d8dee9',
613
+ '--tc-text-light': '#4c566a',
614
+ }
615
+ },
616
+
617
+ 'solarized-dark': {
618
+ name: 'Solarized Dark',
619
+ colors: ['#268bd2', '#002b36', '#073642'],
620
+ variables: {
621
+ '--tc-primary': '#268bd2',
622
+ '--tc-primary-hover': '#2aa198',
623
+ '--tc-primary-light': 'rgba(38, 139, 210, 0.15)',
624
+ '--tc-bg': '#002b36',
625
+ '--tc-bg-secondary': '#073642',
626
+ '--tc-bg-tertiary': '#0a4050',
627
+ '--tc-border': '#586e75',
628
+ '--tc-border-light': '#0a4050',
629
+ '--tc-text': '#fdf6e3',
630
+ '--tc-text-muted': '#93a1a1',
631
+ '--tc-text-light': '#657b83',
632
+ }
633
+ },
634
+
635
+ 'github-dark': {
636
+ name: 'GitHub Dark',
637
+ colors: ['#58a6ff', '#0d1117', '#161b22'],
638
+ variables: {
639
+ '--tc-primary': '#58a6ff',
640
+ '--tc-primary-hover': '#1f6feb',
641
+ '--tc-primary-light': 'rgba(88, 166, 255, 0.15)',
642
+ '--tc-bg': '#0d1117',
643
+ '--tc-bg-secondary': '#161b22',
644
+ '--tc-bg-tertiary': '#21262d',
645
+ '--tc-border': '#30363d',
646
+ '--tc-border-light': '#21262d',
647
+ '--tc-text': '#c9d1d9',
648
+ '--tc-text-muted': '#8b949e',
649
+ '--tc-text-light': '#484f58',
650
+ }
651
+ },
652
+ };
653
+
654
+ /**
655
+ * Get all available themes
656
+ * @returns {Object} All themes
657
+ */
658
+ function getThemes() {
659
+ return themes;
660
+ }
661
+
662
+ /**
663
+ * Get theme by ID
664
+ * @param {string} themeId
665
+ * @returns {Object|null}
666
+ */
667
+ function getTheme(themeId) {
668
+ return themes[themeId] || null;
669
+ }
670
+
671
+ /**
672
+ * Get theme names for dropdown
673
+ * @returns {Array<{id: string, name: string, colors: string[]}>}
674
+ */
675
+ function getThemeList() {
676
+ return Object.entries(themes).map(([id, theme]) => ({
677
+ id,
678
+ name: theme.name,
679
+ colors: theme.colors,
680
+ }));
681
+ }
682
+
683
+ /**
684
+ * Apply theme to container
685
+ * @param {HTMLElement} container
686
+ * @param {string} themeId
687
+ */
688
+ function applyTheme(container, themeId) {
689
+ const theme = themes[themeId];
690
+ if (!theme) return;
691
+
692
+ Object.entries(theme.variables).forEach(([prop, value]) => {
693
+ container.style.setProperty(prop, value);
694
+ });
695
+ }
696
+
697
+ if (typeof module !== 'undefined' && module.exports) {
698
+ module.exports = {
699
+ themes,
700
+ getThemes,
701
+ getTheme,
702
+ getThemeList,
703
+ applyTheme,
704
+ };
705
+ }