@stll/folio-core 0.0.1-placeholder.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE.md +29 -0
- package/README.md +41 -0
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/ai-edits/apply.d.ts +35 -0
- package/dist/ai-edits/apply.js +683 -0
- package/dist/ai-edits/clean-text.d.ts +28 -0
- package/dist/ai-edits/clean-text.js +23 -0
- package/dist/ai-edits/headless.d.ts +225 -0
- package/dist/ai-edits/headless.js +513 -0
- package/dist/ai-edits/index.d.ts +6 -0
- package/dist/ai-edits/index.js +5 -0
- package/dist/ai-edits/inline-emphasis.d.ts +38 -0
- package/dist/ai-edits/inline-emphasis.js +78 -0
- package/dist/ai-edits/snapshot.d.ts +9 -0
- package/dist/ai-edits/snapshot.js +195 -0
- package/dist/ai-edits/types.d.ts +156 -0
- package/dist/ai-edits/types.js +0 -0
- package/dist/ai-edits/word-diff.d.ts +20 -0
- package/dist/ai-edits/word-diff.js +77 -0
- package/dist/ai-suggestions/apply.d.ts +17 -0
- package/dist/ai-suggestions/apply.js +64 -0
- package/dist/ai-suggestions/conflict.d.ts +22 -0
- package/dist/ai-suggestions/conflict.js +67 -0
- package/dist/ai-suggestions/text-positions.d.ts +21 -0
- package/dist/ai-suggestions/text-positions.js +48 -0
- package/dist/ai-suggestions/types.d.ts +199 -0
- package/dist/ai-suggestions/types.js +59 -0
- package/dist/content-controls/errors.d.ts +52 -0
- package/dist/content-controls/errors.js +36 -0
- package/dist/content-controls/findContentControls.d.ts +55 -0
- package/dist/content-controls/findContentControls.js +75 -0
- package/dist/content-controls/index.d.ts +4 -0
- package/dist/content-controls/index.js +4 -0
- package/dist/content-controls/mutateContentControls.d.ts +51 -0
- package/dist/content-controls/mutateContentControls.js +377 -0
- package/dist/controller/folioEditor.d.ts +21 -0
- package/dist/controller/folioEditor.js +29 -0
- package/dist/controller/folioEditorEvents.d.ts +23 -0
- package/dist/controller/folioEditorEvents.js +24 -0
- package/dist/controller/hiddenEditorApi.d.ts +35 -0
- package/dist/controller/hiddenEditorApi.js +112 -0
- package/dist/controller/hiddenEditorManager.d.ts +93 -0
- package/dist/controller/hiddenEditorManager.js +308 -0
- package/dist/controller/layoutPipeline.d.ts +63 -0
- package/dist/controller/layoutPipeline.js +406 -0
- package/dist/controller/layoutScheduler.d.ts +41 -0
- package/dist/controller/layoutScheduler.js +59 -0
- package/dist/controller/layoutSession.d.ts +24 -0
- package/dist/controller/layoutSession.js +13 -0
- package/dist/docx/blockContentParser.d.ts +13 -0
- package/dist/docx/blockContentParser.js +289 -0
- package/dist/docx/bookmarkParser.d.ts +178 -0
- package/dist/docx/bookmarkParser.js +246 -0
- package/dist/docx/bookmarkPlacement.d.ts +10 -0
- package/dist/docx/bookmarkPlacement.js +50 -0
- package/dist/docx/bulletMarkers.d.ts +4 -0
- package/dist/docx/bulletMarkers.js +42 -0
- package/dist/docx/commentParser.d.ts +34 -0
- package/dist/docx/commentParser.js +127 -0
- package/dist/docx/commentReferenceNormalization.d.ts +25 -0
- package/dist/docx/commentReferenceNormalization.js +97 -0
- package/dist/docx/commentReplyMarkers.d.ts +20 -0
- package/dist/docx/commentReplyMarkers.js +123 -0
- package/dist/docx/compatibility.d.ts +12 -0
- package/dist/docx/compatibility.js +77 -0
- package/dist/docx/documentParser.d.ts +65 -0
- package/dist/docx/documentParser.js +209 -0
- package/dist/docx/drawingUtils.d.ts +56 -0
- package/dist/docx/drawingUtils.js +305 -0
- package/dist/docx/fieldParser.d.ts +228 -0
- package/dist/docx/fieldParser.js +559 -0
- package/dist/docx/footnoteParser.d.ts +109 -0
- package/dist/docx/footnoteParser.js +270 -0
- package/dist/docx/headerFooterParser.d.ts +119 -0
- package/dist/docx/headerFooterParser.js +266 -0
- package/dist/docx/headerFooterRefParser.d.ts +22 -0
- package/dist/docx/headerFooterRefParser.js +52 -0
- package/dist/docx/headerFooterReferenceNormalization.d.ts +19 -0
- package/dist/docx/headerFooterReferenceNormalization.js +64 -0
- package/dist/docx/hyperlinkParser.d.ts +108 -0
- package/dist/docx/hyperlinkParser.js +230 -0
- package/dist/docx/imageParser.d.ts +93 -0
- package/dist/docx/imageParser.js +522 -0
- package/dist/docx/mathToMathml.d.ts +15 -0
- package/dist/docx/mathToMathml.js +357 -0
- package/dist/docx/modelValidation.d.ts +13 -0
- package/dist/docx/modelValidation.js +21 -0
- package/dist/docx/normalizeBaseDirection.d.ts +12 -0
- package/dist/docx/normalizeBaseDirection.js +81 -0
- package/dist/docx/notePropertiesParser.d.ts +16 -0
- package/dist/docx/notePropertiesParser.js +99 -0
- package/dist/docx/numberingParser.d.ts +86 -0
- package/dist/docx/numberingParser.js +735 -0
- package/dist/docx/numberingReferenceNormalization.d.ts +25 -0
- package/dist/docx/numberingReferenceNormalization.js +22 -0
- package/dist/docx/paragraphParser.d.ts +86 -0
- package/dist/docx/paragraphParser.js +1132 -0
- package/dist/docx/paragraphTraversal.d.ts +19 -0
- package/dist/docx/paragraphTraversal.js +76 -0
- package/dist/docx/parser.d.ts +67 -0
- package/dist/docx/parser.js +391 -0
- package/dist/docx/parserEnums.d.ts +45 -0
- package/dist/docx/parserEnums.js +70 -0
- package/dist/docx/relsParser.d.ts +160 -0
- package/dist/docx/relsParser.js +235 -0
- package/dist/docx/replyToComment.d.ts +29 -0
- package/dist/docx/replyToComment.js +73 -0
- package/dist/docx/rezip.d.ts +166 -0
- package/dist/docx/rezip.js +1194 -0
- package/dist/docx/runConsolidator.d.ts +57 -0
- package/dist/docx/runConsolidator.js +224 -0
- package/dist/docx/runParser.d.ts +78 -0
- package/dist/docx/runParser.js +661 -0
- package/dist/docx/sdtProperties.d.ts +15 -0
- package/dist/docx/sdtProperties.js +290 -0
- package/dist/docx/sdtPropertiesPatch.d.ts +16 -0
- package/dist/docx/sdtPropertiesPatch.js +144 -0
- package/dist/docx/sectionParser.d.ts +95 -0
- package/dist/docx/sectionParser.js +534 -0
- package/dist/docx/selectiveSave.d.ts +25 -0
- package/dist/docx/selectiveSave.js +247 -0
- package/dist/docx/selectiveSaveFlags.d.ts +33 -0
- package/dist/docx/selectiveSaveFlags.js +11 -0
- package/dist/docx/selectiveSaveTripwire.d.ts +33 -0
- package/dist/docx/selectiveSaveTripwire.js +79 -0
- package/dist/docx/selectiveXmlPatch.d.ts +103 -0
- package/dist/docx/selectiveXmlPatch.js +493 -0
- package/dist/docx/serializer/blockSdtSerializer.d.ts +6 -0
- package/dist/docx/serializer/blockSdtSerializer.js +88 -0
- package/dist/docx/serializer/borderSerializer.d.ts +25 -0
- package/dist/docx/serializer/borderSerializer.js +44 -0
- package/dist/docx/serializer/commentSerializer.d.ts +31 -0
- package/dist/docx/serializer/commentSerializer.js +184 -0
- package/dist/docx/serializer/documentSerializer.d.ts +65 -0
- package/dist/docx/serializer/documentSerializer.js +199 -0
- package/dist/docx/serializer/headerFooterSerializer.d.ts +12 -0
- package/dist/docx/serializer/headerFooterSerializer.js +84 -0
- package/dist/docx/serializer/noteSerializer.d.ts +19 -0
- package/dist/docx/serializer/noteSerializer.js +70 -0
- package/dist/docx/serializer/numberingSerializer.d.ts +12 -0
- package/dist/docx/serializer/numberingSerializer.js +93 -0
- package/dist/docx/serializer/paragraphSerializer.d.ts +48 -0
- package/dist/docx/serializer/paragraphSerializer.js +559 -0
- package/dist/docx/serializer/runSerializer.d.ts +56 -0
- package/dist/docx/serializer/runSerializer.js +621 -0
- package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +6 -0
- package/dist/docx/serializer/sectionPropertiesSerializer.js +187 -0
- package/dist/docx/serializer/tableSerializer.d.ts +79 -0
- package/dist/docx/serializer/tableSerializer.js +422 -0
- package/dist/docx/serializer/xmlUtils.d.ts +20 -0
- package/dist/docx/serializer/xmlUtils.js +25 -0
- package/dist/docx/settingsParser.d.ts +8 -0
- package/dist/docx/settingsParser.js +36 -0
- package/dist/docx/shapeParser.d.ts +20 -0
- package/dist/docx/shapeParser.js +272 -0
- package/dist/docx/styleParser.d.ts +50 -0
- package/dist/docx/styleParser.js +905 -0
- package/dist/docx/tableParser.d.ts +202 -0
- package/dist/docx/tableParser.js +811 -0
- package/dist/docx/textBoxParser.d.ts +117 -0
- package/dist/docx/textBoxParser.js +262 -0
- package/dist/docx/themeParser.d.ts +77 -0
- package/dist/docx/themeParser.js +330 -0
- package/dist/docx/trackedMoveRangeNormalization.d.ts +22 -0
- package/dist/docx/trackedMoveRangeNormalization.js +100 -0
- package/dist/docx/unzip.d.ts +118 -0
- package/dist/docx/unzip.js +383 -0
- package/dist/docx/vmlImageParser.d.ts +16 -0
- package/dist/docx/vmlImageParser.js +100 -0
- package/dist/docx/watermarkParser.d.ts +45 -0
- package/dist/docx/watermarkParser.js +348 -0
- package/dist/docx/wrapTypes.d.ts +29 -0
- package/dist/docx/wrapTypes.js +48 -0
- package/dist/docx/xmlParser.d.ts +297 -0
- package/dist/docx/xmlParser.js +527 -0
- package/dist/fields/bookmarkPages.d.ts +13 -0
- package/dist/fields/bookmarkPages.js +66 -0
- package/dist/fields/bookmarkText.d.ts +16 -0
- package/dist/fields/bookmarkText.js +61 -0
- package/dist/fields/evaluateField.d.ts +23 -0
- package/dist/fields/evaluateField.js +77 -0
- package/dist/fields/fieldContext.d.ts +21 -0
- package/dist/fields/fieldContext.js +0 -0
- package/dist/fields/resolveFieldValues.d.ts +44 -0
- package/dist/fields/resolveFieldValues.js +204 -0
- package/dist/fields/sectionPageCounts.d.ts +11 -0
- package/dist/fields/sectionPageCounts.js +16 -0
- package/dist/fields/seqValues.d.ts +14 -0
- package/dist/fields/seqValues.js +36 -0
- package/dist/fonts/embeddedFontTable.d.ts +42 -0
- package/dist/fonts/embeddedFontTable.js +80 -0
- package/dist/fonts/embeddedFonts.d.ts +46 -0
- package/dist/fonts/embeddedFonts.js +112 -0
- package/dist/fonts/fontDeobfuscation.d.ts +30 -0
- package/dist/fonts/fontDeobfuscation.js +57 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +23 -0
- package/dist/layout-bridge/convert/footnoteLayout.d.ts +57 -0
- package/dist/layout-bridge/convert/footnoteLayout.js +316 -0
- package/dist/layout-bridge/convert/headerFooterLayout.d.ts +74 -0
- package/dist/layout-bridge/convert/headerFooterLayout.js +432 -0
- package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +36 -0
- package/dist/layout-bridge/convert/templatePreviewFlow.js +176 -0
- package/dist/layout-bridge/convert/toFlowBlocks.d.ts +65 -0
- package/dist/layout-bridge/convert/toFlowBlocks.js +1309 -0
- package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +17 -0
- package/dist/layout-bridge/convert/wrapEditorViewAsSurface.js +36 -0
- package/dist/layout-bridge/dom/clickToPositionDom.d.ts +66 -0
- package/dist/layout-bridge/dom/clickToPositionDom.js +304 -0
- package/dist/layout-bridge/dom/findBodyPmSpans.d.ts +7 -0
- package/dist/layout-bridge/dom/findBodyPmSpans.js +17 -0
- package/dist/layout-bridge/dom/findHfPmSpans.d.ts +62 -0
- package/dist/layout-bridge/dom/findHfPmSpans.js +197 -0
- package/dist/layout-bridge/engine/clickToPosition.d.ts +66 -0
- package/dist/layout-bridge/engine/clickToPosition.js +403 -0
- package/dist/layout-bridge/engine/hitTest.d.ts +135 -0
- package/dist/layout-bridge/engine/hitTest.js +375 -0
- package/dist/layout-bridge/engine/measuring/index.d.ts +10 -0
- package/dist/layout-bridge/engine/measuring/index.js +9 -0
- package/dist/layout-bridge/engine/selectionRects.d.ts +59 -0
- package/dist/layout-bridge/engine/selectionRects.js +485 -0
- package/dist/layout-bridge/engine/tableWidthUtils.d.ts +7 -0
- package/dist/layout-bridge/engine/tableWidthUtils.js +25 -0
- package/dist/layout-engine/index.d.ts +44 -0
- package/dist/layout-engine/index.js +691 -0
- package/dist/layout-engine/keep-together.d.ts +43 -0
- package/dist/layout-engine/keep-together.js +98 -0
- package/dist/layout-engine/layoutInstrumentation.d.ts +50 -0
- package/dist/layout-engine/layoutInstrumentation.js +43 -0
- package/dist/layout-engine/lineFlow.d.ts +8 -0
- package/dist/layout-engine/lineFlow.js +17 -0
- package/dist/layout-engine/measure/cache.d.ts +93 -0
- package/dist/layout-engine/measure/cache.js +245 -0
- package/dist/layout-engine/measure/clampFloatingWrapMargins.d.ts +20 -0
- package/dist/layout-engine/measure/clampFloatingWrapMargins.js +29 -0
- package/dist/layout-engine/measure/featureFlags.d.ts +44 -0
- package/dist/layout-engine/measure/featureFlags.js +19 -0
- package/dist/layout-engine/measure/floatingZones.d.ts +89 -0
- package/dist/layout-engine/measure/floatingZones.js +152 -0
- package/dist/layout-engine/measure/font-metrics.worker.d.ts +17 -0
- package/dist/layout-engine/measure/font-metrics.worker.js +104 -0
- package/dist/layout-engine/measure/index.d.ts +9 -0
- package/dist/layout-engine/measure/index.js +8 -0
- package/dist/layout-engine/measure/listMarkerWidth.d.ts +40 -0
- package/dist/layout-engine/measure/listMarkerWidth.js +76 -0
- package/dist/layout-engine/measure/measureBlocks.d.ts +25 -0
- package/dist/layout-engine/measure/measureBlocks.js +450 -0
- package/dist/layout-engine/measure/measureContainer.d.ts +24 -0
- package/dist/layout-engine/measure/measureContainer.js +280 -0
- package/dist/layout-engine/measure/measureHelpers.d.ts +82 -0
- package/dist/layout-engine/measure/measureHelpers.js +156 -0
- package/dist/layout-engine/measure/measureParagraph.d.ts +61 -0
- package/dist/layout-engine/measure/measureParagraph.js +724 -0
- package/dist/layout-engine/measure/measureProvider.d.ts +23 -0
- package/dist/layout-engine/measure/measureProvider.js +35 -0
- package/dist/layout-engine/measure/measureTypes.d.ts +61 -0
- package/dist/layout-engine/measure/measureTypes.js +0 -0
- package/dist/layout-engine/measure/measureWorker.d.ts +54 -0
- package/dist/layout-engine/measure/measureWorker.js +249 -0
- package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +88 -0
- package/dist/layout-engine/measure/measureWorkerProtocol.js +20 -0
- package/dist/layout-engine/measure/tableCellFloating.d.ts +26 -0
- package/dist/layout-engine/measure/tableCellFloating.js +99 -0
- package/dist/layout-engine/paginator.d.ts +84 -0
- package/dist/layout-engine/paginator.js +348 -0
- package/dist/layout-engine/paragraphFragmentRange.d.ts +9 -0
- package/dist/layout-engine/paragraphFragmentRange.js +40 -0
- package/dist/layout-engine/section-breaks.d.ts +78 -0
- package/dist/layout-engine/section-breaks.js +182 -0
- package/dist/layout-engine/tableRowBreak.d.ts +23 -0
- package/dist/layout-engine/tableRowBreak.js +147 -0
- package/dist/layout-engine/textBoxFlow.d.ts +50 -0
- package/dist/layout-engine/textBoxFlow.js +160 -0
- package/dist/layout-engine/types.d.ts +1031 -0
- package/dist/layout-engine/types.js +100 -0
- package/dist/layout-painter/documentColors.d.ts +4 -0
- package/dist/layout-painter/documentColors.js +40 -0
- package/dist/layout-painter/index.d.ts +110 -0
- package/dist/layout-painter/index.js +182 -0
- package/dist/layout-painter/registry/modules/image.d.ts +6 -0
- package/dist/layout-painter/registry/modules/image.js +17 -0
- package/dist/layout-painter/registry/modules/paragraph.d.ts +6 -0
- package/dist/layout-painter/registry/modules/paragraph.js +18 -0
- package/dist/layout-painter/registry/modules/table.d.ts +6 -0
- package/dist/layout-painter/registry/modules/table.js +16 -0
- package/dist/layout-painter/registry/modules/textBox.d.ts +6 -0
- package/dist/layout-painter/registry/modules/textBox.js +13 -0
- package/dist/layout-painter/registry/modules.d.ts +6 -0
- package/dist/layout-painter/registry/modules.js +26 -0
- package/dist/layout-painter/registry/registry.d.ts +24 -0
- package/dist/layout-painter/registry/registry.js +53 -0
- package/dist/layout-painter/registry/types.d.ts +61 -0
- package/dist/layout-painter/registry/types.js +0 -0
- package/dist/layout-painter/renderFragment.d.ts +32 -0
- package/dist/layout-painter/renderFragment.js +114 -0
- package/dist/layout-painter/renderImage.d.ts +88 -0
- package/dist/layout-painter/renderImage.js +130 -0
- package/dist/layout-painter/renderPage.d.ts +264 -0
- package/dist/layout-painter/renderPage.js +1795 -0
- package/dist/layout-painter/renderParagraph.d.ts +93 -0
- package/dist/layout-painter/renderParagraph.js +1300 -0
- package/dist/layout-painter/renderTable.d.ts +36 -0
- package/dist/layout-painter/renderTable.js +432 -0
- package/dist/layout-painter/renderTextBox.d.ts +22 -0
- package/dist/layout-painter/renderTextBox.js +67 -0
- package/dist/layout-painter/renderUtils.d.ts +42 -0
- package/dist/layout-painter/renderUtils.js +30 -0
- package/dist/layout-painter/renderWatermark.d.ts +16 -0
- package/dist/layout-painter/renderWatermark.js +61 -0
- package/dist/layout-painter/sdtBoundary.d.ts +6 -0
- package/dist/layout-painter/sdtBoundary.js +28 -0
- package/dist/managers/ContextMenuManager.d.ts +28 -0
- package/dist/managers/ContextMenuManager.js +48 -0
- package/dist/managers/DocumentLoaderManager.d.ts +47 -0
- package/dist/managers/DocumentLoaderManager.js +69 -0
- package/dist/managers/EditorModeManager.d.ts +28 -0
- package/dist/managers/EditorModeManager.js +50 -0
- package/dist/managers/ErrorManager.d.ts +26 -0
- package/dist/managers/ErrorManager.js +85 -0
- package/dist/managers/FindReplaceManager.d.ts +54 -0
- package/dist/managers/FindReplaceManager.js +104 -0
- package/dist/managers/HistoryManager.d.ts +92 -0
- package/dist/managers/HistoryManager.js +193 -0
- package/dist/managers/Subscribable.d.ts +34 -0
- package/dist/managers/Subscribable.js +46 -0
- package/dist/managers/TableSelectionManager.d.ts +74 -0
- package/dist/managers/TableSelectionManager.js +225 -0
- package/dist/managers/editorShortcuts.d.ts +42 -0
- package/dist/managers/editorShortcuts.js +60 -0
- package/dist/managers/types.d.ts +41 -0
- package/dist/managers/types.js +0 -0
- package/dist/markdown/annotations.d.ts +14 -0
- package/dist/markdown/annotations.js +42 -0
- package/dist/markdown/escape.d.ts +36 -0
- package/dist/markdown/escape.js +59 -0
- package/dist/markdown/fromMarkdown.d.ts +11 -0
- package/dist/markdown/fromMarkdown.js +223 -0
- package/dist/markdown/headings.d.ts +13 -0
- package/dist/markdown/headings.js +20 -0
- package/dist/markdown/images.d.ts +13 -0
- package/dist/markdown/images.js +63 -0
- package/dist/markdown/index.d.ts +18 -0
- package/dist/markdown/index.js +33 -0
- package/dist/markdown/internals.d.ts +15 -0
- package/dist/markdown/internals.js +35 -0
- package/dist/markdown/renderBlock.d.ts +7 -0
- package/dist/markdown/renderBlock.js +68 -0
- package/dist/markdown/renderParagraph.d.ts +11 -0
- package/dist/markdown/renderParagraph.js +64 -0
- package/dist/markdown/renderRuns.d.ts +11 -0
- package/dist/markdown/renderRuns.js +265 -0
- package/dist/markdown/renderTable.d.ts +8 -0
- package/dist/markdown/renderTable.js +229 -0
- package/dist/markdown/trailers.d.ts +13 -0
- package/dist/markdown/trailers.js +54 -0
- package/dist/markdown/types.d.ts +118 -0
- package/dist/markdown/types.js +0 -0
- package/dist/model.d.ts +13 -0
- package/dist/model.js +4 -0
- package/dist/paged-layout/LayoutSelectionGate.d.ts +80 -0
- package/dist/paged-layout/LayoutSelectionGate.js +131 -0
- package/dist/paged-layout/headerFooterMargins.d.ts +73 -0
- package/dist/paged-layout/headerFooterMargins.js +120 -0
- package/dist/paged-layout/hiddenEditorScroll.d.ts +4 -0
- package/dist/paged-layout/hiddenEditorScroll.js +4 -0
- package/dist/paged-layout/incrementalMeasure.d.ts +33 -0
- package/dist/paged-layout/incrementalMeasure.js +56 -0
- package/dist/paged-layout/rangeProjection.d.ts +51 -0
- package/dist/paged-layout/rangeProjection.js +153 -0
- package/dist/paged-layout/readOnlyEditAttempt.d.ts +5 -0
- package/dist/paged-layout/readOnlyEditAttempt.js +22 -0
- package/dist/paged-layout/scrollNavigation.d.ts +23 -0
- package/dist/paged-layout/scrollNavigation.js +31 -0
- package/dist/paged-layout/scrollPageInfo.d.ts +41 -0
- package/dist/paged-layout/scrollPageInfo.js +34 -0
- package/dist/paged-layout/scrollToPmPosition.d.ts +17 -0
- package/dist/paged-layout/scrollToPmPosition.js +95 -0
- package/dist/paged-layout/sectionBlockWidths.d.ts +35 -0
- package/dist/paged-layout/sectionBlockWidths.js +52 -0
- package/dist/paged-layout/sectionGeometry.d.ts +21 -0
- package/dist/paged-layout/sectionGeometry.js +36 -0
- package/dist/paged-layout/selectionViewportRect.d.ts +29 -0
- package/dist/paged-layout/selectionViewportRect.js +55 -0
- package/dist/paged-layout/tableColumnResize.d.ts +19 -0
- package/dist/paged-layout/tableColumnResize.js +28 -0
- package/dist/paged-layout/tableInsertButtonGeometry.d.ts +15 -0
- package/dist/paged-layout/tableInsertButtonGeometry.js +15 -0
- package/dist/paged-layout/transactionDirtyRange.d.ts +7 -0
- package/dist/paged-layout/transactionDirtyRange.js +27 -0
- package/dist/paged-layout/zoomScrollAnchor.d.ts +40 -0
- package/dist/paged-layout/zoomScrollAnchor.js +25 -0
- package/dist/prosemirror/attrs/index.d.ts +80 -0
- package/dist/prosemirror/attrs/index.js +1218 -0
- package/dist/prosemirror/autospacingBase.d.ts +11 -0
- package/dist/prosemirror/autospacingBase.js +16 -0
- package/dist/prosemirror/commands/comments.d.ts +93 -0
- package/dist/prosemirror/commands/comments.js +435 -0
- package/dist/prosemirror/commands/contentControls.d.ts +45 -0
- package/dist/prosemirror/commands/contentControls.js +294 -0
- package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +15 -0
- package/dist/prosemirror/commands/contentControlsBlockFill.js +19 -0
- package/dist/prosemirror/commands/formatPainter.d.ts +31 -0
- package/dist/prosemirror/commands/formatPainter.js +130 -0
- package/dist/prosemirror/commands/formatting.d.ts +32 -0
- package/dist/prosemirror/commands/formatting.js +45 -0
- package/dist/prosemirror/commands/hyperlink.d.ts +31 -0
- package/dist/prosemirror/commands/hyperlink.js +79 -0
- package/dist/prosemirror/commands/image.d.ts +59 -0
- package/dist/prosemirror/commands/image.js +219 -0
- package/dist/prosemirror/commands/index.d.ts +13 -0
- package/dist/prosemirror/commands/index.js +13 -0
- package/dist/prosemirror/commands/pageBreak.d.ts +10 -0
- package/dist/prosemirror/commands/pageBreak.js +47 -0
- package/dist/prosemirror/commands/paragraph.d.ts +39 -0
- package/dist/prosemirror/commands/paragraph.js +64 -0
- package/dist/prosemirror/commands/pastePlainText.d.ts +39 -0
- package/dist/prosemirror/commands/pastePlainText.js +67 -0
- package/dist/prosemirror/commands/table.d.ts +83 -0
- package/dist/prosemirror/commands/table.js +105 -0
- package/dist/prosemirror/conversion/fromProseDoc.d.ts +27 -0
- package/dist/prosemirror/conversion/fromProseDoc.js +1550 -0
- package/dist/prosemirror/conversion/index.d.ts +4 -0
- package/dist/prosemirror/conversion/index.js +4 -0
- package/dist/prosemirror/conversion/runShadingMark.d.ts +16 -0
- package/dist/prosemirror/conversion/runShadingMark.js +39 -0
- package/dist/prosemirror/conversion/toProseDoc.d.ts +39 -0
- package/dist/prosemirror/conversion/toProseDoc.js +1404 -0
- package/dist/prosemirror/extensions/ExtensionManager.d.ts +43 -0
- package/dist/prosemirror/extensions/ExtensionManager.js +86 -0
- package/dist/prosemirror/extensions/StarterKit.d.ts +16 -0
- package/dist/prosemirror/extensions/StarterKit.js +132 -0
- package/dist/prosemirror/extensions/core/DocExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/core/DocExtension.js +12 -0
- package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/core/HistoryExtension.js +28 -0
- package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +25 -0
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +619 -0
- package/dist/prosemirror/extensions/core/TextExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/core/TextExtension.js +12 -0
- package/dist/prosemirror/extensions/create.d.ts +17 -0
- package/dist/prosemirror/extensions/create.js +129 -0
- package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +23 -0
- package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.js +106 -0
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +8 -0
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +172 -0
- package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +16 -0
- package/dist/prosemirror/extensions/features/BidiShortcutExtension.js +38 -0
- package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +16 -0
- package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.js +21 -0
- package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/features/DropCursorExtension.js +20 -0
- package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +8 -0
- package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +44 -0
- package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +19 -0
- package/dist/prosemirror/extensions/features/GapCursorExtension.js +24 -0
- package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +15 -0
- package/dist/prosemirror/extensions/features/ImageDragExtension.js +66 -0
- package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/features/ImagePasteExtension.js +91 -0
- package/dist/prosemirror/extensions/features/ListExtension.d.ts +14 -0
- package/dist/prosemirror/extensions/features/ListExtension.js +340 -0
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +60 -0
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +35 -0
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +188 -0
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +20 -0
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +34 -0
- package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +20 -0
- package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.js +145 -0
- package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +10 -0
- package/dist/prosemirror/extensions/features/SelectionTrackerExtension.js +17 -0
- package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +31 -0
- package/dist/prosemirror/extensions/features/bidiShortcutController.js +27 -0
- package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +31 -0
- package/dist/prosemirror/extensions/features/pasteCleanup.js +159 -0
- package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/AllCapsExtension.js +24 -0
- package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/BoldExtension.js +41 -0
- package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +14 -0
- package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.js +64 -0
- package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +23 -0
- package/dist/prosemirror/extensions/marks/CharacterStyleExtension.js +47 -0
- package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/marks/CommentExtension.js +38 -0
- package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +55 -0
- package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/FontSizeExtension.js +47 -0
- package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +11 -0
- package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +92 -0
- package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +23 -0
- package/dist/prosemirror/extensions/marks/HiddenTextExtension.js +35 -0
- package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +10 -0
- package/dist/prosemirror/extensions/marks/HighlightExtension.js +115 -0
- package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +146 -0
- package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/ItalicExtension.js +34 -0
- package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/marks/RtlExtension.js +21 -0
- package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +11 -0
- package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.js +75 -0
- package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/marks/RunShadingExtension.js +38 -0
- package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/SmallCapsExtension.js +24 -0
- package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/StrikeExtension.js +33 -0
- package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/SubscriptExtension.js +25 -0
- package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +25 -0
- package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/TextColorExtension.js +50 -0
- package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/marks/TextEffectExtension.js +35 -0
- package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +31 -0
- package/dist/prosemirror/extensions/marks/TextEffectsExtensions.js +134 -0
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +22 -0
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +113 -0
- package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/UnderlineExtension.js +60 -0
- package/dist/prosemirror/extensions/marks/markUtils.d.ts +34 -0
- package/dist/prosemirror/extensions/marks/markUtils.js +233 -0
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +22 -0
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +122 -0
- package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/nodes/FieldExtension.js +87 -0
- package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +38 -0
- package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.js +18 -0
- package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/ImageExtension.js +132 -0
- package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/nodes/MathExtension.js +56 -0
- package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/PageBreakExtension.js +20 -0
- package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/nodes/SdtExtension.js +107 -0
- package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +30 -0
- package/dist/prosemirror/extensions/nodes/ShapeExtension.js +502 -0
- package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/TabExtension.js +27 -0
- package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +34 -0
- package/dist/prosemirror/extensions/nodes/TableExtension.js +1972 -0
- package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +34 -0
- package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +150 -0
- package/dist/prosemirror/extensions/types.d.ts +101 -0
- package/dist/prosemirror/extensions/types.js +10 -0
- package/dist/prosemirror/findReplaceSelection.d.ts +23 -0
- package/dist/prosemirror/findReplaceSelection.js +86 -0
- package/dist/prosemirror/index.d.ts +25 -0
- package/dist/prosemirror/index.js +23 -0
- package/dist/prosemirror/insertOperations.d.ts +12 -0
- package/dist/prosemirror/insertOperations.js +19 -0
- package/dist/prosemirror/paragraphDirection.d.ts +42 -0
- package/dist/prosemirror/paragraphDirection.js +33 -0
- package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +40 -0
- package/dist/prosemirror/plugins/aiCitationDecorations.js +90 -0
- package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +42 -0
- package/dist/prosemirror/plugins/aiSuggestionDecorations.js +135 -0
- package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +60 -0
- package/dist/prosemirror/plugins/anonymizationDecorations.js +120 -0
- package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +123 -0
- package/dist/prosemirror/plugins/autocompleteSuggestion.js +283 -0
- package/dist/prosemirror/plugins/contentControlWidgets.d.ts +56 -0
- package/dist/prosemirror/plugins/contentControlWidgets.js +192 -0
- package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +37 -0
- package/dist/prosemirror/plugins/createDocScanPlugin.js +55 -0
- package/dist/prosemirror/plugins/documentStyles.d.ts +18 -0
- package/dist/prosemirror/plugins/documentStyles.js +46 -0
- package/dist/prosemirror/plugins/index.d.ts +3 -0
- package/dist/prosemirror/plugins/index.js +3 -0
- package/dist/prosemirror/plugins/pmTextScan.d.ts +19 -0
- package/dist/prosemirror/plugins/pmTextScan.js +39 -0
- package/dist/prosemirror/plugins/selectionTracker.d.ts +43 -0
- package/dist/prosemirror/plugins/selectionTracker.js +179 -0
- package/dist/prosemirror/plugins/suggestionMode.d.ts +70 -0
- package/dist/prosemirror/plugins/suggestionMode.js +489 -0
- package/dist/prosemirror/plugins/templateDirectives.d.ts +25 -0
- package/dist/prosemirror/plugins/templateDirectives.js +67 -0
- package/dist/prosemirror/plugins/templatePreviewValues.d.ts +49 -0
- package/dist/prosemirror/plugins/templatePreviewValues.js +117 -0
- package/dist/prosemirror/plugins/templateSlashMenu.d.ts +57 -0
- package/dist/prosemirror/plugins/templateSlashMenu.js +184 -0
- package/dist/prosemirror/schema/index.d.ts +15 -0
- package/dist/prosemirror/schema/index.js +20 -0
- package/dist/prosemirror/schema/marks.d.ts +118 -0
- package/dist/prosemirror/schema/marks.js +0 -0
- package/dist/prosemirror/schema/nodes.d.ts +389 -0
- package/dist/prosemirror/schema/nodes.js +0 -0
- package/dist/prosemirror/selectionState.d.ts +23 -0
- package/dist/prosemirror/selectionState.js +111 -0
- package/dist/prosemirror/styles/index.d.ts +2 -0
- package/dist/prosemirror/styles/index.js +2 -0
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +32 -0
- package/dist/prosemirror/styles/resolvedStyleAttrs.js +108 -0
- package/dist/prosemirror/styles/styleResolver.d.ts +94 -0
- package/dist/prosemirror/styles/styleResolver.js +200 -0
- package/dist/prosemirror/utils/findParagraphByParaId.d.ts +26 -0
- package/dist/prosemirror/utils/findParagraphByParaId.js +37 -0
- package/dist/prosemirror/utils/tabCalculator.d.ts +110 -0
- package/dist/prosemirror/utils/tabCalculator.js +137 -0
- package/dist/prosemirror/validation.d.ts +20 -0
- package/dist/prosemirror/validation.js +177 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.js +6 -0
- package/dist/style-engine/index.d.ts +3 -0
- package/dist/style-engine/index.js +2 -0
- package/dist/style-engine/styleEngine.d.ts +67 -0
- package/dist/style-engine/styleEngine.js +70 -0
- package/dist/types/block-id.d.ts +58 -0
- package/dist/types/block-id.js +61 -0
- package/dist/types/colors.d.ts +2 -0
- package/dist/types/colors.js +0 -0
- package/dist/types/content.d.ts +2 -0
- package/dist/types/content.js +0 -0
- package/dist/types/document.d.ts +7 -0
- package/dist/types/document.js +0 -0
- package/dist/types/documentEnumValues.d.ts +89 -0
- package/dist/types/documentEnumValues.js +693 -0
- package/dist/types/formatting.d.ts +2 -0
- package/dist/types/formatting.js +0 -0
- package/dist/types/index.d.ts +107 -0
- package/dist/types/index.js +0 -0
- package/dist/utils/authorColors.d.ts +16 -0
- package/dist/utils/authorColors.js +30 -0
- package/dist/utils/baseDirection.d.ts +23 -0
- package/dist/utils/baseDirection.js +34 -0
- package/dist/utils/clipboard.d.ts +126 -0
- package/dist/utils/clipboard.js +622 -0
- package/dist/utils/colorResolver.d.ts +158 -0
- package/dist/utils/colorResolver.js +557 -0
- package/dist/utils/createDocument.d.ts +50 -0
- package/dist/utils/createDocument.js +262 -0
- package/dist/utils/documentLoaderBehavior.d.ts +22 -0
- package/dist/utils/documentLoaderBehavior.js +14 -0
- package/dist/utils/docxInput.d.ts +22 -0
- package/dist/utils/docxInput.js +16 -0
- package/dist/utils/domGuards.d.ts +59 -0
- package/dist/utils/domGuards.js +82 -0
- package/dist/utils/fontFamilyMerge.d.ts +7 -0
- package/dist/utils/fontFamilyMerge.js +31 -0
- package/dist/utils/fontLoader.d.ts +50 -0
- package/dist/utils/fontLoader.js +177 -0
- package/dist/utils/fontResolver.d.ts +61 -0
- package/dist/utils/fontResolver.js +651 -0
- package/dist/utils/fontWeights.d.ts +4 -0
- package/dist/utils/fontWeights.js +4 -0
- package/dist/utils/formatToStyle.d.ts +103 -0
- package/dist/utils/formatToStyle.js +289 -0
- package/dist/utils/headerFooter.d.ts +74 -0
- package/dist/utils/headerFooter.js +257 -0
- package/dist/utils/headingCollector.d.ts +22 -0
- package/dist/utils/headingCollector.js +36 -0
- package/dist/utils/hexId.d.ts +33 -0
- package/dist/utils/hexId.js +37 -0
- package/dist/utils/imageValidation.d.ts +5 -0
- package/dist/utils/imageValidation.js +31 -0
- package/dist/utils/paragraphFormattingMerge.d.ts +14 -0
- package/dist/utils/paragraphFormattingMerge.js +68 -0
- package/dist/utils/replaceText.d.ts +17 -0
- package/dist/utils/replaceText.js +161 -0
- package/dist/utils/rotationBoundingBox.d.ts +12 -0
- package/dist/utils/rotationBoundingBox.js +36 -0
- package/dist/utils/scriptSegments.d.ts +36 -0
- package/dist/utils/scriptSegments.js +52 -0
- package/dist/utils/tableOperations.d.ts +87 -0
- package/dist/utils/tableOperations.js +259 -0
- package/dist/utils/textFormattingMerge.d.ts +6 -0
- package/dist/utils/textFormattingMerge.js +31 -0
- package/dist/utils/tiffConverter.d.ts +18 -0
- package/dist/utils/tiffConverter.js +83 -0
- package/dist/utils/units.d.ts +99 -0
- package/dist/utils/units.js +139 -0
- package/dist/utils/urlSecurity.d.ts +7 -0
- package/dist/utils/urlSecurity.js +65 -0
- package/dist/watermark/index.d.ts +39 -0
- package/dist/watermark/index.js +149 -0
- package/package.json +122 -2
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
//#region src/ai-suggestions/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* AI Suggestion Types
|
|
4
|
+
*
|
|
5
|
+
* AI suggestions are external review items, not document changes.
|
|
6
|
+
* They sit in a separate queue, render as non-mutating decorations,
|
|
7
|
+
* and only become document changes when the user accepts them.
|
|
8
|
+
*/
|
|
9
|
+
type AISuggestionSeverity = "typo" | "style" | "substantive";
|
|
10
|
+
type AISuggestionStatus = "pending" | "accepted" | "rejected" | "stale";
|
|
11
|
+
type AISuggestionApplyMode = "direct" | "tracked-changes";
|
|
12
|
+
/**
|
|
13
|
+
* A single AI suggestion sitting in the review queue.
|
|
14
|
+
*
|
|
15
|
+
* The `range` is a ProseMirror position range captured at generation time.
|
|
16
|
+
* The `originalText` plus `contextBefore`/`contextAfter` form the anchor
|
|
17
|
+
* used to detect staleness if the document is edited between generation
|
|
18
|
+
* and apply.
|
|
19
|
+
*/
|
|
20
|
+
type AISuggestion = {
|
|
21
|
+
id: string;
|
|
22
|
+
topic: string;
|
|
23
|
+
severity: AISuggestionSeverity;
|
|
24
|
+
range: {
|
|
25
|
+
from: number;
|
|
26
|
+
to: number;
|
|
27
|
+
};
|
|
28
|
+
originalText: string;
|
|
29
|
+
suggestedText: string;
|
|
30
|
+
contextBefore: string;
|
|
31
|
+
contextAfter: string;
|
|
32
|
+
rationale: string; /** 0..1 model confidence. Optional — not displayed prominently. */
|
|
33
|
+
confidence?: number;
|
|
34
|
+
status: AISuggestionStatus;
|
|
35
|
+
/**
|
|
36
|
+
* Optional display metadata the host may attach to describe the
|
|
37
|
+
* suggestion's payload with badges (e.g., a template-field proposal's
|
|
38
|
+
* value type and whether a person or AI fills it). Folio stays
|
|
39
|
+
* agnostic: `valueKind` is an opaque string the host resolves against
|
|
40
|
+
* its own registry; unknown values simply render no badge.
|
|
41
|
+
*/
|
|
42
|
+
display?: {
|
|
43
|
+
valueKind?: string; /** `personAi`: a person writes a stub and AI adapts it in place. */
|
|
44
|
+
filledBy?: "person" | "ai" | "personAi";
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Conversation mode — intent dial passed from the bar to the
|
|
49
|
+
* generator. The model decides what to do; mode just tells it
|
|
50
|
+
* what kind of response the user wants.
|
|
51
|
+
*/
|
|
52
|
+
type AIChatMode = "ask" | "edit";
|
|
53
|
+
/**
|
|
54
|
+
* Input passed to the host's generate function.
|
|
55
|
+
*/
|
|
56
|
+
type AIGenerateInput = {
|
|
57
|
+
/**
|
|
58
|
+
* Free-form instruction the user typed into the bar (or the prompt
|
|
59
|
+
* text of the preset they picked). Empty string means "general
|
|
60
|
+
* review — surface anything notable".
|
|
61
|
+
*/
|
|
62
|
+
prompt: string;
|
|
63
|
+
/**
|
|
64
|
+
* Conversation mode the user is in.
|
|
65
|
+
* - "ask": no edit suggestions; pure answer.
|
|
66
|
+
* - "edit": text + suggestions allowed, accept UI rendered.
|
|
67
|
+
*/
|
|
68
|
+
mode: AIChatMode; /** Selected text, if any. Empty string when no selection. */
|
|
69
|
+
selectionText: string; /** PM range of the selection, or null when there is no selection. */
|
|
70
|
+
selectionRange: {
|
|
71
|
+
from: number;
|
|
72
|
+
to: number;
|
|
73
|
+
} | null;
|
|
74
|
+
/**
|
|
75
|
+
* Last known cursor position (Folio only). Always set when a PM
|
|
76
|
+
* view is available, even when the selection is collapsed; null
|
|
77
|
+
* for non-PM viewers (PDF). Drives "near my cursor" prompts.
|
|
78
|
+
*/
|
|
79
|
+
cursorPosition: {
|
|
80
|
+
from: number;
|
|
81
|
+
to: number;
|
|
82
|
+
} | null; /** Plain-text snapshot of the document body. */
|
|
83
|
+
documentText: string;
|
|
84
|
+
/**
|
|
85
|
+
* Subset of `documentText` currently visible in the viewport. Lets
|
|
86
|
+
* the model bias its answer toward what the user is looking at.
|
|
87
|
+
* Empty string when the host can't infer the visible range.
|
|
88
|
+
*/
|
|
89
|
+
visibleText: string;
|
|
90
|
+
/**
|
|
91
|
+
* PM range of the visible region (Folio only). null when the host
|
|
92
|
+
* can't compute it (PDF, or before the first paint).
|
|
93
|
+
*/
|
|
94
|
+
visibleRange: {
|
|
95
|
+
from: number;
|
|
96
|
+
to: number;
|
|
97
|
+
} | null;
|
|
98
|
+
/**
|
|
99
|
+
* If the prompt came from a preset, its id is forwarded so the
|
|
100
|
+
* generator can take a faster path or attribute the request.
|
|
101
|
+
*/
|
|
102
|
+
presetId?: string;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* A pre-saved instruction the user can pick from a dropdown next to
|
|
106
|
+
* the prompt input. Presets bundle a one-line label, an icon glyph,
|
|
107
|
+
* the prompt text that will be sent to the generator, and the
|
|
108
|
+
* conversation mode the prompt is naturally meant for.
|
|
109
|
+
*/
|
|
110
|
+
type AISuggestionPreset = {
|
|
111
|
+
id: string; /** Short label shown in the dropdown (e.g., "Catch typos"). */
|
|
112
|
+
label: string; /** Optional one-line description shown beneath the label. */
|
|
113
|
+
description?: string; /** Prompt text sent to the generator when the preset is picked. */
|
|
114
|
+
prompt: string;
|
|
115
|
+
/**
|
|
116
|
+
* Mode the preset is naturally meant for. Picking it switches the
|
|
117
|
+
* bar's mode globally. Default: "edit" (most legacy presets are
|
|
118
|
+
* edit-shaped).
|
|
119
|
+
*/
|
|
120
|
+
mode?: AIChatMode;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Citation — a pointer from an AI answer back to the source range in
|
|
124
|
+
* the document. Folio (DOCX) cites by PM range; PDF cites by bounding
|
|
125
|
+
* box.
|
|
126
|
+
*
|
|
127
|
+
* The `pdf-bbox` shape is flat and byte-compatible with `BoundingBox`
|
|
128
|
+
* from `@stll/api/types` — same field names, same semantics — so a
|
|
129
|
+
* Stella API justification can be lifted into an `AICitationSource`
|
|
130
|
+
* (and vice versa) with `{ kind: "pdf-bbox", ...box }`. We don't
|
|
131
|
+
* import the API type directly to avoid a folio→api package edge
|
|
132
|
+
* for what is universally a PDF bbox shape.
|
|
133
|
+
*/
|
|
134
|
+
type AICitationSource = {
|
|
135
|
+
kind: "folio-range"; /** ProseMirror positions in the live document. */
|
|
136
|
+
from: number;
|
|
137
|
+
to: number;
|
|
138
|
+
} | {
|
|
139
|
+
kind: "pdf-bbox";
|
|
140
|
+
pageNumber: number;
|
|
141
|
+
xMin: number;
|
|
142
|
+
yMin: number;
|
|
143
|
+
xMax: number;
|
|
144
|
+
yMax: number;
|
|
145
|
+
};
|
|
146
|
+
type AICitation = {
|
|
147
|
+
/** Stable id within the message (e.g., used as `[1]` reference). */id: string; /** Short label rendered in the inline chip ("1", "§3.2", etc.). */
|
|
148
|
+
label: string; /** Verbatim quoted text from the source — surfaces on hover/expand. */
|
|
149
|
+
quote: string; /** Where the cited text lives in the source document. */
|
|
150
|
+
source: AICitationSource;
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Bar status, surfaced by Folio to the user.
|
|
154
|
+
*/
|
|
155
|
+
type AIBarStatus = "idle" | "generating" | "review-ready" | "applying" | "error";
|
|
156
|
+
/**
|
|
157
|
+
* Configuration for the AI suggestions feature.
|
|
158
|
+
*/
|
|
159
|
+
type AISuggestionsConfig = {
|
|
160
|
+
/**
|
|
161
|
+
* Called when the user requests new suggestions. Returns the suggestions
|
|
162
|
+
* to be queued for review. Folio handles all UI state, conflict
|
|
163
|
+
* detection, and apply orchestration.
|
|
164
|
+
*/
|
|
165
|
+
onGenerate: (input: AIGenerateInput) => Promise<AISuggestion[]>;
|
|
166
|
+
/**
|
|
167
|
+
* Pre-saved prompts shown in the bar's dropdown. When omitted,
|
|
168
|
+
* Folio falls back to a small set of generic legal-drafting presets.
|
|
169
|
+
*/
|
|
170
|
+
presets?: AISuggestionPreset[];
|
|
171
|
+
/**
|
|
172
|
+
* Placeholder text shown in the prompt input when it is empty.
|
|
173
|
+
* Defaults to a neutral "Ask AI to review…" prompt.
|
|
174
|
+
*/
|
|
175
|
+
inputPlaceholder?: string;
|
|
176
|
+
/**
|
|
177
|
+
* Default apply mode. The user can toggle in the panel.
|
|
178
|
+
* Defaults to "direct".
|
|
179
|
+
*/
|
|
180
|
+
defaultApplyMode?: AISuggestionApplyMode; /** Author label used when applying as tracked changes. */
|
|
181
|
+
applyAuthor?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Called when the user accepts a suggestion while the editor is
|
|
184
|
+
* read-only. The host should transition the editor into editing
|
|
185
|
+
* mode (e.g., acquire the file lock); Folio queues the accepted
|
|
186
|
+
* suggestions and applies them once the editor becomes editable.
|
|
187
|
+
*
|
|
188
|
+
* If omitted, accept buttons are inert in read-only mode.
|
|
189
|
+
*/
|
|
190
|
+
onUnlockRequest?: () => void;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Default presets used when the host provides none. Each is tagged
|
|
194
|
+
* with the mode it's naturally meant for; picking the preset flips
|
|
195
|
+
* the bar to that mode.
|
|
196
|
+
*/
|
|
197
|
+
declare const DEFAULT_AI_SUGGESTION_PRESETS: AISuggestionPreset[];
|
|
198
|
+
//#endregion
|
|
199
|
+
export { AIBarStatus, AIChatMode, AICitation, AICitationSource, AIGenerateInput, AISuggestion, AISuggestionApplyMode, AISuggestionPreset, AISuggestionSeverity, AISuggestionStatus, AISuggestionsConfig, DEFAULT_AI_SUGGESTION_PRESETS };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
//#region src/ai-suggestions/types.ts
|
|
2
|
+
/**
|
|
3
|
+
* Default presets used when the host provides none. Each is tagged
|
|
4
|
+
* with the mode it's naturally meant for; picking the preset flips
|
|
5
|
+
* the bar to that mode.
|
|
6
|
+
*/
|
|
7
|
+
const DEFAULT_AI_SUGGESTION_PRESETS = [
|
|
8
|
+
{
|
|
9
|
+
id: "summary",
|
|
10
|
+
label: "Summarise this document",
|
|
11
|
+
description: "Quick overview of the parties, subject, and key terms.",
|
|
12
|
+
prompt: "Summarise this document. List parties, subject matter, and key terms.",
|
|
13
|
+
mode: "ask"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "governing-law",
|
|
17
|
+
label: "Identify governing law",
|
|
18
|
+
description: "Surface the governing-law clause and the chosen forum.",
|
|
19
|
+
prompt: "What is the governing law and the dispute-resolution forum?",
|
|
20
|
+
mode: "ask"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: "typos",
|
|
24
|
+
label: "Catch typos and spelling",
|
|
25
|
+
description: "Flag misspellings and small surface errors only.",
|
|
26
|
+
prompt: "Find typos, misspellings, and small surface errors only.",
|
|
27
|
+
mode: "edit"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "concision",
|
|
31
|
+
label: "Tighten language",
|
|
32
|
+
description: "Cut verbose phrases and prefer plain alternatives.",
|
|
33
|
+
prompt: "Tighten verbose phrases and prefer plain alternatives.",
|
|
34
|
+
mode: "edit"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "defined-terms",
|
|
38
|
+
label: "Check defined terms",
|
|
39
|
+
description: "Flag inconsistent capitalization of defined terms.",
|
|
40
|
+
prompt: "Flag inconsistent capitalization or usage of defined terms across the document.",
|
|
41
|
+
mode: "edit"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "shall",
|
|
45
|
+
label: "Plain-language pass",
|
|
46
|
+
description: "Replace “shall” and other archaisms with modern equivalents.",
|
|
47
|
+
prompt: "Replace “shall” and other legal archaisms with modern equivalents.",
|
|
48
|
+
mode: "edit"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: "general",
|
|
52
|
+
label: "General review",
|
|
53
|
+
description: "Surface anything notable — typos, style, substantive.",
|
|
54
|
+
prompt: "",
|
|
55
|
+
mode: "edit"
|
|
56
|
+
}
|
|
57
|
+
];
|
|
58
|
+
//#endregion
|
|
59
|
+
export { DEFAULT_AI_SUGGESTION_PRESETS };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { document_d_exports } from "../types/document.js";
|
|
2
|
+
|
|
3
|
+
//#region src/content-controls/errors.d.ts
|
|
4
|
+
declare const ContentControlLockedError_base: import("better-result").TaggedErrorClass<"ContentControlLockedError", {
|
|
5
|
+
message: string;
|
|
6
|
+
lock: NonNullable<document_d_exports.SdtProperties["lock"]>;
|
|
7
|
+
tag?: string;
|
|
8
|
+
alias?: string;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Refused because the target control's `w:lock` forbids the requested
|
|
12
|
+
* mutation. Caller can override with `{ force: true }` if they understand
|
|
13
|
+
* the consequences (overrides apply per call, not per document).
|
|
14
|
+
*/
|
|
15
|
+
declare class ContentControlLockedError extends ContentControlLockedError_base {}
|
|
16
|
+
declare const ContentControlBoundError_base: import("better-result").TaggedErrorClass<"ContentControlBoundError", {
|
|
17
|
+
message: string;
|
|
18
|
+
xpath: string;
|
|
19
|
+
storeItemID?: string;
|
|
20
|
+
tag?: string;
|
|
21
|
+
alias?: string;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Refused because the target control is bound to a `<w:dataBinding>`.
|
|
25
|
+
*
|
|
26
|
+
* Word regenerates the SDT body from the bound XML on every open, so a
|
|
27
|
+
* direct write to `<w:t>` is silently overwritten and the caller's edit
|
|
28
|
+
* disappears on next open. Aspose.Words handles this by requiring an
|
|
29
|
+
* explicit `XmlMapping.Delete()` before write; folio mirrors that
|
|
30
|
+
* pattern: throw by default, accept `{ force: true }` as an opt-in that
|
|
31
|
+
* strips the binding inline (the same destructive choice the caller
|
|
32
|
+
* would have made explicitly via Aspose's API).
|
|
33
|
+
*
|
|
34
|
+
* Reference: python-docx #965, Aspose forum thread on removing custom
|
|
35
|
+
* XML mapping before content updates.
|
|
36
|
+
*/
|
|
37
|
+
declare class ContentControlBoundError extends ContentControlBoundError_base {}
|
|
38
|
+
declare const ContentControlTypeError_base: import("better-result").TaggedErrorClass<"ContentControlTypeError", {
|
|
39
|
+
message: string;
|
|
40
|
+
sdtType: document_d_exports.SdtProperties["sdtType"];
|
|
41
|
+
reason: string;
|
|
42
|
+
tag?: string;
|
|
43
|
+
alias?: string;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Refused because the requested operation does not make sense for the
|
|
47
|
+
* control's type — e.g. setting free text on a checkbox, or unwrapping a
|
|
48
|
+
* `w15:repeatingSection` (which would orphan its row items).
|
|
49
|
+
*/
|
|
50
|
+
declare class ContentControlTypeError extends ContentControlTypeError_base {}
|
|
51
|
+
//#endregion
|
|
52
|
+
export { ContentControlBoundError, ContentControlLockedError, ContentControlTypeError };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { TaggedError } from "better-result";
|
|
2
|
+
//#region src/content-controls/errors.ts
|
|
3
|
+
/**
|
|
4
|
+
* Tagged errors for the content-controls API. Every write helper that
|
|
5
|
+
* refuses a mutation throws one of these; consumers can either bubble the
|
|
6
|
+
* error or retry with `{ force: true }`.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Refused because the target control's `w:lock` forbids the requested
|
|
10
|
+
* mutation. Caller can override with `{ force: true }` if they understand
|
|
11
|
+
* the consequences (overrides apply per call, not per document).
|
|
12
|
+
*/
|
|
13
|
+
var ContentControlLockedError = class extends TaggedError("ContentControlLockedError")() {};
|
|
14
|
+
/**
|
|
15
|
+
* Refused because the target control is bound to a `<w:dataBinding>`.
|
|
16
|
+
*
|
|
17
|
+
* Word regenerates the SDT body from the bound XML on every open, so a
|
|
18
|
+
* direct write to `<w:t>` is silently overwritten and the caller's edit
|
|
19
|
+
* disappears on next open. Aspose.Words handles this by requiring an
|
|
20
|
+
* explicit `XmlMapping.Delete()` before write; folio mirrors that
|
|
21
|
+
* pattern: throw by default, accept `{ force: true }` as an opt-in that
|
|
22
|
+
* strips the binding inline (the same destructive choice the caller
|
|
23
|
+
* would have made explicitly via Aspose's API).
|
|
24
|
+
*
|
|
25
|
+
* Reference: python-docx #965, Aspose forum thread on removing custom
|
|
26
|
+
* XML mapping before content updates.
|
|
27
|
+
*/
|
|
28
|
+
var ContentControlBoundError = class extends TaggedError("ContentControlBoundError")() {};
|
|
29
|
+
/**
|
|
30
|
+
* Refused because the requested operation does not make sense for the
|
|
31
|
+
* control's type — e.g. setting free text on a checkbox, or unwrapping a
|
|
32
|
+
* `w15:repeatingSection` (which would orphan its row items).
|
|
33
|
+
*/
|
|
34
|
+
var ContentControlTypeError = class extends TaggedError("ContentControlTypeError")() {};
|
|
35
|
+
//#endregion
|
|
36
|
+
export { ContentControlBoundError, ContentControlLockedError, ContentControlTypeError };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { document_d_exports } from "../types/document.js";
|
|
2
|
+
|
|
3
|
+
//#region src/content-controls/findContentControls.d.ts
|
|
4
|
+
type ContentControlFilter = {
|
|
5
|
+
tag?: string;
|
|
6
|
+
alias?: string; /** OOXML numeric `w:id`. */
|
|
7
|
+
id?: number;
|
|
8
|
+
sdtType?: document_d_exports.SdtProperties["sdtType"];
|
|
9
|
+
/**
|
|
10
|
+
* ProseMirror absolute position of the blockSdt's open token. The
|
|
11
|
+
* widgets plugin uses this to disambiguate SDTs that share a tag: each
|
|
12
|
+
* clicked control resolves to exactly one position, so the mutation
|
|
13
|
+
* lands on the intended instance even when multiple share the same
|
|
14
|
+
* tag/alias. Only meaningful for PM-layer addressing (see
|
|
15
|
+
* `prosemirror/commands/contentControls`). The headless walker matches
|
|
16
|
+
* on it too, but `findContentControls` over the headless model does
|
|
17
|
+
* not produce PM positions — so this filter is effectively a no-op
|
|
18
|
+
* when called on a headless Document.
|
|
19
|
+
*/
|
|
20
|
+
pmPos?: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Source location of a matched content control. Main-body matches stay
|
|
24
|
+
* the silent default; matches inside a footnote or endnote carry the
|
|
25
|
+
* note's numeric id so callers can route the right mutate API at it.
|
|
26
|
+
*/
|
|
27
|
+
type ContentControlLocation = {
|
|
28
|
+
kind: "body";
|
|
29
|
+
} | {
|
|
30
|
+
kind: "footnote";
|
|
31
|
+
noteId: number;
|
|
32
|
+
} | {
|
|
33
|
+
kind: "endnote";
|
|
34
|
+
noteId: number;
|
|
35
|
+
};
|
|
36
|
+
type ContentControlMatch = {
|
|
37
|
+
control: document_d_exports.BlockSdt; /** Outer→inner stack of enclosing controls (empty when at the body root). */
|
|
38
|
+
ancestry: document_d_exports.BlockSdt[]; /** Indices to walk back into the doc, outer→inner. */
|
|
39
|
+
path: number[];
|
|
40
|
+
/**
|
|
41
|
+
* Where in the document this match was found. Defaults to the main
|
|
42
|
+
* body; populated for matches in `doc.package.footnotes` /
|
|
43
|
+
* `doc.package.endnotes`.
|
|
44
|
+
*/
|
|
45
|
+
location: ContentControlLocation;
|
|
46
|
+
};
|
|
47
|
+
declare function findContentControls(doc: document_d_exports.Document, filter?: ContentControlFilter): ContentControlMatch[];
|
|
48
|
+
declare function findContentControl(doc: document_d_exports.Document, filter: ContentControlFilter): ContentControlMatch | null;
|
|
49
|
+
/**
|
|
50
|
+
* Concatenated plain text of every paragraph descendant inside a control,
|
|
51
|
+
* separated by newlines. Useful for template/agent read paths.
|
|
52
|
+
*/
|
|
53
|
+
declare function getContentControlText(control: document_d_exports.BlockSdt): string;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { ContentControlFilter, ContentControlLocation, ContentControlMatch, findContentControl, findContentControls, getContentControlText };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
//#region src/content-controls/findContentControls.ts
|
|
2
|
+
function matches(control, filter) {
|
|
3
|
+
if (filter.pmPos !== void 0) return false;
|
|
4
|
+
if (filter.tag !== void 0 && control.properties.tag !== filter.tag) return false;
|
|
5
|
+
if (filter.alias !== void 0 && control.properties.alias !== filter.alias) return false;
|
|
6
|
+
if (filter.id !== void 0 && control.properties.id !== filter.id) return false;
|
|
7
|
+
if (filter.sdtType !== void 0 && control.properties.sdtType !== filter.sdtType) return false;
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
function walk(blocks, filter, out, ancestry, path, location) {
|
|
11
|
+
for (let i = 0; i < blocks.length; i += 1) {
|
|
12
|
+
const block = blocks[i];
|
|
13
|
+
if (!block) continue;
|
|
14
|
+
if (block.type === "blockSdt") {
|
|
15
|
+
if (matches(block, filter)) out.push({
|
|
16
|
+
control: block,
|
|
17
|
+
ancestry: [...ancestry],
|
|
18
|
+
path: [...path, i],
|
|
19
|
+
location
|
|
20
|
+
});
|
|
21
|
+
walk(block.content, filter, out, [...ancestry, block], [...path, i], location);
|
|
22
|
+
} else if (block.type === "table") for (let r = 0; r < block.rows.length; r += 1) {
|
|
23
|
+
const row = block.rows[r];
|
|
24
|
+
if (!row) continue;
|
|
25
|
+
for (let c = 0; c < row.cells.length; c += 1) {
|
|
26
|
+
const cell = row.cells[c];
|
|
27
|
+
if (!cell) continue;
|
|
28
|
+
walk(cell.content, filter, out, ancestry, [
|
|
29
|
+
...path,
|
|
30
|
+
i,
|
|
31
|
+
r,
|
|
32
|
+
c
|
|
33
|
+
], location);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function findContentControls(doc, filter = {}) {
|
|
39
|
+
const out = [];
|
|
40
|
+
walk(doc.package.document.content, filter, out, [], [], { kind: "body" });
|
|
41
|
+
for (const footnote of doc.package.footnotes ?? []) walk(footnote.content, filter, out, [], [], {
|
|
42
|
+
kind: "footnote",
|
|
43
|
+
noteId: footnote.id
|
|
44
|
+
});
|
|
45
|
+
for (const endnote of doc.package.endnotes ?? []) walk(endnote.content, filter, out, [], [], {
|
|
46
|
+
kind: "endnote",
|
|
47
|
+
noteId: endnote.id
|
|
48
|
+
});
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
function findContentControl(doc, filter) {
|
|
52
|
+
for (const match of findContentControls(doc, filter)) return match;
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Concatenated plain text of every paragraph descendant inside a control,
|
|
57
|
+
* separated by newlines. Useful for template/agent read paths.
|
|
58
|
+
*/
|
|
59
|
+
function getContentControlText(control) {
|
|
60
|
+
const parts = [];
|
|
61
|
+
const visit = (blocks) => {
|
|
62
|
+
for (const block of blocks) if (block.type === "paragraph") {
|
|
63
|
+
const paraText = [];
|
|
64
|
+
for (const item of block.content) if (item.type === "run") {
|
|
65
|
+
for (const child of item.content) if (child.type === "text") paraText.push(child.text);
|
|
66
|
+
}
|
|
67
|
+
parts.push(paraText.join(""));
|
|
68
|
+
} else if (block.type === "table") for (const row of block.rows) for (const cell of row.cells) visit(cell.content);
|
|
69
|
+
else visit(block.content);
|
|
70
|
+
};
|
|
71
|
+
visit(control.content);
|
|
72
|
+
return parts.join("\n");
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { findContentControl, findContentControls, getContentControlText };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ContentControlBoundError, ContentControlLockedError, ContentControlTypeError } from "./errors.js";
|
|
2
|
+
import { ContentControlFilter, ContentControlMatch, findContentControl, findContentControls, getContentControlText } from "./findContentControls.js";
|
|
3
|
+
import { SetContentControlContentInput, SetContentControlValueInput, removeContentControl, setContentControlContent, setContentControlValue } from "./mutateContentControls.js";
|
|
4
|
+
export { ContentControlBoundError, type ContentControlFilter, ContentControlLockedError, type ContentControlMatch, ContentControlTypeError, type SetContentControlContentInput, type SetContentControlValueInput, findContentControl, findContentControls, getContentControlText, removeContentControl, setContentControlContent, setContentControlValue };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ContentControlBoundError, ContentControlLockedError, ContentControlTypeError } from "./errors.js";
|
|
2
|
+
import { findContentControl, findContentControls, getContentControlText } from "./findContentControls.js";
|
|
3
|
+
import { removeContentControl, setContentControlContent, setContentControlValue } from "./mutateContentControls.js";
|
|
4
|
+
export { ContentControlBoundError, ContentControlLockedError, ContentControlTypeError, findContentControl, findContentControls, getContentControlText, removeContentControl, setContentControlContent, setContentControlValue };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { document_d_exports } from "../types/document.js";
|
|
2
|
+
import { ContentControlFilter } from "./findContentControls.js";
|
|
3
|
+
|
|
4
|
+
//#region src/content-controls/mutateContentControls.d.ts
|
|
5
|
+
type ForceOption = {
|
|
6
|
+
force?: boolean;
|
|
7
|
+
};
|
|
8
|
+
type SetContentControlContentInput = string | document_d_exports.BlockContent[];
|
|
9
|
+
type SetContentControlValueInput = {
|
|
10
|
+
kind: "dropdown";
|
|
11
|
+
value: string;
|
|
12
|
+
} | {
|
|
13
|
+
kind: "checkbox";
|
|
14
|
+
checked: boolean;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "date";
|
|
17
|
+
date: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Replace a control's inner content. Plain text becomes one paragraph; an
|
|
21
|
+
* explicit `BlockContent[]` is deep-cloned to preserve immutability. The
|
|
22
|
+
* `showingPlcHdr` flag is cleared so the new content is not styled as
|
|
23
|
+
* placeholder.
|
|
24
|
+
*
|
|
25
|
+
* Applies to SDTs in the main body AND inside `doc.package.footnotes` /
|
|
26
|
+
* `doc.package.endnotes`. NOTE: save-path propagation for note SDTs is a
|
|
27
|
+
* known follow-up — `repackDocxFromRaw` currently replays
|
|
28
|
+
* `word/footnotes.xml` and `word/endnotes.xml` verbatim from the source
|
|
29
|
+
* zip, so changes to note SDTs land on the in-memory model but the
|
|
30
|
+
* saved DOCX still contains the original note text. Read APIs
|
|
31
|
+
* (`findContentControls`, `getFootnoteText`) reflect the update in the
|
|
32
|
+
* same session; persisting requires extending the selective-save layer
|
|
33
|
+
* to re-serialize note parts.
|
|
34
|
+
*/
|
|
35
|
+
declare function setContentControlContent(doc: document_d_exports.Document, filter: ContentControlFilter, input: SetContentControlContentInput, options?: ForceOption): document_d_exports.Document;
|
|
36
|
+
/**
|
|
37
|
+
* Set a structured value on a typed control. Dropdown / checkbox / date
|
|
38
|
+
* each get their own input shape so the input is type-checked at the
|
|
39
|
+
* call site.
|
|
40
|
+
*/
|
|
41
|
+
declare function setContentControlValue(doc: document_d_exports.Document, filter: ContentControlFilter, input: SetContentControlValueInput, options?: ForceOption): document_d_exports.Document;
|
|
42
|
+
/**
|
|
43
|
+
* Remove a control. With `{ keepContent: true }` the inner blocks survive
|
|
44
|
+
* in-place; otherwise the control and its children are dropped. Refuses to
|
|
45
|
+
* unwrap a `w15:repeatingSection` (would orphan w15 row items).
|
|
46
|
+
*/
|
|
47
|
+
declare function removeContentControl(doc: document_d_exports.Document, filter: ContentControlFilter, options?: ForceOption & {
|
|
48
|
+
keepContent?: boolean;
|
|
49
|
+
}): document_d_exports.Document;
|
|
50
|
+
//#endregion
|
|
51
|
+
export { SetContentControlContentInput, SetContentControlValueInput, removeContentControl, setContentControlContent, setContentControlValue };
|