@bendyline/squisq 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE.md +24 -0
- package/dist/{ContentContainer-BXUlIf18.d.ts → ContentContainer-B2w9sUoL.d.ts} +15 -0
- package/dist/{Doc-DynJleo-.d.ts → Doc-BubIpWsp.d.ts} +1 -1
- package/dist/{ImageEditDoc-Ca4Tr9uN.d.ts → ImageEditDoc-CGxk5CHc.d.ts} +1 -1
- package/dist/{annotationCoercion-Dr_DY9Hx.d.ts → annotationCoercion-PtRQhk5V.d.ts} +1 -1
- package/dist/chunk-2L55443L.js +0 -0
- package/dist/{chunk-VWCJ2WXC.js → chunk-2ZWIXGAC.js} +0 -1
- package/dist/{chunk-VYFRI7R6.js → chunk-32R2RZAO.js} +72 -3
- package/dist/chunk-3IGPAPQ7.js +645 -0
- package/dist/{chunk-QE7TWGVT.js → chunk-4VOD55SX.js} +0 -1
- package/dist/{chunk-3E5F2XMR.js → chunk-67L6WRJN.js} +0 -1
- package/dist/{chunk-5DKBFXPY.js → chunk-6ECMNUIP.js} +26 -18
- package/dist/{chunk-JI77MGAK.js → chunk-7ARJZYQY.js} +159 -120
- package/dist/{chunk-DBS6RIFL.js → chunk-7N4G32LG.js} +0 -1
- package/dist/{chunk-JOQYPRDZ.js → chunk-7YEZFHLS.js} +10 -8
- package/dist/{chunk-2UQOHYE2.js → chunk-7ZAAICW4.js} +0 -1
- package/dist/{chunk-66QO7XFB.js → chunk-ACZOVWX3.js} +117 -7
- package/dist/{chunk-5J4HKRJF.js → chunk-BAOV476U.js} +0 -1
- package/dist/chunk-BCCXTMN5.js +699 -0
- package/dist/{chunk-JHZWYRSW.js → chunk-C33GTPUZ.js} +11 -4
- package/dist/{chunk-QUUPYOSP.js → chunk-CB45YGAM.js} +2 -3
- package/dist/{chunk-XNLB57UD.js → chunk-DYPMOPIW.js} +18 -2
- package/dist/{chunk-VR7UPJ7C.js → chunk-FCG3BIZN.js} +12 -1
- package/dist/{chunk-5UYI3RJB.js → chunk-FDYDYL77.js} +54 -40
- package/dist/{chunk-OTKVFVL6.js → chunk-I2O6W7DX.js} +116 -44
- package/dist/{chunk-Q7LROV2H.js → chunk-NKNMGIIN.js} +0 -1
- package/dist/chunk-OPO5K4DZ.js +241 -0
- package/dist/{chunk-TUWMK62B.js → chunk-PUS54YU6.js} +45 -2
- package/dist/chunk-QKPXHDLR.js +0 -0
- package/dist/{chunk-GZY66SDN.js → chunk-R3KTTOMS.js} +0 -1
- package/dist/{chunk-ILWDXLUK.js → chunk-RS5AP3J4.js} +49 -10
- package/dist/chunk-WV5ARNDA.js +0 -0
- package/dist/{chunk-4X3JQXNM.js → chunk-XOFT65EX.js} +1 -2
- package/dist/{chunk-FVTQSNR7.js → chunk-XRW6P7IF.js} +13 -5
- package/dist/chunk-XWNNA3KE.js +0 -0
- package/dist/chunk-YZNGMV3G.js +0 -0
- package/dist/{chunk-R2YZTCLO.js → chunk-ZQKZSJAX.js} +1 -2
- package/dist/doc/index.d.ts +27 -12
- package/dist/doc/index.js +16 -17
- package/dist/generate/index.d.ts +2 -2
- package/dist/generate/index.js +2 -3
- package/dist/icons/index.js +3 -4
- package/dist/icons/inlineIconMarker.js +1 -2
- package/dist/imageEdit/index.d.ts +48 -17
- package/dist/imageEdit/index.js +3 -4
- package/dist/index.d.ts +11 -11
- package/dist/index.js +60 -33
- package/dist/jsonForm/index.d.ts +10 -3
- package/dist/jsonForm/index.js +8 -7
- package/dist/markdown/index.d.ts +75 -11
- package/dist/markdown/index.js +32 -7
- package/dist/{materializePageSection-DDzubQXo.d.ts → materializePageSection-wSLA2A1g.d.ts} +2 -2
- package/dist/narration/index.d.ts +16 -3
- package/dist/narration/index.js +13 -14
- package/dist/random/index.d.ts +11 -2
- package/dist/random/index.js +2 -3
- package/dist/recommend/index.d.ts +1 -1
- package/dist/recommend/index.js +3 -4
- package/dist/schemas/index.d.ts +5 -5
- package/dist/schemas/index.js +5 -6
- package/dist/spatial/index.d.ts +2 -1
- package/dist/spatial/index.js +1 -2
- package/dist/storage/index.d.ts +4 -2
- package/dist/storage/index.js +1 -2
- package/dist/{themeLibrary-B72m0W1y.d.ts → themeLibrary-DU9mUmVl.d.ts} +1 -1
- package/dist/timing/index.js +3 -4
- package/dist/transform/index.d.ts +3 -3
- package/dist/transform/index.js +6 -7
- package/dist/{types-C4kiRn_k.d.ts → types-8QjefM9J.d.ts} +38 -2
- package/dist/{types-BwMPl2CB.d.ts → types-CUNc9biN.d.ts} +24 -1
- package/dist/versions/index.d.ts +14 -11
- package/dist/versions/index.js +2 -3
- package/package.json +4 -2
- package/dist/chunk-2UQOHYE2.js.map +0 -1
- package/dist/chunk-3E5F2XMR.js.map +0 -1
- package/dist/chunk-4X3JQXNM.js.map +0 -1
- package/dist/chunk-5DKBFXPY.js.map +0 -1
- package/dist/chunk-5J4HKRJF.js.map +0 -1
- package/dist/chunk-5UYI3RJB.js.map +0 -1
- package/dist/chunk-66QO7XFB.js.map +0 -1
- package/dist/chunk-AMIR72JP.js +0 -380
- package/dist/chunk-AMIR72JP.js.map +0 -1
- package/dist/chunk-DBS6RIFL.js.map +0 -1
- package/dist/chunk-DNJKBAI7.js +0 -1
- package/dist/chunk-DNJKBAI7.js.map +0 -1
- package/dist/chunk-ET53IIEP.js +0 -1
- package/dist/chunk-ET53IIEP.js.map +0 -1
- package/dist/chunk-FVTQSNR7.js.map +0 -1
- package/dist/chunk-GZY66SDN.js.map +0 -1
- package/dist/chunk-ILWDXLUK.js.map +0 -1
- package/dist/chunk-JHZWYRSW.js.map +0 -1
- package/dist/chunk-JI77MGAK.js.map +0 -1
- package/dist/chunk-JOQYPRDZ.js.map +0 -1
- package/dist/chunk-OTKVFVL6.js.map +0 -1
- package/dist/chunk-PGGGKYWG.js +0 -1
- package/dist/chunk-PGGGKYWG.js.map +0 -1
- package/dist/chunk-Q7LROV2H.js.map +0 -1
- package/dist/chunk-QE7TWGVT.js.map +0 -1
- package/dist/chunk-QUUPYOSP.js.map +0 -1
- package/dist/chunk-R2GC6RLD.js +0 -344
- package/dist/chunk-R2GC6RLD.js.map +0 -1
- package/dist/chunk-R2YZTCLO.js.map +0 -1
- package/dist/chunk-S7A5D7ZJ.js +0 -174
- package/dist/chunk-S7A5D7ZJ.js.map +0 -1
- package/dist/chunk-TUWMK62B.js.map +0 -1
- package/dist/chunk-V543AI2F.js +0 -1
- package/dist/chunk-V543AI2F.js.map +0 -1
- package/dist/chunk-VR7UPJ7C.js.map +0 -1
- package/dist/chunk-VWCJ2WXC.js.map +0 -1
- package/dist/chunk-VYFRI7R6.js.map +0 -1
- package/dist/chunk-XNLB57UD.js.map +0 -1
- package/dist/chunk-ZLQKNOZQ.js +0 -1
- package/dist/chunk-ZLQKNOZQ.js.map +0 -1
- package/dist/doc/index.js.map +0 -1
- package/dist/generate/index.js.map +0 -1
- package/dist/icons/index.js.map +0 -1
- package/dist/icons/inlineIconMarker.js.map +0 -1
- package/dist/imageEdit/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/jsonForm/index.js.map +0 -1
- package/dist/markdown/index.js.map +0 -1
- package/dist/narration/index.js.map +0 -1
- package/dist/random/index.js.map +0 -1
- package/dist/recommend/index.js.map +0 -1
- package/dist/schemas/index.js.map +0 -1
- package/dist/spatial/index.js.map +0 -1
- package/dist/storage/index.js.map +0 -1
- package/dist/timing/index.js.map +0 -1
- package/dist/transform/index.js.map +0 -1
- package/dist/versions/index.js.map +0 -1
- package/src/__tests__/animationUtils.test.ts +0 -117
- package/src/__tests__/annotationCoercion.test.ts +0 -243
- package/src/__tests__/applyNarrationTiming.test.ts +0 -190
- package/src/__tests__/applyRenderStyle.test.ts +0 -146
- package/src/__tests__/asciiDiagramBattle.test.ts +0 -246
- package/src/__tests__/asciiDiagramDetect.test.ts +0 -162
- package/src/__tests__/asciiDiagramMapping.test.ts +0 -38
- package/src/__tests__/asciiDiagramParse.test.ts +0 -233
- package/src/__tests__/asciiDiagramPipeline.test.ts +0 -273
- package/src/__tests__/asciiDiagramRender.test.ts +0 -162
- package/src/__tests__/asciiDiagramRepair.test.ts +0 -84
- package/src/__tests__/asciiTimelineDetect.test.ts +0 -157
- package/src/__tests__/asciiTimelineParse.test.ts +0 -205
- package/src/__tests__/asciiTimelinePipeline.test.ts +0 -349
- package/src/__tests__/asciiTimelineRender.test.ts +0 -376
- package/src/__tests__/atmosphereLayers.test.ts +0 -108
- package/src/__tests__/attrTokens.test.ts +0 -167
- package/src/__tests__/colorUtils.test.ts +0 -112
- package/src/__tests__/contentContainer.test.ts +0 -325
- package/src/__tests__/contentExtractor.test.ts +0 -243
- package/src/__tests__/coverBlock.test.ts +0 -310
- package/src/__tests__/customTemplateSample.test.ts +0 -144
- package/src/__tests__/customTemplatesFrontmatter.test.ts +0 -221
- package/src/__tests__/customThemesFrontmatter.test.ts +0 -146
- package/src/__tests__/dataTable.test.ts +0 -145
- package/src/__tests__/diagramBlock.test.ts +0 -122
- package/src/__tests__/diagramLayout.test.ts +0 -134
- package/src/__tests__/diagramText.test.ts +0 -26
- package/src/__tests__/docToMarkdownMedia.test.ts +0 -83
- package/src/__tests__/drawing.test.ts +0 -109
- package/src/__tests__/drawingBlock.test.ts +0 -124
- package/src/__tests__/drawingLayout.test.ts +0 -171
- package/src/__tests__/fixtures/asciiDiagramBattle.ts +0 -512
- package/src/__tests__/fixtures/asciiDiagrams.ts +0 -287
- package/src/__tests__/fixtures/asciiTimelines.ts +0 -35
- package/src/__tests__/fixtures/treeviewFixtures.ts +0 -243
- package/src/__tests__/geohash.test.ts +0 -110
- package/src/__tests__/getLayers.test.ts +0 -243
- package/src/__tests__/getLayersFallback.test.ts +0 -103
- package/src/__tests__/haversine.test.ts +0 -63
- package/src/__tests__/iconResolve.test.ts +0 -122
- package/src/__tests__/imageEditExportSvg.test.ts +0 -70
- package/src/__tests__/imageEditState.test.ts +0 -74
- package/src/__tests__/imageEditVersions.test.ts +0 -243
- package/src/__tests__/inferDocumentTitle.test.ts +0 -50
- package/src/__tests__/inlineIconMarker.test.ts +0 -36
- package/src/__tests__/inputDescriptors.test.ts +0 -162
- package/src/__tests__/jsonForm.chooseControl.test.ts +0 -86
- package/src/__tests__/jsonForm.evaluateWhen.test.ts +0 -59
- package/src/__tests__/jsonForm.inferSchema.test.ts +0 -25
- package/src/__tests__/jsonForm.pointer.test.ts +0 -149
- package/src/__tests__/jsonForm.tokens.test.ts +0 -84
- package/src/__tests__/layoutBlock.test.ts +0 -83
- package/src/__tests__/layoutLayout.test.ts +0 -169
- package/src/__tests__/localForageAdapter.test.ts +0 -155
- package/src/__tests__/majorApiTypes.test.ts +0 -18
- package/src/__tests__/markdown.test.ts +0 -1009
- package/src/__tests__/markdownIcons.test.ts +0 -104
- package/src/__tests__/markdownSanitize.test.ts +0 -81
- package/src/__tests__/markdownToDoc.test.ts +0 -957
- package/src/__tests__/matchFontFamily.test.ts +0 -114
- package/src/__tests__/materializeBlockLayers.test.ts +0 -167
- package/src/__tests__/materializePageSections.test.ts +0 -404
- package/src/__tests__/materializeTestUtils.ts +0 -17
- package/src/__tests__/mediaAnnotations.test.ts +0 -91
- package/src/__tests__/mediaSchedule.test.ts +0 -118
- package/src/__tests__/narrationAlign.test.ts +0 -150
- package/src/__tests__/narrationFeatures.test.ts +0 -71
- package/src/__tests__/narrationNuclei.test.ts +0 -45
- package/src/__tests__/narrationPacing.test.ts +0 -189
- package/src/__tests__/narrationScript.test.ts +0 -149
- package/src/__tests__/narrationSessionRepro.test.ts +0 -62
- package/src/__tests__/narrationSidecar.test.ts +0 -88
- package/src/__tests__/narrationSyllables.test.ts +0 -65
- package/src/__tests__/narrationTestSignals.ts +0 -167
- package/src/__tests__/narrationVad.test.ts +0 -66
- package/src/__tests__/pageStyle.test.ts +0 -258
- package/src/__tests__/pandocAttrParse.test.ts +0 -187
- package/src/__tests__/recommendTemplates.test.ts +0 -183
- package/src/__tests__/resolveDocTheme.test.ts +0 -69
- package/src/__tests__/rootExports.test.ts +0 -61
- package/src/__tests__/scopedContentContainer.test.ts +0 -109
- package/src/__tests__/seededRandom.test.ts +0 -142
- package/src/__tests__/shapeGeometry.test.ts +0 -138
- package/src/__tests__/shapeVocabulary.test.ts +0 -133
- package/src/__tests__/storage.test.ts +0 -60
- package/src/__tests__/structuredData.test.ts +0 -249
- package/src/__tests__/surface.test.ts +0 -68
- package/src/__tests__/templateAnnotationParse.test.ts +0 -173
- package/src/__tests__/templateInputs.test.ts +0 -69
- package/src/__tests__/templateMetadata.test.ts +0 -32
- package/src/__tests__/templates.test.ts +0 -710
- package/src/__tests__/themeCompile.test.ts +0 -225
- package/src/__tests__/themeValidator.test.ts +0 -131
- package/src/__tests__/timing.test.ts +0 -167
- package/src/__tests__/transformProvenance.test.ts +0 -160
- package/src/__tests__/transformV2.test.ts +0 -163
- package/src/__tests__/transitionNormalize.test.ts +0 -61
- package/src/__tests__/treeviewBattle.test.ts +0 -76
- package/src/__tests__/treeviewDetect.test.ts +0 -168
- package/src/__tests__/treeviewParse.test.ts +0 -118
- package/src/__tests__/treeviewPipeline.test.ts +0 -183
- package/src/__tests__/treeviewRender.test.ts +0 -91
- package/src/__tests__/validateDoc.test.ts +0 -260
- package/src/__tests__/versions.test.ts +0 -459
- package/src/doc/annotationBlocks.ts +0 -117
- package/src/doc/applyNarrationTiming.ts +0 -244
- package/src/doc/asciiDiagram/chars.ts +0 -210
- package/src/doc/asciiDiagram/detect.ts +0 -175
- package/src/doc/asciiDiagram/index.ts +0 -38
- package/src/doc/asciiDiagram/mapping.ts +0 -225
- package/src/doc/asciiDiagram/parse.ts +0 -1095
- package/src/doc/asciiDiagram/render.ts +0 -963
- package/src/doc/asciiDiagram/repair.ts +0 -400
- package/src/doc/asciiDiagram/types.ts +0 -65
- package/src/doc/asciiTimeline/detect.ts +0 -138
- package/src/doc/asciiTimeline/index.ts +0 -26
- package/src/doc/asciiTimeline/mapping.ts +0 -43
- package/src/doc/asciiTimeline/parse.ts +0 -870
- package/src/doc/asciiTimeline/render.ts +0 -427
- package/src/doc/asciiTimeline/types.ts +0 -73
- package/src/doc/asciiTimeline/wrappedFlow.ts +0 -427
- package/src/doc/audioMapping.ts +0 -442
- package/src/doc/customTemplatesFrontmatter.ts +0 -273
- package/src/doc/customThemesFrontmatter.ts +0 -95
- package/src/doc/docToMarkdown.ts +0 -284
- package/src/doc/index.ts +0 -161
- package/src/doc/markdownToDoc.ts +0 -1054
- package/src/doc/materializeBlockLayers.ts +0 -465
- package/src/doc/mediaAnnotations.ts +0 -120
- package/src/doc/page/PageSection.ts +0 -174
- package/src/doc/page/materializePageSection.ts +0 -616
- package/src/doc/page/resolvePageBlock.ts +0 -108
- package/src/doc/page/sectionExtractors.ts +0 -466
- package/src/doc/pageCss.ts +0 -628
- package/src/doc/resolveDocTheme.ts +0 -56
- package/src/doc/standaloneAnnotation.ts +0 -58
- package/src/doc/structuredData.ts +0 -301
- package/src/doc/templateInputs.ts +0 -424
- package/src/doc/templates/__tests__/customTemplate.test.ts +0 -170
- package/src/doc/templates/__tests__/customTemplateRegistry.test.ts +0 -124
- package/src/doc/templates/__tests__/listBlock.test.ts +0 -64
- package/src/doc/templates/accentImage.ts +0 -362
- package/src/doc/templates/captionUtils.ts +0 -56
- package/src/doc/templates/comparisonBar.ts +0 -173
- package/src/doc/templates/coverBlock.ts +0 -255
- package/src/doc/templates/customTemplate.ts +0 -51
- package/src/doc/templates/dataTable.ts +0 -102
- package/src/doc/templates/dateEvent.ts +0 -147
- package/src/doc/templates/definitionCard.ts +0 -140
- package/src/doc/templates/diagramBlock.ts +0 -403
- package/src/doc/templates/diagramLayout.ts +0 -159
- package/src/doc/templates/drawingBlock.ts +0 -325
- package/src/doc/templates/drawingLayout.ts +0 -539
- package/src/doc/templates/factCard.ts +0 -146
- package/src/doc/templates/fallbackBlock.ts +0 -123
- package/src/doc/templates/featureBlock.ts +0 -209
- package/src/doc/templates/fullBleedQuote.ts +0 -83
- package/src/doc/templates/imageWithCaption.ts +0 -186
- package/src/doc/templates/index.ts +0 -642
- package/src/doc/templates/inputDescriptors.ts +0 -451
- package/src/doc/templates/layoutBlock.ts +0 -43
- package/src/doc/templates/layoutLayout.ts +0 -243
- package/src/doc/templates/listBlock.ts +0 -207
- package/src/doc/templates/mapBlock.ts +0 -138
- package/src/doc/templates/metadata.ts +0 -130
- package/src/doc/templates/persistentLayers.ts +0 -526
- package/src/doc/templates/photoGrid.ts +0 -190
- package/src/doc/templates/pullQuote.ts +0 -141
- package/src/doc/templates/quoteBlock.ts +0 -141
- package/src/doc/templates/registry.ts +0 -88
- package/src/doc/templates/sectionHeader.ts +0 -120
- package/src/doc/templates/statHighlight.ts +0 -146
- package/src/doc/templates/templateNames.ts +0 -22
- package/src/doc/templates/timelineBlock.ts +0 -613
- package/src/doc/templates/titleBlock.ts +0 -150
- package/src/doc/templates/tokens/__tests__/resolveTokens.test.ts +0 -487
- package/src/doc/templates/tokens/resolveTokens.ts +0 -453
- package/src/doc/templates/treeBlock.ts +0 -131
- package/src/doc/templates/twoColumn.ts +0 -263
- package/src/doc/templates/videoPullQuote.ts +0 -142
- package/src/doc/templates/videoWithCaption.ts +0 -135
- package/src/doc/treeview/chars.ts +0 -72
- package/src/doc/treeview/detect.ts +0 -145
- package/src/doc/treeview/index.ts +0 -30
- package/src/doc/treeview/mapping.ts +0 -95
- package/src/doc/treeview/parse.ts +0 -201
- package/src/doc/treeview/render.ts +0 -41
- package/src/doc/treeview/types.ts +0 -43
- package/src/doc/utils/animationUtils.ts +0 -399
- package/src/doc/utils/applyRenderStyle.ts +0 -106
- package/src/doc/utils/diagramText.ts +0 -78
- package/src/doc/utils/imageTreatment.ts +0 -70
- package/src/doc/utils/nearest.ts +0 -59
- package/src/doc/utils/shapeGeometry.ts +0 -614
- package/src/doc/utils/themeUtils.ts +0 -243
- package/src/doc/validate.ts +0 -575
- package/src/generate/contentExtractor.ts +0 -921
- package/src/generate/index.ts +0 -18
- package/src/generate/templateMapper.ts +0 -177
- package/src/icons/iconData.ts +0 -31
- package/src/icons/index.ts +0 -26
- package/src/icons/inlineIconMarker.ts +0 -73
- package/src/icons/resolve.ts +0 -139
- package/src/imageEdit/ImageEditVersionManager.ts +0 -73
- package/src/imageEdit/export.ts +0 -410
- package/src/imageEdit/index.ts +0 -72
- package/src/imageEdit/persistence.ts +0 -113
- package/src/imageEdit/state.ts +0 -112
- package/src/imageEdit/versionPaths.ts +0 -44
- package/src/imageEdit/versions.ts +0 -152
- package/src/index.ts +0 -15
- package/src/internal/immutable.ts +0 -58
- package/src/jsonForm/chooseControl.ts +0 -88
- package/src/jsonForm/evaluateWhen.ts +0 -59
- package/src/jsonForm/index.ts +0 -32
- package/src/jsonForm/inferSchema.ts +0 -25
- package/src/jsonForm/pointer.ts +0 -154
- package/src/jsonForm/tokens.ts +0 -78
- package/src/jsonForm/types.ts +0 -167
- package/src/markdown/annotationCoercion.ts +0 -295
- package/src/markdown/attrTokens.ts +0 -243
- package/src/markdown/convert.ts +0 -1353
- package/src/markdown/htmlParse.ts +0 -212
- package/src/markdown/index.ts +0 -152
- package/src/markdown/parse.ts +0 -103
- package/src/markdown/sanitize.ts +0 -318
- package/src/markdown/stringify.ts +0 -207
- package/src/markdown/types.ts +0 -710
- package/src/markdown/utils.ts +0 -459
- package/src/narration/align.ts +0 -514
- package/src/narration/features.ts +0 -231
- package/src/narration/index.ts +0 -86
- package/src/narration/nuclei.ts +0 -118
- package/src/narration/pacing.ts +0 -211
- package/src/narration/script.ts +0 -239
- package/src/narration/session.ts +0 -100
- package/src/narration/sidecar.ts +0 -187
- package/src/narration/syllables.ts +0 -85
- package/src/narration/trace.ts +0 -50
- package/src/narration/types.ts +0 -299
- package/src/narration/vad.ts +0 -131
- package/src/ngeohash.d.ts +0 -11
- package/src/random/SeededRandom.ts +0 -127
- package/src/random/index.ts +0 -1
- package/src/recommend/index.ts +0 -16
- package/src/recommend/numberHighlight.ts +0 -25
- package/src/recommend/templates.ts +0 -393
- package/src/schemas/BlockTemplates.ts +0 -1046
- package/src/schemas/CustomTemplates.ts +0 -126
- package/src/schemas/Doc.ts +0 -1073
- package/src/schemas/ImageEditDoc.ts +0 -102
- package/src/schemas/LayoutStrategy.ts +0 -178
- package/src/schemas/Media.ts +0 -179
- package/src/schemas/MediaProvider.ts +0 -70
- package/src/schemas/PageStyle.ts +0 -213
- package/src/schemas/Theme.ts +0 -413
- package/src/schemas/Transitions.ts +0 -224
- package/src/schemas/Types.ts +0 -15
- package/src/schemas/Viewport.ts +0 -91
- package/src/schemas/colorUtils.ts +0 -219
- package/src/schemas/fontStacks.ts +0 -339
- package/src/schemas/index.ts +0 -31
- package/src/schemas/pageStyleDefaults.ts +0 -204
- package/src/schemas/themeCompile.ts +0 -244
- package/src/schemas/themeConstants.ts +0 -2
- package/src/schemas/themeLibrary.ts +0 -60
- package/src/schemas/themeValidator.ts +0 -609
- package/src/schemas/themes/bold.json +0 -77
- package/src/schemas/themes/cinematic.json +0 -143
- package/src/schemas/themes/documentary.json +0 -125
- package/src/schemas/themes/gezellig.json +0 -123
- package/src/schemas/themes/index.ts +0 -53
- package/src/schemas/themes/magazine.json +0 -126
- package/src/schemas/themes/minimalist.json +0 -74
- package/src/schemas/themes/morning-light.json +0 -117
- package/src/schemas/themes/standard-dark.json +0 -109
- package/src/schemas/themes/standard.json +0 -98
- package/src/schemas/themes/tech-dark.json +0 -143
- package/src/schemas/themes/warm-earth.json +0 -74
- package/src/spatial/Geohash.ts +0 -196
- package/src/spatial/Haversine.ts +0 -59
- package/src/spatial/index.ts +0 -2
- package/src/storage/ContentContainer.ts +0 -220
- package/src/storage/LocalForageAdapter.ts +0 -103
- package/src/storage/LocalStorageAdapter.ts +0 -57
- package/src/storage/MediaProviderFromContainer.ts +0 -92
- package/src/storage/MemoryStorageAdapter.ts +0 -37
- package/src/storage/ScopedContentContainer.ts +0 -143
- package/src/storage/Storage.ts +0 -28
- package/src/storage/index.ts +0 -9
- package/src/timing/index.ts +0 -17
- package/src/timing/narrationTiming.ts +0 -220
- package/src/timing/readingTime.ts +0 -94
- package/src/transform/applyTransform.ts +0 -122
- package/src/transform/blockAnalyzer.ts +0 -181
- package/src/transform/index.ts +0 -23
- package/src/transform/registry.ts +0 -217
- package/src/transform/styles/dataDriven.ts +0 -18
- package/src/transform/styles/documentary.ts +0 -18
- package/src/transform/styles/index.ts +0 -5
- package/src/transform/styles/magazine.ts +0 -19
- package/src/transform/styles/minimal.ts +0 -18
- package/src/transform/styles/narrative.ts +0 -19
- package/src/transform/templateSelector.ts +0 -389
- package/src/transform/timingAllocator.ts +0 -257
- package/src/transform/types.ts +0 -158
- package/src/versions/DocumentVersionManager.ts +0 -70
- package/src/versions/gitignore.ts +0 -34
- package/src/versions/index.ts +0 -56
- package/src/versions/operations.ts +0 -144
- package/src/versions/paths.ts +0 -51
- package/src/versions/snapshotStore.ts +0 -202
- package/src/versions/timestamp.ts +0 -48
- package/src/versions/types.ts +0 -93
|
@@ -6,11 +6,12 @@ import {
|
|
|
6
6
|
pruneSnapshots,
|
|
7
7
|
readTextSnapshot,
|
|
8
8
|
saveTextSnapshot
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OPO5K4DZ.js";
|
|
10
10
|
import {
|
|
11
|
+
bytesToBase64,
|
|
11
12
|
markerPath,
|
|
12
13
|
shapePath
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-PUS54YU6.js";
|
|
14
15
|
|
|
15
16
|
// src/imageEdit/state.ts
|
|
16
17
|
var IMAGE_EDIT_STATE_FILENAME = "state.json";
|
|
@@ -99,21 +100,21 @@ async function writeImageEditDoc(container, doc, filename = IMAGE_EDIT_STATE_FIL
|
|
|
99
100
|
const text = JSON.stringify(doc, null, 2);
|
|
100
101
|
await container.writeFile(filename, encoder.encode(text), "application/json");
|
|
101
102
|
}
|
|
102
|
-
function assertImageEditDoc(value, filename) {
|
|
103
|
+
function assertImageEditDoc(value, filename, context = "readImageEditDoc") {
|
|
103
104
|
if (!value || typeof value !== "object") {
|
|
104
|
-
throw new Error(
|
|
105
|
+
throw new Error(`${context}: ${filename} root must be an object`);
|
|
105
106
|
}
|
|
106
107
|
const v = value;
|
|
107
108
|
if (v.version !== 1) {
|
|
108
109
|
throw new Error(
|
|
109
|
-
|
|
110
|
+
`${context}: ${filename} has unsupported schema version ${String(v.version)} (expected 1)`
|
|
110
111
|
);
|
|
111
112
|
}
|
|
112
113
|
if (!v.canvas || typeof v.canvas.width !== "number" || typeof v.canvas.height !== "number") {
|
|
113
|
-
throw new Error(
|
|
114
|
+
throw new Error(`${context}: ${filename} canvas.width/height must be numbers`);
|
|
114
115
|
}
|
|
115
116
|
if (!Array.isArray(v.layers)) {
|
|
116
|
-
throw new Error(
|
|
117
|
+
throw new Error(`${context}: ${filename} layers must be an array`);
|
|
117
118
|
}
|
|
118
119
|
v.layers.forEach((layer, i) => assertLayer(layer, i, filename));
|
|
119
120
|
}
|
|
@@ -179,7 +180,16 @@ async function readImageEditVersionText(container, version) {
|
|
|
179
180
|
async function readImageEditVersion(container, version) {
|
|
180
181
|
const text = await readImageEditVersionText(container, version);
|
|
181
182
|
if (text === null) return null;
|
|
182
|
-
|
|
183
|
+
const path = typeof version === "string" ? version : version.path;
|
|
184
|
+
let parsed;
|
|
185
|
+
try {
|
|
186
|
+
parsed = JSON.parse(text);
|
|
187
|
+
} catch (err) {
|
|
188
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
189
|
+
throw new Error(`readImageEditVersion: ${path} is not valid JSON: ${msg}`);
|
|
190
|
+
}
|
|
191
|
+
assertImageEditDoc(parsed, path, "readImageEditVersion");
|
|
192
|
+
return parsed;
|
|
183
193
|
}
|
|
184
194
|
async function saveImageEditVersion(container, options = {}) {
|
|
185
195
|
const stateFilename = options.stateFilename ?? IMAGE_EDIT_STATE_FILENAME;
|
|
@@ -200,11 +210,16 @@ async function saveImageEditVersion(container, options = {}) {
|
|
|
200
210
|
async function revertToImageEditVersion(container, version, options = {}) {
|
|
201
211
|
const doc = await readImageEditVersion(container, version);
|
|
202
212
|
if (!doc) {
|
|
203
|
-
return { reverted: false, snapshotted: null };
|
|
213
|
+
return { reverted: false, snapshotted: null, reason: "missing-snapshot" };
|
|
204
214
|
}
|
|
205
215
|
let snapshotted = null;
|
|
206
216
|
if (options.snapshotCurrent !== false) {
|
|
207
|
-
const
|
|
217
|
+
const saveOptions = { stateFilename: options.stateFilename };
|
|
218
|
+
if (options.doc !== void 0) saveOptions.doc = options.doc;
|
|
219
|
+
const result = await saveImageEditVersion(container, saveOptions);
|
|
220
|
+
if (!result.saved && result.reason !== "unchanged") {
|
|
221
|
+
return { reverted: false, snapshotted: null, reason: "snapshot-failed" };
|
|
222
|
+
}
|
|
208
223
|
snapshotted = result.version;
|
|
209
224
|
}
|
|
210
225
|
await writeImageEditDoc(container, doc, options.stateFilename);
|
|
@@ -401,13 +416,7 @@ async function loadAssetAsDataUrl(container, src) {
|
|
|
401
416
|
}
|
|
402
417
|
function arrayBufferToDataUrl(data, mime) {
|
|
403
418
|
const bytes = new Uint8Array(data);
|
|
404
|
-
|
|
405
|
-
const CHUNK = 32768;
|
|
406
|
-
for (let i = 0; i < bytes.length; i += CHUNK) {
|
|
407
|
-
binary += String.fromCharCode.apply(null, Array.from(bytes.subarray(i, i + CHUNK)));
|
|
408
|
-
}
|
|
409
|
-
const b64 = typeof btoa === "function" ? btoa(binary) : Buffer.from(bytes).toString("base64");
|
|
410
|
-
return `data:${mime};base64,${b64}`;
|
|
419
|
+
return `data:${mime};base64,${bytesToBase64(bytes)}`;
|
|
411
420
|
}
|
|
412
421
|
function guessMime(path) {
|
|
413
422
|
const dot = path.lastIndexOf(".");
|
|
@@ -500,4 +509,3 @@ export {
|
|
|
500
509
|
exportImageEditDoc,
|
|
501
510
|
buildSvgString
|
|
502
511
|
};
|
|
503
|
-
//# sourceMappingURL=chunk-5DKBFXPY.js.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
anchorPoint,
|
|
3
|
+
base64ToUtf8,
|
|
3
4
|
connectorPath,
|
|
4
5
|
lineStyleDasharray,
|
|
5
6
|
shapePath,
|
|
6
7
|
snapEndpoints
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-PUS54YU6.js";
|
|
8
9
|
import {
|
|
9
10
|
detectAsciiDiagram,
|
|
10
11
|
detectAsciiTimeline,
|
|
@@ -19,7 +20,7 @@ import {
|
|
|
19
20
|
parseAsciiTimeline,
|
|
20
21
|
pickAutoTemplate,
|
|
21
22
|
profileBlockContents
|
|
22
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-FDYDYL77.js";
|
|
23
24
|
import {
|
|
24
25
|
DEFAULT_THEME,
|
|
25
26
|
FRONTMATTER_CUSTOM_TEMPLATES_KEY,
|
|
@@ -30,7 +31,7 @@ import {
|
|
|
30
31
|
resolveFontFamily,
|
|
31
32
|
validateTheme,
|
|
32
33
|
withAlpha
|
|
33
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-C33GTPUZ.js";
|
|
34
35
|
import {
|
|
35
36
|
VIEWPORT_PRESETS,
|
|
36
37
|
cloneData,
|
|
@@ -39,7 +40,7 @@ import {
|
|
|
39
40
|
isPersistentLayerTemplate,
|
|
40
41
|
isTemplateBlock,
|
|
41
42
|
scaledFontSize2 as scaledFontSize
|
|
42
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-BAOV476U.js";
|
|
43
44
|
import {
|
|
44
45
|
KNOWN_BLOCK_META_KEYS,
|
|
45
46
|
coerceAnnotationValues,
|
|
@@ -48,25 +49,25 @@ import {
|
|
|
48
49
|
parseTimeSeconds,
|
|
49
50
|
splitKeyValueToken,
|
|
50
51
|
tokenizeAttrTokens
|
|
51
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-ZQKZSJAX.js";
|
|
52
53
|
import {
|
|
53
54
|
extractPlainText,
|
|
54
55
|
readFrontmatterThemeId,
|
|
55
56
|
walkMarkdownTree
|
|
56
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-BCCXTMN5.js";
|
|
57
58
|
import {
|
|
58
59
|
resolveBlockTransition
|
|
59
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-4VOD55SX.js";
|
|
60
61
|
import {
|
|
61
62
|
estimateReadingTime
|
|
62
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-XOFT65EX.js";
|
|
63
64
|
import {
|
|
64
65
|
estimateSpokenWordCount
|
|
65
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-67L6WRJN.js";
|
|
66
67
|
import {
|
|
67
68
|
SeededRandom,
|
|
68
69
|
hashString
|
|
69
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-XRW6P7IF.js";
|
|
70
71
|
|
|
71
72
|
// src/doc/templates/persistentLayers.ts
|
|
72
73
|
var GRADIENT_PRESETS = {
|
|
@@ -198,14 +199,19 @@ function expandTitleCaption(config) {
|
|
|
198
199
|
const isBottom = config.position.includes("bottom");
|
|
199
200
|
const isLeft = config.position.includes("left");
|
|
200
201
|
const pad = 3;
|
|
202
|
+
const thumbPad = 1.5;
|
|
201
203
|
const pillHeight = hasSubtitle ? "15%" : "7%";
|
|
202
204
|
const bgYPos = isBottom ? hasSubtitle ? "78%" : "84%" : "2%";
|
|
203
|
-
const
|
|
204
|
-
const
|
|
205
|
+
const pillW = config.showThumbnail ? 30 : 28;
|
|
206
|
+
const pillX = isLeft ? pad : 100 - pad - pillW;
|
|
207
|
+
const bgXPos = `${pillX}%`;
|
|
208
|
+
const thumbWNum = hasSubtitle ? 6 : 5;
|
|
209
|
+
const thumbW = `${thumbWNum}%`;
|
|
205
210
|
const thumbH = hasSubtitle ? "10%" : "5%";
|
|
206
|
-
const
|
|
207
|
-
const
|
|
208
|
-
const
|
|
211
|
+
const innerX = pillX + thumbPad;
|
|
212
|
+
const innerW = pillW - thumbPad * 2;
|
|
213
|
+
const textX = config.showThumbnail && isLeft ? `${innerX + thumbWNum + thumbPad}%` : `${innerX}%`;
|
|
214
|
+
const textWidth = config.showThumbnail ? `${innerW - thumbWNum - thumbPad}%` : `${innerW}%`;
|
|
209
215
|
const titleYPos = isBottom ? hasSubtitle ? "80%" : "86%" : "4%";
|
|
210
216
|
layers.push({
|
|
211
217
|
type: "shape",
|
|
@@ -218,12 +224,12 @@ function expandTitleCaption(config) {
|
|
|
218
224
|
position: {
|
|
219
225
|
x: bgXPos,
|
|
220
226
|
y: bgYPos,
|
|
221
|
-
width:
|
|
227
|
+
width: `${pillW}%`,
|
|
222
228
|
height: pillHeight
|
|
223
229
|
}
|
|
224
230
|
});
|
|
225
231
|
if (config.showThumbnail && config.thumbnailSrc) {
|
|
226
|
-
const thumbX = isLeft ? `${
|
|
232
|
+
const thumbX = isLeft ? `${innerX}%` : `${pillX + pillW - thumbPad - thumbWNum}%`;
|
|
227
233
|
const thumbY = isBottom ? hasSubtitle ? `${78 + thumbPad}%` : "85%" : "3%";
|
|
228
234
|
layers.push({
|
|
229
235
|
type: "image",
|
|
@@ -620,84 +626,6 @@ function titleBlock(input, context) {
|
|
|
620
626
|
return layers;
|
|
621
627
|
}
|
|
622
628
|
|
|
623
|
-
// src/doc/templates/sectionHeader.ts
|
|
624
|
-
function sectionHeader(input, context) {
|
|
625
|
-
const { title = "", colorScheme = "blue", imageSrc, imageAlt, ambientMotion } = input;
|
|
626
|
-
const { theme, layout } = context;
|
|
627
|
-
const treatment = themedImageTreatment(context, input.imageTreatment);
|
|
628
|
-
const colors = resolveColorScheme(context, colorScheme);
|
|
629
|
-
const titleFontSize = themedFontSize(84, context, true);
|
|
630
|
-
const layers = [];
|
|
631
|
-
if (imageSrc) {
|
|
632
|
-
layers.push({
|
|
633
|
-
type: "image",
|
|
634
|
-
id: "bg-image",
|
|
635
|
-
content: {
|
|
636
|
-
src: imageSrc,
|
|
637
|
-
alt: imageAlt || title,
|
|
638
|
-
fit: "cover",
|
|
639
|
-
...treatment ? { treatment } : {}
|
|
640
|
-
},
|
|
641
|
-
position: { x: 0, y: 0, width: "100%", height: "100%" },
|
|
642
|
-
animation: ambientMotion ? { type: ambientMotion, duration: 8 } : { type: "slowZoom", duration: 8, direction: "in" }
|
|
643
|
-
});
|
|
644
|
-
layers.push({
|
|
645
|
-
type: "shape",
|
|
646
|
-
id: "overlay",
|
|
647
|
-
content: {
|
|
648
|
-
shape: "rect",
|
|
649
|
-
fill: themedScrim(context)
|
|
650
|
-
},
|
|
651
|
-
position: { x: 0, y: 0, width: "100%", height: "100%" }
|
|
652
|
-
});
|
|
653
|
-
} else {
|
|
654
|
-
layers.push({
|
|
655
|
-
type: "shape",
|
|
656
|
-
id: "bg",
|
|
657
|
-
content: {
|
|
658
|
-
shape: "rect",
|
|
659
|
-
fill: colors.bg
|
|
660
|
-
},
|
|
661
|
-
position: { x: 0, y: 0, width: "100%", height: "100%" }
|
|
662
|
-
});
|
|
663
|
-
layers.push({
|
|
664
|
-
type: "shape",
|
|
665
|
-
id: "line-top",
|
|
666
|
-
content: { shape: "rect", fill: `${colors.text}33` },
|
|
667
|
-
position: { x: "50%", y: "40%", width: "20%", height: "2px", anchor: "center" }
|
|
668
|
-
});
|
|
669
|
-
layers.push({
|
|
670
|
-
type: "shape",
|
|
671
|
-
id: "line-bottom",
|
|
672
|
-
content: { shape: "rect", fill: `${colors.text}33` },
|
|
673
|
-
position: { x: "50%", y: "60%", width: "20%", height: "2px", anchor: "center" }
|
|
674
|
-
});
|
|
675
|
-
}
|
|
676
|
-
layers.push({
|
|
677
|
-
type: "text",
|
|
678
|
-
id: "title",
|
|
679
|
-
content: {
|
|
680
|
-
text: title,
|
|
681
|
-
style: {
|
|
682
|
-
fontSize: titleFontSize,
|
|
683
|
-
fontFamily: getThemeFont(context, "title"),
|
|
684
|
-
fontWeight: "bold",
|
|
685
|
-
color: imageSrc ? theme.colors.text : colors.text,
|
|
686
|
-
textAlign: "center",
|
|
687
|
-
shadow: shouldUseShadow(context)
|
|
688
|
-
}
|
|
689
|
-
},
|
|
690
|
-
position: {
|
|
691
|
-
x: "50%",
|
|
692
|
-
y: "50%",
|
|
693
|
-
anchor: "center",
|
|
694
|
-
width: layout.maxTextWidth
|
|
695
|
-
},
|
|
696
|
-
animation: themedEntrance(context, "text", { type: "fadeIn", duration: 1.5 })
|
|
697
|
-
});
|
|
698
|
-
return layers;
|
|
699
|
-
}
|
|
700
|
-
|
|
701
629
|
// src/doc/templates/accentImage.ts
|
|
702
630
|
var PERCENTAGE_RE = /^(\d+(?:\.\d+)?)\s*%?$/;
|
|
703
631
|
var DEFAULT_LAYOUT = {
|
|
@@ -928,6 +856,92 @@ function adjustY(originalY, layout) {
|
|
|
928
856
|
return yStr;
|
|
929
857
|
}
|
|
930
858
|
|
|
859
|
+
// src/doc/templates/sectionHeader.ts
|
|
860
|
+
function sectionHeader(input, context) {
|
|
861
|
+
const { title = "", colorScheme = "blue", imageSrc, imageAlt, ambientMotion } = input;
|
|
862
|
+
const { theme, layout } = context;
|
|
863
|
+
const treatment = themedImageTreatment(context, input.imageTreatment);
|
|
864
|
+
const colors = resolveColorScheme(context, colorScheme);
|
|
865
|
+
const titleFontSize = themedFontSize(84, context, true);
|
|
866
|
+
const layers = [];
|
|
867
|
+
if (imageSrc) {
|
|
868
|
+
layers.push({
|
|
869
|
+
type: "image",
|
|
870
|
+
id: "bg-image",
|
|
871
|
+
content: {
|
|
872
|
+
src: imageSrc,
|
|
873
|
+
alt: imageAlt || title,
|
|
874
|
+
fit: "cover",
|
|
875
|
+
...treatment ? { treatment } : {}
|
|
876
|
+
},
|
|
877
|
+
position: { x: 0, y: 0, width: "100%", height: "100%" },
|
|
878
|
+
// Route through mapAmbientMotion like every other image template: the
|
|
879
|
+
// authored vocabulary (`zoomIn`/`panLeft`/…) are NOT AnimationTypes, so
|
|
880
|
+
// passing them raw produced an unknown animation here while the same
|
|
881
|
+
// input animated correctly on imageWithCaption/coverBlock/accentImage.
|
|
882
|
+
animation: mapAmbientMotion(ambientMotion, 8) ?? {
|
|
883
|
+
type: "slowZoom",
|
|
884
|
+
duration: 8,
|
|
885
|
+
direction: "in"
|
|
886
|
+
}
|
|
887
|
+
});
|
|
888
|
+
layers.push({
|
|
889
|
+
type: "shape",
|
|
890
|
+
id: "overlay",
|
|
891
|
+
content: {
|
|
892
|
+
shape: "rect",
|
|
893
|
+
fill: themedScrim(context)
|
|
894
|
+
},
|
|
895
|
+
position: { x: 0, y: 0, width: "100%", height: "100%" }
|
|
896
|
+
});
|
|
897
|
+
} else {
|
|
898
|
+
layers.push({
|
|
899
|
+
type: "shape",
|
|
900
|
+
id: "bg",
|
|
901
|
+
content: {
|
|
902
|
+
shape: "rect",
|
|
903
|
+
fill: colors.bg
|
|
904
|
+
},
|
|
905
|
+
position: { x: 0, y: 0, width: "100%", height: "100%" }
|
|
906
|
+
});
|
|
907
|
+
layers.push({
|
|
908
|
+
type: "shape",
|
|
909
|
+
id: "line-top",
|
|
910
|
+
content: { shape: "rect", fill: withAlpha(colors.text, 0.2) },
|
|
911
|
+
position: { x: "50%", y: "40%", width: "20%", height: "2px", anchor: "center" }
|
|
912
|
+
});
|
|
913
|
+
layers.push({
|
|
914
|
+
type: "shape",
|
|
915
|
+
id: "line-bottom",
|
|
916
|
+
content: { shape: "rect", fill: withAlpha(colors.text, 0.2) },
|
|
917
|
+
position: { x: "50%", y: "60%", width: "20%", height: "2px", anchor: "center" }
|
|
918
|
+
});
|
|
919
|
+
}
|
|
920
|
+
layers.push({
|
|
921
|
+
type: "text",
|
|
922
|
+
id: "title",
|
|
923
|
+
content: {
|
|
924
|
+
text: title,
|
|
925
|
+
style: {
|
|
926
|
+
fontSize: titleFontSize,
|
|
927
|
+
fontFamily: getThemeFont(context, "title"),
|
|
928
|
+
fontWeight: "bold",
|
|
929
|
+
color: imageSrc ? theme.colors.text : colors.text,
|
|
930
|
+
textAlign: "center",
|
|
931
|
+
shadow: shouldUseShadow(context)
|
|
932
|
+
}
|
|
933
|
+
},
|
|
934
|
+
position: {
|
|
935
|
+
x: "50%",
|
|
936
|
+
y: "50%",
|
|
937
|
+
anchor: "center",
|
|
938
|
+
width: layout.maxTextWidth
|
|
939
|
+
},
|
|
940
|
+
animation: themedEntrance(context, "text", { type: "fadeIn", duration: 1.5 })
|
|
941
|
+
});
|
|
942
|
+
return layers;
|
|
943
|
+
}
|
|
944
|
+
|
|
931
945
|
// src/doc/templates/statHighlight.ts
|
|
932
946
|
function statHighlight(input, context) {
|
|
933
947
|
const { stat, description, detail, colorScheme = "blue", accentImage } = input;
|
|
@@ -1520,7 +1534,7 @@ function imageWithCaption(input, context) {
|
|
|
1520
1534
|
imageSrc,
|
|
1521
1535
|
imageAlt,
|
|
1522
1536
|
caption: rawCaption,
|
|
1523
|
-
captionPosition
|
|
1537
|
+
captionPosition = "bottom",
|
|
1524
1538
|
ambientMotion,
|
|
1525
1539
|
isTitle,
|
|
1526
1540
|
subtitle,
|
|
@@ -1612,6 +1626,8 @@ function imageWithCaption(input, context) {
|
|
|
1612
1626
|
return layers;
|
|
1613
1627
|
}
|
|
1614
1628
|
if (caption) {
|
|
1629
|
+
const captionBgY = captionPosition === "top" ? "7%" : captionPosition === "center" ? "42%" : "68%";
|
|
1630
|
+
const captionY = captionPosition === "top" ? "13%" : captionPosition === "center" ? "48%" : "74%";
|
|
1615
1631
|
layers.push({
|
|
1616
1632
|
type: "shape",
|
|
1617
1633
|
id: "caption-gradient",
|
|
@@ -1621,7 +1637,7 @@ function imageWithCaption(input, context) {
|
|
|
1621
1637
|
},
|
|
1622
1638
|
position: {
|
|
1623
1639
|
x: 0,
|
|
1624
|
-
y:
|
|
1640
|
+
y: captionBgY,
|
|
1625
1641
|
width: "100%",
|
|
1626
1642
|
height: "16%"
|
|
1627
1643
|
}
|
|
@@ -1643,7 +1659,7 @@ function imageWithCaption(input, context) {
|
|
|
1643
1659
|
},
|
|
1644
1660
|
position: {
|
|
1645
1661
|
x: "50%",
|
|
1646
|
-
y:
|
|
1662
|
+
y: captionY,
|
|
1647
1663
|
anchor: "center",
|
|
1648
1664
|
width: "78%"
|
|
1649
1665
|
},
|
|
@@ -2158,6 +2174,8 @@ function getGridPositions(count, gridHeight, stacked) {
|
|
|
2158
2174
|
const halfW = 50 - GAP / 2;
|
|
2159
2175
|
const halfH = gridHeight / 2 - GAP / 2;
|
|
2160
2176
|
switch (count) {
|
|
2177
|
+
case 1:
|
|
2178
|
+
return [{ x: 0, y: 0, w: 100, h: gridHeight }];
|
|
2161
2179
|
case 2:
|
|
2162
2180
|
if (stacked) {
|
|
2163
2181
|
return [
|
|
@@ -2322,12 +2340,14 @@ function comparisonBar(input, context) {
|
|
|
2322
2340
|
const barHeight = 6;
|
|
2323
2341
|
const topBarY = 36;
|
|
2324
2342
|
const bottomBarY = 58;
|
|
2325
|
-
const
|
|
2343
|
+
const leftExtent = Math.max(0, leftValue);
|
|
2344
|
+
const rightExtent = Math.max(0, rightValue);
|
|
2345
|
+
const maxValue = Math.max(leftExtent, rightExtent, 1);
|
|
2326
2346
|
const longestLabelPx = Math.max(leftDisplay.length, rightDisplay.length) * valueFontSize * 0.58;
|
|
2327
2347
|
const labelWidthPct = longestLabelPx / viewport.width * 100;
|
|
2328
2348
|
const maxBarWidth = Math.max(20, Math.min(65, 96 - barStartX - labelWidthPct - 2));
|
|
2329
|
-
const leftBarWidth =
|
|
2330
|
-
const rightBarWidth =
|
|
2349
|
+
const leftBarWidth = leftExtent / maxValue * maxBarWidth;
|
|
2350
|
+
const rightBarWidth = rightExtent / maxValue * maxBarWidth;
|
|
2331
2351
|
return [
|
|
2332
2352
|
// Background
|
|
2333
2353
|
{
|
|
@@ -2461,7 +2481,10 @@ function pullQuote(input, context) {
|
|
|
2461
2481
|
...treatment ? { treatment } : {}
|
|
2462
2482
|
},
|
|
2463
2483
|
position: { x: 0, y: 0, width: "100%", height: "100%" },
|
|
2464
|
-
|
|
2484
|
+
// Same authored `ambientMotion` vocabulary as every other image
|
|
2485
|
+
// template — map it to a real Ken Burns animation rather than passing
|
|
2486
|
+
// the token straight through as an animation type.
|
|
2487
|
+
animation: mapAmbientMotion(ambientMotion, 15)
|
|
2465
2488
|
},
|
|
2466
2489
|
// Dark overlay for text readability
|
|
2467
2490
|
{
|
|
@@ -5227,7 +5250,7 @@ function fallbackBlockLayers(block, context, notice) {
|
|
|
5227
5250
|
style: {
|
|
5228
5251
|
fontSize: themedFontSize(18, context),
|
|
5229
5252
|
fontFamily: getThemeFont(context, "body"),
|
|
5230
|
-
color:
|
|
5253
|
+
color: withAlpha(colors.text, 0.6),
|
|
5231
5254
|
textAlign: "center"
|
|
5232
5255
|
}
|
|
5233
5256
|
},
|
|
@@ -5610,6 +5633,17 @@ function isStandardLightCover(context) {
|
|
|
5610
5633
|
const { theme } = context;
|
|
5611
5634
|
return theme.id === "standard" && relativeLuminance(theme.colors.background) > 0.85;
|
|
5612
5635
|
}
|
|
5636
|
+
var COVER_SCRIM_STOPS = [
|
|
5637
|
+
{ pos: 0, alpha: 0.95 },
|
|
5638
|
+
{ pos: 38, alpha: 0.86 },
|
|
5639
|
+
{ pos: 58, alpha: 0.4 },
|
|
5640
|
+
{ pos: 78, alpha: 0.1 },
|
|
5641
|
+
{ pos: 100, alpha: 0 }
|
|
5642
|
+
];
|
|
5643
|
+
function coverScrimGradient(background) {
|
|
5644
|
+
const stops = COVER_SCRIM_STOPS.map((s) => `${withAlpha(background, s.alpha)} ${s.pos}%`);
|
|
5645
|
+
return `linear-gradient(0deg, ${stops.join(", ")})`;
|
|
5646
|
+
}
|
|
5613
5647
|
function coverBlock(input, context) {
|
|
5614
5648
|
const treatment = themedImageTreatment(context, input.imageTreatment);
|
|
5615
5649
|
const { heroSrc, heroAlt, title, subtitle, ambientMotion, heroCredit, heroLicense } = input;
|
|
@@ -5640,7 +5674,7 @@ function coverBlock(input, context) {
|
|
|
5640
5674
|
id: "cover-gradient",
|
|
5641
5675
|
content: {
|
|
5642
5676
|
shape: "rect",
|
|
5643
|
-
fill:
|
|
5677
|
+
fill: coverScrimGradient(theme.colors.background)
|
|
5644
5678
|
},
|
|
5645
5679
|
position: { x: 0, y: 0, width: "100%", height: "100%" }
|
|
5646
5680
|
}
|
|
@@ -6602,15 +6636,6 @@ function renameKeys(value, map) {
|
|
|
6602
6636
|
function isDefaultViewport(v) {
|
|
6603
6637
|
return !v || v.width === DEFAULT_VIEWPORT.width && v.height === DEFAULT_VIEWPORT.height;
|
|
6604
6638
|
}
|
|
6605
|
-
function base64ToUtf8(b64) {
|
|
6606
|
-
if (typeof globalThis.atob === "function") {
|
|
6607
|
-
const binary = globalThis.atob(b64);
|
|
6608
|
-
const bytes = new Uint8Array(binary.length);
|
|
6609
|
-
for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
|
|
6610
|
-
return new TextDecoder().decode(bytes);
|
|
6611
|
-
}
|
|
6612
|
-
return Buffer.from(b64, "base64").toString("utf-8");
|
|
6613
|
-
}
|
|
6614
6639
|
function readCustomTemplatesFromFrontmatter(frontmatter) {
|
|
6615
6640
|
if (!frontmatter) return void 0;
|
|
6616
6641
|
const candidates = normalizeCandidates(frontmatter[FRONTMATTER_CUSTOM_TEMPLATES_KEY]);
|
|
@@ -7090,10 +7115,18 @@ function expandStandaloneAnnotations(blocks, makeId, defaultDuration) {
|
|
|
7090
7115
|
makeId,
|
|
7091
7116
|
defaultDuration
|
|
7092
7117
|
});
|
|
7093
|
-
if (produced.length
|
|
7094
|
-
block
|
|
7118
|
+
if (produced.length === 0) {
|
|
7119
|
+
out.push(block);
|
|
7120
|
+
continue;
|
|
7121
|
+
}
|
|
7122
|
+
block.contents = leading;
|
|
7123
|
+
const nestable = (block.children?.length ?? 0) > 0 && !isContainerTemplate(block.template);
|
|
7124
|
+
if (nestable) {
|
|
7125
|
+
block.children = [...produced, ...block.children];
|
|
7126
|
+
out.push(block);
|
|
7127
|
+
} else {
|
|
7128
|
+
out.push(block, ...produced);
|
|
7095
7129
|
}
|
|
7096
|
-
out.push(block, ...produced);
|
|
7097
7130
|
}
|
|
7098
7131
|
return out;
|
|
7099
7132
|
}
|
|
@@ -7814,7 +7847,11 @@ function buildNarrationTimingJson(script, alignment, durationSec, options) {
|
|
|
7814
7847
|
duration: Number.isFinite(durationSec) && durationSec >= 0 ? durationSec : 0,
|
|
7815
7848
|
bookmarks,
|
|
7816
7849
|
blocks,
|
|
7817
|
-
|
|
7850
|
+
// Write only what `parseNarrationTimingJson` will read back, so the codec
|
|
7851
|
+
// is a round-trip pair. A non-finite value would serialize to `null`
|
|
7852
|
+
// (JSON has no NaN) and be dropped on parse anyway — omitting it here
|
|
7853
|
+
// keeps the emitted sidecar honest rather than carrying a dead field.
|
|
7854
|
+
...finiteNumber(options?.cameraOffsetSec) ? { cameraOffsetSec: options.cameraOffsetSec } : {},
|
|
7818
7855
|
generator: {
|
|
7819
7856
|
name: "squisq-teleprompter",
|
|
7820
7857
|
method: "dsp-align",
|
|
@@ -7825,6 +7862,9 @@ function buildNarrationTimingJson(script, alignment, durationSec, options) {
|
|
|
7825
7862
|
function finiteNonNegative(value) {
|
|
7826
7863
|
return typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
7827
7864
|
}
|
|
7865
|
+
function finiteNumber(value) {
|
|
7866
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
7867
|
+
}
|
|
7828
7868
|
function parseNarrationTimingJson(data) {
|
|
7829
7869
|
try {
|
|
7830
7870
|
const text = typeof data === "string" ? data : new TextDecoder().decode(data instanceof Uint8Array ? data : new Uint8Array(data));
|
|
@@ -7878,7 +7918,7 @@ function parseNarrationTimingJson(data) {
|
|
|
7878
7918
|
duration: raw.duration,
|
|
7879
7919
|
bookmarks,
|
|
7880
7920
|
blocks,
|
|
7881
|
-
...
|
|
7921
|
+
...finiteNumber(raw.cameraOffsetSec) ? { cameraOffsetSec: raw.cameraOffsetSec } : {},
|
|
7882
7922
|
...typeof raw.generator === "object" && raw.generator !== null ? { generator: raw.generator } : {}
|
|
7883
7923
|
};
|
|
7884
7924
|
} catch {
|
|
@@ -7908,11 +7948,11 @@ export {
|
|
|
7908
7948
|
themedScrim,
|
|
7909
7949
|
getTemplateHint,
|
|
7910
7950
|
titleBlock,
|
|
7911
|
-
sectionHeader,
|
|
7912
7951
|
DEFAULT_LAYOUT,
|
|
7913
7952
|
getAccentLayout,
|
|
7914
7953
|
createAccentLayers,
|
|
7915
7954
|
adjustY,
|
|
7955
|
+
sectionHeader,
|
|
7916
7956
|
statHighlight,
|
|
7917
7957
|
quoteBlock,
|
|
7918
7958
|
factCard,
|
|
@@ -8010,4 +8050,3 @@ export {
|
|
|
8010
8050
|
buildNarrationTimingJson,
|
|
8011
8051
|
parseNarrationTimingJson
|
|
8012
8052
|
};
|
|
8013
|
-
//# sourceMappingURL=chunk-JI77MGAK.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
pruneSnapshots,
|
|
7
7
|
readTextSnapshot,
|
|
8
8
|
saveTextSnapshot
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OPO5K4DZ.js";
|
|
10
10
|
|
|
11
11
|
// src/versions/paths.ts
|
|
12
12
|
var VERSIONS_PREFIX = ".versions/";
|
|
@@ -49,9 +49,6 @@ async function saveVersion(container, options = {}) {
|
|
|
49
49
|
if (content === null || content === void 0) {
|
|
50
50
|
return { saved: false, version: null, reason: "no-document" };
|
|
51
51
|
}
|
|
52
|
-
if (content.length === 0) {
|
|
53
|
-
return { saved: false, version: null, reason: "empty" };
|
|
54
|
-
}
|
|
55
52
|
const basename = await resolveBasename(container, options.basename);
|
|
56
53
|
if (!basename) {
|
|
57
54
|
return { saved: false, version: null, reason: "no-document" };
|
|
@@ -67,11 +64,17 @@ async function saveVersion(container, options = {}) {
|
|
|
67
64
|
async function revertToVersion(container, version, options = {}) {
|
|
68
65
|
const content = await readVersion(container, version);
|
|
69
66
|
if (content === null) {
|
|
70
|
-
return { reverted: false, snapshotted: null };
|
|
67
|
+
return { reverted: false, snapshotted: null, reason: "missing-snapshot" };
|
|
71
68
|
}
|
|
72
69
|
let snapshotted = null;
|
|
73
70
|
if (options.snapshotCurrent !== false) {
|
|
74
|
-
const
|
|
71
|
+
const saveOptions = {};
|
|
72
|
+
if (options.content !== void 0) saveOptions.content = options.content;
|
|
73
|
+
if (options.basename !== void 0) saveOptions.basename = options.basename;
|
|
74
|
+
const result = await saveVersion(container, saveOptions);
|
|
75
|
+
if (!result.saved && result.reason !== "unchanged") {
|
|
76
|
+
return { reverted: false, snapshotted: null, reason: "snapshot-failed" };
|
|
77
|
+
}
|
|
75
78
|
snapshotted = result.version;
|
|
76
79
|
}
|
|
77
80
|
const docPath = await resolveDocPath(container);
|
|
@@ -101,7 +104,7 @@ var DocumentVersionManager = class {
|
|
|
101
104
|
return readVersion(this.container, version);
|
|
102
105
|
}
|
|
103
106
|
revertToVersion(version, options) {
|
|
104
|
-
return revertToVersion(this.container, version, options);
|
|
107
|
+
return revertToVersion(this.container, version, { basename: this.basename, ...options });
|
|
105
108
|
}
|
|
106
109
|
pruneVersions(policy) {
|
|
107
110
|
return pruneVersions(this.container, policy, this.basename);
|
|
@@ -124,4 +127,3 @@ export {
|
|
|
124
127
|
coalesceVersions,
|
|
125
128
|
DocumentVersionManager
|
|
126
129
|
};
|
|
127
|
-
//# sourceMappingURL=chunk-JOQYPRDZ.js.map
|