@frontlit/page-builder 0.1.0-alpha.1 → 0.1.0-alpha.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.
Files changed (116) hide show
  1. package/README.md +38 -2
  2. package/dist/blocks/index.d.ts +35 -21
  3. package/dist/blocks/index.js +4 -3
  4. package/dist/builder/index.d.ts +8 -11
  5. package/dist/builder/index.js +7 -5
  6. package/dist/{button-C3VrMJkr.d.ts → button-OLKN3wPf.d.ts} +3 -3
  7. package/dist/{chunk-7W6Q4WA7.js → chunk-36QHCIPM.js} +252 -282
  8. package/dist/chunk-36QHCIPM.js.map +1 -0
  9. package/dist/{chunk-GTY75HW2.js → chunk-ATNM5JHI.js} +2 -2
  10. package/dist/chunk-ATNM5JHI.js.map +1 -0
  11. package/dist/chunk-BBI7UHOA.js +56 -0
  12. package/dist/chunk-BBI7UHOA.js.map +1 -0
  13. package/dist/{chunk-MO76KZY2.js → chunk-GIKTOAQS.js} +661 -423
  14. package/dist/chunk-GIKTOAQS.js.map +1 -0
  15. package/dist/chunk-HWOVSHIW.js +4 -0
  16. package/dist/{chunk-RUYOL7JZ.js.map → chunk-HWOVSHIW.js.map} +1 -1
  17. package/dist/{chunk-SSQWYMQR.js → chunk-IU4KATI2.js} +74 -129
  18. package/dist/chunk-IU4KATI2.js.map +1 -0
  19. package/dist/chunk-J7Z4UW45.js +3418 -0
  20. package/dist/chunk-J7Z4UW45.js.map +1 -0
  21. package/dist/{chunk-7KIX4WAO.js → chunk-K4WCLHMS.js} +1435 -1382
  22. package/dist/chunk-K4WCLHMS.js.map +1 -0
  23. package/dist/chunk-XU7ALPGQ.js +22 -0
  24. package/dist/chunk-XU7ALPGQ.js.map +1 -0
  25. package/dist/components/index.d.ts +33 -8
  26. package/dist/components/index.js +43 -2
  27. package/dist/components/index.js.map +1 -1
  28. package/dist/data-slots.d.ts +3 -3
  29. package/dist/data-slots.js +1 -1
  30. package/dist/fonts/archivo/archivo-latin-variable.woff2 +0 -0
  31. package/dist/fonts/hanken-grotesk/hanken-grotesk-latin-variable.woff2 +0 -0
  32. package/dist/fonts/jetbrains-mono/jetbrains-mono-latin-variable.woff2 +0 -0
  33. package/dist/fonts/spline-sans-mono/spline-sans-mono-latin-variable.woff2 +0 -0
  34. package/dist/heading-DQCxQt38.d.ts +20 -0
  35. package/dist/image-Bk8kPXwP.d.ts +52 -0
  36. package/dist/index.d.ts +18 -11
  37. package/dist/index.js +9 -7
  38. package/dist/media-CnLImjVC.d.ts +21 -0
  39. package/dist/models/index.d.ts +6 -6
  40. package/dist/models/index.js +2 -1
  41. package/dist/{page-DfVl_aHX.d.ts → page-B5Gmm-Ys.d.ts} +2 -3
  42. package/dist/primitives/index.d.ts +287 -61
  43. package/dist/primitives/index.js +2 -1
  44. package/dist/renderer/index.d.ts +12 -8
  45. package/dist/renderer/index.js +6 -4
  46. package/dist/{section-background-BgOCp5l3.d.ts → section-background-6V_LCi5e.d.ts} +1 -1
  47. package/dist/server/index.d.ts +103 -0
  48. package/dist/server/index.js +2649 -0
  49. package/dist/server/index.js.map +1 -0
  50. package/dist/server/islands/code-snippet.d.ts +17 -0
  51. package/dist/server/islands/code-snippet.js +72 -0
  52. package/dist/server/islands/code-snippet.js.map +1 -0
  53. package/dist/server/islands/email-form.d.ts +50 -0
  54. package/dist/server/islands/email-form.js +406 -0
  55. package/dist/server/islands/email-form.js.map +1 -0
  56. package/dist/server/islands/header-mobile-menu.d.ts +22 -0
  57. package/dist/server/islands/header-mobile-menu.js +422 -0
  58. package/dist/server/islands/header-mobile-menu.js.map +1 -0
  59. package/dist/server/islands/inline-embed.d.ts +28 -0
  60. package/dist/server/islands/inline-embed.js +84 -0
  61. package/dist/server/islands/inline-embed.js.map +1 -0
  62. package/dist/server/islands/marquee-track.d.ts +18 -0
  63. package/dist/server/islands/marquee-track.js +67 -0
  64. package/dist/server/islands/marquee-track.js.map +1 -0
  65. package/dist/server/islands/nav-link.d.ts +37 -0
  66. package/dist/server/islands/nav-link.js +67 -0
  67. package/dist/server/islands/nav-link.js.map +1 -0
  68. package/dist/server/islands/support-form.d.ts +17 -0
  69. package/dist/server/islands/support-form.js +469 -0
  70. package/dist/server/islands/support-form.js.map +1 -0
  71. package/dist/server/islands/theme-mode-switcher.d.ts +38 -0
  72. package/dist/server/islands/theme-mode-switcher.js +169 -0
  73. package/dist/server/islands/theme-mode-switcher.js.map +1 -0
  74. package/dist/server/islands/video-with-preview.d.ts +13 -0
  75. package/dist/server/islands/video-with-preview.js +269 -0
  76. package/dist/server/islands/video-with-preview.js.map +1 -0
  77. package/dist/server/primitives.d.ts +200 -0
  78. package/dist/server/primitives.js +888 -0
  79. package/dist/server/primitives.js.map +1 -0
  80. package/dist/server/schema.d.ts +11308 -0
  81. package/dist/server/schema.js +6179 -0
  82. package/dist/server/schema.js.map +1 -0
  83. package/dist/server/theme-CF3fIKvw.d.ts +9 -0
  84. package/dist/{theme-style-39nxXQy0.d.ts → server/theme-style-5_AGy-4V.d.ts} +43 -1
  85. package/dist/server/theme-style-BPaMwk88.d.ts +183 -0
  86. package/dist/server/theme.d.ts +28 -0
  87. package/dist/{chunk-RBJBODQP.js → server/theme.js} +903 -1243
  88. package/dist/server/theme.js.map +1 -0
  89. package/dist/server/widget-YH9BrOwY.d.ts +77 -0
  90. package/dist/styles.css +4016 -8317
  91. package/dist/theme-style-BVd5tOsc.d.ts +183 -0
  92. package/dist/theme.css +186 -191
  93. package/dist/{widget--uEOpdq3.d.ts → widget-CpE2HdgU.d.ts} +25 -18
  94. package/package.json +71 -11
  95. package/schema/page.v1.json +3855 -0
  96. package/schema/site.v1.json +3811 -0
  97. package/dist/alignment-dZDzN96G.d.ts +0 -5
  98. package/dist/chunk-7KIX4WAO.js.map +0 -1
  99. package/dist/chunk-7W6Q4WA7.js.map +0 -1
  100. package/dist/chunk-GTY75HW2.js.map +0 -1
  101. package/dist/chunk-MO76KZY2.js.map +0 -1
  102. package/dist/chunk-RBJBODQP.js.map +0 -1
  103. package/dist/chunk-RUYOL7JZ.js +0 -4
  104. package/dist/chunk-SSQWYMQR.js.map +0 -1
  105. package/dist/fonts/montserrat/montserrat-latin-100-normal.woff2 +0 -0
  106. package/dist/fonts/montserrat/montserrat-latin-200-normal.woff2 +0 -0
  107. package/dist/fonts/montserrat/montserrat-latin-300-normal.woff2 +0 -0
  108. package/dist/fonts/montserrat/montserrat-latin-400-normal.woff2 +0 -0
  109. package/dist/fonts/montserrat/montserrat-latin-500-normal.woff2 +0 -0
  110. package/dist/fonts/montserrat/montserrat-latin-600-normal.woff2 +0 -0
  111. package/dist/fonts/montserrat/montserrat-latin-700-normal.woff2 +0 -0
  112. package/dist/fonts/montserrat/montserrat-latin-800-normal.woff2 +0 -0
  113. package/dist/fonts/montserrat/montserrat-latin-900-normal.woff2 +0 -0
  114. package/dist/fonts/source-sans-3/source-sans-3-latin-400-normal.woff2 +0 -0
  115. package/dist/image-D7GlnOio.d.ts +0 -30
  116. package/dist/media-Njv378j7.d.ts +0 -13
@@ -0,0 +1,183 @@
1
+ type FontWeight = "font-thin" | "font-extralight" | "font-light" | "font-normal" | "font-medium" | "font-semibold" | "font-bold" | "font-extrabold" | "font-black";
2
+ type FontSize = "text-xs" | "text-sm" | "text-base" | "text-lg" | "text-xl" | "text-2xl" | "text-3xl" | "text-4xl" | "text-5xl" | "text-6xl" | "text-7xl" | "text-8xl" | "text-9xl";
3
+ type LineHeight = "leading-none" | "leading-tight" | "leading-snug" | "leading-normal" | "leading-relaxed" | "leading-loose";
4
+ type LetterSpacing = "tracking-tighter" | "tracking-tight" | "tracking-normal" | "tracking-wide" | "tracking-wider" | "tracking-widest";
5
+ type TextTransform = "uppercase" | "lowercase" | "capitalize" | "normal-case";
6
+ type TextDecoration = "underline" | "line-through" | "no-underline";
7
+ type TextOverflow = "truncate" | "text-ellipsis" | "text-clip";
8
+ type BorderRadius = "rounded-none" | "rounded-sm" | "rounded" | "rounded-md" | "rounded-lg" | "rounded-xl" | "rounded-2xl" | "rounded-3xl" | "rounded-full";
9
+ type Shadow = "shadow-2xs" | "shadow-xs" | "shadow-sm" | "shadow-md" | "shadow-lg" | "shadow-xl" | "shadow-2xl" | "shadow-none";
10
+ type Cursor = "cursor-not-allowed" | "cursor-default" | "cursor-pointer";
11
+ interface Typography {
12
+ fontFamily: string;
13
+ fontSize: FontSize;
14
+ fontWeight: FontWeight;
15
+ lineHeight?: LineHeight;
16
+ letterSpacing?: LetterSpacing;
17
+ textTransform?: TextTransform;
18
+ textDecoration?: TextDecoration;
19
+ textOverflow?: TextOverflow;
20
+ /**
21
+ * Fluid size in px: scales from `min` on a phone to `max` on a desktop
22
+ * and overrides `fontSize`. Honoured by the heading levels.
23
+ */
24
+ fluid?: {
25
+ min: number;
26
+ max: number;
27
+ };
28
+ }
29
+ interface Border {
30
+ width?: "border" | "border-0" | "border-2" | "border-4" | "border-8";
31
+ radius?: BorderRadius;
32
+ style?: "border-solid" | "border-dashed" | "border-dotted" | "border-double" | "border-hidden" | "border-none";
33
+ }
34
+ interface Padding {
35
+ x?: "px-0" | "px-1" | "px-2" | "px-3" | "px-4" | "px-5" | "px-6" | "px-8" | "px-10" | "px-12" | "px-16" | "px-20" | "px-24" | "px-32" | "px-40" | "px-48" | "px-56" | "px-64";
36
+ y?: "py-0" | "py-1" | "py-2" | "py-3" | "py-4" | "py-5" | "py-6" | "py-8" | "py-10" | "py-12" | "py-16" | "py-20" | "py-24" | "py-32" | "py-40" | "py-48" | "py-56" | "py-64";
37
+ }
38
+ type CustomStyle = string;
39
+ interface DisabledStyle {
40
+ color?: string;
41
+ background?: string;
42
+ border?: string;
43
+ opacity?: "opacity-50" | "opacity-75" | "opacity-100";
44
+ cursor?: Cursor;
45
+ }
46
+ interface MenuItemStyle {
47
+ padding?: Padding;
48
+ border?: Border;
49
+ custom?: CustomStyle;
50
+ }
51
+ interface MenuStyle {
52
+ padding?: Padding;
53
+ border?: Border;
54
+ shadow?: Shadow;
55
+ custom?: CustomStyle;
56
+ item?: MenuItemStyle;
57
+ }
58
+ interface SurfaceStyle {
59
+ padding?: Padding;
60
+ border?: Border;
61
+ shadow?: Shadow;
62
+ custom?: CustomStyle;
63
+ }
64
+ interface Colors {
65
+ background: string;
66
+ foreground: string;
67
+ card: string;
68
+ cardForeground: string;
69
+ popover: string;
70
+ popoverForeground: string;
71
+ primary: string;
72
+ primaryForeground: string;
73
+ secondary: string;
74
+ secondaryForeground: string;
75
+ muted: string;
76
+ mutedForeground: string;
77
+ accent: string;
78
+ accentForeground: string;
79
+ destructive: string;
80
+ border: string;
81
+ input: string;
82
+ ring: string;
83
+ chart1: string;
84
+ chart2: string;
85
+ chart3: string;
86
+ chart4: string;
87
+ chart5: string;
88
+ sidebar: string;
89
+ sidebarForeground: string;
90
+ sidebarPrimary: string;
91
+ sidebarPrimaryForeground: string;
92
+ sidebarAccent: string;
93
+ sidebarAccentForeground: string;
94
+ sidebarBorder: string;
95
+ sidebarRing: string;
96
+ shadow2xs: string;
97
+ shadowXs: string;
98
+ shadowSm: string;
99
+ shadowMd: string;
100
+ shadowLg: string;
101
+ shadowXl: string;
102
+ shadow2xl: string;
103
+ }
104
+ interface ThemeStyle {
105
+ colors: {
106
+ light: Colors;
107
+ dark: Colors;
108
+ };
109
+ typography: {
110
+ preheader: Typography;
111
+ /** Hero-sized headline. Optional for older themes; falls back to `header1`. */
112
+ display?: Typography;
113
+ header1: Typography;
114
+ header2: Typography;
115
+ header3: Typography;
116
+ header4: Typography;
117
+ subheader1: Typography;
118
+ subheader2: Typography;
119
+ text1: Typography;
120
+ text2: Typography;
121
+ link: Typography;
122
+ button: Typography;
123
+ input: Typography;
124
+ caption: Typography;
125
+ /** Code snippets. Optional; defaults to JetBrains Mono. */
126
+ code?: Typography;
127
+ };
128
+ /**
129
+ * How words wrapped in *asterisks* in a block title stand out: in the
130
+ * primary colour ("color", the default) or on a primary-coloured marker
131
+ * ("marker") for themes whose primary is close to the text colour.
132
+ */
133
+ highlight?: "color" | "marker";
134
+ interactives: {
135
+ button: {
136
+ padding?: Padding;
137
+ border?: Border;
138
+ shadow?: Shadow;
139
+ custom?: CustomStyle;
140
+ disabled?: DisabledStyle;
141
+ };
142
+ menu?: MenuStyle;
143
+ dialog?: SurfaceStyle;
144
+ popover?: SurfaceStyle;
145
+ tooltip?: SurfaceStyle;
146
+ link: {
147
+ padding?: Padding;
148
+ border?: Border;
149
+ textShadow?: string;
150
+ custom?: CustomStyle;
151
+ disabled?: DisabledStyle;
152
+ };
153
+ card: {
154
+ padding?: Padding;
155
+ border?: Border;
156
+ shadow?: Shadow;
157
+ custom?: CustomStyle;
158
+ };
159
+ input: {
160
+ borderRadius?: BorderRadius;
161
+ padding?: Padding;
162
+ border?: Border;
163
+ shadow?: Shadow;
164
+ custom?: CustomStyle;
165
+ disabled?: DisabledStyle;
166
+ };
167
+ };
168
+ structure: {
169
+ page: {
170
+ width: "max-w-2xl" | "max-w-3xl" | "max-w-4xl" | "max-w-5xl" | "max-w-6xl";
171
+ };
172
+ section: {
173
+ /** Draw a 1px hairline between sections. */
174
+ dividers?: boolean;
175
+ padding: {
176
+ x: "px-0" | "px-4" | "px-6" | "px-8" | "px-10" | "px-12" | "px-16" | "px-20" | "px-24" | "px-32" | "px-40" | "px-48" | "px-56" | "px-64";
177
+ y: "py-0" | "py-4" | "py-6" | "py-8" | "py-10" | "py-12" | "py-16" | "py-20" | "py-24" | "py-32" | "py-40" | "py-48" | "py-56" | "py-64";
178
+ };
179
+ };
180
+ };
181
+ }
182
+
183
+ export type { Border as B, Colors as C, DisabledStyle as D, MenuItemStyle as M, Padding as P, Shadow as S, ThemeStyle as T, CustomStyle as a, MenuStyle as b, SurfaceStyle as c, Typography as d };
package/dist/theme.css CHANGED
@@ -14,208 +14,203 @@
14
14
  * generate-theme-styles.ts). Scoped so it doesn't leak into a consuming
15
15
  * app's own chrome outside the page-builder-rendered subtree. */
16
16
  .pb-theme {
17
- --background: hsl(0 0% 100%);
18
- --foreground: hsl(222.2 84% 4.9%);
19
- --card: hsl(0 0% 100%);
20
- --card-foreground: hsl(222.2 84% 4.9%);
21
- --popover: hsl(0 0% 100%);
22
- --popover-foreground: hsl(222.2 84% 4.9%);
23
- --primary: hsl(222.2 47.4% 11.2%);
24
- --primary-foreground: hsl(210 40% 98%);
25
- --secondary: hsl(210 40% 96.1%);
26
- --secondary-foreground: hsl(222.2 47.4% 11.2%);
27
- --muted: hsl(210 40% 96.1%);
28
- --muted-foreground: hsl(215.4 16.3% 46.9%);
29
- --accent: hsl(210 40% 96.1%);
30
- --accent-foreground: hsl(222.2 47.4% 11.2%);
31
- --destructive: hsl(0 84.2% 60.2%);
32
- --destructive-foreground: hsl(210 40% 98%);
33
- --border: hsl(214.3 31.8% 91.4%);
34
- --input: hsl(214.3 31.8% 91.4%);
35
- --ring: hsl(222.2 84% 4.9%);
36
- --chart-1: hsl(12 76% 61%);
37
- --chart-2: hsl(173 58% 39%);
38
- --chart-3: hsl(197 37% 24%);
39
- --chart-4: hsl(43 74% 66%);
40
- --chart-5: hsl(27 87% 67%);
41
- --radius: 0.5rem;
42
- --sidebar-background: hsl(0 0% 98%);
43
- --sidebar-foreground: hsl(240 5.3% 26.1%);
44
- --sidebar-primary: hsl(240 5.9% 10%);
45
- --sidebar-primary-foreground: hsl(0 0% 98%);
46
- --sidebar-accent: hsl(240 4.8% 95.9%);
47
- --sidebar-accent-foreground: hsl(240 5.9% 10%);
48
- --sidebar-border: hsl(220 13% 91%);
49
- --sidebar-ring: hsl(217.2 91.2% 59.8%);
17
+ --background: hsl(0 0% 100%);
18
+ --foreground: hsl(222.2 84% 4.9%);
19
+ --card: hsl(0 0% 100%);
20
+ --card-foreground: hsl(222.2 84% 4.9%);
21
+ --popover: hsl(0 0% 100%);
22
+ --popover-foreground: hsl(222.2 84% 4.9%);
23
+ --primary: hsl(222.2 47.4% 11.2%);
24
+ --primary-foreground: hsl(210 40% 98%);
25
+ --secondary: hsl(210 40% 96.1%);
26
+ --secondary-foreground: hsl(222.2 47.4% 11.2%);
27
+ --muted: hsl(210 40% 96.1%);
28
+ --muted-foreground: hsl(215.4 16.3% 46.9%);
29
+ --accent: hsl(210 40% 96.1%);
30
+ --accent-foreground: hsl(222.2 47.4% 11.2%);
31
+ --destructive: hsl(0 84.2% 60.2%);
32
+ --destructive-foreground: hsl(210 40% 98%);
33
+ --border: hsl(214.3 31.8% 91.4%);
34
+ --input: hsl(214.3 31.8% 91.4%);
35
+ --ring: hsl(222.2 84% 4.9%);
36
+ --chart-1: hsl(12 76% 61%);
37
+ --chart-2: hsl(173 58% 39%);
38
+ --chart-3: hsl(197 37% 24%);
39
+ --chart-4: hsl(43 74% 66%);
40
+ --chart-5: hsl(27 87% 67%);
41
+ --radius: 0.5rem;
42
+ --sidebar-background: hsl(0 0% 98%);
43
+ --sidebar-foreground: hsl(240 5.3% 26.1%);
44
+ --sidebar-primary: hsl(240 5.9% 10%);
45
+ --sidebar-primary-foreground: hsl(0 0% 98%);
46
+ --sidebar-accent: hsl(240 4.8% 95.9%);
47
+ --sidebar-accent-foreground: hsl(240 5.9% 10%);
48
+ --sidebar-border: hsl(220 13% 91%);
49
+ --sidebar-ring: hsl(217.2 91.2% 59.8%);
50
50
  }
51
51
 
52
52
  .pb-theme:is(.dark, .dark *) {
53
- --background: hsl(222.2 84% 4.9%);
54
- --foreground: hsl(210 40% 98%);
55
- --card: hsl(222.2 84% 4.9%);
56
- --card-foreground: hsl(210 40% 98%);
57
- --popover: hsl(222.2 84% 4.9%);
58
- --popover-foreground: hsl(210 40% 98%);
59
- --primary: hsl(210 40% 98%);
60
- --primary-foreground: hsl(222.2 47.4% 11.2%);
61
- --secondary: hsl(217.2 32.6% 17.5%);
62
- --secondary-foreground: hsl(210 40% 98%);
63
- --muted: hsl(217.2 32.6% 17.5%);
64
- --muted-foreground: hsl(215 20.2% 65.1%);
65
- --accent: hsl(217.2 32.6% 17.5%);
66
- --accent-foreground: hsl(210 40% 98%);
67
- --destructive: hsl(0 62.8% 30.6%);
68
- --destructive-foreground: hsl(210 40% 98%);
69
- --border: hsl(217.2 32.6% 17.5%);
70
- --input: hsl(217.2 32.6% 17.5%);
71
- --ring: hsl(212.7 26.8% 83.9%);
72
- --chart-1: hsl(220 70% 50%);
73
- --chart-2: hsl(160 60% 45%);
74
- --chart-3: hsl(30 80% 55%);
75
- --chart-4: hsl(280 65% 60%);
76
- --chart-5: hsl(340 75% 55%);
77
- --sidebar-background: hsl(240 5.9% 10%);
78
- --sidebar-foreground: hsl(240 4.8% 95.9%);
79
- --sidebar-primary: hsl(224.3 76.3% 48%);
80
- --sidebar-primary-foreground: hsl(0 0% 100%);
81
- --sidebar-accent: hsl(240 3.7% 15.9%);
82
- --sidebar-accent-foreground: hsl(240 4.8% 95.9%);
83
- --sidebar-border: hsl(240 3.7% 15.9%);
84
- --sidebar-ring: hsl(217.2 91.2% 59.8%);
53
+ --background: hsl(222.2 84% 4.9%);
54
+ --foreground: hsl(210 40% 98%);
55
+ --card: hsl(222.2 84% 4.9%);
56
+ --card-foreground: hsl(210 40% 98%);
57
+ --popover: hsl(222.2 84% 4.9%);
58
+ --popover-foreground: hsl(210 40% 98%);
59
+ --primary: hsl(210 40% 98%);
60
+ --primary-foreground: hsl(222.2 47.4% 11.2%);
61
+ --secondary: hsl(217.2 32.6% 17.5%);
62
+ --secondary-foreground: hsl(210 40% 98%);
63
+ --muted: hsl(217.2 32.6% 17.5%);
64
+ --muted-foreground: hsl(215 20.2% 65.1%);
65
+ --accent: hsl(217.2 32.6% 17.5%);
66
+ --accent-foreground: hsl(210 40% 98%);
67
+ --destructive: hsl(0 62.8% 30.6%);
68
+ --destructive-foreground: hsl(210 40% 98%);
69
+ --border: hsl(217.2 32.6% 17.5%);
70
+ --input: hsl(217.2 32.6% 17.5%);
71
+ --ring: hsl(212.7 26.8% 83.9%);
72
+ --chart-1: hsl(220 70% 50%);
73
+ --chart-2: hsl(160 60% 45%);
74
+ --chart-3: hsl(30 80% 55%);
75
+ --chart-4: hsl(280 65% 60%);
76
+ --chart-5: hsl(340 75% 55%);
77
+ --sidebar-background: hsl(240 5.9% 10%);
78
+ --sidebar-foreground: hsl(240 4.8% 95.9%);
79
+ --sidebar-primary: hsl(224.3 76.3% 48%);
80
+ --sidebar-primary-foreground: hsl(0 0% 100%);
81
+ --sidebar-accent: hsl(240 3.7% 15.9%);
82
+ --sidebar-accent-foreground: hsl(240 4.8% 95.9%);
83
+ --sidebar-border: hsl(240 3.7% 15.9%);
84
+ --sidebar-ring: hsl(217.2 91.2% 59.8%);
85
85
  }
86
86
 
87
87
  /* Semantic token mapping. Runtime theme variables contain complete CSS
88
88
  * colors, which works consistently in both the public app and the dashboard. */
89
89
  @theme inline {
90
- --color-background: var(--background);
91
- --color-foreground: var(--foreground);
92
- --color-card: var(--card);
93
- --color-card-foreground: var(--card-foreground);
94
- --color-popover: var(--popover);
95
- --color-popover-foreground: var(--popover-foreground);
96
- --color-primary: var(--primary);
97
- --color-primary-foreground: var(--primary-foreground);
98
- --color-secondary: var(--secondary);
99
- --color-secondary-foreground: var(--secondary-foreground);
100
- --color-muted: var(--muted);
101
- --color-muted-foreground: var(--muted-foreground);
102
- --color-accent: var(--accent);
103
- --color-accent-foreground: var(--accent-foreground);
104
- --color-destructive: var(--destructive);
105
- --color-destructive-foreground: var(--destructive-foreground);
106
- --color-border: var(--border);
107
- --color-input: var(--input);
108
- --color-ring: var(--ring);
109
- --color-chart-1: var(--chart-1);
110
- --color-chart-2: var(--chart-2);
111
- --color-chart-3: var(--chart-3);
112
- --color-chart-4: var(--chart-4);
113
- --color-chart-5: var(--chart-5);
114
- --color-sidebar: var(--sidebar-background);
115
- --color-sidebar-foreground: var(--sidebar-foreground);
116
- --color-sidebar-primary: var(--sidebar-primary);
117
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
118
- --color-sidebar-accent: var(--sidebar-accent);
119
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
120
- --color-sidebar-border: var(--sidebar-border);
121
- --color-sidebar-ring: var(--sidebar-ring);
90
+ --color-background: var(--background);
91
+ --color-foreground: var(--foreground);
92
+ --color-card: var(--card);
93
+ --color-card-foreground: var(--card-foreground);
94
+ --color-popover: var(--popover);
95
+ --color-popover-foreground: var(--popover-foreground);
96
+ --color-primary: var(--primary);
97
+ --color-primary-foreground: var(--primary-foreground);
98
+ --color-secondary: var(--secondary);
99
+ --color-secondary-foreground: var(--secondary-foreground);
100
+ --color-muted: var(--muted);
101
+ --color-muted-foreground: var(--muted-foreground);
102
+ --color-accent: var(--accent);
103
+ --color-accent-foreground: var(--accent-foreground);
104
+ --color-destructive: var(--destructive);
105
+ --color-destructive-foreground: var(--destructive-foreground);
106
+ --color-border: var(--border);
107
+ --color-input: var(--input);
108
+ --color-ring: var(--ring);
109
+ --color-chart-1: var(--chart-1);
110
+ --color-chart-2: var(--chart-2);
111
+ --color-chart-3: var(--chart-3);
112
+ --color-chart-4: var(--chart-4);
113
+ --color-chart-5: var(--chart-5);
114
+ --color-sidebar: var(--sidebar-background);
115
+ --color-sidebar-foreground: var(--sidebar-foreground);
116
+ --color-sidebar-primary: var(--sidebar-primary);
117
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
118
+ --color-sidebar-accent: var(--sidebar-accent);
119
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
120
+ --color-sidebar-border: var(--sidebar-border);
121
+ --color-sidebar-ring: var(--sidebar-ring);
122
122
 
123
- --radius-lg: var(--radius);
124
- --radius-md: calc(var(--radius) - 2px);
125
- --radius-sm: calc(var(--radius) - 4px);
123
+ --radius-lg: var(--radius);
124
+ --radius-md: calc(var(--radius) - 2px);
125
+ --radius-sm: calc(var(--radius) - 4px);
126
126
 
127
- --shadow: var(--shadow);
128
- --shadow-2xs: var(--shadow-2xs);
129
- --shadow-xs: var(--shadow-xs);
130
- --shadow-sm: var(--shadow-sm);
131
- --shadow-md: var(--shadow-md);
132
- --shadow-lg: var(--shadow-lg);
133
- --shadow-xl: var(--shadow-xl);
134
- --shadow-2xl: var(--shadow-2xl);
127
+ --shadow: var(--shadow);
128
+ --shadow-2xs: var(--shadow-2xs);
129
+ --shadow-xs: var(--shadow-xs);
130
+ --shadow-sm: var(--shadow-sm);
131
+ --shadow-md: var(--shadow-md);
132
+ --shadow-lg: var(--shadow-lg);
133
+ --shadow-xl: var(--shadow-xl);
134
+ --shadow-2xl: var(--shadow-2xl);
135
135
 
136
- --font-open-sans:
137
- var(--font-open-sans, "Open Sans"), ui-sans-serif, system-ui, sans-serif,
138
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
139
- "Noto Color Emoji";
140
- --font-montserrat:
141
- var(--font-montserrat, Montserrat), ui-sans-serif, system-ui, sans-serif,
142
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
143
- "Noto Color Emoji";
144
- --font-lato:
145
- var(--font-lato, Lato), ui-sans-serif, system-ui, sans-serif,
146
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
147
- "Noto Color Emoji";
148
- --font-poppins:
149
- var(--font-poppins, Poppins), ui-sans-serif, system-ui, sans-serif,
150
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
151
- "Noto Color Emoji";
152
- --font-source-sans-3:
153
- var(--font-source-sans-3, "Source Sans 3"), ui-sans-serif, system-ui,
154
- sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
155
- "Noto Color Emoji";
156
- --font-raleway:
157
- var(--font-raleway, Raleway), ui-sans-serif, system-ui, sans-serif,
158
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
159
- "Noto Color Emoji";
160
- --font-noto-sans:
161
- var(--font-noto-sans, "Noto Sans"), ui-sans-serif, system-ui, sans-serif,
162
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
163
- "Noto Color Emoji";
164
- --font-merriweather:
165
- var(--font-merriweather, Merriweather), ui-serif, Georgia, Cambria,
166
- "Times New Roman", Times, serif;
167
- --font-inter:
168
- var(--font-inter, Inter), ui-sans-serif, system-ui, sans-serif,
169
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
170
- "Noto Color Emoji";
171
- --font-alegreya:
172
- var(--font-alegreya, Alegreya), ui-serif, Georgia, Cambria,
173
- "Times New Roman", Times, serif;
174
- --font-roboto:
175
- var(--font-roboto, Roboto), ui-sans-serif, system-ui, sans-serif,
176
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
177
- "Noto Color Emoji";
178
- --font-mulish:
179
- var(--font-mulish, Mulish), ui-sans-serif, system-ui, sans-serif,
180
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
181
- "Noto Color Emoji";
182
- --font-nunito:
183
- var(--font-nunito, Nunito), ui-sans-serif, system-ui, sans-serif,
184
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
185
- "Noto Color Emoji";
186
- --font-rubik:
187
- var(--font-rubik, Rubik), ui-sans-serif, system-ui, sans-serif,
188
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
189
- "Noto Color Emoji";
190
- --font-playfair-display:
191
- var(--font-playfair-display, "Playfair Display"), ui-serif, Georgia,
192
- Cambria, "Times New Roman", Times, serif;
193
- --font-oswald:
194
- var(--font-oswald, Oswald), ui-sans-serif, system-ui, sans-serif,
195
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
196
- "Noto Color Emoji";
197
- --font-pt-sans:
198
- var(--font-pt-sans, "PT Sans"), ui-sans-serif, system-ui, sans-serif,
199
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
200
- "Noto Color Emoji";
201
- --font-work-sans:
202
- var(--font-work-sans, "Work Sans"), ui-sans-serif, system-ui, sans-serif,
203
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
204
- "Noto Color Emoji";
205
- --font-roboto-slab:
206
- var(--font-roboto-slab, "Roboto Slab"), ui-serif, Georgia, Cambria,
207
- "Times New Roman", Times, serif;
208
- --font-source-serif-4:
209
- var(--font-source-serif-4, "Source Serif 4"), ui-serif, Georgia, Cambria,
210
- "Times New Roman", Times, serif;
211
- --font-bebas-neue:
212
- var(--font-bebas-neue, "Bebas Neue"), ui-sans-serif, system-ui, sans-serif,
213
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
214
- "Noto Color Emoji";
215
- --font-quicksand:
216
- var(--font-quicksand, Quicksand), ui-sans-serif, system-ui, sans-serif,
217
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
218
- "Noto Color Emoji";
136
+ --font-open-sans:
137
+ var(--font-open-sans, "Open Sans"), ui-sans-serif, system-ui, sans-serif,
138
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
139
+ --font-montserrat:
140
+ var(--font-montserrat, Montserrat), ui-sans-serif, system-ui, sans-serif,
141
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
142
+ --font-lato:
143
+ var(--font-lato, Lato), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
144
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
145
+ --font-poppins:
146
+ var(--font-poppins, Poppins), ui-sans-serif, system-ui, sans-serif,
147
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
148
+ --font-source-sans-3:
149
+ var(--font-source-sans-3, "Source Sans 3"), ui-sans-serif, system-ui, sans-serif,
150
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
151
+ --font-raleway:
152
+ var(--font-raleway, Raleway), ui-sans-serif, system-ui, sans-serif,
153
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
154
+ --font-noto-sans:
155
+ var(--font-noto-sans, "Noto Sans"), ui-sans-serif, system-ui, sans-serif,
156
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
157
+ --font-merriweather:
158
+ var(--font-merriweather, Merriweather), ui-serif, Georgia, Cambria,
159
+ "Times New Roman", Times, serif;
160
+ --font-inter:
161
+ var(--font-inter, Inter), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
162
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
163
+ --font-archivo:
164
+ var(--font-archivo, Archivo), ui-sans-serif, system-ui, sans-serif,
165
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
166
+ --font-jetbrains-mono:
167
+ var(--font-jetbrains-mono, "JetBrains Mono"), ui-monospace, SFMono-Regular, Menlo,
168
+ Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
169
+ --font-hanken-grotesk:
170
+ var(--font-hanken-grotesk, "Hanken Grotesk"), ui-sans-serif, system-ui, sans-serif,
171
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
172
+ --font-spline-sans-mono:
173
+ var(--font-spline-sans-mono, "Spline Sans Mono"), ui-monospace, SFMono-Regular,
174
+ Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
175
+ --font-alegreya:
176
+ var(--font-alegreya, Alegreya), ui-serif, Georgia, Cambria, "Times New Roman",
177
+ Times, serif;
178
+ --font-roboto:
179
+ var(--font-roboto, Roboto), ui-sans-serif, system-ui, sans-serif,
180
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
181
+ --font-mulish:
182
+ var(--font-mulish, Mulish), ui-sans-serif, system-ui, sans-serif,
183
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
184
+ --font-nunito:
185
+ var(--font-nunito, Nunito), ui-sans-serif, system-ui, sans-serif,
186
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
187
+ --font-rubik:
188
+ var(--font-rubik, Rubik), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
189
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
190
+ --font-playfair-display:
191
+ var(--font-playfair-display, "Playfair Display"), ui-serif, Georgia, Cambria,
192
+ "Times New Roman", Times, serif;
193
+ --font-oswald:
194
+ var(--font-oswald, Oswald), ui-sans-serif, system-ui, sans-serif,
195
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
196
+ --font-pt-sans:
197
+ var(--font-pt-sans, "PT Sans"), ui-sans-serif, system-ui, sans-serif,
198
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
199
+ --font-work-sans:
200
+ var(--font-work-sans, "Work Sans"), ui-sans-serif, system-ui, sans-serif,
201
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
202
+ --font-roboto-slab:
203
+ var(--font-roboto-slab, "Roboto Slab"), ui-serif, Georgia, Cambria,
204
+ "Times New Roman", Times, serif;
205
+ --font-source-serif-4:
206
+ var(--font-source-serif-4, "Source Serif 4"), ui-serif, Georgia, Cambria,
207
+ "Times New Roman", Times, serif;
208
+ --font-bebas-neue:
209
+ var(--font-bebas-neue, "Bebas Neue"), ui-sans-serif, system-ui, sans-serif,
210
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
211
+ --font-quicksand:
212
+ var(--font-quicksand, Quicksand), ui-sans-serif, system-ui, sans-serif,
213
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
219
214
  }
220
215
 
221
216
  /* Safelist for classes the theme system composes at runtime.