@classic-homes/slides 0.5.5 → 0.5.7
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/dist/{chunk-GNTIZN4Y.js → chunk-AJFBVFYM.js} +31 -5
- package/dist/chunk-AJFBVFYM.js.map +1 -0
- package/dist/{chunk-ULP6ACVZ.js → chunk-ILE46F7Y.js} +46 -30
- package/dist/chunk-ILE46F7Y.js.map +1 -0
- package/dist/{chunk-5742AF55.js → chunk-PGZ4O5O5.js} +2 -2
- package/dist/cli.js +4 -4
- package/dist/index.js +2 -2
- package/dist/{mcp-YESIP2QG.js → mcp-QIOTFFFY.js} +4 -4
- package/dist/node.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-GNTIZN4Y.js.map +0 -1
- package/dist/chunk-ULP6ACVZ.js.map +0 -1
- /package/dist/{chunk-5742AF55.js.map → chunk-PGZ4O5O5.js.map} +0 -0
- /package/dist/{mcp-YESIP2QG.js.map → mcp-QIOTFFFY.js.map} +0 -0
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
parseDeckSource,
|
|
4
4
|
renderDeck,
|
|
5
5
|
stringifyDeck
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ILE46F7Y.js";
|
|
7
7
|
|
|
8
8
|
// src/node/index.ts
|
|
9
9
|
import { readFile, stat, writeFile } from "fs/promises";
|
|
@@ -117,4 +117,4 @@ export {
|
|
|
117
117
|
buildDeckFile,
|
|
118
118
|
exportDeckFile
|
|
119
119
|
};
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
120
|
+
//# sourceMappingURL=chunk-PGZ4O5O5.js.map
|
package/dist/cli.js
CHANGED
|
@@ -4,19 +4,19 @@ import {
|
|
|
4
4
|
deckJsonSchema,
|
|
5
5
|
describeLayout,
|
|
6
6
|
listLayouts
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AJFBVFYM.js";
|
|
8
8
|
import {
|
|
9
9
|
buildDeckFile,
|
|
10
10
|
exportDeckFile,
|
|
11
11
|
fileImageResolver,
|
|
12
12
|
loadDeckFile
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-PGZ4O5O5.js";
|
|
14
14
|
import {
|
|
15
15
|
DeckError,
|
|
16
16
|
formatIssues,
|
|
17
17
|
renderDeck,
|
|
18
18
|
validateDeck
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ILE46F7Y.js";
|
|
20
20
|
|
|
21
21
|
// src/node/cli.ts
|
|
22
22
|
import { watch } from "fs";
|
|
@@ -126,7 +126,7 @@ ${"".padEnd(12)} Use for: ${l.whenToUse}
|
|
|
126
126
|
case "mcp": {
|
|
127
127
|
let mcp;
|
|
128
128
|
try {
|
|
129
|
-
mcp = await import("./mcp-
|
|
129
|
+
mcp = await import("./mcp-QIOTFFFY.js");
|
|
130
130
|
} catch (e) {
|
|
131
131
|
if (e.code === "ERR_MODULE_NOT_FOUND") {
|
|
132
132
|
throw new Error(
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
deckJsonSchema,
|
|
4
4
|
describeLayout,
|
|
5
5
|
listLayouts
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AJFBVFYM.js";
|
|
7
7
|
import {
|
|
8
8
|
BrandPaletteSchema,
|
|
9
9
|
BrandProfileSchema,
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
validateBrandProfile,
|
|
66
66
|
validateDeck,
|
|
67
67
|
videoEmbedUrl
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-ILE46F7Y.js";
|
|
69
69
|
|
|
70
70
|
// src/generated/runtime-hash.ts
|
|
71
71
|
var RUNTIME_SCRIPT_HASH = "sha256-gElvQAb4VPvKu4UeyJRVKuoHYNp8NGhXwx2EhL7NB88=";
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
AUTHORING_GUIDE,
|
|
3
3
|
describeLayout,
|
|
4
4
|
listLayouts
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-AJFBVFYM.js";
|
|
6
6
|
import {
|
|
7
7
|
buildDeckFile,
|
|
8
8
|
confinedPath,
|
|
9
9
|
loadDeckFile,
|
|
10
10
|
saveDeckFile
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PGZ4O5O5.js";
|
|
12
12
|
import {
|
|
13
13
|
addSlide,
|
|
14
14
|
formatIssues,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
stringifyDeck,
|
|
19
19
|
updateSlide,
|
|
20
20
|
validateDeck
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ILE46F7Y.js";
|
|
22
22
|
|
|
23
23
|
// src/node/mcp.ts
|
|
24
24
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -320,4 +320,4 @@ export {
|
|
|
320
320
|
createSlidesMcpServer,
|
|
321
321
|
runStdio
|
|
322
322
|
};
|
|
323
|
-
//# sourceMappingURL=mcp-
|
|
323
|
+
//# sourceMappingURL=mcp-QIOTFFFY.js.map
|
package/dist/node.js
CHANGED
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
fileImageResolver,
|
|
6
6
|
loadDeckFile,
|
|
7
7
|
saveDeckFile
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-PGZ4O5O5.js";
|
|
9
9
|
import {
|
|
10
10
|
renderDeck
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ILE46F7Y.js";
|
|
12
12
|
export {
|
|
13
13
|
IMAGE_WARN_BYTES,
|
|
14
14
|
buildDeckFile,
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/catalog.ts"],"sourcesContent":["import { z } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\nimport {\n LAYOUT_CATEGORIES,\n LAYOUTS,\n getLayout,\n type LayoutCategory,\n type LayoutName,\n} from './layouts/index.js';\nimport { baseSlide } from './schema/common.js';\nimport { DeckSchema } from './schema/deck.js';\n\nexport interface LayoutSummary {\n name: string;\n category: LayoutCategory;\n description: string;\n whenToUse: string;\n}\n\nexport function listLayouts(): LayoutSummary[] {\n return LAYOUTS.map((l) => ({\n name: l.name,\n category: LAYOUT_CATEGORIES[l.name as LayoutName],\n description: l.description,\n whenToUse: l.whenToUse,\n }));\n}\n\n/** Full description of one layout: fields as JSON Schema plus a working example. */\nexport function describeLayout(name: string) {\n const layout = getLayout(name);\n if (!layout) return undefined;\n const schema = z.object({ layout: z.literal(layout.name), ...layout.shape, ...baseSlide });\n return {\n name: layout.name,\n description: layout.description,\n whenToUse: layout.whenToUse,\n defaults: layout.defaults ?? {},\n schema: zodToJsonSchema(schema, { $refStrategy: 'none' }),\n example: layout.example,\n };\n}\n\n/** JSON Schema for a whole deck (editor tooling, `$schema` in deck files). */\nexport function deckJsonSchema() {\n return zodToJsonSchema(DeckSchema, { name: 'ClassicDeck', $refStrategy: 'none' });\n}\n\n/** Authoring guidance shared by the CLI, MCP server and docs. */\nexport const AUTHORING_GUIDE = `# Writing a Classic Homes deck\n\nA deck is a YAML (or JSON) file: deck-level fields plus a list of slides. Each slide\npicks a **layout** and fills its fields. Layouts own all styling — there is no way to\nset colours, fonts or sizes directly, which is what keeps every deck on-brand.\n\n## Principles\n- **One idea per slide.** The headline states the point. Detail goes in \\`notes\\`.\n- **Short copy.** Titles under ~70 characters, bullets a few words, at most 6 bullets.\n \\`validate\\` warns when a slide gets crowded — split it rather than shrinking text.\n- **Speaker notes on every content slide.** Presenters press N (or P for presenter view).\n- **Real photos over decoration.** Every image needs \\`alt\\` text.\n- **Tracks** colour the accent: \\`value\\` (red, default) for the homeowner/value story,\n \\`build\\` (teal) for construction/process, \\`neutral\\` (navy) for framing slides.\n- **Backgrounds**: \\`paper\\` (default) for content; solid \\`navy\\`/\\`red\\`/\\`teal\\`/\\`plum\\`/\\`grey\\`/\\`stone\\`\n for dividers. \\`backgroundImage\\` + \\`overlay\\` puts a photo behind title/section/statement slides.\n\n## Picking a layout\n- **Numbers:** \\`stats\\` (2–6 headline figures, optional trend + sparkline), \\`chart\\` (a real chart —\n put the takeaway in the title), \\`table\\` (exact figures people compare).\n- **Processes & structure:** \\`flow\\` (ordered steps with arrows), \\`timeline\\` (dated milestones, phases),\n \\`cycle\\` (things that repeat), \\`hierarchy\\` (org chart / tree), \\`matrix\\` (2×2), \\`tiers\\`\n (funnel or pyramid), \\`walkthrough\\` (photo per stage), \\`journey\\` (deck agenda).\n- **Media:** \\`split\\` (text + photos), \\`photos\\`, \\`image\\` (with numbered \\`hotspots\\` for floor plans\n and site maps), \\`compare\\` (before/after slider), \\`video\\` (YouTube/Vimeo), \\`embed\\` (any https page:\n maps, dashboards, 3D tours, forms).\n- **Words:** \\`statement\\`, \\`bullets\\`, \\`cards\\`, \\`comparison\\`, \\`quote\\`.\n- **Wrap-up:** \\`qr\\` (send people somewhere), \\`contacts\\`, closing \\`statement\\`.\n\n## Charts\n\\`chart.labels\\` are the categories; each series has one value per label. Pie, donut, funnel and\ngauge use the first series; gauge needs \\`max\\`; scatter uses two series as x and y. Use\n\\`highlight\\` to emphasise one category and \\`format\\`/\\`unit\\` instead of typing symbols into numbers.\n\n## Video & embeds\nThey need internet while presenting. Offline, in print and in PDF they show a poster (or\n\\`fallback\\` screenshot) with a QR code. Some sites refuse to be framed — the \"Open ↗\" link\nalways works; add a \\`fallback\\` image for anything critical.\n\n## Brand\n\\`brand.profile\\` picks who the deck speaks for (default \\`classic-homes\\`). You may override\n\\`name\\`, \\`tagline\\`, \\`logo\\`, \\`logoOnDark\\`, \\`favicon\\` and \\`footer\\`; colours come from the profile.\n\\`settings\\` controls slide numbers, logo placement, a confidential label and kiosk auto-advance.\n\n## Presenting\nArrow keys / Space advance (and step through \\`build: true\\` reveals). N notes · P presenter window\n(current + next slide, notes, timer) · O overview · F fullscreen · \\`?kiosk=15\\` on the URL loops\nunattended. \\`hidden: true\\` skips a slide without deleting it.\n\n## Inline text\n\\`**bold**\\`, \\`*highlight*\\` (accent colour), \\`\\\\\\`code\\\\\\`\\`, \\`[label](https://…)\\`. No HTML.\n\n## Journey decks\nSet \\`journey.steps\\` at deck level to get a numbered agenda. Then:\n- a \\`journey\\` slide shows the full map,\n- \\`step: 3\\` on any slide draws the vertical STEP rail,\n- \\`showJourney: true\\` adds the compact \"you are here\" strip (great on \\`section\\` slides).\n\n## Typical shape\n1. \\`title\\`\n2. \\`statement\\` or \\`journey\\` (why we're here / the agenda)\n3. per part: \\`section\\` → 2–5 content slides\n4. \\`qr\\` (where to go next) → \\`contacts\\` → closing \\`statement\\`\n`;\n"],"mappings":";;;;;;;;;AAAA,SAAS,SAAS;AAClB,SAAS,uBAAuB;AAkBzB,SAAS,cAA+B;AAC7C,SAAO,QAAQ,IAAI,CAAC,OAAO;AAAA,IACzB,MAAM,EAAE;AAAA,IACR,UAAU,kBAAkB,EAAE,IAAkB;AAAA,IAChD,aAAa,EAAE;AAAA,IACf,WAAW,EAAE;AAAA,EACf,EAAE;AACJ;AAGO,SAAS,eAAe,MAAc;AAC3C,QAAM,SAAS,UAAU,IAAI;AAC7B,MAAI,CAAC,OAAQ,QAAO;AACpB,QAAM,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,OAAO,IAAI,GAAG,GAAG,OAAO,OAAO,GAAG,UAAU,CAAC;AACzF,SAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb,aAAa,OAAO;AAAA,IACpB,WAAW,OAAO;AAAA,IAClB,UAAU,OAAO,YAAY,CAAC;AAAA,IAC9B,QAAQ,gBAAgB,QAAQ,EAAE,cAAc,OAAO,CAAC;AAAA,IACxD,SAAS,OAAO;AAAA,EAClB;AACF;AAGO,SAAS,iBAAiB;AAC/B,SAAO,gBAAgB,YAAY,EAAE,MAAM,eAAe,cAAc,OAAO,CAAC;AAClF;AAGO,IAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
|