velo-text 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +70 -0
- package/LICENSE +21 -0
- package/README.md +122 -0
- package/dist/adapters/backend/index.d.ts +4 -0
- package/dist/adapters/backend/index.d.ts.map +1 -0
- package/dist/adapters/backend/index.js +3 -0
- package/dist/adapters/backend/index.js.map +1 -0
- package/dist/adapters/backend/pdf-http.d.ts +48 -0
- package/dist/adapters/backend/pdf-http.d.ts.map +1 -0
- package/dist/adapters/backend/pdf-http.js +117 -0
- package/dist/adapters/backend/pdf-http.js.map +1 -0
- package/dist/adapters/backend/sinks.d.ts +7 -0
- package/dist/adapters/backend/sinks.d.ts.map +1 -0
- package/dist/adapters/backend/sinks.js +43 -0
- package/dist/adapters/backend/sinks.js.map +1 -0
- package/dist/adapters/browser/index.d.ts +11 -0
- package/dist/adapters/browser/index.d.ts.map +1 -0
- package/dist/adapters/browser/index.js +51 -0
- package/dist/adapters/browser/index.js.map +1 -0
- package/dist/adapters/postgres-contract/index.d.ts +45 -0
- package/dist/adapters/postgres-contract/index.d.ts.map +1 -0
- package/dist/adapters/postgres-contract/index.js +108 -0
- package/dist/adapters/postgres-contract/index.js.map +1 -0
- package/dist/adapters/s3-compatible/index.d.ts +46 -0
- package/dist/adapters/s3-compatible/index.d.ts.map +1 -0
- package/dist/adapters/s3-compatible/index.js +106 -0
- package/dist/adapters/s3-compatible/index.js.map +1 -0
- package/dist/adapters/vanilla.d.ts +5 -0
- package/dist/adapters/vanilla.d.ts.map +1 -0
- package/dist/adapters/vanilla.js +6 -0
- package/dist/adapters/vanilla.js.map +1 -0
- package/dist/assets/dimensions/index.d.ts +12 -0
- package/dist/assets/dimensions/index.d.ts.map +1 -0
- package/dist/assets/dimensions/index.js +46 -0
- package/dist/assets/dimensions/index.js.map +1 -0
- package/dist/assets/hashing/index.d.ts +7 -0
- package/dist/assets/hashing/index.d.ts.map +1 -0
- package/dist/assets/hashing/index.js +21 -0
- package/dist/assets/hashing/index.js.map +1 -0
- package/dist/assets/icons/index.d.ts +25 -0
- package/dist/assets/icons/index.d.ts.map +1 -0
- package/dist/assets/icons/index.js +107 -0
- package/dist/assets/icons/index.js.map +1 -0
- package/dist/assets/png/placeholder.d.ts +4 -0
- package/dist/assets/png/placeholder.d.ts.map +1 -0
- package/dist/assets/png/placeholder.js +13 -0
- package/dist/assets/png/placeholder.js.map +1 -0
- package/dist/assets/sniff/index.d.ts +13 -0
- package/dist/assets/sniff/index.d.ts.map +1 -0
- package/dist/assets/sniff/index.js +41 -0
- package/dist/assets/sniff/index.js.map +1 -0
- package/dist/assets/store/index.d.ts +56 -0
- package/dist/assets/store/index.d.ts.map +1 -0
- package/dist/assets/store/index.js +102 -0
- package/dist/assets/store/index.js.map +1 -0
- package/dist/assets/svg/index.d.ts +7 -0
- package/dist/assets/svg/index.d.ts.map +1 -0
- package/dist/assets/svg/index.js +82 -0
- package/dist/assets/svg/index.js.map +1 -0
- package/dist/core/equation/html.d.ts +3 -0
- package/dist/core/equation/html.d.ts.map +1 -0
- package/dist/core/equation/html.js +138 -0
- package/dist/core/equation/html.js.map +1 -0
- package/dist/core/equation/index.d.ts +19 -0
- package/dist/core/equation/index.d.ts.map +1 -0
- package/dist/core/equation/index.js +107 -0
- package/dist/core/equation/index.js.map +1 -0
- package/dist/core/events/index.d.ts +13 -0
- package/dist/core/events/index.d.ts.map +1 -0
- package/dist/core/events/index.js +18 -0
- package/dist/core/events/index.js.map +1 -0
- package/dist/core/history/history.d.ts +29 -0
- package/dist/core/history/history.d.ts.map +1 -0
- package/dist/core/history/history.js +55 -0
- package/dist/core/history/history.js.map +1 -0
- package/dist/core/history/index.d.ts +2 -0
- package/dist/core/history/index.d.ts.map +1 -0
- package/dist/core/history/index.js +2 -0
- package/dist/core/history/index.js.map +1 -0
- package/dist/core/model/block.d.ts +121 -0
- package/dist/core/model/block.d.ts.map +1 -0
- package/dist/core/model/block.js +2 -0
- package/dist/core/model/block.js.map +1 -0
- package/dist/core/model/document.d.ts +70 -0
- package/dist/core/model/document.d.ts.map +1 -0
- package/dist/core/model/document.js +2 -0
- package/dist/core/model/document.js.map +1 -0
- package/dist/core/model/factories.d.ts +35 -0
- package/dist/core/model/factories.d.ts.map +1 -0
- package/dist/core/model/factories.js +115 -0
- package/dist/core/model/factories.js.map +1 -0
- package/dist/core/model/index.d.ts +4 -0
- package/dist/core/model/index.d.ts.map +1 -0
- package/dist/core/model/index.js +4 -0
- package/dist/core/model/index.js.map +1 -0
- package/dist/core/model/inline.d.ts +43 -0
- package/dist/core/model/inline.d.ts.map +1 -0
- package/dist/core/model/inline.js +2 -0
- package/dist/core/model/inline.js.map +1 -0
- package/dist/core/model/primitives.d.ts +36 -0
- package/dist/core/model/primitives.d.ts.map +1 -0
- package/dist/core/model/primitives.js +3 -0
- package/dist/core/model/primitives.js.map +1 -0
- package/dist/core/model/table-look.d.ts +12 -0
- package/dist/core/model/table-look.d.ts.map +1 -0
- package/dist/core/model/table-look.js +99 -0
- package/dist/core/model/table-look.js.map +1 -0
- package/dist/core/model/types.d.ts +5 -0
- package/dist/core/model/types.d.ts.map +1 -0
- package/dist/core/model/types.js +5 -0
- package/dist/core/model/types.js.map +1 -0
- package/dist/core/normalize/index.d.ts +2 -0
- package/dist/core/normalize/index.d.ts.map +1 -0
- package/dist/core/normalize/index.js +2 -0
- package/dist/core/normalize/index.js.map +1 -0
- package/dist/core/normalize/normalize.d.ts +8 -0
- package/dist/core/normalize/normalize.d.ts.map +1 -0
- package/dist/core/normalize/normalize.js +145 -0
- package/dist/core/normalize/normalize.js.map +1 -0
- package/dist/core/operations/index.d.ts +2 -0
- package/dist/core/operations/index.d.ts.map +1 -0
- package/dist/core/operations/index.js +2 -0
- package/dist/core/operations/index.js.map +1 -0
- package/dist/core/operations/operations.d.ts +53 -0
- package/dist/core/operations/operations.d.ts.map +1 -0
- package/dist/core/operations/operations.js +92 -0
- package/dist/core/operations/operations.js.map +1 -0
- package/dist/core/plugin/index.d.ts +84 -0
- package/dist/core/plugin/index.d.ts.map +1 -0
- package/dist/core/plugin/index.js +137 -0
- package/dist/core/plugin/index.js.map +1 -0
- package/dist/core/schema/canonical.d.ts +6 -0
- package/dist/core/schema/canonical.d.ts.map +1 -0
- package/dist/core/schema/canonical.js +42 -0
- package/dist/core/schema/canonical.js.map +1 -0
- package/dist/core/schema/index.d.ts +3 -0
- package/dist/core/schema/index.d.ts.map +1 -0
- package/dist/core/schema/index.js +3 -0
- package/dist/core/schema/index.js.map +1 -0
- package/dist/core/schema/validator.d.ts +23 -0
- package/dist/core/schema/validator.d.ts.map +1 -0
- package/dist/core/schema/validator.js +276 -0
- package/dist/core/schema/validator.js.map +1 -0
- package/dist/core/selection/index.d.ts +2 -0
- package/dist/core/selection/index.d.ts.map +1 -0
- package/dist/core/selection/index.js +2 -0
- package/dist/core/selection/index.js.map +1 -0
- package/dist/core/selection/selection.d.ts +12 -0
- package/dist/core/selection/selection.d.ts.map +1 -0
- package/dist/core/selection/selection.js +38 -0
- package/dist/core/selection/selection.js.map +1 -0
- package/dist/editor-web/accessibility/index.d.ts +40 -0
- package/dist/editor-web/accessibility/index.d.ts.map +1 -0
- package/dist/editor-web/accessibility/index.js +170 -0
- package/dist/editor-web/accessibility/index.js.map +1 -0
- package/dist/editor-web/clipboard/index.d.ts +52 -0
- package/dist/editor-web/clipboard/index.d.ts.map +1 -0
- package/dist/editor-web/clipboard/index.js +154 -0
- package/dist/editor-web/clipboard/index.js.map +1 -0
- package/dist/editor-web/controller/column-presets.d.ts +9 -0
- package/dist/editor-web/controller/column-presets.d.ts.map +1 -0
- package/dist/editor-web/controller/column-presets.js +11 -0
- package/dist/editor-web/controller/column-presets.js.map +1 -0
- package/dist/editor-web/controller/column-resize.d.ts +6 -0
- package/dist/editor-web/controller/column-resize.d.ts.map +1 -0
- package/dist/editor-web/controller/column-resize.js +119 -0
- package/dist/editor-web/controller/column-resize.js.map +1 -0
- package/dist/editor-web/controller/columns-ui.d.ts +5 -0
- package/dist/editor-web/controller/columns-ui.d.ts.map +1 -0
- package/dist/editor-web/controller/columns-ui.js +107 -0
- package/dist/editor-web/controller/columns-ui.js.map +1 -0
- package/dist/editor-web/controller/commands.d.ts +27 -0
- package/dist/editor-web/controller/commands.d.ts.map +1 -0
- package/dist/editor-web/controller/commands.js +198 -0
- package/dist/editor-web/controller/commands.js.map +1 -0
- package/dist/editor-web/controller/format-commands.d.ts +12 -0
- package/dist/editor-web/controller/format-commands.d.ts.map +1 -0
- package/dist/editor-web/controller/format-commands.js +77 -0
- package/dist/editor-web/controller/format-commands.js.map +1 -0
- package/dist/editor-web/controller/handles.d.ts +7 -0
- package/dist/editor-web/controller/handles.d.ts.map +1 -0
- package/dist/editor-web/controller/handles.js +205 -0
- package/dist/editor-web/controller/handles.js.map +1 -0
- package/dist/editor-web/controller/host.d.ts +8 -0
- package/dist/editor-web/controller/host.d.ts.map +1 -0
- package/dist/editor-web/controller/host.js +48 -0
- package/dist/editor-web/controller/host.js.map +1 -0
- package/dist/editor-web/controller/image-resize.d.ts +9 -0
- package/dist/editor-web/controller/image-resize.d.ts.map +1 -0
- package/dist/editor-web/controller/image-resize.js +163 -0
- package/dist/editor-web/controller/image-resize.js.map +1 -0
- package/dist/editor-web/controller/index.d.ts +6 -0
- package/dist/editor-web/controller/index.d.ts.map +1 -0
- package/dist/editor-web/controller/index.js +190 -0
- package/dist/editor-web/controller/index.js.map +1 -0
- package/dist/editor-web/controller/nesting.d.ts +27 -0
- package/dist/editor-web/controller/nesting.d.ts.map +1 -0
- package/dist/editor-web/controller/nesting.js +218 -0
- package/dist/editor-web/controller/nesting.js.map +1 -0
- package/dist/editor-web/controller/place-overlay.d.ts +6 -0
- package/dist/editor-web/controller/place-overlay.d.ts.map +1 -0
- package/dist/editor-web/controller/place-overlay.js +55 -0
- package/dist/editor-web/controller/place-overlay.js.map +1 -0
- package/dist/editor-web/controller/size-picker.d.ts +28 -0
- package/dist/editor-web/controller/size-picker.d.ts.map +1 -0
- package/dist/editor-web/controller/size-picker.js +177 -0
- package/dist/editor-web/controller/size-picker.js.map +1 -0
- package/dist/editor-web/controller/table-resize.d.ts +14 -0
- package/dist/editor-web/controller/table-resize.d.ts.map +1 -0
- package/dist/editor-web/controller/table-resize.js +178 -0
- package/dist/editor-web/controller/table-resize.js.map +1 -0
- package/dist/editor-web/controller/table-ui.d.ts +5 -0
- package/dist/editor-web/controller/table-ui.d.ts.map +1 -0
- package/dist/editor-web/controller/table-ui.js +214 -0
- package/dist/editor-web/controller/table-ui.js.map +1 -0
- package/dist/editor-web/controller/types.d.ts +95 -0
- package/dist/editor-web/controller/types.d.ts.map +1 -0
- package/dist/editor-web/controller/types.js +4 -0
- package/dist/editor-web/controller/types.js.map +1 -0
- package/dist/editor-web/controller/variable-ui.d.ts +5 -0
- package/dist/editor-web/controller/variable-ui.d.ts.map +1 -0
- package/dist/editor-web/controller/variable-ui.js +75 -0
- package/dist/editor-web/controller/variable-ui.js.map +1 -0
- package/dist/editor-web/images/index.d.ts +9 -0
- package/dist/editor-web/images/index.d.ts.map +1 -0
- package/dist/editor-web/images/index.js +18 -0
- package/dist/editor-web/images/index.js.map +1 -0
- package/dist/editor-web/index.d.ts +10 -0
- package/dist/editor-web/index.d.ts.map +1 -0
- package/dist/editor-web/index.js +10 -0
- package/dist/editor-web/index.js.map +1 -0
- package/dist/editor-web/input/index.d.ts +75 -0
- package/dist/editor-web/input/index.d.ts.map +1 -0
- package/dist/editor-web/input/index.js +151 -0
- package/dist/editor-web/input/index.js.map +1 -0
- package/dist/editor-web/tables/index.d.ts +47 -0
- package/dist/editor-web/tables/index.d.ts.map +1 -0
- package/dist/editor-web/tables/index.js +159 -0
- package/dist/editor-web/tables/index.js.map +1 -0
- package/dist/editor-web/toolbar/index.d.ts +17 -0
- package/dist/editor-web/toolbar/index.d.ts.map +1 -0
- package/dist/editor-web/toolbar/index.js +36 -0
- package/dist/editor-web/toolbar/index.js.map +1 -0
- package/dist/editor-web/ux/attach.d.ts +21 -0
- package/dist/editor-web/ux/attach.d.ts.map +1 -0
- package/dist/editor-web/ux/attach.js +61 -0
- package/dist/editor-web/ux/attach.js.map +1 -0
- package/dist/editor-web/ux/command-palette.d.ts +11 -0
- package/dist/editor-web/ux/command-palette.d.ts.map +1 -0
- package/dist/editor-web/ux/command-palette.js +135 -0
- package/dist/editor-web/ux/command-palette.js.map +1 -0
- package/dist/editor-web/ux/equation-editor.d.ts +11 -0
- package/dist/editor-web/ux/equation-editor.d.ts.map +1 -0
- package/dist/editor-web/ux/equation-editor.js +130 -0
- package/dist/editor-web/ux/equation-editor.js.map +1 -0
- package/dist/editor-web/ux/equation-palette.d.ts +11 -0
- package/dist/editor-web/ux/equation-palette.d.ts.map +1 -0
- package/dist/editor-web/ux/equation-palette.js +90 -0
- package/dist/editor-web/ux/equation-palette.js.map +1 -0
- package/dist/editor-web/ux/find-replace.d.ts +6 -0
- package/dist/editor-web/ux/find-replace.d.ts.map +1 -0
- package/dist/editor-web/ux/find-replace.js +125 -0
- package/dist/editor-web/ux/find-replace.js.map +1 -0
- package/dist/editor-web/ux/find-text.d.ts +10 -0
- package/dist/editor-web/ux/find-text.d.ts.map +1 -0
- package/dist/editor-web/ux/find-text.js +101 -0
- package/dist/editor-web/ux/find-text.js.map +1 -0
- package/dist/editor-web/ux/image-drop.d.ts +7 -0
- package/dist/editor-web/ux/image-drop.d.ts.map +1 -0
- package/dist/editor-web/ux/image-drop.js +198 -0
- package/dist/editor-web/ux/image-drop.js.map +1 -0
- package/dist/editor-web/ux/link-ui.d.ts +6 -0
- package/dist/editor-web/ux/link-ui.d.ts.map +1 -0
- package/dist/editor-web/ux/link-ui.js +50 -0
- package/dist/editor-web/ux/link-ui.js.map +1 -0
- package/dist/editor-web/ux/outline.d.ts +9 -0
- package/dist/editor-web/ux/outline.d.ts.map +1 -0
- package/dist/editor-web/ux/outline.js +48 -0
- package/dist/editor-web/ux/outline.js.map +1 -0
- package/dist/editor-web/ux/page-preview.d.ts +6 -0
- package/dist/editor-web/ux/page-preview.d.ts.map +1 -0
- package/dist/editor-web/ux/page-preview.js +90 -0
- package/dist/editor-web/ux/page-preview.js.map +1 -0
- package/dist/editor-web/ux/selection-bubble.d.ts +6 -0
- package/dist/editor-web/ux/selection-bubble.d.ts.map +1 -0
- package/dist/editor-web/ux/selection-bubble.js +79 -0
- package/dist/editor-web/ux/selection-bubble.js.map +1 -0
- package/dist/editor-web/ux/shortcuts-sheet.d.ts +6 -0
- package/dist/editor-web/ux/shortcuts-sheet.d.ts.map +1 -0
- package/dist/editor-web/ux/shortcuts-sheet.js +58 -0
- package/dist/editor-web/ux/shortcuts-sheet.js.map +1 -0
- package/dist/editor-web/view/index.d.ts +3 -0
- package/dist/editor-web/view/index.d.ts.map +1 -0
- package/dist/editor-web/view/index.js +3 -0
- package/dist/editor-web/view/index.js.map +1 -0
- package/dist/editor-web/view/parse-inlines.d.ts +15 -0
- package/dist/editor-web/view/parse-inlines.d.ts.map +1 -0
- package/dist/editor-web/view/parse-inlines.js +107 -0
- package/dist/editor-web/view/parse-inlines.js.map +1 -0
- package/dist/editor-web/view/parse.d.ts +8 -0
- package/dist/editor-web/view/parse.d.ts.map +1 -0
- package/dist/editor-web/view/parse.js +238 -0
- package/dist/editor-web/view/parse.js.map +1 -0
- package/dist/editor-web/view/reconcile.d.ts +26 -0
- package/dist/editor-web/view/reconcile.d.ts.map +1 -0
- package/dist/editor-web/view/reconcile.js +142 -0
- package/dist/editor-web/view/reconcile.js.map +1 -0
- package/dist/editor-web/view/render.d.ts +14 -0
- package/dist/editor-web/view/render.d.ts.map +1 -0
- package/dist/editor-web/view/render.js +162 -0
- package/dist/editor-web/view/render.js.map +1 -0
- package/dist/export/docx/document-xml.d.ts +3 -0
- package/dist/export/docx/document-xml.d.ts.map +1 -0
- package/dist/export/docx/document-xml.js +218 -0
- package/dist/export/docx/document-xml.js.map +1 -0
- package/dist/export/docx/package-parts.d.ts +9 -0
- package/dist/export/docx/package-parts.d.ts.map +1 -0
- package/dist/export/docx/package-parts.js +91 -0
- package/dist/export/docx/package-parts.js.map +1 -0
- package/dist/export/docx/writer.d.ts +17 -0
- package/dist/export/docx/writer.d.ts.map +1 -0
- package/dist/export/docx/writer.js +48 -0
- package/dist/export/docx/writer.js.map +1 -0
- package/dist/export/images/downsample.d.ts +19 -0
- package/dist/export/images/downsample.d.ts.map +1 -0
- package/dist/export/images/downsample.js +64 -0
- package/dist/export/images/downsample.js.map +1 -0
- package/dist/export/images/png-encode.d.ts +4 -0
- package/dist/export/images/png-encode.d.ts.map +1 -0
- package/dist/export/images/png-encode.js +86 -0
- package/dist/export/images/png-encode.js.map +1 -0
- package/dist/export/images/prepare.d.ts +22 -0
- package/dist/export/images/prepare.d.ts.map +1 -0
- package/dist/export/images/prepare.js +29 -0
- package/dist/export/images/prepare.js.map +1 -0
- package/dist/export/images/rasterize.d.ts +7 -0
- package/dist/export/images/rasterize.d.ts.map +1 -0
- package/dist/export/images/rasterize.js +62 -0
- package/dist/export/images/rasterize.js.map +1 -0
- package/dist/export/index.d.ts +45 -0
- package/dist/export/index.d.ts.map +1 -0
- package/dist/export/index.js +52 -0
- package/dist/export/index.js.map +1 -0
- package/dist/export/layout/index.d.ts +23 -0
- package/dist/export/layout/index.d.ts.map +1 -0
- package/dist/export/layout/index.js +18 -0
- package/dist/export/layout/index.js.map +1 -0
- package/dist/export/layout/layout-blocks.d.ts +5 -0
- package/dist/export/layout/layout-blocks.d.ts.map +1 -0
- package/dist/export/layout/layout-blocks.js +91 -0
- package/dist/export/layout/layout-blocks.js.map +1 -0
- package/dist/export/layout/layout-flow.d.ts +25 -0
- package/dist/export/layout/layout-flow.d.ts.map +1 -0
- package/dist/export/layout/layout-flow.js +23 -0
- package/dist/export/layout/layout-flow.js.map +1 -0
- package/dist/export/layout/layout-structured.d.ts +4 -0
- package/dist/export/layout/layout-structured.d.ts.map +1 -0
- package/dist/export/layout/layout-structured.js +153 -0
- package/dist/export/layout/layout-structured.js.map +1 -0
- package/dist/export/layout/layout-types.d.ts +35 -0
- package/dist/export/layout/layout-types.d.ts.map +1 -0
- package/dist/export/layout/layout-types.js +2 -0
- package/dist/export/layout/layout-types.js.map +1 -0
- package/dist/export/layout/pagination.d.ts +9 -0
- package/dist/export/layout/pagination.d.ts.map +1 -0
- package/dist/export/layout/pagination.js +38 -0
- package/dist/export/layout/pagination.js.map +1 -0
- package/dist/export/layout/text.d.ts +47 -0
- package/dist/export/layout/text.d.ts.map +1 -0
- package/dist/export/layout/text.js +119 -0
- package/dist/export/layout/text.js.map +1 -0
- package/dist/export/layout/units.d.ts +30 -0
- package/dist/export/layout/units.d.ts.map +1 -0
- package/dist/export/layout/units.js +55 -0
- package/dist/export/layout/units.js.map +1 -0
- package/dist/export/odt/writer.d.ts +24 -0
- package/dist/export/odt/writer.d.ts.map +1 -0
- package/dist/export/odt/writer.js +258 -0
- package/dist/export/odt/writer.js.map +1 -0
- package/dist/export/pdf/assemble.d.ts +9 -0
- package/dist/export/pdf/assemble.d.ts.map +1 -0
- package/dist/export/pdf/assemble.js +105 -0
- package/dist/export/pdf/assemble.js.map +1 -0
- package/dist/export/pdf/diagnostics.d.ts +11 -0
- package/dist/export/pdf/diagnostics.d.ts.map +1 -0
- package/dist/export/pdf/diagnostics.js +88 -0
- package/dist/export/pdf/diagnostics.js.map +1 -0
- package/dist/export/pdf/equation.d.ts +55 -0
- package/dist/export/pdf/equation.d.ts.map +1 -0
- package/dist/export/pdf/equation.js +301 -0
- package/dist/export/pdf/equation.js.map +1 -0
- package/dist/export/pdf/export-pdf.d.ts +33 -0
- package/dist/export/pdf/export-pdf.d.ts.map +1 -0
- package/dist/export/pdf/export-pdf.js +54 -0
- package/dist/export/pdf/export-pdf.js.map +1 -0
- package/dist/export/pdf/fonts.d.ts +7 -0
- package/dist/export/pdf/fonts.d.ts.map +1 -0
- package/dist/export/pdf/fonts.js +15 -0
- package/dist/export/pdf/fonts.js.map +1 -0
- package/dist/export/pdf/image.d.ts +27 -0
- package/dist/export/pdf/image.d.ts.map +1 -0
- package/dist/export/pdf/image.js +271 -0
- package/dist/export/pdf/image.js.map +1 -0
- package/dist/export/pdf/layout-pages.d.ts +9 -0
- package/dist/export/pdf/layout-pages.d.ts.map +1 -0
- package/dist/export/pdf/layout-pages.js +174 -0
- package/dist/export/pdf/layout-pages.js.map +1 -0
- package/dist/export/pdf/layout-table.d.ts +29 -0
- package/dist/export/pdf/layout-table.d.ts.map +1 -0
- package/dist/export/pdf/layout-table.js +216 -0
- package/dist/export/pdf/layout-table.js.map +1 -0
- package/dist/export/pdf/page-metrics.d.ts +11 -0
- package/dist/export/pdf/page-metrics.d.ts.map +1 -0
- package/dist/export/pdf/page-metrics.js +14 -0
- package/dist/export/pdf/page-metrics.js.map +1 -0
- package/dist/export/pdf/pdf-model.d.ts +36 -0
- package/dist/export/pdf/pdf-model.d.ts.map +1 -0
- package/dist/export/pdf/pdf-model.js +4 -0
- package/dist/export/pdf/pdf-model.js.map +1 -0
- package/dist/export/pdf/stream.d.ts +6 -0
- package/dist/export/pdf/stream.d.ts.map +1 -0
- package/dist/export/pdf/stream.js +213 -0
- package/dist/export/pdf/stream.js.map +1 -0
- package/dist/export/pdf/writer.d.ts +26 -0
- package/dist/export/pdf/writer.d.ts.map +1 -0
- package/dist/export/pdf/writer.js +31 -0
- package/dist/export/pdf/writer.js.map +1 -0
- package/dist/export/validate.d.ts +29 -0
- package/dist/export/validate.d.ts.map +1 -0
- package/dist/export/validate.js +127 -0
- package/dist/export/validate.js.map +1 -0
- package/dist/export/xml/writer.d.ts +19 -0
- package/dist/export/xml/writer.d.ts.map +1 -0
- package/dist/export/xml/writer.js +57 -0
- package/dist/export/xml/writer.js.map +1 -0
- package/dist/export/zip/crc32.d.ts +2 -0
- package/dist/export/zip/crc32.d.ts.map +1 -0
- package/dist/export/zip/crc32.js +20 -0
- package/dist/export/zip/crc32.js.map +1 -0
- package/dist/export/zip/deflate.d.ts +15 -0
- package/dist/export/zip/deflate.d.ts.map +1 -0
- package/dist/export/zip/deflate.js +28 -0
- package/dist/export/zip/deflate.js.map +1 -0
- package/dist/export/zip/index.d.ts +3 -0
- package/dist/export/zip/index.d.ts.map +1 -0
- package/dist/export/zip/index.js +3 -0
- package/dist/export/zip/index.js.map +1 -0
- package/dist/export/zip/zipWriter.d.ts +23 -0
- package/dist/export/zip/zipWriter.d.ts.map +1 -0
- package/dist/export/zip/zipWriter.js +123 -0
- package/dist/export/zip/zipWriter.js.map +1 -0
- package/dist/public-api/index.d.ts +46 -0
- package/dist/public-api/index.d.ts.map +1 -0
- package/dist/public-api/index.js +40 -0
- package/dist/public-api/index.js.map +1 -0
- package/dist/template/diagnostics/index.d.ts +8 -0
- package/dist/template/diagnostics/index.d.ts.map +1 -0
- package/dist/template/diagnostics/index.js +4 -0
- package/dist/template/diagnostics/index.js.map +1 -0
- package/dist/template/formatter/index.d.ts +9 -0
- package/dist/template/formatter/index.d.ts.map +1 -0
- package/dist/template/formatter/index.js +27 -0
- package/dist/template/formatter/index.js.map +1 -0
- package/dist/template/index.d.ts +3 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/template/index.js +3 -0
- package/dist/template/index.js.map +1 -0
- package/dist/template/parser/parser.d.ts +42 -0
- package/dist/template/parser/parser.d.ts.map +1 -0
- package/dist/template/parser/parser.js +135 -0
- package/dist/template/parser/parser.js.map +1 -0
- package/dist/template/resolver/format.d.ts +11 -0
- package/dist/template/resolver/format.d.ts.map +1 -0
- package/dist/template/resolver/format.js +80 -0
- package/dist/template/resolver/format.js.map +1 -0
- package/dist/template/resolver/resolver.d.ts +31 -0
- package/dist/template/resolver/resolver.d.ts.map +1 -0
- package/dist/template/resolver/resolver.js +218 -0
- package/dist/template/resolver/resolver.js.map +1 -0
- package/dist/theme/index.d.ts +26 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +87 -0
- package/dist/theme/index.js.map +1 -0
- package/package.json +110 -0
- package/schemas/portable-doc-v1.json +250 -0
- package/themes/base.css +71 -0
- package/themes/components.css +135 -0
- package/themes/editor-chrome.css +174 -0
- package/themes/editor-columns.css +121 -0
- package/themes/editor-overlays.css +464 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer and reconciler — Phase 4.1.1 / 4.1.2
|
|
3
|
+
* Controlled contenteditable host, data-node-id/type, reconciliation by IDs.
|
|
4
|
+
* DOM is a reflection of the AST; AST is the source of truth.
|
|
5
|
+
*/
|
|
6
|
+
import type { PortableDocument } from "../../core/model/types.js";
|
|
7
|
+
export interface RenderOptions {
|
|
8
|
+
theme?: string;
|
|
9
|
+
editable?: boolean;
|
|
10
|
+
resolveAssetUrl?: (assetId: string) => string | undefined;
|
|
11
|
+
}
|
|
12
|
+
export declare function renderBlocksToHtml(doc: PortableDocument, resolveAssetUrl?: RenderOptions["resolveAssetUrl"]): string;
|
|
13
|
+
export declare function renderDocumentToHtml(doc: PortableDocument, opts?: RenderOptions): string;
|
|
14
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/editor-web/view/render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,2BAA2B,CAAC;AAIzF,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC3D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAEpH;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM,CAG5F"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { tableClassName } from "../../core/model/table-look.js";
|
|
2
|
+
import { latexToHtml } from "../../core/equation/index.js";
|
|
3
|
+
export function renderBlocksToHtml(doc, resolveAssetUrl) {
|
|
4
|
+
return doc.root.children.map((b) => renderBlock(b, resolveAssetUrl)).join("");
|
|
5
|
+
}
|
|
6
|
+
export function renderDocumentToHtml(doc, opts = {}) {
|
|
7
|
+
const blocks = renderBlocksToHtml(doc, opts.resolveAssetUrl);
|
|
8
|
+
return `<div class="pde-root" data-pde-theme="${opts.theme ?? "light-neutral"}" contenteditable="${opts.editable ?? true ? "true" : "false"}">${blocks}</div>`;
|
|
9
|
+
}
|
|
10
|
+
function renderBlock(block, resolve) {
|
|
11
|
+
const id = block.id;
|
|
12
|
+
switch (block.type) {
|
|
13
|
+
case "paragraph":
|
|
14
|
+
return `<p data-node-id="${id}" data-node-type="paragraph"${blockStyle(block)}>${(block.children ?? []).map((n) => renderInline(n, resolve)).join("") || "<br>"}</p>`;
|
|
15
|
+
case "heading":
|
|
16
|
+
return `<h${block.level} data-node-id="${id}" data-node-type="heading"${alignStyle(block)}>${(block.children ?? []).map((n) => renderInline(n, resolve)).join("")}</h${block.level}>`;
|
|
17
|
+
case "quote":
|
|
18
|
+
return `<blockquote data-node-id="${id}" data-node-type="quote"${alignStyle(block)}>${(block.children ?? []).map((n) => renderInline(n, resolve)).join("")}</blockquote>`;
|
|
19
|
+
case "list": {
|
|
20
|
+
const tag = block.kind === "ordered" ? "ol" : "ul";
|
|
21
|
+
const items = block.items
|
|
22
|
+
.map((it) => `<li data-node-id="${it.id}">${it.content.map((n) => renderInline(n, resolve)).join("")}${it.nested ? renderBlock(it.nested, resolve) : ""}</li>`)
|
|
23
|
+
.join("");
|
|
24
|
+
return `<${tag} data-node-id="${id}" data-node-type="list">${items}</${tag}>`;
|
|
25
|
+
}
|
|
26
|
+
case "table": {
|
|
27
|
+
const colsHtml = block.columns
|
|
28
|
+
.map((c) => {
|
|
29
|
+
const defaultW = 40000;
|
|
30
|
+
const style = c.widthUm && c.widthUm !== defaultW ? ` style="width:${Math.round((c.widthUm / 25400) * 96)}px"` : "";
|
|
31
|
+
return `<col data-col-id="${c.id}" data-col-width-um="${c.widthUm}"${style} />`;
|
|
32
|
+
})
|
|
33
|
+
.join("");
|
|
34
|
+
const rows = block.rows
|
|
35
|
+
.map((row) => {
|
|
36
|
+
const hPx = row.heightUm ? ` style="height:${Math.round((row.heightUm / 25400) * 96)}px" data-height-um="${row.heightUm}"` : "";
|
|
37
|
+
const hdr = row.header ? ` data-header="true"` : "";
|
|
38
|
+
const cells = row.cells
|
|
39
|
+
.map((cell, colIndex) => {
|
|
40
|
+
const tag = row.header ? "th" : "td";
|
|
41
|
+
const inner = cell.blocks.map((bl) => renderBlock(bl, resolve)).join("") || "<p><br></p>";
|
|
42
|
+
const bg = typeof cell.style?.background === "string" ? `background:${cell.style.background}` : "";
|
|
43
|
+
const va = "vertical-align:middle";
|
|
44
|
+
const st = [bg, va].filter(Boolean).join(";");
|
|
45
|
+
const styleAttr = st ? ` style="${st}"` : ` style="${va}"`;
|
|
46
|
+
return `<${tag} data-node-id="${cell.id}" colspan="${cell.colSpan}" rowspan="${cell.rowSpan}" data-col-index="${colIndex}"${styleAttr}>${inner}</${tag}>`;
|
|
47
|
+
})
|
|
48
|
+
.join("");
|
|
49
|
+
return `<tr data-node-id="${row.id}"${hPx}${hdr}>${cells}</tr>`;
|
|
50
|
+
})
|
|
51
|
+
.join("");
|
|
52
|
+
return `<table class="${tableClassName(block)}" data-node-id="${id}" data-node-type="table" style="table-layout:fixed;width:100%"><colgroup>${colsHtml}</colgroup><tbody>${rows}</tbody></table>`;
|
|
53
|
+
}
|
|
54
|
+
case "image": {
|
|
55
|
+
const wUm = block.widthUm ?? 150000;
|
|
56
|
+
const hUm = block.heightUm ?? 90000;
|
|
57
|
+
const wPx = Math.round((wUm / 25400) * 96);
|
|
58
|
+
const align = block.align;
|
|
59
|
+
const figStyle = align && align !== "left" ? ` style="text-align:${align}"` : "";
|
|
60
|
+
const cap = block.title ? `<figcaption>${escapeAttr(block.title)}</figcaption>` : "";
|
|
61
|
+
const src = assetSrc(block.assetId, resolve);
|
|
62
|
+
return `<figure contenteditable="false" draggable="true" data-node-id="${id}" data-node-type="image" data-asset-id="${block.assetId}" data-width-um="${wUm}" data-height-um="${hUm}" data-alt="${escapeAttr(block.alt ?? "")}"${block.title ? ` data-title="${escapeAttr(block.title)}"` : ""} class="pde-image-block"${figStyle}><img data-asset-id="${block.assetId}" alt="${escapeAttr(block.alt ?? "")}" draggable="true" style="width:${wPx}px;height:auto;aspect-ratio:${wUm}/${hUm}"${src} />${cap}</figure>`;
|
|
63
|
+
}
|
|
64
|
+
case "columns": {
|
|
65
|
+
const cols = block.columns
|
|
66
|
+
.map((col, i) => {
|
|
67
|
+
const pct = col.widthPct ?? Math.round(100 / Math.max(1, block.columns.length));
|
|
68
|
+
const inner = col.blocks.map((bl) => renderBlock(bl, resolve)).join("") || "<p><br></p>";
|
|
69
|
+
return `<div class="pde-column" data-node-id="${col.id}" data-col-index="${i}" data-width-pct="${pct}" style="flex:0 0 ${pct}%;width:${pct}%;max-width:${pct}%">${inner}</div>`;
|
|
70
|
+
})
|
|
71
|
+
.join("");
|
|
72
|
+
const gapPx = Math.round(((block.gapUm ?? 4000) / 25400) * 96);
|
|
73
|
+
return `<div class="pde-columns" data-node-id="${id}" data-node-type="columns" style="gap:${gapPx}px">${cols}</div>`;
|
|
74
|
+
}
|
|
75
|
+
case "page-break":
|
|
76
|
+
return `<div data-node-id="${id}" data-node-type="page-break" class="pde-page-break" data-page-break="true"></div>`;
|
|
77
|
+
case "horizontal-rule":
|
|
78
|
+
return `<hr data-node-id="${id}" data-node-type="horizontal-rule" />`;
|
|
79
|
+
case "equation-block": {
|
|
80
|
+
const latex = escapeAttr(block.latex ?? "");
|
|
81
|
+
const inner = latexToHtml(block.latex ?? "");
|
|
82
|
+
return `<div data-node-id="${id}" data-node-type="equation-block" contenteditable="false" class="pde-equation pde-equation--block" role="math" aria-label="${latex}" data-latex="${latex}">${inner}</div>`;
|
|
83
|
+
}
|
|
84
|
+
default:
|
|
85
|
+
return `<div data-node-id="${id}">[${block.type}]</div>`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function renderInline(inline, resolve) {
|
|
89
|
+
switch (inline.type) {
|
|
90
|
+
case "text": {
|
|
91
|
+
let s = escapeHtml(inline.text);
|
|
92
|
+
const m = inline.marks;
|
|
93
|
+
if (!m)
|
|
94
|
+
return s;
|
|
95
|
+
if (m.bold)
|
|
96
|
+
s = `<strong>${s}</strong>`;
|
|
97
|
+
if (m.italic)
|
|
98
|
+
s = `<em>${s}</em>`;
|
|
99
|
+
if (m.underline)
|
|
100
|
+
s = `<u>${s}</u>`;
|
|
101
|
+
if (m.strike)
|
|
102
|
+
s = `<s>${s}</s>`;
|
|
103
|
+
if (m.code)
|
|
104
|
+
s = `<code>${s}</code>`;
|
|
105
|
+
const st = [];
|
|
106
|
+
if (m.color)
|
|
107
|
+
st.push(`color:${m.color}`);
|
|
108
|
+
if (m.background)
|
|
109
|
+
st.push(`background:${m.background}`);
|
|
110
|
+
if (m.fontSizePt)
|
|
111
|
+
st.push(`font-size:${m.fontSizePt}pt`);
|
|
112
|
+
if (m.fontFamily)
|
|
113
|
+
st.push(`font-family:${m.fontFamily}`);
|
|
114
|
+
if (st.length)
|
|
115
|
+
s = `<span style="${st.join(";")}">${s}</span>`;
|
|
116
|
+
return s;
|
|
117
|
+
}
|
|
118
|
+
case "variable":
|
|
119
|
+
return `<span data-node-id="${inline.id}" data-node-type="variable" contenteditable="false" class="pde-variable" role="button" tabindex="0" data-path="${escapeAttr(inline.path)}" data-source="${escapeAttr(inline.source)}"${inline.format ? ` data-format="${escapeAttr(inline.format)}"` : ""}${inline.fallback ? ` data-fallback="${escapeAttr(inline.fallback)}"` : ""} aria-label="Variable ${escapeAttr(inline.path)}">${escapeHtml(inline.source)}</span>`;
|
|
120
|
+
case "link":
|
|
121
|
+
return `<a data-node-id="${inline.id}" href="${escapeAttr(inline.href)}" data-node-type="link">${inline.children.map((n) => renderInline(n, resolve)).join("")}</a>`;
|
|
122
|
+
case "inline-image":
|
|
123
|
+
return `<img data-node-id="${inline.id}" data-asset-id="${inline.assetId}" class="pde-inline-image" alt=""${assetSrc(inline.assetId, resolve)} />`;
|
|
124
|
+
case "hard-break":
|
|
125
|
+
return `<br data-node-id="${inline.id}" />`;
|
|
126
|
+
case "equation": {
|
|
127
|
+
const latex = inline.latex ?? "";
|
|
128
|
+
const display = inline.display;
|
|
129
|
+
const inner = latexToHtml(latex);
|
|
130
|
+
const cls = display ? "pde-equation pde-equation--block" : "pde-equation";
|
|
131
|
+
return `<span data-node-id="${inline.id}" data-node-type="equation" contenteditable="false" class="${cls}" role="math" tabindex="0" aria-label="${escapeAttr(latex)}" data-latex="${escapeAttr(latex)}">${inner}</span>`;
|
|
132
|
+
}
|
|
133
|
+
default:
|
|
134
|
+
return `<span>[${inline.type}]</span>`;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function blockStyle(block) {
|
|
138
|
+
const b = block;
|
|
139
|
+
const parts = [];
|
|
140
|
+
if (b.align)
|
|
141
|
+
parts.push(`text-align:${b.align}`);
|
|
142
|
+
if (b.indentLevel)
|
|
143
|
+
parts.push(`padding-left:${b.indentLevel * 1.5}em`);
|
|
144
|
+
const indentAttr = b.indentLevel ? ` data-indent-level="${b.indentLevel}"` : "";
|
|
145
|
+
const style = parts.length ? ` style="${parts.join(";")}"` : "";
|
|
146
|
+
return `${indentAttr}${style}`;
|
|
147
|
+
}
|
|
148
|
+
function alignStyle(block) {
|
|
149
|
+
const align = block.align;
|
|
150
|
+
return align ? ` style="text-align:${align}"` : "";
|
|
151
|
+
}
|
|
152
|
+
function assetSrc(assetId, resolve) {
|
|
153
|
+
const url = resolve?.(assetId);
|
|
154
|
+
return url ? ` src="${escapeAttr(url)}"` : "";
|
|
155
|
+
}
|
|
156
|
+
function escapeHtml(s) {
|
|
157
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
158
|
+
}
|
|
159
|
+
function escapeAttr(s) {
|
|
160
|
+
return escapeHtml(s);
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/editor-web/view/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-xml.d.ts","sourceRoot":"","sources":["../../../src/export/docx/document-xml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAkBzD"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { XmlWriter } from "../xml/writer.js";
|
|
2
|
+
import { umToEmu } from "../layout/units.js";
|
|
3
|
+
export function buildDocument(doc) {
|
|
4
|
+
const w = new XmlWriter().declaration();
|
|
5
|
+
w.open("w:document", {
|
|
6
|
+
"xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
|
|
7
|
+
"xmlns:r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
|
|
8
|
+
"xmlns:wp": "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
|
|
9
|
+
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
|
|
10
|
+
"xmlns:pic": "http://schemas.openxmlformats.org/drawingml/2006/picture",
|
|
11
|
+
});
|
|
12
|
+
w.open("w:body");
|
|
13
|
+
for (const block of doc.root.children)
|
|
14
|
+
writeBlock(w, block, doc);
|
|
15
|
+
// section props
|
|
16
|
+
w.open("w:sectPr");
|
|
17
|
+
w.selfClose("w:pgSz", { "w:w": "11906", "w:h": "16838" }); // A4 in twips
|
|
18
|
+
w.selfClose("w:pgMar", { "w:top": "1134", "w:right": "1134", "w:bottom": "1134", "w:left": "1134" });
|
|
19
|
+
w.close();
|
|
20
|
+
w.close().close();
|
|
21
|
+
return w.toString();
|
|
22
|
+
}
|
|
23
|
+
function writeBlock(w, block, doc) {
|
|
24
|
+
switch (block.type) {
|
|
25
|
+
case "paragraph": {
|
|
26
|
+
w.open("w:p");
|
|
27
|
+
writeParagraphProps(w, block);
|
|
28
|
+
for (const inl of block.children ?? [])
|
|
29
|
+
writeInline(w, inl, doc);
|
|
30
|
+
// ensure at least one run if empty
|
|
31
|
+
if (!block.children || block.children.length === 0) {
|
|
32
|
+
w.open("w:r").open("w:t").text("").close().close();
|
|
33
|
+
}
|
|
34
|
+
w.close();
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
case "heading": {
|
|
38
|
+
const level = block.level ?? 1;
|
|
39
|
+
w.open("w:p");
|
|
40
|
+
w.open("w:pPr").open("w:pStyle", { "w:val": `Heading${level}` }).close().close();
|
|
41
|
+
for (const inl of block.children ?? [])
|
|
42
|
+
writeInline(w, inl, doc);
|
|
43
|
+
w.close();
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case "quote": {
|
|
47
|
+
w.open("w:p");
|
|
48
|
+
w.open("w:pPr").open("w:pStyle", { "w:val": "Quote" }).close().close();
|
|
49
|
+
for (const inl of block.children ?? [])
|
|
50
|
+
writeInline(w, inl, doc);
|
|
51
|
+
w.close();
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case "list": {
|
|
55
|
+
for (const item of block.items ?? []) {
|
|
56
|
+
w.open("w:p");
|
|
57
|
+
w.open("w:pPr");
|
|
58
|
+
// simple list styling via numPr placeholder
|
|
59
|
+
w.open("w:numPr").selfClose("w:ilvl", { "w:val": "0" }).selfClose("w:numId", { "w:val": block.kind === "ordered" ? "1" : "2" }).close();
|
|
60
|
+
w.close();
|
|
61
|
+
const text = item.content?.map((c) => c.text ?? c.source ?? "").join("") ?? "";
|
|
62
|
+
writeInline(w, { type: "text", id: `${item.id}_t`, text }, doc);
|
|
63
|
+
w.close();
|
|
64
|
+
if (item.nested)
|
|
65
|
+
writeBlock(w, item.nested, doc);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case "table": {
|
|
70
|
+
w.open("w:tbl");
|
|
71
|
+
w.open("w:tblPr").selfClose("w:tblW", { "w:w": "0", "w:type": "auto" }).close();
|
|
72
|
+
// grid
|
|
73
|
+
w.open("w:tblGrid");
|
|
74
|
+
for (const _col of block.columns ?? [])
|
|
75
|
+
w.selfClose("w:gridCol", { "w:w": "3000" });
|
|
76
|
+
w.close();
|
|
77
|
+
for (const row of block.rows ?? []) {
|
|
78
|
+
w.open("w:tr");
|
|
79
|
+
for (const cell of row.cells ?? []) {
|
|
80
|
+
w.open("w:tc");
|
|
81
|
+
w.open("w:tcPr");
|
|
82
|
+
if (cell.colSpan > 1)
|
|
83
|
+
w.selfClose("w:gridSpan", { "w:val": String(cell.colSpan) });
|
|
84
|
+
if (cell.rowSpan > 1)
|
|
85
|
+
w.selfClose("w:vMerge", { "w:val": "restart" });
|
|
86
|
+
w.close();
|
|
87
|
+
for (const b of cell.blocks ?? [])
|
|
88
|
+
writeBlock(w, b, doc);
|
|
89
|
+
// ensure cell has at least one paragraph
|
|
90
|
+
if (!cell.blocks || cell.blocks.length === 0)
|
|
91
|
+
w.open("w:p").close();
|
|
92
|
+
w.close();
|
|
93
|
+
}
|
|
94
|
+
w.close();
|
|
95
|
+
}
|
|
96
|
+
w.close();
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case "columns": {
|
|
100
|
+
w.open("w:tbl");
|
|
101
|
+
w.open("w:tblPr").selfClose("w:tblW", { "w:w": "0", "w:type": "auto" }).close();
|
|
102
|
+
w.open("w:tblGrid");
|
|
103
|
+
for (const _col of block.columns ?? [])
|
|
104
|
+
w.selfClose("w:gridCol", { "w:w": "4500" });
|
|
105
|
+
w.close();
|
|
106
|
+
w.open("w:tr");
|
|
107
|
+
for (const col of block.columns ?? []) {
|
|
108
|
+
w.open("w:tc");
|
|
109
|
+
w.open("w:tcPr").close();
|
|
110
|
+
for (const b of col.blocks ?? [])
|
|
111
|
+
writeBlock(w, b, doc);
|
|
112
|
+
if (!col.blocks || col.blocks.length === 0)
|
|
113
|
+
w.open("w:p").close();
|
|
114
|
+
w.close();
|
|
115
|
+
}
|
|
116
|
+
w.close();
|
|
117
|
+
w.close();
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
case "image": {
|
|
121
|
+
const asset = doc.assets[block.assetId];
|
|
122
|
+
if (!asset) {
|
|
123
|
+
w.open("w:p").open("w:r").open("w:t").text(`[missing image ${block.assetId}]`).close().close().close();
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
w.open("w:p");
|
|
127
|
+
writeParagraphProps(w, block);
|
|
128
|
+
w.open("w:r").open("w:drawing");
|
|
129
|
+
const widthEmu = umToEmu(block.widthUm ?? 150000);
|
|
130
|
+
const heightEmu = umToEmu(block.heightUm ?? 90000);
|
|
131
|
+
w.open("wp:inline", { distT: "0", distB: "0", distL: "0", distR: "0" });
|
|
132
|
+
w.selfClose("wp:extent", { cx: String(widthEmu), cy: String(heightEmu) });
|
|
133
|
+
w.selfClose("wp:docPr", { id: "1", name: block.id, descr: asset.alt ?? "" });
|
|
134
|
+
w.open("a:graphic").open("a:graphicData", { uri: "http://schemas.openxmlformats.org/drawingml/2006/picture" });
|
|
135
|
+
w.open("pic:pic");
|
|
136
|
+
w.open("pic:nvPicPr").selfClose("pic:cNvPr", { id: "0", name: asset.alt ?? "" }).selfClose("pic:cNvPicPr").close();
|
|
137
|
+
w.open("pic:blipFill").selfClose("a:blip", { "r:embed": `rId_${block.assetId}` }).open("a:stretch").selfClose("a:fillRect").close().close();
|
|
138
|
+
w.open("pic:spPr").selfClose("a:xfrm").open("a:prstGeom", { prst: "rect" }).selfClose("a:avLst").close().close();
|
|
139
|
+
// close pic:pic, a:graphicData, a:graphic, wp:inline, w:drawing, w:r, w:p = 7 closes
|
|
140
|
+
w.close().close().close().close().close().close().close();
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
case "page-break": {
|
|
144
|
+
w.open("w:p").open("w:r").selfClose("w:br", { "w:type": "page" }).close().close();
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
case "horizontal-rule": {
|
|
148
|
+
w.open("w:p").open("w:pPr").open("w:pBdr").open("w:bottom", { "w:val": "single", "w:sz": "6", "w:space": "1", "w:color": "999999" }).close().close().close();
|
|
149
|
+
w.open("w:r").open("w:t").text("").close().close().close();
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
case "equation-block": {
|
|
153
|
+
// DOCX OfficeMath fallback: render LaTeX as italic text inside centered paragraph
|
|
154
|
+
// Future: emit <m:oMath> for native equation support
|
|
155
|
+
w.open("w:p");
|
|
156
|
+
w.open("w:pPr").selfClose("w:jc", { "w:val": "center" }).close();
|
|
157
|
+
w.open("w:r");
|
|
158
|
+
w.open("w:rPr").selfClose("w:i").close();
|
|
159
|
+
w.open("w:t", { "xml:space": "preserve" }).text(`$${block.latex}$`).close().close().close();
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
default:
|
|
163
|
+
w.open("w:p").open("w:r").open("w:t").text(`[${block.type}]`).close().close().close();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function writeParagraphProps(w, block) {
|
|
167
|
+
const align = block.align;
|
|
168
|
+
if (align) {
|
|
169
|
+
w.open("w:pPr");
|
|
170
|
+
const map = { left: "left", center: "center", right: "right", justify: "both" };
|
|
171
|
+
w.selfClose("w:jc", { "w:val": map[align] ?? align });
|
|
172
|
+
w.close();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function writeInline(w, inl, _doc) {
|
|
176
|
+
if (inl.type === "text") {
|
|
177
|
+
w.open("w:r");
|
|
178
|
+
const marks = inl.marks;
|
|
179
|
+
if (marks && Object.keys(marks).length) {
|
|
180
|
+
w.open("w:rPr");
|
|
181
|
+
if (marks.bold)
|
|
182
|
+
w.selfClose("w:b");
|
|
183
|
+
if (marks.italic)
|
|
184
|
+
w.selfClose("w:i");
|
|
185
|
+
if (marks.underline)
|
|
186
|
+
w.selfClose("w:u", { "w:val": "single" });
|
|
187
|
+
if (marks.strike)
|
|
188
|
+
w.selfClose("w:strike");
|
|
189
|
+
if (marks.code)
|
|
190
|
+
w.selfClose("w:rStyle", { "w:val": "Code" });
|
|
191
|
+
if (marks.color)
|
|
192
|
+
w.open("w:color", { "w:val": String(marks.color).replace("#", "").slice(0, 6) }).close();
|
|
193
|
+
w.close();
|
|
194
|
+
}
|
|
195
|
+
w.open("w:t", { "xml:space": "preserve" }).text(inl.text).close().close();
|
|
196
|
+
}
|
|
197
|
+
else if (inl.type === "variable") {
|
|
198
|
+
w.open("w:r").open("w:t", { "xml:space": "preserve" }).text(inl.source).close().close();
|
|
199
|
+
}
|
|
200
|
+
else if (inl.type === "link") {
|
|
201
|
+
w.open("w:hyperlink", { "r:id": `rId_link_${inl.id}`, "w:history": "1" });
|
|
202
|
+
for (const c of inl.children ?? [])
|
|
203
|
+
writeInline(w, c, _doc);
|
|
204
|
+
w.close();
|
|
205
|
+
}
|
|
206
|
+
else if (inl.type === "hard-break") {
|
|
207
|
+
w.open("w:r").selfClose("w:br").close();
|
|
208
|
+
}
|
|
209
|
+
else if (inl.type === "inline-image") {
|
|
210
|
+
w.open("w:r").open("w:t").text(`[image ${inl.assetId}]`).close().close();
|
|
211
|
+
}
|
|
212
|
+
else if (inl.type === "equation") {
|
|
213
|
+
w.open("w:r");
|
|
214
|
+
w.open("w:rPr").selfClose("w:i").close();
|
|
215
|
+
w.open("w:t", { "xml:space": "preserve" }).text(`$${inl.latex}$`).close().close();
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=document-xml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-xml.js","sourceRoot":"","sources":["../../../src/export/docx/document-xml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PortableDocument } from "../../core/model/types.js";
|
|
2
|
+
export declare function buildContentTypes(doc: PortableDocument): string;
|
|
3
|
+
export declare function buildRels(): string;
|
|
4
|
+
export declare function buildDocRels(doc: PortableDocument): string;
|
|
5
|
+
export declare function buildStyles(): string;
|
|
6
|
+
export declare function buildSettings(): string;
|
|
7
|
+
export declare function buildCoreProps(doc: PortableDocument): string;
|
|
8
|
+
export declare function buildAppProps(): string;
|
|
9
|
+
//# sourceMappingURL=package-parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-parts.d.ts","sourceRoot":"","sources":["../../../src/export/docx/package-parts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAsB7D;AAEH,wBAAgB,SAAS,IAAI,MAAM,CAYhC;AAEH,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAmBxD;AAEH,wBAAgB,WAAW,IAAI,MAAM,CAQlC;AAEH,wBAAgB,aAAa,IAAI,MAAM,CAIpC;AAEH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAY1D;AAEH,wBAAgB,aAAa,IAAI,MAAM,CAKpC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { XmlWriter } from "../xml/writer.js";
|
|
2
|
+
export function buildContentTypes(doc) {
|
|
3
|
+
const w = new XmlWriter().declaration();
|
|
4
|
+
w.open("Types", { xmlns: "http://schemas.openxmlformats.org/package/2006/content-types" });
|
|
5
|
+
w.selfClose("Default", { Extension: "rels", ContentType: "application/vnd.openxmlformats-package.relationships+xml" });
|
|
6
|
+
w.selfClose("Default", { Extension: "xml", ContentType: "application/xml" });
|
|
7
|
+
w.selfClose("Override", { PartName: "/word/document.xml", ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" });
|
|
8
|
+
w.selfClose("Override", { PartName: "/word/styles.xml", ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" });
|
|
9
|
+
w.selfClose("Override", { PartName: "/word/settings.xml", ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" });
|
|
10
|
+
w.selfClose("Override", { PartName: "/docProps/core.xml", ContentType: "application/vnd.openxmlformats-package.core-properties+xml" });
|
|
11
|
+
w.selfClose("Override", { PartName: "/docProps/app.xml", ContentType: "application/vnd.openxmlformats-officedocument.extended-properties+xml" });
|
|
12
|
+
const exts = new Set();
|
|
13
|
+
for (const a of Object.values(doc.assets ?? {})) {
|
|
14
|
+
const fallback = a.mediaType === "image/svg+xml" || a.mediaType === "image/webp";
|
|
15
|
+
const ext = fallback ? "png" : a.mediaType.split("/")[1].replace("jpeg", "jpg").replace("svg+xml", "svg");
|
|
16
|
+
if (!exts.has(ext)) {
|
|
17
|
+
exts.add(ext);
|
|
18
|
+
const ct = fallback ? "image/png" : (a.mediaType === "image/svg+xml" ? "image/svg+xml" : `image/${ext}`);
|
|
19
|
+
w.selfClose("Default", { Extension: ext, ContentType: ct });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
w.close();
|
|
23
|
+
return w.toString();
|
|
24
|
+
}
|
|
25
|
+
export function buildRels() {
|
|
26
|
+
const w = new XmlWriter().declaration();
|
|
27
|
+
w.open("Relationships", { xmlns: "http://schemas.openxmlformats.org/package/2006/relationships" });
|
|
28
|
+
w.selfClose("Relationship", {
|
|
29
|
+
Id: "rId1",
|
|
30
|
+
Type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
|
|
31
|
+
Target: "word/document.xml",
|
|
32
|
+
});
|
|
33
|
+
w.selfClose("Relationship", { Id: "rId2", Type: "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties", Target: "docProps/core.xml" });
|
|
34
|
+
w.selfClose("Relationship", { Id: "rId3", Type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties", Target: "docProps/app.xml" });
|
|
35
|
+
w.close();
|
|
36
|
+
return w.toString();
|
|
37
|
+
}
|
|
38
|
+
export function buildDocRels(doc) {
|
|
39
|
+
const w = new XmlWriter().declaration();
|
|
40
|
+
w.open("Relationships", { xmlns: "http://schemas.openxmlformats.org/package/2006/relationships" });
|
|
41
|
+
let id = 1;
|
|
42
|
+
for (const [assetId] of Object.entries(doc.assets ?? {})) {
|
|
43
|
+
const asset = doc.assets[assetId];
|
|
44
|
+
const fallback = asset.mediaType === "image/svg+xml" || asset.mediaType === "image/webp";
|
|
45
|
+
const ext = fallback ? "png" : asset.mediaType.split("/")[1].replace("jpeg", "jpg").replace("svg+xml", "svg");
|
|
46
|
+
w.selfClose("Relationship", {
|
|
47
|
+
Id: `rId_${assetId}`,
|
|
48
|
+
Type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
49
|
+
Target: `media/${assetId}.${ext}`,
|
|
50
|
+
});
|
|
51
|
+
id++;
|
|
52
|
+
}
|
|
53
|
+
// hyperlinks
|
|
54
|
+
// collected via walk? simplified
|
|
55
|
+
w.close();
|
|
56
|
+
return w.toString();
|
|
57
|
+
}
|
|
58
|
+
export function buildStyles() {
|
|
59
|
+
const w = new XmlWriter().declaration();
|
|
60
|
+
w.open("w:styles", { "xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main" });
|
|
61
|
+
for (const name of ["Normal", "Heading1", "Heading2", "Quote"]) {
|
|
62
|
+
w.open("w:style", { "w:type": "paragraph", "w:styleId": name }).open("w:name", { "w:val": name }).close().close();
|
|
63
|
+
}
|
|
64
|
+
w.close();
|
|
65
|
+
return w.toString();
|
|
66
|
+
}
|
|
67
|
+
export function buildSettings() {
|
|
68
|
+
const w = new XmlWriter().declaration();
|
|
69
|
+
w.open("w:settings", { "xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main" }).close();
|
|
70
|
+
return w.toString();
|
|
71
|
+
}
|
|
72
|
+
export function buildCoreProps(doc) {
|
|
73
|
+
const w = new XmlWriter().declaration();
|
|
74
|
+
w.open("cp:coreProperties", {
|
|
75
|
+
"xmlns:cp": "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
|
|
76
|
+
"xmlns:dc": "http://purl.org/dc/elements/1.1/",
|
|
77
|
+
"xmlns:dcterms": "http://purl.org/dc/terms/",
|
|
78
|
+
});
|
|
79
|
+
w.open("dc:title").text(doc.metadata?.title ?? "Untitled").close();
|
|
80
|
+
w.open("dcterms:created", { "xsi:type": "dcterms:W3CDTF" }).text(doc.createdAt).close();
|
|
81
|
+
w.open("dcterms:modified", { "xsi:type": "dcterms:W3CDTF" }).text(doc.updatedAt).close();
|
|
82
|
+
w.close();
|
|
83
|
+
return w.toString();
|
|
84
|
+
}
|
|
85
|
+
export function buildAppProps() {
|
|
86
|
+
const w = new XmlWriter().declaration();
|
|
87
|
+
w.open("Properties", { xmlns: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" });
|
|
88
|
+
w.open("Application").text("velo-text").close().close();
|
|
89
|
+
return w.toString();
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=package-parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-parts.js","sourceRoot":"","sources":["../../../src/export/docx/package-parts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PortableDocument, BinarySink, Clock } from "../../core/model/types.js";
|
|
2
|
+
interface ResolvedAssetStub {
|
|
3
|
+
id: string;
|
|
4
|
+
mediaType: string;
|
|
5
|
+
data?: Uint8Array;
|
|
6
|
+
}
|
|
7
|
+
export declare class DocxWriter {
|
|
8
|
+
private readonly clock;
|
|
9
|
+
constructor(opts?: {
|
|
10
|
+
clock?: Clock;
|
|
11
|
+
});
|
|
12
|
+
write(document: PortableDocument, assets: Record<string, ResolvedAssetStub> | null, sink: BinarySink): Promise<{
|
|
13
|
+
byteLength: number;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../src/export/docx/writer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAcrF,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAClB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAO;IAIlC,KAAK,CACT,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAChD,IAAI,EAAE,UAAU,GACf,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAiCnC"}
|