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,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { SlideFrame } from './SlideFrame.js';
3
+ export function DeckSlide({ slide, config, total, index, printMode, components, }) {
4
+ const Slide = slide.Component;
5
+ return (_jsx(SlideFrame, { config: config, index: index, total: total, printMode: printMode, children: _jsx(Slide, { components: components }) }));
6
+ }
7
+ //# sourceMappingURL=DeckSlide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeckSlide.js","sourceRoot":"","sources":["../../../src/runtime/layout/DeckSlide.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,UAAU,SAAS,CAAC,EACvB,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,EACT,UAAU,GACU;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CACJ,KAAC,UAAU,IACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,YAEpB,KAAC,KAAK,IAAC,UAAU,EAAE,UAAU,GAAI,GACvB,CACf,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SlideFrameProps } from '../theme-types.js';
2
+ export declare function SlideFrame({ children, config, index, total, printMode, }: SlideFrameProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { parseAspectRatio } from '../utils/use-current-slide.js';
3
+ export function SlideFrame({ children, config, index, total, printMode, }) {
4
+ const ratio = parseAspectRatio(config.aspectRatio);
5
+ return (_jsx("section", { className: `slide-frame ${printMode ? 'slide-frame-print' : ''}`, style: { '--slide-aspect-ratio': ratio }, "data-transition": config.transition, children: _jsxs("div", { className: "slide-surface", children: [_jsx("div", { className: "slide-content", children: children }), config.showSlideNumbers ? (_jsx("div", { className: "slide-footer", children: _jsxs("span", { children: [index + 1, " / ", total] }) })) : null] }) }));
6
+ }
7
+ //# sourceMappingURL=SlideFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideFrame.js","sourceRoot":"","sources":["../../../src/runtime/layout/SlideFrame.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,UAAU,UAAU,CAAC,EACxB,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,GACM;IACf,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnD,OAAO,CACJ,kBACG,SAAS,EAAE,eAAe,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,EAChE,KAAK,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAyB,qBAC9C,MAAM,CAAC,UAAU,YAElC,eAAK,SAAS,EAAC,eAAe,aAC3B,cAAK,SAAS,EAAC,eAAe,YAAE,QAAQ,GAAO,EAC9C,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CACxB,cAAK,SAAS,EAAC,cAAc,YAC1B,2BACI,KAAK,GAAG,CAAC,SAAK,KAAK,IAChB,GACJ,CACR,CAAC,CAAC,CAAC,IAAI,IACL,GACC,CACZ,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { createRoot } from "react-dom/client";
4
+ import deckModule from "virtual:supadeck/deck";
5
+ import themeModule from "virtual:supadeck/theme";
6
+ import { App } from "./App.js";
7
+ const container = document.getElementById("root");
8
+ if (!container) {
9
+ throw new Error("Unable to find the Supadeck root container.");
10
+ }
11
+ const root = createRoot(container);
12
+ let currentDeck = deckModule;
13
+ let currentTheme = themeModule;
14
+ function render(deck = currentDeck, theme = currentTheme) {
15
+ root.render(_jsx(React.StrictMode, { children: _jsx(App, { deck: deck, theme: theme }) }));
16
+ }
17
+ render();
18
+ if (import.meta.hot) {
19
+ import.meta.hot.accept("virtual:supadeck/deck", (nextModule) => {
20
+ currentDeck =
21
+ nextModule?.default ??
22
+ currentDeck;
23
+ render();
24
+ });
25
+ import.meta.hot.accept("virtual:supadeck/theme", (nextModule) => {
26
+ currentTheme =
27
+ nextModule?.default ??
28
+ currentTheme;
29
+ render();
30
+ });
31
+ }
32
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/runtime/main.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAElD,IAAI,CAAC,SAAS,EAAE,CAAC;IACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AACnC,IAAI,WAAW,GAAG,UAAU,CAAC;AAC7B,IAAI,YAAY,GAAG,WAAW,CAAC;AAE/B,SAAS,MAAM,CACZ,OAAmB,WAAW,EAC9B,QAAqB,YAAY;IAEjC,IAAI,CAAC,MAAM,CACR,KAAC,KAAK,CAAC,UAAU,cACd,KAAC,GAAG,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,GACjB,CACrB,CAAC;AACL,CAAC;AAED,MAAM,EAAE,CAAC;AAET,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC,UAAmB,EAAE,EAAE;QACrE,WAAW;YACP,UAAmD,EAAE,OAAO;gBAC7D,WAAW,CAAC;QACf,MAAM,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC,UAAmB,EAAE,EAAE;QACtE,YAAY;YACR,UAAoD,EAAE,OAAO;gBAC9D,YAAY,CAAC;QAChB,MAAM,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { MdxComponentMap } from './theme-types.js';
2
+ export declare function createDefaultMdxComponents(): MdxComponentMap;
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function createDefaultMdxComponents() {
3
+ return {
4
+ h1: (props) => (_jsx("h1", { className: "text-6xl font-semibold tracking-tight text-balance", ...props })),
5
+ h2: (props) => (_jsx("h2", { className: "text-4xl font-semibold tracking-tight text-balance", ...props })),
6
+ h3: (props) => (_jsx("h3", { className: "text-2xl font-semibold tracking-tight", ...props })),
7
+ p: (props) => (_jsx("p", { className: "text-2xl leading-relaxed text-[color:var(--color-foreground)]/90", ...props })),
8
+ a: (props) => (_jsx("a", { className: "text-[color:var(--color-accent)] underline decoration-2 underline-offset-4", ...props })),
9
+ ul: (props) => (_jsx("ul", { className: "list-disc space-y-3 pl-8 text-2xl", ...props })),
10
+ ol: (props) => (_jsx("ol", { className: "list-decimal space-y-3 pl-8 text-2xl", ...props })),
11
+ li: (props) => (_jsx("li", { className: "pl-2", ...props })),
12
+ code: (props) => (_jsx("code", { className: "rounded-md bg-black/10 px-2 py-1 font-mono text-[0.9em] dark:bg-white/10", ...props })),
13
+ pre: (props) => (_jsx("pre", { className: "overflow-x-auto rounded-[var(--radius-lg)] border border-[color:var(--color-border)] bg-[color:var(--color-code-bg)] p-6 text-lg", ...props })),
14
+ blockquote: (props) => (_jsx("blockquote", { className: "border-l-4 border-[color:var(--color-accent)] pl-6 text-2xl italic", ...props })),
15
+ };
16
+ }
17
+ //# sourceMappingURL=mdx-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdx-components.js","sourceRoot":"","sources":["../../src/runtime/mdx-components.tsx"],"names":[],"mappings":";AAGA,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACN,EAAE,EAAE,CAAC,KAAiC,EAAE,EAAE,CAAC,CACxC,aACG,SAAS,EAAC,oDAAoD,KAC1D,KAAK,GACV,CACJ;QACD,EAAE,EAAE,CAAC,KAAiC,EAAE,EAAE,CAAC,CACxC,aACG,SAAS,EAAC,oDAAoD,KAC1D,KAAK,GACV,CACJ;QACD,EAAE,EAAE,CAAC,KAAiC,EAAE,EAAE,CAAC,CACxC,aAAI,SAAS,EAAC,uCAAuC,KAAK,KAAK,GAAI,CACrE;QACD,CAAC,EAAE,CAAC,KAAgC,EAAE,EAAE,CAAC,CACtC,YACG,SAAS,EAAC,kEAAkE,KACxE,KAAK,GACV,CACJ;QACD,CAAC,EAAE,CAAC,KAAgC,EAAE,EAAE,CAAC,CACtC,YACG,SAAS,EAAC,4EAA4E,KAClF,KAAK,GACV,CACJ;QACD,EAAE,EAAE,CAAC,KAAiC,EAAE,EAAE,CAAC,CACxC,aAAI,SAAS,EAAC,mCAAmC,KAAK,KAAK,GAAI,CACjE;QACD,EAAE,EAAE,CAAC,KAAiC,EAAE,EAAE,CAAC,CACxC,aAAI,SAAS,EAAC,sCAAsC,KAAK,KAAK,GAAI,CACpE;QACD,EAAE,EAAE,CAAC,KAAiC,EAAE,EAAE,CAAC,CACxC,aAAI,SAAS,EAAC,MAAM,KAAK,KAAK,GAAI,CACpC;QACD,IAAI,EAAE,CAAC,KAAmC,EAAE,EAAE,CAAC,CAC5C,eACG,SAAS,EAAC,0EAA0E,KAChF,KAAK,GACV,CACJ;QACD,GAAG,EAAE,CAAC,KAAkC,EAAE,EAAE,CAAC,CAC1C,cACG,SAAS,EAAC,kIAAkI,KACxI,KAAK,GACV,CACJ;QACD,UAAU,EAAE,CAAC,KAAyC,EAAE,EAAE,CAAC,CACxD,qBACG,SAAS,EAAC,oEAAoE,KAC1E,KAAK,GACV,CACJ;KACD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface DeckChromeProps {
2
+ title?: string;
3
+ currentIndex: number;
4
+ total: number;
5
+ }
6
+ export declare function DeckChrome({ title, currentIndex, total }: DeckChromeProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { DeckProgress } from './DeckProgress.js';
3
+ import { DeckTitle } from './DeckTitle.js';
4
+ export function DeckChrome({ title, currentIndex, total }) {
5
+ return (_jsxs("div", { className: "deck-chrome", children: [_jsx(DeckTitle, { title: title }), _jsx(DeckProgress, { currentIndex: currentIndex, total: total })] }));
6
+ }
7
+ //# sourceMappingURL=DeckChrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeckChrome.js","sourceRoot":"","sources":["../../../src/runtime/primitives/DeckChrome.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ3C,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAmB;IACxE,OAAO,CACL,eAAK,SAAS,EAAC,aAAa,aAC1B,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,EAC3B,KAAC,YAAY,IAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,GAAI,IACtD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface DeckNavigationProps {
2
+ onPrevious: () => void;
3
+ onNext: () => void;
4
+ }
5
+ export declare function DeckNavigation({ onPrevious, onNext }: DeckNavigationProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function DeckNavigation({ onPrevious, onNext }) {
3
+ return (_jsxs("div", { className: "deck-nav", children: [_jsx("button", { className: "deck-button", type: "button", onClick: onPrevious, children: "Prev" }), _jsx("button", { className: "deck-button", type: "button", onClick: onNext, children: "Next" })] }));
4
+ }
5
+ //# sourceMappingURL=DeckNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeckNavigation.js","sourceRoot":"","sources":["../../../src/runtime/primitives/DeckNavigation.tsx"],"names":[],"mappings":";AAKA,MAAM,UAAU,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,EAAuB;IACxE,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,iBAAQ,SAAS,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,UAAU,qBAExD,EACT,iBAAQ,SAAS,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,qBAEpD,IACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface DeckProgressProps {
2
+ currentIndex: number;
3
+ total: number;
4
+ }
5
+ export declare function DeckProgress({ currentIndex, total }: DeckProgressProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function DeckProgress({ currentIndex, total }) {
3
+ const width = total > 0 ? `${((currentIndex + 1) / total) * 100}%` : '0%';
4
+ return (_jsx("div", { className: "deck-progress", children: _jsx("div", { className: "deck-progress-bar", style: { width } }) }));
5
+ }
6
+ //# sourceMappingURL=DeckProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeckProgress.js","sourceRoot":"","sources":["../../../src/runtime/primitives/DeckProgress.tsx"],"names":[],"mappings":";AAKA,MAAM,UAAU,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,EAAqB;IACrE,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,OAAO,CACL,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAI,GACnD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ interface DeckTitleProps {
2
+ title?: string;
3
+ }
4
+ export declare function DeckTitle({ title }: DeckTitleProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function DeckTitle({ title }) {
3
+ return _jsx("div", { className: "deck-title", children: title });
4
+ }
5
+ //# sourceMappingURL=DeckTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeckTitle.js","sourceRoot":"","sources":["../../../src/runtime/primitives/DeckTitle.tsx"],"names":[],"mappings":";AAIA,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAkB;IACjD,OAAO,cAAK,SAAS,EAAC,YAAY,YAAE,KAAK,GAAO,CAAC;AACnD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ type CalloutTone = 'default' | 'accent' | 'danger';
3
+ interface CalloutProps {
4
+ children: React.ReactNode;
5
+ tone?: CalloutTone;
6
+ }
7
+ interface ColumnsProps {
8
+ left: React.ReactNode;
9
+ right: React.ReactNode;
10
+ }
11
+ interface DisclosureProps {
12
+ title: React.ReactNode;
13
+ children: React.ReactNode;
14
+ }
15
+ interface FrameProps {
16
+ children: React.ReactNode;
17
+ }
18
+ export declare function Callout({ children, tone }: CalloutProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function Columns({ left, right }: ColumnsProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function Disclosure({ title, children }: DisclosureProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function Frame({ children }: FrameProps): import("react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Accordion } from '@base-ui-components/react/accordion';
3
+ function toneClasses(tone) {
4
+ if (tone === 'accent') {
5
+ return 'border-[color:var(--color-accent)] bg-[color:var(--color-accent)]/10';
6
+ }
7
+ if (tone === 'danger') {
8
+ return 'border-red-500/50 bg-red-500/10';
9
+ }
10
+ return 'border-[color:var(--color-border)] bg-white/60 dark:bg-white/5';
11
+ }
12
+ export function Callout({ children, tone = 'default' }) {
13
+ return (_jsx("div", { className: `rounded-[var(--radius-lg)] border px-6 py-5 text-xl shadow-lg shadow-black/5 backdrop-blur ${toneClasses(tone)}`, children: children }));
14
+ }
15
+ export function Columns({ left, right }) {
16
+ return _jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [left, right] });
17
+ }
18
+ export function Disclosure({ title, children }) {
19
+ return (_jsx(Accordion.Root, { className: "rounded-[var(--radius-lg)] border border-[color:var(--color-border)] bg-white/70 dark:bg-white/5", children: _jsxs(Accordion.Item, { value: "item-1", children: [_jsx(Accordion.Header, { children: _jsxs(Accordion.Trigger, { className: "flex w-full items-center justify-between px-5 py-4 text-left text-xl font-semibold", children: [_jsx("span", { children: title }), _jsx("span", { "aria-hidden": "true", children: "+" })] }) }), _jsx(Accordion.Panel, { className: "px-5 pb-5 text-lg text-[color:var(--color-foreground)]/80", children: children })] }) }));
20
+ }
21
+ export function Frame({ children }) {
22
+ return (_jsx("div", { className: "rounded-[var(--radius-xl)] border border-[color:var(--color-border)] bg-white/70 p-8 shadow-xl shadow-black/10 dark:bg-white/5", children: children }));
23
+ }
24
+ //# sourceMappingURL=public-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-components.js","sourceRoot":"","sources":["../../src/runtime/public-components.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAuBhE,SAAS,WAAW,CAAC,IAAiB;IACpC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,sEAAsE,CAAC;IAChF,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,OAAO,gEAAgE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,SAAS,EAAgB;IAClE,OAAO,CACL,cACE,SAAS,EAAE,8FAA8F,WAAW,CAClH,IAAI,CACL,EAAE,YAEF,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB;IACnD,OAAO,eAAK,SAAS,EAAC,2BAA2B,aAAE,IAAI,EAAE,KAAK,IAAO,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAmB;IAC7D,OAAO,CACL,KAAC,SAAS,CAAC,IAAI,IAAC,SAAS,EAAC,kGAAkG,YAC1H,MAAC,SAAS,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aAC5B,KAAC,SAAS,CAAC,MAAM,cACf,MAAC,SAAS,CAAC,OAAO,IAAC,SAAS,EAAC,oFAAoF,aAC/G,yBAAO,KAAK,GAAQ,EACpB,8BAAkB,MAAM,kBAAS,IACf,GACH,EACnB,KAAC,SAAS,CAAC,KAAK,IAAC,SAAS,EAAC,2DAA2D,YACnF,QAAQ,GACO,IACH,GACF,CAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAc;IAC5C,OAAO,CACL,cAAK,SAAS,EAAC,gIAAgI,YAC5I,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,201 @@
1
+ @import "tailwindcss";
2
+
3
+ :root {
4
+ --color-background: #f3f0ea;
5
+ --color-foreground: #1f1b16;
6
+ --color-muted: #6b6257;
7
+ --color-accent: #b85c38;
8
+ --color-border: rgba(31, 27, 22, 0.12);
9
+ --color-code-bg: rgba(31, 27, 22, 0.06);
10
+ --radius-lg: 1.5rem;
11
+ --radius-xl: 2.25rem;
12
+ --font-sans: "Instrument Sans", "Inter", sans-serif;
13
+ --font-display: "Fraunces", "Georgia", serif;
14
+ --slide-aspect-ratio: 16 / 9;
15
+ }
16
+
17
+ * {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ html,
22
+ body,
23
+ #root {
24
+ min-height: 100%;
25
+ margin: 0;
26
+ }
27
+
28
+ body {
29
+ min-height: 100vh;
30
+ font-family: var(--font-sans);
31
+ color: var(--color-foreground);
32
+ background:
33
+ radial-gradient(circle at top left, color-mix(in srgb, var(--color-accent) 16%, transparent), transparent 28%),
34
+ linear-gradient(145deg, color-mix(in srgb, var(--color-background) 92%, white), var(--color-background));
35
+ }
36
+
37
+ button {
38
+ font: inherit;
39
+ }
40
+
41
+ .app-shell {
42
+ display: grid;
43
+ min-height: 100vh;
44
+ grid-template-rows: auto 1fr auto;
45
+ gap: 1.5rem;
46
+ padding: 1.5rem;
47
+ }
48
+
49
+ .deck-chrome {
50
+ display: grid;
51
+ gap: 0.75rem;
52
+ }
53
+
54
+ .deck-title {
55
+ font-family: var(--font-display);
56
+ font-size: 1rem;
57
+ font-weight: 700;
58
+ letter-spacing: 0.18em;
59
+ text-transform: uppercase;
60
+ color: var(--color-muted);
61
+ }
62
+
63
+ .deck-progress {
64
+ overflow: hidden;
65
+ height: 0.4rem;
66
+ border-radius: 999px;
67
+ background: color-mix(in srgb, var(--color-foreground) 10%, transparent);
68
+ }
69
+
70
+ .deck-progress-bar {
71
+ height: 100%;
72
+ border-radius: inherit;
73
+ background: linear-gradient(90deg, var(--color-accent), color-mix(in srgb, var(--color-accent) 55%, white));
74
+ transition: width 240ms ease;
75
+ }
76
+
77
+ .deck-stage {
78
+ display: grid;
79
+ place-items: center;
80
+ }
81
+
82
+ .slide-frame {
83
+ width: min(100%, 1440px);
84
+ aspect-ratio: var(--slide-aspect-ratio);
85
+ transition: transform 220ms ease, opacity 220ms ease;
86
+ }
87
+
88
+ .slide-surface {
89
+ display: grid;
90
+ grid-template-rows: 1fr auto;
91
+ height: 100%;
92
+ overflow: hidden;
93
+ border: 1px solid var(--color-border);
94
+ border-radius: var(--radius-xl);
95
+ background:
96
+ linear-gradient(180deg, color-mix(in srgb, var(--color-background) 96%, white), color-mix(in srgb, var(--color-background) 86%, transparent)),
97
+ radial-gradient(circle at top right, color-mix(in srgb, var(--color-accent) 10%, transparent), transparent 32%);
98
+ box-shadow:
99
+ 0 30px 80px rgba(15, 23, 42, 0.16),
100
+ inset 0 1px 0 rgba(255, 255, 255, 0.45);
101
+ }
102
+
103
+ .slide-content {
104
+ display: flex;
105
+ flex-direction: column;
106
+ justify-content: center;
107
+ gap: 1.5rem;
108
+ padding: clamp(1.5rem, 4vw, 4rem);
109
+ }
110
+
111
+ .slide-content > :first-child {
112
+ margin-top: 0;
113
+ }
114
+
115
+ .slide-content > :last-child {
116
+ margin-bottom: 0;
117
+ }
118
+
119
+ .slide-footer {
120
+ display: flex;
121
+ justify-content: flex-end;
122
+ padding: 1.25rem 1.5rem;
123
+ color: var(--color-muted);
124
+ font-size: 0.95rem;
125
+ letter-spacing: 0.12em;
126
+ text-transform: uppercase;
127
+ }
128
+
129
+ .deck-nav {
130
+ display: flex;
131
+ justify-content: flex-end;
132
+ gap: 0.75rem;
133
+ }
134
+
135
+ .deck-button {
136
+ border: 1px solid var(--color-border);
137
+ border-radius: 999px;
138
+ background: color-mix(in srgb, var(--color-background) 88%, white);
139
+ padding: 0.8rem 1.1rem;
140
+ color: var(--color-foreground);
141
+ transition: transform 160ms ease, background 160ms ease;
142
+ }
143
+
144
+ .deck-button:hover {
145
+ transform: translateY(-1px);
146
+ background: color-mix(in srgb, var(--color-background) 80%, white);
147
+ }
148
+
149
+ .print-deck {
150
+ display: grid;
151
+ gap: 0;
152
+ }
153
+
154
+ .slide-frame-print {
155
+ width: 100vw;
156
+ min-height: 100vh;
157
+ page-break-after: always;
158
+ break-after: page;
159
+ padding: 0;
160
+ }
161
+
162
+ .slide-frame-print .slide-surface {
163
+ border-radius: 0;
164
+ box-shadow: none;
165
+ min-height: 100vh;
166
+ }
167
+
168
+ @media (max-width: 900px) {
169
+ .app-shell {
170
+ padding: 1rem;
171
+ }
172
+
173
+ .slide-frame {
174
+ width: 100%;
175
+ }
176
+
177
+ .slide-content {
178
+ padding: 1.25rem;
179
+ }
180
+ }
181
+
182
+ @media print {
183
+ @page {
184
+ size: landscape;
185
+ margin: 0;
186
+ }
187
+
188
+ body {
189
+ background: white;
190
+ }
191
+
192
+ .slide-frame-print {
193
+ width: 100%;
194
+ height: 100vh;
195
+ min-height: 100vh;
196
+ }
197
+
198
+ .slide-frame-print .slide-surface {
199
+ border: none;
200
+ }
201
+ }
@@ -0,0 +1,18 @@
1
+ import type { FullReloadPayload, HotPayload, ModuleNode, UpdatePayload } from 'vite';
2
+ export interface HotChannelLike {
3
+ send(payload: HotPayload): void;
4
+ }
5
+ export interface CssUpdateDispatchResult {
6
+ kind: 'css-update' | 'full-reload';
7
+ updateCount: number;
8
+ }
9
+ export declare function isCssModule(module: ModuleNode): boolean;
10
+ export declare function collectImportedCssModules(rootModule: ModuleNode): ModuleNode[];
11
+ export declare function createCssUpdatePayload(modules: Iterable<ModuleNode>, timestamp: number): UpdatePayload;
12
+ export declare function createFullReloadPayload(file: string): FullReloadPayload;
13
+ export declare function dispatchTailwindCssUpdates(options: {
14
+ file: string;
15
+ hot: HotChannelLike;
16
+ modules: Iterable<ModuleNode>;
17
+ timestamp: number;
18
+ }): CssUpdateDispatchResult;
@@ -0,0 +1,68 @@
1
+ import path from 'node:path';
2
+ function uniqueByUrl(modules) {
3
+ const seen = new Set();
4
+ const uniqueModules = [];
5
+ for (const module of modules) {
6
+ if (!module.url || seen.has(module.url)) {
7
+ continue;
8
+ }
9
+ seen.add(module.url);
10
+ uniqueModules.push(module);
11
+ }
12
+ return uniqueModules;
13
+ }
14
+ export function isCssModule(module) {
15
+ const id = module.id ?? module.file ?? module.url;
16
+ const [pathname] = id.split('?', 1);
17
+ return pathname.endsWith('.css');
18
+ }
19
+ export function collectImportedCssModules(rootModule) {
20
+ const queue = [...rootModule.importedModules];
21
+ const visited = new Set();
22
+ const cssModules = [];
23
+ while (queue.length > 0) {
24
+ const current = queue.shift();
25
+ if (!current || visited.has(current)) {
26
+ continue;
27
+ }
28
+ visited.add(current);
29
+ if (isCssModule(current)) {
30
+ cssModules.push(current);
31
+ }
32
+ for (const imported of current.importedModules) {
33
+ queue.push(imported);
34
+ }
35
+ }
36
+ return uniqueByUrl(cssModules);
37
+ }
38
+ export function createCssUpdatePayload(modules, timestamp) {
39
+ const updates = uniqueByUrl(modules)
40
+ .filter(isCssModule)
41
+ .map((module) => ({
42
+ type: 'css-update',
43
+ path: module.url,
44
+ acceptedPath: module.url,
45
+ timestamp
46
+ }));
47
+ return {
48
+ type: 'update',
49
+ updates
50
+ };
51
+ }
52
+ export function createFullReloadPayload(file) {
53
+ return {
54
+ type: 'full-reload',
55
+ path: '*',
56
+ triggeredBy: path.resolve(file)
57
+ };
58
+ }
59
+ export function dispatchTailwindCssUpdates(options) {
60
+ const payload = createCssUpdatePayload(options.modules, options.timestamp);
61
+ if (payload.updates.length === 0) {
62
+ options.hot.send(createFullReloadPayload(options.file));
63
+ return { kind: 'full-reload', updateCount: 0 };
64
+ }
65
+ options.hot.send(payload);
66
+ return { kind: 'css-update', updateCount: payload.updates.length };
67
+ }
68
+ //# sourceMappingURL=tailwind-hmr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind-hmr.js","sourceRoot":"","sources":["../../src/runtime/tailwind-hmr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function resolveTailwindWorkspaceRoot(deckPath: string): string;
2
+ export declare function isTailwindSourceFile(deckPath: string, filePath: string): boolean;
3
+ export declare function createTailwindSourceDirectives(deckPath: string): string;
4
+ export declare function injectTailwindSources(css: string, deckPath: string): string;
@@ -0,0 +1,43 @@
1
+ import path from 'node:path';
2
+ import { normalizePath } from 'vite';
3
+ const TAILWIND_IMPORT_PATTERN = /@import\s+["']tailwindcss["'];/;
4
+ const TAILWIND_SOURCE_EXTENSIONS = new Set([
5
+ '.mdx',
6
+ '.md',
7
+ '.tsx',
8
+ '.ts',
9
+ '.jsx',
10
+ '.js',
11
+ '.html'
12
+ ]);
13
+ const TAILWIND_SOURCE_GLOB = '**/*.{mdx,md,tsx,ts,jsx,js,html}';
14
+ function quoteCssString(value) {
15
+ return JSON.stringify(value);
16
+ }
17
+ export function resolveTailwindWorkspaceRoot(deckPath) {
18
+ return normalizePath(path.dirname(deckPath));
19
+ }
20
+ export function isTailwindSourceFile(deckPath, filePath) {
21
+ const workspaceRoot = resolveTailwindWorkspaceRoot(deckPath);
22
+ const normalizedFilePath = normalizePath(filePath);
23
+ const relativePath = path.posix.relative(workspaceRoot, normalizedFilePath);
24
+ if (relativePath === '' ||
25
+ relativePath === '.' ||
26
+ relativePath.startsWith('..') ||
27
+ path.posix.isAbsolute(relativePath)) {
28
+ return false;
29
+ }
30
+ return TAILWIND_SOURCE_EXTENSIONS.has(path.posix.extname(normalizedFilePath));
31
+ }
32
+ export function createTailwindSourceDirectives(deckPath) {
33
+ const workspacePattern = `${resolveTailwindWorkspaceRoot(deckPath)}/${TAILWIND_SOURCE_GLOB}`;
34
+ return `@source ${quoteCssString(workspacePattern)};\n`;
35
+ }
36
+ export function injectTailwindSources(css, deckPath) {
37
+ if (!TAILWIND_IMPORT_PATTERN.test(css)) {
38
+ return css;
39
+ }
40
+ const directives = createTailwindSourceDirectives(deckPath);
41
+ return css.startsWith(directives) ? css : `${directives}${css}`;
42
+ }
43
+ //# sourceMappingURL=tailwind-sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind-sources.js","sourceRoot":"","sources":["../../src/runtime/tailwind-sources.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AACjE,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;CACR,CAAC,CAAC;AACH,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAEhE,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAAgB;IAC3D,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,QAAgB;IACrE,MAAM,aAAa,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IAE5E,IACE,YAAY,KAAK,EAAE;QACnB,YAAY,KAAK,GAAG;QACpB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,QAAgB;IAC7D,MAAM,gBAAgB,GAAG,GAAG,4BAA4B,CAAC,QAAQ,CAAC,IAAI,oBAAoB,EAAE,CAAC;IAE7F,OAAO,WAAW,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,QAAgB;IACjE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC;AAClE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MdxComponentMap, ThemeModule } from './theme-types.js';
2
+ export declare function createDefaultThemeComponents(): MdxComponentMap;
3
+ export declare function mergeThemeComponents(theme?: ThemeModule): MdxComponentMap;
@@ -0,0 +1,18 @@
1
+ import { Callout, Columns, Disclosure, Frame } from './components/index.js';
2
+ import { createDefaultMdxComponents } from './mdx-components.js';
3
+ export function createDefaultThemeComponents() {
4
+ return {
5
+ Callout,
6
+ Columns,
7
+ Disclosure,
8
+ Frame
9
+ };
10
+ }
11
+ export function mergeThemeComponents(theme) {
12
+ return {
13
+ ...createDefaultMdxComponents(),
14
+ ...createDefaultThemeComponents(),
15
+ ...(theme?.components ?? {})
16
+ };
17
+ }
18
+ //# sourceMappingURL=theme-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-components.js","sourceRoot":"","sources":["../../src/runtime/theme-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGjE,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,OAAO;QACP,OAAO;QACP,UAAU;QACV,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAmB;IACtD,OAAO;QACL,GAAG,0BAA0B,EAAE;QAC/B,GAAG,4BAA4B,EAAE;QACjC,GAAG,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC;KAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveRuntimeModulePath(baseUrl: string, stem: string): string;
2
+ export declare function resolveThemeModulePath(deckPath: string, themeName: string, baseUrl?: string): string;