@bendyline/squisq 1.3.0 → 1.4.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/dist/{Doc-Ch4tc3vv.d.ts → Doc-BeSeH2iX.d.ts} +118 -41
- package/dist/ImageEditDoc-BTIvw0oq.d.ts +84 -0
- package/dist/__tests__/colorUtils.test.d.ts +2 -0
- package/dist/__tests__/colorUtils.test.d.ts.map +1 -0
- package/dist/__tests__/colorUtils.test.js +94 -0
- package/dist/__tests__/colorUtils.test.js.map +1 -0
- package/dist/__tests__/getLayers.test.js +31 -7
- package/dist/__tests__/getLayers.test.js.map +1 -1
- package/dist/__tests__/iconResolve.test.d.ts +2 -0
- package/dist/__tests__/iconResolve.test.d.ts.map +1 -0
- package/dist/__tests__/iconResolve.test.js +99 -0
- package/dist/__tests__/iconResolve.test.js.map +1 -0
- package/dist/__tests__/imageEditState.test.d.ts +2 -0
- package/dist/__tests__/imageEditState.test.d.ts.map +1 -0
- package/dist/__tests__/imageEditState.test.js +61 -0
- package/dist/__tests__/imageEditState.test.js.map +1 -0
- package/dist/__tests__/imageEditVersions.test.d.ts +2 -0
- package/dist/__tests__/imageEditVersions.test.d.ts.map +1 -0
- package/dist/__tests__/imageEditVersions.test.js +141 -0
- package/dist/__tests__/imageEditVersions.test.js.map +1 -0
- package/dist/__tests__/inferDocumentTitle.test.d.ts +2 -0
- package/dist/__tests__/inferDocumentTitle.test.d.ts.map +1 -0
- package/dist/__tests__/inferDocumentTitle.test.js +42 -0
- package/dist/__tests__/inferDocumentTitle.test.js.map +1 -0
- package/dist/__tests__/jsonForm.chooseControl.test.d.ts +2 -0
- package/dist/__tests__/jsonForm.chooseControl.test.d.ts.map +1 -0
- package/dist/__tests__/jsonForm.chooseControl.test.js +74 -0
- package/dist/__tests__/jsonForm.chooseControl.test.js.map +1 -0
- package/dist/__tests__/jsonForm.evaluateWhen.test.d.ts +2 -0
- package/dist/__tests__/jsonForm.evaluateWhen.test.d.ts.map +1 -0
- package/dist/__tests__/jsonForm.evaluateWhen.test.js +51 -0
- package/dist/__tests__/jsonForm.evaluateWhen.test.js.map +1 -0
- package/dist/__tests__/jsonForm.inferSchema.test.d.ts +2 -0
- package/dist/__tests__/jsonForm.inferSchema.test.d.ts.map +1 -0
- package/dist/__tests__/jsonForm.inferSchema.test.js +23 -0
- package/dist/__tests__/jsonForm.inferSchema.test.js.map +1 -0
- package/dist/__tests__/jsonForm.pointer.test.d.ts +2 -0
- package/dist/__tests__/jsonForm.pointer.test.d.ts.map +1 -0
- package/dist/__tests__/jsonForm.pointer.test.js +94 -0
- package/dist/__tests__/jsonForm.pointer.test.js.map +1 -0
- package/dist/__tests__/markdownIcons.test.d.ts +2 -0
- package/dist/__tests__/markdownIcons.test.d.ts.map +1 -0
- package/dist/__tests__/markdownIcons.test.js +93 -0
- package/dist/__tests__/markdownIcons.test.js.map +1 -0
- package/dist/__tests__/markdownToDoc.test.js +15 -4
- package/dist/__tests__/markdownToDoc.test.js.map +1 -1
- package/dist/__tests__/recommendTemplates.test.d.ts +2 -0
- package/dist/__tests__/recommendTemplates.test.d.ts.map +1 -0
- package/dist/__tests__/recommendTemplates.test.js +158 -0
- package/dist/__tests__/recommendTemplates.test.js.map +1 -0
- package/dist/__tests__/scopedContentContainer.test.d.ts +2 -0
- package/dist/__tests__/scopedContentContainer.test.d.ts.map +1 -0
- package/dist/__tests__/scopedContentContainer.test.js +74 -0
- package/dist/__tests__/scopedContentContainer.test.js.map +1 -0
- package/dist/__tests__/slideshowGenerator.test.js +1 -1
- package/dist/__tests__/slideshowGenerator.test.js.map +1 -1
- package/dist/__tests__/templateAnnotationParse.test.d.ts +2 -0
- package/dist/__tests__/templateAnnotationParse.test.d.ts.map +1 -0
- package/dist/__tests__/templateAnnotationParse.test.js +42 -0
- package/dist/__tests__/templateAnnotationParse.test.js.map +1 -0
- package/dist/__tests__/templates.test.js +90 -9
- package/dist/__tests__/templates.test.js.map +1 -1
- package/dist/__tests__/themeCompile.test.d.ts +2 -0
- package/dist/__tests__/themeCompile.test.d.ts.map +1 -0
- package/dist/__tests__/themeCompile.test.js +134 -0
- package/dist/__tests__/themeCompile.test.js.map +1 -0
- package/dist/__tests__/themeValidator.test.d.ts +2 -0
- package/dist/__tests__/themeValidator.test.d.ts.map +1 -0
- package/dist/__tests__/themeValidator.test.js +107 -0
- package/dist/__tests__/themeValidator.test.js.map +1 -0
- package/dist/__tests__/versions.test.d.ts +2 -0
- package/dist/__tests__/versions.test.d.ts.map +1 -0
- package/dist/__tests__/versions.test.js +339 -0
- package/dist/__tests__/versions.test.js.map +1 -0
- package/dist/{chunk-CYQHG27J.js → chunk-2TMAWB4Y.js} +74 -1
- package/dist/chunk-2TMAWB4Y.js.map +1 -0
- package/dist/{chunk-OASJKWO5.js → chunk-3K5OG6KI.js} +92 -7
- package/dist/chunk-3K5OG6KI.js.map +1 -0
- package/dist/chunk-57CVQCFX.js +193 -0
- package/dist/chunk-57CVQCFX.js.map +1 -0
- package/dist/{chunk-QM5PKNPW.js → chunk-5WFRKURX.js} +1 -1
- package/dist/chunk-5WFRKURX.js.map +1 -0
- package/dist/chunk-B4EEON3N.js +1317 -0
- package/dist/chunk-B4EEON3N.js.map +1 -0
- package/dist/chunk-DBS6RIFL.js +81 -0
- package/dist/chunk-DBS6RIFL.js.map +1 -0
- package/dist/{chunk-MIBRIRGJ.js → chunk-FR2RBTKO.js} +3 -3
- package/dist/{chunk-MIBRIRGJ.js.map → chunk-FR2RBTKO.js.map} +1 -1
- package/dist/chunk-H3AXU4MJ.js +179 -0
- package/dist/chunk-H3AXU4MJ.js.map +1 -0
- package/dist/chunk-JELIRVDP.js +24 -0
- package/dist/chunk-JELIRVDP.js.map +1 -0
- package/dist/chunk-K32VJONL.js +193 -0
- package/dist/chunk-K32VJONL.js.map +1 -0
- package/dist/{chunk-6BAVXFYC.js → chunk-KSWJR66U.js} +218 -42
- package/dist/chunk-KSWJR66U.js.map +1 -0
- package/dist/{chunk-TSG2OSE6.js → chunk-MYIH7FWD.js} +3 -3
- package/dist/chunk-MYIH7FWD.js.map +1 -0
- package/dist/chunk-VLJJHDAC.js +218 -0
- package/dist/chunk-VLJJHDAC.js.map +1 -0
- package/dist/chunk-WMOI7FN3.js +182 -0
- package/dist/chunk-WMOI7FN3.js.map +1 -0
- package/dist/chunk-ZTX4PFFT.js +520 -0
- package/dist/chunk-ZTX4PFFT.js.map +1 -0
- package/dist/doc/audioMapping.d.ts.map +1 -1
- package/dist/doc/audioMapping.js +42 -7
- package/dist/doc/audioMapping.js.map +1 -1
- package/dist/doc/getLayers.d.ts.map +1 -1
- package/dist/doc/getLayers.js +29 -18
- package/dist/doc/getLayers.js.map +1 -1
- package/dist/doc/markdownToDoc.d.ts.map +1 -1
- package/dist/doc/markdownToDoc.js +40 -6
- package/dist/doc/markdownToDoc.js.map +1 -1
- package/dist/doc/templates/featureBlock.d.ts +18 -0
- package/dist/doc/templates/featureBlock.d.ts.map +1 -0
- package/dist/doc/templates/featureBlock.js +180 -0
- package/dist/doc/templates/featureBlock.js.map +1 -0
- package/dist/doc/templates/fullBleedQuote.d.ts +12 -0
- package/dist/doc/templates/fullBleedQuote.d.ts.map +1 -1
- package/dist/doc/templates/fullBleedQuote.js +12 -0
- package/dist/doc/templates/fullBleedQuote.js.map +1 -1
- package/dist/doc/templates/index.d.ts +28 -4
- package/dist/doc/templates/index.d.ts.map +1 -1
- package/dist/doc/templates/index.js +45 -12
- package/dist/doc/templates/index.js.map +1 -1
- package/dist/doc/templates/listBlock.d.ts.map +1 -1
- package/dist/doc/templates/listBlock.js +22 -5
- package/dist/doc/templates/listBlock.js.map +1 -1
- package/dist/doc/templates/statHighlight.d.ts +12 -0
- package/dist/doc/templates/statHighlight.d.ts.map +1 -1
- package/dist/doc/templates/statHighlight.js +12 -0
- package/dist/doc/templates/statHighlight.js.map +1 -1
- package/dist/doc/templates/titleBlock.d.ts +11 -0
- package/dist/doc/templates/titleBlock.d.ts.map +1 -1
- package/dist/doc/templates/titleBlock.js +8 -0
- package/dist/doc/templates/titleBlock.js.map +1 -1
- package/dist/doc/utils/themeUtils.d.ts +4 -4
- package/dist/doc/utils/themeUtils.d.ts.map +1 -1
- package/dist/doc/utils/themeUtils.js +8 -7
- package/dist/doc/utils/themeUtils.js.map +1 -1
- package/dist/generate/slideshowGenerator.js +1 -1
- package/dist/generate/slideshowGenerator.js.map +1 -1
- package/dist/generate/templateMapper.js +2 -2
- package/dist/generate/templateMapper.js.map +1 -1
- package/dist/icons/iconData.d.ts +26 -0
- package/dist/icons/iconData.d.ts.map +1 -0
- package/dist/icons/iconData.js +12 -0
- package/dist/icons/iconData.js.map +1 -0
- package/dist/icons/index.d.ts +12 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +10 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/icons/resolve.d.ts +61 -0
- package/dist/icons/resolve.d.ts.map +1 -0
- package/dist/icons/resolve.js +130 -0
- package/dist/icons/resolve.js.map +1 -0
- package/dist/imageEdit/ImageEditVersionManager.d.ts +31 -0
- package/dist/imageEdit/ImageEditVersionManager.d.ts.map +1 -0
- package/dist/imageEdit/ImageEditVersionManager.js +39 -0
- package/dist/imageEdit/ImageEditVersionManager.js.map +1 -0
- package/dist/imageEdit/export.d.ts +33 -0
- package/dist/imageEdit/export.d.ts.map +1 -0
- package/dist/imageEdit/export.js +253 -0
- package/dist/imageEdit/export.js.map +1 -0
- package/dist/imageEdit/index.d.ts +14 -0
- package/dist/imageEdit/index.d.ts.map +1 -0
- package/dist/imageEdit/index.js +22 -0
- package/dist/imageEdit/index.js.map +1 -0
- package/dist/imageEdit/persistence.d.ts +15 -0
- package/dist/imageEdit/persistence.d.ts.map +1 -0
- package/dist/imageEdit/persistence.js +49 -0
- package/dist/imageEdit/persistence.js.map +1 -0
- package/dist/imageEdit/state.d.ts +42 -0
- package/dist/imageEdit/state.d.ts.map +1 -0
- package/dist/imageEdit/state.js +98 -0
- package/dist/imageEdit/state.js.map +1 -0
- package/dist/imageEdit/versionPaths.d.ts +27 -0
- package/dist/imageEdit/versionPaths.d.ts.map +1 -0
- package/dist/imageEdit/versionPaths.js +57 -0
- package/dist/imageEdit/versionPaths.js.map +1 -0
- package/dist/imageEdit/versions.d.ts +67 -0
- package/dist/imageEdit/versions.d.ts.map +1 -0
- package/dist/imageEdit/versions.js +161 -0
- package/dist/imageEdit/versions.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/jsonForm/chooseControl.d.ts +20 -0
- package/dist/jsonForm/chooseControl.d.ts.map +1 -0
- package/dist/jsonForm/chooseControl.js +82 -0
- package/dist/jsonForm/chooseControl.js.map +1 -0
- package/dist/jsonForm/evaluateWhen.d.ts +12 -0
- package/dist/jsonForm/evaluateWhen.d.ts.map +1 -0
- package/dist/jsonForm/evaluateWhen.js +65 -0
- package/dist/jsonForm/evaluateWhen.js.map +1 -0
- package/dist/jsonForm/index.d.ts +14 -0
- package/dist/jsonForm/index.d.ts.map +1 -0
- package/dist/jsonForm/index.js +12 -0
- package/dist/jsonForm/index.js.map +1 -0
- package/dist/jsonForm/inferSchema.d.ts +12 -0
- package/dist/jsonForm/inferSchema.d.ts.map +1 -0
- package/dist/jsonForm/inferSchema.js +15 -0
- package/dist/jsonForm/inferSchema.js.map +1 -0
- package/dist/jsonForm/pointer.d.ts +26 -0
- package/dist/jsonForm/pointer.d.ts.map +1 -0
- package/dist/jsonForm/pointer.js +102 -0
- package/dist/jsonForm/pointer.js.map +1 -0
- package/dist/jsonForm/types.d.ts +120 -0
- package/dist/jsonForm/types.d.ts.map +1 -0
- package/dist/jsonForm/types.js +10 -0
- package/dist/jsonForm/types.js.map +1 -0
- package/dist/markdown/convert.d.ts +11 -1
- package/dist/markdown/convert.d.ts.map +1 -1
- package/dist/markdown/convert.js +135 -5
- package/dist/markdown/convert.js.map +1 -1
- package/dist/markdown/index.d.ts +1 -1
- package/dist/markdown/index.d.ts.map +1 -1
- package/dist/markdown/index.js +1 -1
- package/dist/markdown/index.js.map +1 -1
- package/dist/markdown/types.d.ts +17 -2
- package/dist/markdown/types.d.ts.map +1 -1
- package/dist/markdown/utils.d.ts +40 -0
- package/dist/markdown/utils.d.ts.map +1 -1
- package/dist/markdown/utils.js +155 -0
- package/dist/markdown/utils.js.map +1 -1
- package/dist/recommend/index.d.ts +16 -0
- package/dist/recommend/index.d.ts.map +1 -0
- package/dist/recommend/index.js +15 -0
- package/dist/recommend/index.js.map +1 -0
- package/dist/recommend/templates.d.ts +39 -0
- package/dist/recommend/templates.d.ts.map +1 -0
- package/dist/recommend/templates.js +235 -0
- package/dist/recommend/templates.js.map +1 -0
- package/dist/schemas/BlockTemplates.d.ts +46 -8
- package/dist/schemas/BlockTemplates.d.ts.map +1 -1
- package/dist/schemas/BlockTemplates.js +3 -3
- package/dist/schemas/BlockTemplates.js.map +1 -1
- package/dist/schemas/ImageEditDoc.d.ts +81 -0
- package/dist/schemas/ImageEditDoc.d.ts.map +1 -0
- package/dist/schemas/ImageEditDoc.js +20 -0
- package/dist/schemas/ImageEditDoc.js.map +1 -0
- package/dist/schemas/Theme.d.ts +70 -31
- package/dist/schemas/Theme.d.ts.map +1 -1
- package/dist/schemas/Theme.js +48 -16
- package/dist/schemas/Theme.js.map +1 -1
- package/dist/schemas/colorUtils.d.ts +51 -0
- package/dist/schemas/colorUtils.d.ts.map +1 -0
- package/dist/schemas/colorUtils.js +154 -0
- package/dist/schemas/colorUtils.js.map +1 -0
- package/dist/schemas/fontStacks.d.ts +57 -0
- package/dist/schemas/fontStacks.d.ts.map +1 -0
- package/dist/schemas/fontStacks.js +227 -0
- package/dist/schemas/fontStacks.js.map +1 -0
- package/dist/schemas/index.d.ts +5 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +4 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/themeCompile.d.ts +45 -0
- package/dist/schemas/themeCompile.d.ts.map +1 -0
- package/dist/schemas/themeCompile.js +160 -0
- package/dist/schemas/themeCompile.js.map +1 -0
- package/dist/schemas/themeLibrary.d.ts +11 -15
- package/dist/schemas/themeLibrary.d.ts.map +1 -1
- package/dist/schemas/themeLibrary.js +18 -566
- package/dist/schemas/themeLibrary.js.map +1 -1
- package/dist/schemas/themeValidator.d.ts +26 -0
- package/dist/schemas/themeValidator.d.ts.map +1 -0
- package/dist/schemas/themeValidator.js +352 -0
- package/dist/schemas/themeValidator.js.map +1 -0
- package/dist/schemas/themes/bold.json +48 -0
- package/dist/schemas/themes/cinematic.json +54 -0
- package/dist/schemas/themes/documentary.json +49 -0
- package/dist/schemas/themes/gezellig.json +44 -0
- package/dist/schemas/themes/index.d.ts +26 -0
- package/dist/schemas/themes/index.d.ts.map +1 -0
- package/dist/schemas/themes/index.js +49 -0
- package/dist/schemas/themes/index.js.map +1 -0
- package/dist/schemas/themes/magazine.json +44 -0
- package/dist/schemas/themes/minimalist.json +45 -0
- package/dist/schemas/themes/morning-light.json +42 -0
- package/dist/schemas/themes/standard-dark.json +50 -0
- package/dist/schemas/themes/standard.json +42 -0
- package/dist/schemas/themes/tech-dark.json +48 -0
- package/dist/schemas/themes/warm-earth.json +50 -0
- package/dist/storage/ScopedContentContainer.d.ts +44 -0
- package/dist/storage/ScopedContentContainer.d.ts.map +1 -0
- package/dist/storage/ScopedContentContainer.js +94 -0
- package/dist/storage/ScopedContentContainer.js.map +1 -0
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +1 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/story/index.d.ts +53 -13
- package/dist/story/index.js +12 -4
- package/dist/themeLibrary-BHjJ0Qx6.d.ts +40 -0
- package/dist/{types-CkNttVSF.d.ts → types-BdZkdJ3z.d.ts} +17 -2
- package/dist/types-D98li1gV.d.ts +93 -0
- package/dist/versions/DocumentVersionManager.d.ts +31 -0
- package/dist/versions/DocumentVersionManager.d.ts.map +1 -0
- package/dist/versions/DocumentVersionManager.js +33 -0
- package/dist/versions/DocumentVersionManager.js.map +1 -0
- package/dist/versions/index.d.ts +29 -0
- package/dist/versions/index.d.ts.map +1 -0
- package/dist/versions/index.js +28 -0
- package/dist/versions/index.js.map +1 -0
- package/dist/versions/operations.d.ts +44 -0
- package/dist/versions/operations.d.ts.map +1 -0
- package/dist/versions/operations.js +190 -0
- package/dist/versions/operations.js.map +1 -0
- package/dist/versions/paths.d.ts +29 -0
- package/dist/versions/paths.d.ts.map +1 -0
- package/dist/versions/paths.js +66 -0
- package/dist/versions/paths.js.map +1 -0
- package/dist/versions/timestamp.d.ts +22 -0
- package/dist/versions/timestamp.d.ts.map +1 -0
- package/dist/versions/timestamp.js +44 -0
- package/dist/versions/timestamp.js.map +1 -0
- package/dist/versions/types.d.ts +92 -0
- package/dist/versions/types.d.ts.map +1 -0
- package/dist/versions/types.js +11 -0
- package/dist/versions/types.js.map +1 -0
- package/package.json +28 -1
- package/src/__tests__/colorUtils.test.ts +112 -0
- package/src/__tests__/getLayers.test.ts +32 -7
- package/src/__tests__/iconResolve.test.ts +122 -0
- package/src/__tests__/imageEditState.test.ts +74 -0
- package/src/__tests__/imageEditVersions.test.ts +169 -0
- package/src/__tests__/inferDocumentTitle.test.ts +50 -0
- package/src/__tests__/jsonForm.chooseControl.test.ts +86 -0
- package/src/__tests__/jsonForm.evaluateWhen.test.ts +59 -0
- package/src/__tests__/jsonForm.inferSchema.test.ts +25 -0
- package/src/__tests__/jsonForm.pointer.test.ts +103 -0
- package/src/__tests__/markdownIcons.test.ts +104 -0
- package/src/__tests__/markdownToDoc.test.ts +19 -4
- package/src/__tests__/recommendTemplates.test.ts +183 -0
- package/src/__tests__/scopedContentContainer.test.ts +89 -0
- package/src/__tests__/slideshowGenerator.test.ts +1 -1
- package/src/__tests__/templateAnnotationParse.test.ts +42 -0
- package/src/__tests__/templates.test.ts +93 -9
- package/src/__tests__/themeCompile.test.ts +156 -0
- package/src/__tests__/themeValidator.test.ts +125 -0
- package/src/__tests__/versions.test.ts +415 -0
- package/src/doc/audioMapping.ts +55 -11
- package/src/doc/getLayers.ts +32 -21
- package/src/doc/markdownToDoc.ts +45 -7
- package/src/doc/templates/featureBlock.ts +202 -0
- package/src/doc/templates/fullBleedQuote.ts +13 -0
- package/src/doc/templates/index.ts +50 -16
- package/src/doc/templates/listBlock.ts +24 -5
- package/src/doc/templates/statHighlight.ts +13 -0
- package/src/doc/templates/titleBlock.ts +9 -0
- package/src/doc/utils/themeUtils.ts +8 -7
- package/src/generate/slideshowGenerator.ts +1 -1
- package/src/generate/templateMapper.ts +2 -2
- package/src/icons/iconData.ts +31 -0
- package/src/icons/index.ts +18 -0
- package/src/icons/resolve.ts +139 -0
- package/src/imageEdit/ImageEditVersionManager.ts +73 -0
- package/src/imageEdit/export.ts +326 -0
- package/src/imageEdit/index.ts +71 -0
- package/src/imageEdit/persistence.ts +62 -0
- package/src/imageEdit/state.ts +112 -0
- package/src/imageEdit/versionPaths.ts +57 -0
- package/src/imageEdit/versions.ts +231 -0
- package/src/index.ts +4 -0
- package/src/jsonForm/chooseControl.ts +88 -0
- package/src/jsonForm/evaluateWhen.ts +59 -0
- package/src/jsonForm/index.ts +22 -0
- package/src/jsonForm/inferSchema.ts +25 -0
- package/src/jsonForm/pointer.ts +109 -0
- package/src/jsonForm/types.ts +167 -0
- package/src/markdown/convert.ts +145 -5
- package/src/markdown/index.ts +3 -0
- package/src/markdown/types.ts +19 -2
- package/src/markdown/utils.ts +159 -0
- package/src/recommend/index.ts +16 -0
- package/src/recommend/templates.ts +273 -0
- package/src/schemas/BlockTemplates.ts +50 -7
- package/src/schemas/ImageEditDoc.ts +95 -0
- package/src/schemas/Theme.ts +98 -31
- package/src/schemas/colorUtils.ts +186 -0
- package/src/schemas/fontStacks.ts +257 -0
- package/src/schemas/index.ts +12 -0
- package/src/schemas/themeCompile.ts +203 -0
- package/src/schemas/themeLibrary.ts +18 -597
- package/src/schemas/themeValidator.ts +388 -0
- package/src/schemas/themes/bold.json +48 -0
- package/src/schemas/themes/cinematic.json +54 -0
- package/src/schemas/themes/documentary.json +49 -0
- package/src/schemas/themes/gezellig.json +44 -0
- package/src/schemas/themes/index.ts +53 -0
- package/src/schemas/themes/magazine.json +44 -0
- package/src/schemas/themes/minimalist.json +45 -0
- package/src/schemas/themes/morning-light.json +42 -0
- package/src/schemas/themes/standard-dark.json +50 -0
- package/src/schemas/themes/standard.json +42 -0
- package/src/schemas/themes/tech-dark.json +48 -0
- package/src/schemas/themes/warm-earth.json +50 -0
- package/src/storage/ScopedContentContainer.ts +113 -0
- package/src/storage/index.ts +1 -0
- package/src/versions/DocumentVersionManager.ts +70 -0
- package/src/versions/index.ts +54 -0
- package/src/versions/operations.ts +230 -0
- package/src/versions/paths.ts +66 -0
- package/src/versions/timestamp.ts +48 -0
- package/src/versions/types.ts +91 -0
- package/dist/chunk-6BAVXFYC.js.map +0 -1
- package/dist/chunk-7GF6RDED.js +0 -82
- package/dist/chunk-7GF6RDED.js.map +0 -1
- package/dist/chunk-CYQHG27J.js.map +0 -1
- package/dist/chunk-F22AE6BY.js +0 -121
- package/dist/chunk-F22AE6BY.js.map +0 -1
- package/dist/chunk-FIQR4AJG.js +0 -517
- package/dist/chunk-FIQR4AJG.js.map +0 -1
- package/dist/chunk-OASJKWO5.js.map +0 -1
- package/dist/chunk-QM5PKNPW.js.map +0 -1
- package/dist/chunk-TSG2OSE6.js.map +0 -1
- package/dist/themeLibrary-CEo2D4b6.d.ts +0 -44
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1",
|
|
3
|
+
"id": "magazine",
|
|
4
|
+
"name": "Magazine",
|
|
5
|
+
"description": "Rich editorial palette with mixed serif/sans typography and slide transitions.",
|
|
6
|
+
"colors": {
|
|
7
|
+
"primary": "#c53030",
|
|
8
|
+
"secondary": "#2b6cb0",
|
|
9
|
+
"background": "#1a202c",
|
|
10
|
+
"backgroundLight": "#2d3748",
|
|
11
|
+
"text": "#f7fafc",
|
|
12
|
+
"textMuted": "#cbd5e0",
|
|
13
|
+
"highlight": "#ed8936",
|
|
14
|
+
"warning": "#fc8181"
|
|
15
|
+
},
|
|
16
|
+
"typography": {
|
|
17
|
+
"bodyFont": { "stackId": "dm-sans" },
|
|
18
|
+
"titleFont": { "stackId": "dm-serif" },
|
|
19
|
+
"titleWeight": "bold",
|
|
20
|
+
"titleScale": 1.05,
|
|
21
|
+
"lineHeight": 1.5
|
|
22
|
+
},
|
|
23
|
+
"style": {
|
|
24
|
+
"textShadow": true,
|
|
25
|
+
"overlayOpacity": 0.45,
|
|
26
|
+
"animationSpeed": 1.0,
|
|
27
|
+
"borderRadius": 6
|
|
28
|
+
},
|
|
29
|
+
"renderStyle": {
|
|
30
|
+
"name": "magazine",
|
|
31
|
+
"defaultTextAnimation": "fadeIn",
|
|
32
|
+
"defaultImageAnimation": "slowZoom",
|
|
33
|
+
"ambientMotion": true,
|
|
34
|
+
"defaultTransition": { "type": "slideLeft", "duration": 0.7 }
|
|
35
|
+
},
|
|
36
|
+
"colorSchemes": {
|
|
37
|
+
"blue": { "bg": "#1a365d", "text": "#90cdf4", "accent": "#63b3ed" },
|
|
38
|
+
"green": { "bg": "#1c4532", "text": "#9ae6b4", "accent": "#68d391" },
|
|
39
|
+
"purple": { "bg": "#322659", "text": "#d6bcfa", "accent": "#b794f4" },
|
|
40
|
+
"red": { "bg": "#63171b", "text": "#feb2b2", "accent": "#fc8181" },
|
|
41
|
+
"orange": { "bg": "#652b19", "text": "#fbd38d", "accent": "#f6ad55" },
|
|
42
|
+
"teal": { "bg": "#1d4044", "text": "#81e6d9", "accent": "#4fd1c5" }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1",
|
|
3
|
+
"id": "minimalist",
|
|
4
|
+
"name": "Minimalist",
|
|
5
|
+
"description": "Clean near-white background with sans-serif type and minimal animation.",
|
|
6
|
+
"colors": {
|
|
7
|
+
"primary": "#2d3748",
|
|
8
|
+
"secondary": "#4a5568",
|
|
9
|
+
"background": "#f7fafc",
|
|
10
|
+
"backgroundLight": "#edf2f7",
|
|
11
|
+
"text": "#1a202c",
|
|
12
|
+
"textMuted": "#718096",
|
|
13
|
+
"highlight": "#3182ce",
|
|
14
|
+
"warning": "#e53e3e"
|
|
15
|
+
},
|
|
16
|
+
"typography": {
|
|
17
|
+
"bodyFont": { "stackId": "inter" },
|
|
18
|
+
"titleFont": { "stackId": "inter" },
|
|
19
|
+
"titleWeight": "bold",
|
|
20
|
+
"lineHeight": 1.6
|
|
21
|
+
},
|
|
22
|
+
"style": {
|
|
23
|
+
"textShadow": false,
|
|
24
|
+
"overlayOpacity": 0.3,
|
|
25
|
+
"animationSpeed": 1.2,
|
|
26
|
+
"borderRadius": 8
|
|
27
|
+
},
|
|
28
|
+
"renderStyle": {
|
|
29
|
+
"name": "minimalist",
|
|
30
|
+
"defaultTextAnimation": "fadeIn",
|
|
31
|
+
"ambientMotion": false,
|
|
32
|
+
"defaultTransition": { "type": "fade", "duration": 0.6 },
|
|
33
|
+
"templateHints": {
|
|
34
|
+
"title": { "showAccentLine": false }
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"colorSchemes": {
|
|
38
|
+
"blue": { "bg": "#ebf8ff", "text": "#2b6cb0", "accent": "#3182ce" },
|
|
39
|
+
"green": { "bg": "#f0fff4", "text": "#276749", "accent": "#38a169" },
|
|
40
|
+
"purple": { "bg": "#faf5ff", "text": "#553c9a", "accent": "#805ad5" },
|
|
41
|
+
"red": { "bg": "#fff5f5", "text": "#c53030", "accent": "#e53e3e" },
|
|
42
|
+
"orange": { "bg": "#fffaf0", "text": "#c05621", "accent": "#dd6b20" },
|
|
43
|
+
"teal": { "bg": "#e6fffa", "text": "#285e61", "accent": "#319795" }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1",
|
|
3
|
+
"id": "morning-light",
|
|
4
|
+
"name": "Morning Light",
|
|
5
|
+
"description": "Warm light background with dark text and gentle serif typography.",
|
|
6
|
+
"colors": {
|
|
7
|
+
"primary": "#744210",
|
|
8
|
+
"secondary": "#975a16",
|
|
9
|
+
"background": "#faf8f5",
|
|
10
|
+
"backgroundLight": "#f5f0eb",
|
|
11
|
+
"text": "#2d3748",
|
|
12
|
+
"textMuted": "#718096",
|
|
13
|
+
"highlight": "#dd6b20",
|
|
14
|
+
"warning": "#c53030"
|
|
15
|
+
},
|
|
16
|
+
"typography": {
|
|
17
|
+
"bodyFont": { "stackId": "lora" },
|
|
18
|
+
"titleFont": { "stackId": "merriweather" },
|
|
19
|
+
"titleWeight": "bold",
|
|
20
|
+
"lineHeight": 1.7
|
|
21
|
+
},
|
|
22
|
+
"style": {
|
|
23
|
+
"textShadow": false,
|
|
24
|
+
"overlayOpacity": 0.35,
|
|
25
|
+
"animationSpeed": 1.1,
|
|
26
|
+
"borderRadius": 4
|
|
27
|
+
},
|
|
28
|
+
"renderStyle": {
|
|
29
|
+
"name": "morning-light",
|
|
30
|
+
"defaultTextAnimation": "fadeIn",
|
|
31
|
+
"ambientMotion": false,
|
|
32
|
+
"defaultTransition": { "type": "fade", "duration": 1.0 }
|
|
33
|
+
},
|
|
34
|
+
"colorSchemes": {
|
|
35
|
+
"blue": { "bg": "#ebf8ff", "text": "#2c5282", "accent": "#4299e1" },
|
|
36
|
+
"green": { "bg": "#f0fff4", "text": "#22543d", "accent": "#48bb78" },
|
|
37
|
+
"purple": { "bg": "#faf5ff", "text": "#44337a", "accent": "#9f7aea" },
|
|
38
|
+
"red": { "bg": "#fff5f5", "text": "#9b2c2c", "accent": "#fc8181" },
|
|
39
|
+
"orange": { "bg": "#fffaf0", "text": "#744210", "accent": "#ed8936" },
|
|
40
|
+
"teal": { "bg": "#e6fffa", "text": "#234e52", "accent": "#38b2ac" }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1",
|
|
3
|
+
"id": "standard-dark",
|
|
4
|
+
"name": "Standard Dark",
|
|
5
|
+
"description": "Standard, dark variant. System fonts, dark navy background, light text.",
|
|
6
|
+
"colors": {
|
|
7
|
+
"primary": "#3182ce",
|
|
8
|
+
"secondary": "#4a5568",
|
|
9
|
+
"background": "#1a202c",
|
|
10
|
+
"backgroundLight": "#2d3748",
|
|
11
|
+
"text": "#f7fafc",
|
|
12
|
+
"textMuted": "#a0aec0",
|
|
13
|
+
"highlight": "#4299e1",
|
|
14
|
+
"warning": "#fc8181"
|
|
15
|
+
},
|
|
16
|
+
"typography": {
|
|
17
|
+
"bodyFont": { "stackId": "system-sans" },
|
|
18
|
+
"titleFont": { "stackId": "system-serif" },
|
|
19
|
+
"monoFont": { "stackId": "system-mono" },
|
|
20
|
+
"titleWeight": "bold"
|
|
21
|
+
},
|
|
22
|
+
"style": {
|
|
23
|
+
"textShadow": true,
|
|
24
|
+
"overlayOpacity": 0.45,
|
|
25
|
+
"animationSpeed": 1.0
|
|
26
|
+
},
|
|
27
|
+
"renderStyle": {
|
|
28
|
+
"name": "standard",
|
|
29
|
+
"defaultTextAnimation": "fadeIn",
|
|
30
|
+
"defaultImageAnimation": "slowZoom",
|
|
31
|
+
"ambientMotion": true,
|
|
32
|
+
"defaultTransition": { "type": "fade", "duration": 0.7 }
|
|
33
|
+
},
|
|
34
|
+
"colorSchemes": {
|
|
35
|
+
"blue": { "bg": "#1a365d", "text": "#63b3ed", "accent": "#90cdf4" },
|
|
36
|
+
"green": { "bg": "#22543d", "text": "#9ae6b4", "accent": "#68d391" },
|
|
37
|
+
"purple": { "bg": "#44337a", "text": "#d6bcfa", "accent": "#b794f4" },
|
|
38
|
+
"red": { "bg": "#742a2a", "text": "#fc8181", "accent": "#feb2b2" },
|
|
39
|
+
"orange": { "bg": "#744210", "text": "#fbd38d", "accent": "#f6ad55" },
|
|
40
|
+
"teal": { "bg": "#234e52", "text": "#81e6d9", "accent": "#4fd1c5" }
|
|
41
|
+
},
|
|
42
|
+
"persistentLayers": {
|
|
43
|
+
"bottomLayers": [
|
|
44
|
+
{
|
|
45
|
+
"template": "gradientBackground",
|
|
46
|
+
"config": { "type": "gradientBackground", "preset": "dark-vignette" }
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1",
|
|
3
|
+
"id": "standard",
|
|
4
|
+
"name": "Standard Light",
|
|
5
|
+
"description": "Clean and safe — black-on-white, system fonts only, no external font dependencies. Default theme.",
|
|
6
|
+
"colors": {
|
|
7
|
+
"primary": "#2563eb",
|
|
8
|
+
"secondary": "#475569",
|
|
9
|
+
"background": "#ffffff",
|
|
10
|
+
"backgroundLight": "#f1f5f9",
|
|
11
|
+
"text": "#0f172a",
|
|
12
|
+
"textMuted": "#475569",
|
|
13
|
+
"highlight": "#1d4ed8",
|
|
14
|
+
"warning": "#dc2626"
|
|
15
|
+
},
|
|
16
|
+
"typography": {
|
|
17
|
+
"bodyFont": { "stackId": "system-sans" },
|
|
18
|
+
"titleFont": { "stackId": "system-serif" },
|
|
19
|
+
"monoFont": { "stackId": "system-mono" },
|
|
20
|
+
"titleWeight": "bold"
|
|
21
|
+
},
|
|
22
|
+
"style": {
|
|
23
|
+
"textShadow": false,
|
|
24
|
+
"overlayOpacity": 0.35,
|
|
25
|
+
"animationSpeed": 1.0
|
|
26
|
+
},
|
|
27
|
+
"renderStyle": {
|
|
28
|
+
"name": "standard",
|
|
29
|
+
"defaultTextAnimation": "fadeIn",
|
|
30
|
+
"defaultImageAnimation": "slowZoom",
|
|
31
|
+
"ambientMotion": true,
|
|
32
|
+
"defaultTransition": { "type": "fade", "duration": 0.7 }
|
|
33
|
+
},
|
|
34
|
+
"colorSchemes": {
|
|
35
|
+
"blue": { "bg": "#dbeafe", "text": "#1d4ed8", "accent": "#2563eb" },
|
|
36
|
+
"green": { "bg": "#dcfce7", "text": "#166534", "accent": "#16a34a" },
|
|
37
|
+
"purple": { "bg": "#ede9fe", "text": "#5b21b6", "accent": "#7c3aed" },
|
|
38
|
+
"red": { "bg": "#fee2e2", "text": "#991b1b", "accent": "#dc2626" },
|
|
39
|
+
"orange": { "bg": "#ffedd5", "text": "#9a3412", "accent": "#ea580c" },
|
|
40
|
+
"teal": { "bg": "#ccfbf1", "text": "#115e59", "accent": "#0d9488" }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1",
|
|
3
|
+
"id": "tech-dark",
|
|
4
|
+
"name": "Tech Dark",
|
|
5
|
+
"description": "True black with neon cyan/green accents and monospace titles.",
|
|
6
|
+
"colors": {
|
|
7
|
+
"primary": "#00e5ff",
|
|
8
|
+
"secondary": "#00e676",
|
|
9
|
+
"background": "#0a0a0a",
|
|
10
|
+
"backgroundLight": "#1a1a2e",
|
|
11
|
+
"text": "#e0e0e0",
|
|
12
|
+
"textMuted": "#9e9e9e",
|
|
13
|
+
"highlight": "#00e5ff",
|
|
14
|
+
"warning": "#ff5252"
|
|
15
|
+
},
|
|
16
|
+
"typography": {
|
|
17
|
+
"bodyFont": { "stackId": "ibm-plex-sans" },
|
|
18
|
+
"titleFont": { "stackId": "jetbrains-mono" },
|
|
19
|
+
"monoFont": { "stackId": "jetbrains-mono" },
|
|
20
|
+
"titleWeight": "bold",
|
|
21
|
+
"titleScale": 0.9,
|
|
22
|
+
"lineHeight": 1.5
|
|
23
|
+
},
|
|
24
|
+
"style": {
|
|
25
|
+
"textShadow": true,
|
|
26
|
+
"overlayOpacity": 0.55,
|
|
27
|
+
"animationSpeed": 0.9,
|
|
28
|
+
"borderRadius": 2
|
|
29
|
+
},
|
|
30
|
+
"renderStyle": {
|
|
31
|
+
"name": "tech-dark",
|
|
32
|
+
"defaultTextAnimation": "typewriter",
|
|
33
|
+
"defaultImageAnimation": "slowZoom",
|
|
34
|
+
"ambientMotion": true,
|
|
35
|
+
"defaultTransition": { "type": "dissolve", "duration": 0.4 },
|
|
36
|
+
"templateHints": {
|
|
37
|
+
"statHighlight": { "entrance": "dramatic" }
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"colorSchemes": {
|
|
41
|
+
"blue": { "bg": "#0d1b2a", "text": "#00b0ff", "accent": "#40c4ff" },
|
|
42
|
+
"green": { "bg": "#0d1b0d", "text": "#00e676", "accent": "#69f0ae" },
|
|
43
|
+
"purple": { "bg": "#1a0d2e", "text": "#d500f9", "accent": "#ea80fc" },
|
|
44
|
+
"red": { "bg": "#2e0d0d", "text": "#ff5252", "accent": "#ff8a80" },
|
|
45
|
+
"orange": { "bg": "#2e1a0d", "text": "#ff9100", "accent": "#ffab40" },
|
|
46
|
+
"teal": { "bg": "#0d2e2e", "text": "#1de9b6", "accent": "#64ffda" }
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1",
|
|
3
|
+
"id": "warm-earth",
|
|
4
|
+
"name": "Warm Earth",
|
|
5
|
+
"description": "Natural warm tones with earthy browns and terracotta accents.",
|
|
6
|
+
"colors": {
|
|
7
|
+
"primary": "#9c4221",
|
|
8
|
+
"secondary": "#c05621",
|
|
9
|
+
"background": "#1c1410",
|
|
10
|
+
"backgroundLight": "#2d241e",
|
|
11
|
+
"text": "#faf5f0",
|
|
12
|
+
"textMuted": "#c4a882",
|
|
13
|
+
"highlight": "#dd6b20",
|
|
14
|
+
"warning": "#e53e3e"
|
|
15
|
+
},
|
|
16
|
+
"typography": {
|
|
17
|
+
"bodyFont": { "stackId": "pt-serif" },
|
|
18
|
+
"titleFont": { "stackId": "pt-serif" },
|
|
19
|
+
"titleWeight": "bold",
|
|
20
|
+
"lineHeight": 1.6
|
|
21
|
+
},
|
|
22
|
+
"style": {
|
|
23
|
+
"textShadow": true,
|
|
24
|
+
"overlayOpacity": 0.5,
|
|
25
|
+
"animationSpeed": 1.1
|
|
26
|
+
},
|
|
27
|
+
"renderStyle": {
|
|
28
|
+
"name": "warm-earth",
|
|
29
|
+
"defaultTextAnimation": "fadeIn",
|
|
30
|
+
"defaultImageAnimation": "panLeft",
|
|
31
|
+
"ambientMotion": true,
|
|
32
|
+
"defaultTransition": { "type": "fade", "duration": 0.9 }
|
|
33
|
+
},
|
|
34
|
+
"colorSchemes": {
|
|
35
|
+
"blue": { "bg": "#2a1f14", "text": "#90cdf4", "accent": "#63b3ed" },
|
|
36
|
+
"green": { "bg": "#1e2a14", "text": "#9ae6b4", "accent": "#68d391" },
|
|
37
|
+
"purple": { "bg": "#2a142a", "text": "#d6bcfa", "accent": "#b794f4" },
|
|
38
|
+
"red": { "bg": "#2a1414", "text": "#fc8181", "accent": "#feb2b2" },
|
|
39
|
+
"orange": { "bg": "#2a1e0a", "text": "#fbd38d", "accent": "#f6ad55" },
|
|
40
|
+
"teal": { "bg": "#142a28", "text": "#81e6d9", "accent": "#4fd1c5" }
|
|
41
|
+
},
|
|
42
|
+
"persistentLayers": {
|
|
43
|
+
"bottomLayers": [
|
|
44
|
+
{
|
|
45
|
+
"template": "gradientBackground",
|
|
46
|
+
"config": { "type": "gradientBackground", "preset": "earth-tones" }
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScopedContentContainer
|
|
3
|
+
*
|
|
4
|
+
* Wraps a parent {@link ContentContainer} and prefixes every path with a
|
|
5
|
+
* fixed subfolder, presenting that subfolder as the root. Useful for
|
|
6
|
+
* sidecar folders (e.g. `<imagebasename>_files/`) where a component
|
|
7
|
+
* should be able to read/write/list files relative to its own root
|
|
8
|
+
* without knowing where it lives in the parent tree.
|
|
9
|
+
*
|
|
10
|
+
* Scopes nest: `scopeContainer(scopeContainer(parent, 'a'), 'b')` is
|
|
11
|
+
* equivalent to `scopeContainer(parent, 'a/b')`.
|
|
12
|
+
*
|
|
13
|
+
* `getDocumentPath()` always returns `null` for scoped sidecars — they
|
|
14
|
+
* are not document roots.
|
|
15
|
+
*/
|
|
16
|
+
import type { ContentContainer, ContentEntry } from './ContentContainer.js';
|
|
17
|
+
/**
|
|
18
|
+
* A ContentContainer view rooted at a subfolder of a parent container.
|
|
19
|
+
* All paths passed to / returned from this container are relative to
|
|
20
|
+
* the subfolder; the parent never sees an unprefixed path.
|
|
21
|
+
*/
|
|
22
|
+
export declare class ScopedContentContainer implements ContentContainer {
|
|
23
|
+
private readonly parent;
|
|
24
|
+
/** Prefix without trailing slash. */
|
|
25
|
+
readonly prefix: string;
|
|
26
|
+
/** Prefix with trailing slash. */
|
|
27
|
+
private readonly prefixSlash;
|
|
28
|
+
constructor(parent: ContentContainer, prefix: string);
|
|
29
|
+
private toParent;
|
|
30
|
+
/** Strip the prefix from a parent-space path. Returns null if the path is outside the scope. */
|
|
31
|
+
private fromParent;
|
|
32
|
+
readFile(path: string): Promise<ArrayBuffer | null>;
|
|
33
|
+
writeFile(path: string, data: ArrayBuffer | Uint8Array, mimeType?: string): Promise<void>;
|
|
34
|
+
removeFile(path: string): Promise<void>;
|
|
35
|
+
listFiles(prefix?: string): Promise<ContentEntry[]>;
|
|
36
|
+
exists(path: string): Promise<boolean>;
|
|
37
|
+
/** Sidecars are not document roots. */
|
|
38
|
+
getDocumentPath(): Promise<string | null>;
|
|
39
|
+
readDocument(): Promise<string | null>;
|
|
40
|
+
writeDocument(): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
/** Factory: convenience wrapper for `new ScopedContentContainer(parent, prefix)`. */
|
|
43
|
+
export declare function scopeContainer(parent: ContentContainer, prefix: string): ScopedContentContainer;
|
|
44
|
+
//# sourceMappingURL=ScopedContentContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopedContentContainer.d.ts","sourceRoot":"","sources":["../../src/storage/ScopedContentContainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAkB5E;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAMpD,OAAO,CAAC,QAAQ;IAMhB,gGAAgG;IAChG,OAAO,CAAC,UAAU;IAKlB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAInD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAYzD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,uCAAuC;IACjC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzC,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAItC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAMrC;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAE/F"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScopedContentContainer
|
|
3
|
+
*
|
|
4
|
+
* Wraps a parent {@link ContentContainer} and prefixes every path with a
|
|
5
|
+
* fixed subfolder, presenting that subfolder as the root. Useful for
|
|
6
|
+
* sidecar folders (e.g. `<imagebasename>_files/`) where a component
|
|
7
|
+
* should be able to read/write/list files relative to its own root
|
|
8
|
+
* without knowing where it lives in the parent tree.
|
|
9
|
+
*
|
|
10
|
+
* Scopes nest: `scopeContainer(scopeContainer(parent, 'a'), 'b')` is
|
|
11
|
+
* equivalent to `scopeContainer(parent, 'a/b')`.
|
|
12
|
+
*
|
|
13
|
+
* `getDocumentPath()` always returns `null` for scoped sidecars — they
|
|
14
|
+
* are not document roots.
|
|
15
|
+
*/
|
|
16
|
+
/** Normalize a prefix: strip leading/trailing slashes, ensure no `..` segments. */
|
|
17
|
+
function normalizePrefix(prefix) {
|
|
18
|
+
let p = prefix.trim();
|
|
19
|
+
while (p.startsWith('/'))
|
|
20
|
+
p = p.slice(1);
|
|
21
|
+
while (p.endsWith('/'))
|
|
22
|
+
p = p.slice(0, -1);
|
|
23
|
+
if (p.length === 0) {
|
|
24
|
+
throw new Error('ScopedContentContainer: prefix must not be empty');
|
|
25
|
+
}
|
|
26
|
+
if (p.split('/').some((seg) => seg === '..' || seg === '.')) {
|
|
27
|
+
throw new Error(`ScopedContentContainer: prefix must not contain '.' or '..' segments: ${prefix}`);
|
|
28
|
+
}
|
|
29
|
+
return p;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A ContentContainer view rooted at a subfolder of a parent container.
|
|
33
|
+
* All paths passed to / returned from this container are relative to
|
|
34
|
+
* the subfolder; the parent never sees an unprefixed path.
|
|
35
|
+
*/
|
|
36
|
+
export class ScopedContentContainer {
|
|
37
|
+
constructor(parent, prefix) {
|
|
38
|
+
this.parent = parent;
|
|
39
|
+
this.prefix = normalizePrefix(prefix);
|
|
40
|
+
this.prefixSlash = `${this.prefix}/`;
|
|
41
|
+
}
|
|
42
|
+
toParent(path) {
|
|
43
|
+
let p = path;
|
|
44
|
+
while (p.startsWith('/'))
|
|
45
|
+
p = p.slice(1);
|
|
46
|
+
return this.prefixSlash + p;
|
|
47
|
+
}
|
|
48
|
+
/** Strip the prefix from a parent-space path. Returns null if the path is outside the scope. */
|
|
49
|
+
fromParent(parentPath) {
|
|
50
|
+
if (!parentPath.startsWith(this.prefixSlash))
|
|
51
|
+
return null;
|
|
52
|
+
return parentPath.slice(this.prefixSlash.length);
|
|
53
|
+
}
|
|
54
|
+
readFile(path) {
|
|
55
|
+
return this.parent.readFile(this.toParent(path));
|
|
56
|
+
}
|
|
57
|
+
writeFile(path, data, mimeType) {
|
|
58
|
+
return this.parent.writeFile(this.toParent(path), data, mimeType);
|
|
59
|
+
}
|
|
60
|
+
removeFile(path) {
|
|
61
|
+
return this.parent.removeFile(this.toParent(path));
|
|
62
|
+
}
|
|
63
|
+
async listFiles(prefix) {
|
|
64
|
+
const parentPrefix = prefix ? this.toParent(prefix) : this.prefixSlash;
|
|
65
|
+
const entries = await this.parent.listFiles(parentPrefix);
|
|
66
|
+
const out = [];
|
|
67
|
+
for (const e of entries) {
|
|
68
|
+
const local = this.fromParent(e.path);
|
|
69
|
+
if (local === null)
|
|
70
|
+
continue;
|
|
71
|
+
out.push({ path: local, mimeType: e.mimeType, size: e.size });
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
exists(path) {
|
|
76
|
+
return this.parent.exists(this.toParent(path));
|
|
77
|
+
}
|
|
78
|
+
/** Sidecars are not document roots. */
|
|
79
|
+
async getDocumentPath() {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
async readDocument() {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
async writeDocument() {
|
|
86
|
+
throw new Error('ScopedContentContainer is a sidecar view and does not support writeDocument(). ' +
|
|
87
|
+
'Write to a specific path with writeFile() instead.');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/** Factory: convenience wrapper for `new ScopedContentContainer(parent, prefix)`. */
|
|
91
|
+
export function scopeContainer(parent, prefix) {
|
|
92
|
+
return new ScopedContentContainer(parent, prefix);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=ScopedContentContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopedContentContainer.js","sourceRoot":"","sources":["../../src/storage/ScopedContentContainer.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -5,5 +5,6 @@ export { LocalForageAdapter } from './LocalForageAdapter.js';
|
|
|
5
5
|
export type { LocalForageAdapterOptions } from './LocalForageAdapter.js';
|
|
6
6
|
export type { ContentContainer, ContentEntry } from './ContentContainer.js';
|
|
7
7
|
export { MemoryContentContainer, findDocumentPath } from './ContentContainer.js';
|
|
8
|
+
export { ScopedContentContainer, scopeContainer } from './ScopedContentContainer.js';
|
|
8
9
|
export { createMediaProviderFromContainer } from './MediaProviderFromContainer.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/storage/index.js
CHANGED
|
@@ -2,5 +2,6 @@ export { MemoryStorageAdapter } from './MemoryStorageAdapter.js';
|
|
|
2
2
|
export { LocalStorageAdapter } from './LocalStorageAdapter.js';
|
|
3
3
|
export { LocalForageAdapter } from './LocalForageAdapter.js';
|
|
4
4
|
export { MemoryContentContainer, findDocumentPath } from './ContentContainer.js';
|
|
5
|
+
export { ScopedContentContainer, scopeContainer } from './ScopedContentContainer.js';
|
|
5
6
|
export { createMediaProviderFromContainer } from './MediaProviderFromContainer.js';
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/story/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import { p as MarkdownHeading, l as MarkdownDocument } from '../types-
|
|
1
|
+
import { Q as PersistentLayer, z as Layer, R as PersistentLayerConfig, am as TitleBlockInput, aa as TemplateContext, a0 as SectionHeaderInput, a4 as StatHighlightInput, Z as QuoteBlockInput, F as FactCardInput, aq as TwoColumnInput, p as DateEventInput, y as ImageWithCaptionInput, H as LeftFeatureInput, $ as RightFeatureInput, M as MapBlockInput, a3 as StartBlockConfig, w as FullBleedQuoteInput, J as ListBlockInput, V as PhotoGridInput, r as DefinitionCardInput, k as ComparisonBarInput, Y as PullQuoteInput, au as VideoWithCaptionInput, at as VideoPullQuoteInput, o as DataTableInput, A as AccentImage, a as AccentPosition, af as Theme, av as ViewportConfig, t as DocBlock, B as Block, a9 as TemplateBlock, ac as TemplateRegistry, b as Animation, c as AnimationType, ap as TransitionType, ah as ThemeColorScheme, s as Doc } from '../Doc-BeSeH2iX.js';
|
|
2
|
+
export { E as LayoutHints, _ as RenderStyle, ag as ThemeColorPalette, ak as ThemeStyle, al as ThemeTypography, ar as VIEWPORT_PRESETS, aw as ViewportOrientation, ax as ViewportPreset, aB as createTemplateContext, aG as getLayoutHints, aK as getTwoColumnPositions, aL as getViewport, aM as getViewportOrientation, aO as isTemplateBlock, aS as scaledFontSize } from '../Doc-BeSeH2iX.js';
|
|
3
|
+
import { p as MarkdownHeading, l as MarkdownDocument } from '../types-BdZkdJ3z.js';
|
|
4
4
|
import { C as ContentContainer } from '../ContentContainer-DNx460y8.js';
|
|
5
|
-
export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-
|
|
5
|
+
export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-BHjJ0Qx6.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Persistent Layers Expansion
|
|
@@ -139,6 +139,23 @@ declare function dateEvent(input: DateEventInput, context: TemplateContext): Lay
|
|
|
139
139
|
|
|
140
140
|
declare function imageWithCaption(input: ImageWithCaptionInput, context: TemplateContext): Layer[];
|
|
141
141
|
|
|
142
|
+
/**
|
|
143
|
+
* Feature Block Templates — `leftFeature` and `rightFeature`
|
|
144
|
+
*
|
|
145
|
+
* Pairs a "feature" image on one side of the block with a title + body
|
|
146
|
+
* paragraph on the other. The two templates are mirror images, so the
|
|
147
|
+
* actual layer-builder lives here once and the per-side template files
|
|
148
|
+
* just call it with a `side` parameter.
|
|
149
|
+
*
|
|
150
|
+
* Used for editorial layouts like product highlights, profile cards,
|
|
151
|
+
* and section intros where a single image deserves to sit next to a
|
|
152
|
+
* short text block rather than behind it (which is what
|
|
153
|
+
* `imageWithCaption` does).
|
|
154
|
+
*/
|
|
155
|
+
|
|
156
|
+
declare function leftFeature(input: LeftFeatureInput, context: TemplateContext): Layer[];
|
|
157
|
+
declare function rightFeature(input: RightFeatureInput, context: TemplateContext): Layer[];
|
|
158
|
+
|
|
142
159
|
/**
|
|
143
160
|
* Map Block Template
|
|
144
161
|
*
|
|
@@ -392,11 +409,32 @@ declare function adjustY(originalY: string | number, layout: AccentLayout): stri
|
|
|
392
409
|
*/
|
|
393
410
|
|
|
394
411
|
/**
|
|
395
|
-
* Registry mapping template
|
|
396
|
-
*
|
|
397
|
-
*
|
|
412
|
+
* Registry mapping template ids (the strings that appear in
|
|
413
|
+
* `{[name]}` markdown annotations) to their implementation functions.
|
|
414
|
+
*
|
|
415
|
+
* Some implementation functions keep historical "Block" suffixes
|
|
416
|
+
* (`titleBlock`, `quoteBlock`, `mapBlock`, `listBlock`) for source
|
|
417
|
+
* readability — the registry surfaces them under the cleaner short
|
|
418
|
+
* ids (`title`, `quote`, `map`, `list`). {@link TEMPLATE_ALIASES} keeps
|
|
419
|
+
* the legacy long ids resolvable for documents written before the
|
|
420
|
+
* rename.
|
|
421
|
+
*
|
|
422
|
+
* Note: coverBlock is not in the registry as it's used directly for
|
|
423
|
+
* start blocks, not as a regular template in the block sequence.
|
|
398
424
|
*/
|
|
399
425
|
declare const templateRegistry: TemplateRegistry;
|
|
426
|
+
/**
|
|
427
|
+
* Back-compat: maps legacy template ids (kept around for documents
|
|
428
|
+
* authored before the "Block" suffix was dropped) to the canonical
|
|
429
|
+
* short ids. Resolved by {@link resolveTemplateName} so both the
|
|
430
|
+
* registry lookup and `hasTemplate()` accept either form.
|
|
431
|
+
*/
|
|
432
|
+
declare const TEMPLATE_ALIASES: Readonly<Record<string, string>>;
|
|
433
|
+
/**
|
|
434
|
+
* Resolve a template id through {@link TEMPLATE_ALIASES}. Returns the
|
|
435
|
+
* input unchanged when no alias is registered.
|
|
436
|
+
*/
|
|
437
|
+
declare function resolveTemplateName(name: string): string;
|
|
400
438
|
/**
|
|
401
439
|
* Expand a template block into a full Block with layers.
|
|
402
440
|
*/
|
|
@@ -444,7 +482,9 @@ declare function expandDocBlocks(blocks: DocBlock[], options?: ExpandDocBlocksOp
|
|
|
444
482
|
*/
|
|
445
483
|
declare function getAvailableTemplates(): string[];
|
|
446
484
|
/**
|
|
447
|
-
* Check if a template exists.
|
|
485
|
+
* Check if a template exists. Accepts both the canonical short id
|
|
486
|
+
* (`title`, `quote`, `map`, `list`) and legacy aliases
|
|
487
|
+
* (`titleBlock`, `quoteBlock`, `mapBlock`, `listBlock`).
|
|
448
488
|
*/
|
|
449
489
|
declare function hasTemplate(name: string): boolean;
|
|
450
490
|
|
|
@@ -495,12 +535,12 @@ declare function getAnimationProgress(animation: Animation, currentTime: number,
|
|
|
495
535
|
*/
|
|
496
536
|
declare function resolveColorScheme(context: TemplateContext, name: string | undefined): ThemeColorScheme;
|
|
497
537
|
/**
|
|
498
|
-
* Get the theme font family for a given role.
|
|
538
|
+
* Get the theme font family for a given role, resolved to a CSS string.
|
|
499
539
|
* Templates call this to set `fontFamily` on text layers.
|
|
500
540
|
*
|
|
501
|
-
*
|
|
502
|
-
*
|
|
503
|
-
*
|
|
541
|
+
* Theme fields are structured `FontFamily` references (`{ stackId }` or
|
|
542
|
+
* `{ custom: { name, fallback } }`); this helper resolves them to a
|
|
543
|
+
* CSS font-family string with safe fallbacks.
|
|
504
544
|
*/
|
|
505
545
|
declare function getThemeFont(context: TemplateContext, role: 'title' | 'body' | 'mono'): string;
|
|
506
546
|
/**
|
|
@@ -754,4 +794,4 @@ declare function scoreTextSimilarity(a: string, b: string): number;
|
|
|
754
794
|
*/
|
|
755
795
|
declare function resolveAudioMapping(doc: Doc, container: ContentContainer): Promise<Doc>;
|
|
756
796
|
|
|
757
|
-
export { type AccentLayout, type AudioSegmentTiming, type CoverBlockInput, DEFAULT_LAYOUT, DocBlock, type DocStylePreset, type ExpandDocBlocksOptions, type MarkdownToDocOptions, PersistentLayerConfig, type RenderContext, TemplateBlock, TemplateContext, Theme, ThemeColorScheme, ViewportConfig, adjustY, comparisonBar, countBlocks, coverBlock, createAccentLayers, dataTable, dateEvent, definitionCard, docToMarkdown, expandCoverBlock, expandDocBlocks, expandPersistentLayers, expandTemplateBlock, factCard, flattenBlocks, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockDepth, getDefaultAnimation, getDefaultAnimationDuration, getDocStyleConfig, getLayers, getOverlayOpacity, getTemplateHint, getThemeFont, getTransitionClass, hasTemplate, imageWithCaption, listBlock, mapBlock, markdownToDoc, photoGrid, pullQuote, quoteBlock, resolveAudioMapping, resolveColorScheme, scaleAnimationDuration, scoreTextSimilarity, sectionHeader, shouldUseShadow, statHighlight, templateRegistry, themedFontSize, titleBlock, twoColumn, videoPullQuote, videoWithCaption };
|
|
797
|
+
export { type AccentLayout, type AudioSegmentTiming, type CoverBlockInput, DEFAULT_LAYOUT, DocBlock, type DocStylePreset, type ExpandDocBlocksOptions, type MarkdownToDocOptions, PersistentLayerConfig, type RenderContext, TEMPLATE_ALIASES, TemplateBlock, TemplateContext, Theme, ThemeColorScheme, ViewportConfig, adjustY, comparisonBar, countBlocks, coverBlock, createAccentLayers, dataTable, dateEvent, definitionCard, docToMarkdown, expandCoverBlock, expandDocBlocks, expandPersistentLayers, expandTemplateBlock, factCard, flattenBlocks, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockDepth, getDefaultAnimation, getDefaultAnimationDuration, getDocStyleConfig, getLayers, getOverlayOpacity, getTemplateHint, getThemeFont, getTransitionClass, hasTemplate, imageWithCaption, leftFeature, listBlock, mapBlock, markdownToDoc, photoGrid, pullQuote, quoteBlock, resolveAudioMapping, resolveColorScheme, resolveTemplateName, rightFeature, scaleAnimationDuration, scoreTextSimilarity, sectionHeader, shouldUseShadow, statHighlight, templateRegistry, themedFontSize, titleBlock, twoColumn, videoPullQuote, videoWithCaption };
|