@yadeck/slide-components-basic 0.0.0-stage → 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layouts.js","sourceRoot":"","sources":["../src/layouts.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { type BlockNode, type SlideNode } from "@yadeck/slide-core";
2
+ import type { CSSProperties } from "react";
3
+ type Pane = {
4
+ kind: "text";
5
+ blocks: BlockNode[];
6
+ } | {
7
+ kind: "block";
8
+ block: BlockNode;
9
+ };
10
+ /** 出現順を保ったまま pane に分ける。テキスト pane は最初のテキスト block の位置に置く */
11
+ export declare function toPanes(blocks: BlockNode[]): Pane[];
12
+ /** pane を左右の列に振り分ける。戻り値は [左の pane 数, 右の pane 数] */
13
+ export declare function splitColumns(n: number): [number, number];
14
+ interface PaneBox {
15
+ w: number;
16
+ h: number;
17
+ /** 縦に積んだときの高さの比(flex-grow) */
18
+ grow?: number;
19
+ }
20
+ /**
21
+ * 同じ slide に code が 2 つ以上あるとき、全部が収まる最小のフォントサイズを --code-fit で渡す。
22
+ * pane ごとに最大サイズを選ぶと、並んだコードの文字の大きさが揃わないため。式は styles.ts の .b-code と同じ
23
+ */
24
+ export declare function codeFitStyle(placed: {
25
+ pane: Pane;
26
+ box: PaneBox;
27
+ }[]): CSSProperties;
28
+ /**
29
+ * 縦に積む pane の高さの比。全部が code なら「行数 + caption などの余白」の比で分け、
30
+ * 行の多いコードが切れたり、短いコードの箱が間延びしたりしないようにする。それ以外は等分
31
+ */
32
+ export declare function paneWeights(panes: Pane[]): number[];
33
+ /** テキスト pane。body / list / tags 無しの block は行にまとめ、1 行なら中央に大きく、2 行以上なら箇条書きにする */
34
+ export declare const TextPane: ({ blocks }: {
35
+ blocks: BlockNode[];
36
+ }) => import("react").JSX.Element;
37
+ export declare const DefaultSlide: (slide: SlideNode) => import("react").JSX.Element;
38
+ /** columns の列数。4 までは横一列、5 以上は 3 列で折り返す */
39
+ export declare function columnsFor(n: number): number;
40
+ /** `columns` を付けた slide。pane を横に等分し、5 以上は 3 列 × 2 行に折り返す */
41
+ export declare const ColumnsSlide: (slide: SlideNode) => import("react").JSX.Element;
42
+ export {};
43
+ //# sourceMappingURL=panes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panes.d.ts","sourceRoot":"","sources":["../src/panes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAuBtD,KAAK,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAMxF,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAgBnD;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxD;AAED,UAAU,OAAO;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,aAAa,CAQlF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAOnD;AAqBD,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,YAAY;IAAE,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,gCAoC3D,CAAC;AAMF,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,gCA+B5C,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,4DAA4D;AAC5D,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,gCAoB5C,CAAC"}
package/dist/panes.js ADDED
@@ -0,0 +1,131 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Block, RichText, pick } from "@yadeck/slide-core";
3
+ import { PAGE, SlideHeading } from "./chrome.js";
4
+ import { codeChrome, codeSize } from "./layouts.js";
5
+ /**
6
+ * tags 無しの slide の自動レイアウト。
7
+ * 内容を pane に数え、数に応じて配置を決める。
8
+ * - テキスト(body / list / tags 無し / その他の block)は全部まとめて 1 pane
9
+ * - image / code / video は 1 つにつき 1 pane
10
+ * 1: 全面、2: 左右、3: ト型(左 1 + 右 2)、4: 十字、5 以上: 左 floor(N/2) + 右 残り(8 まで)
11
+ */
12
+ const SLIDE_W = 1280;
13
+ const SLIDE_H = 720;
14
+ const PAD_X = 80;
15
+ const PAD_Y = 56;
16
+ const HEADING_H = 69 + 24;
17
+ const DESCRIPTION_H = 36;
18
+ const GAP = 32;
19
+ /** 1 つで 1 pane になる block の tags */
20
+ const PANE_TAGS = ["image", "code", "video", "flow"];
21
+ function isPaneBlock(b) {
22
+ return b.tags.some((t) => PANE_TAGS.includes(t));
23
+ }
24
+ /** 出現順を保ったまま pane に分ける。テキスト pane は最初のテキスト block の位置に置く */
25
+ export function toPanes(blocks) {
26
+ const panes = [];
27
+ let text;
28
+ for (const b of blocks) {
29
+ if (b.tags.includes("note"))
30
+ continue;
31
+ if (isPaneBlock(b)) {
32
+ panes.push({ kind: "block", block: b });
33
+ continue;
34
+ }
35
+ if (!text) {
36
+ text = { kind: "text", blocks: [] };
37
+ panes.push(text);
38
+ }
39
+ text.blocks.push(b);
40
+ }
41
+ return panes;
42
+ }
43
+ /** pane を左右の列に振り分ける。戻り値は [左の pane 数, 右の pane 数] */
44
+ export function splitColumns(n) {
45
+ if (n <= 1)
46
+ return [n, 0];
47
+ const left = Math.floor(n / 2);
48
+ return [left, n - left];
49
+ }
50
+ /**
51
+ * 同じ slide に code が 2 つ以上あるとき、全部が収まる最小のフォントサイズを --code-fit で渡す。
52
+ * pane ごとに最大サイズを選ぶと、並んだコードの文字の大きさが揃わないため。式は styles.ts の .b-code と同じ
53
+ */
54
+ export function codeFitStyle(placed) {
55
+ const terms = placed.flatMap(({ pane, box }) => {
56
+ if (pane.kind !== "block" || !pane.block.tags.includes("code"))
57
+ return [];
58
+ const { cols, rows } = codeSize(pane.block.text);
59
+ const chrome = codeChrome(typeof pane.block.caption === "string" ? pane.block.caption : undefined);
60
+ return [`calc((${Math.round(box.w)}px - 48px) / ${cols} / 0.62)`, `calc((${Math.round(box.h)}px - ${chrome}px) / ${rows} / 1.375)`];
61
+ });
62
+ return terms.length >= 4 ? { "--code-fit": `min(${terms.join(", ")})` } : {};
63
+ }
64
+ /**
65
+ * 縦に積む pane の高さの比。全部が code なら「行数 + caption などの余白」の比で分け、
66
+ * 行の多いコードが切れたり、短いコードの箱が間延びしたりしないようにする。それ以外は等分
67
+ */
68
+ export function paneWeights(panes) {
69
+ const sizes = panes.map((p) => p.kind === "block" && p.block.tags.includes("code")
70
+ ? codeSize(p.block.text).rows + codeChrome(typeof p.block.caption === "string" ? p.block.caption : undefined) / 24
71
+ : undefined);
72
+ return sizes.every((x) => x !== undefined) ? sizes : panes.map(() => 1);
73
+ }
74
+ /** 1 列に縦に積んだ pane の寸法 */
75
+ function columnBoxes(contentH, columnCount, column) {
76
+ const w = columnCount === 1 ? SLIDE_W - PAD_X * 2 : (SLIDE_W - PAD_X * 2 - GAP) / 2;
77
+ const weights = paneWeights(column);
78
+ const total = weights.reduce((a, b) => a + b, 0);
79
+ const free = contentH - GAP * (column.length - 1);
80
+ return weights.map((wt) => ({ w, h: (free * wt) / total, grow: wt }));
81
+ }
82
+ /** pane の寸法を CSS 変数で渡す。code の自動フォントサイズなどが参照する */
83
+ const PaneFrame = ({ box, children }) => (_jsx("div", { className: "b-pane relative flex min-h-0 min-w-0 flex-1 flex-col", style: { "--pane-w": `${Math.round(box.w)}px`, "--pane-h": `${Math.round(box.h)}px`, flexGrow: box.grow ?? 1, flexBasis: 0 }, children: children }));
84
+ /** テキスト pane。body / list / tags 無しの block は行にまとめ、1 行なら中央に大きく、2 行以上なら箇条書きにする */
85
+ export const TextPane = ({ blocks }) => {
86
+ const lines = [];
87
+ const others = [];
88
+ for (const b of blocks) {
89
+ const isText = b.tags.length === 0 || b.tags.includes("body") || b.tags.includes("list");
90
+ if (!isText) {
91
+ others.push(b);
92
+ continue;
93
+ }
94
+ for (const line of (b.text ?? "").split("\n")) {
95
+ if (line.trim())
96
+ lines.push(_jsx(RichText, { text: line }, `${b.id}-${lines.length}`));
97
+ }
98
+ }
99
+ if (lines.length === 1 && others.length === 0) {
100
+ return (_jsx("div", { className: "b-center flex flex-1 items-center justify-center text-center text-h3 leading-relaxed", children: lines[0] }));
101
+ }
102
+ return (_jsxs("div", { className: "b-bullets flex flex-1 flex-col justify-center gap-5", children: [lines.length > 0 && (_jsx("ul", { className: "m-0 list-disc pl-[1.2em] marker:text-accent", children: lines.map((l, i) => (_jsx("li", { className: "my-2", children: l }, i))) })), others.map((b) => (_jsx(Block, { data: b }, b.id)))] }));
103
+ };
104
+ const PaneView = ({ pane, box }) => (_jsx(PaneFrame, { box: box, children: pane.kind === "text" ? _jsx(TextPane, { blocks: pane.blocks }) : _jsx(Block, { data: pane.block }) }));
105
+ export const DefaultSlide = (slide) => {
106
+ const [heading, rest] = pick(slide.items, ["heading"]);
107
+ const panes = toPanes(rest);
108
+ const contentH = SLIDE_H - PAD_Y * 2 - (heading ? HEADING_H : 0) - (heading && slide.description ? DESCRIPTION_H : 0);
109
+ const [leftCount, rightCount] = splitColumns(panes.length);
110
+ const left = panes.slice(0, leftCount);
111
+ const right = panes.slice(leftCount);
112
+ const columns = panes.length <= 1 ? [panes] : [left, right];
113
+ const boxes = columns.map((column) => columnBoxes(contentH, columns.length, column));
114
+ const placed = columns.flatMap((column, ci) => column.map((pane, i) => ({ pane, box: boxes[ci][i] })));
115
+ return (_jsxs("div", { className: `${PAGE} b-default`, style: codeFitStyle(placed), children: [heading && _jsx(SlideHeading, { block: heading, description: slide.description }), panes.length <= 1 ? (_jsx("div", { className: "flex min-h-0 flex-1 flex-col", children: panes[0] && _jsx(PaneView, { pane: panes[0], box: boxes[0][0] }) })) : (_jsx("div", { className: "grid min-h-0 flex-1 grid-cols-2 gap-8", children: columns.map((column, ci) => (_jsx("div", { className: "flex min-h-0 min-w-0 flex-col gap-8", children: column.map((pane, i) => (_jsx(PaneView, { pane: pane, box: boxes[ci][i] }, i))) }, ci))) }))] }));
116
+ };
117
+ /** columns の列数。4 までは横一列、5 以上は 3 列で折り返す */
118
+ export function columnsFor(n) {
119
+ return n <= 4 ? Math.max(1, n) : 3;
120
+ }
121
+ /** `columns` を付けた slide。pane を横に等分し、5 以上は 3 列 × 2 行に折り返す */
122
+ export const ColumnsSlide = (slide) => {
123
+ const [heading, rest] = pick(slide.items, ["heading"]);
124
+ const panes = toPanes(rest);
125
+ const contentH = SLIDE_H - PAD_Y * 2 - (heading ? HEADING_H : 0) - (heading && slide.description ? DESCRIPTION_H : 0);
126
+ const cols = columnsFor(panes.length);
127
+ const rows = Math.max(1, Math.ceil(panes.length / cols));
128
+ const box = { w: (SLIDE_W - PAD_X * 2 - GAP * (cols - 1)) / cols, h: (contentH - GAP * (rows - 1)) / rows };
129
+ return (_jsxs("div", { className: `${PAGE} b-columns`, style: codeFitStyle(panes.map((pane) => ({ pane, box }))), children: [heading && _jsx(SlideHeading, { block: heading, description: slide.description }), _jsx("div", { className: "grid min-h-0 flex-1 gap-8", style: { gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`, gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))` }, children: panes.map((pane, i) => (_jsx(PaneView, { pane: pane, box: box }, i))) })] }));
130
+ };
131
+ //# sourceMappingURL=panes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panes.js","sourceRoot":"","sources":["../src/panes.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * basic の既定テーマ。Tailwind v4 の `@theme` トークンで、利用者は slide.config.ts の `theme` に
3
+ * 指定した CSS で同名トークンを上書きして色・フォント・文字サイズを差し替える。
4
+ * 色は `bg-primary` `text-ink`、フォントは `font-sans`、サイズは `text-h1` のように utility になる。
5
+ */
6
+ export declare const DEFAULT_THEME = "\n@theme {\n --color-primary: #2a5bd7;\n --color-primary-deep: #163a8f;\n --color-accent: #e8c547;\n --color-ink: #222222;\n --color-muted: #666666;\n --color-faint: #888888;\n --color-surface: #ffffff;\n --color-code: #1e1e1e;\n --color-code-ink: #eeeeee;\n\n --font-sans: \"Helvetica Neue\", Arial, \"Hiragino Sans\", \"Noto Sans JP\", sans-serif;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n\n --text-body: 28px;\n --text-small: 22px;\n --text-h1: 64px;\n --text-h2: 44px;\n --text-h3: 34px;\n --text-h4: 30px;\n --text-display: 96px;\n}\n";
7
+ /**
8
+ * utility を付けられない要素(RichText が生成する markdown 由来の p / ul / code など)のための最小 CSS。
9
+ * Layout 自体の見た目は layouts.tsx の className で持つ。
10
+ */
11
+ export declare const BASIC_CSS = "\n@layer components {\n .yd-slide { font-family: var(--font-sans); color: var(--color-ink); font-size: var(--text-body); line-height: 1.5; }\n .b-body p { margin: 0 0 .6em; }\n .b-body p:last-child { margin-bottom: 0; }\n .b-body ul { list-style: disc; padding-left: 1.2em; }\n .b-body ol { list-style: decimal; padding-left: 1.2em; }\n .b-body li::marker { color: var(--color-accent); }\n /* \u672C\u6587\u4E2D\u306E\u30B3\u30FC\u30C9\u3002\u5408\u5B57(-> \u304C \u2192 \u306B\u306A\u308B\u7B49)\u306F\u539F\u6587\u3068\u9055\u3063\u3066\u898B\u3048\u308B\u306E\u3067\u5207\u308B */\n .yd-slide :not(pre) > code { font-family: var(--font-mono); font-size: .9em; font-variant-ligatures: none; background: color-mix(in srgb, var(--color-ink) 8%, transparent); padding: 0 .3em; border-radius: 4px; }\n .b-body a { color: var(--color-primary); text-decoration: underline; }\n\n /* code: pane \u306E\u5BF8\u6CD5(--pane-w / --pane-h)\u3068\u884C\u6570\u30FB\u6700\u5927\u884C\u9577\u304B\u3089\u3001\u53CE\u307E\u308B\u6700\u5927\u306E\u30D5\u30A9\u30F3\u30C8\u30B5\u30A4\u30BA\u3092\u9078\u3076 */\n .yd-slide { --pane-w: 1120px; --pane-h: 500px; }\n .b-code {\n font-size: max(14px, min(\n var(--text-body),\n calc((var(--pane-w) - 48px) / var(--code-cols, 40) / 0.62),\n calc((var(--pane-h) - var(--code-chrome, 40px)) / var(--code-rows, 10) / 1.375),\n var(--code-fit, 9999px)\n ));\n /* \u4E0B\u9650\u307E\u3067\u7E2E\u3081\u3066\u3082\u5165\u3089\u306A\u3044\u9577\u3044\u884C\u306F\u6298\u308A\u8FD4\u3059\u3002\u306F\u307F\u51FA\u3057\u3066\u8AAD\u3081\u306A\u3044\u3088\u308A\u3088\u3044 */\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n font-variant-ligatures: none;\n }\n .b-code .hljs { color: var(--color-code-ink); }\n .hljs-comment, .hljs-quote { color: #8b949e; font-style: italic; }\n .hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-type, .hljs-built_in, .hljs-doctag, .hljs-meta { color: #ff7b72; }\n .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attr, .hljs-meta .hljs-string { color: #a5d6ff; }\n .hljs-number, .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-variable, .hljs-template-variable { color: #79c0ff; }\n .hljs-title, .hljs-section, .hljs-name, .hljs-selector-id, .hljs-selector-class, .hljs-function .hljs-title { color: #d2a8ff; }\n .hljs-attribute, .hljs-params, .hljs-property { color: #ffa657; }\n .hljs-emphasis { font-style: italic; }\n .hljs-strong { font-weight: bold; }\n .hljs-deletion { color: #ffa198; }\n\n /* ---- flow(\u624B\u9806)\u3002https://www.ameamelog.com/css-flow/ \u306E 5 \u30D1\u30BF\u30FC\u30F3\u3092\u79FB\u690D\u3002\u5BF8\u6CD5\u306F\u30B9\u30E9\u30A4\u30C9\u5411\u3051\u306B 1.5 \u500D ---- */\n .b-flow { --flow-grad: linear-gradient(to right, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 55%, white) 100%); margin: auto 0; padding: 0; list-style: none; width: 100%; }\n .b-flow > li { list-style: none; }\n .b-flow dl, .b-flow dd { margin: 0; }\n .b-flow dt { font-size: var(--text-h4); font-weight: 700; color: var(--color-primary); line-height: 1.3; }\n .b-flow dd { font-size: var(--text-small); color: color-mix(in srgb, var(--color-ink) 80%, transparent); line-height: 1.45; }\n .b-flow .phase { display: inline-block; margin-left: .6em; padding: .1em .7em; border-radius: 999px; background: color-mix(in srgb, var(--color-primary) 10%, transparent); font-size: var(--text-small); font-weight: 700; color: var(--color-primary); vertical-align: middle; }\n .b-flow .via { font-family: var(--font-mono); font-size: var(--text-small); font-weight: 700; color: var(--color-primary); white-space: nowrap; }\n .b-flow .icon { font-size: 18px; font-weight: 700; color: #fff; background: var(--flow-grad); }\n .b-flow.has-focus > li:not(.is-focus) { opacity: .35; }\n .b-flow > li.is-focus .icon { background: var(--color-accent); color: var(--color-ink); }\n .b-flow > li.is-focus dt { color: var(--color-ink); }\n\n /* 1 \u30AB\u30E9\u30E0\u69CB\u6210: \u5DE6\u306B STEP \u30D4\u30EB\u3001\u7E26\u30EC\u30FC\u30EB\u3001\u70B9\u3068\u70B9\u7DDA\u3001\u53F3\u306B\u898B\u51FA\u3057\u3068\u8AAC\u660E */\n .b-flow-rail { padding-left: 180px; position: relative; }\n .b-flow-rail::before { content: \"\"; width: 22px; height: 100%; background: color-mix(in srgb, var(--color-ink) 7%, transparent); margin-left: -11px; display: block; position: absolute; top: 0; left: 180px; }\n .b-flow-rail > li { position: relative; }\n .b-flow-rail > li:not(:last-child) { margin-bottom: 60px; }\n .b-flow-rail > li .icon { padding: 10px 28px; display: block; position: absolute; top: 0; left: -180px; z-index: 2; }\n .b-flow-rail > li .icon::after { content: \"\"; border-style: solid; border-width: 8px 0 8px 14px; border-color: transparent transparent transparent color-mix(in srgb, var(--color-primary) 55%, white); position: absolute; top: 50%; left: 100%; transform: translateY(-50%); }\n .b-flow-rail > li.is-focus .icon::after { border-left-color: var(--color-accent); }\n .b-flow-rail > li .via { position: absolute; top: -30px; left: 28px; transform: translateY(-50%); }\n .b-flow-rail > li dl { padding-left: 100px; position: relative; }\n .b-flow-rail > li dl::before, .b-flow-rail > li dl::after { content: \"\"; display: block; position: absolute; top: 24px; }\n .b-flow-rail > li dl::before { width: 11px; height: 11px; margin-top: -5px; background: var(--color-primary); border-radius: 50%; left: -6px; z-index: 1; }\n .b-flow-rail > li.is-focus dl::before { background: var(--color-accent); }\n .b-flow-rail > li dl::after { width: 72px; border-bottom: 2px dashed color-mix(in srgb, var(--color-ink) 40%, transparent); left: 8px; }\n .b-flow-rail > li dl dt { margin-bottom: 6px; }\n\n /* \u30DD\u30C3\u30D7: \u5439\u304D\u51FA\u3057\u306E\u756A\u53F7 + \u67A0\u30AB\u30FC\u30C9\u3092\u6A2A\u306B\u4E26\u3079\u3001\u9593\u306B \u203A */\n .b-flow-pop { --flow-gap: 56px; display: flex; justify-content: space-between; gap: var(--flow-gap); }\n .b-flow-pop > li { flex: 1 1 0; min-width: 0; position: relative; }\n .b-flow-pop > li .icon { font-family: var(--font-mono); font-size: 26px; line-height: 72px; width: 72px; background: var(--color-primary); margin: 0 auto 28px; display: block; border-radius: 50%; text-align: center; position: relative; letter-spacing: 2px; }\n .b-flow-pop > li .icon::before { content: \"\"; border: solid transparent; border-width: 12px; border-top-color: var(--color-primary); position: absolute; top: calc(100% - 3px); left: 50%; transform: translateX(-50%); }\n .b-flow-pop > li.is-focus .icon::before { border-top-color: var(--color-accent); }\n .b-flow-pop > li .via { position: absolute; top: 24px; right: calc(100% + var(--flow-gap) / 2 + 4px); transform: translateX(50%); }\n .b-flow-pop > li dl { padding: 32px 10px; word-break: auto-phrase; text-wrap: balance; border: 4px solid var(--color-primary); position: relative; text-align: center; height: calc(100% - 100px); }\n .b-flow-pop > li.is-focus dl { border-color: var(--color-accent); }\n /* \u7BB1\u306E\u9593\u306E \u203A\u3002\u9699\u9593(--flow-gap)\u306E\u4E2D\u592E\u306B\u7F6E\u304D\u3001\u67A0\u7DDA\u306B\u91CD\u306D\u306A\u3044 */\n .b-flow-pop > li:not(:last-child) dl::before { content: \"\"; width: 36px; height: 36px; display: block; border-top: 8px solid var(--color-primary); border-right: 8px solid var(--color-primary); position: absolute; top: 50%; left: calc(100% + var(--flow-gap) / 2 - 8px); transform: translate(-50%, -50%) rotate(45deg); }\n .b-flow-pop > li dl dt { margin-bottom: 10px; word-break: keep-all; }\n .b-flow-pop > li dl dt .phase { display: block; margin: 8px auto 0; padding: .15em .6em; font-size: 18px; width: fit-content; max-width: 100%; box-sizing: border-box; white-space: nowrap; }\n\n /* \u67A0\u7DDA\u3092\u4F7F\u3063\u305F\u30C7\u30B6\u30A4\u30F3: \u89D2\u4E38\u306E\u67A0\u3092\u7E26\u306B\u7A4D\u307F\u3001\u70B9\u7DDA\u3068 \u25BD \u3067\u3064\u306A\u3050 */\n .b-flow-boxed > li { position: relative; }\n .b-flow-boxed > li:not(:last-child) { margin-bottom: 40px; }\n .b-flow-boxed > li:not(:first-child)::before { content: \"\"; height: 60px; display: block; border-left: 5px dotted color-mix(in srgb, var(--color-ink) 15%, transparent); position: absolute; top: -40px; left: calc(12% + 40px); z-index: 1; }\n .b-flow-boxed > li .via { position: absolute; top: -20px; left: calc(12% + 72px); transform: translateY(-50%); }\n .b-flow-boxed > li dl { width: 100%; padding: 8px 36px; display: flex; align-items: center; border: 3px solid var(--color-primary); border-radius: 14px; position: relative; background: var(--color-surface); }\n .b-flow-boxed > li.is-focus dl { border-color: var(--color-accent); }\n .b-flow-boxed > li:not(:last-child) dl::before, .b-flow-boxed > li:not(:last-child) dl::after { content: \"\"; border: solid transparent; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); }\n .b-flow-boxed > li:not(:last-child) dl::before { border-width: 26px; border-top-color: var(--color-primary); }\n .b-flow-boxed > li.is-focus:not(:last-child) dl::before { border-top-color: var(--color-accent); }\n .b-flow-boxed > li:not(:last-child) dl::after { border-width: 23px; border-top-color: var(--color-surface); }\n .b-flow-boxed > li dl dt { flex: 0 0 24%; margin-right: 2vw; text-align: center; }\n .b-flow-boxed > li dl dt .icon { padding: 4px 14px; margin: 0 auto 6px; display: block; border-radius: 999px; width: fit-content; position: relative; z-index: 2; }\n .b-flow-boxed > li dl dd { flex: 1; }\n .b-flow-boxed > li dl dd .phase { display: block; width: fit-content; margin: 0 0 4px; }\n\n /* \u30B9\u30BF\u30A4\u30EA\u30C3\u30B7\u30E5: \u5168\u4F53\u3092 1 \u3064\u306E\u67A0\u3067\u56F2\u307F\u3001\u533A\u5207\u308A\u7DDA\u306B \u25BD */\n .b-flow-framed { border: 4px solid var(--color-primary); }\n .b-flow-framed > li { padding: 12px 36px; position: relative; }\n .b-flow-framed > li:not(:last-child) { border-bottom: 4px solid var(--color-primary); }\n .b-flow-framed > li:not(:last-child)::before, .b-flow-framed > li:not(:last-child)::after { content: \"\"; border: solid transparent; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 1; }\n .b-flow-framed > li:not(:last-child)::before { border-width: 26px; border-top-color: var(--color-primary); }\n .b-flow-framed > li:not(:last-child)::after { border-width: 21px; border-top-color: var(--color-surface); }\n .b-flow-framed > li .via { position: absolute; top: 0; left: calc(50% + 44px); transform: translateY(-50%); background: var(--color-surface); padding: 0 10px; z-index: 2; }\n .b-flow-framed > li dl { display: flex; align-items: center; }\n .b-flow-framed > li dl dt { flex: 0 0 24%; margin-right: 1vw; text-align: center; }\n .b-flow-framed > li dl dt .icon { padding: 4px 14px; margin: 0 auto 6px; display: block; border-radius: 999px; width: fit-content; }\n .b-flow-framed > li dl dd { flex: 1; }\n .b-flow-framed > li dl dd .phase { display: block; width: fit-content; margin: 0 0 4px; }\n\n /* 2 \u30AB\u30E9\u30E0\u69CB\u6210: \u53F3\u7AEF\u304C\u77E2\u5370\u306E\u67A0\u3092 2 \u5217\u306B */\n .b-flow-grid { display: flex; flex-wrap: wrap; gap: 48px 4%; }\n .b-flow-grid > li { padding: 28px 44px 24px 36px; flex: 0 0 48%; border: 3px solid var(--color-primary); position: relative; background: var(--color-surface); }\n .b-flow-grid > li.is-focus { border-color: var(--color-accent); }\n .b-flow-grid > li:not(:last-child)::before, .b-flow-grid > li:not(:last-child)::after { content: \"\"; border: solid transparent; position: absolute; top: 50%; left: 100%; transform: translateY(-50%); }\n .b-flow-grid > li:not(:last-child)::before { border-width: 30px; border-left-color: var(--color-primary); }\n .b-flow-grid > li.is-focus:not(:last-child)::before { border-left-color: var(--color-accent); }\n .b-flow-grid > li:not(:last-child)::after { border-width: 27px; border-left-color: var(--color-surface); }\n .b-flow-grid > li .icon { padding: 7px 28px; display: block; border-radius: 999px; position: absolute; top: -18px; left: -14px; z-index: 2; }\n .b-flow-grid > li .via { display: none; }\n .b-flow-grid > li dl dt { margin-bottom: 6px; }\n}\n";
12
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,aAAa,mlBAuBzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,qgYA0HrB,CAAC"}
package/dist/styles.js ADDED
@@ -0,0 +1,157 @@
1
+ /**
2
+ * basic の既定テーマ。Tailwind v4 の `@theme` トークンで、利用者は slide.config.ts の `theme` に
3
+ * 指定した CSS で同名トークンを上書きして色・フォント・文字サイズを差し替える。
4
+ * 色は `bg-primary` `text-ink`、フォントは `font-sans`、サイズは `text-h1` のように utility になる。
5
+ */
6
+ export const DEFAULT_THEME = `
7
+ @theme {
8
+ --color-primary: #2a5bd7;
9
+ --color-primary-deep: #163a8f;
10
+ --color-accent: #e8c547;
11
+ --color-ink: #222222;
12
+ --color-muted: #666666;
13
+ --color-faint: #888888;
14
+ --color-surface: #ffffff;
15
+ --color-code: #1e1e1e;
16
+ --color-code-ink: #eeeeee;
17
+
18
+ --font-sans: "Helvetica Neue", Arial, "Hiragino Sans", "Noto Sans JP", sans-serif;
19
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
20
+
21
+ --text-body: 28px;
22
+ --text-small: 22px;
23
+ --text-h1: 64px;
24
+ --text-h2: 44px;
25
+ --text-h3: 34px;
26
+ --text-h4: 30px;
27
+ --text-display: 96px;
28
+ }
29
+ `;
30
+ /**
31
+ * utility を付けられない要素(RichText が生成する markdown 由来の p / ul / code など)のための最小 CSS。
32
+ * Layout 自体の見た目は layouts.tsx の className で持つ。
33
+ */
34
+ export const BASIC_CSS = `
35
+ @layer components {
36
+ .yd-slide { font-family: var(--font-sans); color: var(--color-ink); font-size: var(--text-body); line-height: 1.5; }
37
+ .b-body p { margin: 0 0 .6em; }
38
+ .b-body p:last-child { margin-bottom: 0; }
39
+ .b-body ul { list-style: disc; padding-left: 1.2em; }
40
+ .b-body ol { list-style: decimal; padding-left: 1.2em; }
41
+ .b-body li::marker { color: var(--color-accent); }
42
+ /* 本文中のコード。合字(-> が → になる等)は原文と違って見えるので切る */
43
+ .yd-slide :not(pre) > code { font-family: var(--font-mono); font-size: .9em; font-variant-ligatures: none; background: color-mix(in srgb, var(--color-ink) 8%, transparent); padding: 0 .3em; border-radius: 4px; }
44
+ .b-body a { color: var(--color-primary); text-decoration: underline; }
45
+
46
+ /* code: pane の寸法(--pane-w / --pane-h)と行数・最大行長から、収まる最大のフォントサイズを選ぶ */
47
+ .yd-slide { --pane-w: 1120px; --pane-h: 500px; }
48
+ .b-code {
49
+ font-size: max(14px, min(
50
+ var(--text-body),
51
+ calc((var(--pane-w) - 48px) / var(--code-cols, 40) / 0.62),
52
+ calc((var(--pane-h) - var(--code-chrome, 40px)) / var(--code-rows, 10) / 1.375),
53
+ var(--code-fit, 9999px)
54
+ ));
55
+ /* 下限まで縮めても入らない長い行は折り返す。はみ出して読めないよりよい */
56
+ white-space: pre-wrap;
57
+ overflow-wrap: anywhere;
58
+ font-variant-ligatures: none;
59
+ }
60
+ .b-code .hljs { color: var(--color-code-ink); }
61
+ .hljs-comment, .hljs-quote { color: #8b949e; font-style: italic; }
62
+ .hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-type, .hljs-built_in, .hljs-doctag, .hljs-meta { color: #ff7b72; }
63
+ .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attr, .hljs-meta .hljs-string { color: #a5d6ff; }
64
+ .hljs-number, .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-variable, .hljs-template-variable { color: #79c0ff; }
65
+ .hljs-title, .hljs-section, .hljs-name, .hljs-selector-id, .hljs-selector-class, .hljs-function .hljs-title { color: #d2a8ff; }
66
+ .hljs-attribute, .hljs-params, .hljs-property { color: #ffa657; }
67
+ .hljs-emphasis { font-style: italic; }
68
+ .hljs-strong { font-weight: bold; }
69
+ .hljs-deletion { color: #ffa198; }
70
+
71
+ /* ---- flow(手順)。https://www.ameamelog.com/css-flow/ の 5 パターンを移植。寸法はスライド向けに 1.5 倍 ---- */
72
+ .b-flow { --flow-grad: linear-gradient(to right, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 55%, white) 100%); margin: auto 0; padding: 0; list-style: none; width: 100%; }
73
+ .b-flow > li { list-style: none; }
74
+ .b-flow dl, .b-flow dd { margin: 0; }
75
+ .b-flow dt { font-size: var(--text-h4); font-weight: 700; color: var(--color-primary); line-height: 1.3; }
76
+ .b-flow dd { font-size: var(--text-small); color: color-mix(in srgb, var(--color-ink) 80%, transparent); line-height: 1.45; }
77
+ .b-flow .phase { display: inline-block; margin-left: .6em; padding: .1em .7em; border-radius: 999px; background: color-mix(in srgb, var(--color-primary) 10%, transparent); font-size: var(--text-small); font-weight: 700; color: var(--color-primary); vertical-align: middle; }
78
+ .b-flow .via { font-family: var(--font-mono); font-size: var(--text-small); font-weight: 700; color: var(--color-primary); white-space: nowrap; }
79
+ .b-flow .icon { font-size: 18px; font-weight: 700; color: #fff; background: var(--flow-grad); }
80
+ .b-flow.has-focus > li:not(.is-focus) { opacity: .35; }
81
+ .b-flow > li.is-focus .icon { background: var(--color-accent); color: var(--color-ink); }
82
+ .b-flow > li.is-focus dt { color: var(--color-ink); }
83
+
84
+ /* 1 カラム構成: 左に STEP ピル、縦レール、点と点線、右に見出しと説明 */
85
+ .b-flow-rail { padding-left: 180px; position: relative; }
86
+ .b-flow-rail::before { content: ""; width: 22px; height: 100%; background: color-mix(in srgb, var(--color-ink) 7%, transparent); margin-left: -11px; display: block; position: absolute; top: 0; left: 180px; }
87
+ .b-flow-rail > li { position: relative; }
88
+ .b-flow-rail > li:not(:last-child) { margin-bottom: 60px; }
89
+ .b-flow-rail > li .icon { padding: 10px 28px; display: block; position: absolute; top: 0; left: -180px; z-index: 2; }
90
+ .b-flow-rail > li .icon::after { content: ""; border-style: solid; border-width: 8px 0 8px 14px; border-color: transparent transparent transparent color-mix(in srgb, var(--color-primary) 55%, white); position: absolute; top: 50%; left: 100%; transform: translateY(-50%); }
91
+ .b-flow-rail > li.is-focus .icon::after { border-left-color: var(--color-accent); }
92
+ .b-flow-rail > li .via { position: absolute; top: -30px; left: 28px; transform: translateY(-50%); }
93
+ .b-flow-rail > li dl { padding-left: 100px; position: relative; }
94
+ .b-flow-rail > li dl::before, .b-flow-rail > li dl::after { content: ""; display: block; position: absolute; top: 24px; }
95
+ .b-flow-rail > li dl::before { width: 11px; height: 11px; margin-top: -5px; background: var(--color-primary); border-radius: 50%; left: -6px; z-index: 1; }
96
+ .b-flow-rail > li.is-focus dl::before { background: var(--color-accent); }
97
+ .b-flow-rail > li dl::after { width: 72px; border-bottom: 2px dashed color-mix(in srgb, var(--color-ink) 40%, transparent); left: 8px; }
98
+ .b-flow-rail > li dl dt { margin-bottom: 6px; }
99
+
100
+ /* ポップ: 吹き出しの番号 + 枠カードを横に並べ、間に › */
101
+ .b-flow-pop { --flow-gap: 56px; display: flex; justify-content: space-between; gap: var(--flow-gap); }
102
+ .b-flow-pop > li { flex: 1 1 0; min-width: 0; position: relative; }
103
+ .b-flow-pop > li .icon { font-family: var(--font-mono); font-size: 26px; line-height: 72px; width: 72px; background: var(--color-primary); margin: 0 auto 28px; display: block; border-radius: 50%; text-align: center; position: relative; letter-spacing: 2px; }
104
+ .b-flow-pop > li .icon::before { content: ""; border: solid transparent; border-width: 12px; border-top-color: var(--color-primary); position: absolute; top: calc(100% - 3px); left: 50%; transform: translateX(-50%); }
105
+ .b-flow-pop > li.is-focus .icon::before { border-top-color: var(--color-accent); }
106
+ .b-flow-pop > li .via { position: absolute; top: 24px; right: calc(100% + var(--flow-gap) / 2 + 4px); transform: translateX(50%); }
107
+ .b-flow-pop > li dl { padding: 32px 10px; word-break: auto-phrase; text-wrap: balance; border: 4px solid var(--color-primary); position: relative; text-align: center; height: calc(100% - 100px); }
108
+ .b-flow-pop > li.is-focus dl { border-color: var(--color-accent); }
109
+ /* 箱の間の ›。隙間(--flow-gap)の中央に置き、枠線に重ねない */
110
+ .b-flow-pop > li:not(:last-child) dl::before { content: ""; width: 36px; height: 36px; display: block; border-top: 8px solid var(--color-primary); border-right: 8px solid var(--color-primary); position: absolute; top: 50%; left: calc(100% + var(--flow-gap) / 2 - 8px); transform: translate(-50%, -50%) rotate(45deg); }
111
+ .b-flow-pop > li dl dt { margin-bottom: 10px; word-break: keep-all; }
112
+ .b-flow-pop > li dl dt .phase { display: block; margin: 8px auto 0; padding: .15em .6em; font-size: 18px; width: fit-content; max-width: 100%; box-sizing: border-box; white-space: nowrap; }
113
+
114
+ /* 枠線を使ったデザイン: 角丸の枠を縦に積み、点線と ▽ でつなぐ */
115
+ .b-flow-boxed > li { position: relative; }
116
+ .b-flow-boxed > li:not(:last-child) { margin-bottom: 40px; }
117
+ .b-flow-boxed > li:not(:first-child)::before { content: ""; height: 60px; display: block; border-left: 5px dotted color-mix(in srgb, var(--color-ink) 15%, transparent); position: absolute; top: -40px; left: calc(12% + 40px); z-index: 1; }
118
+ .b-flow-boxed > li .via { position: absolute; top: -20px; left: calc(12% + 72px); transform: translateY(-50%); }
119
+ .b-flow-boxed > li dl { width: 100%; padding: 8px 36px; display: flex; align-items: center; border: 3px solid var(--color-primary); border-radius: 14px; position: relative; background: var(--color-surface); }
120
+ .b-flow-boxed > li.is-focus dl { border-color: var(--color-accent); }
121
+ .b-flow-boxed > li:not(:last-child) dl::before, .b-flow-boxed > li:not(:last-child) dl::after { content: ""; border: solid transparent; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); }
122
+ .b-flow-boxed > li:not(:last-child) dl::before { border-width: 26px; border-top-color: var(--color-primary); }
123
+ .b-flow-boxed > li.is-focus:not(:last-child) dl::before { border-top-color: var(--color-accent); }
124
+ .b-flow-boxed > li:not(:last-child) dl::after { border-width: 23px; border-top-color: var(--color-surface); }
125
+ .b-flow-boxed > li dl dt { flex: 0 0 24%; margin-right: 2vw; text-align: center; }
126
+ .b-flow-boxed > li dl dt .icon { padding: 4px 14px; margin: 0 auto 6px; display: block; border-radius: 999px; width: fit-content; position: relative; z-index: 2; }
127
+ .b-flow-boxed > li dl dd { flex: 1; }
128
+ .b-flow-boxed > li dl dd .phase { display: block; width: fit-content; margin: 0 0 4px; }
129
+
130
+ /* スタイリッシュ: 全体を 1 つの枠で囲み、区切り線に ▽ */
131
+ .b-flow-framed { border: 4px solid var(--color-primary); }
132
+ .b-flow-framed > li { padding: 12px 36px; position: relative; }
133
+ .b-flow-framed > li:not(:last-child) { border-bottom: 4px solid var(--color-primary); }
134
+ .b-flow-framed > li:not(:last-child)::before, .b-flow-framed > li:not(:last-child)::after { content: ""; border: solid transparent; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 1; }
135
+ .b-flow-framed > li:not(:last-child)::before { border-width: 26px; border-top-color: var(--color-primary); }
136
+ .b-flow-framed > li:not(:last-child)::after { border-width: 21px; border-top-color: var(--color-surface); }
137
+ .b-flow-framed > li .via { position: absolute; top: 0; left: calc(50% + 44px); transform: translateY(-50%); background: var(--color-surface); padding: 0 10px; z-index: 2; }
138
+ .b-flow-framed > li dl { display: flex; align-items: center; }
139
+ .b-flow-framed > li dl dt { flex: 0 0 24%; margin-right: 1vw; text-align: center; }
140
+ .b-flow-framed > li dl dt .icon { padding: 4px 14px; margin: 0 auto 6px; display: block; border-radius: 999px; width: fit-content; }
141
+ .b-flow-framed > li dl dd { flex: 1; }
142
+ .b-flow-framed > li dl dd .phase { display: block; width: fit-content; margin: 0 0 4px; }
143
+
144
+ /* 2 カラム構成: 右端が矢印の枠を 2 列に */
145
+ .b-flow-grid { display: flex; flex-wrap: wrap; gap: 48px 4%; }
146
+ .b-flow-grid > li { padding: 28px 44px 24px 36px; flex: 0 0 48%; border: 3px solid var(--color-primary); position: relative; background: var(--color-surface); }
147
+ .b-flow-grid > li.is-focus { border-color: var(--color-accent); }
148
+ .b-flow-grid > li:not(:last-child)::before, .b-flow-grid > li:not(:last-child)::after { content: ""; border: solid transparent; position: absolute; top: 50%; left: 100%; transform: translateY(-50%); }
149
+ .b-flow-grid > li:not(:last-child)::before { border-width: 30px; border-left-color: var(--color-primary); }
150
+ .b-flow-grid > li.is-focus:not(:last-child)::before { border-left-color: var(--color-accent); }
151
+ .b-flow-grid > li:not(:last-child)::after { border-width: 27px; border-left-color: var(--color-surface); }
152
+ .b-flow-grid > li .icon { padding: 7px 28px; display: block; border-radius: 999px; position: absolute; top: -18px; left: -14px; z-index: 2; }
153
+ .b-flow-grid > li .via { display: none; }
154
+ .b-flow-grid > li dl dt { margin-bottom: 6px; }
155
+ }
156
+ `;
157
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuB5B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,62 @@
1
1
  {
2
2
  "name": "@yadeck/slide-components-basic",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "YADECK: minimal tag set (header / section-header / heading / body / list / code / image / quote / note)",
5
+ "homepage": "https://onfi.github.io/yadeck/",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/onfi/yadeck.git",
9
+ "directory": "packages/slide-components-basic"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/onfi/yadeck/issues"
13
+ },
14
+ "type": "module",
15
+ "main": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js"
21
+ }
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "src",
26
+ "!src/**/*.test.ts",
27
+ "!src/**/*.test.tsx",
28
+ "!src/**/__snapshots__"
29
+ ],
30
+ "scripts": {
31
+ "build": "tsc -b"
32
+ },
33
+ "dependencies": {
34
+ "@yadeck/slide-core": "^0.1.0",
35
+ "@yadeck/slide-schema": "^0.1.0",
36
+ "highlight.js": "^11.12.0"
37
+ },
38
+ "peerDependencies": {
39
+ "react": "^19.0.0",
40
+ "zod": "^4.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "react": "^19.3.0",
44
+ "zod": "^4.6.0"
45
+ },
46
+ "license": "MIT",
47
+ "author": "onfi",
48
+ "keywords": [
49
+ "yadeck",
50
+ "slides",
51
+ "presentation",
52
+ "yaml",
53
+ "react",
54
+ "ai"
55
+ ],
56
+ "engines": {
57
+ "node": ">=22"
58
+ },
59
+ "publishConfig": {
60
+ "access": "public"
61
+ }
62
+ }
package/src/chrome.tsx ADDED
@@ -0,0 +1,29 @@
1
+ import { Block, RichText, type BlockNode } from "@yadeck/slide-core";
2
+
3
+ /** スライド枠いっぱいに広げる共通のパディング付きコンテナ */
4
+ export const PAGE = "absolute inset-0 flex flex-col gap-6 px-20 py-14";
5
+
6
+ /**
7
+ * スライド上部の見出し。accent の縦バーと primary の細い下線で、表紙と同じ文法にする。
8
+ * slide の description があれば見出しの下に 1 行添える
9
+ */
10
+ /** 見出しの表示幅(全角 2、半角 1)。長い見出しは 1 段小さくして 1 行に収める */
11
+ function headingWidth(text: string): number {
12
+ let w = 0;
13
+ for (const ch of text.replace(/[`*_]/g, "")) w += (ch.codePointAt(0) ?? 0) > 0x2e7f ? 2 : 1;
14
+ return w;
15
+ }
16
+
17
+ export const SlideHeading = ({ block, description }: { block: BlockNode; description?: string }) => (
18
+ <header className="flex flex-col gap-2">
19
+ <div
20
+ className={`flex items-center gap-4 border-b-2 border-primary/30 pb-3 ${
21
+ headingWidth(block.text ?? "") > 44 ? "[&_.b-heading]:text-h3" : "[&_.b-heading]:text-h2"
22
+ }`}
23
+ >
24
+ <span className="h-10 w-2 shrink-0 rounded-sm bg-accent" />
25
+ <Block data={block} />
26
+ </div>
27
+ {description && <RichText as="p" className="m-0 pl-6 text-small leading-snug text-muted" text={description} />}
28
+ </header>
29
+ );