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,3 @@
1
+ export declare function parseAspectRatio(input: string | undefined): string;
2
+ export declare function clamp(value: number, min: number, max: number): number;
3
+ export declare function getHashIndex(total: number): number;
@@ -0,0 +1,20 @@
1
+ export function parseAspectRatio(input) {
2
+ const value = String(input ?? "16:9");
3
+ const parts = value.split(":").map((part) => Number(part.trim()));
4
+ if (parts.length !== 2 ||
5
+ parts.some((part) => !Number.isFinite(part) || part <= 0)) {
6
+ return "16 / 9";
7
+ }
8
+ return `${parts[0]} / ${parts[1]}`;
9
+ }
10
+ export function clamp(value, min, max) {
11
+ return Math.min(max, Math.max(min, value));
12
+ }
13
+ export function getHashIndex(total) {
14
+ const raw = Number(window.location.hash.replace("#", ""));
15
+ if (!Number.isFinite(raw) || raw < 1) {
16
+ return 0;
17
+ }
18
+ return clamp(raw - 1, 0, Math.max(total - 1, 0));
19
+ }
20
+ //# sourceMappingURL=use-current-slide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-current-slide.js","sourceRoot":"","sources":["../../../src/runtime/utils/use-current-slide.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,KAAyB;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,IACG,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAC1D,CAAC;QACA,OAAO,QAAQ,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { InlineConfig } from "vite";
2
+ interface SupadeckConfigOptions {
3
+ deckPath: string;
4
+ port?: number;
5
+ open?: boolean;
6
+ themeOverride?: string;
7
+ outputDirName?: string;
8
+ }
9
+ export declare function createSupadeckViteConfig({ deckPath, port, open, themeOverride, outputDirName, }: SupadeckConfigOptions): InlineConfig;
10
+ export {};
@@ -0,0 +1,218 @@
1
+ import fs from "node:fs/promises";
2
+ import { fileURLToPath } from "node:url";
3
+ import path from "node:path";
4
+ import tailwindcss from "@tailwindcss/vite";
5
+ import react from "@vitejs/plugin-react";
6
+ import mdx from "@mdx-js/rollup";
7
+ import { normalizePath } from "vite";
8
+ import remarkGfm from "remark-gfm";
9
+ import { parseDeck } from "../content/parse-deck.js";
10
+ import { remarkUnwrapJsxParagraphs } from "../content/remark-unwrap-jsx-paragraphs.js";
11
+ import { injectTailwindSources, isTailwindSourceFile, } from "./tailwind-sources.js";
12
+ import { collectImportedCssModules, dispatchTailwindCssUpdates, } from "./tailwind-hmr.js";
13
+ import { resolveRuntimeModulePath, resolveThemeModulePath, } from "./theme-resolution.js";
14
+ const DECK_VIRTUAL_ID = "virtual:supadeck/deck";
15
+ const DECK_VIRTUAL_RESOLVED = "\0virtual:supadeck/deck";
16
+ const THEME_ID = "virtual:supadeck/theme";
17
+ const THEME_RESOLVED = "\0virtual:supadeck/theme";
18
+ const ROOT_EXPORT_ID = "supadeck";
19
+ const ROOT_EXPORT_RESOLVED = "\0virtual:supadeck/root-export";
20
+ function toFsImport(filePath) {
21
+ return `/@fs/${normalizePath(filePath)}`;
22
+ }
23
+ function slideIdFor(deckPath, index) {
24
+ return `${normalizePath(deckPath)}?supadeck-slide=${index}`;
25
+ }
26
+ function sanitizeForTemplateLiteral(input) {
27
+ return input
28
+ .replace(/\\/g, "\\\\")
29
+ .replace(/`/g, "\\`")
30
+ .replace(/\$\{/g, "\\${");
31
+ }
32
+ function invalidateModules(context, modules, affectedModules) {
33
+ for (const module of modules) {
34
+ context.server.moduleGraph.invalidateModule(module);
35
+ affectedModules.push(module);
36
+ }
37
+ }
38
+ function createSupadeckPlugin({ deckPath, themeOverride, }) {
39
+ let lastKnownSlideCount = 0;
40
+ let lastKnownThemePath = resolveThemeModulePath(deckPath, themeOverride ?? "default", import.meta.url);
41
+ return {
42
+ name: "supadeck",
43
+ enforce: "pre",
44
+ async load(id) {
45
+ if (id === DECK_VIRTUAL_RESOLVED) {
46
+ this.addWatchFile(deckPath);
47
+ const source = await fs.readFile(deckPath, "utf8");
48
+ const deck = parseDeck(source, { themeOverride });
49
+ lastKnownSlideCount = deck.slides.length;
50
+ const imports = deck.slides
51
+ .map((slide, index) => `import Slide${index} from ${JSON.stringify(slideIdFor(deckPath, index))};`)
52
+ .join("\n");
53
+ const slides = deck.slides
54
+ .map((slide, index) => `{ index: ${index}, body: \`${sanitizeForTemplateLiteral(slide.body)}\`, Component: Slide${index} }`)
55
+ .join(",\n");
56
+ return `
57
+ ${imports}
58
+
59
+ const deck = {
60
+ config: ${JSON.stringify(deck.config)},
61
+ slides: [${slides}]
62
+ };
63
+
64
+ export default deck;
65
+ `;
66
+ }
67
+ if (id === THEME_RESOLVED) {
68
+ this.addWatchFile(deckPath);
69
+ const source = await fs.readFile(deckPath, "utf8");
70
+ const deck = parseDeck(source, { themeOverride });
71
+ lastKnownSlideCount = deck.slides.length;
72
+ lastKnownThemePath = resolveThemeModulePath(deckPath, deck.config.theme, import.meta.url);
73
+ this.addWatchFile(lastKnownThemePath);
74
+ return `import themeModule from ${JSON.stringify(toFsImport(lastKnownThemePath))};\nexport default themeModule;`;
75
+ }
76
+ if (id === ROOT_EXPORT_RESOLVED) {
77
+ const rootExportPath = resolveRuntimeModulePath(import.meta.url, "../index");
78
+ return `export * from ${JSON.stringify(toFsImport(rootExportPath))};`;
79
+ }
80
+ if (id.startsWith(`${normalizePath(deckPath)}?supadeck-slide=`)) {
81
+ this.addWatchFile(deckPath);
82
+ const source = await fs.readFile(deckPath, "utf8");
83
+ const deck = parseDeck(source, { themeOverride });
84
+ lastKnownSlideCount = deck.slides.length;
85
+ const index = Number(id.split("=").at(-1));
86
+ const slide = deck.slides[index];
87
+ if (!slide) {
88
+ throw new Error(`Slide ${index} does not exist in ${deckPath}`);
89
+ }
90
+ return `${deck.prelude}\n\n${slide.body}`;
91
+ }
92
+ return null;
93
+ },
94
+ resolveId(id) {
95
+ if (id === DECK_VIRTUAL_ID) {
96
+ return DECK_VIRTUAL_RESOLVED;
97
+ }
98
+ if (id === THEME_ID) {
99
+ return THEME_RESOLVED;
100
+ }
101
+ if (id === ROOT_EXPORT_ID) {
102
+ return ROOT_EXPORT_RESOLVED;
103
+ }
104
+ if (id.startsWith(`${normalizePath(deckPath)}?supadeck-slide=`)) {
105
+ return id;
106
+ }
107
+ return null;
108
+ },
109
+ transform(code, id) {
110
+ const [pathname] = id.split("?", 1);
111
+ if (!pathname.endsWith(".css")) {
112
+ return null;
113
+ }
114
+ return {
115
+ code: injectTailwindSources(code, deckPath),
116
+ map: null,
117
+ };
118
+ },
119
+ async handleHotUpdate(context) {
120
+ const isDeckFileChange = normalizePath(context.file) === normalizePath(deckPath);
121
+ const isWorkspaceTailwindSourceChange = isTailwindSourceFile(deckPath, context.file);
122
+ if (isDeckFileChange) {
123
+ const source = await fs.readFile(deckPath, "utf8");
124
+ const deck = parseDeck(source, { themeOverride });
125
+ const affectedModules = [];
126
+ const slideCount = Math.max(lastKnownSlideCount, deck.slides.length);
127
+ lastKnownThemePath = resolveThemeModulePath(deckPath, deck.config.theme, import.meta.url);
128
+ const themeModule = context.server.moduleGraph.getModuleById(THEME_RESOLVED);
129
+ const themeCssModules = themeModule
130
+ ? collectImportedCssModules(themeModule)
131
+ : [];
132
+ for (const moduleId of [DECK_VIRTUAL_RESOLVED, THEME_RESOLVED]) {
133
+ const module = context.server.moduleGraph.getModuleById(moduleId);
134
+ if (module) {
135
+ invalidateModules(context, [module], affectedModules);
136
+ }
137
+ }
138
+ invalidateModules(context, themeCssModules, affectedModules);
139
+ for (let index = 0; index < slideCount; index += 1) {
140
+ const module = context.server.moduleGraph.getModuleById(slideIdFor(deckPath, index));
141
+ if (module) {
142
+ invalidateModules(context, [module], affectedModules);
143
+ }
144
+ }
145
+ lastKnownSlideCount = deck.slides.length;
146
+ const cssDispatch = dispatchTailwindCssUpdates({
147
+ file: context.file,
148
+ hot: context.server.ws,
149
+ modules: themeCssModules,
150
+ timestamp: context.timestamp,
151
+ });
152
+ if (cssDispatch.kind === "full-reload") {
153
+ return [];
154
+ }
155
+ return affectedModules;
156
+ }
157
+ if (isWorkspaceTailwindSourceChange) {
158
+ const themeModule = context.server.moduleGraph.getModuleById(THEME_RESOLVED);
159
+ const themeCssModules = themeModule
160
+ ? collectImportedCssModules(themeModule)
161
+ : [];
162
+ const affectedModules = [];
163
+ invalidateModules(context, themeCssModules, affectedModules);
164
+ const cssDispatch = dispatchTailwindCssUpdates({
165
+ file: context.file,
166
+ hot: context.server.ws,
167
+ modules: themeCssModules,
168
+ timestamp: context.timestamp,
169
+ });
170
+ if (cssDispatch.kind === "full-reload") {
171
+ return [];
172
+ }
173
+ return undefined;
174
+ }
175
+ if (normalizePath(context.file) === normalizePath(lastKnownThemePath)) {
176
+ const themeModule = context.server.moduleGraph.getModuleById(THEME_RESOLVED);
177
+ if (themeModule) {
178
+ context.server.moduleGraph.invalidateModule(themeModule);
179
+ return [themeModule];
180
+ }
181
+ }
182
+ return undefined;
183
+ },
184
+ };
185
+ }
186
+ export function createSupadeckViteConfig({ deckPath, port, open, themeOverride, outputDirName = ".supadeck-dist", }) {
187
+ const runtimeRoot = fileURLToPath(new URL(".", import.meta.url));
188
+ const packageRoot = path.resolve(runtimeRoot, "..");
189
+ const workspaceRoot = path.dirname(deckPath);
190
+ return {
191
+ root: runtimeRoot,
192
+ plugins: [
193
+ createSupadeckPlugin({ deckPath, themeOverride }),
194
+ mdx({
195
+ include: [/\.mdx$/, /\.mdx\?.*$/],
196
+ remarkPlugins: [remarkGfm, remarkUnwrapJsxParagraphs],
197
+ }),
198
+ react(),
199
+ tailwindcss(),
200
+ ],
201
+ server: {
202
+ host: "127.0.0.1",
203
+ port,
204
+ open,
205
+ fs: {
206
+ allow: [runtimeRoot, packageRoot, workspaceRoot],
207
+ },
208
+ },
209
+ preview: {
210
+ host: "127.0.0.1",
211
+ },
212
+ build: {
213
+ outDir: path.resolve(workspaceRoot, outputDirName),
214
+ emptyOutDir: true,
215
+ },
216
+ };
217
+ }
218
+ //# sourceMappingURL=vite-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../src/runtime/vite-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,sBAAsB,CAAC;AACzC,OAAO,GAAG,MAAM,gBAAgB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EACJ,qBAAqB,EACrB,oBAAoB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACJ,yBAAyB,EACzB,0BAA0B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACJ,wBAAwB,EACxB,sBAAsB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAChD,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AACxD,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAC1C,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAClD,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AAE9D,SAAS,UAAU,CAAC,QAAgB;IACjC,OAAO,QAAQ,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB,EAAE,KAAa;IAChD,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,mBAAmB,KAAK,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAa;IAC9C,OAAO,KAAK;SACR,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,iBAAiB,CACvB,OAAmB,EACnB,OAA6B,EAC7B,eAA6B;IAE7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;AACJ,CAAC;AAUD,SAAS,oBAAoB,CAAC,EAC3B,QAAQ,EACR,aAAa,GAC4C;IACzD,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,kBAAkB,GAAG,sBAAsB,CAC5C,QAAQ,EACR,aAAa,IAAI,SAAS,EAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CACjB,CAAC;IAEF,OAAO;QACJ,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,KAAK;QACd,KAAK,CAAC,IAAI,CAAO,EAAE;YAChB,IAAI,EAAE,KAAK,qBAAqB,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAClD,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;qBACvB,GAAG,CACD,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACd,eAAe,KAAK,SAAS,IAAI,CAAC,SAAS,CACxC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAC7B,GAAG,CACT;qBACA,IAAI,CAAC,IAAI,CAAC,CAAC;gBACf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;qBACtB,GAAG,CACD,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACd,YAAY,KAAK,aAAa,0BAA0B,CACrD,KAAK,CAAC,IAAI,CACZ,uBAAuB,KAAK,IAAI,CACtC;qBACA,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEhB,OAAO;EACjB,OAAO;;;YAGG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;aAC1B,MAAM;;;;CAIlB,CAAC;YACO,CAAC;YAED,IAAI,EAAE,KAAK,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAClD,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzC,kBAAkB,GAAG,sBAAsB,CACxC,QAAQ,EACR,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CACjB,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBACtC,OAAO,2BAA2B,IAAI,CAAC,SAAS,CAC7C,UAAU,CAAC,kBAAkB,CAAC,CAChC,gCAAgC,CAAC;YACrC,CAAC;YAED,IAAI,EAAE,KAAK,oBAAoB,EAAE,CAAC;gBAC/B,MAAM,cAAc,GAAG,wBAAwB,CAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,EACf,UAAU,CACZ,CAAC;gBACF,OAAO,iBAAiB,IAAI,CAAC,SAAS,CACnC,UAAU,CAAC,cAAc,CAAC,CAC5B,GAAG,CAAC;YACR,CAAC;YAED,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAClD,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,sBAAsB,QAAQ,EAAE,CAAC,CAAC;gBACnE,CAAC;gBAED,OAAO,GAAG,IAAI,CAAC,OAAO,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC;YAED,OAAO,IAAI,CAAC;QACf,CAAC;QACD,SAAS,CAAC,EAAE;YACT,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC1B,OAAO,qBAAqB,CAAC;YAChC,CAAC;YACD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACnB,OAAO,cAAc,CAAC;YACzB,CAAC;YACD,IAAI,EAAE,KAAK,cAAc,EAAE,CAAC;gBACzB,OAAO,oBAAoB,CAAC;YAC/B,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/D,OAAO,EAAE,CAAC;YACb,CAAC;YACD,OAAO,IAAI,CAAC;QACf,CAAC;QACD,SAAS,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAEpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACf,CAAC;YAED,OAAO;gBACJ,IAAI,EAAE,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC3C,GAAG,EAAE,IAAI;aACX,CAAC;QACL,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,OAAO;YAC1B,MAAM,gBAAgB,GACnB,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,+BAA+B,GAAG,oBAAoB,CACzD,QAAQ,EACR,OAAO,CAAC,IAAI,CACd,CAAC;YAEF,IAAI,gBAAgB,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAClD,MAAM,eAAe,GAAiB,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACxB,mBAAmB,EACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CACpB,CAAC;gBACF,kBAAkB,GAAG,sBAAsB,CACxC,QAAQ,EACR,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CACjB,CAAC;gBACF,MAAM,WAAW,GACd,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,WAAW;oBAChC,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC;oBACxC,CAAC,CAAC,EAAE,CAAC;gBAER,KAAK,MAAM,QAAQ,IAAI,CAAC,qBAAqB,EAAE,cAAc,CAAC,EAAE,CAAC;oBAC9D,MAAM,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtD,IAAI,MAAM,EAAE,CAAC;wBACV,iBAAiB,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;oBACzD,CAAC;gBACJ,CAAC;gBAED,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;gBAE7D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;oBAClD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CACpD,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAC7B,CAAC;oBACF,IAAI,MAAM,EAAE,CAAC;wBACV,iBAAiB,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;oBACzD,CAAC;gBACJ,CAAC;gBAED,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzC,MAAM,WAAW,GAAG,0BAA0B,CAAC;oBAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;oBACtB,OAAO,EAAE,eAAe;oBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC9B,CAAC,CAAC;gBAEH,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACtC,OAAO,EAAE,CAAC;gBACb,CAAC;gBAED,OAAO,eAAe,CAAC;YAC1B,CAAC;YAED,IAAI,+BAA+B,EAAE,CAAC;gBACnC,MAAM,WAAW,GACd,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,WAAW;oBAChC,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC;oBACxC,CAAC,CAAC,EAAE,CAAC;gBACR,MAAM,eAAe,GAAiB,EAAE,CAAC;gBACzC,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;gBAE7D,MAAM,WAAW,GAAG,0BAA0B,CAAC;oBAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;oBACtB,OAAO,EAAE,eAAe;oBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC9B,CAAC,CAAC;gBAEH,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACtC,OAAO,EAAE,CAAC;gBACb,CAAC;gBAED,OAAO,SAAS,CAAC;YACpB,CAAC;YAED,IACG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,kBAAkB,CAAC,EAClE,CAAC;gBACA,MAAM,WAAW,GACd,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC5D,IAAI,WAAW,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;oBACzD,OAAO,CAAC,WAAW,CAAC,CAAC;gBACxB,CAAC;YACJ,CAAC;YAED,OAAO,SAAS,CAAC;QACpB,CAAC;KACH,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,EACtC,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,aAAa,GAAG,gBAAgB,GACX;IACrB,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO;QACJ,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACN,oBAAoB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACjD,GAAG,CAAC;gBACD,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;gBACjC,aAAa,EAAE,CAAC,SAAS,EAAE,yBAAyB,CAAC;aACvD,CAAC;YACF,KAAK,EAAE;YACP,WAAW,EAAE;SACf;QACD,MAAM,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,IAAI;YACJ,IAAI;YACJ,EAAE,EAAE;gBACD,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC;aAClD;SACH;QACD,OAAO,EAAE;YACN,IAAI,EAAE,WAAW;SACnB;QACD,KAAK,EAAE;YACJ,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;YAClD,WAAW,EAAE,IAAI;SACnB;KACH,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "supadeck",
3
+ "version": "0.0.1",
4
+ "description": "Zero-config MDX presentations with hot reload and PDF export.",
5
+ "type": "module",
6
+ "types": "./dist/index.d.ts",
7
+ "bin": {
8
+ "supadeck": "./dist/cli/index.js"
9
+ },
10
+ "exports": {
11
+ ".": "./dist/index.js"
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "README.md"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc -p tsconfig.build.json && node ./scripts/copy-static.mjs",
19
+ "dev": "SUPADECK_DEFAULT_INPUT=examples/dev tsx ./src/cli/index.ts",
20
+ "export": "SUPADECK_DEFAULT_INPUT=examples/dev tsx ./src/cli/index.ts export",
21
+ "test": "vitest run",
22
+ "typecheck": "tsc -p tsconfig.json",
23
+ "prepublishOnly": "npm run test && npm run build",
24
+ "release:patch": "npm version patch && git push && git push origin --tags && npm publish",
25
+ "release:minor": "npm version minor && git push && git push origin --tags && npm publish",
26
+ "release:major": "npm version major && git push && git push origin --tags && npm publish"
27
+ },
28
+ "keywords": [
29
+ "mdx",
30
+ "slides",
31
+ "presentations",
32
+ "vite",
33
+ "tailwind"
34
+ ],
35
+ "license": "MIT",
36
+ "dependencies": {
37
+ "@base-ui-components/react": "^1.0.0-rc.0",
38
+ "@mdx-js/rollup": "^3.1.0",
39
+ "@tailwindcss/vite": "^4.1.0",
40
+ "@vitejs/plugin-react": "^5.0.0",
41
+ "gray-matter": "^4.0.3",
42
+ "playwright": "^1.54.0",
43
+ "react": "^19.1.0",
44
+ "react-dom": "^19.1.0",
45
+ "remark-gfm": "^4.0.1",
46
+ "remark-mdx": "^3.1.0",
47
+ "remark-parse": "^11.0.0",
48
+ "tailwindcss": "^4.1.0",
49
+ "unified": "^11.0.5",
50
+ "vite": "^7.0.0"
51
+ },
52
+ "devDependencies": {
53
+ "@types/node": "^24.0.0",
54
+ "@types/react": "^19.1.0",
55
+ "@types/react-dom": "^19.1.0",
56
+ "tsx": "^4.19.0",
57
+ "typescript": "^5.8.0",
58
+ "vitest": "^3.2.4"
59
+ }
60
+ }