@doneisbetter/gds-theme 3.0.1 → 3.0.3
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/chunk-G42DZXE5.mjs +233 -0
- package/dist/{chunk-TAPLA36E.mjs → chunk-OMSQVRZK.mjs} +288 -0
- package/dist/client.d.mts +34 -3
- package/dist/client.d.ts +34 -3
- package/dist/client.js +436 -3
- package/dist/client.mjs +12 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +436 -3
- package/dist/index.mjs +12 -2
- package/dist/server.d.mts +38 -1
- package/dist/server.d.ts +38 -1
- package/dist/server.js +291 -0
- package/dist/server.mjs +7 -1
- package/package.json +1 -1
- package/styles.css +233 -0
- package/dist/chunk-7B3MG4NV.mjs +0 -88
package/dist/index.js
CHANGED
|
@@ -22,6 +22,7 @@ var index_exports = {};
|
|
|
22
22
|
__export(index_exports, {
|
|
23
23
|
GdsProvider: () => GdsProvider,
|
|
24
24
|
applyGdsFontLane: () => applyGdsFontLane,
|
|
25
|
+
createGdsThemePresetSelection: () => createGdsThemePresetSelection,
|
|
25
26
|
createPublicBrandTheme: () => createPublicBrandTheme,
|
|
26
27
|
extendGdsTheme: () => extendGdsTheme,
|
|
27
28
|
gdsDarkPublicTheme: () => gdsDarkPublicTheme,
|
|
@@ -30,9 +31,13 @@ __export(index_exports, {
|
|
|
30
31
|
gdsTheme: () => gdsTheme,
|
|
31
32
|
getGdsFontLanes: () => getGdsFontLanes,
|
|
32
33
|
getGdsThemePresets: () => getGdsThemePresets,
|
|
34
|
+
getGdsVibeThemeCssVariables: () => getGdsVibeThemeCssVariables,
|
|
35
|
+
getGdsVibeThemes: () => getGdsVibeThemes,
|
|
33
36
|
resolveGdsFontLane: () => resolveGdsFontLane,
|
|
34
37
|
resolveGdsThemePreset: () => resolveGdsThemePreset,
|
|
38
|
+
resolveGdsVibeTheme: () => resolveGdsVibeTheme,
|
|
35
39
|
showGdsNotification: () => showGdsNotification,
|
|
40
|
+
useGdsThemePresetState: () => useGdsThemePresetState,
|
|
36
41
|
useGdsTranslation: () => useGdsTranslation,
|
|
37
42
|
withGdsMotion: () => withGdsMotion
|
|
38
43
|
});
|
|
@@ -347,6 +352,291 @@ function resolveGdsThemePreset(id, options) {
|
|
|
347
352
|
}
|
|
348
353
|
}
|
|
349
354
|
|
|
355
|
+
// src/vibe-themes.ts
|
|
356
|
+
var neutralVibe = {
|
|
357
|
+
id: "default",
|
|
358
|
+
label: "Default runtime theme",
|
|
359
|
+
primary: "#7c3aed",
|
|
360
|
+
accent: "#06b6d4",
|
|
361
|
+
glow: "rgba(124, 58, 237, 0.2)",
|
|
362
|
+
canvasLight: "#f8fafc",
|
|
363
|
+
canvasDark: "#0f172a",
|
|
364
|
+
shellLight: "rgba(255, 255, 255, 0.82)",
|
|
365
|
+
shellDark: "rgba(15, 23, 42, 0.84)",
|
|
366
|
+
surfaceLight: "rgba(255, 255, 255, 0.9)",
|
|
367
|
+
surfaceDark: "rgba(30, 41, 59, 0.82)",
|
|
368
|
+
borderLight: "rgba(124, 58, 237, 0.22)",
|
|
369
|
+
borderDark: "rgba(167, 139, 250, 0.28)",
|
|
370
|
+
textLight: "#111827",
|
|
371
|
+
textDark: "#f8fafc",
|
|
372
|
+
mutedLight: "#64748b",
|
|
373
|
+
mutedDark: "#cbd5e1",
|
|
374
|
+
gradient: "radial-gradient(circle at 18% 12%, rgba(124, 58, 237, 0.18), transparent 28%), radial-gradient(circle at 82% 8%, rgba(6, 182, 212, 0.16), transparent 30%)",
|
|
375
|
+
hero: "linear-gradient(135deg, rgba(124, 58, 237, 0.14), rgba(6, 182, 212, 0.12))"
|
|
376
|
+
};
|
|
377
|
+
var vibeThemes = {
|
|
378
|
+
default: neutralVibe,
|
|
379
|
+
"dark-public": {
|
|
380
|
+
...neutralVibe,
|
|
381
|
+
id: "dark-public",
|
|
382
|
+
label: "Dark public theme",
|
|
383
|
+
primary: "#8b5cf6",
|
|
384
|
+
accent: "#22d3ee",
|
|
385
|
+
canvasLight: "#f5f3ff",
|
|
386
|
+
canvasDark: "#050816",
|
|
387
|
+
shellDark: "rgba(8, 13, 32, 0.88)",
|
|
388
|
+
surfaceDark: "rgba(18, 24, 52, 0.86)",
|
|
389
|
+
gradient: "radial-gradient(circle at 20% 12%, rgba(139, 92, 246, 0.34), transparent 30%), radial-gradient(circle at 82% 16%, rgba(34, 211, 238, 0.2), transparent 28%)",
|
|
390
|
+
hero: "linear-gradient(135deg, rgba(139, 92, 246, 0.35), rgba(34, 211, 238, 0.14))"
|
|
391
|
+
},
|
|
392
|
+
"flat-surface": {
|
|
393
|
+
...neutralVibe,
|
|
394
|
+
id: "flat-surface",
|
|
395
|
+
label: "Flat surface theme",
|
|
396
|
+
primary: "#2563eb",
|
|
397
|
+
accent: "#14b8a6",
|
|
398
|
+
canvasLight: "#f8fafc",
|
|
399
|
+
canvasDark: "#111827",
|
|
400
|
+
shellLight: "rgba(248, 250, 252, 0.94)",
|
|
401
|
+
surfaceLight: "rgba(255, 255, 255, 0.94)",
|
|
402
|
+
gradient: "linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(20, 184, 166, 0.08))",
|
|
403
|
+
hero: "linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(20, 184, 166, 0.1))"
|
|
404
|
+
},
|
|
405
|
+
editorial: {
|
|
406
|
+
...neutralVibe,
|
|
407
|
+
id: "editorial",
|
|
408
|
+
label: "Editorial serif theme",
|
|
409
|
+
primary: "#9a3412",
|
|
410
|
+
accent: "#be123c",
|
|
411
|
+
canvasLight: "#fff7ed",
|
|
412
|
+
canvasDark: "#1c1917",
|
|
413
|
+
shellLight: "rgba(255, 247, 237, 0.9)",
|
|
414
|
+
surfaceLight: "rgba(255, 251, 247, 0.92)",
|
|
415
|
+
borderLight: "rgba(154, 52, 18, 0.22)",
|
|
416
|
+
gradient: "radial-gradient(circle at 12% 12%, rgba(251, 146, 60, 0.22), transparent 28%), radial-gradient(circle at 84% 10%, rgba(190, 18, 60, 0.12), transparent 28%)",
|
|
417
|
+
hero: "linear-gradient(135deg, rgba(251, 146, 60, 0.18), rgba(190, 18, 60, 0.12))"
|
|
418
|
+
},
|
|
419
|
+
brand: {
|
|
420
|
+
...neutralVibe,
|
|
421
|
+
id: "brand",
|
|
422
|
+
label: "Brand theme generator"
|
|
423
|
+
},
|
|
424
|
+
sunset: {
|
|
425
|
+
...neutralVibe,
|
|
426
|
+
id: "sunset",
|
|
427
|
+
label: "Sunset pulse",
|
|
428
|
+
primary: "#f97316",
|
|
429
|
+
accent: "#ec4899",
|
|
430
|
+
glow: "rgba(249, 115, 22, 0.3)",
|
|
431
|
+
canvasLight: "#fff7ed",
|
|
432
|
+
canvasDark: "#211106",
|
|
433
|
+
shellLight: "rgba(255, 247, 237, 0.9)",
|
|
434
|
+
shellDark: "rgba(44, 18, 10, 0.88)",
|
|
435
|
+
surfaceLight: "rgba(255, 250, 245, 0.9)",
|
|
436
|
+
surfaceDark: "rgba(68, 24, 12, 0.78)",
|
|
437
|
+
borderLight: "rgba(249, 115, 22, 0.3)",
|
|
438
|
+
borderDark: "rgba(251, 146, 60, 0.36)",
|
|
439
|
+
gradient: "radial-gradient(circle at 14% 8%, rgba(251, 146, 60, 0.38), transparent 28%), radial-gradient(circle at 88% 18%, rgba(236, 72, 153, 0.32), transparent 32%), linear-gradient(135deg, rgba(255, 247, 237, 0.96), rgba(253, 242, 248, 0.86))",
|
|
440
|
+
hero: "linear-gradient(135deg, rgba(249, 115, 22, 0.26), rgba(236, 72, 153, 0.22))"
|
|
441
|
+
},
|
|
442
|
+
oceanic: {
|
|
443
|
+
...neutralVibe,
|
|
444
|
+
id: "oceanic",
|
|
445
|
+
label: "Oceanic wave",
|
|
446
|
+
primary: "#0891b2",
|
|
447
|
+
accent: "#2563eb",
|
|
448
|
+
glow: "rgba(8, 145, 178, 0.28)",
|
|
449
|
+
canvasLight: "#ecfeff",
|
|
450
|
+
canvasDark: "#04131f",
|
|
451
|
+
shellLight: "rgba(236, 254, 255, 0.88)",
|
|
452
|
+
shellDark: "rgba(5, 26, 44, 0.88)",
|
|
453
|
+
surfaceLight: "rgba(248, 253, 255, 0.9)",
|
|
454
|
+
surfaceDark: "rgba(8, 47, 73, 0.78)",
|
|
455
|
+
borderLight: "rgba(8, 145, 178, 0.28)",
|
|
456
|
+
borderDark: "rgba(103, 232, 249, 0.28)",
|
|
457
|
+
gradient: "radial-gradient(circle at 18% 8%, rgba(34, 211, 238, 0.32), transparent 30%), radial-gradient(circle at 86% 14%, rgba(37, 99, 235, 0.28), transparent 32%), linear-gradient(135deg, rgba(236, 254, 255, 0.96), rgba(239, 246, 255, 0.9))",
|
|
458
|
+
hero: "linear-gradient(135deg, rgba(8, 145, 178, 0.24), rgba(37, 99, 235, 0.2))"
|
|
459
|
+
},
|
|
460
|
+
forest: {
|
|
461
|
+
...neutralVibe,
|
|
462
|
+
id: "forest",
|
|
463
|
+
label: "Forest signal",
|
|
464
|
+
primary: "#16a34a",
|
|
465
|
+
accent: "#84cc16",
|
|
466
|
+
glow: "rgba(22, 163, 74, 0.28)",
|
|
467
|
+
canvasLight: "#f0fdf4",
|
|
468
|
+
canvasDark: "#06180d",
|
|
469
|
+
shellLight: "rgba(240, 253, 244, 0.9)",
|
|
470
|
+
shellDark: "rgba(8, 35, 19, 0.88)",
|
|
471
|
+
surfaceLight: "rgba(250, 255, 251, 0.9)",
|
|
472
|
+
surfaceDark: "rgba(20, 83, 45, 0.72)",
|
|
473
|
+
borderLight: "rgba(22, 163, 74, 0.26)",
|
|
474
|
+
borderDark: "rgba(134, 239, 172, 0.28)",
|
|
475
|
+
gradient: "radial-gradient(circle at 18% 10%, rgba(34, 197, 94, 0.28), transparent 28%), radial-gradient(circle at 84% 14%, rgba(132, 204, 22, 0.24), transparent 30%)",
|
|
476
|
+
hero: "linear-gradient(135deg, rgba(22, 163, 74, 0.22), rgba(132, 204, 22, 0.18))"
|
|
477
|
+
},
|
|
478
|
+
ruby: {
|
|
479
|
+
...neutralVibe,
|
|
480
|
+
id: "ruby",
|
|
481
|
+
label: "Ruby spark",
|
|
482
|
+
primary: "#e11d48",
|
|
483
|
+
accent: "#f97316",
|
|
484
|
+
canvasLight: "#fff1f2",
|
|
485
|
+
canvasDark: "#22050c",
|
|
486
|
+
shellLight: "rgba(255, 241, 242, 0.9)",
|
|
487
|
+
shellDark: "rgba(50, 8, 18, 0.88)",
|
|
488
|
+
surfaceDark: "rgba(76, 20, 32, 0.76)",
|
|
489
|
+
borderLight: "rgba(225, 29, 72, 0.28)",
|
|
490
|
+
gradient: "radial-gradient(circle at 18% 8%, rgba(225, 29, 72, 0.32), transparent 28%), radial-gradient(circle at 86% 18%, rgba(249, 115, 22, 0.22), transparent 30%)",
|
|
491
|
+
hero: "linear-gradient(135deg, rgba(225, 29, 72, 0.24), rgba(249, 115, 22, 0.18))"
|
|
492
|
+
},
|
|
493
|
+
amber: {
|
|
494
|
+
...neutralVibe,
|
|
495
|
+
id: "amber",
|
|
496
|
+
label: "Amber glow",
|
|
497
|
+
primary: "#d97706",
|
|
498
|
+
accent: "#eab308",
|
|
499
|
+
canvasLight: "#fffbeb",
|
|
500
|
+
canvasDark: "#1f1604",
|
|
501
|
+
shellLight: "rgba(255, 251, 235, 0.9)",
|
|
502
|
+
shellDark: "rgba(41, 29, 6, 0.88)",
|
|
503
|
+
surfaceDark: "rgba(69, 46, 10, 0.76)",
|
|
504
|
+
borderLight: "rgba(217, 119, 6, 0.28)",
|
|
505
|
+
gradient: "radial-gradient(circle at 14% 10%, rgba(251, 191, 36, 0.34), transparent 30%), radial-gradient(circle at 84% 12%, rgba(217, 119, 6, 0.22), transparent 28%)",
|
|
506
|
+
hero: "linear-gradient(135deg, rgba(217, 119, 6, 0.22), rgba(234, 179, 8, 0.2))"
|
|
507
|
+
},
|
|
508
|
+
"neon-night": {
|
|
509
|
+
...neutralVibe,
|
|
510
|
+
id: "neon-night",
|
|
511
|
+
label: "Neon night",
|
|
512
|
+
primary: "#84cc16",
|
|
513
|
+
accent: "#22d3ee",
|
|
514
|
+
glow: "rgba(132, 204, 22, 0.34)",
|
|
515
|
+
canvasLight: "#f7fee7",
|
|
516
|
+
canvasDark: "#030712",
|
|
517
|
+
shellLight: "rgba(247, 254, 231, 0.88)",
|
|
518
|
+
shellDark: "rgba(5, 12, 24, 0.9)",
|
|
519
|
+
surfaceDark: "rgba(12, 23, 36, 0.86)",
|
|
520
|
+
borderLight: "rgba(132, 204, 22, 0.3)",
|
|
521
|
+
borderDark: "rgba(190, 242, 100, 0.34)",
|
|
522
|
+
gradient: "radial-gradient(circle at 16% 8%, rgba(132, 204, 22, 0.36), transparent 26%), radial-gradient(circle at 86% 12%, rgba(34, 211, 238, 0.28), transparent 30%), linear-gradient(135deg, rgba(3, 7, 18, 0.96), rgba(8, 47, 73, 0.74))",
|
|
523
|
+
hero: "linear-gradient(135deg, rgba(132, 204, 22, 0.28), rgba(34, 211, 238, 0.18))"
|
|
524
|
+
},
|
|
525
|
+
skyline: {
|
|
526
|
+
...neutralVibe,
|
|
527
|
+
id: "skyline",
|
|
528
|
+
label: "Skyline indigo",
|
|
529
|
+
primary: "#4f46e5",
|
|
530
|
+
accent: "#0ea5e9",
|
|
531
|
+
canvasLight: "#eef2ff",
|
|
532
|
+
canvasDark: "#0b1026",
|
|
533
|
+
shellLight: "rgba(238, 242, 255, 0.9)",
|
|
534
|
+
shellDark: "rgba(13, 20, 52, 0.88)",
|
|
535
|
+
surfaceDark: "rgba(30, 41, 86, 0.78)",
|
|
536
|
+
borderLight: "rgba(79, 70, 229, 0.28)",
|
|
537
|
+
gradient: "radial-gradient(circle at 18% 8%, rgba(79, 70, 229, 0.32), transparent 28%), radial-gradient(circle at 84% 12%, rgba(14, 165, 233, 0.28), transparent 30%)",
|
|
538
|
+
hero: "linear-gradient(135deg, rgba(79, 70, 229, 0.24), rgba(14, 165, 233, 0.18))"
|
|
539
|
+
},
|
|
540
|
+
aurora: {
|
|
541
|
+
...neutralVibe,
|
|
542
|
+
id: "aurora",
|
|
543
|
+
label: "Aurora teal",
|
|
544
|
+
primary: "#0d9488",
|
|
545
|
+
accent: "#a3e635",
|
|
546
|
+
canvasLight: "#f0fdfa",
|
|
547
|
+
canvasDark: "#04211f",
|
|
548
|
+
shellLight: "rgba(240, 253, 250, 0.9)",
|
|
549
|
+
shellDark: "rgba(5, 44, 42, 0.88)",
|
|
550
|
+
surfaceDark: "rgba(19, 78, 74, 0.76)",
|
|
551
|
+
borderLight: "rgba(13, 148, 136, 0.28)",
|
|
552
|
+
gradient: "radial-gradient(circle at 16% 8%, rgba(45, 212, 191, 0.32), transparent 28%), radial-gradient(circle at 84% 14%, rgba(163, 230, 53, 0.22), transparent 30%)",
|
|
553
|
+
hero: "linear-gradient(135deg, rgba(13, 148, 136, 0.24), rgba(163, 230, 53, 0.16))"
|
|
554
|
+
},
|
|
555
|
+
coral: {
|
|
556
|
+
...neutralVibe,
|
|
557
|
+
id: "coral",
|
|
558
|
+
label: "Coral bloom",
|
|
559
|
+
primary: "#db2777",
|
|
560
|
+
accent: "#fb7185",
|
|
561
|
+
canvasLight: "#fdf2f8",
|
|
562
|
+
canvasDark: "#251021",
|
|
563
|
+
shellLight: "rgba(253, 242, 248, 0.9)",
|
|
564
|
+
shellDark: "rgba(50, 18, 43, 0.88)",
|
|
565
|
+
surfaceDark: "rgba(80, 28, 66, 0.76)",
|
|
566
|
+
borderLight: "rgba(219, 39, 119, 0.28)",
|
|
567
|
+
gradient: "radial-gradient(circle at 16% 8%, rgba(219, 39, 119, 0.3), transparent 28%), radial-gradient(circle at 84% 14%, rgba(251, 113, 133, 0.24), transparent 30%)",
|
|
568
|
+
hero: "linear-gradient(135deg, rgba(219, 39, 119, 0.22), rgba(251, 113, 133, 0.18))"
|
|
569
|
+
},
|
|
570
|
+
mint: {
|
|
571
|
+
...neutralVibe,
|
|
572
|
+
id: "mint",
|
|
573
|
+
label: "Mint circuit",
|
|
574
|
+
primary: "#059669",
|
|
575
|
+
accent: "#14b8a6",
|
|
576
|
+
canvasLight: "#ecfdf5",
|
|
577
|
+
canvasDark: "#031c16",
|
|
578
|
+
shellLight: "rgba(236, 253, 245, 0.9)",
|
|
579
|
+
shellDark: "rgba(5, 42, 34, 0.88)",
|
|
580
|
+
surfaceDark: "rgba(6, 78, 59, 0.74)",
|
|
581
|
+
borderLight: "rgba(5, 150, 105, 0.28)",
|
|
582
|
+
gradient: "radial-gradient(circle at 16% 8%, rgba(16, 185, 129, 0.3), transparent 28%), radial-gradient(circle at 84% 14%, rgba(20, 184, 166, 0.22), transparent 30%)",
|
|
583
|
+
hero: "linear-gradient(135deg, rgba(5, 150, 105, 0.24), rgba(20, 184, 166, 0.16))"
|
|
584
|
+
},
|
|
585
|
+
orchid: {
|
|
586
|
+
...neutralVibe,
|
|
587
|
+
id: "orchid",
|
|
588
|
+
label: "Orchid signal",
|
|
589
|
+
primary: "#9333ea",
|
|
590
|
+
accent: "#ec4899",
|
|
591
|
+
canvasLight: "#faf5ff",
|
|
592
|
+
canvasDark: "#1d0b2f",
|
|
593
|
+
shellLight: "rgba(250, 245, 255, 0.9)",
|
|
594
|
+
shellDark: "rgba(39, 15, 63, 0.88)",
|
|
595
|
+
surfaceDark: "rgba(59, 25, 94, 0.78)",
|
|
596
|
+
borderLight: "rgba(147, 51, 234, 0.28)",
|
|
597
|
+
gradient: "radial-gradient(circle at 16% 8%, rgba(147, 51, 234, 0.32), transparent 28%), radial-gradient(circle at 84% 14%, rgba(236, 72, 153, 0.24), transparent 30%)",
|
|
598
|
+
hero: "linear-gradient(135deg, rgba(147, 51, 234, 0.24), rgba(236, 72, 153, 0.18))"
|
|
599
|
+
},
|
|
600
|
+
royal: {
|
|
601
|
+
...neutralVibe,
|
|
602
|
+
id: "royal",
|
|
603
|
+
label: "Royal violet",
|
|
604
|
+
primary: "#7c3aed",
|
|
605
|
+
accent: "#06b6d4",
|
|
606
|
+
canvasLight: "#f5f3ff",
|
|
607
|
+
canvasDark: "#100a2d",
|
|
608
|
+
shellLight: "rgba(245, 243, 255, 0.9)",
|
|
609
|
+
shellDark: "rgba(21, 13, 59, 0.88)",
|
|
610
|
+
surfaceDark: "rgba(46, 26, 104, 0.78)",
|
|
611
|
+
borderLight: "rgba(124, 58, 237, 0.3)",
|
|
612
|
+
gradient: "radial-gradient(circle at 15% 9%, rgba(124, 58, 237, 0.34), transparent 28%), radial-gradient(circle at 82% 12%, rgba(6, 182, 212, 0.28), transparent 30%), radial-gradient(circle at 92% 72%, rgba(236, 72, 153, 0.2), transparent 26%)",
|
|
613
|
+
hero: "linear-gradient(135deg, rgba(124, 58, 237, 0.28), rgba(6, 182, 212, 0.18), rgba(236, 72, 153, 0.18))"
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
function getGdsVibeThemes() {
|
|
617
|
+
return Object.values(vibeThemes);
|
|
618
|
+
}
|
|
619
|
+
function resolveGdsVibeTheme(id) {
|
|
620
|
+
return vibeThemes[id] ?? neutralVibe;
|
|
621
|
+
}
|
|
622
|
+
function getGdsVibeThemeCssVariables(id, colorScheme) {
|
|
623
|
+
const vibe = resolveGdsVibeTheme(id);
|
|
624
|
+
const dark = colorScheme === "dark";
|
|
625
|
+
return {
|
|
626
|
+
"--gds-vibe-primary": vibe.primary,
|
|
627
|
+
"--gds-vibe-accent": vibe.accent,
|
|
628
|
+
"--gds-vibe-glow": vibe.glow,
|
|
629
|
+
"--gds-vibe-canvas": dark ? vibe.canvasDark : vibe.canvasLight,
|
|
630
|
+
"--gds-vibe-shell": dark ? vibe.shellDark : vibe.shellLight,
|
|
631
|
+
"--gds-vibe-surface": dark ? vibe.surfaceDark : vibe.surfaceLight,
|
|
632
|
+
"--gds-vibe-border": dark ? vibe.borderDark : vibe.borderLight,
|
|
633
|
+
"--gds-vibe-text": dark ? vibe.textDark : vibe.textLight,
|
|
634
|
+
"--gds-vibe-muted": dark ? vibe.mutedDark : vibe.mutedLight,
|
|
635
|
+
"--gds-vibe-gradient": vibe.gradient,
|
|
636
|
+
"--gds-vibe-hero": vibe.hero
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
|
|
350
640
|
// src/font-lanes.ts
|
|
351
641
|
var import_core2 = require("@mantine/core");
|
|
352
642
|
var lanes = [
|
|
@@ -378,19 +668,157 @@ function applyGdsFontLane(theme, laneId) {
|
|
|
378
668
|
});
|
|
379
669
|
}
|
|
380
670
|
|
|
671
|
+
// src/theme-runtime.ts
|
|
672
|
+
var import_react = require("react");
|
|
673
|
+
var defaultStorageKey = "gds-theme-preset-selection";
|
|
674
|
+
function isThemePresetId(value) {
|
|
675
|
+
return typeof value === "string" && getGdsThemePresets().some((preset) => preset.id === value);
|
|
676
|
+
}
|
|
677
|
+
function isFontLaneId(value) {
|
|
678
|
+
return typeof value === "string" && getGdsFontLanes().some((lane) => lane.id === value);
|
|
679
|
+
}
|
|
680
|
+
function isScheme(value) {
|
|
681
|
+
return value === "light" || value === "dark" || value === "auto";
|
|
682
|
+
}
|
|
683
|
+
function resolveEffectiveScheme(preset, colorScheme) {
|
|
684
|
+
if (preset === "dark-public" || preset === "neon-night") {
|
|
685
|
+
return "dark";
|
|
686
|
+
}
|
|
687
|
+
return colorScheme;
|
|
688
|
+
}
|
|
689
|
+
function createGdsThemePresetSelection(stored = {}) {
|
|
690
|
+
const preset = isThemePresetId(stored.preset) ? stored.preset : "default";
|
|
691
|
+
const requestedColorScheme = isScheme(stored.colorScheme) ? stored.colorScheme : "light";
|
|
692
|
+
const colorScheme = resolveEffectiveScheme(preset, requestedColorScheme);
|
|
693
|
+
const fontLane = isFontLaneId(stored.fontLane) ? stored.fontLane : "inter";
|
|
694
|
+
const brandPrimary = typeof stored.brandPrimary === "string" ? stored.brandPrimary : "blue";
|
|
695
|
+
const brandFlatSurfaces = typeof stored.brandFlatSurfaces === "boolean" ? stored.brandFlatSurfaces : true;
|
|
696
|
+
const brandEditorialSerif = typeof stored.brandEditorialSerif === "boolean" ? stored.brandEditorialSerif : false;
|
|
697
|
+
const runtimeKey = `${preset}-${colorScheme}-${brandPrimary}-${brandFlatSurfaces}-${brandEditorialSerif}-${fontLane}`;
|
|
698
|
+
return {
|
|
699
|
+
preset,
|
|
700
|
+
colorScheme,
|
|
701
|
+
theme: applyGdsFontLane(resolveGdsThemePreset(preset, {
|
|
702
|
+
brandPrimary,
|
|
703
|
+
brandFlatSurfaces,
|
|
704
|
+
brandEditorialSerif
|
|
705
|
+
}), fontLane),
|
|
706
|
+
fontLane,
|
|
707
|
+
runtimeKey,
|
|
708
|
+
brandPrimary,
|
|
709
|
+
brandFlatSurfaces,
|
|
710
|
+
brandEditorialSerif
|
|
711
|
+
};
|
|
712
|
+
}
|
|
713
|
+
function readStoredSelection(storageKey, initialSelection) {
|
|
714
|
+
if (typeof window === "undefined") {
|
|
715
|
+
return createGdsThemePresetSelection(initialSelection);
|
|
716
|
+
}
|
|
717
|
+
try {
|
|
718
|
+
const stored = window.localStorage.getItem(storageKey);
|
|
719
|
+
return createGdsThemePresetSelection(stored ? JSON.parse(stored) : initialSelection);
|
|
720
|
+
} catch {
|
|
721
|
+
return createGdsThemePresetSelection(initialSelection);
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
function persistSelection(storageKey, selection) {
|
|
725
|
+
if (typeof window === "undefined") {
|
|
726
|
+
return;
|
|
727
|
+
}
|
|
728
|
+
const stored = {
|
|
729
|
+
preset: selection.preset,
|
|
730
|
+
colorScheme: selection.colorScheme,
|
|
731
|
+
fontLane: selection.fontLane,
|
|
732
|
+
runtimeKey: selection.runtimeKey,
|
|
733
|
+
brandPrimary: selection.brandPrimary,
|
|
734
|
+
brandFlatSurfaces: selection.brandFlatSurfaces,
|
|
735
|
+
brandEditorialSerif: selection.brandEditorialSerif
|
|
736
|
+
};
|
|
737
|
+
try {
|
|
738
|
+
window.localStorage.setItem(storageKey, JSON.stringify(stored));
|
|
739
|
+
} catch {
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
function resolveDocumentScheme(selection) {
|
|
743
|
+
if (selection.colorScheme !== "auto") {
|
|
744
|
+
return selection.colorScheme;
|
|
745
|
+
}
|
|
746
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
747
|
+
}
|
|
748
|
+
function applyDocumentRuntime(selection) {
|
|
749
|
+
const documentScheme = resolveDocumentScheme(selection);
|
|
750
|
+
const vibeVariables = getGdsVibeThemeCssVariables(selection.preset, documentScheme);
|
|
751
|
+
document.documentElement.setAttribute("data-mantine-color-scheme", documentScheme);
|
|
752
|
+
document.documentElement.setAttribute("data-gds-theme-preset", selection.preset);
|
|
753
|
+
document.documentElement.setAttribute("data-gds-theme-runtime", selection.runtimeKey ?? `${selection.preset}-${selection.colorScheme}`);
|
|
754
|
+
document.documentElement.setAttribute("data-gds-font-lane", selection.fontLane);
|
|
755
|
+
Object.entries(vibeVariables).forEach(([property, value]) => {
|
|
756
|
+
document.documentElement.style.setProperty(property, value);
|
|
757
|
+
});
|
|
758
|
+
}
|
|
759
|
+
function useGdsThemePresetState({
|
|
760
|
+
storageKey = defaultStorageKey,
|
|
761
|
+
initialSelection,
|
|
762
|
+
applyToDocument = true
|
|
763
|
+
} = {}) {
|
|
764
|
+
const [selection, setSelection] = (0, import_react.useState)(() => readStoredSelection(storageKey, initialSelection));
|
|
765
|
+
(0, import_react.useEffect)(() => {
|
|
766
|
+
if (applyToDocument) {
|
|
767
|
+
applyDocumentRuntime(selection);
|
|
768
|
+
}
|
|
769
|
+
persistSelection(storageKey, selection);
|
|
770
|
+
if (!applyToDocument || selection.colorScheme !== "auto") {
|
|
771
|
+
return;
|
|
772
|
+
}
|
|
773
|
+
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
774
|
+
const handleChange = () => applyDocumentRuntime(selection);
|
|
775
|
+
mediaQuery.addEventListener("change", handleChange);
|
|
776
|
+
return () => {
|
|
777
|
+
mediaQuery.removeEventListener("change", handleChange);
|
|
778
|
+
};
|
|
779
|
+
}, [applyToDocument, selection, storageKey]);
|
|
780
|
+
const setRuntimeSelection = (0, import_react.useCallback)((nextSelection) => {
|
|
781
|
+
setSelection(createGdsThemePresetSelection(nextSelection));
|
|
782
|
+
}, []);
|
|
783
|
+
const setPreset = (0, import_react.useCallback)((preset) => {
|
|
784
|
+
setSelection((current) => createGdsThemePresetSelection({ ...current, preset }));
|
|
785
|
+
}, []);
|
|
786
|
+
const setScheme = (0, import_react.useCallback)((colorScheme) => {
|
|
787
|
+
setSelection((current) => createGdsThemePresetSelection({ ...current, colorScheme }));
|
|
788
|
+
}, []);
|
|
789
|
+
const setFontLane = (0, import_react.useCallback)((fontLane) => {
|
|
790
|
+
setSelection((current) => createGdsThemePresetSelection({ ...current, fontLane }));
|
|
791
|
+
}, []);
|
|
792
|
+
const setBrandOptions = (0, import_react.useCallback)((options) => {
|
|
793
|
+
setSelection((current) => createGdsThemePresetSelection({ ...current, ...options }));
|
|
794
|
+
}, []);
|
|
795
|
+
const reset = (0, import_react.useCallback)(() => {
|
|
796
|
+
setSelection(createGdsThemePresetSelection(initialSelection));
|
|
797
|
+
}, [initialSelection]);
|
|
798
|
+
return {
|
|
799
|
+
selection,
|
|
800
|
+
setSelection: setRuntimeSelection,
|
|
801
|
+
setPreset,
|
|
802
|
+
setScheme,
|
|
803
|
+
setFontLane,
|
|
804
|
+
setBrandOptions,
|
|
805
|
+
reset
|
|
806
|
+
};
|
|
807
|
+
}
|
|
808
|
+
|
|
381
809
|
// src/GdsProvider.tsx
|
|
382
810
|
var import_core3 = require("@mantine/core");
|
|
383
811
|
var import_modals = require("@mantine/modals");
|
|
384
812
|
var import_notifications = require("@mantine/notifications");
|
|
385
813
|
|
|
386
814
|
// src/i18n.ts
|
|
387
|
-
var
|
|
388
|
-
var GdsI18nContext = (0,
|
|
815
|
+
var import_react2 = require("react");
|
|
816
|
+
var GdsI18nContext = (0, import_react2.createContext)({
|
|
389
817
|
locale: "en",
|
|
390
818
|
messages: {}
|
|
391
819
|
});
|
|
392
820
|
function useGdsTranslation() {
|
|
393
|
-
const { messages, locale } = (0,
|
|
821
|
+
const { messages, locale } = (0, import_react2.useContext)(GdsI18nContext);
|
|
394
822
|
return {
|
|
395
823
|
t: (id, defaultMessage) => messages[id] || defaultMessage,
|
|
396
824
|
locale
|
|
@@ -462,6 +890,7 @@ function showGdsNotification({
|
|
|
462
890
|
0 && (module.exports = {
|
|
463
891
|
GdsProvider,
|
|
464
892
|
applyGdsFontLane,
|
|
893
|
+
createGdsThemePresetSelection,
|
|
465
894
|
createPublicBrandTheme,
|
|
466
895
|
extendGdsTheme,
|
|
467
896
|
gdsDarkPublicTheme,
|
|
@@ -470,9 +899,13 @@ function showGdsNotification({
|
|
|
470
899
|
gdsTheme,
|
|
471
900
|
getGdsFontLanes,
|
|
472
901
|
getGdsThemePresets,
|
|
902
|
+
getGdsVibeThemeCssVariables,
|
|
903
|
+
getGdsVibeThemes,
|
|
473
904
|
resolveGdsFontLane,
|
|
474
905
|
resolveGdsThemePreset,
|
|
906
|
+
resolveGdsVibeTheme,
|
|
475
907
|
showGdsNotification,
|
|
908
|
+
useGdsThemePresetState,
|
|
476
909
|
useGdsTranslation,
|
|
477
910
|
withGdsMotion
|
|
478
911
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GdsProvider,
|
|
3
|
+
createGdsThemePresetSelection,
|
|
3
4
|
showGdsNotification,
|
|
5
|
+
useGdsThemePresetState,
|
|
4
6
|
useGdsTranslation
|
|
5
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-G42DZXE5.mjs";
|
|
6
8
|
import {
|
|
7
9
|
applyGdsFontLane,
|
|
8
10
|
createPublicBrandTheme,
|
|
@@ -13,13 +15,17 @@ import {
|
|
|
13
15
|
gdsTheme,
|
|
14
16
|
getGdsFontLanes,
|
|
15
17
|
getGdsThemePresets,
|
|
18
|
+
getGdsVibeThemeCssVariables,
|
|
19
|
+
getGdsVibeThemes,
|
|
16
20
|
resolveGdsFontLane,
|
|
17
21
|
resolveGdsThemePreset,
|
|
22
|
+
resolveGdsVibeTheme,
|
|
18
23
|
withGdsMotion
|
|
19
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-OMSQVRZK.mjs";
|
|
20
25
|
export {
|
|
21
26
|
GdsProvider,
|
|
22
27
|
applyGdsFontLane,
|
|
28
|
+
createGdsThemePresetSelection,
|
|
23
29
|
createPublicBrandTheme,
|
|
24
30
|
extendGdsTheme,
|
|
25
31
|
gdsDarkPublicTheme,
|
|
@@ -28,9 +34,13 @@ export {
|
|
|
28
34
|
gdsTheme,
|
|
29
35
|
getGdsFontLanes,
|
|
30
36
|
getGdsThemePresets,
|
|
37
|
+
getGdsVibeThemeCssVariables,
|
|
38
|
+
getGdsVibeThemes,
|
|
31
39
|
resolveGdsFontLane,
|
|
32
40
|
resolveGdsThemePreset,
|
|
41
|
+
resolveGdsVibeTheme,
|
|
33
42
|
showGdsNotification,
|
|
43
|
+
useGdsThemePresetState,
|
|
34
44
|
useGdsTranslation,
|
|
35
45
|
withGdsMotion
|
|
36
46
|
};
|
package/dist/server.d.mts
CHANGED
|
@@ -33,6 +33,43 @@ declare function resolveGdsThemePreset(id: GdsThemePresetId, options?: {
|
|
|
33
33
|
brandEditorialSerif?: boolean;
|
|
34
34
|
}): MantineThemeOverride;
|
|
35
35
|
|
|
36
|
+
interface GdsVibeTheme {
|
|
37
|
+
id: GdsThemePresetId;
|
|
38
|
+
label: string;
|
|
39
|
+
primary: string;
|
|
40
|
+
accent: string;
|
|
41
|
+
glow: string;
|
|
42
|
+
canvasLight: string;
|
|
43
|
+
canvasDark: string;
|
|
44
|
+
shellLight: string;
|
|
45
|
+
shellDark: string;
|
|
46
|
+
surfaceLight: string;
|
|
47
|
+
surfaceDark: string;
|
|
48
|
+
borderLight: string;
|
|
49
|
+
borderDark: string;
|
|
50
|
+
textLight: string;
|
|
51
|
+
textDark: string;
|
|
52
|
+
mutedLight: string;
|
|
53
|
+
mutedDark: string;
|
|
54
|
+
gradient: string;
|
|
55
|
+
hero: string;
|
|
56
|
+
}
|
|
57
|
+
declare function getGdsVibeThemes(): GdsVibeTheme[];
|
|
58
|
+
declare function resolveGdsVibeTheme(id: GdsThemePresetId): GdsVibeTheme;
|
|
59
|
+
declare function getGdsVibeThemeCssVariables(id: GdsThemePresetId, colorScheme: 'light' | 'dark'): {
|
|
60
|
+
'--gds-vibe-primary': string;
|
|
61
|
+
'--gds-vibe-accent': string;
|
|
62
|
+
'--gds-vibe-glow': string;
|
|
63
|
+
'--gds-vibe-canvas': string;
|
|
64
|
+
'--gds-vibe-shell': string;
|
|
65
|
+
'--gds-vibe-surface': string;
|
|
66
|
+
'--gds-vibe-border': string;
|
|
67
|
+
'--gds-vibe-text': string;
|
|
68
|
+
'--gds-vibe-muted': string;
|
|
69
|
+
'--gds-vibe-gradient': string;
|
|
70
|
+
'--gds-vibe-hero': string;
|
|
71
|
+
};
|
|
72
|
+
|
|
36
73
|
type GdsFontLaneId = 'inter' | 'manrope' | 'space-grotesk' | 'plus-jakarta' | 'nunito' | 'work-sans' | 'barlow' | 'dm-sans' | 'instrument-serif' | 'source-serif';
|
|
37
74
|
interface GdsFontLane {
|
|
38
75
|
id: GdsFontLaneId;
|
|
@@ -45,4 +82,4 @@ declare function getGdsFontLanes(): GdsFontLane[];
|
|
|
45
82
|
declare function resolveGdsFontLane(id: GdsFontLaneId): GdsFontLane;
|
|
46
83
|
declare function applyGdsFontLane(theme: MantineThemeOverride, laneId: GdsFontLaneId): MantineThemeOverride;
|
|
47
84
|
|
|
48
|
-
export { type GdsFontLane, type GdsFontLaneId, type GdsThemePreset, type GdsThemePresetId, applyGdsFontLane, createPublicBrandTheme, extendGdsTheme, gdsDarkPublicTheme, gdsEditorialPublicTheme, gdsFlatSurfaceTheme, gdsTheme, getGdsFontLanes, getGdsThemePresets, resolveGdsFontLane, resolveGdsThemePreset, withGdsMotion };
|
|
85
|
+
export { type GdsFontLane, type GdsFontLaneId, type GdsThemePreset, type GdsThemePresetId, type GdsVibeTheme, applyGdsFontLane, createPublicBrandTheme, extendGdsTheme, gdsDarkPublicTheme, gdsEditorialPublicTheme, gdsFlatSurfaceTheme, gdsTheme, getGdsFontLanes, getGdsThemePresets, getGdsVibeThemeCssVariables, getGdsVibeThemes, resolveGdsFontLane, resolveGdsThemePreset, resolveGdsVibeTheme, withGdsMotion };
|
package/dist/server.d.ts
CHANGED
|
@@ -33,6 +33,43 @@ declare function resolveGdsThemePreset(id: GdsThemePresetId, options?: {
|
|
|
33
33
|
brandEditorialSerif?: boolean;
|
|
34
34
|
}): MantineThemeOverride;
|
|
35
35
|
|
|
36
|
+
interface GdsVibeTheme {
|
|
37
|
+
id: GdsThemePresetId;
|
|
38
|
+
label: string;
|
|
39
|
+
primary: string;
|
|
40
|
+
accent: string;
|
|
41
|
+
glow: string;
|
|
42
|
+
canvasLight: string;
|
|
43
|
+
canvasDark: string;
|
|
44
|
+
shellLight: string;
|
|
45
|
+
shellDark: string;
|
|
46
|
+
surfaceLight: string;
|
|
47
|
+
surfaceDark: string;
|
|
48
|
+
borderLight: string;
|
|
49
|
+
borderDark: string;
|
|
50
|
+
textLight: string;
|
|
51
|
+
textDark: string;
|
|
52
|
+
mutedLight: string;
|
|
53
|
+
mutedDark: string;
|
|
54
|
+
gradient: string;
|
|
55
|
+
hero: string;
|
|
56
|
+
}
|
|
57
|
+
declare function getGdsVibeThemes(): GdsVibeTheme[];
|
|
58
|
+
declare function resolveGdsVibeTheme(id: GdsThemePresetId): GdsVibeTheme;
|
|
59
|
+
declare function getGdsVibeThemeCssVariables(id: GdsThemePresetId, colorScheme: 'light' | 'dark'): {
|
|
60
|
+
'--gds-vibe-primary': string;
|
|
61
|
+
'--gds-vibe-accent': string;
|
|
62
|
+
'--gds-vibe-glow': string;
|
|
63
|
+
'--gds-vibe-canvas': string;
|
|
64
|
+
'--gds-vibe-shell': string;
|
|
65
|
+
'--gds-vibe-surface': string;
|
|
66
|
+
'--gds-vibe-border': string;
|
|
67
|
+
'--gds-vibe-text': string;
|
|
68
|
+
'--gds-vibe-muted': string;
|
|
69
|
+
'--gds-vibe-gradient': string;
|
|
70
|
+
'--gds-vibe-hero': string;
|
|
71
|
+
};
|
|
72
|
+
|
|
36
73
|
type GdsFontLaneId = 'inter' | 'manrope' | 'space-grotesk' | 'plus-jakarta' | 'nunito' | 'work-sans' | 'barlow' | 'dm-sans' | 'instrument-serif' | 'source-serif';
|
|
37
74
|
interface GdsFontLane {
|
|
38
75
|
id: GdsFontLaneId;
|
|
@@ -45,4 +82,4 @@ declare function getGdsFontLanes(): GdsFontLane[];
|
|
|
45
82
|
declare function resolveGdsFontLane(id: GdsFontLaneId): GdsFontLane;
|
|
46
83
|
declare function applyGdsFontLane(theme: MantineThemeOverride, laneId: GdsFontLaneId): MantineThemeOverride;
|
|
47
84
|
|
|
48
|
-
export { type GdsFontLane, type GdsFontLaneId, type GdsThemePreset, type GdsThemePresetId, applyGdsFontLane, createPublicBrandTheme, extendGdsTheme, gdsDarkPublicTheme, gdsEditorialPublicTheme, gdsFlatSurfaceTheme, gdsTheme, getGdsFontLanes, getGdsThemePresets, resolveGdsFontLane, resolveGdsThemePreset, withGdsMotion };
|
|
85
|
+
export { type GdsFontLane, type GdsFontLaneId, type GdsThemePreset, type GdsThemePresetId, type GdsVibeTheme, applyGdsFontLane, createPublicBrandTheme, extendGdsTheme, gdsDarkPublicTheme, gdsEditorialPublicTheme, gdsFlatSurfaceTheme, gdsTheme, getGdsFontLanes, getGdsThemePresets, getGdsVibeThemeCssVariables, getGdsVibeThemes, resolveGdsFontLane, resolveGdsThemePreset, resolveGdsVibeTheme, withGdsMotion };
|