@stll/folio-core 0.45.0 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-edits/apply.js +85 -43
- package/dist/ai-edits/headless.js +2 -2
- package/dist/ai-edits/read.d.ts +1 -0
- package/dist/ai-edits/read.js +1 -0
- package/dist/ai-edits/snapshot.js +32 -27
- package/dist/ai-edits/table-cell-mutations.js +15 -7
- package/dist/ai-edits/table-geometry.js +21 -18
- package/dist/ai-edits/table-template.js +2 -2
- package/dist/compare/compare.js +2 -5
- package/dist/compare/content-alignment.js +108 -12
- package/dist/compare/content-types.d.ts +8 -2
- package/dist/compare/content.js +2 -11
- package/dist/compare/plan.js +7 -4
- package/dist/compare/scenario.js +2 -5
- package/dist/compare/section-boundary-properties.js +1 -2
- package/dist/compare/types.d.ts +9 -1
- package/dist/compare/types.js +12 -1
- package/dist/compat/eigenpal.d.ts +2 -1
- package/dist/compat/eigenpal.js +2 -1
- package/dist/content-controls/checkboxDisplay.d.ts +17 -0
- package/dist/content-controls/checkboxDisplay.js +46 -0
- package/dist/content-controls/findContentControls.js +3 -1
- package/dist/content-controls/mutateContentControls.js +57 -43
- package/dist/controller/contentControlWidgetController.d.ts +1 -0
- package/dist/controller/contentControlWidgetController.js +3 -0
- package/dist/controller/hiddenEditorApi.js +3 -1
- package/dist/controller/hiddenEditorManager.d.ts +1 -1
- package/dist/controller/hiddenEditorManager.js +6 -3
- package/dist/controller/layoutPipeline.js +8 -3
- package/dist/display-list/build/buildDisplayList.js +20 -1
- package/dist/display-list/build/imagePrimitives.d.ts +4 -4
- package/dist/display-list/build/imagePrimitives.js +38 -18
- package/dist/display-list/build/pageBorderPrimitives.js +2 -1
- package/dist/display-list/build/paragraphPrimitives.js +113 -14
- package/dist/display-list/build/previewPrimitives.d.ts +10 -0
- package/dist/display-list/build/previewPrimitives.js +89 -0
- package/dist/display-list/build/strokes.d.ts +177 -8
- package/dist/display-list/build/strokes.js +167 -47
- package/dist/display-list/build/tablePrimitives.js +4 -2
- package/dist/display-list/build/textBoxPrimitives.js +6 -4
- package/dist/display-list/build/textDecorations.d.ts +15 -1
- package/dist/display-list/build/textDecorations.js +15 -1
- package/dist/display-list/dom/renderDisplayListToDom.js +11 -21
- package/dist/display-list/primitives.d.ts +13 -2
- package/dist/display-list/primitives.js +36 -1
- package/dist/display-list/types.d.ts +17 -0
- package/dist/document-operations.js +2 -1
- package/dist/docx/attributeRemainder.d.ts +76 -0
- package/dist/docx/attributeRemainder.js +111 -0
- package/dist/docx/blockContentParser.d.ts +3 -1
- package/dist/docx/blockContentParser.js +102 -106
- package/dist/docx/blockPlainText.d.ts +3 -4
- package/dist/docx/blockPlainText.js +3 -0
- package/dist/docx/borderParser.js +26 -11
- package/dist/docx/builtInStyles.d.ts +8 -16
- package/dist/docx/builtInStyles.js +54 -17
- package/dist/docx/commentAnchorIndex.d.ts +30 -0
- package/dist/docx/commentAnchorIndex.js +50 -0
- package/dist/docx/commentParser.d.ts +1 -1
- package/dist/docx/commentParser.js +56 -39
- package/dist/docx/commentRangeIntegrity.d.ts +16 -1
- package/dist/docx/commentRangeIntegrity.js +42 -1
- package/dist/docx/commentRangeJoin.d.ts +9 -0
- package/dist/docx/commentRangeJoin.js +33 -0
- package/dist/docx/commentReferenceCompletion.d.ts +9 -0
- package/dist/docx/commentReferenceCompletion.js +47 -0
- package/dist/docx/commentReferenceNormalization.js +3 -1
- package/dist/docx/commentReplyMarkers.js +11 -19
- package/dist/docx/compatibility.js +56 -41
- package/dist/docx/containerChildren.d.ts +208 -0
- package/dist/docx/containerChildren.gen.d.ts +43 -0
- package/dist/docx/containerChildren.gen.js +263 -0
- package/dist/docx/containerChildren.js +153 -0
- package/dist/docx/diagramPreview.d.ts +14 -2
- package/dist/docx/diagramPreview.js +81 -169
- package/dist/docx/documentParser.d.ts +1 -1
- package/dist/docx/documentParser.js +7 -4
- package/dist/docx/drawingAnchor.d.ts +87 -0
- package/dist/docx/drawingAnchor.js +201 -0
- package/dist/docx/drawingUtils.d.ts +43 -38
- package/dist/docx/drawingUtils.js +205 -118
- package/dist/docx/ensureParaIds.js +17 -7
- package/dist/docx/fieldParser.d.ts +1 -1
- package/dist/docx/fieldParser.js +4 -4
- package/dist/docx/fieldState.d.ts +26 -0
- package/dist/docx/fieldState.js +53 -0
- package/dist/docx/fontTableParser.js +102 -41
- package/dist/docx/footnoteParser.d.ts +1 -1
- package/dist/docx/footnoteParser.js +10 -6
- package/dist/docx/graphicFrameLocks.d.ts +16 -4
- package/dist/docx/graphicFrameLocks.js +19 -6
- package/dist/docx/groupDrawingParser.js +4 -3
- package/dist/docx/headerFooterParser.js +1 -1
- package/dist/docx/headerFooterReferenceNormalization.js +1 -0
- package/dist/docx/hyperlinkParser.d.ts +66 -9
- package/dist/docx/hyperlinkParser.js +153 -26
- package/dist/docx/imageParser.js +160 -115
- package/dist/docx/index.d.ts +2 -1
- package/dist/docx/index.js +2 -1
- package/dist/docx/inlineContentRemovals.d.ts +28 -0
- package/dist/docx/inlineContentRemovals.js +46 -0
- package/dist/docx/inlineWrapperContent.d.ts +166 -0
- package/dist/docx/inlineWrapperContent.js +165 -0
- package/dist/docx/inlineWrapperParser.d.ts +11 -0
- package/dist/docx/inlineWrapperParser.js +60 -0
- package/dist/docx/nonVisualDrawingProps.d.ts +5 -13
- package/dist/docx/normalizeBaseDirection.js +12 -1
- package/dist/docx/numberingParser.d.ts +25 -2
- package/dist/docx/numberingParser.js +264 -361
- package/dist/docx/numberingReference.d.ts +9 -16
- package/dist/docx/numberingReference.js +17 -16
- package/dist/docx/numberingReferenceNormalization.js +7 -7
- package/dist/docx/ooxmlCounterFormatter.d.ts +1 -1
- package/dist/docx/ooxmlCounterFormatter.js +4 -1
- package/dist/docx/paraIdAttribute.d.ts +111 -0
- package/dist/docx/paraIdAttribute.js +142 -0
- package/dist/docx/paragraphParser.d.ts +10 -25
- package/dist/docx/paragraphParser.js +421 -496
- package/dist/docx/paragraphProperties.d.ts +23 -0
- package/dist/docx/paragraphProperties.js +279 -0
- package/dist/docx/paragraphPropertySource.js +7 -1
- package/dist/docx/paragraphTextBoxEnrichment.d.ts +3 -2
- package/dist/docx/paragraphTextBoxEnrichment.js +20 -59
- package/dist/docx/paragraphTraversal.d.ts +14 -10
- package/dist/docx/paragraphTraversal.js +53 -52
- package/dist/docx/parseWarningMessage.js +5 -1
- package/dist/docx/parserEnums.d.ts +6 -8
- package/dist/docx/parserEnums.js +4 -6
- package/dist/docx/preservedRunContent.d.ts +32 -0
- package/dist/docx/preservedRunContent.js +96 -0
- package/dist/docx/previewBudget.d.ts +44 -23
- package/dist/docx/previewBudget.js +61 -30
- package/dist/docx/propertyElementAttributes.d.ts +178 -0
- package/dist/docx/propertyElementAttributes.js +114 -0
- package/dist/docx/renderedPageBreakNormalization.js +4 -6
- package/dist/docx/rezip.d.ts +28 -2
- package/dist/docx/rezip.js +152 -27
- package/dist/docx/runConsolidator.d.ts +42 -2
- package/dist/docx/runConsolidator.js +60 -6
- package/dist/docx/runParser.d.ts +55 -19
- package/dist/docx/runParser.js +394 -306
- package/dist/docx/runPayload.d.ts +5 -0
- package/dist/docx/runPayload.js +4 -0
- package/dist/docx/sdtProperties.d.ts +39 -5
- package/dist/docx/sdtProperties.js +205 -84
- package/dist/docx/sdtPropertiesPatch.d.ts +5 -9
- package/dist/docx/sdtPropertiesPatch.js +68 -112
- package/dist/docx/sectionParser.d.ts +1 -2
- package/dist/docx/sectionParser.js +241 -238
- package/dist/docx/selectiveSave.js +3 -2
- package/dist/docx/selectiveXmlPatch.d.ts +66 -3
- package/dist/docx/selectiveXmlPatch.js +276 -133
- package/dist/docx/serializer/blockSdtSerializer.js +2 -96
- package/dist/docx/serializer/borderSerializer.d.ts +5 -5
- package/dist/docx/serializer/borderSerializer.js +12 -10
- package/dist/docx/serializer/commentSerializer.js +5 -7
- package/dist/docx/serializer/documentSerializer.js +11 -11
- package/dist/docx/serializer/fontTableSerializer.js +31 -3
- package/dist/docx/serializer/headerFooterSerializer.js +10 -9
- package/dist/docx/serializer/markupRangeAttributes.d.ts +9 -1
- package/dist/docx/serializer/markupRangeAttributes.js +9 -1
- package/dist/docx/serializer/noteSerializer.js +11 -8
- package/dist/docx/serializer/numberingSerializer.d.ts +1 -6
- package/dist/docx/serializer/numberingSerializer.js +81 -79
- package/dist/docx/serializer/paragraphSerializer.d.ts +1 -9
- package/dist/docx/serializer/paragraphSerializer.js +156 -236
- package/dist/docx/serializer/runSerializer.d.ts +1 -5
- package/dist/docx/serializer/runSerializer.js +134 -75
- package/dist/docx/serializer/sdtPropertiesSerializer.d.ts +26 -0
- package/dist/docx/serializer/sdtPropertiesSerializer.js +111 -0
- package/dist/docx/serializer/sectionPropertiesSerializer.js +42 -49
- package/dist/docx/serializer/settingsSerializer.js +6 -4
- package/dist/docx/serializer/stylesSerializer.js +8 -11
- package/dist/docx/serializer/tableSerializer.js +283 -105
- package/dist/docx/serializer/textFormattingSerializer.d.ts +28 -4
- package/dist/docx/serializer/textFormattingSerializer.js +111 -101
- package/dist/docx/serializer/xmlUtils.d.ts +1 -1
- package/dist/docx/serializer/xmlUtils.js +1 -1
- package/dist/docx/server/createBilingualDocument.js +20 -16
- package/dist/docx/server/materializeYjsDocx.d.ts +1 -1
- package/dist/docx/server/materializeYjsDocx.js +9 -1
- package/dist/docx/server/migrateYjsAttrSchema.d.ts +55 -0
- package/dist/docx/server/migrateYjsAttrSchema.js +95 -0
- package/dist/docx/settingsParser.js +7 -4
- package/dist/docx/shadingParser.d.ts +2 -1
- package/dist/docx/shadingParser.js +43 -7
- package/dist/docx/shapeParser.js +13 -8
- package/dist/docx/strictNames.d.ts +11 -0
- package/dist/docx/strictNames.gen.d.ts +45 -0
- package/dist/docx/strictNames.gen.js +50 -0
- package/dist/docx/strictNames.js +43 -0
- package/dist/docx/strictValueEncodings.gen.js +133 -131
- package/dist/docx/styleParser.js +17 -349
- package/dist/docx/tableParser.d.ts +11 -2
- package/dist/docx/tableParser.js +665 -220
- package/dist/docx/textBoxParser.d.ts +28 -3
- package/dist/docx/textBoxParser.js +69 -9
- package/dist/docx/themeColorAttribute.d.ts +13 -0
- package/dist/docx/themeColorAttribute.js +24 -0
- package/dist/docx/trackedMoveRangeNormalization.js +2 -1
- package/dist/docx/unzip.js +5 -4
- package/dist/docx/vmlImageParser.d.ts +30 -5
- package/dist/docx/vmlImageParser.js +91 -32
- package/dist/docx/vmlPreview.js +2 -2
- package/dist/docx/wrapPolygon.d.ts +30 -0
- package/dist/docx/wrapPolygon.js +70 -0
- package/dist/docx/xmlEncoding.d.ts +5 -0
- package/dist/docx/xmlEncoding.js +12 -0
- package/dist/docx/xmlParser.d.ts +23 -1
- package/dist/docx/xmlParser.js +31 -2
- package/dist/fonts/embeddedFonts.js +3 -3
- package/dist/headless-layout.js +12 -1
- package/dist/i18n/messages/catalogs.gen.d.ts +68 -0
- package/dist/i18n/messages/catalogs.gen.js +102 -34
- package/dist/i18n/messages/messages.gen.d.ts +4 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/internal/headlessRevisionResolution.js +9 -0
- package/dist/internal/pageBreakRunSourceDescendantIndex.js +7 -2
- package/dist/internal/paragraphFormattingSerialization.d.ts +20 -9
- package/dist/internal/paragraphFormattingSerialization.js +118 -83
- package/dist/layout-bridge/convert/footnoteLayout.d.ts +1 -0
- package/dist/layout-bridge/convert/footnoteLayout.js +1 -0
- package/dist/layout-bridge/convert/headerFooterLayout.d.ts +1 -0
- package/dist/layout-bridge/convert/headerFooterLayout.js +2 -0
- package/dist/layout-bridge/convert/toFlowBlocks.d.ts +17 -12
- package/dist/layout-bridge/convert/toFlowBlocks.js +267 -101
- package/dist/layout-engine/index.d.ts +2 -2
- package/dist/layout-engine/index.js +53 -17
- package/dist/layout-engine/measure/measureBlocks.d.ts +3 -0
- package/dist/layout-engine/measure/measureBlocks.js +6 -10
- package/dist/layout-engine/measure/tableCellFloating.d.ts +2 -0
- package/dist/layout-engine/measure/tableCellFloating.js +2 -0
- package/dist/layout-engine/measure/tableCellGrid.js +2 -1
- package/dist/layout-engine/measure/tableFragmentBorderGeometry.js +2 -1
- package/dist/layout-engine/measure/tableInlinePlacement.js +2 -5
- package/dist/layout-engine/paragraphSequence.js +3 -2
- package/dist/layout-engine/renderedBreakReconciliation.js +2 -1
- package/dist/layout-engine/section-breaks.d.ts +49 -2
- package/dist/layout-engine/section-breaks.js +55 -4
- package/dist/layout-engine/types.d.ts +69 -17
- package/dist/layout-engine/types.js +16 -1
- package/dist/layout-painter/borderStroke.d.ts +18 -4
- package/dist/layout-painter/renderImage.d.ts +5 -1
- package/dist/layout-painter/renderImage.js +10 -3
- package/dist/layout-painter/renderPage.d.ts +2 -0
- package/dist/layout-painter/renderPage.js +10 -4
- package/dist/layout-painter/renderParagraph.d.ts +14 -1
- package/dist/layout-painter/renderParagraph.js +34 -28
- package/dist/layout-painter/renderTable.d.ts +4 -1
- package/dist/layout-painter/renderTable.js +22 -22
- package/dist/layout-painter/renderTextBox.js +5 -3
- package/dist/managers/autoSaveCodec.d.ts +9 -1
- package/dist/managers/autoSaveCodec.js +12 -4
- package/dist/markdown/renderBlock.js +3 -0
- package/dist/markdown/renderRuns.d.ts +1 -1
- package/dist/markdown/renderRuns.js +34 -6
- package/dist/markdown/renderTable.js +24 -6
- package/dist/markdown/trailers.js +4 -1
- package/dist/model.d.ts +3 -3
- package/dist/model.js +2 -2
- package/dist/paged-layout/sectionBlockWidths.d.ts +3 -0
- package/dist/paged-layout/sectionBlockWidths.js +26 -4
- package/dist/pdf/images.js +142 -6
- package/dist/prosemirror/attrs/index.d.ts +34 -5
- package/dist/prosemirror/attrs/index.js +639 -48
- package/dist/prosemirror/authoredTransformAttrs.d.ts +28 -0
- package/dist/prosemirror/authoredTransformAttrs.js +64 -0
- package/dist/prosemirror/bookmarkBoundaryAttrs.d.ts +9 -1
- package/dist/prosemirror/bookmarkBoundaryAttrs.js +22 -3
- package/dist/prosemirror/commands/comments.js +68 -53
- package/dist/prosemirror/commands/contentControls.js +33 -20
- package/dist/prosemirror/commands/image.d.ts +10 -3
- package/dist/prosemirror/commands/image.js +46 -29
- package/dist/prosemirror/commands/pageBreak.js +1 -1
- package/dist/prosemirror/commands/paragraph.d.ts +2 -1
- package/dist/prosemirror/commands/propertyChangeScope.d.ts +12 -4
- package/dist/prosemirror/commands/propertyChangeScope.js +22 -4
- package/dist/prosemirror/commands/sectionBreak.d.ts +33 -1
- package/dist/prosemirror/commands/sectionBreak.js +187 -11
- package/dist/prosemirror/commentReferenceAttrs.d.ts +8 -0
- package/dist/prosemirror/commentReferenceAttrs.js +33 -0
- package/dist/prosemirror/commentReferenceIntegrity.d.ts +47 -0
- package/dist/prosemirror/commentReferenceIntegrity.js +43 -0
- package/dist/prosemirror/conversion/fromProseDoc.d.ts +17 -12
- package/dist/prosemirror/conversion/fromProseDoc.js +553 -207
- package/dist/prosemirror/conversion/index.d.ts +2 -2
- package/dist/prosemirror/conversion/preservedSinkCarriers.d.ts +39 -0
- package/dist/prosemirror/conversion/preservedSinkCarriers.js +19 -0
- package/dist/prosemirror/conversion/runShadingMark.js +14 -1
- package/dist/prosemirror/conversion/sdtAttrs.d.ts +10 -1
- package/dist/prosemirror/conversion/sdtAttrs.js +19 -5
- package/dist/prosemirror/conversion/toProseDoc.d.ts +7 -9
- package/dist/prosemirror/conversion/toProseDoc.js +801 -411
- package/dist/prosemirror/emptyRangeAnchor.d.ts +53 -0
- package/dist/prosemirror/emptyRangeAnchor.js +158 -0
- package/dist/prosemirror/extensions/StarterKit.js +14 -58
- package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +21 -16
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +48 -29
- package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +3 -1
- package/dist/prosemirror/extensions/features/ImagePasteExtension.js +5 -3
- package/dist/prosemirror/extensions/features/ListExtension.js +43 -24
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +1 -0
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +4 -3
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +3 -3
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +5 -5
- package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +3 -1
- package/dist/prosemirror/extensions/features/pasteCleanup.js +56 -2
- package/dist/prosemirror/extensions/features/pastedHeadingStyles.js +5 -4
- package/dist/prosemirror/extensions/markRegistry.d.ts +65 -0
- package/dist/prosemirror/extensions/markRegistry.js +138 -0
- package/dist/prosemirror/extensions/marks/InlineWrapperExtension.d.ts +18 -0
- package/dist/prosemirror/extensions/marks/InlineWrapperExtension.js +77 -0
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +26 -0
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.js +134 -0
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +2 -1
- package/dist/prosemirror/extensions/marks/UnderlineExtension.js +12 -18
- package/dist/prosemirror/extensions/marks/markUtils.d.ts +2 -1
- package/dist/prosemirror/extensions/marks/markUtils.js +49 -5
- package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.d.ts +29 -0
- package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.js +46 -0
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +4 -3
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +18 -13
- package/dist/prosemirror/extensions/nodes/BookmarkBoundaryExtension.js +28 -53
- package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.d.ts +11 -0
- package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +97 -0
- package/dist/prosemirror/extensions/nodes/FieldExtension.js +9 -7
- package/dist/prosemirror/extensions/nodes/ImageExtension.js +24 -1
- package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.d.ts +11 -0
- package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.js +43 -0
- package/dist/prosemirror/extensions/nodes/PreservedBlockExtension.d.ts +32 -0
- package/dist/prosemirror/extensions/nodes/PreservedBlockExtension.js +67 -0
- package/dist/prosemirror/extensions/nodes/PreservedXmlExtension.d.ts +16 -0
- package/dist/prosemirror/extensions/nodes/PreservedXmlExtension.js +60 -0
- package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.js +65 -0
- package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +3 -1
- package/dist/prosemirror/extensions/nodes/SdtExtension.js +22 -16
- package/dist/prosemirror/extensions/nodes/ShapeExtension.js +7 -0
- package/dist/prosemirror/extensions/nodes/TableExtension.js +142 -123
- package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +9 -1
- package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.d.ts +23 -0
- package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.js +57 -0
- package/dist/prosemirror/extensions/types.d.ts +12 -3
- package/dist/prosemirror/index.d.ts +4 -2
- package/dist/prosemirror/index.js +2 -1
- package/dist/prosemirror/inlineWrapperStack.d.ts +39 -0
- package/dist/prosemirror/inlineWrapperStack.js +92 -0
- package/dist/prosemirror/listMarker.d.ts +2 -2
- package/dist/prosemirror/listMarker.js +7 -8
- package/dist/prosemirror/listRenderingAttrs.js +11 -1
- package/dist/prosemirror/listState.d.ts +62 -0
- package/dist/prosemirror/listState.js +49 -0
- package/dist/prosemirror/moveRangeBoundaryAttrs.d.ts +13 -0
- package/dist/prosemirror/moveRangeBoundaryAttrs.js +114 -0
- package/dist/prosemirror/numberedRefFields.js +4 -4
- package/dist/prosemirror/numberingAttr.d.ts +55 -0
- package/dist/prosemirror/numberingAttr.js +74 -0
- package/dist/prosemirror/outlineLevelAttr.d.ts +29 -0
- package/dist/prosemirror/outlineLevelAttr.js +42 -0
- package/dist/prosemirror/pageBreakRunProjection.d.ts +17 -7
- package/dist/prosemirror/pageBreakRunProjection.js +19 -9
- package/dist/prosemirror/paragraphFormattingProvenance.d.ts +9 -0
- package/dist/prosemirror/paragraphFormattingProvenance.js +4 -1
- package/dist/prosemirror/plugins/selectionTracker.d.ts +3 -6
- package/dist/prosemirror/plugins/selectionTracker.js +3 -10
- package/dist/prosemirror/rangeAnchorAttrs.d.ts +14 -0
- package/dist/prosemirror/rangeAnchorAttrs.js +101 -0
- package/dist/prosemirror/replacedAnnotations.d.ts +59 -0
- package/dist/prosemirror/replacedAnnotations.js +183 -0
- package/dist/prosemirror/revisionCarriers.d.ts +86 -2
- package/dist/prosemirror/revisionCarriers.js +86 -60
- package/dist/prosemirror/runFormattingInlineCarriers.d.ts +5 -1
- package/dist/prosemirror/runFormattingInlineCarriers.js +7 -1
- package/dist/prosemirror/runIdentity.d.ts +28 -0
- package/dist/prosemirror/runIdentity.js +36 -0
- package/dist/prosemirror/runStyleFormatting.js +1 -1
- package/dist/prosemirror/schema/index.d.ts +3 -3
- package/dist/prosemirror/schema/marks.d.ts +47 -4
- package/dist/prosemirror/schema/nodes.d.ts +309 -26
- package/dist/prosemirror/schema/nodes.js +16 -1
- package/dist/prosemirror/sectionCarrier.d.ts +37 -0
- package/dist/prosemirror/sectionCarrier.js +40 -0
- package/dist/prosemirror/selectionState.d.ts +3 -0
- package/dist/prosemirror/selectionState.js +4 -1
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +5 -4
- package/dist/prosemirror/styles/resolvedStyleAttrs.js +15 -13
- package/dist/prosemirror/tableResize.js +5 -6
- package/dist/prosemirror/trackedRunInlineAtoms.d.ts +4 -0
- package/dist/prosemirror/trackedRunInlineAtoms.js +4 -0
- package/dist/prosemirror/utils/extractTrackedChanges.d.ts +10 -11
- package/dist/prosemirror/utils/extractTrackedChanges.js +109 -92
- package/dist/prosemirror/validation.js +31 -6
- package/dist/prosemirror/yjsDocumentMetadata.d.ts +73 -0
- package/dist/prosemirror/yjsDocumentMetadata.js +592 -0
- package/dist/prosemirror/zeroWidthAnchors.js +6 -0
- package/dist/render-dom/commentAnchorAttributes.d.ts +37 -0
- package/dist/render-dom/commentAnchorAttributes.js +54 -0
- package/dist/server.d.ts +3 -1
- package/dist/server.js +3 -1
- package/dist/style-sets/extract.js +4 -4
- package/dist/style-sets/stellaStyle.js +36 -23
- package/dist/types/colors.d.ts +2 -2
- package/dist/types/content.d.ts +2 -2
- package/dist/types/documentEnumValues.d.ts +53 -26
- package/dist/types/documentEnumValues.js +72 -174
- package/dist/types/formatting.d.ts +2 -2
- package/dist/types/index.d.ts +9 -2
- package/dist/utils/borderCss.d.ts +246 -0
- package/dist/utils/borderCss.js +325 -0
- package/dist/utils/clipboard.d.ts +9 -1
- package/dist/utils/clipboard.js +27 -1
- package/dist/utils/colorResolver.d.ts +4 -3
- package/dist/utils/colorResolver.js +45 -76
- package/dist/utils/createDocument.js +24 -6
- package/dist/utils/findReplace.js +52 -10
- package/dist/utils/formatToStyle.d.ts +84 -2
- package/dist/utils/formatToStyle.js +133 -52
- package/dist/utils/headingCollector.js +3 -2
- package/dist/utils/imageLuminance.d.ts +15 -0
- package/dist/utils/imageLuminance.js +32 -0
- package/dist/utils/mergeDocumentContent.js +12 -20
- package/dist/utils/paragraphFormattingMerge.js +27 -6
- package/dist/utils/replaceText.js +1 -0
- package/dist/utils/tableOperations.d.ts +5 -3
- package/dist/utils/tableOperations.js +14 -1
- package/dist/utils/tablePlacement.d.ts +7 -0
- package/dist/utils/tablePlacement.js +14 -0
- package/dist/utils/textDirectionFlow.d.ts +15 -0
- package/dist/utils/textDirectionFlow.js +38 -0
- package/dist/utils/textFormattingMerge.js +16 -4
- package/package.json +10 -10
- package/dist/ai-edits/__fixtures__/paragraphs.d.ts +0 -17
- package/dist/ai-edits/__fixtures__/paragraphs.js +0 -33
- package/dist/compare/__fixtures__/body-sequence.d.ts +0 -119
- package/dist/compare/__fixtures__/body-sequence.js +0 -225
- package/dist/compare/__fixtures__/nested-table.d.ts +0 -16
- package/dist/compare/__fixtures__/nested-table.js +0 -50
- package/dist/compare/__fixtures__/numbered-list.d.ts +0 -34
- package/dist/compare/__fixtures__/numbered-list.js +0 -85
- package/dist/docx/blockRangeMarkers.d.ts +0 -36
- package/dist/docx/blockRangeMarkers.js +0 -59
- package/dist/docx/bookmarkPlacement.d.ts +0 -9
- package/dist/docx/bookmarkPlacement.js +0 -50
- package/dist/fonts/embeddedFontTable.d.ts +0 -45
- package/dist/fonts/embeddedFontTable.js +0 -80
- package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.d.ts +0 -13
- package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.js +0 -39
- package/dist/prosemirror/yjsParagraphSourceContract.d.ts +0 -9
- package/dist/prosemirror/yjsParagraphSourceContract.js +0 -26
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { isValidHexColor } from "../utils/colorResolver.js";
|
|
2
|
-
import {
|
|
2
|
+
import { readAttributeBag } from "./attributeRemainder.js";
|
|
3
|
+
import { ShadingPatternSchema, narrowEnum } from "./parserEnums.js";
|
|
4
|
+
import { SHADING_ATTRIBUTES } from "./propertyElementAttributes.js";
|
|
5
|
+
import { parseThemeColorAttribute } from "./themeColorAttribute.js";
|
|
3
6
|
import { getAttribute } from "./xmlParser.js";
|
|
4
7
|
//#region src/docx/shadingParser.ts
|
|
5
8
|
/** `ST_HexColor`'s reserved "let the consumer decide" token. */
|
|
@@ -8,25 +11,58 @@ const parseHexColor = (value) => {
|
|
|
8
11
|
if (value === AUTOMATIC_COLOR) return { auto: true };
|
|
9
12
|
if (value && isValidHexColor(value)) return { rgb: value };
|
|
10
13
|
};
|
|
11
|
-
function parseShading(shd) {
|
|
14
|
+
function parseShading(shd, context) {
|
|
12
15
|
if (!shd) return;
|
|
13
16
|
const props = {};
|
|
14
17
|
const color = parseHexColor(getAttribute(shd, "w", "color"));
|
|
15
18
|
if (color) props.color = color;
|
|
16
19
|
const fill = parseHexColor(getAttribute(shd, "w", "fill"));
|
|
17
20
|
if (fill) props.fill = fill;
|
|
18
|
-
const
|
|
19
|
-
|
|
21
|
+
const element = shd.name ?? "w:shd";
|
|
22
|
+
const themeColor = parseThemeColorAttribute({
|
|
23
|
+
raw: getAttribute(shd, "w", "themeColor"),
|
|
24
|
+
element,
|
|
25
|
+
context
|
|
26
|
+
});
|
|
27
|
+
if (themeColor !== void 0) {
|
|
28
|
+
props.color ??= {};
|
|
29
|
+
props.color.themeColor = themeColor;
|
|
30
|
+
}
|
|
31
|
+
const themeTint = getAttribute(shd, "w", "themeTint");
|
|
32
|
+
if (themeTint) {
|
|
33
|
+
props.color ??= {};
|
|
34
|
+
props.color.themeTint = themeTint;
|
|
35
|
+
}
|
|
36
|
+
const themeShade = getAttribute(shd, "w", "themeShade");
|
|
37
|
+
if (themeShade) {
|
|
38
|
+
props.color ??= {};
|
|
39
|
+
props.color.themeShade = themeShade;
|
|
40
|
+
}
|
|
41
|
+
const themeFill = parseThemeColorAttribute({
|
|
42
|
+
raw: getAttribute(shd, "w", "themeFill"),
|
|
43
|
+
element,
|
|
44
|
+
context
|
|
45
|
+
});
|
|
46
|
+
if (themeFill !== void 0) {
|
|
20
47
|
props.fill ??= {};
|
|
21
48
|
props.fill.themeColor = themeFill;
|
|
22
49
|
}
|
|
23
50
|
const themeFillTint = getAttribute(shd, "w", "themeFillTint");
|
|
24
|
-
if (themeFillTint
|
|
51
|
+
if (themeFillTint) {
|
|
52
|
+
props.fill ??= {};
|
|
53
|
+
props.fill.themeTint = themeFillTint;
|
|
54
|
+
}
|
|
25
55
|
const themeFillShade = getAttribute(shd, "w", "themeFillShade");
|
|
26
|
-
if (themeFillShade
|
|
56
|
+
if (themeFillShade) {
|
|
57
|
+
props.fill ??= {};
|
|
58
|
+
props.fill.themeShade = themeFillShade;
|
|
59
|
+
}
|
|
27
60
|
const pattern = narrowEnum(getAttribute(shd, "w", "val"), ShadingPatternSchema);
|
|
28
61
|
if (pattern) props.pattern = pattern;
|
|
29
|
-
|
|
62
|
+
if (Object.keys(props).length === 0) return;
|
|
63
|
+
const preservedAttributes = readAttributeBag(shd, SHADING_ATTRIBUTES);
|
|
64
|
+
if (preservedAttributes) props.preservedAttributes = preservedAttributes;
|
|
65
|
+
return props;
|
|
30
66
|
}
|
|
31
67
|
//#endregion
|
|
32
68
|
export { parseShading };
|
package/dist/docx/shapeParser.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { parseDrawingAnchor } from "./drawingAnchor.js";
|
|
2
|
+
import { parseAnchorPosition, parseAnchorWrap, parseFill, parseInlineWrap, parseOutline } from "./drawingUtils.js";
|
|
2
3
|
import { parseNonVisualDrawingNames } from "./nonVisualDrawingProps.js";
|
|
3
4
|
import { ShapeTypeSchema, narrowEnum } from "./parserEnums.js";
|
|
4
5
|
import { findAllDeep, findChildByLocalName, findChildren, getAttribute, getChildElements, parseNumericAttribute, parseOnOffAttribute } from "./xmlParser.js";
|
|
@@ -27,13 +28,13 @@ function parseTransform(xfrm) {
|
|
|
27
28
|
height: parseNumericAttribute(ext, null, "cy") ?? 0
|
|
28
29
|
};
|
|
29
30
|
const rotation = rotToDegrees(getAttribute(xfrm, null, "rot"));
|
|
30
|
-
const flipH = parseOnOffAttribute(xfrm, null, "flipH")
|
|
31
|
-
const flipV = parseOnOffAttribute(xfrm, null, "flipV")
|
|
32
|
-
if (rotation === void 0 &&
|
|
31
|
+
const flipH = parseOnOffAttribute(xfrm, null, "flipH");
|
|
32
|
+
const flipV = parseOnOffAttribute(xfrm, null, "flipV");
|
|
33
|
+
if (rotation === void 0 && flipH === void 0 && flipV === void 0) return { size };
|
|
33
34
|
const transform = {};
|
|
34
35
|
if (rotation !== void 0) transform.rotation = rotation;
|
|
35
|
-
if (flipH) transform.flipH =
|
|
36
|
-
if (flipV) transform.flipV =
|
|
36
|
+
if (flipH !== void 0) transform.flipH = flipH;
|
|
37
|
+
if (flipV !== void 0) transform.flipV = flipV;
|
|
37
38
|
return {
|
|
38
39
|
size,
|
|
39
40
|
transform
|
|
@@ -140,11 +141,13 @@ function parseShape(node) {
|
|
|
140
141
|
const fill = parseShapeFill(spPr);
|
|
141
142
|
const outline = parseOutline(spPr);
|
|
142
143
|
const id = cNvPr ? getAttribute(cNvPr, null, "id") ?? void 0 : void 0;
|
|
144
|
+
const names = parseNonVisualDrawingNames(cNvPr);
|
|
143
145
|
const shape = {
|
|
144
146
|
type: "shape",
|
|
145
147
|
shapeType,
|
|
146
148
|
size,
|
|
147
|
-
...
|
|
149
|
+
...names,
|
|
150
|
+
...Object.keys(names).length > 0 ? { shapeNames: names } : {}
|
|
148
151
|
};
|
|
149
152
|
const geometryAdjustments = parseGeometryAdjustments(spPr);
|
|
150
153
|
if (geometryAdjustments !== void 0) shape.geometryAdjustments = geometryAdjustments;
|
|
@@ -189,7 +192,9 @@ function parseShapeFromDrawing(drawingEl) {
|
|
|
189
192
|
if (position) shape.position = position;
|
|
190
193
|
const wrap = parseAnchorWrap(container);
|
|
191
194
|
if (wrap) shape.wrap = wrap;
|
|
192
|
-
|
|
195
|
+
const drawingAnchor = parseDrawingAnchor(container);
|
|
196
|
+
if (drawingAnchor) shape.anchor = drawingAnchor;
|
|
197
|
+
} else shape.wrap = parseInlineWrap(container);
|
|
193
198
|
const docPr = findChildByLocalName(container, "docPr");
|
|
194
199
|
if (docPr) {
|
|
195
200
|
const id = getAttribute(docPr, null, "id");
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { XmlElement } from "./xmlParser.js";
|
|
2
|
+
import { RenamedSlot } from "./strictNames.gen.js";
|
|
3
|
+
//#region src/docx/strictNames.d.ts
|
|
4
|
+
/** A renamed child of `parent`, in whichever spelling the document used. */
|
|
5
|
+
declare const findChildAnySpelling: (parent: XmlElement | null | undefined, slot: RenamedSlot) => XmlElement | null;
|
|
6
|
+
/** A renamed attribute's number, in whichever spelling the document used. */
|
|
7
|
+
declare const numericAttributeAnySpelling: (element: XmlElement | null | undefined, slot: RenamedSlot) => number | undefined;
|
|
8
|
+
/** Whether the element carries a renamed attribute under either spelling. */
|
|
9
|
+
declare const hasAttributeAnySpelling: (element: XmlElement | null | undefined, slot: RenamedSlot) => boolean;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { findChildAnySpelling, hasAttributeAnySpelling, numericAttributeAnySpelling };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/docx/strictNames.gen.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* GENERATED FILE — do not edit.
|
|
4
|
+
*
|
|
5
|
+
* The WordprocessingML names ECMA-376 Part 1 spells by writing direction and
|
|
6
|
+
* Part 4 spells by physical side, derived from the cited list in
|
|
7
|
+
* `specifications/strict-names/renames.ts` and the committed schema graph by
|
|
8
|
+
* `scripts/generate-strict-names.ts`. Regenerate with:
|
|
9
|
+
*
|
|
10
|
+
* bun run generate:strict-names
|
|
11
|
+
*
|
|
12
|
+
* A key is the complex type the name belongs to — the element's own type, or
|
|
13
|
+
* the attribute's owner — then the local name, marked `@` for an attribute.
|
|
14
|
+
* The comment above each entry names the types that declare the pair.
|
|
15
|
+
*/
|
|
16
|
+
/** What folio writes for a name a Strict producer spelled by writing direction. */
|
|
17
|
+
declare const TRANSITIONAL_NAME_BY_STRICT_NAME: {
|
|
18
|
+
readonly "CT_Border end": "right";
|
|
19
|
+
readonly "CT_Border start": "left";
|
|
20
|
+
readonly "CT_Ind @end": "right";
|
|
21
|
+
readonly "CT_Ind @endChars": "rightChars";
|
|
22
|
+
readonly "CT_Ind @start": "left";
|
|
23
|
+
readonly "CT_Ind @startChars": "leftChars";
|
|
24
|
+
readonly "CT_TblWidth end": "right";
|
|
25
|
+
readonly "CT_TblWidth start": "left";
|
|
26
|
+
};
|
|
27
|
+
/** A name Part 1 renamed, keyed by the complex type it belongs to. */
|
|
28
|
+
type StrictName = keyof typeof TRANSITIONAL_NAME_BY_STRICT_NAME;
|
|
29
|
+
/** The same keys as a list, so a consumer can walk them without widening them. */
|
|
30
|
+
declare const STRICT_NAMES: readonly ["CT_Border end", "CT_Border start", "CT_Ind @end", "CT_Ind @endChars", "CT_Ind @start", "CT_Ind @startChars", "CT_TblWidth end", "CT_TblWidth start"];
|
|
31
|
+
/** What a Strict producer may have written where folio writes the Transitional name. */
|
|
32
|
+
declare const STRICT_NAMES_BY_TRANSITIONAL_NAME: {
|
|
33
|
+
readonly "CT_Border left": readonly ["start"];
|
|
34
|
+
readonly "CT_Border right": readonly ["end"];
|
|
35
|
+
readonly "CT_Ind @left": readonly ["start"];
|
|
36
|
+
readonly "CT_Ind @leftChars": readonly ["startChars"];
|
|
37
|
+
readonly "CT_Ind @right": readonly ["end"];
|
|
38
|
+
readonly "CT_Ind @rightChars": readonly ["endChars"];
|
|
39
|
+
readonly "CT_TblWidth left": readonly ["start"];
|
|
40
|
+
readonly "CT_TblWidth right": readonly ["end"];
|
|
41
|
+
};
|
|
42
|
+
/** A slot a reader must take in either spelling, keyed the same way. */
|
|
43
|
+
type RenamedSlot = keyof typeof STRICT_NAMES_BY_TRANSITIONAL_NAME;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { RenamedSlot, STRICT_NAMES, STRICT_NAMES_BY_TRANSITIONAL_NAME, StrictName, TRANSITIONAL_NAME_BY_STRICT_NAME };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//#region src/docx/strictNames.gen.ts
|
|
2
|
+
/**
|
|
3
|
+
* GENERATED FILE — do not edit.
|
|
4
|
+
*
|
|
5
|
+
* The WordprocessingML names ECMA-376 Part 1 spells by writing direction and
|
|
6
|
+
* Part 4 spells by physical side, derived from the cited list in
|
|
7
|
+
* `specifications/strict-names/renames.ts` and the committed schema graph by
|
|
8
|
+
* `scripts/generate-strict-names.ts`. Regenerate with:
|
|
9
|
+
*
|
|
10
|
+
* bun run generate:strict-names
|
|
11
|
+
*
|
|
12
|
+
* A key is the complex type the name belongs to — the element's own type, or
|
|
13
|
+
* the attribute's owner — then the local name, marked `@` for an attribute.
|
|
14
|
+
* The comment above each entry names the types that declare the pair.
|
|
15
|
+
*/
|
|
16
|
+
/** What folio writes for a name a Strict producer spelled by writing direction. */
|
|
17
|
+
const TRANSITIONAL_NAME_BY_STRICT_NAME = {
|
|
18
|
+
"CT_Border end": "right",
|
|
19
|
+
"CT_Border start": "left",
|
|
20
|
+
"CT_Ind @end": "right",
|
|
21
|
+
"CT_Ind @endChars": "rightChars",
|
|
22
|
+
"CT_Ind @start": "left",
|
|
23
|
+
"CT_Ind @startChars": "leftChars",
|
|
24
|
+
"CT_TblWidth end": "right",
|
|
25
|
+
"CT_TblWidth start": "left"
|
|
26
|
+
};
|
|
27
|
+
/** The same keys as a list, so a consumer can walk them without widening them. */
|
|
28
|
+
const STRICT_NAMES = [
|
|
29
|
+
"CT_Border end",
|
|
30
|
+
"CT_Border start",
|
|
31
|
+
"CT_Ind @end",
|
|
32
|
+
"CT_Ind @endChars",
|
|
33
|
+
"CT_Ind @start",
|
|
34
|
+
"CT_Ind @startChars",
|
|
35
|
+
"CT_TblWidth end",
|
|
36
|
+
"CT_TblWidth start"
|
|
37
|
+
];
|
|
38
|
+
/** What a Strict producer may have written where folio writes the Transitional name. */
|
|
39
|
+
const STRICT_NAMES_BY_TRANSITIONAL_NAME = {
|
|
40
|
+
"CT_Border left": ["start"],
|
|
41
|
+
"CT_Border right": ["end"],
|
|
42
|
+
"CT_Ind @left": ["start"],
|
|
43
|
+
"CT_Ind @leftChars": ["startChars"],
|
|
44
|
+
"CT_Ind @right": ["end"],
|
|
45
|
+
"CT_Ind @rightChars": ["endChars"],
|
|
46
|
+
"CT_TblWidth left": ["start"],
|
|
47
|
+
"CT_TblWidth right": ["end"]
|
|
48
|
+
};
|
|
49
|
+
//#endregion
|
|
50
|
+
export { STRICT_NAMES, STRICT_NAMES_BY_TRANSITIONAL_NAME, TRANSITIONAL_NAME_BY_STRICT_NAME };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { STRICT_NAMES_BY_TRANSITIONAL_NAME } from "./strictNames.gen.js";
|
|
2
|
+
import { findChild, getAttribute, parseNumericAttribute } from "./xmlParser.js";
|
|
3
|
+
//#region src/docx/strictNames.ts
|
|
4
|
+
/**
|
|
5
|
+
* Reading a slot whose name a Strict producer spells by writing direction.
|
|
6
|
+
*
|
|
7
|
+
* ECMA-376 Part 1 names a horizontal edge `start`/`end` where Part 4 names it
|
|
8
|
+
* `left`/`right`, and Part 4 declares both so a Transitional consumer reads
|
|
9
|
+
* either. folio's model holds one direction and every save writes the physical
|
|
10
|
+
* name, so the tolerance belongs on the way in — once, over the generated
|
|
11
|
+
* table, rather than as a `?? findChild(…, "start")` at each reader. A slot the
|
|
12
|
+
* table does not name is not a renamed slot, and passing one here is a compile
|
|
13
|
+
* error rather than a lookup that silently finds nothing.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* The spellings a document may have used for a slot, folio's own first.
|
|
17
|
+
*
|
|
18
|
+
* The key carries the complex type, so the local name is what follows the
|
|
19
|
+
* space, without the `@` that marks an attribute.
|
|
20
|
+
*/
|
|
21
|
+
const spellingsOf = (slot) => {
|
|
22
|
+
const local = slot.slice(slot.indexOf(" ") + 1);
|
|
23
|
+
return [local.startsWith("@") ? local.slice(1) : local, ...STRICT_NAMES_BY_TRANSITIONAL_NAME[slot]];
|
|
24
|
+
};
|
|
25
|
+
/** A renamed child of `parent`, in whichever spelling the document used. */
|
|
26
|
+
const findChildAnySpelling = (parent, slot) => {
|
|
27
|
+
for (const spelling of spellingsOf(slot)) {
|
|
28
|
+
const child = findChild(parent, "w", spelling);
|
|
29
|
+
if (child !== null) return child;
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
};
|
|
33
|
+
/** A renamed attribute's number, in whichever spelling the document used. */
|
|
34
|
+
const numericAttributeAnySpelling = (element, slot) => {
|
|
35
|
+
for (const spelling of spellingsOf(slot)) {
|
|
36
|
+
const value = parseNumericAttribute(element, "w", spelling);
|
|
37
|
+
if (value !== void 0) return value;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
/** Whether the element carries a renamed attribute under either spelling. */
|
|
41
|
+
const hasAttributeAnySpelling = (element, slot) => spellingsOf(slot).some((spelling) => getAttribute(element, "w", spelling) !== null);
|
|
42
|
+
//#endregion
|
|
43
|
+
export { findChildAnySpelling, hasAttributeAnySpelling, numericAttributeAnySpelling };
|