supadeck 0.0.1

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 (139) hide show
  1. package/README.md +338 -0
  2. package/dist/cli/export.d.ts +7 -0
  3. package/dist/cli/export.js +36 -0
  4. package/dist/cli/export.js.map +1 -0
  5. package/dist/cli/index.d.ts +14 -0
  6. package/dist/cli/index.js +104 -0
  7. package/dist/cli/index.js.map +1 -0
  8. package/dist/cli/serve.d.ts +8 -0
  9. package/dist/cli/serve.js +13 -0
  10. package/dist/cli/serve.js.map +1 -0
  11. package/dist/cli/templates.d.ts +1 -0
  12. package/dist/cli/templates.js +36 -0
  13. package/dist/cli/templates.js.map +1 -0
  14. package/dist/cli/workspace.d.ts +2 -0
  15. package/dist/cli/workspace.js +27 -0
  16. package/dist/cli/workspace.js.map +1 -0
  17. package/dist/content/parse-deck.d.ts +36 -0
  18. package/dist/content/parse-deck.js +137 -0
  19. package/dist/content/parse-deck.js.map +1 -0
  20. package/dist/content/remark-unwrap-jsx-paragraphs.d.ts +7 -0
  21. package/dist/content/remark-unwrap-jsx-paragraphs.js +64 -0
  22. package/dist/content/remark-unwrap-jsx-paragraphs.js.map +1 -0
  23. package/dist/export/pdf.d.ts +6 -0
  24. package/dist/export/pdf.js +41 -0
  25. package/dist/export/pdf.js.map +1 -0
  26. package/dist/index.d.ts +13 -0
  27. package/dist/index.js +12 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/runtime/App.d.ts +8 -0
  30. package/dist/runtime/App.js +46 -0
  31. package/dist/runtime/App.js.map +1 -0
  32. package/dist/runtime/components/Callout.d.ts +7 -0
  33. package/dist/runtime/components/Callout.js +14 -0
  34. package/dist/runtime/components/Callout.js.map +1 -0
  35. package/dist/runtime/components/Center.d.ts +4 -0
  36. package/dist/runtime/components/Center.js +5 -0
  37. package/dist/runtime/components/Center.js.map +1 -0
  38. package/dist/runtime/components/Columns.d.ts +6 -0
  39. package/dist/runtime/components/Columns.js +5 -0
  40. package/dist/runtime/components/Columns.js.map +1 -0
  41. package/dist/runtime/components/Disclosure.d.ts +6 -0
  42. package/dist/runtime/components/Disclosure.js +6 -0
  43. package/dist/runtime/components/Disclosure.js.map +1 -0
  44. package/dist/runtime/components/Frame.d.ts +5 -0
  45. package/dist/runtime/components/Frame.js +5 -0
  46. package/dist/runtime/components/Frame.js.map +1 -0
  47. package/dist/runtime/components/index.d.ts +8 -0
  48. package/dist/runtime/components/index.js +5 -0
  49. package/dist/runtime/components/index.js.map +1 -0
  50. package/dist/runtime/default-components.d.ts +3 -0
  51. package/dist/runtime/default-components.js +39 -0
  52. package/dist/runtime/default-components.js.map +1 -0
  53. package/dist/runtime/hooks/slides.d.ts +1 -0
  54. package/dist/runtime/hooks/slides.js +46 -0
  55. package/dist/runtime/hooks/slides.js.map +1 -0
  56. package/dist/runtime/index.html +12 -0
  57. package/dist/runtime/layout/DeckSlide.d.ts +2 -0
  58. package/dist/runtime/layout/DeckSlide.js +7 -0
  59. package/dist/runtime/layout/DeckSlide.js.map +1 -0
  60. package/dist/runtime/layout/SlideFrame.d.ts +2 -0
  61. package/dist/runtime/layout/SlideFrame.js +7 -0
  62. package/dist/runtime/layout/SlideFrame.js.map +1 -0
  63. package/dist/runtime/main.d.ts +1 -0
  64. package/dist/runtime/main.js +32 -0
  65. package/dist/runtime/main.js.map +1 -0
  66. package/dist/runtime/mdx-components.d.ts +2 -0
  67. package/dist/runtime/mdx-components.js +17 -0
  68. package/dist/runtime/mdx-components.js.map +1 -0
  69. package/dist/runtime/primitives/DeckChrome.d.ts +7 -0
  70. package/dist/runtime/primitives/DeckChrome.js +7 -0
  71. package/dist/runtime/primitives/DeckChrome.js.map +1 -0
  72. package/dist/runtime/primitives/DeckNavigation.d.ts +6 -0
  73. package/dist/runtime/primitives/DeckNavigation.js +5 -0
  74. package/dist/runtime/primitives/DeckNavigation.js.map +1 -0
  75. package/dist/runtime/primitives/DeckProgress.d.ts +6 -0
  76. package/dist/runtime/primitives/DeckProgress.js +6 -0
  77. package/dist/runtime/primitives/DeckProgress.js.map +1 -0
  78. package/dist/runtime/primitives/DeckTitle.d.ts +5 -0
  79. package/dist/runtime/primitives/DeckTitle.js +5 -0
  80. package/dist/runtime/primitives/DeckTitle.js.map +1 -0
  81. package/dist/runtime/public-components.d.ts +22 -0
  82. package/dist/runtime/public-components.js +24 -0
  83. package/dist/runtime/public-components.js.map +1 -0
  84. package/dist/runtime/styles/base.css +201 -0
  85. package/dist/runtime/tailwind-hmr.d.ts +18 -0
  86. package/dist/runtime/tailwind-hmr.js +68 -0
  87. package/dist/runtime/tailwind-hmr.js.map +1 -0
  88. package/dist/runtime/tailwind-sources.d.ts +4 -0
  89. package/dist/runtime/tailwind-sources.js +43 -0
  90. package/dist/runtime/tailwind-sources.js.map +1 -0
  91. package/dist/runtime/theme-components.d.ts +3 -0
  92. package/dist/runtime/theme-components.js +18 -0
  93. package/dist/runtime/theme-components.js.map +1 -0
  94. package/dist/runtime/theme-resolution.d.ts +2 -0
  95. package/dist/runtime/theme-resolution.js +63 -0
  96. package/dist/runtime/theme-resolution.js.map +1 -0
  97. package/dist/runtime/theme-types.d.ts +48 -0
  98. package/dist/runtime/theme-types.js +2 -0
  99. package/dist/runtime/theme-types.js.map +1 -0
  100. package/dist/runtime/themes/base/DefaultDeck.d.ts +2 -0
  101. package/dist/runtime/themes/base/DefaultDeck.js +11 -0
  102. package/dist/runtime/themes/base/DefaultDeck.js.map +1 -0
  103. package/dist/runtime/themes/base/theme.css +245 -0
  104. package/dist/runtime/themes/default/DefaultDeck.d.ts +2 -0
  105. package/dist/runtime/themes/default/DefaultDeck.js +11 -0
  106. package/dist/runtime/themes/default/DefaultDeck.js.map +1 -0
  107. package/dist/runtime/themes/default/DefaultThemeDeck.d.ts +2 -0
  108. package/dist/runtime/themes/default/DefaultThemeDeck.js +23 -0
  109. package/dist/runtime/themes/default/DefaultThemeDeck.js.map +1 -0
  110. package/dist/runtime/themes/default/components.d.ts +65 -0
  111. package/dist/runtime/themes/default/components.js +80 -0
  112. package/dist/runtime/themes/default/components.js.map +1 -0
  113. package/dist/runtime/themes/default/index.d.ts +4 -0
  114. package/dist/runtime/themes/default/index.js +18 -0
  115. package/dist/runtime/themes/default/index.js.map +1 -0
  116. package/dist/runtime/themes/default/theme.css +577 -0
  117. package/dist/runtime/themes/default.css +10 -0
  118. package/dist/runtime/themes/sunset/index.d.ts +4 -0
  119. package/dist/runtime/themes/sunset/index.js +13 -0
  120. package/dist/runtime/themes/sunset/index.js.map +1 -0
  121. package/dist/runtime/themes/sunset/theme.css +12 -0
  122. package/dist/runtime/themes/sunset.css +10 -0
  123. package/dist/runtime/themes/supabase/SupabaseDeck.d.ts +2 -0
  124. package/dist/runtime/themes/supabase/SupabaseDeck.js +23 -0
  125. package/dist/runtime/themes/supabase/SupabaseDeck.js.map +1 -0
  126. package/dist/runtime/themes/supabase/components.d.ts +65 -0
  127. package/dist/runtime/themes/supabase/components.js +80 -0
  128. package/dist/runtime/themes/supabase/components.js.map +1 -0
  129. package/dist/runtime/themes/supabase/index.d.ts +4 -0
  130. package/dist/runtime/themes/supabase/index.js +17 -0
  131. package/dist/runtime/themes/supabase/index.js.map +1 -0
  132. package/dist/runtime/themes/supabase/theme.css +523 -0
  133. package/dist/runtime/utils/use-current-slide.d.ts +3 -0
  134. package/dist/runtime/utils/use-current-slide.js +20 -0
  135. package/dist/runtime/utils/use-current-slide.js.map +1 -0
  136. package/dist/runtime/vite-config.d.ts +10 -0
  137. package/dist/runtime/vite-config.js +218 -0
  138. package/dist/runtime/vite-config.js.map +1 -0
  139. package/package.json +60 -0
@@ -0,0 +1,577 @@
1
+ @import "tailwindcss";
2
+
3
+ :root {
4
+ --supabase-background: #080808;
5
+ --supabase-foreground: #e0e0e0;
6
+ --supabase-heading: #ffffff;
7
+ --supabase-accent: #3ecf8e;
8
+ --supabase-muted: #888888;
9
+ --supabase-dim: #555555;
10
+ --supabase-border: rgba(255, 255, 255, 0.1);
11
+ --supabase-footer-border: rgba(255, 255, 255, 0.07);
12
+ --supabase-footer-height: 56px;
13
+ --supabase-max-width: 900px;
14
+ --supabase-wide-width: 1100px;
15
+ }
16
+
17
+ @theme {
18
+ --color-accent: var(--supabase-accent);
19
+ --color-foreground: var(--supabase-foreground);
20
+ --color-heading: var(--supabase-heading);
21
+ --color-muted: var(--supabase-muted);
22
+ --color-dim: var(--supabase-dim);
23
+ --color-border: var(--supabase-border);
24
+ --color-footer-border: var(--supabase-footer-border);
25
+ --color-footer-height: var(--supabase-footer-height);
26
+ --color-max-width: var(--supabase-max-width);
27
+ --color-wide-width: var(--supabase-wide-width);
28
+ --color-background: var(--supabase-background);
29
+ }
30
+
31
+ @layer base {
32
+ em {
33
+ color: var(--supabase-accent);
34
+ font-style: normal;
35
+ }
36
+
37
+ b {
38
+ color: var(--supabase-heading);
39
+ }
40
+ }
41
+
42
+ *,
43
+ *::before,
44
+ *::after {
45
+ box-sizing: border-box;
46
+ }
47
+
48
+ html,
49
+ body,
50
+ #root {
51
+ min-height: 100%;
52
+ margin: 0;
53
+ }
54
+
55
+ body {
56
+ min-height: 100vh;
57
+ overflow: hidden;
58
+ background: var(--supabase-background);
59
+ color: var(--supabase-foreground);
60
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
61
+ sans-serif;
62
+ user-select: none;
63
+ }
64
+
65
+ button {
66
+ font: inherit;
67
+ }
68
+
69
+ .supabase-deck-shell {
70
+ min-height: 100vh;
71
+ background: var(--supabase-background);
72
+ }
73
+
74
+ .supabase-stage {
75
+ min-height: calc(100vh - var(--supabase-footer-height));
76
+ }
77
+
78
+ .supabase-slide {
79
+ display: flex;
80
+ min-height: calc(100vh - var(--supabase-footer-height));
81
+ align-items: center;
82
+ justify-content: center;
83
+ padding: 48px 64px 72px;
84
+ }
85
+
86
+ .supabase-slide-inner {
87
+ width: 100%;
88
+ max-width: var(--supabase-max-width);
89
+ }
90
+
91
+ .supabase-slide[data-transition="fade"] .supabase-slide-inner {
92
+ animation: supabase-fade-in 0.25s ease;
93
+ }
94
+
95
+ .supabase-slide[data-transition="slide"] .supabase-slide-inner {
96
+ animation: supabase-slide-in 0.25s ease;
97
+ }
98
+
99
+ @keyframes supabase-fade-in {
100
+ from {
101
+ opacity: 0;
102
+ transform: translateY(6px);
103
+ }
104
+
105
+ to {
106
+ opacity: 1;
107
+ transform: translateY(0);
108
+ }
109
+ }
110
+
111
+ @keyframes supabase-slide-in {
112
+ from {
113
+ opacity: 0;
114
+ transform: translateX(20px);
115
+ }
116
+
117
+ to {
118
+ opacity: 1;
119
+ transform: translateX(0);
120
+ }
121
+ }
122
+
123
+ .supabase-section-slide {
124
+ display: flex;
125
+ width: 100%;
126
+ flex-direction: column;
127
+ align-items: center;
128
+ text-align: center;
129
+ }
130
+
131
+ .supabase-wide {
132
+ width: 100%;
133
+ max-width: var(--supabase-wide-width);
134
+ margin: 0 auto;
135
+ }
136
+
137
+ .supabase-wide > :first-child {
138
+ margin-top: 0;
139
+ }
140
+
141
+ .supabase-wide > :last-child {
142
+ margin-bottom: 0;
143
+ }
144
+
145
+ .supabase-mark {
146
+ flex-shrink: 0;
147
+ }
148
+
149
+ h1,
150
+ h2,
151
+ h3,
152
+ p,
153
+ ul,
154
+ ol,
155
+ blockquote,
156
+ pre,
157
+ table {
158
+ margin: 0;
159
+ }
160
+
161
+ h1 {
162
+ color: var(--supabase-heading);
163
+ font-size: clamp(2.8rem, 6vw, 3rem);
164
+ font-weight: 800;
165
+ line-height: 1.1;
166
+ letter-spacing: -0.03em;
167
+ }
168
+
169
+ h2 {
170
+ color: var(--supabase-heading);
171
+ font-size: clamp(2rem, 4vw, 2.2rem);
172
+ font-weight: 700;
173
+ letter-spacing: -0.02em;
174
+ }
175
+
176
+ h3 {
177
+ color: var(--supabase-accent);
178
+ font-size: 1.35rem;
179
+ font-weight: 600;
180
+ letter-spacing: -0.01em;
181
+ }
182
+
183
+ p,
184
+ li,
185
+ blockquote {
186
+ color: #cccccc;
187
+ font-size: 1.15rem;
188
+ line-height: 1.7;
189
+ }
190
+
191
+ .supabase-slide-inner > * + * {
192
+ margin-top: 20px;
193
+ }
194
+
195
+ .supabase-list {
196
+ @apply list-disc;
197
+ }
198
+
199
+ .supabase-list,
200
+ .supabase-list-ordered {
201
+ @apply pl-5;
202
+ }
203
+
204
+ .supabase-list > li + li,
205
+ .supabase-list-ordered > li + li {
206
+ margin-top: 0.5em;
207
+ }
208
+
209
+ .green {
210
+ color: var(--supabase-accent);
211
+ }
212
+
213
+ .bold {
214
+ color: var(--supabase-heading);
215
+ font-weight: 600;
216
+ }
217
+
218
+ .dim {
219
+ color: var(--supabase-muted);
220
+ }
221
+
222
+ .highlight {
223
+ border-radius: 4px;
224
+ background: rgba(62, 207, 142, 0.12);
225
+ padding: 2px 8px;
226
+ color: var(--supabase-accent);
227
+ }
228
+
229
+ .mono {
230
+ font-family: "SF Mono", "Fira Code", monospace;
231
+ font-size: 0.95em;
232
+ }
233
+
234
+ .strikethrough {
235
+ color: var(--supabase-dim);
236
+ text-decoration: line-through;
237
+ }
238
+
239
+ .divider {
240
+ width: 60px;
241
+ height: 3px;
242
+ border-radius: 999px;
243
+ background: var(--supabase-accent);
244
+ }
245
+
246
+ .center-divider {
247
+ margin: 20px auto;
248
+ }
249
+
250
+ .tag {
251
+ display: inline-block;
252
+ margin-bottom: 16px;
253
+ border: 1px solid rgba(62, 207, 142, 0.4);
254
+ border-radius: 4px;
255
+ padding: 3px 10px;
256
+ color: var(--supabase-accent);
257
+ font-size: 0.75rem;
258
+ font-weight: 600;
259
+ letter-spacing: 0.08em;
260
+ text-transform: uppercase;
261
+ }
262
+
263
+ .tag.red {
264
+ border-color: rgba(255, 107, 107, 0.4);
265
+ color: #ff6b6b;
266
+ }
267
+
268
+ .tag.yellow {
269
+ border-color: rgba(255, 200, 50, 0.4);
270
+ color: #ffc832;
271
+ }
272
+
273
+ .row {
274
+ display: grid;
275
+ width: 100%;
276
+ grid-template-columns: repeat(var(--supabase-columns, 3), minmax(0, 1fr));
277
+ gap: 24px;
278
+ }
279
+
280
+ .card,
281
+ .stat {
282
+ border: 1px solid var(--supabase-border);
283
+ border-radius: 12px;
284
+ padding: 28px 32px;
285
+ }
286
+
287
+ .card > * + * {
288
+ margin-top: 12px;
289
+ }
290
+
291
+ .card h3.tone-red {
292
+ color: #ff6b6b;
293
+ }
294
+
295
+ .card h3.tone-yellow {
296
+ color: #ffc832;
297
+ }
298
+
299
+ .card p,
300
+ .card li {
301
+ font-size: 1.05rem;
302
+ }
303
+
304
+ .stat-grid {
305
+ display: grid;
306
+ width: 100%;
307
+ grid-template-columns: repeat(var(--supabase-columns, 2), minmax(0, 1fr));
308
+ gap: 20px;
309
+ }
310
+
311
+ .stat-value {
312
+ margin-bottom: 6px;
313
+ color: var(--supabase-accent);
314
+ font-size: 2.6rem;
315
+ font-weight: 800;
316
+ line-height: 1;
317
+ letter-spacing: -0.03em;
318
+ }
319
+
320
+ .stat-label {
321
+ color: var(--supabase-muted);
322
+ font-size: 0.95rem;
323
+ }
324
+
325
+ .status-list {
326
+ display: flex;
327
+ flex-direction: column;
328
+ gap: 13px;
329
+ }
330
+
331
+ .status-item {
332
+ display: flex;
333
+ align-items: center;
334
+ gap: 10px;
335
+ }
336
+
337
+ .status-name {
338
+ min-width: 145px;
339
+ color: var(--supabase-foreground);
340
+ font-size: 1rem;
341
+ font-weight: 600;
342
+ }
343
+
344
+ .status-note {
345
+ color: #666666;
346
+ font-size: 0.88rem;
347
+ }
348
+
349
+ .status-badge {
350
+ display: inline-block;
351
+ width: 68px;
352
+ flex-shrink: 0;
353
+ border-radius: 3px;
354
+ padding: 2px 0;
355
+ text-align: center;
356
+ font-size: 0.66rem;
357
+ font-weight: 700;
358
+ letter-spacing: 0.07em;
359
+ text-transform: uppercase;
360
+ }
361
+
362
+ .status-badge.live {
363
+ background: rgba(62, 207, 142, 0.13);
364
+ color: var(--supabase-accent);
365
+ }
366
+
367
+ .status-badge.partial {
368
+ background: rgba(255, 200, 50, 0.13);
369
+ color: #ffc832;
370
+ }
371
+
372
+ .status-badge.planned,
373
+ .status-badge.unknown {
374
+ background: rgba(255, 255, 255, 0.05);
375
+ color: var(--supabase-dim);
376
+ }
377
+
378
+ /* ── Table ───────────────────────────────────────────── */
379
+ table {
380
+ width: 100%;
381
+ border-collapse: collapse;
382
+ margin-top: 8px;
383
+ }
384
+ th {
385
+ text-align: left;
386
+ font-size: 0.8rem;
387
+ font-weight: 600;
388
+ letter-spacing: 0.06em;
389
+ text-transform: uppercase;
390
+ color: #555;
391
+ padding: 10px 16px;
392
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
393
+ }
394
+ td {
395
+ padding: 14px 16px;
396
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
397
+ font-size: 1.05rem;
398
+ color: #ccc;
399
+ vertical-align: top;
400
+ }
401
+ tr:last-child td {
402
+ border-bottom: none;
403
+ }
404
+
405
+ .supabase-table {
406
+ width: 100%;
407
+ border-collapse: collapse;
408
+ margin-top: 8px;
409
+ }
410
+
411
+ .supabase-th {
412
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
413
+ padding: 10px 16px;
414
+ color: var(--supabase-dim);
415
+ text-align: left;
416
+ font-size: 0.8rem;
417
+ font-weight: 600;
418
+ letter-spacing: 0.06em;
419
+ text-transform: uppercase;
420
+ }
421
+
422
+ .supabase-td {
423
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
424
+ padding: 14px 16px;
425
+ vertical-align: top;
426
+ color: #cccccc;
427
+ font-size: 1.05rem;
428
+ }
429
+
430
+ .supabase-table tr:last-child .supabase-td {
431
+ border-bottom: none;
432
+ }
433
+
434
+ .supabase-link {
435
+ color: var(--supabase-accent);
436
+ }
437
+
438
+ .supabase-inline-code {
439
+ border-radius: 4px;
440
+ background: rgb(54, 54, 54);
441
+ padding: 2px 8px;
442
+ color: var(--supabase-foreground);
443
+ font-family: "SF Mono", "Fira Code", monospace;
444
+ font-size: 0.95em;
445
+ }
446
+
447
+ .supabase-pre {
448
+ overflow-x: auto;
449
+ border: 1px solid var(--supabase-border);
450
+ border-radius: 12px;
451
+ background: rgba(255, 255, 255, 0.04);
452
+ padding: 22px 24px;
453
+ }
454
+
455
+ .supabase-pre code {
456
+ background: transparent;
457
+ padding: 0;
458
+ }
459
+
460
+ .supabase-quote {
461
+ border-left: 3px solid rgba(62, 207, 142, 0.45);
462
+ padding-left: 16px;
463
+ color: var(--supabase-muted);
464
+ }
465
+
466
+ .supabase-footer {
467
+ position: fixed;
468
+ right: 0;
469
+ bottom: 0;
470
+ left: 0;
471
+ display: flex;
472
+ height: var(--supabase-footer-height);
473
+ align-items: center;
474
+ gap: 16px;
475
+ border-top: 1px solid var(--supabase-footer-border);
476
+ background: rgba(8, 8, 8, 0.95);
477
+ padding: 0 32px;
478
+ backdrop-filter: blur(8px);
479
+ }
480
+
481
+ .supabase-breadcrumb {
482
+ display: flex;
483
+ min-width: 0;
484
+ flex: 1;
485
+ align-items: center;
486
+ gap: 8px;
487
+ overflow: hidden;
488
+ }
489
+
490
+ .supabase-breadcrumb-item {
491
+ position: relative;
492
+ border: 0;
493
+ background: transparent;
494
+ padding: 0;
495
+ color: var(--supabase-dim);
496
+ white-space: nowrap;
497
+ cursor: pointer;
498
+ font-size: 0.78rem;
499
+ font-weight: 500;
500
+ letter-spacing: 0.04em;
501
+ transition: color 0.15s ease;
502
+ }
503
+
504
+ .supabase-breadcrumb-item:hover {
505
+ color: #aaaaaa;
506
+ }
507
+
508
+ .supabase-breadcrumb-item.active {
509
+ color: var(--supabase-accent);
510
+ }
511
+
512
+ .supabase-breadcrumb-item + .supabase-breadcrumb-item::before {
513
+ content: "/";
514
+ margin-right: 8px;
515
+ color: #333333;
516
+ }
517
+
518
+ .supabase-counter {
519
+ flex-shrink: 0;
520
+ color: #444444;
521
+ font-size: 0.78rem;
522
+ font-variant-numeric: tabular-nums;
523
+ }
524
+
525
+ .supabase-print-deck {
526
+ background: var(--supabase-background);
527
+ }
528
+
529
+ .supabase-slide-print {
530
+ min-height: 100vh;
531
+ break-after: page;
532
+ page-break-after: always;
533
+ }
534
+
535
+ @media (max-width: 960px) {
536
+ body {
537
+ overflow: auto;
538
+ }
539
+
540
+ .supabase-slide {
541
+ padding: 32px 24px 88px;
542
+ }
543
+
544
+ .row,
545
+ .stat-grid {
546
+ grid-template-columns: 1fr;
547
+ }
548
+
549
+ .supabase-footer {
550
+ padding: 0 20px;
551
+ }
552
+
553
+ .status-item {
554
+ flex-wrap: wrap;
555
+ }
556
+ }
557
+
558
+ @media print {
559
+ @page {
560
+ size: landscape;
561
+ margin: 0;
562
+ }
563
+
564
+ body {
565
+ overflow: visible;
566
+ }
567
+
568
+ .supabase-footer {
569
+ display: none;
570
+ }
571
+
572
+ .supabase-slide,
573
+ .supabase-slide-print {
574
+ min-height: 100vh;
575
+ padding-bottom: 48px;
576
+ }
577
+ }
@@ -0,0 +1,10 @@
1
+ :root {
2
+ --color-background: #f3f0ea;
3
+ --color-foreground: #1f1b16;
4
+ --color-muted: #6b6257;
5
+ --color-accent: #b85c38;
6
+ --color-border: rgba(31, 27, 22, 0.12);
7
+ --color-code-bg: rgba(31, 27, 22, 0.06);
8
+ --font-sans: "Instrument Sans", "Inter", sans-serif;
9
+ --font-display: "Fraunces", "Georgia", serif;
10
+ }
@@ -0,0 +1,4 @@
1
+ import type { ThemeModule } from "../../theme-types.js";
2
+ import "./theme.css";
3
+ declare const sunsetTheme: ThemeModule;
4
+ export default sunsetTheme;
@@ -0,0 +1,13 @@
1
+ import { createDefaultComponents } from "../../default-components.js";
2
+ import { DefaultDeck } from "../base/DefaultDeck.js";
3
+ import "./theme.css";
4
+ const sunsetTheme = {
5
+ Deck: DefaultDeck,
6
+ components: createDefaultComponents(),
7
+ setup({ config, rootElement, helpers }) {
8
+ rootElement.style.setProperty("--slide-aspect-ratio", helpers.parseAspectRatio(config.aspectRatio));
9
+ rootElement.dataset.transition = config.transition ?? "fade";
10
+ },
11
+ };
12
+ export default sunsetTheme;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/themes/sunset/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,GAAgB;IAC9B,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,uBAAuB,EAAE;IACrC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;QACnC,WAAW,CAAC,KAAK,CAAC,WAAW,CAC1B,sBAAsB,EACtB,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9C,CAAC;QACF,WAAW,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAChE,CAAC;CACH,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ @import "../base/theme.css";
2
+
3
+ :root {
4
+ --color-background: #120f1d;
5
+ --color-foreground: #f9f4ec;
6
+ --color-muted: #d9c7b2;
7
+ --color-accent: #ff9f68;
8
+ --color-border: rgba(249, 244, 236, 0.14);
9
+ --color-code-bg: rgba(249, 244, 236, 0.08);
10
+ --font-sans: "Sora", "Avenir Next", sans-serif;
11
+ --font-display: "Clash Display", "Trebuchet MS", sans-serif;
12
+ }
@@ -0,0 +1,10 @@
1
+ :root {
2
+ --color-background: #120f1d;
3
+ --color-foreground: #f9f4ec;
4
+ --color-muted: #d9c7b2;
5
+ --color-accent: #ff9f68;
6
+ --color-border: rgba(249, 244, 236, 0.14);
7
+ --color-code-bg: rgba(249, 244, 236, 0.08);
8
+ --font-sans: "Sora", "Avenir Next", sans-serif;
9
+ --font-display: "Clash Display", "Trebuchet MS", sans-serif;
10
+ }
@@ -0,0 +1,2 @@
1
+ import type { ThemeDeckProps } from '../../theme-types.js';
2
+ export declare function SupabaseDeck({ deck, config, slides, currentIndex, setCurrentIndex, printMode, components, helpers }: ThemeDeckProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { SupabaseMark } from './components.js';
3
+ function isSectionActive(section, currentIndex) {
4
+ return currentIndex >= section.start && currentIndex <= section.end;
5
+ }
6
+ function Footer({ currentIndex, total, sections, showSlideNumbers, onJumpToSlide }) {
7
+ return (_jsxs("footer", { className: "supabase-footer", children: [_jsx(SupabaseMark, {}), _jsx("div", { className: "supabase-breadcrumb", "aria-label": "Slide sections", children: sections?.map((section) => (_jsx("button", { className: `supabase-breadcrumb-item ${isSectionActive(section, currentIndex) ? 'active' : ''}`, type: "button", "aria-current": isSectionActive(section, currentIndex) ? 'step' : undefined, onClick: () => onJumpToSlide(section.start), children: section.label }, `${section.label}-${section.start}-${section.end}`))) }), showSlideNumbers ? (_jsxs("div", { className: "supabase-counter", children: [currentIndex + 1, " / ", total] })) : null] }));
8
+ }
9
+ function SlideShell({ slide, components, transition, printMode }) {
10
+ const Slide = slide.Component;
11
+ return (_jsx("section", { className: `supabase-slide ${printMode ? 'supabase-slide-print' : ''}`, "data-transition": transition, children: _jsx("div", { className: "supabase-slide-inner", children: _jsx(Slide, { components: components }) }) }));
12
+ }
13
+ export function SupabaseDeck({ deck, config, slides, currentIndex, setCurrentIndex, printMode, components, helpers }) {
14
+ if (printMode) {
15
+ return (_jsx("main", { className: "supabase-print-deck", "data-title": deck.config.title, children: slides.map((slide) => (_jsx(SlideShell, { slide: slide, components: components, transition: config.transition ?? 'fade', printMode: true }, slide.index))) }));
16
+ }
17
+ const activeSlide = slides[currentIndex];
18
+ if (!activeSlide) {
19
+ return null;
20
+ }
21
+ return (_jsxs("main", { className: "supabase-deck-shell", "data-title": deck.config.title, children: [_jsx("div", { className: "supabase-stage", children: _jsx(SlideShell, { slide: activeSlide, components: components, transition: config.transition ?? 'fade', printMode: false }, activeSlide.index) }), _jsx(Footer, { currentIndex: currentIndex, total: slides.length, sections: config.sections, showSlideNumbers: config.showSlideNumbers, onJumpToSlide: (nextIndex) => setCurrentIndex(helpers.clamp(nextIndex, 0, slides.length - 1)) })] }));
22
+ }
23
+ //# sourceMappingURL=SupabaseDeck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupabaseDeck.js","sourceRoot":"","sources":["../../../../src/runtime/themes/supabase/SupabaseDeck.tsx"],"names":[],"mappings":"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"}