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.
- package/README.md +338 -0
- package/dist/cli/export.d.ts +7 -0
- package/dist/cli/export.js +36 -0
- package/dist/cli/export.js.map +1 -0
- package/dist/cli/index.d.ts +14 -0
- package/dist/cli/index.js +104 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/serve.d.ts +8 -0
- package/dist/cli/serve.js +13 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/templates.d.ts +1 -0
- package/dist/cli/templates.js +36 -0
- package/dist/cli/templates.js.map +1 -0
- package/dist/cli/workspace.d.ts +2 -0
- package/dist/cli/workspace.js +27 -0
- package/dist/cli/workspace.js.map +1 -0
- package/dist/content/parse-deck.d.ts +36 -0
- package/dist/content/parse-deck.js +137 -0
- package/dist/content/parse-deck.js.map +1 -0
- package/dist/content/remark-unwrap-jsx-paragraphs.d.ts +7 -0
- package/dist/content/remark-unwrap-jsx-paragraphs.js +64 -0
- package/dist/content/remark-unwrap-jsx-paragraphs.js.map +1 -0
- package/dist/export/pdf.d.ts +6 -0
- package/dist/export/pdf.js +41 -0
- package/dist/export/pdf.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/App.d.ts +8 -0
- package/dist/runtime/App.js +46 -0
- package/dist/runtime/App.js.map +1 -0
- package/dist/runtime/components/Callout.d.ts +7 -0
- package/dist/runtime/components/Callout.js +14 -0
- package/dist/runtime/components/Callout.js.map +1 -0
- package/dist/runtime/components/Center.d.ts +4 -0
- package/dist/runtime/components/Center.js +5 -0
- package/dist/runtime/components/Center.js.map +1 -0
- package/dist/runtime/components/Columns.d.ts +6 -0
- package/dist/runtime/components/Columns.js +5 -0
- package/dist/runtime/components/Columns.js.map +1 -0
- package/dist/runtime/components/Disclosure.d.ts +6 -0
- package/dist/runtime/components/Disclosure.js +6 -0
- package/dist/runtime/components/Disclosure.js.map +1 -0
- package/dist/runtime/components/Frame.d.ts +5 -0
- package/dist/runtime/components/Frame.js +5 -0
- package/dist/runtime/components/Frame.js.map +1 -0
- package/dist/runtime/components/index.d.ts +8 -0
- package/dist/runtime/components/index.js +5 -0
- package/dist/runtime/components/index.js.map +1 -0
- package/dist/runtime/default-components.d.ts +3 -0
- package/dist/runtime/default-components.js +39 -0
- package/dist/runtime/default-components.js.map +1 -0
- package/dist/runtime/hooks/slides.d.ts +1 -0
- package/dist/runtime/hooks/slides.js +46 -0
- package/dist/runtime/hooks/slides.js.map +1 -0
- package/dist/runtime/index.html +12 -0
- package/dist/runtime/layout/DeckSlide.d.ts +2 -0
- package/dist/runtime/layout/DeckSlide.js +7 -0
- package/dist/runtime/layout/DeckSlide.js.map +1 -0
- package/dist/runtime/layout/SlideFrame.d.ts +2 -0
- package/dist/runtime/layout/SlideFrame.js +7 -0
- package/dist/runtime/layout/SlideFrame.js.map +1 -0
- package/dist/runtime/main.d.ts +1 -0
- package/dist/runtime/main.js +32 -0
- package/dist/runtime/main.js.map +1 -0
- package/dist/runtime/mdx-components.d.ts +2 -0
- package/dist/runtime/mdx-components.js +17 -0
- package/dist/runtime/mdx-components.js.map +1 -0
- package/dist/runtime/primitives/DeckChrome.d.ts +7 -0
- package/dist/runtime/primitives/DeckChrome.js +7 -0
- package/dist/runtime/primitives/DeckChrome.js.map +1 -0
- package/dist/runtime/primitives/DeckNavigation.d.ts +6 -0
- package/dist/runtime/primitives/DeckNavigation.js +5 -0
- package/dist/runtime/primitives/DeckNavigation.js.map +1 -0
- package/dist/runtime/primitives/DeckProgress.d.ts +6 -0
- package/dist/runtime/primitives/DeckProgress.js +6 -0
- package/dist/runtime/primitives/DeckProgress.js.map +1 -0
- package/dist/runtime/primitives/DeckTitle.d.ts +5 -0
- package/dist/runtime/primitives/DeckTitle.js +5 -0
- package/dist/runtime/primitives/DeckTitle.js.map +1 -0
- package/dist/runtime/public-components.d.ts +22 -0
- package/dist/runtime/public-components.js +24 -0
- package/dist/runtime/public-components.js.map +1 -0
- package/dist/runtime/styles/base.css +201 -0
- package/dist/runtime/tailwind-hmr.d.ts +18 -0
- package/dist/runtime/tailwind-hmr.js +68 -0
- package/dist/runtime/tailwind-hmr.js.map +1 -0
- package/dist/runtime/tailwind-sources.d.ts +4 -0
- package/dist/runtime/tailwind-sources.js +43 -0
- package/dist/runtime/tailwind-sources.js.map +1 -0
- package/dist/runtime/theme-components.d.ts +3 -0
- package/dist/runtime/theme-components.js +18 -0
- package/dist/runtime/theme-components.js.map +1 -0
- package/dist/runtime/theme-resolution.d.ts +2 -0
- package/dist/runtime/theme-resolution.js +63 -0
- package/dist/runtime/theme-resolution.js.map +1 -0
- package/dist/runtime/theme-types.d.ts +48 -0
- package/dist/runtime/theme-types.js +2 -0
- package/dist/runtime/theme-types.js.map +1 -0
- package/dist/runtime/themes/base/DefaultDeck.d.ts +2 -0
- package/dist/runtime/themes/base/DefaultDeck.js +11 -0
- package/dist/runtime/themes/base/DefaultDeck.js.map +1 -0
- package/dist/runtime/themes/base/theme.css +245 -0
- package/dist/runtime/themes/default/DefaultDeck.d.ts +2 -0
- package/dist/runtime/themes/default/DefaultDeck.js +11 -0
- package/dist/runtime/themes/default/DefaultDeck.js.map +1 -0
- package/dist/runtime/themes/default/DefaultThemeDeck.d.ts +2 -0
- package/dist/runtime/themes/default/DefaultThemeDeck.js +23 -0
- package/dist/runtime/themes/default/DefaultThemeDeck.js.map +1 -0
- package/dist/runtime/themes/default/components.d.ts +65 -0
- package/dist/runtime/themes/default/components.js +80 -0
- package/dist/runtime/themes/default/components.js.map +1 -0
- package/dist/runtime/themes/default/index.d.ts +4 -0
- package/dist/runtime/themes/default/index.js +18 -0
- package/dist/runtime/themes/default/index.js.map +1 -0
- package/dist/runtime/themes/default/theme.css +577 -0
- package/dist/runtime/themes/default.css +10 -0
- package/dist/runtime/themes/sunset/index.d.ts +4 -0
- package/dist/runtime/themes/sunset/index.js +13 -0
- package/dist/runtime/themes/sunset/index.js.map +1 -0
- package/dist/runtime/themes/sunset/theme.css +12 -0
- package/dist/runtime/themes/sunset.css +10 -0
- package/dist/runtime/themes/supabase/SupabaseDeck.d.ts +2 -0
- package/dist/runtime/themes/supabase/SupabaseDeck.js +23 -0
- package/dist/runtime/themes/supabase/SupabaseDeck.js.map +1 -0
- package/dist/runtime/themes/supabase/components.d.ts +65 -0
- package/dist/runtime/themes/supabase/components.js +80 -0
- package/dist/runtime/themes/supabase/components.js.map +1 -0
- package/dist/runtime/themes/supabase/index.d.ts +4 -0
- package/dist/runtime/themes/supabase/index.js +17 -0
- package/dist/runtime/themes/supabase/index.js.map +1 -0
- package/dist/runtime/themes/supabase/theme.css +523 -0
- package/dist/runtime/utils/use-current-slide.d.ts +3 -0
- package/dist/runtime/utils/use-current-slide.js +20 -0
- package/dist/runtime/utils/use-current-slide.js.map +1 -0
- package/dist/runtime/vite-config.d.ts +10 -0
- package/dist/runtime/vite-config.js +218 -0
- package/dist/runtime/vite-config.js.map +1 -0
- 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,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,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
|
+
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,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
|
+
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 @@
|
|
|
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,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"}
|