@bendyline/squisq 1.3.0 → 1.4.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/{Doc-Ch4tc3vv.d.ts → Doc-BeSeH2iX.d.ts} +118 -41
- package/dist/ImageEditDoc-BTIvw0oq.d.ts +84 -0
- package/dist/{chunk-CYQHG27J.js → chunk-2TMAWB4Y.js} +74 -1
- package/dist/chunk-2TMAWB4Y.js.map +1 -0
- package/dist/{chunk-OASJKWO5.js → chunk-3K5OG6KI.js} +92 -7
- package/dist/chunk-3K5OG6KI.js.map +1 -0
- package/dist/chunk-57CVQCFX.js +193 -0
- package/dist/chunk-57CVQCFX.js.map +1 -0
- package/dist/{chunk-QM5PKNPW.js → chunk-5WFRKURX.js} +1 -1
- package/dist/chunk-5WFRKURX.js.map +1 -0
- package/dist/chunk-B4EEON3N.js +1317 -0
- package/dist/chunk-B4EEON3N.js.map +1 -0
- package/dist/chunk-DBS6RIFL.js +81 -0
- package/dist/chunk-DBS6RIFL.js.map +1 -0
- package/dist/{chunk-MIBRIRGJ.js → chunk-FR2RBTKO.js} +3 -3
- package/dist/{chunk-MIBRIRGJ.js.map → chunk-FR2RBTKO.js.map} +1 -1
- package/dist/chunk-H3AXU4MJ.js +179 -0
- package/dist/chunk-H3AXU4MJ.js.map +1 -0
- package/dist/chunk-JELIRVDP.js +24 -0
- package/dist/chunk-JELIRVDP.js.map +1 -0
- package/dist/chunk-K32VJONL.js +193 -0
- package/dist/chunk-K32VJONL.js.map +1 -0
- package/dist/{chunk-6BAVXFYC.js → chunk-KSWJR66U.js} +218 -42
- package/dist/chunk-KSWJR66U.js.map +1 -0
- package/dist/{chunk-TSG2OSE6.js → chunk-MYIH7FWD.js} +3 -3
- package/dist/chunk-MYIH7FWD.js.map +1 -0
- package/dist/chunk-VLJJHDAC.js +218 -0
- package/dist/chunk-VLJJHDAC.js.map +1 -0
- package/dist/chunk-WMOI7FN3.js +182 -0
- package/dist/chunk-WMOI7FN3.js.map +1 -0
- package/dist/chunk-ZTX4PFFT.js +520 -0
- package/dist/chunk-ZTX4PFFT.js.map +1 -0
- package/dist/doc/index.d.ts +5 -10
- package/dist/doc/index.js +145 -7
- package/dist/doc/index.js.map +1 -1
- package/dist/generate/index.d.ts +99 -7
- package/dist/generate/index.js +16 -3
- package/dist/generate/index.js.map +1 -1
- package/dist/icons/index.d.ts +87 -0
- package/dist/icons/index.js +17 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/imageEdit/index.d.ts +216 -0
- package/dist/imageEdit/index.js +54 -0
- package/dist/imageEdit/index.js.map +1 -0
- package/dist/index.d.ts +21 -9
- package/dist/index.js +461 -8
- package/dist/index.js.map +1 -1
- package/dist/jsonForm/index.d.ts +191 -0
- package/dist/jsonForm/index.js +27 -0
- package/dist/jsonForm/index.js.map +1 -0
- package/dist/markdown/index.d.ts +265 -19
- package/dist/markdown/index.js +39 -33
- package/dist/markdown/index.js.map +1 -1
- package/dist/random/index.d.ts +51 -2
- package/dist/random/index.js +9 -1
- package/dist/random/index.js.map +1 -1
- package/dist/recommend/index.d.ts +42 -0
- package/dist/recommend/index.js +10 -0
- package/dist/recommend/index.js.map +1 -0
- package/dist/schemas/index.d.ts +188 -10
- package/dist/schemas/index.js +120 -7
- package/dist/schemas/index.js.map +1 -1
- package/dist/spatial/index.d.ts +111 -3
- package/dist/spatial/index.js +24 -2
- package/dist/spatial/index.js.map +1 -1
- package/dist/storage/index.d.ts +159 -9
- package/dist/storage/index.js +20 -5
- package/dist/storage/index.js.map +1 -1
- package/dist/story/index.d.ts +53 -13
- package/dist/story/index.js +12 -4
- package/dist/themeLibrary-BHjJ0Qx6.d.ts +40 -0
- package/dist/timing/index.d.ts +109 -4
- package/dist/timing/index.js +23 -2
- package/dist/timing/index.js.map +1 -1
- package/dist/transform/index.d.ts +175 -6
- package/dist/transform/index.js +490 -3
- package/dist/transform/index.js.map +1 -1
- package/dist/{types-CkNttVSF.d.ts → types-BdZkdJ3z.d.ts} +17 -2
- package/dist/types-D98li1gV.d.ts +93 -0
- package/dist/versions/index.d.ts +128 -0
- package/dist/versions/index.js +35 -0
- package/dist/versions/index.js.map +1 -0
- package/package.json +28 -1
- package/src/__tests__/colorUtils.test.ts +112 -0
- package/src/__tests__/getLayers.test.ts +32 -7
- package/src/__tests__/iconResolve.test.ts +122 -0
- package/src/__tests__/imageEditState.test.ts +74 -0
- package/src/__tests__/imageEditVersions.test.ts +169 -0
- package/src/__tests__/inferDocumentTitle.test.ts +50 -0
- package/src/__tests__/jsonForm.chooseControl.test.ts +86 -0
- package/src/__tests__/jsonForm.evaluateWhen.test.ts +59 -0
- package/src/__tests__/jsonForm.inferSchema.test.ts +25 -0
- package/src/__tests__/jsonForm.pointer.test.ts +103 -0
- package/src/__tests__/markdownIcons.test.ts +104 -0
- package/src/__tests__/markdownToDoc.test.ts +19 -4
- package/src/__tests__/recommendTemplates.test.ts +183 -0
- package/src/__tests__/scopedContentContainer.test.ts +89 -0
- package/src/__tests__/slideshowGenerator.test.ts +1 -1
- package/src/__tests__/templateAnnotationParse.test.ts +42 -0
- package/src/__tests__/templates.test.ts +93 -9
- package/src/__tests__/themeCompile.test.ts +156 -0
- package/src/__tests__/themeValidator.test.ts +125 -0
- package/src/__tests__/versions.test.ts +415 -0
- package/src/doc/audioMapping.ts +55 -11
- package/src/doc/getLayers.ts +32 -21
- package/src/doc/markdownToDoc.ts +45 -7
- package/src/doc/templates/featureBlock.ts +202 -0
- package/src/doc/templates/fullBleedQuote.ts +13 -0
- package/src/doc/templates/index.ts +50 -16
- package/src/doc/templates/listBlock.ts +24 -5
- package/src/doc/templates/statHighlight.ts +13 -0
- package/src/doc/templates/titleBlock.ts +9 -0
- package/src/doc/utils/themeUtils.ts +8 -7
- package/src/generate/slideshowGenerator.ts +1 -1
- package/src/generate/templateMapper.ts +2 -2
- package/src/icons/iconData.ts +31 -0
- package/src/icons/index.ts +18 -0
- package/src/icons/resolve.ts +139 -0
- package/src/imageEdit/ImageEditVersionManager.ts +73 -0
- package/src/imageEdit/export.ts +326 -0
- package/src/imageEdit/index.ts +71 -0
- package/src/imageEdit/persistence.ts +62 -0
- package/src/imageEdit/state.ts +112 -0
- package/src/imageEdit/versionPaths.ts +57 -0
- package/src/imageEdit/versions.ts +231 -0
- package/src/index.ts +4 -0
- package/src/jsonForm/chooseControl.ts +88 -0
- package/src/jsonForm/evaluateWhen.ts +59 -0
- package/src/jsonForm/index.ts +22 -0
- package/src/jsonForm/inferSchema.ts +25 -0
- package/src/jsonForm/pointer.ts +109 -0
- package/src/jsonForm/types.ts +167 -0
- package/src/markdown/convert.ts +145 -5
- package/src/markdown/index.ts +3 -0
- package/src/markdown/types.ts +19 -2
- package/src/markdown/utils.ts +159 -0
- package/src/recommend/index.ts +16 -0
- package/src/recommend/templates.ts +273 -0
- package/src/schemas/BlockTemplates.ts +50 -7
- package/src/schemas/ImageEditDoc.ts +95 -0
- package/src/schemas/Theme.ts +98 -31
- package/src/schemas/colorUtils.ts +186 -0
- package/src/schemas/fontStacks.ts +257 -0
- package/src/schemas/index.ts +12 -0
- package/src/schemas/themeCompile.ts +203 -0
- package/src/schemas/themeLibrary.ts +18 -597
- package/src/schemas/themeValidator.ts +388 -0
- package/src/schemas/themes/bold.json +48 -0
- package/src/schemas/themes/cinematic.json +54 -0
- package/src/schemas/themes/documentary.json +49 -0
- package/src/schemas/themes/gezellig.json +44 -0
- package/src/schemas/themes/index.ts +53 -0
- package/src/schemas/themes/magazine.json +44 -0
- package/src/schemas/themes/minimalist.json +45 -0
- package/src/schemas/themes/morning-light.json +42 -0
- package/src/schemas/themes/standard-dark.json +50 -0
- package/src/schemas/themes/standard.json +42 -0
- package/src/schemas/themes/tech-dark.json +48 -0
- package/src/schemas/themes/warm-earth.json +50 -0
- package/src/storage/ScopedContentContainer.ts +113 -0
- package/src/storage/index.ts +1 -0
- package/src/versions/DocumentVersionManager.ts +70 -0
- package/src/versions/index.ts +54 -0
- package/src/versions/operations.ts +230 -0
- package/src/versions/paths.ts +66 -0
- package/src/versions/timestamp.ts +48 -0
- package/src/versions/types.ts +91 -0
- package/dist/__tests__/animationUtils.test.d.ts +0 -2
- package/dist/__tests__/animationUtils.test.d.ts.map +0 -1
- package/dist/__tests__/animationUtils.test.js +0 -60
- package/dist/__tests__/animationUtils.test.js.map +0 -1
- package/dist/__tests__/contentContainer.test.d.ts +0 -2
- package/dist/__tests__/contentContainer.test.d.ts.map +0 -1
- package/dist/__tests__/contentContainer.test.js +0 -234
- package/dist/__tests__/contentContainer.test.js.map +0 -1
- package/dist/__tests__/contentExtractor.test.d.ts +0 -2
- package/dist/__tests__/contentExtractor.test.d.ts.map +0 -1
- package/dist/__tests__/contentExtractor.test.js +0 -151
- package/dist/__tests__/contentExtractor.test.js.map +0 -1
- package/dist/__tests__/coverBlock.test.d.ts +0 -2
- package/dist/__tests__/coverBlock.test.d.ts.map +0 -1
- package/dist/__tests__/coverBlock.test.js +0 -197
- package/dist/__tests__/coverBlock.test.js.map +0 -1
- package/dist/__tests__/dataTable.test.d.ts +0 -2
- package/dist/__tests__/dataTable.test.d.ts.map +0 -1
- package/dist/__tests__/dataTable.test.js +0 -110
- package/dist/__tests__/dataTable.test.js.map +0 -1
- package/dist/__tests__/geohash.test.d.ts +0 -2
- package/dist/__tests__/geohash.test.d.ts.map +0 -1
- package/dist/__tests__/geohash.test.js +0 -87
- package/dist/__tests__/geohash.test.js.map +0 -1
- package/dist/__tests__/getLayers.test.d.ts +0 -2
- package/dist/__tests__/getLayers.test.d.ts.map +0 -1
- package/dist/__tests__/getLayers.test.js +0 -167
- package/dist/__tests__/getLayers.test.js.map +0 -1
- package/dist/__tests__/haversine.test.d.ts +0 -2
- package/dist/__tests__/haversine.test.d.ts.map +0 -1
- package/dist/__tests__/haversine.test.js +0 -56
- package/dist/__tests__/haversine.test.js.map +0 -1
- package/dist/__tests__/localForageAdapter.test.d.ts +0 -8
- package/dist/__tests__/localForageAdapter.test.d.ts.map +0 -1
- package/dist/__tests__/localForageAdapter.test.js +0 -130
- package/dist/__tests__/localForageAdapter.test.js.map +0 -1
- package/dist/__tests__/markdown.test.d.ts +0 -2
- package/dist/__tests__/markdown.test.d.ts.map +0 -1
- package/dist/__tests__/markdown.test.js +0 -715
- package/dist/__tests__/markdown.test.js.map +0 -1
- package/dist/__tests__/markdownToDoc.test.d.ts +0 -2
- package/dist/__tests__/markdownToDoc.test.d.ts.map +0 -1
- package/dist/__tests__/markdownToDoc.test.js +0 -447
- package/dist/__tests__/markdownToDoc.test.js.map +0 -1
- package/dist/__tests__/seededRandom.test.d.ts +0 -2
- package/dist/__tests__/seededRandom.test.d.ts.map +0 -1
- package/dist/__tests__/seededRandom.test.js +0 -125
- package/dist/__tests__/seededRandom.test.js.map +0 -1
- package/dist/__tests__/slideshowGenerator.test.d.ts +0 -2
- package/dist/__tests__/slideshowGenerator.test.d.ts.map +0 -1
- package/dist/__tests__/slideshowGenerator.test.js +0 -114
- package/dist/__tests__/slideshowGenerator.test.js.map +0 -1
- package/dist/__tests__/storage.test.d.ts +0 -2
- package/dist/__tests__/storage.test.d.ts.map +0 -1
- package/dist/__tests__/storage.test.js +0 -51
- package/dist/__tests__/storage.test.js.map +0 -1
- package/dist/__tests__/surface.test.d.ts +0 -2
- package/dist/__tests__/surface.test.d.ts.map +0 -1
- package/dist/__tests__/surface.test.js +0 -57
- package/dist/__tests__/surface.test.js.map +0 -1
- package/dist/__tests__/templates.test.d.ts +0 -2
- package/dist/__tests__/templates.test.d.ts.map +0 -1
- package/dist/__tests__/templates.test.js +0 -217
- package/dist/__tests__/templates.test.js.map +0 -1
- package/dist/__tests__/timing.test.d.ts +0 -2
- package/dist/__tests__/timing.test.d.ts.map +0 -1
- package/dist/__tests__/timing.test.js +0 -131
- package/dist/__tests__/timing.test.js.map +0 -1
- package/dist/chunk-6BAVXFYC.js.map +0 -1
- package/dist/chunk-7GF6RDED.js +0 -82
- package/dist/chunk-7GF6RDED.js.map +0 -1
- package/dist/chunk-CYQHG27J.js.map +0 -1
- package/dist/chunk-F22AE6BY.js +0 -121
- package/dist/chunk-F22AE6BY.js.map +0 -1
- package/dist/chunk-FIQR4AJG.js +0 -517
- package/dist/chunk-FIQR4AJG.js.map +0 -1
- package/dist/chunk-OASJKWO5.js.map +0 -1
- package/dist/chunk-QM5PKNPW.js.map +0 -1
- package/dist/chunk-TSG2OSE6.js.map +0 -1
- package/dist/doc/audioMapping.d.ts +0 -36
- package/dist/doc/audioMapping.d.ts.map +0 -1
- package/dist/doc/audioMapping.js +0 -315
- package/dist/doc/audioMapping.js.map +0 -1
- package/dist/doc/docToMarkdown.d.ts +0 -41
- package/dist/doc/docToMarkdown.d.ts.map +0 -1
- package/dist/doc/docToMarkdown.js +0 -88
- package/dist/doc/docToMarkdown.js.map +0 -1
- package/dist/doc/getLayers.d.ts +0 -65
- package/dist/doc/getLayers.d.ts.map +0 -1
- package/dist/doc/getLayers.js +0 -103
- package/dist/doc/getLayers.js.map +0 -1
- package/dist/doc/index.d.ts.map +0 -1
- package/dist/doc/markdownToDoc.d.ts +0 -75
- package/dist/doc/markdownToDoc.d.ts.map +0 -1
- package/dist/doc/markdownToDoc.js +0 -398
- package/dist/doc/markdownToDoc.js.map +0 -1
- package/dist/doc/templates/accentImage.d.ts +0 -59
- package/dist/doc/templates/accentImage.d.ts.map +0 -1
- package/dist/doc/templates/accentImage.js +0 -275
- package/dist/doc/templates/accentImage.js.map +0 -1
- package/dist/doc/templates/captionUtils.d.ts +0 -20
- package/dist/doc/templates/captionUtils.d.ts.map +0 -1
- package/dist/doc/templates/captionUtils.js +0 -29
- package/dist/doc/templates/captionUtils.js.map +0 -1
- package/dist/doc/templates/comparisonBar.d.ts +0 -13
- package/dist/doc/templates/comparisonBar.d.ts.map +0 -1
- package/dist/doc/templates/comparisonBar.js +0 -145
- package/dist/doc/templates/comparisonBar.js.map +0 -1
- package/dist/doc/templates/coverBlock.d.ts +0 -51
- package/dist/doc/templates/coverBlock.d.ts.map +0 -1
- package/dist/doc/templates/coverBlock.js +0 -153
- package/dist/doc/templates/coverBlock.js.map +0 -1
- package/dist/doc/templates/dataTable.d.ts +0 -14
- package/dist/doc/templates/dataTable.d.ts.map +0 -1
- package/dist/doc/templates/dataTable.js +0 -73
- package/dist/doc/templates/dataTable.js.map +0 -1
- package/dist/doc/templates/dateEvent.d.ts +0 -15
- package/dist/doc/templates/dateEvent.d.ts.map +0 -1
- package/dist/doc/templates/dateEvent.js +0 -114
- package/dist/doc/templates/dateEvent.js.map +0 -1
- package/dist/doc/templates/definitionCard.d.ts +0 -13
- package/dist/doc/templates/definitionCard.d.ts.map +0 -1
- package/dist/doc/templates/definitionCard.js +0 -117
- package/dist/doc/templates/definitionCard.js.map +0 -1
- package/dist/doc/templates/factCard.d.ts +0 -15
- package/dist/doc/templates/factCard.d.ts.map +0 -1
- package/dist/doc/templates/factCard.js +0 -104
- package/dist/doc/templates/factCard.js.map +0 -1
- package/dist/doc/templates/fullBleedQuote.d.ts +0 -13
- package/dist/doc/templates/fullBleedQuote.d.ts.map +0 -1
- package/dist/doc/templates/fullBleedQuote.js +0 -55
- package/dist/doc/templates/fullBleedQuote.js.map +0 -1
- package/dist/doc/templates/imageWithCaption.d.ts +0 -13
- package/dist/doc/templates/imageWithCaption.d.ts.map +0 -1
- package/dist/doc/templates/imageWithCaption.js +0 -146
- package/dist/doc/templates/imageWithCaption.js.map +0 -1
- package/dist/doc/templates/index.d.ts +0 -105
- package/dist/doc/templates/index.d.ts.map +0 -1
- package/dist/doc/templates/index.js +0 -445
- package/dist/doc/templates/index.js.map +0 -1
- package/dist/doc/templates/listBlock.d.ts +0 -13
- package/dist/doc/templates/listBlock.d.ts.map +0 -1
- package/dist/doc/templates/listBlock.js +0 -92
- package/dist/doc/templates/listBlock.js.map +0 -1
- package/dist/doc/templates/mapBlock.d.ts +0 -17
- package/dist/doc/templates/mapBlock.d.ts.map +0 -1
- package/dist/doc/templates/mapBlock.js +0 -115
- package/dist/doc/templates/mapBlock.js.map +0 -1
- package/dist/doc/templates/persistentLayers.d.ts +0 -39
- package/dist/doc/templates/persistentLayers.d.ts.map +0 -1
- package/dist/doc/templates/persistentLayers.js +0 -447
- package/dist/doc/templates/persistentLayers.js.map +0 -1
- package/dist/doc/templates/photoGrid.d.ts +0 -20
- package/dist/doc/templates/photoGrid.d.ts.map +0 -1
- package/dist/doc/templates/photoGrid.js +0 -175
- package/dist/doc/templates/photoGrid.js.map +0 -1
- package/dist/doc/templates/pullQuote.d.ts +0 -13
- package/dist/doc/templates/pullQuote.d.ts.map +0 -1
- package/dist/doc/templates/pullQuote.js +0 -113
- package/dist/doc/templates/pullQuote.js.map +0 -1
- package/dist/doc/templates/quoteBlock.d.ts +0 -15
- package/dist/doc/templates/quoteBlock.d.ts.map +0 -1
- package/dist/doc/templates/quoteBlock.js +0 -101
- package/dist/doc/templates/quoteBlock.js.map +0 -1
- package/dist/doc/templates/sectionHeader.d.ts +0 -14
- package/dist/doc/templates/sectionHeader.d.ts.map +0 -1
- package/dist/doc/templates/sectionHeader.js +0 -97
- package/dist/doc/templates/sectionHeader.js.map +0 -1
- package/dist/doc/templates/statHighlight.d.ts +0 -15
- package/dist/doc/templates/statHighlight.d.ts.map +0 -1
- package/dist/doc/templates/statHighlight.js +0 -102
- package/dist/doc/templates/statHighlight.js.map +0 -1
- package/dist/doc/templates/titleBlock.d.ts +0 -13
- package/dist/doc/templates/titleBlock.d.ts.map +0 -1
- package/dist/doc/templates/titleBlock.js +0 -95
- package/dist/doc/templates/titleBlock.js.map +0 -1
- package/dist/doc/templates/twoColumn.d.ts +0 -15
- package/dist/doc/templates/twoColumn.d.ts.map +0 -1
- package/dist/doc/templates/twoColumn.js +0 -225
- package/dist/doc/templates/twoColumn.js.map +0 -1
- package/dist/doc/templates/videoPullQuote.d.ts +0 -20
- package/dist/doc/templates/videoPullQuote.d.ts.map +0 -1
- package/dist/doc/templates/videoPullQuote.js +0 -122
- package/dist/doc/templates/videoPullQuote.js.map +0 -1
- package/dist/doc/templates/videoWithCaption.d.ts +0 -20
- package/dist/doc/templates/videoWithCaption.d.ts.map +0 -1
- package/dist/doc/templates/videoWithCaption.js +0 -107
- package/dist/doc/templates/videoWithCaption.js.map +0 -1
- package/dist/doc/utils/animationUtils.d.ts +0 -34
- package/dist/doc/utils/animationUtils.d.ts.map +0 -1
- package/dist/doc/utils/animationUtils.js +0 -110
- package/dist/doc/utils/animationUtils.js.map +0 -1
- package/dist/doc/utils/themeUtils.d.ts +0 -64
- package/dist/doc/utils/themeUtils.d.ts.map +0 -1
- package/dist/doc/utils/themeUtils.js +0 -135
- package/dist/doc/utils/themeUtils.js.map +0 -1
- package/dist/generate/contentExtractor.d.ts +0 -112
- package/dist/generate/contentExtractor.d.ts.map +0 -1
- package/dist/generate/contentExtractor.js +0 -638
- package/dist/generate/contentExtractor.js.map +0 -1
- package/dist/generate/index.d.ts.map +0 -1
- package/dist/generate/slideshowGenerator.d.ts +0 -72
- package/dist/generate/slideshowGenerator.d.ts.map +0 -1
- package/dist/generate/slideshowGenerator.js +0 -159
- package/dist/generate/slideshowGenerator.js.map +0 -1
- package/dist/generate/templateMapper.d.ts +0 -23
- package/dist/generate/templateMapper.d.ts.map +0 -1
- package/dist/generate/templateMapper.js +0 -114
- package/dist/generate/templateMapper.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/markdown/convert.d.ts +0 -71
- package/dist/markdown/convert.d.ts.map +0 -1
- package/dist/markdown/convert.js +0 -845
- package/dist/markdown/convert.js.map +0 -1
- package/dist/markdown/htmlParse.d.ts +0 -26
- package/dist/markdown/htmlParse.d.ts.map +0 -1
- package/dist/markdown/htmlParse.js +0 -195
- package/dist/markdown/htmlParse.js.map +0 -1
- package/dist/markdown/index.d.ts.map +0 -1
- package/dist/markdown/parse.d.ts +0 -27
- package/dist/markdown/parse.d.ts.map +0 -1
- package/dist/markdown/parse.js +0 -90
- package/dist/markdown/parse.js.map +0 -1
- package/dist/markdown/stringify.d.ts +0 -32
- package/dist/markdown/stringify.d.ts.map +0 -1
- package/dist/markdown/stringify.js +0 -108
- package/dist/markdown/stringify.js.map +0 -1
- package/dist/markdown/types.d.ts +0 -516
- package/dist/markdown/types.d.ts.map +0 -1
- package/dist/markdown/types.js +0 -17
- package/dist/markdown/types.js.map +0 -1
- package/dist/markdown/utils.d.ts +0 -78
- package/dist/markdown/utils.d.ts.map +0 -1
- package/dist/markdown/utils.js +0 -153
- package/dist/markdown/utils.js.map +0 -1
- package/dist/random/SeededRandom.d.ts +0 -50
- package/dist/random/SeededRandom.d.ts.map +0 -1
- package/dist/random/SeededRandom.js +0 -115
- package/dist/random/SeededRandom.js.map +0 -1
- package/dist/random/index.d.ts.map +0 -1
- package/dist/schemas/BlockTemplates.d.ts +0 -600
- package/dist/schemas/BlockTemplates.d.ts.map +0 -1
- package/dist/schemas/BlockTemplates.js +0 -72
- package/dist/schemas/BlockTemplates.js.map +0 -1
- package/dist/schemas/Doc.d.ts +0 -503
- package/dist/schemas/Doc.d.ts.map +0 -1
- package/dist/schemas/Doc.js +0 -90
- package/dist/schemas/Doc.js.map +0 -1
- package/dist/schemas/LayoutStrategy.d.ts +0 -84
- package/dist/schemas/LayoutStrategy.d.ts.map +0 -1
- package/dist/schemas/LayoutStrategy.js +0 -123
- package/dist/schemas/LayoutStrategy.js.map +0 -1
- package/dist/schemas/MediaProvider.d.ts +0 -65
- package/dist/schemas/MediaProvider.d.ts.map +0 -1
- package/dist/schemas/MediaProvider.js +0 -13
- package/dist/schemas/MediaProvider.js.map +0 -1
- package/dist/schemas/Theme.d.ts +0 -194
- package/dist/schemas/Theme.d.ts.map +0 -1
- package/dist/schemas/Theme.js +0 -97
- package/dist/schemas/Theme.js.map +0 -1
- package/dist/schemas/Types.d.ts +0 -14
- package/dist/schemas/Types.d.ts.map +0 -1
- package/dist/schemas/Types.js +0 -5
- package/dist/schemas/Types.js.map +0 -1
- package/dist/schemas/Viewport.d.ts +0 -74
- package/dist/schemas/Viewport.d.ts.map +0 -1
- package/dist/schemas/Viewport.js +0 -63
- package/dist/schemas/Viewport.js.map +0 -1
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/themeLibrary.d.ts +0 -41
- package/dist/schemas/themeLibrary.d.ts.map +0 -1
- package/dist/schemas/themeLibrary.js +0 -597
- package/dist/schemas/themeLibrary.js.map +0 -1
- package/dist/spatial/Geohash.d.ts +0 -85
- package/dist/spatial/Geohash.d.ts.map +0 -1
- package/dist/spatial/Geohash.js +0 -142
- package/dist/spatial/Geohash.js.map +0 -1
- package/dist/spatial/Haversine.d.ts +0 -24
- package/dist/spatial/Haversine.d.ts.map +0 -1
- package/dist/spatial/Haversine.js +0 -48
- package/dist/spatial/Haversine.js.map +0 -1
- package/dist/spatial/index.d.ts.map +0 -1
- package/dist/storage/ContentContainer.d.ts +0 -87
- package/dist/storage/ContentContainer.d.ts.map +0 -1
- package/dist/storage/ContentContainer.js +0 -131
- package/dist/storage/ContentContainer.js.map +0 -1
- package/dist/storage/LocalForageAdapter.d.ts +0 -36
- package/dist/storage/LocalForageAdapter.d.ts.map +0 -1
- package/dist/storage/LocalForageAdapter.js +0 -82
- package/dist/storage/LocalForageAdapter.js.map +0 -1
- package/dist/storage/LocalStorageAdapter.d.ts +0 -16
- package/dist/storage/LocalStorageAdapter.d.ts.map +0 -1
- package/dist/storage/LocalStorageAdapter.js +0 -50
- package/dist/storage/LocalStorageAdapter.js.map +0 -1
- package/dist/storage/MediaProviderFromContainer.d.ts +0 -21
- package/dist/storage/MediaProviderFromContainer.d.ts.map +0 -1
- package/dist/storage/MediaProviderFromContainer.js +0 -79
- package/dist/storage/MediaProviderFromContainer.js.map +0 -1
- package/dist/storage/MemoryStorageAdapter.d.ts +0 -15
- package/dist/storage/MemoryStorageAdapter.d.ts.map +0 -1
- package/dist/storage/MemoryStorageAdapter.js +0 -34
- package/dist/storage/MemoryStorageAdapter.js.map +0 -1
- package/dist/storage/Storage.d.ts +0 -23
- package/dist/storage/Storage.d.ts.map +0 -1
- package/dist/storage/Storage.js +0 -9
- package/dist/storage/Storage.js.map +0 -1
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/themeLibrary-CEo2D4b6.d.ts +0 -44
- package/dist/timing/index.d.ts.map +0 -1
- package/dist/timing/narrationTiming.d.ts +0 -54
- package/dist/timing/narrationTiming.d.ts.map +0 -1
- package/dist/timing/narrationTiming.js +0 -190
- package/dist/timing/narrationTiming.js.map +0 -1
- package/dist/timing/readingTime.d.ts +0 -54
- package/dist/timing/readingTime.d.ts.map +0 -1
- package/dist/timing/readingTime.js +0 -49
- package/dist/timing/readingTime.js.map +0 -1
- package/dist/transform/applyTransform.d.ts +0 -22
- package/dist/transform/applyTransform.d.ts.map +0 -1
- package/dist/transform/applyTransform.js +0 -68
- package/dist/transform/applyTransform.js.map +0 -1
- package/dist/transform/blockAnalyzer.d.ts +0 -48
- package/dist/transform/blockAnalyzer.d.ts.map +0 -1
- package/dist/transform/blockAnalyzer.js +0 -135
- package/dist/transform/blockAnalyzer.js.map +0 -1
- package/dist/transform/index.d.ts.map +0 -1
- package/dist/transform/registry.d.ts +0 -19
- package/dist/transform/registry.d.ts.map +0 -1
- package/dist/transform/registry.js +0 -41
- package/dist/transform/registry.js.map +0 -1
- package/dist/transform/styles/dataDriven.d.ts +0 -4
- package/dist/transform/styles/dataDriven.d.ts.map +0 -1
- package/dist/transform/styles/dataDriven.js +0 -15
- package/dist/transform/styles/dataDriven.js.map +0 -1
- package/dist/transform/styles/documentary.d.ts +0 -4
- package/dist/transform/styles/documentary.d.ts.map +0 -1
- package/dist/transform/styles/documentary.js +0 -15
- package/dist/transform/styles/documentary.js.map +0 -1
- package/dist/transform/styles/index.d.ts +0 -6
- package/dist/transform/styles/index.d.ts.map +0 -1
- package/dist/transform/styles/index.js +0 -6
- package/dist/transform/styles/index.js.map +0 -1
- package/dist/transform/styles/magazine.d.ts +0 -4
- package/dist/transform/styles/magazine.d.ts.map +0 -1
- package/dist/transform/styles/magazine.js +0 -15
- package/dist/transform/styles/magazine.js.map +0 -1
- package/dist/transform/styles/minimal.d.ts +0 -4
- package/dist/transform/styles/minimal.d.ts.map +0 -1
- package/dist/transform/styles/minimal.js +0 -15
- package/dist/transform/styles/minimal.js.map +0 -1
- package/dist/transform/styles/narrative.d.ts +0 -4
- package/dist/transform/styles/narrative.d.ts.map +0 -1
- package/dist/transform/styles/narrative.js +0 -15
- package/dist/transform/styles/narrative.js.map +0 -1
- package/dist/transform/templateSelector.d.ts +0 -30
- package/dist/transform/templateSelector.d.ts.map +0 -1
- package/dist/transform/templateSelector.js +0 -218
- package/dist/transform/templateSelector.js.map +0 -1
- package/dist/transform/timingAllocator.d.ts +0 -21
- package/dist/transform/timingAllocator.d.ts.map +0 -1
- package/dist/transform/timingAllocator.js +0 -111
- package/dist/transform/timingAllocator.js.map +0 -1
- package/dist/transform/types.d.ts +0 -86
- package/dist/transform/types.d.ts.map +0 -1
- package/dist/transform/types.js +0 -9
- package/dist/transform/types.js.map +0 -1
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Block Template Registry
|
|
3
|
-
*
|
|
4
|
-
* Central registry of all block templates. Provides functions to:
|
|
5
|
-
* - Look up templates by name
|
|
6
|
-
* - Expand template blocks into full Layer arrays
|
|
7
|
-
* - Convert a template-based doc script into a renderable format
|
|
8
|
-
*
|
|
9
|
-
* Supports multiple viewport configurations for different aspect ratios.
|
|
10
|
-
*
|
|
11
|
-
* This is shared code used by both site and efb-app doc renderers.
|
|
12
|
-
*/
|
|
13
|
-
import { isTemplateBlock, createTemplateContext } from '../../schemas/BlockTemplates.js';
|
|
14
|
-
import { DEFAULT_THEME as defaultTheme } from '../../schemas/themeLibrary.js';
|
|
15
|
-
import { expandPersistentLayers } from './persistentLayers.js';
|
|
16
|
-
import { VIEWPORT_PRESETS } from '../../schemas/Viewport.js';
|
|
17
|
-
// Import all template functions
|
|
18
|
-
import { titleBlock } from './titleBlock.js';
|
|
19
|
-
import { sectionHeader } from './sectionHeader.js';
|
|
20
|
-
import { statHighlight } from './statHighlight.js';
|
|
21
|
-
import { quoteBlock } from './quoteBlock.js';
|
|
22
|
-
import { factCard } from './factCard.js';
|
|
23
|
-
import { twoColumn } from './twoColumn.js';
|
|
24
|
-
import { dateEvent } from './dateEvent.js';
|
|
25
|
-
import { imageWithCaption } from './imageWithCaption.js';
|
|
26
|
-
import { mapBlock } from './mapBlock.js';
|
|
27
|
-
import { fullBleedQuote } from './fullBleedQuote.js';
|
|
28
|
-
import { listBlock } from './listBlock.js';
|
|
29
|
-
import { photoGrid } from './photoGrid.js';
|
|
30
|
-
import { definitionCard } from './definitionCard.js';
|
|
31
|
-
import { comparisonBar } from './comparisonBar.js';
|
|
32
|
-
import { pullQuote } from './pullQuote.js';
|
|
33
|
-
import { videoWithCaption } from './videoWithCaption.js';
|
|
34
|
-
import { videoPullQuote } from './videoPullQuote.js';
|
|
35
|
-
import { dataTable } from './dataTable.js';
|
|
36
|
-
/**
|
|
37
|
-
* Registry mapping template names to their implementation functions.
|
|
38
|
-
* Note: coverBlock is not in the registry as it's used directly for start blocks,
|
|
39
|
-
* not as a regular template in the block sequence.
|
|
40
|
-
*/
|
|
41
|
-
export const templateRegistry = {
|
|
42
|
-
titleBlock,
|
|
43
|
-
sectionHeader,
|
|
44
|
-
statHighlight,
|
|
45
|
-
quoteBlock,
|
|
46
|
-
factCard,
|
|
47
|
-
twoColumn,
|
|
48
|
-
dateEvent,
|
|
49
|
-
imageWithCaption,
|
|
50
|
-
mapBlock,
|
|
51
|
-
fullBleedQuote,
|
|
52
|
-
listBlock,
|
|
53
|
-
photoGrid,
|
|
54
|
-
definitionCard,
|
|
55
|
-
comparisonBar,
|
|
56
|
-
pullQuote,
|
|
57
|
-
videoWithCaption,
|
|
58
|
-
videoPullQuote,
|
|
59
|
-
dataTable,
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Expand a template block into a full Block with layers.
|
|
63
|
-
*/
|
|
64
|
-
export function expandTemplateBlock(templateBlock, context) {
|
|
65
|
-
const templateFn = templateRegistry[templateBlock.template];
|
|
66
|
-
if (!templateFn) {
|
|
67
|
-
console.warn(`Unknown template: ${templateBlock.template}`);
|
|
68
|
-
// Return block with no layers
|
|
69
|
-
return {
|
|
70
|
-
id: templateBlock.id,
|
|
71
|
-
startTime: 0,
|
|
72
|
-
duration: templateBlock.duration,
|
|
73
|
-
audioSegment: templateBlock.audioSegment,
|
|
74
|
-
transition: templateBlock.transition,
|
|
75
|
-
template: templateBlock.template, // Preserve for debugging
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
// Generate layers from template with error handling
|
|
79
|
-
let layers;
|
|
80
|
-
try {
|
|
81
|
-
// Each registry entry accepts its specific TemplateBlock variant; the
|
|
82
|
-
// discriminated union guarantees the shapes match at runtime.
|
|
83
|
-
layers = templateFn(templateBlock, context);
|
|
84
|
-
if (!Array.isArray(layers)) {
|
|
85
|
-
console.error(`Template ${templateBlock.template} did not return an array, got:`, typeof layers);
|
|
86
|
-
layers = [];
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (err) {
|
|
90
|
-
console.error(`Error expanding template ${templateBlock.template}:`, err);
|
|
91
|
-
layers = [];
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
id: templateBlock.id,
|
|
95
|
-
startTime: 0, // Will be calculated later
|
|
96
|
-
duration: templateBlock.duration,
|
|
97
|
-
audioSegment: templateBlock.audioSegment,
|
|
98
|
-
...(layers.length > 0 ? { layers } : {}),
|
|
99
|
-
transition: templateBlock.transition,
|
|
100
|
-
template: templateBlock.template, // Preserve for debugging
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Expand all template blocks in a doc, calculating start times.
|
|
105
|
-
* Injects persistent layers (bottom/top) based on per-block flags.
|
|
106
|
-
*
|
|
107
|
-
* When audioSegments is provided, blocks are timed relative to their audio segment's
|
|
108
|
-
* start time, ensuring blocks appear when their audio is playing. Blocks within each
|
|
109
|
-
* segment are distributed proportionally across the segment duration.
|
|
110
|
-
*
|
|
111
|
-
* @param blocks - Array of template or raw blocks
|
|
112
|
-
* @param options - Expansion options including theme, viewport, and persistent layers
|
|
113
|
-
*/
|
|
114
|
-
export function expandDocBlocks(blocks, options = {}) {
|
|
115
|
-
const opts = options;
|
|
116
|
-
const theme = opts.theme ?? defaultTheme;
|
|
117
|
-
const viewport = opts.viewport ?? VIEWPORT_PRESETS.landscape;
|
|
118
|
-
const { persistentLayers, audioSegments } = opts;
|
|
119
|
-
const totalBlocks = blocks.length;
|
|
120
|
-
// Pre-expand persistent layers once
|
|
121
|
-
const bottomLayers = expandPersistentLayers(persistentLayers?.bottomLayers);
|
|
122
|
-
const topLayers = expandPersistentLayers(persistentLayers?.topLayers);
|
|
123
|
-
// If no audio segments provided, use simple cumulative timing
|
|
124
|
-
if (!audioSegments || audioSegments.length === 0) {
|
|
125
|
-
let currentTime = 0;
|
|
126
|
-
return blocks.map((block, index) => {
|
|
127
|
-
const context = createTemplateContext(theme, index, totalBlocks, viewport);
|
|
128
|
-
const expandedBlock = isTemplateBlock(block)
|
|
129
|
-
? expandTemplateBlock(block, context)
|
|
130
|
-
: block;
|
|
131
|
-
// Inject persistent layers
|
|
132
|
-
const templateBlock = block;
|
|
133
|
-
const useBottom = templateBlock.useBottomLayer !== false;
|
|
134
|
-
const useTop = templateBlock.useTopLayer !== false;
|
|
135
|
-
if (bottomLayers.length > 0 || topLayers.length > 0) {
|
|
136
|
-
expandedBlock.layers = [
|
|
137
|
-
...(useBottom ? bottomLayers : []),
|
|
138
|
-
...(expandedBlock.layers ?? []),
|
|
139
|
-
...(useTop ? topLayers : []),
|
|
140
|
-
];
|
|
141
|
-
}
|
|
142
|
-
expandedBlock.startTime = currentTime;
|
|
143
|
-
currentTime += expandedBlock.duration;
|
|
144
|
-
return expandedBlock;
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
// Group blocks by their audioSegment index
|
|
148
|
-
const blocksBySegment = new Map();
|
|
149
|
-
blocks.forEach((block, index) => {
|
|
150
|
-
const segmentIndex = block.audioSegment ?? 0;
|
|
151
|
-
if (!blocksBySegment.has(segmentIndex)) {
|
|
152
|
-
blocksBySegment.set(segmentIndex, []);
|
|
153
|
-
}
|
|
154
|
-
blocksBySegment.get(segmentIndex).push({ block, originalIndex: index });
|
|
155
|
-
});
|
|
156
|
-
// Expand blocks, timing them relative to their audio segment
|
|
157
|
-
const expandedBlocks = new Array(blocks.length);
|
|
158
|
-
for (const [segmentIndex, segmentBlocks] of blocksBySegment) {
|
|
159
|
-
const audioSegment = audioSegments[segmentIndex];
|
|
160
|
-
if (!audioSegment) {
|
|
161
|
-
// No audio segment info - use simple sequential timing within the segment
|
|
162
|
-
let offsetTime = 0;
|
|
163
|
-
for (const { block, originalIndex } of segmentBlocks) {
|
|
164
|
-
const context = createTemplateContext(theme, originalIndex, totalBlocks, viewport);
|
|
165
|
-
const expandedBlock = isTemplateBlock(block)
|
|
166
|
-
? expandTemplateBlock(block, context)
|
|
167
|
-
: block;
|
|
168
|
-
const templateBlock = block;
|
|
169
|
-
const useBottom = templateBlock.useBottomLayer !== false;
|
|
170
|
-
const useTop = templateBlock.useTopLayer !== false;
|
|
171
|
-
if (bottomLayers.length > 0 || topLayers.length > 0) {
|
|
172
|
-
expandedBlock.layers = [
|
|
173
|
-
...(useBottom ? bottomLayers : []),
|
|
174
|
-
...(expandedBlock.layers ?? []),
|
|
175
|
-
...(useTop ? topLayers : []),
|
|
176
|
-
];
|
|
177
|
-
}
|
|
178
|
-
expandedBlock.startTime = offsetTime;
|
|
179
|
-
offsetTime += expandedBlock.duration;
|
|
180
|
-
expandedBlocks[originalIndex] = expandedBlock;
|
|
181
|
-
}
|
|
182
|
-
continue;
|
|
183
|
-
}
|
|
184
|
-
// Section headers (sectionHeader template) get their original duration since
|
|
185
|
-
// the title is spoken at the start of the segment. Other blocks are scaled
|
|
186
|
-
// to fill the remaining time.
|
|
187
|
-
const sectionHeaderBlocks = [];
|
|
188
|
-
const contentBlocks = [];
|
|
189
|
-
for (const item of segmentBlocks) {
|
|
190
|
-
const templateBlock = item.block;
|
|
191
|
-
if (templateBlock.template === 'sectionHeader') {
|
|
192
|
-
sectionHeaderBlocks.push(item);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
contentBlocks.push(item);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
// Calculate fixed duration (section headers) and scalable duration (content)
|
|
199
|
-
const fixedDuration = sectionHeaderBlocks.reduce((sum, { block }) => {
|
|
200
|
-
return sum + (block.duration ?? 0);
|
|
201
|
-
}, 0);
|
|
202
|
-
const contentBlockDuration = contentBlocks.reduce((sum, { block }) => {
|
|
203
|
-
return sum + (block.duration ?? 0);
|
|
204
|
-
}, 0);
|
|
205
|
-
// Remaining time after section header(s) for content blocks
|
|
206
|
-
const remainingDuration = audioSegment.duration - fixedDuration;
|
|
207
|
-
// Scale factor only applies to content blocks
|
|
208
|
-
const scaleFactor = contentBlockDuration > 0 && remainingDuration > 0
|
|
209
|
-
? remainingDuration / contentBlockDuration
|
|
210
|
-
: 1;
|
|
211
|
-
const expandedInfos = [];
|
|
212
|
-
for (const { block, originalIndex } of segmentBlocks) {
|
|
213
|
-
const context = createTemplateContext(theme, originalIndex, totalBlocks, viewport);
|
|
214
|
-
const expandedBlock = isTemplateBlock(block)
|
|
215
|
-
? expandTemplateBlock(block, context)
|
|
216
|
-
: block;
|
|
217
|
-
const templateBlock = block;
|
|
218
|
-
const useBottom = templateBlock.useBottomLayer !== false;
|
|
219
|
-
const useTop = templateBlock.useTopLayer !== false;
|
|
220
|
-
if (bottomLayers.length > 0 || topLayers.length > 0) {
|
|
221
|
-
expandedBlock.layers = [
|
|
222
|
-
...(useBottom ? bottomLayers : []),
|
|
223
|
-
...(expandedBlock.layers ?? []),
|
|
224
|
-
...(useTop ? topLayers : []),
|
|
225
|
-
];
|
|
226
|
-
}
|
|
227
|
-
expandedInfos.push({
|
|
228
|
-
block: expandedBlock,
|
|
229
|
-
originalIndex,
|
|
230
|
-
templateBlock,
|
|
231
|
-
hasSourceTiming: typeof templateBlock.sourceStartTime === 'number',
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
// Sort blocks within this segment.
|
|
235
|
-
// When ANY block has source timing (from audio analysis), section headers
|
|
236
|
-
// are placed first since they are intro cards for the segment. When there
|
|
237
|
-
// is no source timing (e.g., preview/synthetic mode), keep original
|
|
238
|
-
// document order so the slideshow matches what the author wrote.
|
|
239
|
-
const hasAnySourceTiming = expandedInfos.some((info) => info.hasSourceTiming);
|
|
240
|
-
expandedInfos.sort((a, b) => {
|
|
241
|
-
if (hasAnySourceTiming) {
|
|
242
|
-
const aIsHeader = a.templateBlock.template === 'sectionHeader';
|
|
243
|
-
const bIsHeader = b.templateBlock.template === 'sectionHeader';
|
|
244
|
-
// Section headers come first when we have audio-based timing
|
|
245
|
-
if (aIsHeader && !bIsHeader)
|
|
246
|
-
return -1;
|
|
247
|
-
if (!aIsHeader && bIsHeader)
|
|
248
|
-
return 1;
|
|
249
|
-
// Both have source timing - sort by time
|
|
250
|
-
if (a.hasSourceTiming && b.hasSourceTiming) {
|
|
251
|
-
return a.templateBlock.sourceStartTime - b.templateBlock.sourceStartTime;
|
|
252
|
-
}
|
|
253
|
-
// One has timing, one doesn't - timing comes first
|
|
254
|
-
if (a.hasSourceTiming && !b.hasSourceTiming)
|
|
255
|
-
return -1;
|
|
256
|
-
if (!a.hasSourceTiming && b.hasSourceTiming)
|
|
257
|
-
return 1;
|
|
258
|
-
}
|
|
259
|
-
// Keep original document order
|
|
260
|
-
return a.originalIndex - b.originalIndex;
|
|
261
|
-
});
|
|
262
|
-
// Second pass: assign start times
|
|
263
|
-
// Slides with sourceStartTime use that; others fill gaps
|
|
264
|
-
let offsetWithinSegment = 0;
|
|
265
|
-
for (let i = 0; i < expandedInfos.length; i++) {
|
|
266
|
-
const info = expandedInfos[i];
|
|
267
|
-
const { block: expandedBlock, templateBlock } = info;
|
|
268
|
-
// Use source timing if available, otherwise use sequential offset
|
|
269
|
-
if (info.hasSourceTiming) {
|
|
270
|
-
// Use the source timing - this is when the content is spoken
|
|
271
|
-
const sourceStart = templateBlock.sourceStartTime;
|
|
272
|
-
expandedBlock.startTime = audioSegment.startTime + sourceStart;
|
|
273
|
-
// Use source duration if available, otherwise use block duration
|
|
274
|
-
if (typeof templateBlock.sourceDuration === 'number') {
|
|
275
|
-
expandedBlock.duration = Math.max(5, templateBlock.sourceDuration);
|
|
276
|
-
}
|
|
277
|
-
// Update offset for next block
|
|
278
|
-
offsetWithinSegment = sourceStart + expandedBlock.duration;
|
|
279
|
-
}
|
|
280
|
-
else if (templateBlock.template === 'sectionHeader') {
|
|
281
|
-
// Section headers start at the beginning of the segment
|
|
282
|
-
expandedBlock.startTime = audioSegment.startTime + offsetWithinSegment;
|
|
283
|
-
offsetWithinSegment += expandedBlock.duration;
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
// No source timing - place after previous block
|
|
287
|
-
expandedBlock.startTime = audioSegment.startTime + offsetWithinSegment;
|
|
288
|
-
// Scale content block duration to fit
|
|
289
|
-
const scaledDuration = expandedBlock.duration * scaleFactor;
|
|
290
|
-
expandedBlock.duration = scaledDuration;
|
|
291
|
-
offsetWithinSegment += scaledDuration;
|
|
292
|
-
}
|
|
293
|
-
expandedBlocks[info.originalIndex] = expandedBlock;
|
|
294
|
-
}
|
|
295
|
-
// Third pass: fix overlaps and gaps by adjusting durations
|
|
296
|
-
// Sort by startTime for overlap detection
|
|
297
|
-
const segmentExpandedBlocks = expandedInfos
|
|
298
|
-
.map((info) => expandedBlocks[info.originalIndex])
|
|
299
|
-
.sort((a, b) => a.startTime - b.startTime);
|
|
300
|
-
for (let i = 0; i < segmentExpandedBlocks.length - 1; i++) {
|
|
301
|
-
const current = segmentExpandedBlocks[i];
|
|
302
|
-
const next = segmentExpandedBlocks[i + 1];
|
|
303
|
-
const currentEnd = current.startTime + current.duration;
|
|
304
|
-
if (currentEnd > next.startTime) {
|
|
305
|
-
// Overlap - shorten current block to end when next begins
|
|
306
|
-
current.duration = next.startTime - current.startTime;
|
|
307
|
-
}
|
|
308
|
-
else if (currentEnd < next.startTime - 0.5) {
|
|
309
|
-
// Gap > 0.5s - extend current block to fill (visual continuity)
|
|
310
|
-
// Same formula as overlap: snap to next block start
|
|
311
|
-
current.duration = Math.max(0.1, next.startTime - current.startTime);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
// Minimum gap between any two transitions (including section boundaries).
|
|
315
|
-
// No block should be visible for less than this before a transition occurs.
|
|
316
|
-
const MIN_TRANSITION_GAP = 5;
|
|
317
|
-
const segmentEnd = audioSegment.startTime + audioSegment.duration;
|
|
318
|
-
// Fourth pass: enforce minimum transition gap at section boundary.
|
|
319
|
-
// Eliminate blocks from the end that would start within MIN_TRANSITION_GAP
|
|
320
|
-
// of the section end (creating a jarring transition right before the next
|
|
321
|
-
// section header). Loop to handle cascading eliminations.
|
|
322
|
-
while (segmentExpandedBlocks.length > 1) {
|
|
323
|
-
const lastBlock = segmentExpandedBlocks[segmentExpandedBlocks.length - 1];
|
|
324
|
-
const timeFromLastToEnd = segmentEnd - lastBlock.startTime;
|
|
325
|
-
if (timeFromLastToEnd < MIN_TRANSITION_GAP && lastBlock.template !== 'sectionHeader') {
|
|
326
|
-
const prevBlock = segmentExpandedBlocks[segmentExpandedBlocks.length - 2];
|
|
327
|
-
prevBlock.duration = segmentEnd - prevBlock.startTime;
|
|
328
|
-
lastBlock.duration = 0;
|
|
329
|
-
lastBlock.startTime = segmentEnd;
|
|
330
|
-
segmentExpandedBlocks.pop();
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
// Extend last block to fill to segment end
|
|
334
|
-
if (lastBlock.startTime + lastBlock.duration < segmentEnd) {
|
|
335
|
-
lastBlock.duration = segmentEnd - lastBlock.startTime;
|
|
336
|
-
}
|
|
337
|
-
break;
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
// Handle single-block segment
|
|
341
|
-
if (segmentExpandedBlocks.length === 1) {
|
|
342
|
-
const onlyBlock = segmentExpandedBlocks[0];
|
|
343
|
-
if (onlyBlock.startTime + onlyBlock.duration < segmentEnd) {
|
|
344
|
-
onlyBlock.duration = segmentEnd - onlyBlock.startTime;
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
// Fifth pass: eliminate any remaining blocks shorter than MIN_TRANSITION_GAP.
|
|
348
|
-
// Walk backwards and merge short blocks into their predecessor.
|
|
349
|
-
// Skip index 0 (first block, typically section header) to preserve segment start.
|
|
350
|
-
let changed = true;
|
|
351
|
-
while (changed) {
|
|
352
|
-
changed = false;
|
|
353
|
-
for (let i = segmentExpandedBlocks.length - 1; i >= 1; i--) {
|
|
354
|
-
const block = segmentExpandedBlocks[i];
|
|
355
|
-
if (block.duration > 0 && block.duration < MIN_TRANSITION_GAP) {
|
|
356
|
-
const prev = segmentExpandedBlocks[i - 1];
|
|
357
|
-
const blockEnd = block.startTime + block.duration;
|
|
358
|
-
prev.duration = blockEnd - prev.startTime;
|
|
359
|
-
block.duration = 0;
|
|
360
|
-
block.startTime = segmentEnd;
|
|
361
|
-
segmentExpandedBlocks.splice(i, 1);
|
|
362
|
-
changed = true;
|
|
363
|
-
break; // Restart loop after modification
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
// Sixth pass: split blocks that are too long (>20s)
|
|
368
|
-
// This ensures no single block lingers for too long
|
|
369
|
-
const MAX_BLOCK_DURATION = 20;
|
|
370
|
-
for (let i = 0; i < segmentExpandedBlocks.length; i++) {
|
|
371
|
-
const block = segmentExpandedBlocks[i];
|
|
372
|
-
if (block.duration > MAX_BLOCK_DURATION) {
|
|
373
|
-
// Calculate how many parts we need
|
|
374
|
-
const numParts = Math.ceil(block.duration / MAX_BLOCK_DURATION);
|
|
375
|
-
const partDuration = block.duration / numParts;
|
|
376
|
-
// Only split if each part would meet minimum transition gap
|
|
377
|
-
if (partDuration >= MIN_TRANSITION_GAP) {
|
|
378
|
-
// Shorten original block to first part
|
|
379
|
-
block.duration = partDuration;
|
|
380
|
-
// Create additional blocks for remaining parts
|
|
381
|
-
for (let p = 1; p < numParts; p++) {
|
|
382
|
-
const splitBlock = {
|
|
383
|
-
id: `${block.id}-split-${p}`,
|
|
384
|
-
startTime: block.startTime + p * partDuration,
|
|
385
|
-
duration: partDuration,
|
|
386
|
-
audioSegment: block.audioSegment,
|
|
387
|
-
layers: (block.layers ?? []).map((layer) => ({
|
|
388
|
-
...layer,
|
|
389
|
-
id: `${layer.id}-split-${p}`,
|
|
390
|
-
})),
|
|
391
|
-
transition: { type: 'dissolve', duration: 1.0 },
|
|
392
|
-
template: block.template,
|
|
393
|
-
};
|
|
394
|
-
// Insert into expanded blocks array
|
|
395
|
-
expandedBlocks.push(splitBlock);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
// Filter out zero-duration blocks (eliminated in earlier passes)
|
|
402
|
-
return expandedBlocks.filter((block) => block && block.duration > 0);
|
|
403
|
-
}
|
|
404
|
-
/**
|
|
405
|
-
* Get list of available template names.
|
|
406
|
-
*/
|
|
407
|
-
export function getAvailableTemplates() {
|
|
408
|
-
return Object.keys(templateRegistry);
|
|
409
|
-
}
|
|
410
|
-
/**
|
|
411
|
-
* Check if a template exists.
|
|
412
|
-
*/
|
|
413
|
-
export function hasTemplate(name) {
|
|
414
|
-
return name in templateRegistry;
|
|
415
|
-
}
|
|
416
|
-
// Re-export types and utilities from schemas
|
|
417
|
-
export { isTemplateBlock, createTemplateContext, scaledFontSize, } from '../../schemas/BlockTemplates.js';
|
|
418
|
-
export { DEFAULT_THEME, resolveTheme, getAvailableThemes, getThemeSummaries, } from '../../schemas/themeLibrary.js';
|
|
419
|
-
// Re-export timing types (AudioSegmentTiming and ExpandDocBlocksOptions are already exported above)
|
|
420
|
-
export { VIEWPORT_PRESETS, getViewport, getViewportOrientation } from '../../schemas/Viewport.js';
|
|
421
|
-
export { getLayoutHints, getTwoColumnPositions } from '../../schemas/LayoutStrategy.js';
|
|
422
|
-
export { expandPersistentLayers, getDocStyleConfig } from './persistentLayers.js';
|
|
423
|
-
// Re-export individual templates for direct access
|
|
424
|
-
export { titleBlock } from './titleBlock.js';
|
|
425
|
-
export { sectionHeader } from './sectionHeader.js';
|
|
426
|
-
export { statHighlight } from './statHighlight.js';
|
|
427
|
-
export { quoteBlock } from './quoteBlock.js';
|
|
428
|
-
export { factCard } from './factCard.js';
|
|
429
|
-
export { twoColumn } from './twoColumn.js';
|
|
430
|
-
export { dateEvent } from './dateEvent.js';
|
|
431
|
-
export { imageWithCaption } from './imageWithCaption.js';
|
|
432
|
-
export { mapBlock } from './mapBlock.js';
|
|
433
|
-
export { coverBlock, expandCoverBlock } from './coverBlock.js';
|
|
434
|
-
export { fullBleedQuote } from './fullBleedQuote.js';
|
|
435
|
-
export { listBlock } from './listBlock.js';
|
|
436
|
-
export { photoGrid } from './photoGrid.js';
|
|
437
|
-
export { definitionCard } from './definitionCard.js';
|
|
438
|
-
export { comparisonBar } from './comparisonBar.js';
|
|
439
|
-
export { pullQuote } from './pullQuote.js';
|
|
440
|
-
export { videoWithCaption } from './videoWithCaption.js';
|
|
441
|
-
export { videoPullQuote } from './videoPullQuote.js';
|
|
442
|
-
export { dataTable } from './dataTable.js';
|
|
443
|
-
// Re-export accent image utilities
|
|
444
|
-
export { getAccentLayout, createAccentLayers, adjustY, DEFAULT_LAYOUT } from './accentImage.js';
|
|
445
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doc/templates/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* List Block Template
|
|
3
|
-
*
|
|
4
|
-
* Displays 3-5 items in a numbered vertical list with staggered animations.
|
|
5
|
-
* Good for enumerations like "things to see", "key features", or "tips".
|
|
6
|
-
* Supports optional accent images.
|
|
7
|
-
*
|
|
8
|
-
* This is shared code used by both site and efb-app doc renderers.
|
|
9
|
-
*/
|
|
10
|
-
import type { Layer } from '../../schemas/Doc.js';
|
|
11
|
-
import type { ListBlockInput, TemplateContext } from '../../schemas/BlockTemplates.js';
|
|
12
|
-
export declare function listBlock(input: ListBlockInput, context: TemplateContext): Layer[];
|
|
13
|
-
//# sourceMappingURL=listBlock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listBlock.d.ts","sourceRoot":"","sources":["../../../src/doc/templates/listBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKvF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,CAuFlF"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* List Block Template
|
|
3
|
-
*
|
|
4
|
-
* Displays 3-5 items in a numbered vertical list with staggered animations.
|
|
5
|
-
* Good for enumerations like "things to see", "key features", or "tips".
|
|
6
|
-
* Supports optional accent images.
|
|
7
|
-
*
|
|
8
|
-
* This is shared code used by both site and efb-app doc renderers.
|
|
9
|
-
*/
|
|
10
|
-
import { scaledFontSize } from '../../schemas/BlockTemplates.js';
|
|
11
|
-
import { getThemeFont } from '../utils/themeUtils.js';
|
|
12
|
-
import { createAccentLayers, getAccentLayout, adjustY, DEFAULT_LAYOUT } from './accentImage.js';
|
|
13
|
-
export function listBlock(input, context) {
|
|
14
|
-
const { items, title, accentImage } = input;
|
|
15
|
-
const { theme } = context;
|
|
16
|
-
// Get layout adjustments if accent image is present
|
|
17
|
-
const accentLayout = accentImage ? getAccentLayout(accentImage.position) : DEFAULT_LAYOUT;
|
|
18
|
-
const titleFontSize = scaledFontSize(44, context, true);
|
|
19
|
-
const itemFontSize = scaledFontSize(34, context, false);
|
|
20
|
-
const layers = [
|
|
21
|
-
// Background — gradient
|
|
22
|
-
{
|
|
23
|
-
type: 'shape',
|
|
24
|
-
id: 'bg',
|
|
25
|
-
content: {
|
|
26
|
-
shape: 'rect',
|
|
27
|
-
fill: `linear-gradient(155deg, ${theme.colors.backgroundLight} 0%, ${theme.colors.background} 100%)`,
|
|
28
|
-
},
|
|
29
|
-
position: { x: 0, y: 0, width: '100%', height: '100%' },
|
|
30
|
-
},
|
|
31
|
-
];
|
|
32
|
-
// Add accent image layers
|
|
33
|
-
if (accentImage) {
|
|
34
|
-
layers.push(...createAccentLayers(accentImage, input.id));
|
|
35
|
-
}
|
|
36
|
-
// Title if provided
|
|
37
|
-
const startY = title ? 30 : 22;
|
|
38
|
-
if (title) {
|
|
39
|
-
layers.push({
|
|
40
|
-
type: 'text',
|
|
41
|
-
id: 'list-title',
|
|
42
|
-
content: {
|
|
43
|
-
text: title,
|
|
44
|
-
style: {
|
|
45
|
-
fontSize: titleFontSize,
|
|
46
|
-
fontFamily: getThemeFont(context, 'title'),
|
|
47
|
-
fontWeight: 'bold',
|
|
48
|
-
color: theme.colors.text,
|
|
49
|
-
textAlign: 'center',
|
|
50
|
-
shadow: !!accentImage,
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
position: {
|
|
54
|
-
x: accentLayout.textCenterX,
|
|
55
|
-
y: adjustY('16%', accentLayout),
|
|
56
|
-
anchor: 'center',
|
|
57
|
-
},
|
|
58
|
-
animation: { type: 'fadeIn', duration: 1 },
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
// Calculate vertical spacing for items
|
|
62
|
-
const endY = 80;
|
|
63
|
-
const spacing = items.length > 1 ? (endY - startY) / (items.length - 1) : 0;
|
|
64
|
-
// List items with staggered animation
|
|
65
|
-
for (let i = 0; i < items.length; i++) {
|
|
66
|
-
const y = startY + spacing * i;
|
|
67
|
-
const itemText = `${i + 1}. ${items[i]}`;
|
|
68
|
-
layers.push({
|
|
69
|
-
type: 'text',
|
|
70
|
-
id: `item-${i}`,
|
|
71
|
-
content: {
|
|
72
|
-
text: itemText,
|
|
73
|
-
style: {
|
|
74
|
-
fontSize: itemFontSize,
|
|
75
|
-
fontFamily: getThemeFont(context, 'body'),
|
|
76
|
-
color: theme.colors.text,
|
|
77
|
-
lineHeight: 1.4,
|
|
78
|
-
shadow: !!accentImage,
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
position: {
|
|
82
|
-
x: accentLayout.textCenterX,
|
|
83
|
-
y: adjustY(`${y}%`, accentLayout),
|
|
84
|
-
anchor: 'center',
|
|
85
|
-
width: accentLayout.textWidth,
|
|
86
|
-
},
|
|
87
|
-
animation: { type: 'fadeIn', duration: 0.8, delay: 0.3 + 0.3 * i },
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
return layers;
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=listBlock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listBlock.js","sourceRoot":"","sources":["../../../src/doc/templates/listBlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Map Block Template
|
|
3
|
-
*
|
|
4
|
-
* Full-screen geographic map with optional title and caption overlays.
|
|
5
|
-
* Great for establishing geographic context at the start of a doc
|
|
6
|
-
* or when discussing location-specific content.
|
|
7
|
-
* Adapts font sizes and positioning for different viewports.
|
|
8
|
-
*
|
|
9
|
-
* Map tiles are fetched from free/open-source providers.
|
|
10
|
-
* See docs/MAP_TILES.md for available styles and attribution requirements.
|
|
11
|
-
*
|
|
12
|
-
* This is shared code used by both site and efb-app doc renderers.
|
|
13
|
-
*/
|
|
14
|
-
import type { Layer } from '../../schemas/Doc.js';
|
|
15
|
-
import type { MapBlockInput, TemplateContext } from '../../schemas/BlockTemplates.js';
|
|
16
|
-
export declare function mapBlock(input: MapBlockInput, context: TemplateContext): Layer[];
|
|
17
|
-
//# sourceMappingURL=mapBlock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapBlock.d.ts","sourceRoot":"","sources":["../../../src/doc/templates/mapBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKtF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,CAkHhF"}
|