@bendyline/squisq 1.1.0 → 1.1.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/dist/ContentContainer-DNx460y8.d.ts +88 -0
- package/dist/{Doc-1hmT1LZl.d.ts → Doc-Cvt2lyzn.d.ts} +56 -4
- package/dist/__tests__/markdownToDoc.test.js +75 -0
- package/dist/__tests__/markdownToDoc.test.js.map +1 -1
- package/dist/{chunk-PJ7AODIM.js → chunk-3WBJAZZ5.js} +394 -52
- package/dist/chunk-3WBJAZZ5.js.map +1 -0
- package/dist/{chunk-6YJPI6VI.js → chunk-4X3JQXNM.js} +1 -1
- package/dist/{chunk-S4F2RY37.js → chunk-CORGFIFU.js} +1 -1
- package/dist/chunk-CORGFIFU.js.map +1 -0
- package/dist/chunk-DNJKBAI7.js +1 -0
- package/dist/chunk-DNJKBAI7.js.map +1 -0
- package/dist/{chunk-VP5SZTZ2.js → chunk-MIBRIRGJ.js} +2 -139
- package/dist/chunk-MIBRIRGJ.js.map +1 -0
- package/dist/{chunk-URU6QMLY.js → chunk-NJLL5XYC.js} +15 -8
- package/dist/chunk-NJLL5XYC.js.map +1 -0
- package/dist/chunk-OFU53HI7.js +165 -0
- package/dist/chunk-OFU53HI7.js.map +1 -0
- package/dist/chunk-TSG2OSE6.js +145 -0
- package/dist/chunk-TSG2OSE6.js.map +1 -0
- package/dist/{chunk-O5HCIUAD.js → chunk-TVPKD76V.js} +81 -187
- package/dist/chunk-TVPKD76V.js.map +1 -0
- package/dist/contentExtractor-BNfVJV2U.d.ts +113 -0
- package/dist/doc/audioMapping.d.ts +36 -0
- package/dist/doc/audioMapping.d.ts.map +1 -0
- package/dist/doc/audioMapping.js +279 -0
- package/dist/doc/audioMapping.js.map +1 -0
- package/dist/doc/index.d.ts +1 -0
- package/dist/doc/index.d.ts.map +1 -1
- package/dist/doc/index.js +1 -0
- package/dist/doc/index.js.map +1 -1
- package/dist/doc/markdownToDoc.d.ts.map +1 -1
- package/dist/doc/markdownToDoc.js +126 -1
- package/dist/doc/markdownToDoc.js.map +1 -1
- package/dist/doc/templates/comparisonBar.d.ts.map +1 -1
- package/dist/doc/templates/comparisonBar.js +23 -5
- package/dist/doc/templates/comparisonBar.js.map +1 -1
- package/dist/doc/templates/coverBlock.d.ts.map +1 -1
- package/dist/doc/templates/coverBlock.js +3 -0
- package/dist/doc/templates/coverBlock.js.map +1 -1
- package/dist/doc/templates/dateEvent.d.ts.map +1 -1
- package/dist/doc/templates/dateEvent.js +4 -0
- package/dist/doc/templates/dateEvent.js.map +1 -1
- package/dist/doc/templates/definitionCard.d.ts.map +1 -1
- package/dist/doc/templates/definitionCard.js +4 -1
- package/dist/doc/templates/definitionCard.js.map +1 -1
- package/dist/doc/templates/factCard.d.ts.map +1 -1
- package/dist/doc/templates/factCard.js +4 -0
- package/dist/doc/templates/factCard.js.map +1 -1
- package/dist/doc/templates/fullBleedQuote.d.ts.map +1 -1
- package/dist/doc/templates/fullBleedQuote.js +2 -1
- package/dist/doc/templates/fullBleedQuote.js.map +1 -1
- package/dist/doc/templates/imageWithCaption.d.ts.map +1 -1
- package/dist/doc/templates/imageWithCaption.js +4 -0
- package/dist/doc/templates/imageWithCaption.js.map +1 -1
- package/dist/doc/templates/listBlock.d.ts.map +1 -1
- package/dist/doc/templates/listBlock.js +3 -0
- package/dist/doc/templates/listBlock.js.map +1 -1
- package/dist/doc/templates/mapBlock.d.ts.map +1 -1
- package/dist/doc/templates/mapBlock.js +3 -0
- package/dist/doc/templates/mapBlock.js.map +1 -1
- package/dist/doc/templates/photoGrid.d.ts.map +1 -1
- package/dist/doc/templates/photoGrid.js +3 -0
- package/dist/doc/templates/photoGrid.js.map +1 -1
- package/dist/doc/templates/pullQuote.d.ts.map +1 -1
- package/dist/doc/templates/pullQuote.js +4 -0
- package/dist/doc/templates/pullQuote.js.map +1 -1
- package/dist/doc/templates/quoteBlock.d.ts.map +1 -1
- package/dist/doc/templates/quoteBlock.js +4 -0
- package/dist/doc/templates/quoteBlock.js.map +1 -1
- package/dist/doc/templates/sectionHeader.d.ts.map +1 -1
- package/dist/doc/templates/sectionHeader.js +3 -2
- package/dist/doc/templates/sectionHeader.js.map +1 -1
- package/dist/doc/templates/statHighlight.d.ts.map +1 -1
- package/dist/doc/templates/statHighlight.js +4 -1
- package/dist/doc/templates/statHighlight.js.map +1 -1
- package/dist/doc/templates/titleBlock.d.ts.map +1 -1
- package/dist/doc/templates/titleBlock.js +3 -0
- package/dist/doc/templates/titleBlock.js.map +1 -1
- package/dist/doc/templates/twoColumn.d.ts.map +1 -1
- package/dist/doc/templates/twoColumn.js +7 -1
- package/dist/doc/templates/twoColumn.js.map +1 -1
- package/dist/doc/templates/videoPullQuote.d.ts.map +1 -1
- package/dist/doc/templates/videoPullQuote.js +4 -0
- package/dist/doc/templates/videoPullQuote.js.map +1 -1
- package/dist/doc/templates/videoWithCaption.d.ts.map +1 -1
- package/dist/doc/templates/videoWithCaption.js +3 -0
- package/dist/doc/templates/videoWithCaption.js.map +1 -1
- package/dist/doc/utils/themeUtils.d.ts +9 -0
- package/dist/doc/utils/themeUtils.d.ts.map +1 -1
- package/dist/doc/utils/themeUtils.js +26 -0
- package/dist/doc/utils/themeUtils.js.map +1 -1
- package/dist/markdown/convert.d.ts.map +1 -1
- package/dist/markdown/convert.js +16 -7
- package/dist/markdown/convert.js.map +1 -1
- package/dist/markdown/types.d.ts +4 -2
- package/dist/markdown/types.d.ts.map +1 -1
- package/dist/schemas/BlockTemplates.d.ts +2 -2
- package/dist/schemas/BlockTemplates.d.ts.map +1 -1
- package/dist/schemas/BlockTemplates.js +2 -2
- package/dist/schemas/BlockTemplates.js.map +1 -1
- package/dist/schemas/Doc.d.ts +52 -0
- package/dist/schemas/Doc.d.ts.map +1 -1
- package/dist/schemas/Doc.js.map +1 -1
- package/dist/schemas/themeLibrary.d.ts +2 -2
- package/dist/schemas/themeLibrary.d.ts.map +1 -1
- package/dist/schemas/themeLibrary.js +91 -26
- package/dist/schemas/themeLibrary.js.map +1 -1
- package/dist/story/index.d.ts +50 -5
- package/dist/story/index.js +15 -5
- package/dist/{themeLibrary-DR1VRo-8.d.ts → themeLibrary-VOHfPzRB.d.ts} +3 -3
- package/dist/transform/applyTransform.d.ts +22 -0
- package/dist/transform/applyTransform.d.ts.map +1 -0
- package/dist/transform/applyTransform.js +68 -0
- package/dist/transform/applyTransform.js.map +1 -0
- package/dist/transform/blockAnalyzer.d.ts +48 -0
- package/dist/transform/blockAnalyzer.d.ts.map +1 -0
- package/dist/transform/blockAnalyzer.js +135 -0
- package/dist/transform/blockAnalyzer.js.map +1 -0
- package/dist/transform/index.d.ts +6 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/index.js +4 -0
- package/dist/transform/index.js.map +1 -0
- package/dist/transform/registry.d.ts +19 -0
- package/dist/transform/registry.d.ts.map +1 -0
- package/dist/transform/registry.js +41 -0
- package/dist/transform/registry.js.map +1 -0
- package/dist/transform/styles/dataDriven.d.ts +4 -0
- package/dist/transform/styles/dataDriven.d.ts.map +1 -0
- package/dist/transform/styles/dataDriven.js +15 -0
- package/dist/transform/styles/dataDriven.js.map +1 -0
- package/dist/transform/styles/documentary.d.ts +4 -0
- package/dist/transform/styles/documentary.d.ts.map +1 -0
- package/dist/transform/styles/documentary.js +15 -0
- package/dist/transform/styles/documentary.js.map +1 -0
- package/dist/transform/styles/index.d.ts +6 -0
- package/dist/transform/styles/index.d.ts.map +1 -0
- package/dist/transform/styles/index.js +6 -0
- package/dist/transform/styles/index.js.map +1 -0
- package/dist/transform/styles/magazine.d.ts +4 -0
- package/dist/transform/styles/magazine.d.ts.map +1 -0
- package/dist/transform/styles/magazine.js +15 -0
- package/dist/transform/styles/magazine.js.map +1 -0
- package/dist/transform/styles/minimal.d.ts +4 -0
- package/dist/transform/styles/minimal.d.ts.map +1 -0
- package/dist/transform/styles/minimal.js +15 -0
- package/dist/transform/styles/minimal.js.map +1 -0
- package/dist/transform/styles/narrative.d.ts +4 -0
- package/dist/transform/styles/narrative.d.ts.map +1 -0
- package/dist/transform/styles/narrative.js +15 -0
- package/dist/transform/styles/narrative.js.map +1 -0
- package/dist/transform/templateSelector.d.ts +30 -0
- package/dist/transform/templateSelector.d.ts.map +1 -0
- package/dist/transform/templateSelector.js +218 -0
- package/dist/transform/templateSelector.js.map +1 -0
- package/dist/transform/timingAllocator.d.ts +21 -0
- package/dist/transform/timingAllocator.d.ts.map +1 -0
- package/dist/transform/timingAllocator.js +111 -0
- package/dist/transform/timingAllocator.js.map +1 -0
- package/dist/transform/types.d.ts +86 -0
- package/dist/transform/types.d.ts.map +1 -0
- package/dist/transform/types.js +9 -0
- package/dist/transform/types.js.map +1 -0
- package/dist/{types-DHiv_Pnm.d.ts → types-DYAzisMG.d.ts} +4 -2
- package/package.json +6 -1
- package/src/__tests__/markdownToDoc.test.ts +96 -0
- package/src/doc/audioMapping.ts +346 -0
- package/src/doc/index.ts +1 -0
- package/src/doc/markdownToDoc.ts +136 -2
- package/src/doc/templates/comparisonBar.ts +23 -5
- package/src/doc/templates/coverBlock.ts +3 -0
- package/src/doc/templates/dateEvent.ts +4 -0
- package/src/doc/templates/definitionCard.ts +4 -1
- package/src/doc/templates/factCard.ts +4 -0
- package/src/doc/templates/fullBleedQuote.ts +2 -1
- package/src/doc/templates/imageWithCaption.ts +4 -0
- package/src/doc/templates/listBlock.ts +3 -0
- package/src/doc/templates/mapBlock.ts +3 -0
- package/src/doc/templates/photoGrid.ts +3 -0
- package/src/doc/templates/pullQuote.ts +4 -0
- package/src/doc/templates/quoteBlock.ts +4 -0
- package/src/doc/templates/sectionHeader.ts +3 -2
- package/src/doc/templates/statHighlight.ts +4 -1
- package/src/doc/templates/titleBlock.ts +3 -0
- package/src/doc/templates/twoColumn.ts +7 -1
- package/src/doc/templates/videoPullQuote.ts +4 -0
- package/src/doc/templates/videoWithCaption.ts +3 -0
- package/src/doc/utils/themeUtils.ts +29 -0
- package/src/markdown/convert.ts +17 -7
- package/src/markdown/types.ts +4 -2
- package/src/schemas/BlockTemplates.ts +2 -2
- package/src/schemas/Doc.ts +60 -0
- package/src/schemas/themeLibrary.ts +95 -26
- package/src/transform/applyTransform.ts +83 -0
- package/src/transform/blockAnalyzer.ts +181 -0
- package/src/transform/index.ts +20 -0
- package/src/transform/registry.ts +47 -0
- package/src/transform/styles/dataDriven.ts +16 -0
- package/src/transform/styles/documentary.ts +16 -0
- package/src/transform/styles/index.ts +5 -0
- package/src/transform/styles/magazine.ts +16 -0
- package/src/transform/styles/minimal.ts +16 -0
- package/src/transform/styles/narrative.ts +16 -0
- package/src/transform/templateSelector.ts +294 -0
- package/src/transform/timingAllocator.ts +126 -0
- package/src/transform/types.ts +105 -0
- package/dist/chunk-O5HCIUAD.js.map +0 -1
- package/dist/chunk-PJ7AODIM.js.map +0 -1
- package/dist/chunk-S4F2RY37.js.map +0 -1
- package/dist/chunk-URU6QMLY.js.map +0 -1
- package/dist/chunk-VP5SZTZ2.js.map +0 -1
- /package/dist/{chunk-6YJPI6VI.js.map → chunk-4X3JQXNM.js.map} +0 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio Mapping
|
|
3
|
+
*
|
|
4
|
+
* Associates audio segments (MP3 files) with document blocks.
|
|
5
|
+
* Supports two modes:
|
|
6
|
+
*
|
|
7
|
+
* 1. **Explicit annotation**: Blocks with `{[audio=filename.mp3]}` in their
|
|
8
|
+
* heading annotation are directly mapped to that audio file.
|
|
9
|
+
*
|
|
10
|
+
* 2. **Auto-matching**: When no annotations exist but the container has MP3s
|
|
11
|
+
* with `.timing.json` files, matches MP3s to blocks by comparing the
|
|
12
|
+
* timing.json `sourceText` against block text content (word overlap).
|
|
13
|
+
* Falls back to filename-based matching (slugified title comparison).
|
|
14
|
+
*/
|
|
15
|
+
import { extractPlainText } from '../markdown/utils.js';
|
|
16
|
+
// ── Helpers ──────────────────────────────────────────────────────────
|
|
17
|
+
/**
|
|
18
|
+
* Parse a timing.json file from raw data.
|
|
19
|
+
*/
|
|
20
|
+
function parseTimingJson(data) {
|
|
21
|
+
try {
|
|
22
|
+
const text = new TextDecoder().decode(data);
|
|
23
|
+
const parsed = JSON.parse(text);
|
|
24
|
+
if (parsed && typeof parsed.sourceText === 'string' && typeof parsed.duration === 'number') {
|
|
25
|
+
return {
|
|
26
|
+
sourceText: parsed.sourceText,
|
|
27
|
+
bookmarks: Array.isArray(parsed.bookmarks) ? parsed.bookmarks : [],
|
|
28
|
+
duration: parsed.duration,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Normalize text for comparison: lowercase, strip punctuation, split into word set.
|
|
39
|
+
*/
|
|
40
|
+
function normalizeToWords(text) {
|
|
41
|
+
const words = text
|
|
42
|
+
.toLowerCase()
|
|
43
|
+
.replace(/[^\w\s]/g, ' ')
|
|
44
|
+
.split(/\s+/)
|
|
45
|
+
.filter((w) => w.length > 2);
|
|
46
|
+
return new Set(words);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Calculate Jaccard similarity between two texts (word overlap).
|
|
50
|
+
* Returns 0–1 where 1 = identical word sets.
|
|
51
|
+
*/
|
|
52
|
+
export function scoreTextSimilarity(a, b) {
|
|
53
|
+
const wordsA = normalizeToWords(a);
|
|
54
|
+
const wordsB = normalizeToWords(b);
|
|
55
|
+
if (wordsA.size === 0 || wordsB.size === 0)
|
|
56
|
+
return 0;
|
|
57
|
+
let intersection = 0;
|
|
58
|
+
for (const w of wordsA) {
|
|
59
|
+
if (wordsB.has(w))
|
|
60
|
+
intersection++;
|
|
61
|
+
}
|
|
62
|
+
const union = new Set([...wordsA, ...wordsB]).size;
|
|
63
|
+
return union > 0 ? intersection / union : 0;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Slugify a title for filename comparison.
|
|
67
|
+
* "The Behring Gambit" → "the-behring-gambit"
|
|
68
|
+
*/
|
|
69
|
+
function slugify(text) {
|
|
70
|
+
return text
|
|
71
|
+
.toLowerCase()
|
|
72
|
+
.replace(/[^\w\s-]/g, '')
|
|
73
|
+
.replace(/\s+/g, '-')
|
|
74
|
+
.replace(/-+/g, '-')
|
|
75
|
+
.replace(/^-|-$/g, '');
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Extract plain text from a block's contents and title.
|
|
79
|
+
*/
|
|
80
|
+
function blockToPlainText(block) {
|
|
81
|
+
const parts = [];
|
|
82
|
+
if (block.title)
|
|
83
|
+
parts.push(block.title);
|
|
84
|
+
if (block.contents) {
|
|
85
|
+
for (const node of block.contents) {
|
|
86
|
+
parts.push(extractPlainText(node));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return parts.join('\n');
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Flatten a block tree into a linear array of leaf blocks
|
|
93
|
+
* (blocks that represent actual content sections).
|
|
94
|
+
*/
|
|
95
|
+
function flattenForAudio(blocks) {
|
|
96
|
+
const result = [];
|
|
97
|
+
for (const block of blocks) {
|
|
98
|
+
if (block.children && block.children.length > 0) {
|
|
99
|
+
result.push(...flattenForAudio(block.children));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
result.push(block);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
// ── Core Functions ───────────────────────────────────────────────────
|
|
108
|
+
/**
|
|
109
|
+
* Discover all MP3 files in a container and load their timing data.
|
|
110
|
+
*/
|
|
111
|
+
async function discoverMp3s(container) {
|
|
112
|
+
const files = await container.listFiles();
|
|
113
|
+
const mp3Files = files.filter((f) => f.path.endsWith('.mp3'));
|
|
114
|
+
const results = [];
|
|
115
|
+
for (const file of mp3Files) {
|
|
116
|
+
const filename = file.path.split('/').pop() ?? file.path;
|
|
117
|
+
let timing = null;
|
|
118
|
+
// Try to load timing.json
|
|
119
|
+
const timingPath = `${file.path}.timing.json`;
|
|
120
|
+
const timingData = await container.readFile(timingPath);
|
|
121
|
+
if (timingData) {
|
|
122
|
+
timing = parseTimingJson(timingData);
|
|
123
|
+
}
|
|
124
|
+
results.push({ path: file.path, filename, timing });
|
|
125
|
+
}
|
|
126
|
+
return results;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Resolve audio from explicit `{[audio=filename.mp3]}` annotations on blocks.
|
|
130
|
+
* Returns the matched pairs or an empty array if no annotations found.
|
|
131
|
+
*/
|
|
132
|
+
function resolveFromAnnotations(blocks, mp3s) {
|
|
133
|
+
const matches = [];
|
|
134
|
+
const flat = flattenForAudio(blocks);
|
|
135
|
+
for (const block of flat) {
|
|
136
|
+
const audioRef = block.templateOverrides?.audio;
|
|
137
|
+
if (!audioRef)
|
|
138
|
+
continue;
|
|
139
|
+
// Find the MP3 by filename (exact or suffix match)
|
|
140
|
+
const mp3 = mp3s.find((m) => m.filename === audioRef || m.path === audioRef || m.path.endsWith(`/${audioRef}`));
|
|
141
|
+
if (mp3) {
|
|
142
|
+
matches.push({ block, mp3 });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return matches;
|
|
146
|
+
}
|
|
147
|
+
/** Minimum similarity score to consider a content match. */
|
|
148
|
+
const MIN_CONTENT_SIMILARITY = 0.35;
|
|
149
|
+
/** Minimum similarity score for filename-based matching. */
|
|
150
|
+
const MIN_FILENAME_SIMILARITY = 0.5;
|
|
151
|
+
/**
|
|
152
|
+
* Auto-match MP3 files to blocks by content similarity.
|
|
153
|
+
* Uses timing.json sourceText when available, falls back to filename matching.
|
|
154
|
+
*/
|
|
155
|
+
function autoMatchBlocks(blocks, mp3s) {
|
|
156
|
+
const flat = flattenForAudio(blocks);
|
|
157
|
+
if (flat.length === 0 || mp3s.length === 0)
|
|
158
|
+
return [];
|
|
159
|
+
// Score all (mp3, block) pairs
|
|
160
|
+
const scoredPairs = [];
|
|
161
|
+
for (let mi = 0; mi < mp3s.length; mi++) {
|
|
162
|
+
const mp3 = mp3s[mi];
|
|
163
|
+
for (let bi = 0; bi < flat.length; bi++) {
|
|
164
|
+
const block = flat[bi];
|
|
165
|
+
const blockText = blockToPlainText(block);
|
|
166
|
+
if (!blockText.trim())
|
|
167
|
+
continue;
|
|
168
|
+
let score = 0;
|
|
169
|
+
// Primary: content similarity via timing.json sourceText
|
|
170
|
+
if (mp3.timing?.sourceText) {
|
|
171
|
+
score = scoreTextSimilarity(mp3.timing.sourceText, blockText);
|
|
172
|
+
}
|
|
173
|
+
// Fallback: filename-based matching
|
|
174
|
+
if (score < MIN_CONTENT_SIMILARITY && block.title) {
|
|
175
|
+
const titleSlug = slugify(block.title);
|
|
176
|
+
const fileSlug = slugify(mp3.filename.replace(/\.mp3$/, ''));
|
|
177
|
+
// Check if the title slug appears in the filename slug
|
|
178
|
+
if (fileSlug.includes(titleSlug) && titleSlug.length >= 3) {
|
|
179
|
+
score = Math.max(score, MIN_FILENAME_SIMILARITY + 0.1);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (score >= MIN_CONTENT_SIMILARITY) {
|
|
183
|
+
scoredPairs.push({ block, blockIndex: bi, mp3, mp3Index: mi, score });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Greedy assignment: highest score first, each mp3 and block used at most once
|
|
188
|
+
scoredPairs.sort((a, b) => b.score - a.score);
|
|
189
|
+
const usedBlocks = new Set();
|
|
190
|
+
const usedMp3s = new Set();
|
|
191
|
+
const matches = [];
|
|
192
|
+
for (const pair of scoredPairs) {
|
|
193
|
+
if (usedBlocks.has(pair.blockIndex) || usedMp3s.has(pair.mp3Index))
|
|
194
|
+
continue;
|
|
195
|
+
usedBlocks.add(pair.blockIndex);
|
|
196
|
+
usedMp3s.add(pair.mp3Index);
|
|
197
|
+
matches.push({ block: pair.block, mp3: pair.mp3, score: pair.score });
|
|
198
|
+
}
|
|
199
|
+
return matches;
|
|
200
|
+
}
|
|
201
|
+
// ── Public API ───────────────────────────────────────────────────────
|
|
202
|
+
/**
|
|
203
|
+
* Resolve audio mapping for a Doc using a ContentContainer.
|
|
204
|
+
*
|
|
205
|
+
* Tries explicit `{[audio=filename.mp3]}` annotations first,
|
|
206
|
+
* then falls back to auto-matching by content similarity.
|
|
207
|
+
*
|
|
208
|
+
* Returns a new Doc with `audio.segments` populated and blocks
|
|
209
|
+
* assigned to the correct `audioSegment` indices.
|
|
210
|
+
*
|
|
211
|
+
* @param doc - The source Doc (not mutated).
|
|
212
|
+
* @param container - ContentContainer with MP3 and timing files.
|
|
213
|
+
* @returns New Doc with audio segments resolved, or original doc if no matches.
|
|
214
|
+
*/
|
|
215
|
+
export async function resolveAudioMapping(doc, container) {
|
|
216
|
+
// Discover MP3 files and their timing data
|
|
217
|
+
const mp3s = await discoverMp3s(container);
|
|
218
|
+
if (mp3s.length === 0)
|
|
219
|
+
return doc;
|
|
220
|
+
// Try annotations first
|
|
221
|
+
let matches = resolveFromAnnotations(doc.blocks, mp3s);
|
|
222
|
+
// Fall back to auto-matching if no annotations found
|
|
223
|
+
if (matches.length === 0) {
|
|
224
|
+
matches = autoMatchBlocks(doc.blocks, mp3s).map((m) => ({
|
|
225
|
+
block: m.block,
|
|
226
|
+
mp3: m.mp3,
|
|
227
|
+
}));
|
|
228
|
+
}
|
|
229
|
+
if (matches.length === 0)
|
|
230
|
+
return doc;
|
|
231
|
+
// Build audio segments in document order
|
|
232
|
+
// Sort matches by the block's position in the flattened tree
|
|
233
|
+
const flat = flattenForAudio(doc.blocks);
|
|
234
|
+
const blockOrder = new Map(flat.map((b, i) => [b.id, i]));
|
|
235
|
+
matches.sort((a, b) => (blockOrder.get(a.block.id) ?? 0) - (blockOrder.get(b.block.id) ?? 0));
|
|
236
|
+
// Build segment list and assign indices
|
|
237
|
+
const segments = [];
|
|
238
|
+
const blockToSegment = new Map();
|
|
239
|
+
let startTime = 0;
|
|
240
|
+
for (let i = 0; i < matches.length; i++) {
|
|
241
|
+
const { block, mp3 } = matches[i];
|
|
242
|
+
const duration = mp3.timing?.duration ?? 30; // Fallback duration if no timing
|
|
243
|
+
segments.push({
|
|
244
|
+
src: mp3.path,
|
|
245
|
+
name: block.title ?? block.id,
|
|
246
|
+
duration,
|
|
247
|
+
startTime,
|
|
248
|
+
});
|
|
249
|
+
blockToSegment.set(block.id, i);
|
|
250
|
+
startTime += duration;
|
|
251
|
+
}
|
|
252
|
+
// Deep clone blocks and assign audioSegment indices
|
|
253
|
+
const newBlocks = assignSegmentIndices(doc.blocks, blockToSegment);
|
|
254
|
+
return {
|
|
255
|
+
...doc,
|
|
256
|
+
blocks: newBlocks,
|
|
257
|
+
duration: startTime,
|
|
258
|
+
audio: { segments },
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Recursively clone blocks and assign audioSegment indices.
|
|
263
|
+
* Blocks not in the map keep their original audioSegment.
|
|
264
|
+
* Children of a matched block inherit the parent's segment.
|
|
265
|
+
*/
|
|
266
|
+
function assignSegmentIndices(blocks, blockToSegment, inheritedSegment) {
|
|
267
|
+
return blocks.map((block) => {
|
|
268
|
+
const segment = blockToSegment.get(block.id) ?? inheritedSegment ?? block.audioSegment;
|
|
269
|
+
const newBlock = {
|
|
270
|
+
...block,
|
|
271
|
+
audioSegment: segment,
|
|
272
|
+
};
|
|
273
|
+
if (block.children) {
|
|
274
|
+
newBlock.children = assignSegmentIndices(block.children, blockToSegment, segment);
|
|
275
|
+
}
|
|
276
|
+
return newBlock;
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=audioMapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioMapping.js","sourceRoot":"","sources":["../../src/doc/audioMapping.ts"],"names":[],"mappings":"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"}
|
package/dist/doc/index.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export type { MarkdownToDocOptions } from './markdownToDoc.js';
|
|
|
6
6
|
export { docToMarkdown } from './docToMarkdown.js';
|
|
7
7
|
export { getLayers } from './getLayers.js';
|
|
8
8
|
export type { RenderContext } from './getLayers.js';
|
|
9
|
+
export { resolveAudioMapping, scoreTextSimilarity } from './audioMapping.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/doc/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/doc/index.js
CHANGED
|
@@ -4,4 +4,5 @@ export * from './utils/themeUtils.js';
|
|
|
4
4
|
export { markdownToDoc, flattenBlocks, countBlocks, getBlockDepth } from './markdownToDoc.js';
|
|
5
5
|
export { docToMarkdown } from './docToMarkdown.js';
|
|
6
6
|
export { getLayers } from './getLayers.js';
|
|
7
|
+
export { resolveAudioMapping, scoreTextSimilarity } from './audioMapping.js';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/doc/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownToDoc.d.ts","sourceRoot":"","sources":["../../src/doc/markdownToDoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"markdownToDoc.d.ts","sourceRoot":"","sources":["../../src/doc/markdownToDoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAA+B,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAqB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQjG;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oEAAoE;IACpE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAClE;AAiDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,GAAG,CAuKhG;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAStD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CASnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAElD"}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
import { extractPlainText } from '../markdown/utils.js';
|
|
25
|
+
import { estimateReadingTime } from '../timing/readingTime.js';
|
|
25
26
|
// ============================================
|
|
26
27
|
// ID Generation
|
|
27
28
|
// ============================================
|
|
@@ -101,6 +102,9 @@ export function markdownToDoc(markdownDoc, options) {
|
|
|
101
102
|
// Use template from annotation if present, otherwise fall back to default
|
|
102
103
|
const annotation = heading?.templateAnnotation;
|
|
103
104
|
const template = annotation?.template ?? (heading ? defaultTemplate : undefined);
|
|
105
|
+
// Extract heading text so templates (e.g. sectionHeader) that expect a
|
|
106
|
+
// `title` property receive it without having to reach into sourceHeading.
|
|
107
|
+
const title = heading ? extractPlainText(heading) : undefined;
|
|
104
108
|
const block = {
|
|
105
109
|
id,
|
|
106
110
|
startTime: 0,
|
|
@@ -108,6 +112,7 @@ export function markdownToDoc(markdownDoc, options) {
|
|
|
108
112
|
audioSegment: 0,
|
|
109
113
|
template,
|
|
110
114
|
...(heading ? { sourceHeading: heading } : {}),
|
|
115
|
+
...(title ? { title } : {}),
|
|
111
116
|
};
|
|
112
117
|
// Propagate key-value params from annotation to templateOverrides
|
|
113
118
|
if (annotation?.params) {
|
|
@@ -169,13 +174,44 @@ export function markdownToDoc(markdownDoc, options) {
|
|
|
169
174
|
if (currentBlock && !currentBlock.sourceHeading && !rootBlocks.includes(currentBlock)) {
|
|
170
175
|
rootBlocks.push(currentBlock);
|
|
171
176
|
}
|
|
172
|
-
// Calculate
|
|
177
|
+
// Calculate reading-time-based durations and generate captions
|
|
173
178
|
const allBlocks = flattenBlocks(rootBlocks);
|
|
179
|
+
const minDuration = 3; // seconds — minimum for blocks with little/no text
|
|
180
|
+
const phrases = [];
|
|
181
|
+
// First pass: compute duration from body-content reading time
|
|
182
|
+
for (const block of allBlocks) {
|
|
183
|
+
const bodyText = getBlockBodyText(block);
|
|
184
|
+
if (bodyText.length > 0) {
|
|
185
|
+
const estimate = estimateReadingTime(bodyText);
|
|
186
|
+
block.duration = Math.max(minDuration, estimate.seconds);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
block.duration = defaultDuration;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Second pass: assign start times sequentially and build caption phrases
|
|
174
193
|
let currentTime = 0;
|
|
175
194
|
for (const block of allBlocks) {
|
|
176
195
|
block.startTime = currentTime;
|
|
196
|
+
// Generate caption phrases from the block's body content
|
|
197
|
+
const bodyText = getBlockBodyText(block);
|
|
198
|
+
if (bodyText.length > 0) {
|
|
199
|
+
const sentences = splitIntoSentences(bodyText);
|
|
200
|
+
if (sentences.length > 0) {
|
|
201
|
+
const timePerSentence = block.duration / sentences.length;
|
|
202
|
+
for (let i = 0; i < sentences.length; i++) {
|
|
203
|
+
phrases.push({
|
|
204
|
+
text: sentences[i],
|
|
205
|
+
startTime: currentTime + i * timePerSentence,
|
|
206
|
+
endTime: currentTime + (i + 1) * timePerSentence,
|
|
207
|
+
audioSegment: 0,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
177
212
|
currentTime += block.duration;
|
|
178
213
|
}
|
|
214
|
+
const captions = phrases.length > 0 ? { phrases, generatedAt: new Date().toISOString(), version: 1 } : undefined;
|
|
179
215
|
return {
|
|
180
216
|
articleId,
|
|
181
217
|
duration: currentTime,
|
|
@@ -183,6 +219,7 @@ export function markdownToDoc(markdownDoc, options) {
|
|
|
183
219
|
audio: {
|
|
184
220
|
segments: [],
|
|
185
221
|
},
|
|
222
|
+
...(captions ? { captions } : {}),
|
|
186
223
|
...(markdownDoc.frontmatter ? { frontmatter: markdownDoc.frontmatter } : {}),
|
|
187
224
|
};
|
|
188
225
|
}
|
|
@@ -222,4 +259,92 @@ export function countBlocks(blocks) {
|
|
|
222
259
|
export function getBlockDepth(block) {
|
|
223
260
|
return block.sourceHeading?.depth ?? 0;
|
|
224
261
|
}
|
|
262
|
+
// ============================================
|
|
263
|
+
// Internal helpers
|
|
264
|
+
// ============================================
|
|
265
|
+
/**
|
|
266
|
+
* Extract the plain text from a block's body contents (excluding heading text).
|
|
267
|
+
*/
|
|
268
|
+
function getBlockBodyText(block) {
|
|
269
|
+
if (!block.contents || block.contents.length === 0)
|
|
270
|
+
return '';
|
|
271
|
+
// Join with newlines to preserve paragraph/list-item boundaries.
|
|
272
|
+
// splitIntoPhrases uses these newlines as natural split points.
|
|
273
|
+
return block.contents
|
|
274
|
+
.map((node) => extractPlainText(node))
|
|
275
|
+
.join('\n')
|
|
276
|
+
.trim();
|
|
277
|
+
}
|
|
278
|
+
/** Maximum words per caption phrase. Long sentences get split at this point. */
|
|
279
|
+
const MAX_PHRASE_WORDS = 12;
|
|
280
|
+
/**
|
|
281
|
+
* Split text into caption-sized phrases.
|
|
282
|
+
*
|
|
283
|
+
* Splits on:
|
|
284
|
+
* 1. Newlines (paragraph/list-item boundaries from markdown)
|
|
285
|
+
* 2. Sentence endings (.!?) followed by whitespace
|
|
286
|
+
* 3. Long fragments (> MAX_PHRASE_WORDS) at clause boundaries (commas, semicolons, dashes)
|
|
287
|
+
*
|
|
288
|
+
* Merges very short fragments (< 15 chars) with the previous phrase.
|
|
289
|
+
*/
|
|
290
|
+
function splitIntoSentences(text) {
|
|
291
|
+
// First split on newlines (each paragraph/list item becomes separate)
|
|
292
|
+
const lines = text
|
|
293
|
+
.split(/\n+/)
|
|
294
|
+
.map((s) => s.trim())
|
|
295
|
+
.filter((s) => s.length > 0);
|
|
296
|
+
// Then split each line on sentence boundaries
|
|
297
|
+
const sentenceRe = /(?<=[.!?])\s+/;
|
|
298
|
+
const fragments = [];
|
|
299
|
+
for (const line of lines) {
|
|
300
|
+
const sentences = line
|
|
301
|
+
.split(sentenceRe)
|
|
302
|
+
.map((s) => s.trim())
|
|
303
|
+
.filter((s) => s.length > 0);
|
|
304
|
+
fragments.push(...sentences);
|
|
305
|
+
}
|
|
306
|
+
if (fragments.length === 0)
|
|
307
|
+
return [];
|
|
308
|
+
// Split long fragments at clause boundaries
|
|
309
|
+
const split = [];
|
|
310
|
+
for (const frag of fragments) {
|
|
311
|
+
const words = frag.split(/\s+/);
|
|
312
|
+
if (words.length > MAX_PHRASE_WORDS) {
|
|
313
|
+
// Try to split at comma, semicolon, or dash near the midpoint
|
|
314
|
+
const mid = Math.floor(frag.length / 2);
|
|
315
|
+
const clauseRe = /[,;]\s+|\s+—\s+|\s+-\s+/g;
|
|
316
|
+
let bestSplit = -1;
|
|
317
|
+
let bestDist = Infinity;
|
|
318
|
+
let match;
|
|
319
|
+
while ((match = clauseRe.exec(frag)) !== null) {
|
|
320
|
+
const dist = Math.abs(match.index - mid);
|
|
321
|
+
if (dist < bestDist) {
|
|
322
|
+
bestDist = dist;
|
|
323
|
+
bestSplit = match.index + match[0].length;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
if (bestSplit > 0 && bestSplit < frag.length - 5) {
|
|
327
|
+
split.push(frag.slice(0, bestSplit).trim());
|
|
328
|
+
split.push(frag.slice(bestSplit).trim());
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
split.push(frag);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
split.push(frag);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// Merge very short fragments (< 15 chars) with the previous phrase
|
|
339
|
+
const merged = [split[0]];
|
|
340
|
+
for (let i = 1; i < split.length; i++) {
|
|
341
|
+
if (split[i].length < 15 && merged.length > 0) {
|
|
342
|
+
merged[merged.length - 1] += ' ' + split[i];
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
merged.push(split[i]);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return merged;
|
|
349
|
+
}
|
|
225
350
|
//# sourceMappingURL=markdownToDoc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownToDoc.js","sourceRoot":"","sources":["../../src/doc/markdownToDoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"markdownToDoc.js","sourceRoot":"","sources":["../../src/doc/markdownToDoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparisonBar.d.ts","sourceRoot":"","sources":["../../../src/doc/templates/comparisonBar.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAI3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"comparisonBar.d.ts","sourceRoot":"","sources":["../../../src/doc/templates/comparisonBar.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAI3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,CA8I1F"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* This is shared code used by both site and efb-app doc renderers.
|
|
9
9
|
*/
|
|
10
10
|
import { scaledFontSize } from '../../schemas/BlockTemplates.js';
|
|
11
|
-
import { resolveColorScheme } from '../utils/themeUtils.js';
|
|
11
|
+
import { resolveColorScheme, getThemeFont } from '../utils/themeUtils.js';
|
|
12
12
|
export function comparisonBar(input, context) {
|
|
13
13
|
const { leftLabel, leftValue, rightLabel, rightValue, unit, colorScheme = 'blue' } = input;
|
|
14
14
|
const { theme } = context;
|
|
@@ -52,7 +52,11 @@ export function comparisonBar(input, context) {
|
|
|
52
52
|
id: 'left-label',
|
|
53
53
|
content: {
|
|
54
54
|
text: leftLabel,
|
|
55
|
-
style: {
|
|
55
|
+
style: {
|
|
56
|
+
fontSize: labelFontSize,
|
|
57
|
+
fontFamily: getThemeFont(context, 'body'),
|
|
58
|
+
color: theme.colors.textMuted,
|
|
59
|
+
},
|
|
56
60
|
},
|
|
57
61
|
position: { x: `${barStartX}%`, y: `${topBarY - 8}%` },
|
|
58
62
|
},
|
|
@@ -62,7 +66,12 @@ export function comparisonBar(input, context) {
|
|
|
62
66
|
id: 'left-value',
|
|
63
67
|
content: {
|
|
64
68
|
text: leftDisplay,
|
|
65
|
-
style: {
|
|
69
|
+
style: {
|
|
70
|
+
fontSize: valueFontSize,
|
|
71
|
+
fontFamily: getThemeFont(context, 'body'),
|
|
72
|
+
fontWeight: 'bold',
|
|
73
|
+
color: colors.text,
|
|
74
|
+
},
|
|
66
75
|
},
|
|
67
76
|
position: { x: `${barStartX + leftBarWidth + 2}%`, y: `${topBarY - 1}%` },
|
|
68
77
|
animation: { type: 'fadeIn', duration: 0.8, delay: 0.3 },
|
|
@@ -90,7 +99,11 @@ export function comparisonBar(input, context) {
|
|
|
90
99
|
id: 'right-label',
|
|
91
100
|
content: {
|
|
92
101
|
text: rightLabel,
|
|
93
|
-
style: {
|
|
102
|
+
style: {
|
|
103
|
+
fontSize: labelFontSize,
|
|
104
|
+
fontFamily: getThemeFont(context, 'body'),
|
|
105
|
+
color: theme.colors.textMuted,
|
|
106
|
+
},
|
|
94
107
|
},
|
|
95
108
|
position: { x: `${barStartX}%`, y: `${bottomBarY - 8}%` },
|
|
96
109
|
},
|
|
@@ -100,7 +113,12 @@ export function comparisonBar(input, context) {
|
|
|
100
113
|
id: 'right-value',
|
|
101
114
|
content: {
|
|
102
115
|
text: rightDisplay,
|
|
103
|
-
style: {
|
|
116
|
+
style: {
|
|
117
|
+
fontSize: valueFontSize,
|
|
118
|
+
fontFamily: getThemeFont(context, 'body'),
|
|
119
|
+
fontWeight: 'bold',
|
|
120
|
+
color: colors.accent,
|
|
121
|
+
},
|
|
104
122
|
},
|
|
105
123
|
position: { x: `${barStartX + rightBarWidth + 2}%`, y: `${bottomBarY - 1}%` },
|
|
106
124
|
animation: { type: 'fadeIn', duration: 0.8, delay: 0.6 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparisonBar.js","sourceRoot":"","sources":["../../../src/doc/templates/comparisonBar.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"comparisonBar.js","sourceRoot":"","sources":["../../../src/doc/templates/comparisonBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverBlock.d.ts","sourceRoot":"","sources":["../../../src/doc/templates/coverBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"coverBlock.d.ts","sourceRoot":"","sources":["../../../src/doc/templates/coverBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC9D,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,CAwFpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CAUhF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,CAG5F"}
|