@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,158 @@
|
|
|
1
|
+
import { document_d_exports } from "../types/document.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/colorResolver.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Resolve a ColorValue to a CSS color string
|
|
6
|
+
*
|
|
7
|
+
* @param color - ColorValue object with rgb, themeColor, tint/shade, or auto
|
|
8
|
+
* @param theme - Theme for resolving theme colors
|
|
9
|
+
* @param defaultColor - Default color if auto or undefined (default: black)
|
|
10
|
+
* @returns CSS color string (e.g., "#FF0000" or "inherit")
|
|
11
|
+
*/
|
|
12
|
+
declare function resolveColor(color: document_d_exports.ColorValue | undefined | null, theme: document_d_exports.Theme | null | undefined, defaultColor?: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Resolve a highlight color name to CSS
|
|
15
|
+
*
|
|
16
|
+
* @param highlight - Highlight color name (e.g., "yellow", "cyan")
|
|
17
|
+
* @returns CSS color string or empty string for "none"
|
|
18
|
+
*/
|
|
19
|
+
declare function resolveHighlightColor(highlight: string | undefined): string;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a shading fill or pattern color to CSS
|
|
22
|
+
*
|
|
23
|
+
* @param color - ColorValue for fill
|
|
24
|
+
* @param theme - Theme for resolving theme colors
|
|
25
|
+
* @returns CSS color string
|
|
26
|
+
*/
|
|
27
|
+
declare function resolveShadingColor(color: document_d_exports.ColorValue | undefined | null, theme: document_d_exports.Theme | null | undefined): string;
|
|
28
|
+
/**
|
|
29
|
+
* Check if a color is effectively black
|
|
30
|
+
*
|
|
31
|
+
* @param color - ColorValue object
|
|
32
|
+
* @param theme - Theme for resolving theme colors
|
|
33
|
+
* @returns True if color resolves to black or very dark
|
|
34
|
+
*/
|
|
35
|
+
declare function isBlack(color: document_d_exports.ColorValue | undefined | null, theme: document_d_exports.Theme | null | undefined): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Check if a color is effectively white
|
|
38
|
+
*
|
|
39
|
+
* @param color - ColorValue object
|
|
40
|
+
* @param theme - Theme for resolving theme colors
|
|
41
|
+
* @returns True if color resolves to white or very light
|
|
42
|
+
*/
|
|
43
|
+
declare function isWhite(color: document_d_exports.ColorValue | undefined | null, theme: document_d_exports.Theme | null | undefined): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get contrasting text color for a background
|
|
46
|
+
*
|
|
47
|
+
* @param backgroundColor - Background ColorValue
|
|
48
|
+
* @param theme - Theme for resolving theme colors
|
|
49
|
+
* @returns Black or white hex color for best contrast
|
|
50
|
+
*/
|
|
51
|
+
declare function getContrastingColor(backgroundColor: document_d_exports.ColorValue | undefined | null, theme: document_d_exports.Theme | null | undefined): string;
|
|
52
|
+
/**
|
|
53
|
+
* Parse a color string (various formats) to ColorValue
|
|
54
|
+
*
|
|
55
|
+
* @param colorString - Color string like "FF0000", "auto", or theme color name
|
|
56
|
+
* @returns ColorValue object
|
|
57
|
+
*/
|
|
58
|
+
declare function parseColorString(colorString: string | undefined): document_d_exports.ColorValue | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Create a ColorValue from theme color reference
|
|
61
|
+
*
|
|
62
|
+
* @param themeColor - Theme color slot name
|
|
63
|
+
* @param tint - Optional tint modifier
|
|
64
|
+
* @param shade - Optional shade modifier
|
|
65
|
+
* @returns ColorValue object
|
|
66
|
+
*/
|
|
67
|
+
declare function createThemeColor(themeColor: document_d_exports.ThemeColorSlot, tint?: number, shade?: number): document_d_exports.ColorValue;
|
|
68
|
+
/**
|
|
69
|
+
* Create a ColorValue from RGB hex
|
|
70
|
+
*
|
|
71
|
+
* @param hex - 6-character hex color (no #)
|
|
72
|
+
* @returns ColorValue object
|
|
73
|
+
*/
|
|
74
|
+
declare function createRgbColor(hex: string): document_d_exports.ColorValue;
|
|
75
|
+
/**
|
|
76
|
+
* Darken a color by a percentage
|
|
77
|
+
*
|
|
78
|
+
* @param color - ColorValue to darken
|
|
79
|
+
* @param theme - Theme for resolving
|
|
80
|
+
* @param percent - Percentage to darken (0-100)
|
|
81
|
+
* @returns CSS color string
|
|
82
|
+
*/
|
|
83
|
+
declare function darkenColor(color: document_d_exports.ColorValue | undefined | null, theme: document_d_exports.Theme | null | undefined, percent: number): string;
|
|
84
|
+
/**
|
|
85
|
+
* Lighten a color by a percentage
|
|
86
|
+
*
|
|
87
|
+
* @param color - ColorValue to lighten
|
|
88
|
+
* @param theme - Theme for resolving
|
|
89
|
+
* @param percent - Percentage to lighten (0-100)
|
|
90
|
+
* @returns CSS color string
|
|
91
|
+
*/
|
|
92
|
+
declare function lightenColor(color: document_d_exports.ColorValue | undefined | null, theme: document_d_exports.Theme | null | undefined, percent: number): string;
|
|
93
|
+
/**
|
|
94
|
+
* Blend two colors together
|
|
95
|
+
*
|
|
96
|
+
* @param color1 - First color
|
|
97
|
+
* @param color2 - Second color
|
|
98
|
+
* @param ratio - Blend ratio (0 = all color1, 1 = all color2)
|
|
99
|
+
* @param theme - Theme for resolving
|
|
100
|
+
* @returns CSS color string
|
|
101
|
+
*/
|
|
102
|
+
declare function blendColors(color1: document_d_exports.ColorValue | undefined | null, color2: document_d_exports.ColorValue | undefined | null, ratio: number, theme: document_d_exports.Theme | null | undefined): string;
|
|
103
|
+
/**
|
|
104
|
+
* Ensure a hex color string has a '#' prefix.
|
|
105
|
+
*/
|
|
106
|
+
declare function ensureHexPrefix(hex: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* Resolve a highlight color value to a CSS-ready string.
|
|
109
|
+
* Tries OOXML named highlight first, then ensures hex prefix.
|
|
110
|
+
*/
|
|
111
|
+
declare function resolveHighlightToCss(value: string): string;
|
|
112
|
+
/**
|
|
113
|
+
* Theme color matrix cell
|
|
114
|
+
*/
|
|
115
|
+
type ThemeMatrixCell = {
|
|
116
|
+
/** Resolved hex color (6 chars, no #) */hex: string; /** Theme color slot */
|
|
117
|
+
themeSlot: document_d_exports.ThemeColorSlot; /** Tint hex modifier if applicable (e.g., "CC") */
|
|
118
|
+
tint?: string; /** Shade hex modifier if applicable (e.g., "BF") */
|
|
119
|
+
shade?: string; /** Human-readable label (e.g., "Accent 1, Lighter 60%") */
|
|
120
|
+
label: string;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Standard colors row matching Word's color picker (below the theme matrix).
|
|
124
|
+
*/
|
|
125
|
+
declare const STANDARD_TEXT_COLORS: {
|
|
126
|
+
name: string;
|
|
127
|
+
hex: string;
|
|
128
|
+
}[];
|
|
129
|
+
/**
|
|
130
|
+
* Compute a single tinted or shaded hex color from a base color.
|
|
131
|
+
*
|
|
132
|
+
* @param baseHex - 6-character hex color (no #)
|
|
133
|
+
* @param type - 'tint' to lighten, 'shade' to darken
|
|
134
|
+
* @param fraction - Amount (0-1). For tint: 0=no change, 1=white. For shade: 0=black, 1=no change.
|
|
135
|
+
* @returns 6-character hex color (no #)
|
|
136
|
+
*/
|
|
137
|
+
declare function getThemeTintShadeHex(baseHex: string, type: "tint" | "shade", fraction: number): string;
|
|
138
|
+
/**
|
|
139
|
+
* Generate the 10×6 theme color matrix for an advanced color picker.
|
|
140
|
+
*
|
|
141
|
+
* Columns: lt1, dk1, lt2, dk2, accent1-6 (matches Word's order)
|
|
142
|
+
* Rows: base, 80% tint, 60% tint, 40% tint, 25% shade, 50% shade
|
|
143
|
+
*
|
|
144
|
+
* @param colorScheme - Theme color scheme (falls back to Office 2016 defaults)
|
|
145
|
+
* @returns 6 rows × 10 columns of ThemeMatrixCell
|
|
146
|
+
*/
|
|
147
|
+
declare function generateThemeTintShadeMatrix(colorScheme?: document_d_exports.ThemeColorScheme | null): ThemeMatrixCell[][];
|
|
148
|
+
/**
|
|
149
|
+
* Check if two colors are equal
|
|
150
|
+
*
|
|
151
|
+
* @param color1 - First color
|
|
152
|
+
* @param color2 - Second color
|
|
153
|
+
* @param theme - Theme for resolving
|
|
154
|
+
* @returns True if colors resolve to the same value
|
|
155
|
+
*/
|
|
156
|
+
declare function colorsEqual(color1: document_d_exports.ColorValue | undefined | null, color2: document_d_exports.ColorValue | undefined | null, theme: document_d_exports.Theme | null | undefined): boolean;
|
|
157
|
+
//#endregion
|
|
158
|
+
export { STANDARD_TEXT_COLORS, ThemeMatrixCell, blendColors, colorsEqual, createRgbColor, createThemeColor, darkenColor, ensureHexPrefix, generateThemeTintShadeMatrix, getContrastingColor, getThemeTintShadeHex, isBlack, isWhite, lightenColor, parseColorString, resolveColor, resolveHighlightColor, resolveHighlightToCss, resolveShadingColor };
|
|
@@ -0,0 +1,557 @@
|
|
|
1
|
+
//#region src/utils/colorResolver.ts
|
|
2
|
+
/**
|
|
3
|
+
* Default theme colors (Office 2016 default theme)
|
|
4
|
+
*/
|
|
5
|
+
const DEFAULT_THEME_COLORS = {
|
|
6
|
+
dk1: "000000",
|
|
7
|
+
lt1: "FFFFFF",
|
|
8
|
+
dk2: "44546A",
|
|
9
|
+
lt2: "E7E6E6",
|
|
10
|
+
accent1: "4472C4",
|
|
11
|
+
accent2: "ED7D31",
|
|
12
|
+
accent3: "A5A5A5",
|
|
13
|
+
accent4: "FFC000",
|
|
14
|
+
accent5: "5B9BD5",
|
|
15
|
+
accent6: "70AD47",
|
|
16
|
+
hlink: "0563C1",
|
|
17
|
+
folHlink: "954F72"
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Highlight color mapping to hex values
|
|
21
|
+
* These are the W3C standard colors for Word highlighting
|
|
22
|
+
*/
|
|
23
|
+
const HIGHLIGHT_COLORS = {
|
|
24
|
+
black: "000000",
|
|
25
|
+
blue: "0000FF",
|
|
26
|
+
cyan: "00FFFF",
|
|
27
|
+
darkBlue: "00008B",
|
|
28
|
+
darkCyan: "008B8B",
|
|
29
|
+
darkGray: "A9A9A9",
|
|
30
|
+
darkGreen: "006400",
|
|
31
|
+
darkMagenta: "8B008B",
|
|
32
|
+
darkRed: "8B0000",
|
|
33
|
+
darkYellow: "808000",
|
|
34
|
+
green: "00FF00",
|
|
35
|
+
lightGray: "D3D3D3",
|
|
36
|
+
magenta: "FF00FF",
|
|
37
|
+
red: "FF0000",
|
|
38
|
+
white: "FFFFFF",
|
|
39
|
+
yellow: "FFFF00",
|
|
40
|
+
none: ""
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Map alternative theme color names to standard slots
|
|
44
|
+
* OOXML uses different names in different contexts
|
|
45
|
+
*/
|
|
46
|
+
const THEME_COLOR_ALIASES = {
|
|
47
|
+
dk1: "dk1",
|
|
48
|
+
lt1: "lt1",
|
|
49
|
+
dk2: "dk2",
|
|
50
|
+
lt2: "lt2",
|
|
51
|
+
accent1: "accent1",
|
|
52
|
+
accent2: "accent2",
|
|
53
|
+
accent3: "accent3",
|
|
54
|
+
accent4: "accent4",
|
|
55
|
+
accent5: "accent5",
|
|
56
|
+
accent6: "accent6",
|
|
57
|
+
hlink: "hlink",
|
|
58
|
+
folHlink: "folHlink",
|
|
59
|
+
dark1: "dk1",
|
|
60
|
+
light1: "lt1",
|
|
61
|
+
dark2: "dk2",
|
|
62
|
+
light2: "lt2",
|
|
63
|
+
hyperlink: "hlink",
|
|
64
|
+
followedHyperlink: "folHlink",
|
|
65
|
+
background1: "lt1",
|
|
66
|
+
text1: "dk1",
|
|
67
|
+
background2: "lt2",
|
|
68
|
+
text2: "dk2",
|
|
69
|
+
tx1: "dk1",
|
|
70
|
+
tx2: "dk2",
|
|
71
|
+
bg1: "lt1",
|
|
72
|
+
bg2: "lt2"
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Parse a hex color modifier value (tint or shade)
|
|
76
|
+
* OOXML stores tint/shade as hex string (00-FF) representing 0-255
|
|
77
|
+
*
|
|
78
|
+
* @param hexValue - Hex string like "80" or "FF"
|
|
79
|
+
* @returns Decimal value 0-1
|
|
80
|
+
*/
|
|
81
|
+
function parseModifierValue(hexValue) {
|
|
82
|
+
if (!hexValue) return 1;
|
|
83
|
+
const parsed = Number.parseInt(hexValue, 16);
|
|
84
|
+
if (Number.isNaN(parsed)) return 1;
|
|
85
|
+
return parsed / 255;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Parse RGB hex color to component values
|
|
89
|
+
*
|
|
90
|
+
* @param hex - 6-character hex color (no #)
|
|
91
|
+
* @returns RGB object with r, g, b values 0-255
|
|
92
|
+
*/
|
|
93
|
+
function hexToRgb(hex) {
|
|
94
|
+
const normalized = hex.padStart(6, "0").slice(0, 6);
|
|
95
|
+
const r = Number.parseInt(normalized.slice(0, 2), 16);
|
|
96
|
+
const g = Number.parseInt(normalized.slice(2, 4), 16);
|
|
97
|
+
const b = Number.parseInt(normalized.slice(4, 6), 16);
|
|
98
|
+
return {
|
|
99
|
+
r: Number.isNaN(r) ? 0 : r,
|
|
100
|
+
g: Number.isNaN(g) ? 0 : g,
|
|
101
|
+
b: Number.isNaN(b) ? 0 : b
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Convert RGB values to hex color
|
|
106
|
+
*
|
|
107
|
+
* @param r - Red 0-255
|
|
108
|
+
* @param g - Green 0-255
|
|
109
|
+
* @param b - Blue 0-255
|
|
110
|
+
* @returns 6-character hex color (no #)
|
|
111
|
+
*/
|
|
112
|
+
function rgbToHex(r, g, b) {
|
|
113
|
+
const toHex = (n) => Math.max(0, Math.min(255, Math.round(n))).toString(16).padStart(2, "0");
|
|
114
|
+
return `${toHex(r)}${toHex(g)}${toHex(b)}`.toUpperCase();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Apply tint to a color (make lighter by blending with white)
|
|
118
|
+
*
|
|
119
|
+
* OOXML tint algorithm:
|
|
120
|
+
* - Blends each channel toward white
|
|
121
|
+
*
|
|
122
|
+
* @param hex - 6-character hex color (no #)
|
|
123
|
+
* @param tint - Tint value 0-1 (0 = no change, 1 = fully white)
|
|
124
|
+
* @returns Modified hex color
|
|
125
|
+
*/
|
|
126
|
+
function applyTint(hex, tint) {
|
|
127
|
+
if (tint <= 0 || tint >= 1) return tint >= 1 ? "FFFFFF" : hex;
|
|
128
|
+
const rgb = hexToRgb(hex);
|
|
129
|
+
return rgbToHex(rgb.r * (1 - tint) + 255 * tint, rgb.g * (1 - tint) + 255 * tint, rgb.b * (1 - tint) + 255 * tint);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Apply shade to a color (make darker by blending with black)
|
|
133
|
+
*
|
|
134
|
+
* OOXML shade algorithm:
|
|
135
|
+
* - Multiplies each channel by the shade value
|
|
136
|
+
*
|
|
137
|
+
* @param hex - 6-character hex color (no #)
|
|
138
|
+
* @param shade - Shade value 0-1 (0 = fully black, 1 = no change)
|
|
139
|
+
* @returns Modified hex color
|
|
140
|
+
*/
|
|
141
|
+
function applyShade(hex, shade) {
|
|
142
|
+
if (shade <= 0 || shade >= 1) return shade <= 0 ? "000000" : hex;
|
|
143
|
+
const rgb = hexToRgb(hex);
|
|
144
|
+
return rgbToHex(rgb.r * shade, rgb.g * shade, rgb.b * shade);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get a theme color by slot name
|
|
148
|
+
*
|
|
149
|
+
* @param theme - Theme object
|
|
150
|
+
* @param slot - Color slot name
|
|
151
|
+
* @returns Hex color (6 characters, no #)
|
|
152
|
+
*/
|
|
153
|
+
function getThemeColorValue(theme, slot) {
|
|
154
|
+
const schemeKey = THEME_COLOR_ALIASES[slot] ?? slot;
|
|
155
|
+
const schemeKeys = [
|
|
156
|
+
"dk1",
|
|
157
|
+
"lt1",
|
|
158
|
+
"dk2",
|
|
159
|
+
"lt2",
|
|
160
|
+
"accent1",
|
|
161
|
+
"accent2",
|
|
162
|
+
"accent3",
|
|
163
|
+
"accent4",
|
|
164
|
+
"accent5",
|
|
165
|
+
"accent6",
|
|
166
|
+
"hlink",
|
|
167
|
+
"folHlink"
|
|
168
|
+
];
|
|
169
|
+
const isSchemeKey = (key) => schemeKeys.includes(key);
|
|
170
|
+
if (!theme?.colorScheme) {
|
|
171
|
+
if (isSchemeKey(schemeKey)) return DEFAULT_THEME_COLORS[schemeKey] ?? "000000";
|
|
172
|
+
return "000000";
|
|
173
|
+
}
|
|
174
|
+
if (isSchemeKey(schemeKey)) return theme.colorScheme[schemeKey] ?? DEFAULT_THEME_COLORS[schemeKey] ?? "000000";
|
|
175
|
+
return "000000";
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Resolve a theme color name to a standard slot
|
|
179
|
+
*
|
|
180
|
+
* @param colorName - Theme color name (could be alias)
|
|
181
|
+
* @returns Standard ThemeColorSlot or null if unknown
|
|
182
|
+
*/
|
|
183
|
+
function resolveThemeColorSlot(colorName) {
|
|
184
|
+
if (!colorName) return null;
|
|
185
|
+
const normalized = colorName.toLowerCase();
|
|
186
|
+
return THEME_COLOR_ALIASES[colorName] ?? THEME_COLOR_ALIASES[normalized] ?? null;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Resolve a ColorValue to a CSS color string
|
|
190
|
+
*
|
|
191
|
+
* @param color - ColorValue object with rgb, themeColor, tint/shade, or auto
|
|
192
|
+
* @param theme - Theme for resolving theme colors
|
|
193
|
+
* @param defaultColor - Default color if auto or undefined (default: black)
|
|
194
|
+
* @returns CSS color string (e.g., "#FF0000" or "inherit")
|
|
195
|
+
*/
|
|
196
|
+
function resolveColor(color, theme, defaultColor = "000000") {
|
|
197
|
+
if (!color) return `#${defaultColor}`;
|
|
198
|
+
if (color.auto) return `#${defaultColor}`;
|
|
199
|
+
let hexColor;
|
|
200
|
+
if (color.themeColor) {
|
|
201
|
+
const slot = resolveThemeColorSlot(color.themeColor);
|
|
202
|
+
if (slot) hexColor = getThemeColorValue(theme, slot);
|
|
203
|
+
else hexColor = color.rgb ?? defaultColor;
|
|
204
|
+
if (color.themeTint) {
|
|
205
|
+
const tintValue = parseModifierValue(color.themeTint);
|
|
206
|
+
hexColor = applyTint(hexColor, 1 - tintValue);
|
|
207
|
+
} else if (color.themeShade) {
|
|
208
|
+
const shadeValue = parseModifierValue(color.themeShade);
|
|
209
|
+
hexColor = applyShade(hexColor, shadeValue);
|
|
210
|
+
}
|
|
211
|
+
} else if (color.rgb) hexColor = color.rgb === "auto" ? defaultColor : color.rgb;
|
|
212
|
+
else hexColor = defaultColor;
|
|
213
|
+
return `#${hexColor.toUpperCase().replace(/^#/u, "")}`;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Resolve a highlight color name to CSS
|
|
217
|
+
*
|
|
218
|
+
* @param highlight - Highlight color name (e.g., "yellow", "cyan")
|
|
219
|
+
* @returns CSS color string or empty string for "none"
|
|
220
|
+
*/
|
|
221
|
+
function resolveHighlightColor(highlight) {
|
|
222
|
+
if (!highlight || highlight === "none") return "";
|
|
223
|
+
const hex = HIGHLIGHT_COLORS[highlight];
|
|
224
|
+
return hex ? `#${hex}` : "";
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Resolve a shading fill or pattern color to CSS
|
|
228
|
+
*
|
|
229
|
+
* @param color - ColorValue for fill
|
|
230
|
+
* @param theme - Theme for resolving theme colors
|
|
231
|
+
* @returns CSS color string
|
|
232
|
+
*/
|
|
233
|
+
function resolveShadingColor(color, theme) {
|
|
234
|
+
if (!color) return "";
|
|
235
|
+
if (color.auto) return "transparent";
|
|
236
|
+
return resolveColor(color, theme);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Check if a color is effectively black
|
|
240
|
+
*
|
|
241
|
+
* @param color - ColorValue object
|
|
242
|
+
* @param theme - Theme for resolving theme colors
|
|
243
|
+
* @returns True if color resolves to black or very dark
|
|
244
|
+
*/
|
|
245
|
+
function isBlack(color, theme) {
|
|
246
|
+
if (!color) return false;
|
|
247
|
+
if (color.auto) return true;
|
|
248
|
+
const rgb = hexToRgb(resolveColor(color, theme).replace(/^#/u, "").toLowerCase());
|
|
249
|
+
return (rgb.r + rgb.g + rgb.b) / 3 < 20;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Check if a color is effectively white
|
|
253
|
+
*
|
|
254
|
+
* @param color - ColorValue object
|
|
255
|
+
* @param theme - Theme for resolving theme colors
|
|
256
|
+
* @returns True if color resolves to white or very light
|
|
257
|
+
*/
|
|
258
|
+
function isWhite(color, theme) {
|
|
259
|
+
if (!color) return false;
|
|
260
|
+
const rgb = hexToRgb(resolveColor(color, theme).replace(/^#/u, "").toLowerCase());
|
|
261
|
+
return (rgb.r + rgb.g + rgb.b) / 3 > 235;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Get contrasting text color for a background
|
|
265
|
+
*
|
|
266
|
+
* @param backgroundColor - Background ColorValue
|
|
267
|
+
* @param theme - Theme for resolving theme colors
|
|
268
|
+
* @returns Black or white hex color for best contrast
|
|
269
|
+
*/
|
|
270
|
+
function getContrastingColor(backgroundColor, theme) {
|
|
271
|
+
if (!backgroundColor) return "#000000";
|
|
272
|
+
const bgRgb = hexToRgb(resolveColor(backgroundColor, theme).replace(/^#/u, ""));
|
|
273
|
+
return (.299 * bgRgb.r + .587 * bgRgb.g + .114 * bgRgb.b) / 255 > .5 ? "#000000" : "#FFFFFF";
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Parse a color string (various formats) to ColorValue
|
|
277
|
+
*
|
|
278
|
+
* @param colorString - Color string like "FF0000", "auto", or theme color name
|
|
279
|
+
* @returns ColorValue object
|
|
280
|
+
*/
|
|
281
|
+
function parseColorString(colorString) {
|
|
282
|
+
if (!colorString) return;
|
|
283
|
+
const normalized = colorString.trim();
|
|
284
|
+
if (normalized.toLowerCase() === "auto") return { auto: true };
|
|
285
|
+
const themeSlot = resolveThemeColorSlot(normalized);
|
|
286
|
+
if (themeSlot) return { themeColor: themeSlot };
|
|
287
|
+
const hex = normalized.replace(/^#/u, "").toUpperCase();
|
|
288
|
+
if (/^[0-9A-F]{6}$/iu.test(hex)) return { rgb: hex };
|
|
289
|
+
if (/^[0-9A-F]{3}$/iu.test(hex)) return { rgb: hex.split("").map((c) => c + c).join("") };
|
|
290
|
+
return { rgb: hex.padStart(6, "0").slice(0, 6) };
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Create a ColorValue from theme color reference
|
|
294
|
+
*
|
|
295
|
+
* @param themeColor - Theme color slot name
|
|
296
|
+
* @param tint - Optional tint modifier
|
|
297
|
+
* @param shade - Optional shade modifier
|
|
298
|
+
* @returns ColorValue object
|
|
299
|
+
*/
|
|
300
|
+
function createThemeColor(themeColor, tint, shade) {
|
|
301
|
+
const result = { themeColor };
|
|
302
|
+
if (tint !== void 0 && tint > 0 && tint < 1) result.themeTint = Math.round(tint * 255).toString(16).toUpperCase().padStart(2, "0");
|
|
303
|
+
if (shade !== void 0 && shade > 0 && shade < 1) result.themeShade = Math.round(shade * 255).toString(16).toUpperCase().padStart(2, "0");
|
|
304
|
+
return result;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Create a ColorValue from RGB hex
|
|
308
|
+
*
|
|
309
|
+
* @param hex - 6-character hex color (no #)
|
|
310
|
+
* @returns ColorValue object
|
|
311
|
+
*/
|
|
312
|
+
function createRgbColor(hex) {
|
|
313
|
+
return { rgb: hex.replace(/^#/u, "").toUpperCase() };
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Darken a color by a percentage
|
|
317
|
+
*
|
|
318
|
+
* @param color - ColorValue to darken
|
|
319
|
+
* @param theme - Theme for resolving
|
|
320
|
+
* @param percent - Percentage to darken (0-100)
|
|
321
|
+
* @returns CSS color string
|
|
322
|
+
*/
|
|
323
|
+
function darkenColor(color, theme, percent) {
|
|
324
|
+
return `#${applyShade(resolveColor(color, theme).replace(/^#/u, ""), 1 - percent / 100)}`;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Lighten a color by a percentage
|
|
328
|
+
*
|
|
329
|
+
* @param color - ColorValue to lighten
|
|
330
|
+
* @param theme - Theme for resolving
|
|
331
|
+
* @param percent - Percentage to lighten (0-100)
|
|
332
|
+
* @returns CSS color string
|
|
333
|
+
*/
|
|
334
|
+
function lightenColor(color, theme, percent) {
|
|
335
|
+
return `#${applyTint(resolveColor(color, theme).replace(/^#/u, ""), percent / 100)}`;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Blend two colors together
|
|
339
|
+
*
|
|
340
|
+
* @param color1 - First color
|
|
341
|
+
* @param color2 - Second color
|
|
342
|
+
* @param ratio - Blend ratio (0 = all color1, 1 = all color2)
|
|
343
|
+
* @param theme - Theme for resolving
|
|
344
|
+
* @returns CSS color string
|
|
345
|
+
*/
|
|
346
|
+
function blendColors(color1, color2, ratio, theme) {
|
|
347
|
+
const resolved1 = resolveColor(color1, theme).replace(/^#/u, "");
|
|
348
|
+
const resolved2 = resolveColor(color2, theme).replace(/^#/u, "");
|
|
349
|
+
const rgb1 = hexToRgb(resolved1);
|
|
350
|
+
const rgb2 = hexToRgb(resolved2);
|
|
351
|
+
const blended = {
|
|
352
|
+
r: Math.round(rgb1.r * (1 - ratio) + rgb2.r * ratio),
|
|
353
|
+
g: Math.round(rgb1.g * (1 - ratio) + rgb2.g * ratio),
|
|
354
|
+
b: Math.round(rgb1.b * (1 - ratio) + rgb2.b * ratio)
|
|
355
|
+
};
|
|
356
|
+
return `#${rgbToHex(blended.r, blended.g, blended.b)}`;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Ensure a hex color string has a '#' prefix.
|
|
360
|
+
*/
|
|
361
|
+
function ensureHexPrefix(hex) {
|
|
362
|
+
return hex.startsWith("#") ? hex : `#${hex}`;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Resolve a highlight color value to a CSS-ready string.
|
|
366
|
+
* Tries OOXML named highlight first, then ensures hex prefix.
|
|
367
|
+
*/
|
|
368
|
+
function resolveHighlightToCss(value) {
|
|
369
|
+
return resolveHighlightColor(value) || ensureHexPrefix(value);
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Standard colors row matching Word's color picker (below the theme matrix).
|
|
373
|
+
*/
|
|
374
|
+
const STANDARD_TEXT_COLORS = [
|
|
375
|
+
{
|
|
376
|
+
name: "Dark Red",
|
|
377
|
+
hex: "C00000"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
name: "Red",
|
|
381
|
+
hex: "FF0000"
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
name: "Orange",
|
|
385
|
+
hex: "FFC000"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
name: "Yellow",
|
|
389
|
+
hex: "FFFF00"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
name: "Light Green",
|
|
393
|
+
hex: "92D050"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
name: "Green",
|
|
397
|
+
hex: "00B050"
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
name: "Light Blue",
|
|
401
|
+
hex: "00B0F0"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
name: "Blue",
|
|
405
|
+
hex: "0070C0"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
name: "Dark Blue",
|
|
409
|
+
hex: "002060"
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
name: "Purple",
|
|
413
|
+
hex: "7030A0"
|
|
414
|
+
}
|
|
415
|
+
];
|
|
416
|
+
/**
|
|
417
|
+
* Theme color column order matching Word's color picker:
|
|
418
|
+
* Background 1 (lt1), Text 1 (dk1), Background 2 (lt2), Text 2 (dk2), Accent 1-6
|
|
419
|
+
*/
|
|
420
|
+
const THEME_MATRIX_COLUMNS = [
|
|
421
|
+
{
|
|
422
|
+
slot: "lt1",
|
|
423
|
+
name: "Background 1"
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
slot: "dk1",
|
|
427
|
+
name: "Text 1"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
slot: "lt2",
|
|
431
|
+
name: "Background 2"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
slot: "dk2",
|
|
435
|
+
name: "Text 2"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
slot: "accent1",
|
|
439
|
+
name: "Accent 1"
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
slot: "accent2",
|
|
443
|
+
name: "Accent 2"
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
slot: "accent3",
|
|
447
|
+
name: "Accent 3"
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
slot: "accent4",
|
|
451
|
+
name: "Accent 4"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
slot: "accent5",
|
|
455
|
+
name: "Accent 5"
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
slot: "accent6",
|
|
459
|
+
name: "Accent 6"
|
|
460
|
+
}
|
|
461
|
+
];
|
|
462
|
+
/**
|
|
463
|
+
* Tint/shade row definitions matching Word's picker.
|
|
464
|
+
* Row 0 = base, rows 1-3 = tints (lighter), rows 4-5 = shades (darker).
|
|
465
|
+
*/
|
|
466
|
+
const THEME_MATRIX_ROWS = [
|
|
467
|
+
{
|
|
468
|
+
type: "base",
|
|
469
|
+
value: 0,
|
|
470
|
+
hexValue: "",
|
|
471
|
+
labelSuffix: ""
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
type: "tint",
|
|
475
|
+
value: .8,
|
|
476
|
+
hexValue: "CC",
|
|
477
|
+
labelSuffix: ", Lighter 80%"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
type: "tint",
|
|
481
|
+
value: .6,
|
|
482
|
+
hexValue: "99",
|
|
483
|
+
labelSuffix: ", Lighter 60%"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
type: "tint",
|
|
487
|
+
value: .4,
|
|
488
|
+
hexValue: "66",
|
|
489
|
+
labelSuffix: ", Lighter 40%"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
type: "shade",
|
|
493
|
+
value: .75,
|
|
494
|
+
hexValue: "BF",
|
|
495
|
+
labelSuffix: ", Darker 25%"
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
type: "shade",
|
|
499
|
+
value: .5,
|
|
500
|
+
hexValue: "80",
|
|
501
|
+
labelSuffix: ", Darker 50%"
|
|
502
|
+
}
|
|
503
|
+
];
|
|
504
|
+
/**
|
|
505
|
+
* Compute a single tinted or shaded hex color from a base color.
|
|
506
|
+
*
|
|
507
|
+
* @param baseHex - 6-character hex color (no #)
|
|
508
|
+
* @param type - 'tint' to lighten, 'shade' to darken
|
|
509
|
+
* @param fraction - Amount (0-1). For tint: 0=no change, 1=white. For shade: 0=black, 1=no change.
|
|
510
|
+
* @returns 6-character hex color (no #)
|
|
511
|
+
*/
|
|
512
|
+
function getThemeTintShadeHex(baseHex, type, fraction) {
|
|
513
|
+
if (type === "tint") return applyTint(baseHex, fraction);
|
|
514
|
+
return applyShade(baseHex, fraction);
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Generate the 10×6 theme color matrix for an advanced color picker.
|
|
518
|
+
*
|
|
519
|
+
* Columns: lt1, dk1, lt2, dk2, accent1-6 (matches Word's order)
|
|
520
|
+
* Rows: base, 80% tint, 60% tint, 40% tint, 25% shade, 50% shade
|
|
521
|
+
*
|
|
522
|
+
* @param colorScheme - Theme color scheme (falls back to Office 2016 defaults)
|
|
523
|
+
* @returns 6 rows × 10 columns of ThemeMatrixCell
|
|
524
|
+
*/
|
|
525
|
+
function generateThemeTintShadeMatrix(colorScheme) {
|
|
526
|
+
const scheme = colorScheme ?? DEFAULT_THEME_COLORS;
|
|
527
|
+
return THEME_MATRIX_ROWS.map((row) => THEME_MATRIX_COLUMNS.map((col) => {
|
|
528
|
+
const baseHex = scheme[col.slot] ?? DEFAULT_THEME_COLORS[col.slot] ?? "000000";
|
|
529
|
+
let hex;
|
|
530
|
+
if (row.type === "base") hex = baseHex.toUpperCase();
|
|
531
|
+
else if (row.type === "tint") hex = applyTint(baseHex, row.value);
|
|
532
|
+
else hex = applyShade(baseHex, row.value);
|
|
533
|
+
const cell = {
|
|
534
|
+
hex,
|
|
535
|
+
themeSlot: col.slot,
|
|
536
|
+
label: `${col.name}${row.labelSuffix}`
|
|
537
|
+
};
|
|
538
|
+
if (row.type === "tint" && row.hexValue) cell.tint = row.hexValue;
|
|
539
|
+
else if (row.type === "shade" && row.hexValue) cell.shade = row.hexValue;
|
|
540
|
+
return cell;
|
|
541
|
+
}));
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* Check if two colors are equal
|
|
545
|
+
*
|
|
546
|
+
* @param color1 - First color
|
|
547
|
+
* @param color2 - Second color
|
|
548
|
+
* @param theme - Theme for resolving
|
|
549
|
+
* @returns True if colors resolve to the same value
|
|
550
|
+
*/
|
|
551
|
+
function colorsEqual(color1, color2, theme) {
|
|
552
|
+
if (!color1 && !color2) return true;
|
|
553
|
+
if (!color1 || !color2) return false;
|
|
554
|
+
return resolveColor(color1, theme).toUpperCase() === resolveColor(color2, theme).toUpperCase();
|
|
555
|
+
}
|
|
556
|
+
//#endregion
|
|
557
|
+
export { STANDARD_TEXT_COLORS, blendColors, colorsEqual, createRgbColor, createThemeColor, darkenColor, ensureHexPrefix, generateThemeTintShadeMatrix, getContrastingColor, getThemeTintShadeHex, isBlack, isWhite, lightenColor, parseColorString, resolveColor, resolveHighlightColor, resolveHighlightToCss, resolveShadingColor };
|