@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
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared key=value attribute machinery for the two heading annotation forms:
|
|
3
|
-
* the squisq-native `{[templateName key=value …]}` template annotation and
|
|
4
|
-
* the Pandoc-style `{#id .class key=value}` attribute block.
|
|
5
|
-
*
|
|
6
|
-
* Both forms share one interior grammar — whitespace-separated tokens whose
|
|
7
|
-
* values may be quoted (double or single) to include spaces, brackets, or
|
|
8
|
-
* quote characters. This module is the single implementation of that
|
|
9
|
-
* grammar: one tokenizer, one value un/escaper, one quoting rule. The
|
|
10
|
-
* trailing-annotation recognizers live here too so the editor bridge
|
|
11
|
-
* (packages/editor-react/src/tiptapBridge.ts) stays in sync by importing
|
|
12
|
-
* them rather than copying regexes.
|
|
13
|
-
*
|
|
14
|
-
* Value syntax:
|
|
15
|
-
* - Unquoted: no whitespace, quotes, or `[ ] { }` (those would collide with
|
|
16
|
-
* the surrounding annotation delimiters), e.g. `columns=3`, `name=O'Brien`
|
|
17
|
-
* (a quote *inside* an unquoted value is literal).
|
|
18
|
-
* - Quoted: `key="value with spaces"` or `key='…'`. Inside a quoted run,
|
|
19
|
-
* `\` escapes the active quote character and itself; any other `\` is
|
|
20
|
-
* literal. Quoted values may contain `]` and `}`.
|
|
21
|
-
* - Serialization emits double quotes, switching to single quotes when the
|
|
22
|
-
* value contains a double quote (markdown character-escape resolution
|
|
23
|
-
* makes backslash-escaped quotes fragile in `.md` source, so picking the
|
|
24
|
-
* other quote character is preferred over escaping). A value containing
|
|
25
|
-
* BOTH quote characters falls back to double quotes with `\"` escapes —
|
|
26
|
-
* that survives the API path but is best avoided in markdown source.
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
// ============================================
|
|
30
|
-
// Trailing-annotation recognizers
|
|
31
|
-
// ============================================
|
|
32
|
-
|
|
33
|
-
/** Regex source for a double-quoted run with `\"` / `\\` escapes. */
|
|
34
|
-
const DQ_RUN = `"(?:[^"\\\\]|\\\\.)*"`;
|
|
35
|
-
/** Regex source for a single-quoted run with `\'` / `\\` escapes. */
|
|
36
|
-
const SQ_RUN = `'(?:[^'\\\\]|\\\\.)*'`;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Quote-aware match for a trailing `{[…]}` annotation: the interior is any
|
|
40
|
-
* mix of quoted runs and characters other than `]` and quotes, so quoted
|
|
41
|
-
* values may contain `]`. An empty interior is valid so `{[]}` can remain
|
|
42
|
-
* lossless metadata instead of visible heading text. The trailing
|
|
43
|
-
* `[\s\]}]*` tolerates an accidental doubled `]}` that users sometimes type
|
|
44
|
-
* when learning the syntax.
|
|
45
|
-
*/
|
|
46
|
-
const TEMPLATE_STRICT_RE = new RegExp(
|
|
47
|
-
`\\s*\\{\\[((?:[^\\]"']|${DQ_RUN}|${SQ_RUN})*)\\]\\}[\\s\\]}]*$`,
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Legacy fallback matching the pre-quote-aware grammar (`[^\]]*` interior).
|
|
52
|
-
* Tried after the strict form so inputs with unbalanced quotes keep parsing
|
|
53
|
-
* exactly as they did before quote support landed.
|
|
54
|
-
*/
|
|
55
|
-
const TEMPLATE_LEGACY_RE = /\s*\{\[([^\]]*)\]\}[\s\]}]*$/;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Quote-aware match for a trailing Pandoc `{…}` block. The negative
|
|
59
|
-
* lookahead `(?!\[)` keeps it from colliding with the `{[…]}` template
|
|
60
|
-
* form. Quoted values may contain `}`.
|
|
61
|
-
*/
|
|
62
|
-
const PANDOC_STRICT_RE = new RegExp(`\\s*\\{(?!\\[)((?:[^}"']|${DQ_RUN}|${SQ_RUN})*)\\}\\s*$`);
|
|
63
|
-
|
|
64
|
-
/** Legacy fallback for the Pandoc block (`[^}]*` interior). */
|
|
65
|
-
const PANDOC_LEGACY_RE = /\s*\{(?!\[)([^}]*)\}\s*$/;
|
|
66
|
-
|
|
67
|
-
/** Result of matching a trailing annotation against a text run. */
|
|
68
|
-
export interface TrailingAnnotationMatch {
|
|
69
|
-
/** Interior of the brace block (between `{[`/`{` and `]}`/`}`), untrimmed. */
|
|
70
|
-
inner: string;
|
|
71
|
-
/** Offset of the match start (including leading whitespace) in the input. */
|
|
72
|
-
index: number;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function matchTrailing(
|
|
76
|
-
text: string,
|
|
77
|
-
strict: RegExp,
|
|
78
|
-
legacy: RegExp,
|
|
79
|
-
): TrailingAnnotationMatch | null {
|
|
80
|
-
const m = strict.exec(text) ?? legacy.exec(text);
|
|
81
|
-
return m ? { inner: m[1], index: m.index } : null;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Match a trailing `{[templateName key=value …]}` annotation. Quote-aware
|
|
86
|
-
* (values may contain `]` when quoted), with a legacy fallback so inputs
|
|
87
|
-
* the old `[^\]]+` grammar accepted still match.
|
|
88
|
-
*/
|
|
89
|
-
export function matchTrailingTemplateAnnotation(text: string): TrailingAnnotationMatch | null {
|
|
90
|
-
return matchTrailing(text, TEMPLATE_STRICT_RE, TEMPLATE_LEGACY_RE);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Match a trailing Pandoc `{#id .class key=value}` block. Quote-aware
|
|
95
|
-
* (values may contain `}` when quoted), with a legacy fallback.
|
|
96
|
-
*/
|
|
97
|
-
export function matchTrailingPandocAttr(text: string): TrailingAnnotationMatch | null {
|
|
98
|
-
return matchTrailing(text, PANDOC_STRICT_RE, PANDOC_LEGACY_RE);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// ============================================
|
|
102
|
-
// Tokenizer
|
|
103
|
-
// ============================================
|
|
104
|
-
|
|
105
|
-
const WHITESPACE_RE = /\s/;
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Quote-aware whitespace tokenizer for the interior of either annotation
|
|
109
|
-
* form.
|
|
110
|
-
*
|
|
111
|
-
* A quote run starts only at the beginning of a token or immediately after
|
|
112
|
-
* `=` — a quote elsewhere (e.g. `name=O'Brien`) is a literal character.
|
|
113
|
-
* Inside a run, `\` escapes the active quote character and itself; the
|
|
114
|
-
* escape pair is preserved in the returned token (callers strip and
|
|
115
|
-
* unescape via {@link splitKeyValueToken} / {@link unquoteAttrValue}).
|
|
116
|
-
* An unbalanced opening quote is tolerated: the run extends to the end of
|
|
117
|
-
* the input.
|
|
118
|
-
*/
|
|
119
|
-
export function tokenizeAttrTokens(input: string): string[] {
|
|
120
|
-
const tokens: string[] = [];
|
|
121
|
-
let i = 0;
|
|
122
|
-
const n = input.length;
|
|
123
|
-
while (i < n) {
|
|
124
|
-
while (i < n && WHITESPACE_RE.test(input[i])) i++;
|
|
125
|
-
if (i >= n) break;
|
|
126
|
-
|
|
127
|
-
let token = '';
|
|
128
|
-
while (i < n && !WHITESPACE_RE.test(input[i])) {
|
|
129
|
-
const ch = input[i];
|
|
130
|
-
const atValueStart = token === '' || token.endsWith('=');
|
|
131
|
-
if ((ch === '"' || ch === "'") && atValueStart) {
|
|
132
|
-
token += ch;
|
|
133
|
-
i++;
|
|
134
|
-
while (i < n && input[i] !== ch) {
|
|
135
|
-
if (input[i] === '\\' && i + 1 < n && (input[i + 1] === ch || input[i + 1] === '\\')) {
|
|
136
|
-
token += input[i] + input[i + 1];
|
|
137
|
-
i += 2;
|
|
138
|
-
} else {
|
|
139
|
-
token += input[i];
|
|
140
|
-
i++;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if (i < n && input[i] === ch) {
|
|
144
|
-
token += ch;
|
|
145
|
-
i++;
|
|
146
|
-
}
|
|
147
|
-
} else {
|
|
148
|
-
token += ch;
|
|
149
|
-
i++;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
if (token) tokens.push(token);
|
|
153
|
-
}
|
|
154
|
-
return tokens;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
// ============================================
|
|
158
|
-
// Value un/escaping
|
|
159
|
-
// ============================================
|
|
160
|
-
|
|
161
|
-
const DQ_UNESCAPE_RE = /\\([\\"])/g;
|
|
162
|
-
const SQ_UNESCAPE_RE = /\\([\\'])/g;
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Strip surrounding quotes from a raw token value and unescape the active
|
|
166
|
-
* quote character and backslash. Values not wrapped in matching quotes are
|
|
167
|
-
* returned verbatim (including any interior quotes or backslashes).
|
|
168
|
-
*/
|
|
169
|
-
export function unquoteAttrValue(raw: string): string {
|
|
170
|
-
if (raw.length >= 2) {
|
|
171
|
-
const q = raw[0];
|
|
172
|
-
if ((q === '"' || q === "'") && raw.endsWith(q)) {
|
|
173
|
-
const body = raw.slice(1, -1);
|
|
174
|
-
return body.replace(q === '"' ? DQ_UNESCAPE_RE : SQ_UNESCAPE_RE, '$1');
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return raw;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Split a `key=value` token into its parts, unquoting/unescaping the value.
|
|
182
|
-
* Returns null for tokens with no `=` past the first character (bare words,
|
|
183
|
-
* `#id`, `.class`, or a leading `=`).
|
|
184
|
-
*/
|
|
185
|
-
export function splitKeyValueToken(token: string): { key: string; value: string } | null {
|
|
186
|
-
const eqIdx = token.indexOf('=');
|
|
187
|
-
if (eqIdx <= 0) return null;
|
|
188
|
-
return { key: token.slice(0, eqIdx), value: unquoteAttrValue(token.slice(eqIdx + 1)) };
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// ============================================
|
|
192
|
-
// Serialization
|
|
193
|
-
// ============================================
|
|
194
|
-
|
|
195
|
-
const NEEDS_QUOTING_RE = /[\s"'[\]{}]/;
|
|
196
|
-
const DQ_ESCAPE_RE = /[\\"]/g;
|
|
197
|
-
const SQ_ESCAPE_RE = /[\\']/g;
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Whether a value must be quoted to survive tokenization and the outer
|
|
201
|
-
* annotation regexes: any whitespace, quote character, bracket, or brace —
|
|
202
|
-
* or an empty value, which would otherwise serialize as a bare `key=`.
|
|
203
|
-
*/
|
|
204
|
-
export function needsQuoting(value: string): boolean {
|
|
205
|
-
return value === '' || NEEDS_QUOTING_RE.test(value);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Serialize an attribute value, quoting when {@link needsQuoting} says the
|
|
210
|
-
* bare form would not round-trip.
|
|
211
|
-
*
|
|
212
|
-
* Double quotes are canonical; a value containing a double quote (but no
|
|
213
|
-
* single quote) is single-quoted instead, because markdown resolves
|
|
214
|
-
* backslash escapes in text runs before our parser sees them — switching
|
|
215
|
-
* the quote character round-trips through `.md` source where `\"` would
|
|
216
|
-
* not. Backslashes and the active quote character are escaped.
|
|
217
|
-
*/
|
|
218
|
-
export function quoteAttrValue(value: string): string {
|
|
219
|
-
if (!needsQuoting(value)) return value;
|
|
220
|
-
if (value.includes('"') && !value.includes("'")) {
|
|
221
|
-
return `'${value.replace(SQ_ESCAPE_RE, (ch) => `\\${ch}`)}'`;
|
|
222
|
-
}
|
|
223
|
-
return `"${value.replace(DQ_ESCAPE_RE, (ch) => `\\${ch}`)}"`;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* Serialize a `{[templateName key=value …]}` template annotation. The inverse
|
|
228
|
-
* of {@link parseStandaloneAnnotation} / the tokenizer: emits the template
|
|
229
|
-
* name (when present) followed by each `key=value` pair in insertion order,
|
|
230
|
-
* quoting values via {@link quoteAttrValue}. Used to re-emit heading-less
|
|
231
|
-
* standalone annotation blocks in `docToMarkdown`.
|
|
232
|
-
*/
|
|
233
|
-
export function serializeAnnotation(
|
|
234
|
-
template: string | undefined,
|
|
235
|
-
params?: Record<string, string>,
|
|
236
|
-
): string {
|
|
237
|
-
const parts: string[] = [];
|
|
238
|
-
if (template) parts.push(template);
|
|
239
|
-
for (const [key, value] of Object.entries(params ?? {})) {
|
|
240
|
-
parts.push(`${key}=${quoteAttrValue(value)}`);
|
|
241
|
-
}
|
|
242
|
-
return `{[${parts.join(' ')}]}`;
|
|
243
|
-
}
|