@bendyline/squisq 2.0.1 → 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-ylqWKDc_.d.ts → Doc-BubIpWsp.d.ts} +160 -3
- package/dist/{ImageEditDoc-D828IXJ1.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-2ZWIXGAC.js +214 -0
- package/dist/{chunk-2PWOO4ZE.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-X6DUONGT.js → chunk-7ARJZYQY.js} +280 -128
- 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-W4O2TX5I.js → chunk-C33GTPUZ.js} +579 -4
- package/dist/{chunk-MMPBOUK7.js → chunk-CB45YGAM.js} +7 -2
- package/dist/{chunk-CY2R2VPR.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-TFJVXUHH.js → chunk-I2O6W7DX.js} +1513 -79
- 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-PXLVXTLW.js → chunk-RS5AP3J4.js} +72 -15
- 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 +166 -12
- package/dist/doc/index.js +36 -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 +13 -12
- package/dist/index.js +118 -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-wSLA2A1g.d.ts +223 -0
- 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 +31 -6
- package/dist/schemas/index.js +43 -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-RjVgLpUi.d.ts → themeLibrary-DU9mUmVl.d.ts} +1 -1
- package/dist/timing/index.js +3 -4
- package/dist/transform/index.d.ts +9 -10
- 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-2PWOO4ZE.js.map +0 -1
- 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-CY2R2VPR.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-FVJUUTEM.js +0 -74
- package/dist/chunk-FVJUUTEM.js.map +0 -1
- package/dist/chunk-FVTQSNR7.js.map +0 -1
- package/dist/chunk-GZY66SDN.js.map +0 -1
- package/dist/chunk-JOQYPRDZ.js.map +0 -1
- package/dist/chunk-MMPBOUK7.js.map +0 -1
- package/dist/chunk-PGGGKYWG.js +0 -1
- package/dist/chunk-PGGGKYWG.js.map +0 -1
- package/dist/chunk-PXLVXTLW.js.map +0 -1
- package/dist/chunk-Q7LROV2H.js.map +0 -1
- package/dist/chunk-QE7TWGVT.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-TFJVXUHH.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-W4O2TX5I.js.map +0 -1
- package/dist/chunk-X6DUONGT.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 -135
- 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__/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 -160
- 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 -127
- package/src/doc/markdownToDoc.ts +0 -1054
- package/src/doc/materializeBlockLayers.ts +0 -304
- package/src/doc/mediaAnnotations.ts +0 -120
- 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 -423
- 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 -1052
- 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/Theme.ts +0 -406
- 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 -29
- package/src/schemas/themeCompile.ts +0 -237
- package/src/schemas/themeConstants.ts +0 -2
- package/src/schemas/themeLibrary.ts +0 -60
- package/src/schemas/themeValidator.ts +0 -426
- package/src/schemas/themes/bold.json +0 -48
- package/src/schemas/themes/cinematic.json +0 -111
- package/src/schemas/themes/documentary.json +0 -96
- package/src/schemas/themes/gezellig.json +0 -93
- package/src/schemas/themes/index.ts +0 -53
- package/src/schemas/themes/magazine.json +0 -89
- package/src/schemas/themes/minimalist.json +0 -45
- package/src/schemas/themes/morning-light.json +0 -85
- package/src/schemas/themes/standard-dark.json +0 -85
- package/src/schemas/themes/standard.json +0 -74
- package/src/schemas/themes/tech-dark.json +0 -101
- package/src/schemas/themes/warm-earth.json +0 -50
- 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 -198
- package/src/transform/styles/dataDriven.ts +0 -17
- package/src/transform/styles/documentary.ts +0 -17
- package/src/transform/styles/index.ts +0 -5
- package/src/transform/styles/magazine.ts +0 -18
- package/src/transform/styles/minimal.ts +0 -17
- package/src/transform/styles/narrative.ts +0 -18
- package/src/transform/templateSelector.ts +0 -389
- package/src/transform/timingAllocator.ts +0 -257
- package/src/transform/types.ts +0 -151
- 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
package/src/icons/index.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icons barrel — subpath `@bendyline/squisq/icons`.
|
|
3
|
-
*
|
|
4
|
-
* Exposes the FontAwesome Free catalog (`ICONS`, `IconEntry`,
|
|
5
|
-
* `IconFamily`) and the lookup helpers (`resolveIcon`,
|
|
6
|
-
* `canonicalIconToken`, `looksLikeIconToken`).
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export { ICONS } from './iconData.js';
|
|
10
|
-
export type { IconEntry, IconFamily } from './iconData.js';
|
|
11
|
-
export {
|
|
12
|
-
resolveIcon,
|
|
13
|
-
canonicalIconToken,
|
|
14
|
-
looksLikeIconToken,
|
|
15
|
-
suggestIcons,
|
|
16
|
-
iconGlyph,
|
|
17
|
-
} from './resolve.js';
|
|
18
|
-
export type { IconSuggestion } from './resolve.js';
|
|
19
|
-
export {
|
|
20
|
-
iconMarker,
|
|
21
|
-
hasIconMarker,
|
|
22
|
-
stripIconMarkers,
|
|
23
|
-
splitIconMarkers,
|
|
24
|
-
iconClass,
|
|
25
|
-
} from './inlineIconMarker.js';
|
|
26
|
-
export type { IconTextRun } from './inlineIconMarker.js';
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Inline-icon markers for template text.
|
|
3
|
-
*
|
|
4
|
-
* Slide templates flatten rich markdown body content into strings before
|
|
5
|
-
* rendering. Inline icons need to survive that flattening step, so we encode
|
|
6
|
-
* them as sentinel-delimited text markers and let `TextLayer` turn them back
|
|
7
|
-
* into FontAwesome glyphs when rendering.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type { IconFamily } from './iconData.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Private-Use-Area sentinel that brackets an encoded icon.
|
|
14
|
-
* Kept as an escape sequence so the source remains valid TypeScript text.
|
|
15
|
-
*/
|
|
16
|
-
const SENTINEL = '\uE000';
|
|
17
|
-
|
|
18
|
-
/** Matches one encoded marker: `<sentinel><family>:<name><sentinel>`. */
|
|
19
|
-
const MARKER_RE = new RegExp(`${SENTINEL}([a-z]+):([a-zA-Z0-9-]+)${SENTINEL}`, 'g');
|
|
20
|
-
|
|
21
|
-
/** Encode a resolved icon (family + name) as an embeddable text marker. */
|
|
22
|
-
export function iconMarker(family: IconFamily, name: string): string {
|
|
23
|
-
return `${SENTINEL}${family}:${name}${SENTINEL}`;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/** True when a string contains at least one encoded icon marker. */
|
|
27
|
-
export function hasIconMarker(value: string): boolean {
|
|
28
|
-
return value.includes(SENTINEL);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/** Remove every icon marker, leaving a clean plain-text projection. */
|
|
32
|
-
export function stripIconMarkers(value: string): string {
|
|
33
|
-
return value.replace(MARKER_RE, '');
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/** A run of a marker-bearing string: literal text or a resolved icon. */
|
|
37
|
-
export type IconTextRun =
|
|
38
|
-
| { type: 'text'; text: string }
|
|
39
|
-
| { type: 'icon'; family: IconFamily; name: string };
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Split a string into ordered text/icon runs. Text between markers is
|
|
43
|
-
* preserved verbatim, including whitespace; each marker becomes an icon run.
|
|
44
|
-
*/
|
|
45
|
-
export function splitIconMarkers(value: string): IconTextRun[] {
|
|
46
|
-
const runs: IconTextRun[] = [];
|
|
47
|
-
let lastIndex = 0;
|
|
48
|
-
MARKER_RE.lastIndex = 0;
|
|
49
|
-
|
|
50
|
-
let match: RegExpExecArray | null;
|
|
51
|
-
while ((match = MARKER_RE.exec(value)) !== null) {
|
|
52
|
-
if (match.index > lastIndex) {
|
|
53
|
-
runs.push({ type: 'text', text: value.slice(lastIndex, match.index) });
|
|
54
|
-
}
|
|
55
|
-
runs.push({
|
|
56
|
-
type: 'icon',
|
|
57
|
-
family: match[1] as IconFamily,
|
|
58
|
-
name: match[2],
|
|
59
|
-
});
|
|
60
|
-
lastIndex = match.index + match[0].length;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (lastIndex < value.length) {
|
|
64
|
-
runs.push({ type: 'text', text: value.slice(lastIndex) });
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return runs;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/** FontAwesome CSS class for a resolved icon, e.g. `fa-solid fa-rocket`. */
|
|
71
|
-
export function iconClass(family: IconFamily, name: string): string {
|
|
72
|
-
return `fa-${family} fa-${name}`;
|
|
73
|
-
}
|
package/src/icons/resolve.ts
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icon Resolver
|
|
3
|
-
*
|
|
4
|
-
* Looks up a user-supplied token against the FontAwesome Free catalog.
|
|
5
|
-
*
|
|
6
|
-
* Tokens come in two forms:
|
|
7
|
-
* - **Bare** (`github`) — resolves only when the name is unique across
|
|
8
|
-
* families. The picker prefers this form for friendliness.
|
|
9
|
-
* - **Qualified** (`fa-brands:github`, `fa-solid:user`) — required when
|
|
10
|
-
* the name collides across families (e.g. `user` ships in both solid
|
|
11
|
-
* and regular).
|
|
12
|
-
*
|
|
13
|
-
* Returning `null` from `resolveIcon` is a deliberate signal: callers
|
|
14
|
-
* should render the source token verbatim so authors can write
|
|
15
|
-
* `{[notathing]}` in prose without it being silently swallowed.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import { ICONS } from './iconData.js';
|
|
19
|
-
import type { IconEntry, IconFamily } from './iconData.js';
|
|
20
|
-
|
|
21
|
-
// Index built once per module: name → IconEntry[]. Multi-entry buckets
|
|
22
|
-
// indicate cross-family collisions that require a qualified token.
|
|
23
|
-
const BY_NAME = new Map<string, IconEntry[]>();
|
|
24
|
-
for (const entry of ICONS) {
|
|
25
|
-
const bucket = BY_NAME.get(entry.name);
|
|
26
|
-
if (bucket) bucket.push(entry);
|
|
27
|
-
else BY_NAME.set(entry.name, [entry]);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const FAMILY_PREFIXES: Record<string, IconFamily> = {
|
|
31
|
-
'fa-brands': 'brands',
|
|
32
|
-
'fa-solid': 'solid',
|
|
33
|
-
'fa-regular': 'regular',
|
|
34
|
-
brands: 'brands',
|
|
35
|
-
solid: 'solid',
|
|
36
|
-
regular: 'regular',
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* True when a token looks like an icon reference. Used by the markdown
|
|
41
|
-
* parser to decide whether a `{[…]}` body in a heading is worth probing
|
|
42
|
-
* (the heading-template path already extracted the trailing annotation
|
|
43
|
-
* by the time inline detection runs).
|
|
44
|
-
*/
|
|
45
|
-
export function looksLikeIconToken(token: string): boolean {
|
|
46
|
-
return /^[a-zA-Z0-9_:-]+$/.test(token);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Resolve a token to an icon. Returns `null` when the token is unknown
|
|
51
|
-
* OR when the bare form collides — callers should render `null` results
|
|
52
|
-
* as literal markdown text so authors can opt out by qualifying.
|
|
53
|
-
*/
|
|
54
|
-
export function resolveIcon(token: string): IconEntry | null {
|
|
55
|
-
if (!looksLikeIconToken(token)) return null;
|
|
56
|
-
// Qualified form: `<family-prefix>:<name>`.
|
|
57
|
-
const colon = token.indexOf(':');
|
|
58
|
-
if (colon > 0) {
|
|
59
|
-
const prefix = token.slice(0, colon);
|
|
60
|
-
const name = token.slice(colon + 1);
|
|
61
|
-
const family = FAMILY_PREFIXES[prefix];
|
|
62
|
-
if (!family) return null;
|
|
63
|
-
const bucket = BY_NAME.get(name);
|
|
64
|
-
return bucket?.find((e) => e.family === family) ?? null;
|
|
65
|
-
}
|
|
66
|
-
// Bare form: must be unique across families.
|
|
67
|
-
const bucket = BY_NAME.get(token);
|
|
68
|
-
if (!bucket || bucket.length !== 1) return null;
|
|
69
|
-
return bucket[0];
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* The canonical "shortest unambiguous" token for an icon — bare if the
|
|
74
|
-
* name is unique, otherwise the qualified form. Used when serializing
|
|
75
|
-
* a resolved icon back to markdown so we don't gratuitously qualify
|
|
76
|
-
* names that don't need it.
|
|
77
|
-
*/
|
|
78
|
-
export function canonicalIconToken(entry: IconEntry): string {
|
|
79
|
-
const bucket = BY_NAME.get(entry.name);
|
|
80
|
-
if (bucket && bucket.length === 1) return entry.name;
|
|
81
|
-
return `fa-${entry.family}:${entry.name}`;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Render the icon's Unicode codepoint as a single-character string.
|
|
86
|
-
* Returns `''` for entries without a codepoint (defensive — FA always
|
|
87
|
-
* has one). Used by editors and previews that want to display the
|
|
88
|
-
* actual glyph using the FontAwesome font; pair with the right
|
|
89
|
-
* font-family/font-weight for the icon's family.
|
|
90
|
-
*/
|
|
91
|
-
export function iconGlyph(entry: IconEntry): string {
|
|
92
|
-
if (!entry.unicode) return '';
|
|
93
|
-
const code = parseInt(entry.unicode, 16);
|
|
94
|
-
if (!Number.isFinite(code)) return '';
|
|
95
|
-
return String.fromCodePoint(code);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/** Single autocomplete suggestion. `score` ranks lower-is-better:
|
|
99
|
-
* 0 = name starts-with query, 1 = name contains query,
|
|
100
|
-
* 2 = keyword contains query. */
|
|
101
|
-
export interface IconSuggestion {
|
|
102
|
-
entry: IconEntry;
|
|
103
|
-
token: string;
|
|
104
|
-
score: number;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Rank icons against a partial token typed by the user. Used by the
|
|
109
|
-
* Monaco completion provider in editor-react and re-exported so any
|
|
110
|
-
* host can build its own typeahead.
|
|
111
|
-
*/
|
|
112
|
-
export function suggestIcons(query: string, limit = 50): IconSuggestion[] {
|
|
113
|
-
const q = query.trim().toLowerCase();
|
|
114
|
-
const matches: IconSuggestion[] = [];
|
|
115
|
-
for (const icon of ICONS) {
|
|
116
|
-
let score = -1;
|
|
117
|
-
if (!q) {
|
|
118
|
-
// Empty query — surface a few common icons. We just walk in
|
|
119
|
-
// order; the limit cuts it off.
|
|
120
|
-
score = 3;
|
|
121
|
-
} else if (icon.name.startsWith(q)) {
|
|
122
|
-
score = 0;
|
|
123
|
-
} else if (icon.name.includes(q)) {
|
|
124
|
-
score = 1;
|
|
125
|
-
} else if (icon.keywords.includes(q)) {
|
|
126
|
-
score = 2;
|
|
127
|
-
}
|
|
128
|
-
if (score < 0) continue;
|
|
129
|
-
matches.push({ entry: icon, token: canonicalIconToken(icon), score });
|
|
130
|
-
if (matches.length > 400) break; // hard cap before sort
|
|
131
|
-
}
|
|
132
|
-
matches.sort(
|
|
133
|
-
(a, b) =>
|
|
134
|
-
a.score - b.score || a.token.length - b.token.length || a.token.localeCompare(b.token),
|
|
135
|
-
);
|
|
136
|
-
return matches.slice(0, limit);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
export type { IconEntry, IconFamily };
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convenience wrapper around the image-edit version operations that
|
|
3
|
-
* captures a {@link ContentContainer} reference and an optional basename
|
|
4
|
-
* override. Mirrors `DocumentVersionManager` in shape.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { ContentContainer } from '../storage/ContentContainer.js';
|
|
8
|
-
import type { CoalesceOptions, PrunePolicy, Version } from '../versions/types.js';
|
|
9
|
-
import {
|
|
10
|
-
coalesceImageEditVersions,
|
|
11
|
-
listImageEditVersions,
|
|
12
|
-
pruneImageEditVersions,
|
|
13
|
-
readImageEditVersion,
|
|
14
|
-
revertToImageEditVersion,
|
|
15
|
-
saveImageEditVersion,
|
|
16
|
-
type RevertImageEditOptions,
|
|
17
|
-
type SaveImageEditVersionOptions,
|
|
18
|
-
type SaveImageEditVersionResult,
|
|
19
|
-
} from './versions.js';
|
|
20
|
-
import type { ImageEditDoc } from '../schemas/ImageEditDoc.js';
|
|
21
|
-
|
|
22
|
-
export interface ImageEditVersionManagerOptions {
|
|
23
|
-
/** Override the basename used in version filenames. Defaults to `'state'`. */
|
|
24
|
-
basename?: string;
|
|
25
|
-
/** Override the source filename inside the sidecar. Defaults to `state.json`. */
|
|
26
|
-
stateFilename?: string;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export class ImageEditVersionManager {
|
|
30
|
-
private readonly container: ContentContainer;
|
|
31
|
-
private readonly basename: string | undefined;
|
|
32
|
-
private readonly stateFilename: string | undefined;
|
|
33
|
-
|
|
34
|
-
constructor(container: ContentContainer, options: ImageEditVersionManagerOptions = {}) {
|
|
35
|
-
this.container = container;
|
|
36
|
-
this.basename = options.basename;
|
|
37
|
-
this.stateFilename = options.stateFilename;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
saveVersion(options: SaveImageEditVersionOptions = {}): Promise<SaveImageEditVersionResult> {
|
|
41
|
-
return saveImageEditVersion(this.container, {
|
|
42
|
-
basename: this.basename,
|
|
43
|
-
stateFilename: this.stateFilename,
|
|
44
|
-
...options,
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
listVersions(): Promise<Version[]> {
|
|
49
|
-
return listImageEditVersions(this.container, this.basename);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
readVersion(version: Version | string): Promise<ImageEditDoc | null> {
|
|
53
|
-
return readImageEditVersion(this.container, version);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
revertToVersion(
|
|
57
|
-
version: Version | string,
|
|
58
|
-
options: RevertImageEditOptions = {},
|
|
59
|
-
): Promise<{ reverted: boolean; snapshotted: Version | null }> {
|
|
60
|
-
return revertToImageEditVersion(this.container, version, {
|
|
61
|
-
stateFilename: this.stateFilename,
|
|
62
|
-
...options,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
pruneVersions(policy: PrunePolicy): Promise<Version[]> {
|
|
67
|
-
return pruneImageEditVersions(this.container, policy, this.basename);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
coalesceVersions(options: CoalesceOptions = {}): Promise<Version[]> {
|
|
71
|
-
return coalesceImageEditVersions(this.container, options, this.basename);
|
|
72
|
-
}
|
|
73
|
-
}
|