@docx-editor.dev/core 2.9.2 → 2.11.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.
Files changed (140) hide show
  1. package/dist/automation.cjs +1 -1
  2. package/dist/automation.d.cts +14 -5
  3. package/dist/automation.d.ts +14 -5
  4. package/dist/automation.js +1 -1
  5. package/dist/binding.cjs +1 -1
  6. package/dist/binding.d.cts +78 -13
  7. package/dist/binding.d.ts +78 -13
  8. package/dist/binding.js +1 -1
  9. package/dist/chunk-34BNQUD4.js +10 -0
  10. package/dist/chunk-5AVHO75P.cjs +19 -0
  11. package/dist/chunk-6HMSC7UV.js +2 -0
  12. package/dist/chunk-6JIJOZDW.js +1 -0
  13. package/dist/chunk-76Y3Y45J.cjs +2 -0
  14. package/dist/chunk-BP7ANXGA.js +1 -0
  15. package/dist/chunk-BTQKU64Q.cjs +1 -0
  16. package/dist/chunk-CRZR6K5Z.js +19 -0
  17. package/dist/chunk-D5EHDHYV.js +1 -0
  18. package/dist/chunk-EJATEGJZ.cjs +1 -0
  19. package/dist/{chunk-PSZH2VXP.js → chunk-GOEBQ26R.js} +1 -1
  20. package/dist/chunk-GRDFEH5Q.cjs +2 -0
  21. package/dist/chunk-GWV65NQW.cjs +10 -0
  22. package/dist/chunk-GXLZCXEH.js +2 -0
  23. package/dist/chunk-JUQOPVSK.cjs +2 -0
  24. package/dist/chunk-LAETEBHD.js +1 -0
  25. package/dist/chunk-M6Z3KFXM.cjs +5 -0
  26. package/dist/{chunk-YMYCPY5Y.cjs → chunk-OHJQ7GPZ.cjs} +1 -1
  27. package/dist/chunk-UQFOYZJO.cjs +18 -0
  28. package/dist/chunk-WPQMPHNR.cjs +1 -0
  29. package/dist/chunk-WXQ245MQ.js +18 -0
  30. package/dist/chunk-WZHIFNSU.js +5 -0
  31. package/dist/chunk-X7A5XART.js +2 -0
  32. package/dist/chunk-ZKWRCLT2.cjs +1 -0
  33. package/dist/collaboration/replication.cjs +1 -0
  34. package/dist/collaboration/replication.d.cts +216 -0
  35. package/dist/collaboration/replication.d.ts +216 -0
  36. package/dist/collaboration/replication.js +1 -0
  37. package/dist/collaboration.cjs +1 -0
  38. package/dist/collaboration.d.cts +176 -0
  39. package/dist/collaboration.d.ts +176 -0
  40. package/dist/collaboration.js +1 -0
  41. package/dist/contracts/document.d.cts +6 -1
  42. package/dist/contracts/document.d.ts +6 -1
  43. package/dist/contracts/editor.cjs +1 -1
  44. package/dist/contracts/editor.d.cts +8 -9
  45. package/dist/contracts/editor.d.ts +8 -9
  46. package/dist/contracts/editor.js +1 -1
  47. package/dist/contracts/interaction.d.cts +8 -9
  48. package/dist/contracts/interaction.d.ts +8 -9
  49. package/dist/contracts/modules.cjs +1 -1
  50. package/dist/contracts/modules.d.cts +20 -8
  51. package/dist/contracts/modules.d.ts +20 -8
  52. package/dist/contracts/modules.js +1 -1
  53. package/dist/custom-node-writes-CwkYRw3V.d.cts +310 -0
  54. package/dist/custom-node-writes-JfTn-Sy6.d.ts +310 -0
  55. package/dist/document-properties-D6Ahr8D6.d.cts +28 -0
  56. package/dist/document-properties-D6Ahr8D6.d.ts +28 -0
  57. package/dist/{editor-Cvd7Geoc.d.ts → editor-BogcVHXk.d.ts} +176 -59
  58. package/dist/{editor-cAEf1uXW.d.cts → editor-C8edZgy5.d.cts} +176 -59
  59. package/dist/editor.cjs +1 -1
  60. package/dist/editor.css +1 -7698
  61. package/dist/editor.d.cts +26 -25
  62. package/dist/editor.d.ts +26 -25
  63. package/dist/editor.js +1 -1
  64. package/dist/failure-BnGjoXf0.d.cts +64 -0
  65. package/dist/failure-BnGjoXf0.d.ts +64 -0
  66. package/dist/{index-DRqY5JVF.d.ts → index-BNv-ZLQP.d.ts} +327 -86
  67. package/dist/{index-wb-iOxfh.d.cts → index-Dn0lOp9Z.d.cts} +327 -86
  68. package/dist/index.cjs +1 -1
  69. package/dist/index.d.cts +20 -19
  70. package/dist/index.d.ts +20 -19
  71. package/dist/index.js +1 -1
  72. package/dist/layout.cjs +1 -1
  73. package/dist/layout.d.cts +92 -55
  74. package/dist/layout.d.ts +92 -55
  75. package/dist/layout.js +1 -1
  76. package/dist/{note-properties-jvnw_DGG.d.ts → note-properties-BmoSdyKS.d.ts} +1 -1
  77. package/dist/{note-properties-CQlxjic_.d.cts → note-properties-BvGfHk5e.d.cts} +1 -1
  78. package/dist/{omml-equation-Dd3mBep-.d.ts → omml-equation-Ciq5rgb7.d.ts} +1 -1
  79. package/dist/{omml-equation-BD-LsmWE.d.cts → omml-equation-CqQOt_dD.d.cts} +1 -1
  80. package/dist/output.cjs +1 -1
  81. package/dist/output.d.cts +6 -8
  82. package/dist/output.d.ts +6 -8
  83. package/dist/output.js +1 -1
  84. package/dist/{protocol-UuZOcOp7.d.cts → protocol-BB-WP3zk.d.cts} +2 -2
  85. package/dist/{protocol-C7ahrdUx.d.ts → protocol-Ckl7hWsv.d.ts} +2 -2
  86. package/dist/{review-items-bdGxFWNA.d.ts → review-items-BdeLNRi2.d.cts} +1 -2
  87. package/dist/{review-items-B8tffIXj.d.cts → review-items-CkYyXhXM.d.ts} +1 -2
  88. package/dist/{review-reads-Bxz03tHG.d.cts → review-reads-BOLSBm5w.d.cts} +2 -2
  89. package/dist/{review-reads-CHODU0LI.d.ts → review-reads-Crf0Xn42.d.ts} +2 -2
  90. package/dist/{revision-projection-CILpvv4M.d.ts → revision-projection-Ae2CWa8E.d.ts} +1 -1
  91. package/dist/{revision-projection-Cc4wz30g.d.cts → revision-projection-C2S8PSQm.d.cts} +1 -1
  92. package/dist/{semantic-cell-selection-BPzx6DdT.d.cts → semantic-cell-selection-C0OFD4D9.d.cts} +4 -4
  93. package/dist/{semantic-cell-selection-CsHcr-yk.d.ts → semantic-cell-selection-DdmoxC-y.d.ts} +4 -4
  94. package/dist/{semantic-interaction-D-RZ9Ust.d.ts → semantic-interaction-COyhZ9WH.d.ts} +21 -2
  95. package/dist/{semantic-interaction-BfWDD_0V.d.cts → semantic-interaction-Cs2jErnt.d.cts} +21 -2
  96. package/dist/{semantic-paint-WhVtSDJK.d.ts → semantic-paint-UHaj3sBY.d.cts} +2 -2
  97. package/dist/{semantic-paint-Bd7EqzXV.d.cts → semantic-paint-vA-oLSdV.d.ts} +2 -2
  98. package/dist/{semantic-records-DadVT_E1.d.cts → semantic-records-5AOQJmLX.d.cts} +20 -5
  99. package/dist/{semantic-records-DCt-ZwKU.d.ts → semantic-records-9xhwbJ23.d.ts} +20 -5
  100. package/dist/{shaped-measurer-CninrHr_.d.cts → shaped-measurer-NeF2mPSu.d.cts} +1 -1
  101. package/dist/{shaped-measurer-B9f4A7QA.d.ts → shaped-measurer-vzsY88oK.d.ts} +1 -1
  102. package/dist/store.cjs +1 -1
  103. package/dist/store.d.cts +193 -19
  104. package/dist/store.d.ts +193 -19
  105. package/dist/store.js +1 -1
  106. package/dist/tree-op-types-BPyXNxyL.d.cts +3053 -0
  107. package/dist/tree-op-types-DnzAOnc9.d.ts +3053 -0
  108. package/dist/{custom-node-writes-D6SGwebL.d.ts → tree-package-fragment-BjZ3RWAS.d.cts} +128 -312
  109. package/dist/{custom-node-writes-Dy3b20PS.d.cts → tree-package-fragment-CDER0G3B.d.ts} +128 -312
  110. package/dist/{tree-session-ZuBFOhIh.d.ts → tree-session-contract-BF2FVBOM.d.cts} +52 -106
  111. package/dist/{tree-session-Df02ajqc.d.cts → tree-session-contract-DhdsFT_z.d.ts} +52 -106
  112. package/dist/{tree-store-B_sJBMIS.d.cts → tree-store-CNZ3O83s.d.ts} +130 -25
  113. package/dist/{tree-store-DgETo6Mf.d.ts → tree-store-DfZi7FqY.d.cts} +130 -25
  114. package/package.json +14 -3
  115. package/dist/chunk-6JWP2H7K.js +0 -2
  116. package/dist/chunk-6KNLLEUW.cjs +0 -18
  117. package/dist/chunk-7ADTI533.cjs +0 -10
  118. package/dist/chunk-7ETDCPF6.cjs +0 -2
  119. package/dist/chunk-7I3BSGGS.js +0 -1
  120. package/dist/chunk-7UU5YFCD.cjs +0 -2
  121. package/dist/chunk-7VQ7YLW3.cjs +0 -1
  122. package/dist/chunk-CKDAK3MV.js +0 -10
  123. package/dist/chunk-DIMEYVNS.js +0 -2
  124. package/dist/chunk-GQQOL4PV.js +0 -1
  125. package/dist/chunk-H2656QDI.cjs +0 -1
  126. package/dist/chunk-KQGENNL5.cjs +0 -15
  127. package/dist/chunk-LIXPSV4T.js +0 -18
  128. package/dist/chunk-O4UULRAQ.cjs +0 -5
  129. package/dist/chunk-SIIFNE6U.js +0 -15
  130. package/dist/chunk-VXYECPKA.js +0 -5
  131. package/dist/hf-references-Dvk6De4Q.d.cts +0 -70
  132. package/dist/hf-references-z5Y4N1ab.d.ts +0 -70
  133. package/dist/image-resources-BgA9EQxY.d.ts +0 -203
  134. package/dist/image-resources-BiA-IXgo.d.cts +0 -203
  135. package/dist/note-nodes-BNCANoGN.d.ts +0 -108
  136. package/dist/note-nodes-DL-Au22P.d.cts +0 -108
  137. package/dist/ooxml-package-CdEy9ufK.d.cts +0 -1222
  138. package/dist/ooxml-package-CdEy9ufK.d.ts +0 -1222
  139. package/dist/tree-op-types-CnRb7AYo.d.ts +0 -1589
  140. package/dist/tree-op-types-D1vNJ7XC.d.cts +0 -1589
@@ -0,0 +1,216 @@
1
+ import { T as TreeModelChange } from '../tree-store-CNZ3O83s.js';
2
+ import { g as OoxmlElement, b as OoxmlPackage } from '../tree-op-types-DnzAOnc9.js';
3
+ import { T as TreePackageStore } from '../tree-package-fragment-CDER0G3B.js';
4
+ import '../contracts/types.js';
5
+
6
+ /** Attribute name as the journal addresses it. Prefix is authored fidelity, not identity. @public */
7
+ interface CanonicalAttributeName {
8
+ readonly namespaceUri: string;
9
+ readonly localName: string;
10
+ readonly prefix?: string;
11
+ }
12
+ /** Content-addressed binary part reference. Bytes stay out of the journal. @public */
13
+ interface CanonicalBinaryDescriptor {
14
+ readonly storageKey: string;
15
+ readonly digest: string;
16
+ readonly size: number;
17
+ readonly mediaType: string;
18
+ }
19
+ /** Text node shell. Value arrives later through `spliceText`. @public */
20
+ interface CanonicalTextNodeDescriptor {
21
+ readonly logicalId: string;
22
+ readonly kind: 'textValue';
23
+ }
24
+ /** OOXML element shell. Attributes, bindings, and children arrive as later effects. @public */
25
+ interface CanonicalElementNodeDescriptor {
26
+ readonly logicalId: string;
27
+ readonly kind: OoxmlElement['kind'];
28
+ readonly qname: CanonicalAttributeName;
29
+ }
30
+ /** Immutable node record required to create a registry entry. @public */
31
+ type CanonicalNodeDescriptor = CanonicalTextNodeDescriptor | CanonicalElementNodeDescriptor;
32
+ /** One relationship as the journal records it. @public */
33
+ interface CanonicalRelationshipRecord {
34
+ readonly ownerPart: string;
35
+ readonly id: string;
36
+ readonly type: string;
37
+ readonly rawTarget: string;
38
+ readonly targetMode: 'Internal' | 'External';
39
+ readonly order: number;
40
+ }
41
+ /** One compositional tree or package effect captured from a canonical write. @public */
42
+ type CanonicalPrimitiveEffect = {
43
+ readonly kind: 'putNode';
44
+ readonly descriptor: CanonicalNodeDescriptor;
45
+ } | {
46
+ readonly kind: 'spliceText';
47
+ readonly logicalId: string;
48
+ readonly utf16Start: number;
49
+ readonly deleteCount: number;
50
+ readonly insert: string;
51
+ } | {
52
+ readonly kind: 'setAttribute';
53
+ readonly logicalId: string;
54
+ readonly qname: CanonicalAttributeName;
55
+ readonly value: string | null;
56
+ } | {
57
+ readonly kind: 'setNamespaceBinding';
58
+ readonly logicalId: string;
59
+ readonly prefix: string;
60
+ readonly uri: string | null;
61
+ } | {
62
+ readonly kind: 'spliceChildren';
63
+ readonly parentLogicalId: string;
64
+ readonly start: number;
65
+ readonly deleteCount: number;
66
+ readonly childLogicalIds: readonly string[];
67
+ } | {
68
+ readonly kind: 'moveNode';
69
+ readonly logicalId: string;
70
+ readonly destinationParentLogicalId: string;
71
+ readonly destinationIndex: number;
72
+ } | {
73
+ readonly kind: 'putXmlPart';
74
+ readonly name: string;
75
+ readonly rootLogicalId: string;
76
+ } | {
77
+ readonly kind: 'deleteXmlPart';
78
+ readonly name: string;
79
+ } | {
80
+ readonly kind: 'putRelationship';
81
+ readonly owner: string;
82
+ readonly record: CanonicalRelationshipRecord;
83
+ } | {
84
+ readonly kind: 'deleteRelationship';
85
+ readonly owner: string;
86
+ readonly relationshipId: string;
87
+ } | {
88
+ readonly kind: 'putContentTypeOverride';
89
+ readonly partName: string;
90
+ readonly mediaType: string;
91
+ } | {
92
+ readonly kind: 'deleteContentTypeOverride';
93
+ readonly partName: string;
94
+ } | {
95
+ readonly kind: 'putBinary';
96
+ readonly descriptor: CanonicalBinaryDescriptor;
97
+ } | {
98
+ readonly kind: 'deleteBinary';
99
+ readonly storageKey: string;
100
+ };
101
+ /**
102
+ * One immutable journal for one `TreePackageStore` transaction.
103
+ *
104
+ * Empty only when a committed write used a path the journal does not yet intercept.
105
+ *
106
+ * @public
107
+ */
108
+ interface CanonicalPrimitiveJournal {
109
+ readonly effects: readonly CanonicalPrimitiveEffect[];
110
+ }
111
+
112
+ /** Options for a canonical collaboration document port. @public */
113
+ interface CreateCollaborationDocumentPortOptions {
114
+ readonly documentId: string;
115
+ }
116
+ /** Create the narrow collaboration view over one canonical package store. @public */
117
+ declare function createCollaborationDocumentPort(store: TreePackageStore, options: CreateCollaborationDocumentPortOptions): CollaborationDocumentPort;
118
+
119
+ /**
120
+ * `@docx-editor.dev/core/collaboration/replication` — the seam a replication implementation
121
+ * binds to, not the surface a host consumes.
122
+ *
123
+ * Everything here exists for the layer BETWEEN a CRDT and the canonical tree: the document
124
+ * port an adapter writes through, the primitive journal it reads, and the descriptors that
125
+ * journal is made of. A host that renders presence and reads a status needs none of it, which
126
+ * is why it lives behind its own subpath — autocomplete on
127
+ * `@docx-editor.dev/core/collaboration` should not offer `putXmlPart` and `spliceChildren` to
128
+ * somebody wiring up an avatar stack.
129
+ *
130
+ * Reach for this when you are writing a provider. `@docx-editor.dev/pro` is one.
131
+ *
132
+ * @packageDocumentation
133
+ * @public
134
+ */
135
+
136
+ /** One existing body paragraph exposed to the replication adapter. @public */
137
+ interface CollaborationParagraph {
138
+ /** Uppercase `w14:paraId`, stable across save and reopen. */
139
+ readonly paragraphId: string;
140
+ /** Replica-local canonical node identity. Never sent as wire identity. */
141
+ readonly nodeId: string;
142
+ /** Current canonical UTF-16 text. */
143
+ readonly text: string;
144
+ }
145
+ /** Attribution for one collaboration-derived canonical publication. @public */
146
+ interface CollaborationMutation {
147
+ readonly origin: string;
148
+ readonly actorId: string;
149
+ readonly operationId: string;
150
+ }
151
+ /** One paragraph text value in an atomic collaboration publication. @public */
152
+ interface CollaborationParagraphTextUpdate {
153
+ readonly paragraphId: string;
154
+ readonly text: string;
155
+ }
156
+ /** Result of replacing one supported paragraph's canonical text. @public */
157
+ type CollaborationApplyResult = {
158
+ readonly ok: true;
159
+ readonly changed: boolean;
160
+ } | {
161
+ readonly ok: false;
162
+ readonly reason: string;
163
+ };
164
+ /**
165
+ * Narrow canonical document capability handed to a collaboration implementation.
166
+ *
167
+ * It deliberately exposes no mutable package or tree store. Every write returns through the
168
+ * same validated transaction path as browser and automation edits.
169
+ *
170
+ * @public
171
+ */
172
+ interface CollaborationDocumentPort {
173
+ readonly documentId: string;
174
+ paragraphs(): readonly CollaborationParagraph[];
175
+ paragraphByNodeId(nodeId: string): CollaborationParagraph | null;
176
+ /**
177
+ * Resolve a stable `w14:paraId` in any story this replica holds.
178
+ *
179
+ * `paragraphs()` stays body-only because text publication transacts against the body
180
+ * store. Presence may name a header, a footer, a note, or a cell, so this lookup covers
181
+ * those parts too. It resolves through an index, not a scan, because a remote caret
182
+ * resolves two addresses per selection on every caret move.
183
+ */
184
+ paragraphByStableId(paragraphId: string): CollaborationParagraph | null;
185
+ applyParagraphText(paragraphId: string, text: string, mutation: CollaborationMutation): CollaborationApplyResult;
186
+ applyParagraphTexts(updates: readonly CollaborationParagraphTextUpdate[], mutation: CollaborationMutation): CollaborationApplyResult;
187
+ /**
188
+ * Publish one remotely materialized canonical package as one revision.
189
+ *
190
+ * The package is frozen canonical state. This port exposes no mutable store or CRDT.
191
+ */
192
+ applyRemotePackage(pkg: OoxmlPackage, mutation: CollaborationMutation): CollaborationApplyResult;
193
+ revision(): number;
194
+ subscribe(listener: (change: TreeModelChange) => void): () => void;
195
+ /**
196
+ * Observe one settled primitive journal per committed canonical transaction.
197
+ *
198
+ * Disabled observation allocates no journal. This is the collaboration write seam;
199
+ * adapters never write a CRDT through this port.
200
+ */
201
+ observePrimitiveJournal(listener: (journal: CanonicalPrimitiveJournal) => void): () => void;
202
+ /** True when a committed journal has not yet been frozen or delivered to observers. */
203
+ hasPendingJournals(): boolean;
204
+ /**
205
+ * Freeze and deliver queued journals in production order.
206
+ *
207
+ * Local edit, layout, and paint do not wait for this. Tests and teardown call it
208
+ * instead of sleeping on the publication timer.
209
+ */
210
+ flushPendingJournals(): void;
211
+ save(): Uint8Array;
212
+ /** Bytes of one binary package part, or null when the part is absent. */
213
+ binaryPart(storageKey: string): Uint8Array | null;
214
+ }
215
+
216
+ export { type CanonicalAttributeName, type CanonicalBinaryDescriptor, type CanonicalElementNodeDescriptor, type CanonicalNodeDescriptor, type CanonicalPrimitiveEffect, type CanonicalPrimitiveJournal, type CanonicalRelationshipRecord, type CanonicalTextNodeDescriptor, type CollaborationApplyResult, type CollaborationDocumentPort, type CollaborationMutation, type CollaborationParagraph, type CollaborationParagraphTextUpdate, type CreateCollaborationDocumentPortOptions, createCollaborationDocumentPort };
@@ -0,0 +1 @@
1
+ export{b as createCollaborationDocumentPort}from'../chunk-BP7ANXGA.js';import'../chunk-34BNQUD4.js';
@@ -0,0 +1 @@
1
+ 'use strict';var chunkBTQKU64Q_cjs=require('./chunk-BTQKU64Q.cjs');var u={"already-initialized":true,"authentication-failed":true,"baseline-digest-mismatch":true,"baseline-too-large":true,"blob-digest-mismatch":true,"blob-read":true,"blob-store-full":true,"blob-too-large":true,"collaboration-session-destroyed":true,"collaboration-session-not-attached":true,"collaboration-session-not-ready":true,"collaboration-text-limit":true,"concurrent-seed":true,"document-id-mismatch":true,"duplicate-paragraph-id":true,"experimental-collaboration-body-text-only":true,"experimental-collaboration-existing-paragraphs-only":true,"experimental-collaboration-text-only":true,"experimental-collaboration-untracked-text-only":true,"immutable-baseline-changed":true,"immutable-metadata-changed":true,"initialization-aborted":true,"initialization-timeout":true,"invalid-baseline":true,"invalid-blob-descriptor":true,"invalid-bound":true,"invalid-document-id":true,"invalid-identity":true,"invalid-identity-color":true,"invalid-logical-id":true,"invalid-relationships":true,"invalid-session-id":true,"invalid-shared-metadata":true,"invalid-string":true,"local-mirror-failed":true,"materialize-dropped-content":true,"missing-blob":true,"missing-local-blob":true,"missing-root":true,"no-main-document-part":true,"not-initialized":true,"paragraph-set-mismatch":true,"port-already-attached":true,"protocol-version-mismatch":true,"prototype-key":true,"remote-apply-failed":true,"schema-version-mismatch":true,"shared-schema-invalid":true,"text-too-long":true,"too-many-attributes":true,"too-many-children":true,"too-many-nodes":true,"too-many-parts":true,"too-many-relationships":true,transport:true,"transport-disconnected":true,"tree-too-deep":true,"unknown-logical-id":true,"unknown-paragraph-id":true,"unsafe-part-name":true,"unsupported-root-key":true};function c(t){return Object.hasOwn(u,t)}function b(t,o){return t===o?true:!t||!o?false:t.code===o.code&&t.detail===o.detail}function p(t,o){return Object.freeze(o!==void 0&&o.length>0?{code:t,detail:o}:{code:t})}function m(t="initializing"){let o=t,e,r,n=Object.freeze({status:o,reason:e,lastFailure:r});return {status:()=>o,snapshot:()=>n,set(i,l,s){let a=l===void 0?void 0:p(l,s);return o===i&&b(e,a)?false:(o=i,e=a,i==="error"&&a&&(r=a),n=Object.freeze({status:o,reason:e,lastFailure:r}),true)}}}Object.defineProperty(exports,"safeParticipantColor",{enumerable:true,get:function(){return chunkBTQKU64Q_cjs.a}});exports.createCollaborationStatusTracker=m;exports.isCollaborationFailureCode=c;
@@ -0,0 +1,176 @@
1
+ import { S as StoryScope } from './tree-package-fragment-BjZ3RWAS.cjs';
2
+ import { T as TreeDocOp } from './tree-op-types-BPyXNxyL.cjs';
3
+ import { CollaborationDocumentPort } from './collaboration/replication.cjs';
4
+ import { C as CollaborationStatus, a as CollaborationStatusSnapshot, b as CollaborationFailureCode } from './failure-BnGjoXf0.cjs';
5
+ export { c as CollaborationFailure, d as createCollaborationStatusTracker, i as isCollaborationFailureCode } from './failure-BnGjoXf0.cjs';
6
+ import './tree-store-DfZi7FqY.cjs';
7
+ import './contracts/types.cjs';
8
+
9
+ /**
10
+ * A peer's presence color is attacker-controlled: it arrives over awareness from whoever is in
11
+ * the room, and the engine paints it into a CSS custom property that the stylesheet consumes in
12
+ * a `background` shorthand. A custom property substitutes verbatim, so `url(...)` is a valid
13
+ * `<bg-image>` there — an unvalidated color is a zero-click GET to any host the peer names, on
14
+ * every replica that paints their caret. A length cap does not help: `url(//host/t)` is short.
15
+ *
16
+ * So the only colors that reach a style property are the two shapes this engine itself produces:
17
+ * a hex literal, or a reference to one of the review author slots the core stylesheet owns.
18
+ * Anything else is dropped and the caller falls back to the accent color.
19
+ */
20
+ /**
21
+ * Return `value` when it is a color this engine can safely paint, otherwise `undefined`.
22
+ *
23
+ * @public
24
+ */
25
+ declare function safeParticipantColor(value: string | undefined): string | undefined;
26
+
27
+ /**
28
+ * `@docx-editor.dev/core/collaboration` — provider-neutral collaboration contracts.
29
+ *
30
+ * This lane names the attachment between the canonical tree and an optional replication
31
+ * implementation. It performs no networking and imports no CRDT.
32
+ *
33
+ * @packageDocumentation
34
+ * @public
35
+ */
36
+
37
+ /** Human or automation identity attached to authored collaboration transactions. @public */
38
+ interface CollaborationIdentity {
39
+ readonly actorId: string;
40
+ readonly name: string;
41
+ readonly color?: string;
42
+ readonly role?: 'human' | 'agent';
43
+ }
44
+ /** One validated identity visible through ephemeral collaboration presence. @public */
45
+ interface CollaborationParticipant extends CollaborationIdentity {
46
+ readonly isLocal: boolean;
47
+ }
48
+ /**
49
+ * One endpoint of a published selection: a stable paragraph id and a UTF-16 offset.
50
+ *
51
+ * The wire payload carries only these two endpoints. The receiver walks its own canonical
52
+ * tree to find the paragraphs between them, so a select-all does not grow with document size.
53
+ *
54
+ * @public
55
+ */
56
+ interface CollaborationSelectionAddress {
57
+ readonly paragraphId: string;
58
+ readonly offset: number;
59
+ }
60
+ /**
61
+ * How a published selection covers the document.
62
+ *
63
+ * Absent or omitted means a character range. `cells` means the table rectangle whose
64
+ * corner cells contain the two endpoints. The payload still carries only those endpoints,
65
+ * so a large table selection does not grow with the number of selected cells.
66
+ *
67
+ * @public
68
+ */
69
+ type CollaborationSelectionKind = 'cells';
70
+ /**
71
+ * One endpoint of a remote selection resolved into this replica's canonical addresses.
72
+ *
73
+ * `paragraphId` is the stable `w14:paraId`. `nodeId` is replica-local and is used to paint.
74
+ *
75
+ * @public
76
+ */
77
+ interface CollaborationRemoteSelectionAddress {
78
+ readonly paragraphId: string;
79
+ readonly nodeId: string;
80
+ readonly offset: number;
81
+ }
82
+ /**
83
+ * Stable remote selection resolved into this replica's canonical paragraph addresses.
84
+ *
85
+ * Anchor and head may name different paragraphs. A collapsed caret is the same address twice.
86
+ *
87
+ * @public
88
+ */
89
+ interface CollaborationRemoteSelection {
90
+ readonly actorId: string;
91
+ readonly name: string;
92
+ readonly color?: string;
93
+ readonly anchor: CollaborationRemoteSelectionAddress;
94
+ readonly head: CollaborationRemoteSelectionAddress;
95
+ readonly kind?: CollaborationSelectionKind;
96
+ }
97
+ /**
98
+ * Selection published by the local editor through ephemeral awareness.
99
+ *
100
+ * Publish an anchor address and a head address. Do not materialize every covered paragraph.
101
+ *
102
+ * @public
103
+ */
104
+ interface CollaborationLocalSelection {
105
+ readonly anchor: CollaborationSelectionAddress;
106
+ readonly head: CollaborationSelectionAddress;
107
+ readonly kind?: CollaborationSelectionKind;
108
+ }
109
+ /**
110
+ * Optional replication session attached to an editor or headless automation host.
111
+ *
112
+ * Implementations own replication state only. The attached document port remains the authored
113
+ * authority for reads, layout, paint, and save.
114
+ *
115
+ * @public
116
+ */
117
+ interface EditorCollaborationSession {
118
+ readonly documentId: string;
119
+ /** Unique identity for this attachment lifetime. It prevents operation ID reuse after reconnect. */
120
+ readonly sessionId: string;
121
+ readonly identity: CollaborationIdentity;
122
+ status(): CollaborationStatus;
123
+ /**
124
+ * Cached status, current reason, and last failure.
125
+ *
126
+ * Same reference until any of those values change. A host that mounts after a
127
+ * recovered error still reads {@link CollaborationStatusSnapshot.lastFailure}.
128
+ */
129
+ statusSnapshot(): CollaborationStatusSnapshot;
130
+ subscribeStatus(listener: (status: CollaborationStatus, reason?: CollaborationFailureCode, detail?: string) => void): () => void;
131
+ attach(port: CollaborationDocumentPort): () => void;
132
+ /**
133
+ * Whether an editor has attached its document port to this replica.
134
+ *
135
+ * False means edits do not replicate, whatever `status()` says — the usual cause is a host
136
+ * that did not remount the editor when the session appeared, so `collaborationModule`
137
+ * never attached. That mistake used to be reachable only as a `console.warn`, which a
138
+ * production build discards; this is the same fact as a value a host can render.
139
+ */
140
+ readonly attached: boolean;
141
+ gateOperations(ops: readonly TreeDocOp[], scope: StoryScope): CollaborationFailureCode | null;
142
+ canUndo(): boolean;
143
+ canRedo(): boolean;
144
+ undo(): boolean;
145
+ redo(): boolean;
146
+ setLocalSelection(selection: CollaborationLocalSelection | null): void;
147
+ participants(): readonly CollaborationParticipant[];
148
+ subscribeParticipants(listener: (participants: readonly CollaborationParticipant[]) => void): () => void;
149
+ remoteSelections(): readonly CollaborationRemoteSelection[];
150
+ subscribeRemoteSelections(listener: (selections: readonly CollaborationRemoteSelection[]) => void): () => void;
151
+ /**
152
+ * Publish queued local journals to shared state.
153
+ *
154
+ * Local typing does not wait for replication. Undo, destroy, and page hide call this
155
+ * so a queued journal is never dropped.
156
+ */
157
+ flushPendingJournals(): void;
158
+ destroy(): void;
159
+ }
160
+ /**
161
+ * What a collaboration module contributes: the replica the surface attaches.
162
+ *
163
+ * @public
164
+ */
165
+ interface CollaborationModuleContribution {
166
+ /**
167
+ * A ready session. The host creates the Yjs room, then wraps it with
168
+ * `collaborationModule({ session })`.
169
+ *
170
+ * Core does not build a session from a document id: the opened package has
171
+ * no collaboration room identity. That identity is chosen before mount.
172
+ */
173
+ readonly session: EditorCollaborationSession;
174
+ }
175
+
176
+ export { CollaborationFailureCode, type CollaborationIdentity, type CollaborationLocalSelection, type CollaborationModuleContribution, type CollaborationParticipant, type CollaborationRemoteSelection, type CollaborationRemoteSelectionAddress, type CollaborationSelectionAddress, type CollaborationSelectionKind, CollaborationStatus, CollaborationStatusSnapshot, type EditorCollaborationSession, safeParticipantColor };
@@ -0,0 +1,176 @@
1
+ import { S as StoryScope } from './tree-package-fragment-CDER0G3B.js';
2
+ import { T as TreeDocOp } from './tree-op-types-DnzAOnc9.js';
3
+ import { CollaborationDocumentPort } from './collaboration/replication.js';
4
+ import { C as CollaborationStatus, a as CollaborationStatusSnapshot, b as CollaborationFailureCode } from './failure-BnGjoXf0.js';
5
+ export { c as CollaborationFailure, d as createCollaborationStatusTracker, i as isCollaborationFailureCode } from './failure-BnGjoXf0.js';
6
+ import './tree-store-CNZ3O83s.js';
7
+ import './contracts/types.js';
8
+
9
+ /**
10
+ * A peer's presence color is attacker-controlled: it arrives over awareness from whoever is in
11
+ * the room, and the engine paints it into a CSS custom property that the stylesheet consumes in
12
+ * a `background` shorthand. A custom property substitutes verbatim, so `url(...)` is a valid
13
+ * `<bg-image>` there — an unvalidated color is a zero-click GET to any host the peer names, on
14
+ * every replica that paints their caret. A length cap does not help: `url(//host/t)` is short.
15
+ *
16
+ * So the only colors that reach a style property are the two shapes this engine itself produces:
17
+ * a hex literal, or a reference to one of the review author slots the core stylesheet owns.
18
+ * Anything else is dropped and the caller falls back to the accent color.
19
+ */
20
+ /**
21
+ * Return `value` when it is a color this engine can safely paint, otherwise `undefined`.
22
+ *
23
+ * @public
24
+ */
25
+ declare function safeParticipantColor(value: string | undefined): string | undefined;
26
+
27
+ /**
28
+ * `@docx-editor.dev/core/collaboration` — provider-neutral collaboration contracts.
29
+ *
30
+ * This lane names the attachment between the canonical tree and an optional replication
31
+ * implementation. It performs no networking and imports no CRDT.
32
+ *
33
+ * @packageDocumentation
34
+ * @public
35
+ */
36
+
37
+ /** Human or automation identity attached to authored collaboration transactions. @public */
38
+ interface CollaborationIdentity {
39
+ readonly actorId: string;
40
+ readonly name: string;
41
+ readonly color?: string;
42
+ readonly role?: 'human' | 'agent';
43
+ }
44
+ /** One validated identity visible through ephemeral collaboration presence. @public */
45
+ interface CollaborationParticipant extends CollaborationIdentity {
46
+ readonly isLocal: boolean;
47
+ }
48
+ /**
49
+ * One endpoint of a published selection: a stable paragraph id and a UTF-16 offset.
50
+ *
51
+ * The wire payload carries only these two endpoints. The receiver walks its own canonical
52
+ * tree to find the paragraphs between them, so a select-all does not grow with document size.
53
+ *
54
+ * @public
55
+ */
56
+ interface CollaborationSelectionAddress {
57
+ readonly paragraphId: string;
58
+ readonly offset: number;
59
+ }
60
+ /**
61
+ * How a published selection covers the document.
62
+ *
63
+ * Absent or omitted means a character range. `cells` means the table rectangle whose
64
+ * corner cells contain the two endpoints. The payload still carries only those endpoints,
65
+ * so a large table selection does not grow with the number of selected cells.
66
+ *
67
+ * @public
68
+ */
69
+ type CollaborationSelectionKind = 'cells';
70
+ /**
71
+ * One endpoint of a remote selection resolved into this replica's canonical addresses.
72
+ *
73
+ * `paragraphId` is the stable `w14:paraId`. `nodeId` is replica-local and is used to paint.
74
+ *
75
+ * @public
76
+ */
77
+ interface CollaborationRemoteSelectionAddress {
78
+ readonly paragraphId: string;
79
+ readonly nodeId: string;
80
+ readonly offset: number;
81
+ }
82
+ /**
83
+ * Stable remote selection resolved into this replica's canonical paragraph addresses.
84
+ *
85
+ * Anchor and head may name different paragraphs. A collapsed caret is the same address twice.
86
+ *
87
+ * @public
88
+ */
89
+ interface CollaborationRemoteSelection {
90
+ readonly actorId: string;
91
+ readonly name: string;
92
+ readonly color?: string;
93
+ readonly anchor: CollaborationRemoteSelectionAddress;
94
+ readonly head: CollaborationRemoteSelectionAddress;
95
+ readonly kind?: CollaborationSelectionKind;
96
+ }
97
+ /**
98
+ * Selection published by the local editor through ephemeral awareness.
99
+ *
100
+ * Publish an anchor address and a head address. Do not materialize every covered paragraph.
101
+ *
102
+ * @public
103
+ */
104
+ interface CollaborationLocalSelection {
105
+ readonly anchor: CollaborationSelectionAddress;
106
+ readonly head: CollaborationSelectionAddress;
107
+ readonly kind?: CollaborationSelectionKind;
108
+ }
109
+ /**
110
+ * Optional replication session attached to an editor or headless automation host.
111
+ *
112
+ * Implementations own replication state only. The attached document port remains the authored
113
+ * authority for reads, layout, paint, and save.
114
+ *
115
+ * @public
116
+ */
117
+ interface EditorCollaborationSession {
118
+ readonly documentId: string;
119
+ /** Unique identity for this attachment lifetime. It prevents operation ID reuse after reconnect. */
120
+ readonly sessionId: string;
121
+ readonly identity: CollaborationIdentity;
122
+ status(): CollaborationStatus;
123
+ /**
124
+ * Cached status, current reason, and last failure.
125
+ *
126
+ * Same reference until any of those values change. A host that mounts after a
127
+ * recovered error still reads {@link CollaborationStatusSnapshot.lastFailure}.
128
+ */
129
+ statusSnapshot(): CollaborationStatusSnapshot;
130
+ subscribeStatus(listener: (status: CollaborationStatus, reason?: CollaborationFailureCode, detail?: string) => void): () => void;
131
+ attach(port: CollaborationDocumentPort): () => void;
132
+ /**
133
+ * Whether an editor has attached its document port to this replica.
134
+ *
135
+ * False means edits do not replicate, whatever `status()` says — the usual cause is a host
136
+ * that did not remount the editor when the session appeared, so `collaborationModule`
137
+ * never attached. That mistake used to be reachable only as a `console.warn`, which a
138
+ * production build discards; this is the same fact as a value a host can render.
139
+ */
140
+ readonly attached: boolean;
141
+ gateOperations(ops: readonly TreeDocOp[], scope: StoryScope): CollaborationFailureCode | null;
142
+ canUndo(): boolean;
143
+ canRedo(): boolean;
144
+ undo(): boolean;
145
+ redo(): boolean;
146
+ setLocalSelection(selection: CollaborationLocalSelection | null): void;
147
+ participants(): readonly CollaborationParticipant[];
148
+ subscribeParticipants(listener: (participants: readonly CollaborationParticipant[]) => void): () => void;
149
+ remoteSelections(): readonly CollaborationRemoteSelection[];
150
+ subscribeRemoteSelections(listener: (selections: readonly CollaborationRemoteSelection[]) => void): () => void;
151
+ /**
152
+ * Publish queued local journals to shared state.
153
+ *
154
+ * Local typing does not wait for replication. Undo, destroy, and page hide call this
155
+ * so a queued journal is never dropped.
156
+ */
157
+ flushPendingJournals(): void;
158
+ destroy(): void;
159
+ }
160
+ /**
161
+ * What a collaboration module contributes: the replica the surface attaches.
162
+ *
163
+ * @public
164
+ */
165
+ interface CollaborationModuleContribution {
166
+ /**
167
+ * A ready session. The host creates the Yjs room, then wraps it with
168
+ * `collaborationModule({ session })`.
169
+ *
170
+ * Core does not build a session from a document id: the opened package has
171
+ * no collaboration room identity. That identity is chosen before mount.
172
+ */
173
+ readonly session: EditorCollaborationSession;
174
+ }
175
+
176
+ export { CollaborationFailureCode, type CollaborationIdentity, type CollaborationLocalSelection, type CollaborationModuleContribution, type CollaborationParticipant, type CollaborationRemoteSelection, type CollaborationRemoteSelectionAddress, type CollaborationSelectionAddress, type CollaborationSelectionKind, CollaborationStatus, CollaborationStatusSnapshot, type EditorCollaborationSession, safeParticipantColor };
@@ -0,0 +1 @@
1
+ export{a as safeParticipantColor}from'./chunk-6JIJOZDW.js';var u={"already-initialized":true,"authentication-failed":true,"baseline-digest-mismatch":true,"baseline-too-large":true,"blob-digest-mismatch":true,"blob-read":true,"blob-store-full":true,"blob-too-large":true,"collaboration-session-destroyed":true,"collaboration-session-not-attached":true,"collaboration-session-not-ready":true,"collaboration-text-limit":true,"concurrent-seed":true,"document-id-mismatch":true,"duplicate-paragraph-id":true,"experimental-collaboration-body-text-only":true,"experimental-collaboration-existing-paragraphs-only":true,"experimental-collaboration-text-only":true,"experimental-collaboration-untracked-text-only":true,"immutable-baseline-changed":true,"immutable-metadata-changed":true,"initialization-aborted":true,"initialization-timeout":true,"invalid-baseline":true,"invalid-blob-descriptor":true,"invalid-bound":true,"invalid-document-id":true,"invalid-identity":true,"invalid-identity-color":true,"invalid-logical-id":true,"invalid-relationships":true,"invalid-session-id":true,"invalid-shared-metadata":true,"invalid-string":true,"local-mirror-failed":true,"materialize-dropped-content":true,"missing-blob":true,"missing-local-blob":true,"missing-root":true,"no-main-document-part":true,"not-initialized":true,"paragraph-set-mismatch":true,"port-already-attached":true,"protocol-version-mismatch":true,"prototype-key":true,"remote-apply-failed":true,"schema-version-mismatch":true,"shared-schema-invalid":true,"text-too-long":true,"too-many-attributes":true,"too-many-children":true,"too-many-nodes":true,"too-many-parts":true,"too-many-relationships":true,transport:true,"transport-disconnected":true,"tree-too-deep":true,"unknown-logical-id":true,"unknown-paragraph-id":true,"unsafe-part-name":true,"unsupported-root-key":true};function c(t){return Object.hasOwn(u,t)}function b(t,o){return t===o?true:!t||!o?false:t.code===o.code&&t.detail===o.detail}function p(t,o){return Object.freeze(o!==void 0&&o.length>0?{code:t,detail:o}:{code:t})}function m(t="initializing"){let o=t,e,r,n=Object.freeze({status:o,reason:e,lastFailure:r});return {status:()=>o,snapshot:()=>n,set(i,l,s){let a=l===void 0?void 0:p(l,s);return o===i&&b(e,a)?false:(o=i,e=a,i==="error"&&a&&(r=a),n=Object.freeze({status:o,reason:e,lastFailure:r}),true)}}}export{m as createCollaborationStatusTracker,c as isCollaborationFailureCode};
@@ -62,9 +62,14 @@ interface DocEdits {
62
62
  removeHyperlink: {
63
63
  target: DocTarget;
64
64
  };
65
+ /**
66
+ * `'section'` is Word's Next Page break; `'sectionContinuous'` keeps the new section on
67
+ * the sheet the previous one ended, which is how a mid-page column or margin change is
68
+ * authored. `'column'` belongs to the multi-column lane and is refused for now.
69
+ */
65
70
  insertBreak: {
66
71
  target: DocTarget;
67
- kind: 'page' | 'column' | 'line' | 'section';
72
+ kind: 'page' | 'column' | 'line' | 'section' | 'sectionContinuous';
68
73
  };
69
74
  /**
70
75
  * Word's Increase/Decrease Indent.
@@ -62,9 +62,14 @@ interface DocEdits {
62
62
  removeHyperlink: {
63
63
  target: DocTarget;
64
64
  };
65
+ /**
66
+ * `'section'` is Word's Next Page break; `'sectionContinuous'` keeps the new section on
67
+ * the sheet the previous one ended, which is how a mid-page column or margin change is
68
+ * authored. `'column'` belongs to the multi-column lane and is refused for now.
69
+ */
65
70
  insertBreak: {
66
71
  target: DocTarget;
67
- kind: 'page' | 'column' | 'line' | 'section';
72
+ kind: 'page' | 'column' | 'line' | 'section' | 'sectionContinuous';
68
73
  };
69
74
  /**
70
75
  * Word's Increase/Decrease Indent.
@@ -1 +1 @@
1
- 'use strict';var chunkYMYCPY5Y_cjs=require('../chunk-YMYCPY5Y.cjs');Object.defineProperty(exports,"EditorFontError",{enumerable:true,get:function(){return chunkYMYCPY5Y_cjs.a}});
1
+ 'use strict';var chunkOHJQ7GPZ_cjs=require('../chunk-OHJQ7GPZ.cjs');Object.defineProperty(exports,"EditorFontError",{enumerable:true,get:function(){return chunkOHJQ7GPZ_cjs.a}});
@@ -1,11 +1,10 @@
1
1
  export { ContentControlSummary, DocEdits, DocQueries, DocQueryResults, ParagraphSummary } from './document.cjs';
2
- export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind } from '../review-items-B8tffIXj.cjs';
3
- export { A as AuthoredNoteNumbering, C as CanResult, q as DocumentChange, r as DocumentEditingMode, t as DocumentHandle, D as DocumentSource, l as Editor, b as EditorCommand, u as EditorCommandShape, w as EditorCommands, x as EditorError, y as EditorEvents, E as EditorFontError, z as EditorFontErrorCode, B as EditorHeaderFooterCommands, G as EditorNoteCommands, H as EditorPosition, J as EditorQueries, K as EditorQuery, L as EditorQueryResults, M as EditorScope, N as EditorSelection, a as EditorSnapshot, F as FontConfiguration, m as FontFaceRequest, j as FontSource, k as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, c as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, _ as NotePropertiesSide, $ as NotePropertiesState, a0 as PageSetup, a1 as ResolvedNoteNumbering, a2 as ReviewActivationOptions, a3 as ReviewCommentPlacement, a4 as ReviewCustomPlacement, a5 as ReviewItemPlacement, a6 as ReviewItemPlacementBase, a7 as ReviewItemQuery, a8 as ReviewRevisionPlacement, S as SelectedImageState, a9 as SemanticIdentity, aa as SemanticTarget, T as TableBorderEdgeTarget, n as TableBorderSpec, o as TableBorderStyle, ab as TableBorderTarget, ac as TableCellVerticalAlignment, ad as TableColumnDividerResizeTarget, ae as TableColumnOccurrenceTarget, p as TableContext, af as TableRightEdgeResizeTarget, ag as TableRowOccurrenceTarget, ah as TextMatch, V as ViewScope, ai as ZoomFitTarget, Z as ZoomMode } from '../editor-cAEf1uXW.cjs';
4
- export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-BfWDD_0V.cjs';
2
+ export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind } from '../review-items-BdeLNRi2.cjs';
3
+ export { A as AuthoredNoteNumbering, C as CanResult, r as DocumentChange, t as DocumentEditingMode, u as DocumentHandle, D as DocumentSource, l as Editor, b as EditorCommand, w as EditorCommandShape, x as EditorCommands, y as EditorError, z as EditorEvents, E as EditorFontError, B as EditorFontErrorCode, G as EditorFormatPainterCommands, H as EditorHeaderFooterCommands, J as EditorNoteCommands, K as EditorPosition, L as EditorQueries, M as EditorQuery, N as EditorQueryResults, O as EditorScope, P as EditorSelection, a as EditorSnapshot, F as FontConfiguration, n as FontFaceRequest, j as FontSource, k as FontSourceSubstitution, Q as FormatPainterLevel, R as FormatPainterMode, m as FormatPainterSurfaceState, U as FurnitureVariant, W as HeaderFooterSlotArgs, X as HeaderFooterState, Y as HyperlinkInfo, I as ImageContext, c as ImageCropPercent, _ as InteractionAffinity, $ as InteractionOutcome, a0 as InteractionOutcomeCode, a1 as NoteKind, a2 as NotePropertiesSide, a3 as NotePropertiesState, a4 as PageSetup, a5 as ResolvedNoteNumbering, a6 as ReviewActivationOptions, a7 as ReviewCommentPlacement, a8 as ReviewCustomPlacement, a9 as ReviewItemPlacement, aa as ReviewItemPlacementBase, ab as ReviewItemQuery, ac as ReviewRevisionPlacement, S as SelectedImageState, ad as SemanticIdentity, ae as SemanticTarget, T as TableBorderEdgeTarget, o as TableBorderSpec, p as TableBorderStyle, af as TableBorderTarget, ag as TableCellVerticalAlignment, ah as TableColumnDividerResizeTarget, ai as TableColumnOccurrenceTarget, q as TableContext, aj as TableRightEdgeResizeTarget, ak as TableRowOccurrenceTarget, al as TextMatch, V as ViewScope, am as ZoomFitTarget, Z as ZoomMode } from '../editor-C8edZgy5.cjs';
4
+ export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-Cs2jErnt.cjs';
5
+ export { z as DrawingHorizontalReferenceFrame, D as DrawingKind, w as DrawingLocks, v as DrawingPositionInput, A as DrawingVerticalReferenceFrame, x as ImageResourceState, u as ImageWrapTarget, P as PreservedImageMime, t as RenderableImageMime, R as RevisionAddress, y as SupportedImageMime, V as ValidatedImageBytesHandle, B as VectorImageMime } from '../tree-op-types-BPyXNxyL.cjs';
5
6
  export { Block, ColorValue, ContainerRef, ContentControl, ContentControlFilter, ContentControlType, DocAnchor, DocAnchorRange, DocComment, DocLocation, DocRange, DocTarget, DocumentBody, DocxDocument, DocxDocumentJSON, ExecErrorCode, ExecResult, Extent, FontDefinition, HeaderFooterSet, IndentFormatting, InsertableContentControlType, NumberingRef, PageMargins, Paragraph, ParagraphDisagreements, ParagraphFlags, ParagraphFormatCommand, ParagraphTabStop, Point, Rect, Revision, RevisionType, Run, RunFormatting, Section, SectionProperties, SelectionPin, StyleDefinition, StyleDefinitions, Table, TableCell, TableRow, Theme, ThemeColorScheme, Unsubscribe, Watermark } from './types.cjs';
6
- export { f as DrawingHorizontalReferenceFrame, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, R as RevisionAddress } from '../tree-op-types-D1vNJ7XC.cjs';
7
- export { I as ImageResourceState, P as PreservedImageMime, R as RenderableImageMime, S as SupportedImageMime, V as ValidatedImageBytesHandle, a as VectorImageMime } from '../image-resources-BiA-IXgo.cjs';
8
- import '../ooxml-package-CdEy9ufK.cjs';
9
- import '../semantic-records-DadVT_E1.cjs';
10
- import '../revision-projection-Cc4wz30g.cjs';
11
- import '../omml-equation-BD-LsmWE.cjs';
7
+ import '../failure-BnGjoXf0.cjs';
8
+ import '../semantic-records-5AOQJmLX.cjs';
9
+ import '../revision-projection-C2S8PSQm.cjs';
10
+ import '../omml-equation-CqQOt_dD.cjs';