@docx-editor.dev/core 2.0.1 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +32 -33
  2. package/dist/automation.cjs +1 -1
  3. package/dist/automation.d.cts +2 -2
  4. package/dist/automation.d.ts +2 -2
  5. package/dist/automation.js +1 -1
  6. package/dist/binding.cjs +1 -1
  7. package/dist/binding.d.cts +14 -8
  8. package/dist/binding.d.ts +14 -8
  9. package/dist/binding.js +1 -1
  10. package/dist/chunk-2DTQDAN7.js +2 -0
  11. package/dist/chunk-3JKQE4QJ.cjs +2 -0
  12. package/dist/chunk-4WWEDTTE.js +2 -0
  13. package/dist/chunk-6WIIHJFY.js +1 -0
  14. package/dist/chunk-7VQ7YLW3.cjs +1 -0
  15. package/dist/chunk-BS554B6D.cjs +2 -0
  16. package/dist/chunk-BZK64YU3.cjs +10 -0
  17. package/dist/chunk-F2VQQW5R.cjs +12 -0
  18. package/dist/chunk-GQQOL4PV.js +1 -0
  19. package/dist/chunk-JQFDLZXQ.cjs +2 -0
  20. package/dist/chunk-O2WQY7IT.cjs +5 -0
  21. package/dist/chunk-PC76F2HR.cjs +1 -0
  22. package/dist/chunk-QRAUDDVY.js +2 -0
  23. package/dist/chunk-RKNH4ZFT.js +12 -0
  24. package/dist/chunk-STCITBJK.js +12 -0
  25. package/dist/chunk-TBBXCC7D.js +5 -0
  26. package/dist/chunk-TSXT537P.cjs +12 -0
  27. package/dist/chunk-Y7TA7TPF.js +10 -0
  28. package/dist/contracts/editor.d.cts +6 -6
  29. package/dist/contracts/editor.d.ts +6 -6
  30. package/dist/contracts/interaction.d.cts +6 -6
  31. package/dist/contracts/interaction.d.ts +6 -6
  32. package/dist/contracts/modules.cjs +1 -1
  33. package/dist/contracts/modules.d.cts +30 -3
  34. package/dist/contracts/modules.d.ts +30 -3
  35. package/dist/contracts/modules.js +1 -1
  36. package/dist/{tree-package-store-DOKMtCnh.d.cts → custom-node-writes-YqISlSRl.d.cts} +181 -4
  37. package/dist/{tree-package-store-D5S7VKs5.d.ts → custom-node-writes-ttKuYd0M.d.ts} +181 -4
  38. package/dist/{editor-D0UDock4.d.cts → editor-B93PggnR.d.cts} +24 -5
  39. package/dist/{editor-C1QRi1v4.d.ts → editor-CFsSrxGR.d.ts} +24 -5
  40. package/dist/editor.cjs +1 -1
  41. package/dist/editor.css +1368 -279
  42. package/dist/editor.d.cts +19 -19
  43. package/dist/editor.d.ts +19 -19
  44. package/dist/editor.js +1 -1
  45. package/dist/{image-resources-BJnTpG66.d.ts → image-resources-C_YnqPhn.d.ts} +19 -11
  46. package/dist/{image-resources-BpIydXtU.d.cts → image-resources-DwpNnTg3.d.cts} +19 -11
  47. package/dist/{index-CrW-IxXt.d.cts → index-DQhDm4o0.d.cts} +34 -13
  48. package/dist/{index-ZqBEOrTV.d.ts → index-DTbKoFJL.d.ts} +34 -13
  49. package/dist/index.cjs +1 -1
  50. package/dist/index.d.cts +13 -13
  51. package/dist/index.d.ts +13 -13
  52. package/dist/index.js +1 -1
  53. package/dist/layout.cjs +1 -1
  54. package/dist/layout.d.cts +869 -819
  55. package/dist/layout.d.ts +869 -819
  56. package/dist/layout.js +1 -1
  57. package/dist/output.cjs +1 -1
  58. package/dist/output.d.cts +4 -4
  59. package/dist/output.d.ts +4 -4
  60. package/dist/output.js +1 -1
  61. package/dist/{protocol-oxHaWmt4.d.ts → protocol-BWVA3Q1p.d.ts} +56 -2
  62. package/dist/{protocol-CAkOBBGE.d.cts → protocol-FAz_nPm_.d.cts} +56 -2
  63. package/dist/review-reads-CsoXSvUg.d.ts +401 -0
  64. package/dist/review-reads-qW0jvdF1.d.cts +401 -0
  65. package/dist/{review-support-DS8DYX2a.d.cts → review-support-D64Wu236.d.cts} +37 -5
  66. package/dist/{review-support-Fy3vdIea.d.ts → review-support-nsLXC9jf.d.ts} +37 -5
  67. package/dist/{semantic-cell-selection-DsmHmLJ5.d.ts → semantic-cell-selection-D_8RbPII.d.ts} +2 -2
  68. package/dist/{semantic-cell-selection-CZjBSmMv.d.cts → semantic-cell-selection-DwLB71fF.d.cts} +2 -2
  69. package/dist/{semantic-interaction-Dy-dCUFF.d.ts → semantic-interaction-CXH2wFqi.d.ts} +1 -1
  70. package/dist/{semantic-interaction-D-Dszxrn.d.cts → semantic-interaction-DqcEonqD.d.cts} +1 -1
  71. package/dist/{semantic-paint-drawings-BA3z9jl8.d.ts → semantic-paint-drawings-B5Wk2so5.d.ts} +1 -1
  72. package/dist/{semantic-paint-drawings-D7qbB0E2.d.cts → semantic-paint-drawings-x8g44lD_.d.cts} +1 -1
  73. package/dist/{semantic-records-CJR3BvHs.d.cts → semantic-records-COVFW5aS.d.cts} +77 -4
  74. package/dist/{semantic-records-CWodBJsz.d.ts → semantic-records-zTC0_1zi.d.ts} +77 -4
  75. package/dist/{shaped-measurer-CNIT_svZ.d.cts → shaped-measurer-AFnFxoot.d.cts} +1 -1
  76. package/dist/{shaped-measurer-B-TAtcQU.d.ts → shaped-measurer-CZXL-a6v.d.ts} +1 -1
  77. package/dist/store.cjs +1 -1
  78. package/dist/store.d.cts +223 -317
  79. package/dist/store.d.ts +223 -317
  80. package/dist/store.js +1 -1
  81. package/dist/{tree-op-types-CwOeiaQ8.d.ts → tree-op-types-DWLCllG7.d.ts} +80 -25
  82. package/dist/{tree-op-types-DMiW6nIH.d.cts → tree-op-types-UOXlRUqQ.d.cts} +80 -25
  83. package/dist/{tree-session-CiUel5Kz.d.ts → tree-session-BtVFXsF6.d.ts} +45 -7
  84. package/dist/{tree-session-D47_imvR.d.cts → tree-session-DxIOHUOD.d.cts} +45 -7
  85. package/dist/{tree-store-CxifqwIv.d.cts → tree-store-B1lEkdXc.d.cts} +1 -1
  86. package/dist/{tree-store-hLtjeyWE.d.ts → tree-store-BscFPB7x.d.ts} +1 -1
  87. package/package.json +10 -5
  88. package/dist/chunk-5KSCB2OZ.js +0 -2
  89. package/dist/chunk-BSC44TIT.js +0 -5
  90. package/dist/chunk-DLPL5DAG.js +0 -12
  91. package/dist/chunk-DOEIARE2.js +0 -2
  92. package/dist/chunk-G7YCQBZE.cjs +0 -5
  93. package/dist/chunk-HR7K3W6A.js +0 -1
  94. package/dist/chunk-HVAV2JSN.js +0 -11
  95. package/dist/chunk-MYH2HCUJ.cjs +0 -2
  96. package/dist/chunk-NSM75TN6.cjs +0 -1
  97. package/dist/chunk-PHDVKUWZ.js +0 -1
  98. package/dist/chunk-QADYGK5L.cjs +0 -12
  99. package/dist/chunk-RNBHTPW7.js +0 -10
  100. package/dist/chunk-UD2ZXLFI.cjs +0 -2
  101. package/dist/chunk-VYAVK2AH.cjs +0 -1
  102. package/dist/chunk-YUK46A2N.cjs +0 -11
  103. package/dist/chunk-ZMIX42J7.cjs +0 -10
  104. package/dist/chunk-ZT55Q52J.cjs +0 -2
  105. package/dist/chunk-ZUALAR4M.js +0 -2
  106. package/dist/note-properties-CnmCoory.d.cts +0 -68
  107. package/dist/note-properties-m75hmP70.d.ts +0 -68
package/dist/store.js CHANGED
@@ -1 +1 @@
1
- export{j as Budget,i as BudgetError,z as COMPARATORS,l as CancellationController,k as CancellationError,o as DeterministicClock,v as DeterministicMemoryMeter,a as ID_KINDS,t as LIMIT_KEYS,s as LIMIT_SPECS,N as NO_TRACKING_SETTINGS,n as PortRegistry,m as PortResolutionError,g as RegistryError,p as SequentialIdentity,w as assertLimitInvariants,c as assertValidId,q as beginOperation,x as canonicalize,A as compareArtifacts,e as compareSemVer,F as deobfuscateFont,K as diffSemanticDigests,I as digestPart,r as endOperation,L as ensureListDefinition,M as ensureNumberingLevel,B as fingerprint,E as hashAuthored,b as isValidId,u as makeLimitCounter,d as parseSemVer,G as readEmbeddedFonts,O as readTrackingSettings,D as replayFixture,h as resolve,H as resolveTocRowHeadings,f as satisfies,J as semanticDigest,y as stableHash,C as validateFixture}from'./chunk-DOEIARE2.js';export{Ie as ACCEPTED_PARAGRAPH_PROPERTIES,He as ACCEPTED_RUN_PROPERTIES,y as ALL_FROZEN_IDS,kf as AUTHORABLE_PARAGRAPH_PROPERTIES,lf as AUTHORABLE_RUN_PROPERTIES,G as BoundedCounter,t as CANONICAL_MUTATION_ORIGINS,$d as CONTENT_CONTROL_ID_MAX,re as CONTENT_CONTROL_PROPERTY_ORDER,P as DANGEROUS_KEYS,ud as DEFAULT_ENDNOTE_PROPERTIES,td as DEFAULT_FOOTNOTE_PROPERTIES,D as DEFAULT_IMAGE_RESOURCE_LIMITS,A as DEFAULT_LIMITS,df as DEFAULT_MAX_EDITABLE_STORY_PARTS,vb as DEFAULT_OOXML_PACKAGE_LIMITS,La as DEFAULT_ZIP_LIMITS,x as DEPENDENCY_KEY_IDS,Q as DangerousKeyError,Zb as FIELD_ATOM_CHAR,z as HARD_CEILINGS,Pa as HYPERLINK_RELATIONSHIP_TYPE,L as IMAGE_RELATIONSHIP_TYPE,C as IMAGE_RESOURCE_HARD_CEILINGS,Wa as IMAGE_WRAP_TARGETS,Z as INERT_EXECUTABLE_KINDS,F as LimitExceededError,_d as MAX_CONTENT_CONTROLS_PER_PART,Zd as MAX_CONTENT_CONTROL_NESTING,pd as MAX_NOTES_PER_PART,Od as MAX_NOTE_REFERENCE_PARTS,Nd as MAX_NOTE_REFERENCE_SCAN,ue as MAX_STORY_SDT_NESTING,gb as MAX_SVG_SNIFF_BYTES,u as NON_CANONICAL_ORIGINS,Sc as NOTE_ATOM_CHAR,Wc as NOTE_CONTINUATION_SEPARATOR_ID,Uc as NOTE_ID_MAX,Tc as NOTE_ID_MIN,Vc as NOTE_SEPARATOR_ID,Oa as OFFICE_RELATIONSHIP_NAMESPACE_URI,za as OOXML_NODE_IDENTITY_RULES,s as ORIGIN_IDS,Ub as PAGE_BREAK_CHAR,ja as PrefixAllocator,v as RESULT_IDS,w as RUNTIME_PORT_IDS,If as SEARCH_MATCH_LIMIT,Hf as SEARCH_QUERY_MAX,Pe as TABLE_BORDER_STYLES,vc as TOC_LEVEL_INDENT_TWIPS,oc as TOC_MAX_BOOKMARKS_PER_REFRESH,nc as TOC_MAX_ENTRIES,pc as TOC_MAX_FIELD_NESTING,mc as TOC_MAX_INSTRUCTION_CHARS,qc as TOC_MAX_PAGE_PASSES,Je as TREE_DOC_OP_KINDS,cf as TreeDocumentStore,ef as TreePackageStore,ze as W15_NAMESPACE_URI,la as WML_NAMESPACE_URI,na as XMLNS_NAMESPACE_URI,ma as XML_NAMESPACE_URI,ff as addComment,te as allocateContentControlId,rb as allocateDrawingPropertyId,qd as allocateNoteId,Ka as applyEdits,Rc as applyHeaderFooterLifecycleOp,Xd as applyNoteLifecycleOp,_e as applyTreeOp,n as asciiFold,ia as assertValidQName,kc as atomicFieldSpansOf,od as atomicNoteSpansOf,Nc as authorableHyperlinkTarget,Ad as authoredDocumentEndnoteProperties,zd as authoredDocumentFootnoteProperties,xd as authoredEndnotePropertiesFromSectPr,wd as authoredFootnotePropertiesFromSectPr,of as authoredProperties,we as bodyStoryRoot,Bc as bookmarkPairNodes,uc as buildBookmarkIndex,J as buildContentTypeIndex,M as buildRelationshipSet,yc as buildTocContentControl,xc as buildTocEntryParagraph,wa as canonicalOoxmlFingerprint,Yd as cascadeDeletedNoteReferences,Ee as cascadeEmptiedComments,ea as childElements,Mb as collectFlowBlocks,Ba as collectNodeIds,Rd as collectNoteReferences,Sd as collectPackageNoteReferences,Cf as collectReviewItems,Ge as collectRevisionSites,Qb as collectSectionPropertyNodes,ye as collectStoryParagraphs,Ae as commentAnchorsOfStory,xf as commentBodyText,yf as commentInitials,Bf as commentItemsOf,if as commentPartNameOf,jf as commentsExtendedPartNameOf,Be as commentsOfPart,Y as containsCssFetch,de as contentControlContentChildren,he as contentControlContentNodeOf,Kb as contentControlContentOf,ge as contentControlEndPropertiesNodeOf,ke as contentControlLevelOf,fe as contentControlPropertiesNodeOf,je as contentControlPropertiesOf,ne as contentControlTextOf,le as contentControlsIn,zb as contentTypesPartBytes,qb as createImageResourceCache,Ca as createNodeIdAllocator,Pd as createNoteReferenceScanBudget,ld as customMarkFollows,De as deleteCommentThread,Ec as deriveOoxmlIndexes,sc as detectBodyTocs,p as detectDuplicateNames,Td as diagnoseNoteReferences,qf as directParagraphMarkProperties,pf as directParagraphProperties,We as drawingOpImpact,Oc as ensureHyperlinkRelationship,X as escapeCssString,V as escapeXml,I as extensionKey,ic as fieldAtomText,hc as fieldOnOffAttribute,me as findContentControl,tc as findDetectedToc,da as findElement,Ea as findNode,sd as findNoteById,Mf as findOccurrences,Gf as firstReviewRange,ee as flattenContentControls,_b as fldCharType,gc as fldSimpleInstr,Hc as fnv1a32,Jf as foldCase,Yc as formatNoteScopeId,tf as formatOwnedRunIds,Yb as hardBreakAttributes,Vb as hardBreakKind,Xb as hardBreakText,Fe as hasAnyComment,hb as hasBoundedSvgRoot,hf as hasCommentPart,Da as hasNode,Ra as hyperlinkAnchorOf,Sa as hyperlinkRelationshipIdOf,Ta as hyperlinkTargetOf,pb as imageResourceLookupFor,Cc as indexStyles,Ld as inlineControlEndingAt,Md as inlineControlStartingAt,Ha as insertChildren,fc as instrTextValue,mf as isAuthorableRunProperty,Ib as isContentControl,Jb as isContentControlContent,be as isContentControlContentNode,ae as isContentControlNode,ce as isContentControlWrapper,qa as isContentRevisionKind,ed as isContinuationSeparatorNode,R as isDangerousKey,Ze as isDrawingTreeDocOp,$c as isEndnotesNode,$ as isEvaluableField,jc as isFieldChrome,cc as isFldChar,$b as isFldCharNode,ec as isFldSimple,bc as isFldSimpleNode,_c as isFootnotesNode,Qc as isHeaderFooterLifecycleOp,Qa as isHyperlinkNode,_ as isInertExecutable,dc as isInstrText,ac as isInstrTextNode,Dd as isLegalEndnotePosition,lc as isLegalFldCharType,Ed as isLegalFootnotePosition,Fd as isLegalNumRestart,id as isNormalNote,nd as isNoteAtomNode,Wd as isNoteLifecycleOp,ad as isNoteNode,cd as isNoteRefNode,bd as isNoteReferenceNode,Wb as isPageBreakNode,ra as isRangeMarkerKind,Lf as isSearchableQuery,dd as isSeparatorNode,H as isValidMime,ga as isValidNCName,Fc as isValidParaId,ha as isValidQName,Kf as isWholeWord,Df as linkRevisionReplies,ob as liveDrawingReferenceCount,zf as locateSites,pe as lockForbidsEdit,qe as lockForbidsRemoval,rf as mergedProperties,Ic as mintParaId,Lc as mintedParagraphIdentityAttributes,Vd as normalNoteIds,Mc as normalizeParagraphIdentity,l as normalizePartName,md as noteAtomText,gd as noteIdOf,fd as noteKindOf,kd as noteRefKindOf,jd as noteReferenceKindOf,hd as noteTypeOf,rd as notesOf,Ud as notesPartHasId,S as nullRecord,xa as ooxmlTreesEqual,se as orderedContentControlProperties,Gc as paraIdOf,Kd as paragraphOffsetIndex,Ef as paragraphOrderOfPart,$e as paragraphTextOf,Fa as parentNodeOf,vd as parseAuthoredNoteProperties,ie as parseContentControlId,Xc as parseNoteId,Zc as parseNoteScopeId,rc as parseTocInstruction,o as partNameKey,Ac as planTocEntries,ab as projectDrawing,nf as propertyContainer,sa as readOnOffChild,wb as readOoxmlPackage,Aa as readOoxmlPart,ca as readXml,Ma as readZip,Pc as relationshipTargetIn,Ab as relationshipsOf,Cb as relsPartNameFor,Ja as removeNode,Ga as replaceChildren,Ia as replaceNode,oe as resolveContentControlLock,K as resolveContentType,Bb as resolveContentTypeOf,Cd as resolveEndnoteProperties,Bd as resolveFootnoteProperties,Tb as resolveHeaderFooterParts,Sb as resolveHeaderFooterPartsBySection,Rb as resolveHeaderFooterResolutionBySection,O as resolveImageRelationship,E as resolveImageResourceLimits,q as resolveInternalTarget,B as resolveLimits,Qd as resolveNotesPart,N as resolveRelationship,wf as reviewItemKey,Ff as reviewItemRanges,Af as revisionItemsOf,sf as runAddressRanges,uf as runPropertyEdits,vf as runsCovering,U as sanitizeHref,aa as scrubExport,Jd as segmentsOf,ta as serializeOoxmlPart,gf as setCommentResolved,yd as settingsPartOf,ib as sniffImageMime,xe as storyParagraphs,ve as storyRootsOf,Dc as stylesPartOf,fa as textContent,Ce as threadStateOfPart,T as toSafeRecord,zc as tocEntryText,wc as tocLeftIndentTwips,Jc as usedParaIds,Xe as validateDrawingOp,r as validateExternalTarget,kb as validateGifHeader,lb as validateJpegHeader,ya as validateOoxmlPart,Gb as validatePackageInvariants,jb as validatePngHeader,nb as validateRasterHeader,bf as validateTreeOp,Kc as w14RootPrefix,Ob as walkAllStoryParagraphs,Pb as walkParagraphInline,Nb as walkStoryBlocks,sb as withBinaryPart,Db as withContentTypeOverride,tb as withEmbeddedImage,Fb as withNewPart,yb as withPart,Eb as withRelationship,ub as withoutUnreferencedImagePart,Ye as wrapTargetToAnchorSpec,xb as writeOoxmlPackage,Na as writeZip}from'./chunk-RNBHTPW7.js';
1
+ export{j as Budget,i as BudgetError,z as COMPARATORS,l as CancellationController,k as CancellationError,o as DeterministicClock,v as DeterministicMemoryMeter,a as ID_KINDS,t as LIMIT_KEYS,s as LIMIT_SPECS,N as NO_TRACKING_SETTINGS,n as PortRegistry,m as PortResolutionError,g as RegistryError,p as SequentialIdentity,w as assertLimitInvariants,c as assertValidId,q as beginOperation,x as canonicalize,A as compareArtifacts,e as compareSemVer,F as deobfuscateFont,K as diffSemanticDigests,I as digestPart,r as endOperation,L as ensureListDefinition,M as ensureNumberingLevel,B as fingerprint,E as hashAuthored,b as isValidId,u as makeLimitCounter,d as parseSemVer,G as readEmbeddedFonts,O as readTrackingSettings,D as replayFixture,h as resolve,H as resolveTocRowHeadings,f as satisfies,J as semanticDigest,y as stableHash,C as validateFixture,P as withExportedCustomNodes}from'./chunk-2DTQDAN7.js';export{cf as ACCEPTED_PARAGRAPH_PROPERTIES,bf as ACCEPTED_RUN_PROPERTIES,y as ALL_FROZEN_IDS,Nf as AUTHORABLE_PARAGRAPH_PROPERTIES,Of as AUTHORABLE_RUN_PROPERTIES,G as BoundedCounter,t as CANONICAL_MUTATION_ORIGINS,ae as CONTENT_CONTROL_ID_MAX,se as CONTENT_CONTROL_PROPERTY_ORDER,Xe as CUSTOM_NODE_XPATH_PREFIX,Ie as CUSTOM_XML_PROPS_REL,Je as CUSTOM_XML_PROPS_TYPE,He as CUSTOM_XML_REL,P as DANGEROUS_KEYS,Ke as DATASTORE_NAMESPACE_URI,vd as DEFAULT_ENDNOTE_PROPERTIES,ud as DEFAULT_FOOTNOTE_PROPERTIES,D as DEFAULT_IMAGE_RESOURCE_LIMITS,A as DEFAULT_LIMITS,zf as DEFAULT_MAX_EDITABLE_STORY_PARTS,vb as DEFAULT_OOXML_PACKAGE_LIMITS,La as DEFAULT_ZIP_LIMITS,x as DEPENDENCY_KEY_IDS,Q as DangerousKeyError,_b as FIELD_ATOM_CHAR,z as HARD_CEILINGS,Pa as HYPERLINK_RELATIONSHIP_TYPE,L as IMAGE_RELATIONSHIP_TYPE,C as IMAGE_RESOURCE_HARD_CEILINGS,Wa as IMAGE_WRAP_TARGETS,Z as INERT_EXECUTABLE_KINDS,F as LimitExceededError,$d as MAX_CONTENT_CONTROLS_PER_PART,_d as MAX_CONTENT_CONTROL_NESTING,Hf as MAX_CUSTOM_NODE_LABEL_LENGTH,Gf as MAX_CUSTOM_NODE_PAYLOAD_LENGTH,qd as MAX_NOTES_PER_PART,Pd as MAX_NOTE_REFERENCE_PARTS,Od as MAX_NOTE_REFERENCE_SCAN,ve as MAX_STORY_SDT_NESTING,gb as MAX_SVG_SNIFF_BYTES,u as NON_CANONICAL_ORIGINS,Tc as NOTE_ATOM_CHAR,Xc as NOTE_CONTINUATION_SEPARATOR_ID,Vc as NOTE_ID_MAX,Uc as NOTE_ID_MIN,Wc as NOTE_SEPARATOR_ID,Oa as OFFICE_RELATIONSHIP_NAMESPACE_URI,za as OOXML_NODE_IDENTITY_RULES,s as ORIGIN_IDS,Vb as PAGE_BREAK_CHAR,ja as PrefixAllocator,v as RESULT_IDS,w as RUNTIME_PORT_IDS,kg as SEARCH_MATCH_LIMIT,jg as SEARCH_QUERY_MAX,jf as TABLE_BORDER_STYLES,wc as TOC_LEVEL_INDENT_TWIPS,pc as TOC_MAX_BOOKMARKS_PER_REFRESH,oc as TOC_MAX_ENTRIES,qc as TOC_MAX_FIELD_NESTING,nc as TOC_MAX_INSTRUCTION_CHARS,rc as TOC_MAX_PAGE_PASSES,df as TREE_DOC_OP_KINDS,yf as TreeDocumentStore,Af as TreePackageStore,Ae as W15_NAMESPACE_URI,la as WML_NAMESPACE_URI,na as XMLNS_NAMESPACE_URI,ma as XML_NAMESPACE_URI,Bf as addComment,ue as allocateContentControlId,rb as allocateDrawingPropertyId,rd as allocateNoteId,Ka as applyEdits,Sc as applyHeaderFooterLifecycleOp,Yd as applyNoteLifecycleOp,uf as applyTreeOp,n as asciiFold,ia as assertValidQName,lc as atomicFieldSpansOf,pd as atomicNoteSpansOf,Oc as authorableHyperlinkTarget,Bd as authoredDocumentEndnoteProperties,Ad as authoredDocumentFootnoteProperties,yd as authoredEndnotePropertiesFromSectPr,xd as authoredFootnotePropertiesFromSectPr,Rf as authoredProperties,xe as bodyStoryRoot,Cc as bookmarkPairNodes,$e as boundCustomXmlNodeIdOf,Ze as boundCustomXmlNodeIds,_e as boundCustomXmlNodeIdsInPackage,vc as buildBookmarkIndex,J as buildContentTypeIndex,M as buildRelationshipSet,zc as buildTocContentControl,yc as buildTocEntryParagraph,wa as canonicalOoxmlFingerprint,Zd as cascadeDeletedNoteReferences,Fe as cascadeEmptiedComments,ea as childElements,Nb as collectFlowBlocks,Ba as collectNodeIds,Sd as collectNoteReferences,Td as collectPackageNoteReferences,dg as collectReviewItems,af as collectRevisionSites,Rb as collectSectionPropertyNodes,ze as collectStoryParagraphs,Be as commentAnchorsOfStory,$f as commentBodyText,ag as commentInitials,cg as commentItemsOf,Ef as commentPartNameOf,Ff as commentsExtendedPartNameOf,Ce as commentsOfPart,Y as containsCssFetch,ee as contentControlContentChildren,ie as contentControlContentNodeOf,Lb as contentControlContentOf,he as contentControlEndPropertiesNodeOf,le as contentControlLevelOf,ge as contentControlPropertiesNodeOf,ke as contentControlPropertiesOf,oe as contentControlTextOf,me as contentControlsIn,zb as contentTypesPartBytes,qb as createImageResourceCache,Ca as createNodeIdAllocator,Qd as createNoteReferenceScanBudget,md as customMarkFollows,Ye as customNodeBinding,Lf as customNodePayloadsByControl,Mf as customNodePayloadsOf,Me as customXmlDataParts,Ve as customXmlLabelXPath,Qe as customXmlNodes,We as customXmlPrefixMappings,Le as datastoreItemIdFor,gg as deepParagraphOrderOfPart,Ee as deleteCommentThread,Fc as deriveOoxmlIndexes,tc as detectBodyTocs,p as detectDuplicateNames,Ud as diagnoseNoteReferences,Tf as directParagraphMarkProperties,Sf as directParagraphProperties,qf as drawingOpImpact,Pc as ensureHyperlinkRelationship,X as escapeCssString,V as escapeXml,I as extensionKey,jc as fieldAtomText,ic as fieldOnOffAttribute,ne as findContentControl,Ne as findCustomXmlDataPart,uc as findDetectedToc,da as findElement,Ea as findNode,td as findNoteById,og as findOccurrences,ig as firstReviewRange,fe as flattenContentControls,$b as fldCharType,hc as fldSimpleInstr,Ic as fnv1a32,lg as foldCase,Zc as formatNoteScopeId,Wf as formatOwnedRunIds,Zb as hardBreakAttributes,Wb as hardBreakKind,Yb as hardBreakText,Ge as hasAnyComment,hb as hasBoundedSvgRoot,Df as hasCommentPart,Da as hasNode,Ra as hyperlinkAnchorOf,Sa as hyperlinkRelationshipIdOf,Ta as hyperlinkTargetOf,pb as imageResourceLookupFor,Dc as indexStyles,Md as inlineControlEndingAt,Nd as inlineControlStartingAt,Ha as insertChildren,If as insertCustomNodeWrite,gc as instrTextValue,Pf as isAuthorableRunProperty,Jb as isContentControl,Kb as isContentControlContent,ce as isContentControlContentNode,be as isContentControlNode,de as isContentControlWrapper,qa as isContentRevisionKind,fd as isContinuationSeparatorNode,R as isDangerousKey,tf as isDrawingTreeDocOp,ad as isEndnotesNode,$ as isEvaluableField,kc as isFieldChrome,dc as isFldChar,ac as isFldCharNode,fc as isFldSimple,cc as isFldSimpleNode,$c as isFootnotesNode,Rc as isHeaderFooterLifecycleOp,Qa as isHyperlinkNode,_ as isInertExecutable,ec as isInstrText,bc as isInstrTextNode,Ed as isLegalEndnotePosition,mc as isLegalFldCharType,Fd as isLegalFootnotePosition,Gd as isLegalNumRestart,jd as isNormalNote,od as isNoteAtomNode,Xd as isNoteLifecycleOp,bd as isNoteNode,dd as isNoteRefNode,cd as isNoteReferenceNode,Xb as isPageBreakNode,ra as isRangeMarkerKind,ng as isSearchableQuery,ed as isSeparatorNode,H as isValidMime,ga as isValidNCName,Gc as isValidParaId,ha as isValidQName,mg as isWholeWord,eg as linkRevisionReplies,ob as liveDrawingReferenceCount,Zf as locateSites,qe as lockForbidsEdit,re as lockForbidsRemoval,Uf as mergedProperties,Jc as mintParaId,Mc as mintedParagraphIdentityAttributes,Wd as normalNoteIds,Nc as normalizeParagraphIdentity,l as normalizePartName,nd as noteAtomText,hd as noteIdOf,gd as noteKindOf,ld as noteRefKindOf,kd as noteReferenceKindOf,id as noteTypeOf,sd as notesOf,Vd as notesPartHasId,S as nullRecord,xa as ooxmlTreesEqual,te as orderedContentControlProperties,Hc as paraIdOf,Ld as paragraphOffsetIndex,fg as paragraphOrderOfPart,vf as paragraphTextOf,Fa as parentNodeOf,wd as parseAuthoredNoteProperties,je as parseContentControlId,Yc as parseNoteId,_c as parseNoteScopeId,sc as parseTocInstruction,o as partNameKey,Bc as planTocEntries,ab as projectDrawing,Qf as propertyContainer,Re as readCustomXmlNode,sa as readOnOffChild,wb as readOoxmlPackage,Aa as readOoxmlPart,ca as readXml,Ma as readZip,Qc as relationshipTargetIn,Ab as relationshipsOf,Cb as relsPartNameFor,Jf as removeCustomNodeWrite,Ja as removeNode,Ga as replaceChildren,Ia as replaceNode,pe as resolveContentControlLock,K as resolveContentType,Bb as resolveContentTypeOf,Dd as resolveEndnoteProperties,Cd as resolveFootnoteProperties,Ub as resolveHeaderFooterParts,Tb as resolveHeaderFooterPartsBySection,Sb as resolveHeaderFooterResolutionBySection,O as resolveImageRelationship,E as resolveImageResourceLimits,q as resolveInternalTarget,B as resolveLimits,Rd as resolveNotesPart,N as resolveRelationship,_f as reviewItemKey,hg as reviewItemRanges,bg as revisionItemsOf,Vf as runAddressRanges,Xf as runPropertyEdits,Yf as runsCovering,U as sanitizeHref,aa as scrubExport,Kd as segmentsOf,ta as serializeOoxmlPart,Cf as setCommentResolved,zd as settingsPartOf,ib as sniffImageMime,ye as storyParagraphs,we as storyRootsOf,Ec as stylesPartOf,Kf as sweepCustomNodePayloads,fa as textContent,De as threadStateOfPart,T as toSafeRecord,Ac as tocEntryText,xc as tocLeftIndentTwips,Kc as usedParaIds,rf as validateDrawingOp,r as validateExternalTarget,kb as validateGifHeader,lb as validateJpegHeader,ya as validateOoxmlPart,Hb as validatePackageInvariants,jb as validatePngHeader,nb as validateRasterHeader,xf as validateTreeOp,Lc as w14RootPrefix,Pb as walkAllStoryParagraphs,Qb as walkParagraphInline,Ob as walkStoryBlocks,sb as withBinaryPart,Db as withContentTypeOverride,Oe as withCustomXmlDataPart,Se as withCustomXmlNode,tb as withEmbeddedImage,Gb as withNewPart,yb as withPart,Fb as withRelationship,Pe as withoutCustomXmlDataPart,Te as withoutCustomXmlNode,Ue as withoutOrphanCustomXmlNodes,ub as withoutUnreferencedImagePart,sf as wrapTargetToAnchorSpec,xb as writeOoxmlPackage,Na as writeZip}from'./chunk-Y7TA7TPF.js';
@@ -1,4 +1,4 @@
1
- import { O as OoxmlNode, o as OoxmlDrawingNode, b as OoxmlContentControlNode, d as OoxmlContentControlContentNode, p as OoxmlContentControlEndPropertiesNode, q as OoxmlContentControlPropertiesNode, e as OoxmlPart } from './ooxml-tree-BU0e3DVi.js';
1
+ import { O as OoxmlNode, a as OoxmlElement, o as OoxmlDrawingNode, b as OoxmlContentControlNode, d as OoxmlContentControlContentNode, p as OoxmlContentControlEndPropertiesNode, q as OoxmlContentControlPropertiesNode, e as OoxmlPart } from './ooxml-tree-BU0e3DVi.js';
2
2
 
3
3
  /** The relationship namespace `r:id` lives in. */
4
4
  declare const OFFICE_RELATIONSHIP_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
@@ -94,6 +94,61 @@ interface DrawingDiagnostic {
94
94
  readonly detail: string | null;
95
95
  }
96
96
 
97
+ /**
98
+ * The renderable subset of a `wps:wsp` non-picture graphic: closed polygon subpaths
99
+ * (`a:custGeom` with move/line/close verbs only, or `a:prstGeom prst="rect"`) with a
100
+ * solid sRGB fill and/or stroke. Anything richer (curves, theme fills, text bodies,
101
+ * rotation) projects as `null` and paints the labelled placeholder instead.
102
+ */
103
+ interface VectorShapeProjection {
104
+ /** The drawing extent that frames the subpath coordinate space. */
105
+ readonly extentEmu: Readonly<{
106
+ cx: number;
107
+ cy: number;
108
+ }>;
109
+ /** Closed subpath polygons in extent-EMU space; fill rule is even-odd. */
110
+ readonly subpathsEmu: readonly (readonly Readonly<{
111
+ x: number;
112
+ y: number;
113
+ }>[])[];
114
+ /** Validated 6-digit sRGB hex (no `#`), or null for no fill. */
115
+ readonly fillHex: string | null;
116
+ /** Validated 6-digit sRGB hex (no `#`), or null for no stroke. */
117
+ readonly strokeHex: string | null;
118
+ /** Stroke width in EMU; 0 when absent. */
119
+ readonly strokeWidthEmu: number;
120
+ }
121
+ /**
122
+ * The story carried by a `wps:wsp` text box (`wps:txbx` → `w:txbxContent`).
123
+ *
124
+ * The projection captures only the story root and the shape chrome reads; it never walks the
125
+ * story content, so the per-drawing element budget is not spent on paragraphs. Layout collects
126
+ * blocks from `content` under its own caps.
127
+ */
128
+ interface TextboxStoryProjection {
129
+ /** Canonical node id of the `w:txbxContent` element. */
130
+ readonly contentNodeId: string;
131
+ /** The `w:txbxContent` element itself; treated as an opaque story root here. */
132
+ readonly content: OoxmlElement;
133
+ /** `wps:bodyPr` insets with the OOXML defaults (91440 EMU l/r, 45720 EMU t/b) when absent. */
134
+ readonly insetsEmu: Readonly<{
135
+ top: number;
136
+ right: number;
137
+ bottom: number;
138
+ left: number;
139
+ }>;
140
+ /** `wps:bodyPr/@anchor` collapsed to the three renderable positions; default top. */
141
+ readonly verticalAnchor: 'top' | 'center' | 'bottom';
142
+ /** Autofit child of `wps:bodyPr`; extent stays authoritative either way (diagnostic only). */
143
+ readonly autofit: 'none' | 'shape' | 'normal';
144
+ /** Solid fill of the hosting shape, painted behind the story; null for no fill. */
145
+ readonly fillHex: string | null;
146
+ /** Solid outline of the hosting shape; null for no outline. */
147
+ readonly strokeHex: string | null;
148
+ /** Outline width in EMU; 0 when absent. */
149
+ readonly strokeWidthEmu: number;
150
+ }
151
+
97
152
  /**
98
153
  * Whether a drawing sits in the text flow or is positioned against a frame.
99
154
  *
@@ -204,6 +259,7 @@ interface DrawingProjection {
204
259
  }> | null;
205
260
  readonly picture: PictureProjection | null;
206
261
  readonly vectorShape: VectorShapeProjection | null;
262
+ readonly textboxStory: TextboxStoryProjection | null;
207
263
  readonly locks: DrawingLocks;
208
264
  readonly effects: Readonly<{
209
265
  grayscale: boolean;
@@ -213,30 +269,6 @@ interface DrawingProjection {
213
269
  readonly compatibilityBranchNodeId: string | null;
214
270
  readonly diagnostics: readonly DrawingDiagnostic[];
215
271
  }
216
- /**
217
- * The renderable subset of a `wps:wsp` non-picture graphic: closed polygon subpaths
218
- * (`a:custGeom` with move/line/close verbs only, or `a:prstGeom prst="rect"`) with a
219
- * solid sRGB fill and/or stroke. Anything richer (curves, theme fills, text bodies,
220
- * rotation) projects as `null` and paints the labelled placeholder instead.
221
- */
222
- interface VectorShapeProjection {
223
- /** The drawing extent that frames the subpath coordinate space. */
224
- readonly extentEmu: Readonly<{
225
- cx: number;
226
- cy: number;
227
- }>;
228
- /** Closed subpath polygons in extent-EMU space; fill rule is even-odd. */
229
- readonly subpathsEmu: readonly (readonly Readonly<{
230
- x: number;
231
- y: number;
232
- }>[])[];
233
- /** Validated 6-digit sRGB hex (no `#`), or null for no fill. */
234
- readonly fillHex: string | null;
235
- /** Validated 6-digit sRGB hex (no `#`), or null for no stroke. */
236
- readonly strokeHex: string | null;
237
- /** Stroke width in EMU; 0 when absent. */
238
- readonly strokeWidthEmu: number;
239
- }
240
272
  interface DrawingAccessibility {
241
273
  readonly hidden: boolean;
242
274
  readonly decorative: boolean;
@@ -955,6 +987,29 @@ type TreeDocOp = {
955
987
  readonly alias?: string;
956
988
  /** `w:lock` value; omitted writes no lock. */
957
989
  readonly lock?: 'sdtLocked' | 'sdtContentLocked' | 'contentLocked';
990
+ /**
991
+ * `w:dataBinding` — the customXml data part node this control mirrors.
992
+ *
993
+ * The payload half of the custom-node contract: `w:tag` caps at 64
994
+ * characters, so anything larger lives in a data part and the control
995
+ * points at it. All three attributes travel together because Word needs
996
+ * all three — the store's `ds:itemID`, the XPath to the node's label, and
997
+ * the prefix declaration that XPath's steps resolve through.
998
+ *
999
+ * A control that carries one is READ-ONLY in Word (verified against
1000
+ * `sdt-custom-node-databinding-word-roundtrip.docx`), and this engine
1001
+ * refuses content edits inside it for the same reason — see
1002
+ * `bindingRefusal`. That is what keeps the store and the page from
1003
+ * drifting: there is no edit that could move one without the other.
1004
+ *
1005
+ * Nothing here is resolved or fetched. The op writes the three strings and
1006
+ * the store lane owns the part they name.
1007
+ */
1008
+ readonly dataBinding?: {
1009
+ readonly prefixMappings: string;
1010
+ readonly xpath: string;
1011
+ readonly storeItemId: string;
1012
+ };
958
1013
  } | {
959
1014
  /** Repeating-section item insert — unsupported at this layer (out of scope). */
960
1015
  readonly op: 'addRepeatingSectionItem';
@@ -1,4 +1,4 @@
1
- import { O as OoxmlNode, o as OoxmlDrawingNode, b as OoxmlContentControlNode, d as OoxmlContentControlContentNode, p as OoxmlContentControlEndPropertiesNode, q as OoxmlContentControlPropertiesNode, e as OoxmlPart } from './ooxml-tree-BU0e3DVi.cjs';
1
+ import { O as OoxmlNode, a as OoxmlElement, o as OoxmlDrawingNode, b as OoxmlContentControlNode, d as OoxmlContentControlContentNode, p as OoxmlContentControlEndPropertiesNode, q as OoxmlContentControlPropertiesNode, e as OoxmlPart } from './ooxml-tree-BU0e3DVi.cjs';
2
2
 
3
3
  /** The relationship namespace `r:id` lives in. */
4
4
  declare const OFFICE_RELATIONSHIP_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
@@ -94,6 +94,61 @@ interface DrawingDiagnostic {
94
94
  readonly detail: string | null;
95
95
  }
96
96
 
97
+ /**
98
+ * The renderable subset of a `wps:wsp` non-picture graphic: closed polygon subpaths
99
+ * (`a:custGeom` with move/line/close verbs only, or `a:prstGeom prst="rect"`) with a
100
+ * solid sRGB fill and/or stroke. Anything richer (curves, theme fills, text bodies,
101
+ * rotation) projects as `null` and paints the labelled placeholder instead.
102
+ */
103
+ interface VectorShapeProjection {
104
+ /** The drawing extent that frames the subpath coordinate space. */
105
+ readonly extentEmu: Readonly<{
106
+ cx: number;
107
+ cy: number;
108
+ }>;
109
+ /** Closed subpath polygons in extent-EMU space; fill rule is even-odd. */
110
+ readonly subpathsEmu: readonly (readonly Readonly<{
111
+ x: number;
112
+ y: number;
113
+ }>[])[];
114
+ /** Validated 6-digit sRGB hex (no `#`), or null for no fill. */
115
+ readonly fillHex: string | null;
116
+ /** Validated 6-digit sRGB hex (no `#`), or null for no stroke. */
117
+ readonly strokeHex: string | null;
118
+ /** Stroke width in EMU; 0 when absent. */
119
+ readonly strokeWidthEmu: number;
120
+ }
121
+ /**
122
+ * The story carried by a `wps:wsp` text box (`wps:txbx` → `w:txbxContent`).
123
+ *
124
+ * The projection captures only the story root and the shape chrome reads; it never walks the
125
+ * story content, so the per-drawing element budget is not spent on paragraphs. Layout collects
126
+ * blocks from `content` under its own caps.
127
+ */
128
+ interface TextboxStoryProjection {
129
+ /** Canonical node id of the `w:txbxContent` element. */
130
+ readonly contentNodeId: string;
131
+ /** The `w:txbxContent` element itself; treated as an opaque story root here. */
132
+ readonly content: OoxmlElement;
133
+ /** `wps:bodyPr` insets with the OOXML defaults (91440 EMU l/r, 45720 EMU t/b) when absent. */
134
+ readonly insetsEmu: Readonly<{
135
+ top: number;
136
+ right: number;
137
+ bottom: number;
138
+ left: number;
139
+ }>;
140
+ /** `wps:bodyPr/@anchor` collapsed to the three renderable positions; default top. */
141
+ readonly verticalAnchor: 'top' | 'center' | 'bottom';
142
+ /** Autofit child of `wps:bodyPr`; extent stays authoritative either way (diagnostic only). */
143
+ readonly autofit: 'none' | 'shape' | 'normal';
144
+ /** Solid fill of the hosting shape, painted behind the story; null for no fill. */
145
+ readonly fillHex: string | null;
146
+ /** Solid outline of the hosting shape; null for no outline. */
147
+ readonly strokeHex: string | null;
148
+ /** Outline width in EMU; 0 when absent. */
149
+ readonly strokeWidthEmu: number;
150
+ }
151
+
97
152
  /**
98
153
  * Whether a drawing sits in the text flow or is positioned against a frame.
99
154
  *
@@ -204,6 +259,7 @@ interface DrawingProjection {
204
259
  }> | null;
205
260
  readonly picture: PictureProjection | null;
206
261
  readonly vectorShape: VectorShapeProjection | null;
262
+ readonly textboxStory: TextboxStoryProjection | null;
207
263
  readonly locks: DrawingLocks;
208
264
  readonly effects: Readonly<{
209
265
  grayscale: boolean;
@@ -213,30 +269,6 @@ interface DrawingProjection {
213
269
  readonly compatibilityBranchNodeId: string | null;
214
270
  readonly diagnostics: readonly DrawingDiagnostic[];
215
271
  }
216
- /**
217
- * The renderable subset of a `wps:wsp` non-picture graphic: closed polygon subpaths
218
- * (`a:custGeom` with move/line/close verbs only, or `a:prstGeom prst="rect"`) with a
219
- * solid sRGB fill and/or stroke. Anything richer (curves, theme fills, text bodies,
220
- * rotation) projects as `null` and paints the labelled placeholder instead.
221
- */
222
- interface VectorShapeProjection {
223
- /** The drawing extent that frames the subpath coordinate space. */
224
- readonly extentEmu: Readonly<{
225
- cx: number;
226
- cy: number;
227
- }>;
228
- /** Closed subpath polygons in extent-EMU space; fill rule is even-odd. */
229
- readonly subpathsEmu: readonly (readonly Readonly<{
230
- x: number;
231
- y: number;
232
- }>[])[];
233
- /** Validated 6-digit sRGB hex (no `#`), or null for no fill. */
234
- readonly fillHex: string | null;
235
- /** Validated 6-digit sRGB hex (no `#`), or null for no stroke. */
236
- readonly strokeHex: string | null;
237
- /** Stroke width in EMU; 0 when absent. */
238
- readonly strokeWidthEmu: number;
239
- }
240
272
  interface DrawingAccessibility {
241
273
  readonly hidden: boolean;
242
274
  readonly decorative: boolean;
@@ -955,6 +987,29 @@ type TreeDocOp = {
955
987
  readonly alias?: string;
956
988
  /** `w:lock` value; omitted writes no lock. */
957
989
  readonly lock?: 'sdtLocked' | 'sdtContentLocked' | 'contentLocked';
990
+ /**
991
+ * `w:dataBinding` — the customXml data part node this control mirrors.
992
+ *
993
+ * The payload half of the custom-node contract: `w:tag` caps at 64
994
+ * characters, so anything larger lives in a data part and the control
995
+ * points at it. All three attributes travel together because Word needs
996
+ * all three — the store's `ds:itemID`, the XPath to the node's label, and
997
+ * the prefix declaration that XPath's steps resolve through.
998
+ *
999
+ * A control that carries one is READ-ONLY in Word (verified against
1000
+ * `sdt-custom-node-databinding-word-roundtrip.docx`), and this engine
1001
+ * refuses content edits inside it for the same reason — see
1002
+ * `bindingRefusal`. That is what keeps the store and the page from
1003
+ * drifting: there is no edit that could move one without the other.
1004
+ *
1005
+ * Nothing here is resolved or fetched. The op writes the three strings and
1006
+ * the store lane owns the part they name.
1007
+ */
1008
+ readonly dataBinding?: {
1009
+ readonly prefixMappings: string;
1010
+ readonly xpath: string;
1011
+ readonly storeItemId: string;
1012
+ };
958
1013
  } | {
959
1014
  /** Repeating-section item insert — unsupported at this layer (out of scope). */
960
1015
  readonly op: 'addRepeatingSectionItem';
@@ -1,13 +1,13 @@
1
- import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-BJnTpG66.js';
2
- import { S as StoryScope, a as StoryTargetRejection, D as DocumentTrackingSettings, E as EmbeddedFont, B as BookmarkIndex, L as ListKind, I as InsertImageInput, b as ImageIntentResult, R as ReplaceImageOptions, A as ApplyImagePropertiesInput } from './tree-package-store-D5S7VKs5.js';
1
+ import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-C_YnqPhn.js';
2
+ import { S as StoryScope, a as StoryTargetRejection, D as DocumentTrackingSettings, I as InsertCustomNodeWrite, C as CustomNodeWriteResult, b as CustomNodeSweepOutcome, E as EmbeddedFont, B as BookmarkIndex, L as ListKind, c as InsertImageInput, d as ImageIntentResult, R as ReplaceImageOptions, A as ApplyImagePropertiesInput } from './custom-node-writes-ttKuYd0M.js';
3
3
  import { Node } from 'prosemirror-model';
4
- import { a as ReviewItem } from './review-support-Fy3vdIea.js';
4
+ import { a as ReviewItem } from './review-support-nsLXC9jf.js';
5
5
  import { ReviewModuleContribution } from './contracts/modules.js';
6
6
  import { e as OoxmlPart, O as OoxmlNode, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.js';
7
7
  import { O as OoxmlPackage, b as OoxmlPackageRejection } from './ooxml-package-D_CtywTW.js';
8
8
  import { a as HeaderFooterParts, b as HeaderFooterSectionResolution } from './hf-references-BdjsQNE_.js';
9
- import { T as TreeDocOp } from './tree-op-types-CwOeiaQ8.js';
10
- import { S as SelectionMark, T as TreeModelChange } from './tree-store-hLtjeyWE.js';
9
+ import { T as TreeDocOp } from './tree-op-types-DWLCllG7.js';
10
+ import { S as SelectionMark, T as TreeModelChange } from './tree-store-BscFPB7x.js';
11
11
 
12
12
  /**
13
13
  * The scheme slots the picker shows, in Word's column order.
@@ -381,7 +381,14 @@ interface TreeDocxSession {
381
381
  * tier's honest "this document has more than you are seeing" signal.
382
382
  */
383
383
  hasReviewContent(): boolean;
384
- /** Reply to a comment, or add one over a revision's range. Returns the new comment's id. */
384
+ /**
385
+ * Reply to a comment, or add one over a revision's range. Returns the new comment's id.
386
+ *
387
+ * `scope` names the story the anchor lives in and defaults to the body. A header or
388
+ * footer anchor written against the body store addresses a paragraph that store has
389
+ * never heard of, so the transaction is refused and the reply is lost — which is what
390
+ * replying to a header card did.
391
+ */
385
392
  replyToComment(parentCommentId: string | null, anchor: {
386
393
  paragraphId: string;
387
394
  start: number;
@@ -389,7 +396,7 @@ interface TreeDocxSession {
389
396
  endParagraphId?: string;
390
397
  }, text: string, author: string,
391
398
  /** ISO-8601. Omitted writes no `@w:date`, because inventing one is a content change. */
392
- date?: string): string | null;
399
+ date?: string, scope?: StoryScope): string | null;
393
400
  /**
394
401
  * Resolve a comment thread, or reopen it. False when the document holds no such comment.
395
402
  *
@@ -405,6 +412,37 @@ interface TreeDocxSession {
405
412
  * False when the document holds no such comment, or when the removal was refused.
406
413
  */
407
414
  deleteComment(commentId: string): boolean;
415
+ /**
416
+ * Insert a custom node, with the payload it carries, as ONE transaction.
417
+ *
418
+ * A package write reaching through the body store, exactly as a comment is: the customXml data
419
+ * part, the node inside it and the bound `w:sdt` commit together or not at all. A control bound
420
+ * to a store that was never written is a document Word offers to repair.
421
+ *
422
+ * Omitting the payload authors the ordinary tagged control, which is what a node small enough
423
+ * to live in its `w:tag` needs.
424
+ */
425
+ /** `scope` names the story the paragraph is in, and defaults to the body. */
426
+ insertCustomNode(write: InsertCustomNodeWrite, scope?: StoryScope): CustomNodeWriteResult;
427
+ /**
428
+ * Remove a custom node and, in the same transaction, the payload it bound.
429
+ *
430
+ * The sweep would collect the payload on the next open regardless; doing it here means a
431
+ * document saved between the deletion and that open does not carry a payload for a chip that
432
+ * is gone.
433
+ */
434
+ /**
435
+ * Remove a custom node and the payload it bound. `scope` names the story holding it and
436
+ * defaults to the body; a chip in a header is refused against the body store.
437
+ */
438
+ removeCustomNode(controlNodeId: string, scope?: StoryScope): CustomNodeWriteResult;
439
+ /**
440
+ * Drop every payload no control binds, in the stores whose namespaces a module claims.
441
+ *
442
+ * Called ON OPEN and nowhere else — see `sweepCustomNodePayloads`. Answers the ids collected,
443
+ * so a host can report what a document arrived carrying.
444
+ */
445
+ sweepCustomNodePayloads(namespaces: readonly string[]): CustomNodeSweepOutcome;
408
446
  /**
409
447
  * Every occurrence of `query` in the BODY story, in document order, addressed in the
410
448
  * same offset vocabulary the tree ops and the surface selection use — so a match can be
@@ -1,13 +1,13 @@
1
- import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-BpIydXtU.cjs';
2
- import { S as StoryScope, a as StoryTargetRejection, D as DocumentTrackingSettings, E as EmbeddedFont, B as BookmarkIndex, L as ListKind, I as InsertImageInput, b as ImageIntentResult, R as ReplaceImageOptions, A as ApplyImagePropertiesInput } from './tree-package-store-DOKMtCnh.cjs';
1
+ import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-DwpNnTg3.cjs';
2
+ import { S as StoryScope, a as StoryTargetRejection, D as DocumentTrackingSettings, I as InsertCustomNodeWrite, C as CustomNodeWriteResult, b as CustomNodeSweepOutcome, E as EmbeddedFont, B as BookmarkIndex, L as ListKind, c as InsertImageInput, d as ImageIntentResult, R as ReplaceImageOptions, A as ApplyImagePropertiesInput } from './custom-node-writes-YqISlSRl.cjs';
3
3
  import { Node } from 'prosemirror-model';
4
- import { a as ReviewItem } from './review-support-DS8DYX2a.cjs';
4
+ import { a as ReviewItem } from './review-support-D64Wu236.cjs';
5
5
  import { ReviewModuleContribution } from './contracts/modules.cjs';
6
6
  import { e as OoxmlPart, O as OoxmlNode, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.cjs';
7
7
  import { O as OoxmlPackage, b as OoxmlPackageRejection } from './ooxml-package-CR5us6ad.cjs';
8
8
  import { a as HeaderFooterParts, b as HeaderFooterSectionResolution } from './hf-references-CgEOSw3i.cjs';
9
- import { T as TreeDocOp } from './tree-op-types-DMiW6nIH.cjs';
10
- import { S as SelectionMark, T as TreeModelChange } from './tree-store-CxifqwIv.cjs';
9
+ import { T as TreeDocOp } from './tree-op-types-UOXlRUqQ.cjs';
10
+ import { S as SelectionMark, T as TreeModelChange } from './tree-store-B1lEkdXc.cjs';
11
11
 
12
12
  /**
13
13
  * The scheme slots the picker shows, in Word's column order.
@@ -381,7 +381,14 @@ interface TreeDocxSession {
381
381
  * tier's honest "this document has more than you are seeing" signal.
382
382
  */
383
383
  hasReviewContent(): boolean;
384
- /** Reply to a comment, or add one over a revision's range. Returns the new comment's id. */
384
+ /**
385
+ * Reply to a comment, or add one over a revision's range. Returns the new comment's id.
386
+ *
387
+ * `scope` names the story the anchor lives in and defaults to the body. A header or
388
+ * footer anchor written against the body store addresses a paragraph that store has
389
+ * never heard of, so the transaction is refused and the reply is lost — which is what
390
+ * replying to a header card did.
391
+ */
385
392
  replyToComment(parentCommentId: string | null, anchor: {
386
393
  paragraphId: string;
387
394
  start: number;
@@ -389,7 +396,7 @@ interface TreeDocxSession {
389
396
  endParagraphId?: string;
390
397
  }, text: string, author: string,
391
398
  /** ISO-8601. Omitted writes no `@w:date`, because inventing one is a content change. */
392
- date?: string): string | null;
399
+ date?: string, scope?: StoryScope): string | null;
393
400
  /**
394
401
  * Resolve a comment thread, or reopen it. False when the document holds no such comment.
395
402
  *
@@ -405,6 +412,37 @@ interface TreeDocxSession {
405
412
  * False when the document holds no such comment, or when the removal was refused.
406
413
  */
407
414
  deleteComment(commentId: string): boolean;
415
+ /**
416
+ * Insert a custom node, with the payload it carries, as ONE transaction.
417
+ *
418
+ * A package write reaching through the body store, exactly as a comment is: the customXml data
419
+ * part, the node inside it and the bound `w:sdt` commit together or not at all. A control bound
420
+ * to a store that was never written is a document Word offers to repair.
421
+ *
422
+ * Omitting the payload authors the ordinary tagged control, which is what a node small enough
423
+ * to live in its `w:tag` needs.
424
+ */
425
+ /** `scope` names the story the paragraph is in, and defaults to the body. */
426
+ insertCustomNode(write: InsertCustomNodeWrite, scope?: StoryScope): CustomNodeWriteResult;
427
+ /**
428
+ * Remove a custom node and, in the same transaction, the payload it bound.
429
+ *
430
+ * The sweep would collect the payload on the next open regardless; doing it here means a
431
+ * document saved between the deletion and that open does not carry a payload for a chip that
432
+ * is gone.
433
+ */
434
+ /**
435
+ * Remove a custom node and the payload it bound. `scope` names the story holding it and
436
+ * defaults to the body; a chip in a header is refused against the body store.
437
+ */
438
+ removeCustomNode(controlNodeId: string, scope?: StoryScope): CustomNodeWriteResult;
439
+ /**
440
+ * Drop every payload no control binds, in the stores whose namespaces a module claims.
441
+ *
442
+ * Called ON OPEN and nowhere else — see `sweepCustomNodePayloads`. Answers the ids collected,
443
+ * so a host can report what a document arrived carrying.
444
+ */
445
+ sweepCustomNodePayloads(namespaces: readonly string[]): CustomNodeSweepOutcome;
408
446
  /**
409
447
  * Every occurrence of `query` in the BODY story, in document order, addressed in the
410
448
  * same offset vocabulary the tree ops and the surface selection use — so a match can be
@@ -1,6 +1,6 @@
1
1
  import { e as OoxmlPart } from './ooxml-tree-BU0e3DVi.cjs';
2
2
  import { O as OoxmlPackage } from './ooxml-package-CR5us6ad.cjs';
3
- import { I as ImpactClass, T as TreeDocOp, a as TreeOpRejection } from './tree-op-types-DMiW6nIH.cjs';
3
+ import { I as ImpactClass, T as TreeDocOp, a as TreeOpRejection } from './tree-op-types-UOXlRUqQ.cjs';
4
4
 
5
5
  /** A selection the caller wants restored when an entry is undone or redone. */
6
6
  /** A selection captured with a transaction, so undo restores where the caret was. */
@@ -1,6 +1,6 @@
1
1
  import { e as OoxmlPart } from './ooxml-tree-BU0e3DVi.js';
2
2
  import { O as OoxmlPackage } from './ooxml-package-D_CtywTW.js';
3
- import { I as ImpactClass, T as TreeDocOp, a as TreeOpRejection } from './tree-op-types-CwOeiaQ8.js';
3
+ import { I as ImpactClass, T as TreeDocOp, a as TreeOpRejection } from './tree-op-types-DWLCllG7.js';
4
4
 
5
5
  /** A selection the caller wants restored when an entry is undone or redone. */
6
6
  /** A selection captured with a transaction, so undo restores where the caret was. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docx-editor.dev/core",
3
- "version": "2.0.1",
3
+ "version": "2.1.1",
4
4
  "description": "Framework-agnostic core for docx-editor.dev: OOXML parse/serialize, the canonical document tree, layout and paint, and the Editor contract the adapters render.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -68,10 +68,14 @@
68
68
  "./package.json": "./package.json"
69
69
  },
70
70
  "scripts": {
71
- "build": "tsup && node ../../scripts/copy-core-styles.mjs",
71
+ "build": "tsup && node ../../scripts/build-core-styles.mjs",
72
72
  "typecheck": "tsc --noEmit"
73
73
  },
74
74
  "devDependencies": {
75
+ "autoprefixer": "^10.4.17",
76
+ "postcss": "^8.4.33",
77
+ "tailwindcss": "^3.4.1",
78
+ "tailwindcss-animate": "^1.0.7",
75
79
  "typescript": "^5.3.3"
76
80
  },
77
81
  "license": "Apache-2.0",
@@ -81,17 +85,18 @@
81
85
  "directory": "packages/core"
82
86
  },
83
87
  "dependencies": {
84
- "@docx-editor.dev/i18n": "^2.0.1",
88
+ "@docx-editor.dev/i18n": "^2.1.1",
85
89
  "bidi-js": "1.0.3",
86
90
  "emf-converter": "2.0.2",
87
- "fast-xml-parser": "^4.5.0",
91
+ "fast-xml-parser": "^5.10.1",
88
92
  "fflate": "^0.8.2",
89
93
  "harfbuzzjs": "1.4.0",
90
94
  "prosemirror-commands": "^1.7.1",
91
95
  "prosemirror-keymap": "^1.2.3",
92
96
  "prosemirror-model": "^1.25.4",
93
97
  "prosemirror-state": "^1.4.4",
94
- "prosemirror-view": "^1.41.8"
98
+ "prosemirror-view": "^1.41.8",
99
+ "utif2": "4.1.0"
95
100
  },
96
101
  "peerDependencies": {
97
102
  "pdf-lib": "^1.17.1",