@eigenpal/docx-editor-core 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/LICENSE +13 -16
  2. package/README.md +1 -1
  3. package/dist/agent/index.d.mts +4 -5
  4. package/dist/agent/index.d.ts +4 -5
  5. package/dist/agent/index.js +1 -1
  6. package/dist/agent/index.mjs +1 -1
  7. package/dist/{chunk-NLTX7XVR.js → chunk-25KY5HLN.js} +1 -1
  8. package/dist/chunk-44FHVKSI.js +1 -0
  9. package/dist/{chunk-4S5VOHQK.mjs → chunk-5CDBSK2R.mjs} +1 -1
  10. package/dist/chunk-6Y6LON6Y.mjs +1 -0
  11. package/dist/chunk-6ZXL3EIP.mjs +2 -0
  12. package/dist/chunk-73AZQWIE.js +1 -0
  13. package/dist/chunk-7HANRHHL.js +1 -0
  14. package/dist/chunk-7LRR7RKE.mjs +15 -0
  15. package/dist/{chunk-AGNZEOVL.mjs → chunk-7Z2AGPNQ.mjs} +1 -1
  16. package/dist/chunk-BGE57OES.js +1 -0
  17. package/dist/chunk-BOOHU5EW.mjs +1 -0
  18. package/dist/chunk-CA2EYL6T.mjs +1 -0
  19. package/dist/chunk-CTHHUJAB.mjs +2 -0
  20. package/dist/chunk-DLCDDB66.mjs +3 -0
  21. package/dist/chunk-DV6GWBUJ.js +2 -0
  22. package/dist/chunk-E4JMCA5X.js +2 -0
  23. package/dist/chunk-F44ZLDZS.js +4 -0
  24. package/dist/chunk-FCJWLEKT.mjs +1 -0
  25. package/dist/chunk-FDEDN2RC.mjs +0 -0
  26. package/dist/chunk-FEWCI2E5.mjs +1 -0
  27. package/dist/chunk-GFDIPDJ6.mjs +1 -0
  28. package/dist/chunk-GM4USWKO.js +2 -0
  29. package/dist/chunk-GWBVJZVT.js +3 -0
  30. package/dist/chunk-GY5BWVM7.js +1 -0
  31. package/dist/{chunk-7SGC3CXJ.js → chunk-H42RXHT4.js} +1 -1
  32. package/dist/chunk-HMBVSDCH.mjs +1 -0
  33. package/dist/chunk-HQPWFUP5.js +2 -0
  34. package/dist/chunk-HV6HE6YR.js +59 -0
  35. package/dist/chunk-IF4C25FN.mjs +1 -0
  36. package/dist/chunk-IMKU4O3P.js +1 -0
  37. package/dist/chunk-IQG3KLWY.mjs +2 -0
  38. package/dist/{chunk-AFMMYLPX.js → chunk-J4J2Y6EU.js} +2 -2
  39. package/dist/chunk-KGDXHUYC.js +1 -0
  40. package/dist/chunk-KHF4JU7D.mjs +1 -0
  41. package/dist/chunk-LCICADWM.js +2 -0
  42. package/dist/{chunk-GFQM7PKY.js → chunk-LOCW6MR2.js} +1 -1
  43. package/dist/chunk-LTHT4A4S.js +1 -0
  44. package/dist/chunk-MJ6XZFVD.mjs +1 -0
  45. package/dist/chunk-MNOHUTKE.js +15 -0
  46. package/dist/chunk-MP4QSEO2.mjs +1 -0
  47. package/dist/chunk-MZ2XCZAN.mjs +1 -0
  48. package/dist/chunk-OAWTQ3IY.js +1 -0
  49. package/dist/chunk-OEXVWIHW.mjs +2 -0
  50. package/dist/chunk-ONRBRDIC.mjs +59 -0
  51. package/dist/{chunk-6PR4XHQ3.mjs → chunk-ONWOHAFW.mjs} +1 -1
  52. package/dist/{chunk-EXOP727C.mjs → chunk-OUEKNYX5.mjs} +1 -1
  53. package/dist/chunk-OX75Q5ZG.mjs +1 -0
  54. package/dist/chunk-QEACB5VG.js +1 -0
  55. package/dist/chunk-RFC2SXZ6.mjs +4 -0
  56. package/dist/chunk-RFVFX5WK.mjs +1 -0
  57. package/dist/chunk-SORYYVJ7.js +1 -0
  58. package/dist/chunk-TUIEV7Q7.js +1 -0
  59. package/dist/chunk-U74VPTIU.js +1 -0
  60. package/dist/chunk-UOQT6A7P.js +1 -0
  61. package/dist/chunk-V5VDCQDN.mjs +1 -0
  62. package/dist/chunk-VHUVPHPI.mjs +1 -0
  63. package/dist/{chunk-XCMA7AY7.js → chunk-W7GLQ6DV.js} +1 -1
  64. package/dist/chunk-WLHNIXWC.mjs +2 -0
  65. package/dist/chunk-X6HFDXKB.js +1 -0
  66. package/dist/chunk-XPV6VILW.mjs +1 -0
  67. package/dist/chunk-Y3ZQQI4D.js +1 -0
  68. package/dist/chunk-YTDWMXNS.js +1 -0
  69. package/dist/chunk-ZUGNF5KU.js +1 -0
  70. package/dist/chunk-ZX26QZJ5.mjs +1 -0
  71. package/dist/{colorResolver-CVsPLsw1.d.ts → colorResolver-BZ_yScf4.d.ts} +1 -1
  72. package/dist/{colorResolver-C3q7MLLD.d.mts → colorResolver-C6DtsoFI.d.mts} +1 -1
  73. package/dist/content-5Mrz6w_b.d.mts +1360 -0
  74. package/dist/content-CmqAwdFL.d.ts +1360 -0
  75. package/dist/core-plugins.d.mts +3 -4
  76. package/dist/core-plugins.d.ts +3 -4
  77. package/dist/core-plugins.js +1 -1
  78. package/dist/core-plugins.mjs +1 -1
  79. package/dist/core.d.mts +10 -11
  80. package/dist/core.d.ts +10 -11
  81. package/dist/core.js +1 -1
  82. package/dist/core.mjs +1 -1
  83. package/dist/{documentSerializer-Chn7J1WG.d.ts → documentSerializer-BRaaXIHm.d.ts} +1 -1
  84. package/dist/{documentSerializer-C1ueey5d.d.mts → documentSerializer-DgO3A9av.d.mts} +1 -1
  85. package/dist/docx/index.d.mts +3 -4
  86. package/dist/docx/index.d.ts +3 -4
  87. package/dist/docx/index.js +1 -1
  88. package/dist/docx/index.mjs +1 -1
  89. package/dist/docx/parser.d.mts +3 -4
  90. package/dist/docx/parser.d.ts +3 -4
  91. package/dist/docx/parser.js +1 -1
  92. package/dist/docx/parser.mjs +1 -1
  93. package/dist/docx/rezip.d.mts +3 -4
  94. package/dist/docx/rezip.d.ts +3 -4
  95. package/dist/docx/rezip.js +1 -1
  96. package/dist/docx/rezip.mjs +1 -1
  97. package/dist/docx/serializer/index.d.mts +4 -5
  98. package/dist/docx/serializer/index.d.ts +4 -5
  99. package/dist/docx/serializer/index.js +1 -1
  100. package/dist/docx/serializer/index.mjs +1 -1
  101. package/dist/{fontLoader-BOt95Jtf.d.mts → fontLoader-8b4X-AIh.d.mts} +63 -3
  102. package/dist/{fontLoader-QPwbcX5j.d.ts → fontLoader-CK2QLq68.d.ts} +63 -3
  103. package/dist/{formatting-D9I-lFS4.d.mts → formatting-BH4hcZiq.d.mts} +1 -1
  104. package/dist/{formatting-BwpZWdGi.d.ts → formatting-_OXU8gLB.d.ts} +1 -1
  105. package/dist/{headerFooterLayout-DkclHZ0Z.d.mts → headerFooterLayout-72Vz7yp3.d.mts} +94 -3
  106. package/dist/{headerFooterLayout-B3QVg556.d.ts → headerFooterLayout-Ca4ESDHF.d.ts} +94 -3
  107. package/dist/headless.d.mts +9 -9
  108. package/dist/headless.d.ts +9 -9
  109. package/dist/headless.js +1 -1
  110. package/dist/headless.mjs +1 -1
  111. package/dist/layout-bridge/index.d.mts +7 -7
  112. package/dist/layout-bridge/index.d.ts +7 -7
  113. package/dist/layout-bridge/index.js +1 -1
  114. package/dist/layout-bridge/index.mjs +1 -1
  115. package/dist/layout-bridge/measuring/index.d.mts +43 -2
  116. package/dist/layout-bridge/measuring/index.d.ts +43 -2
  117. package/dist/layout-bridge/measuring/index.js +1 -1
  118. package/dist/layout-bridge/measuring/index.mjs +1 -1
  119. package/dist/layout-bridge/tableInsertHover.js +1 -1
  120. package/dist/layout-bridge/tableInsertHover.mjs +1 -1
  121. package/dist/layout-bridge/toFlowBlocks.d.mts +11 -3
  122. package/dist/layout-bridge/toFlowBlocks.d.ts +11 -3
  123. package/dist/layout-bridge/toFlowBlocks.js +1 -1
  124. package/dist/layout-bridge/toFlowBlocks.mjs +1 -1
  125. package/dist/layout-engine/index.d.mts +33 -3
  126. package/dist/layout-engine/index.d.ts +33 -3
  127. package/dist/layout-engine/index.js +1 -1
  128. package/dist/layout-engine/index.mjs +1 -1
  129. package/dist/layout-engine/types.d.mts +53 -0
  130. package/dist/layout-engine/types.d.ts +53 -0
  131. package/dist/layout-painter/index.d.mts +4 -5
  132. package/dist/layout-painter/index.d.ts +4 -5
  133. package/dist/layout-painter/index.js +1 -1
  134. package/dist/layout-painter/index.mjs +1 -1
  135. package/dist/layout-painter/renderPage.d.mts +4 -5
  136. package/dist/layout-painter/renderPage.d.ts +4 -5
  137. package/dist/layout-painter/renderPage.js +1 -1
  138. package/dist/layout-painter/renderPage.mjs +1 -1
  139. package/dist/managers/AutoSaveManager.d.mts +3 -4
  140. package/dist/managers/AutoSaveManager.d.ts +3 -4
  141. package/dist/managers/TableSelectionManager.d.mts +3 -4
  142. package/dist/managers/TableSelectionManager.d.ts +3 -4
  143. package/dist/managers/types.d.mts +3 -4
  144. package/dist/managers/types.d.ts +3 -4
  145. package/dist/{marks-CCPVlQzL.d.mts → marks-BY573yZn.d.mts} +1 -1
  146. package/dist/{marks-BujVxYP4.d.ts → marks-CjC9tF5k.d.ts} +1 -1
  147. package/dist/mcp-cli.mjs +24 -23
  148. package/dist/mcp.d.mts +3 -4
  149. package/dist/mcp.d.ts +3 -4
  150. package/dist/mcp.js +3 -3
  151. package/dist/mcp.mjs +1 -1
  152. package/dist/{nodes-BXi1Uu3e.d.mts → nodes-7753Bgi_.d.mts} +66 -3
  153. package/dist/{nodes-DfKj9kUA.d.ts → nodes-CC_nwkT_.d.ts} +66 -3
  154. package/dist/prosemirror/commands/formatting.d.mts +2 -2
  155. package/dist/prosemirror/commands/formatting.d.ts +2 -2
  156. package/dist/prosemirror/commands/formatting.js +1 -1
  157. package/dist/prosemirror/commands/formatting.mjs +1 -1
  158. package/dist/prosemirror/commands/index.d.mts +82 -8
  159. package/dist/prosemirror/commands/index.d.ts +82 -8
  160. package/dist/prosemirror/commands/index.js +1 -1
  161. package/dist/prosemirror/commands/index.mjs +1 -1
  162. package/dist/prosemirror/commands/paragraph.d.mts +1 -1
  163. package/dist/prosemirror/commands/paragraph.d.ts +1 -1
  164. package/dist/prosemirror/commands/paragraph.js +1 -1
  165. package/dist/prosemirror/commands/paragraph.mjs +1 -1
  166. package/dist/prosemirror/conversion/fromProseDoc.d.mts +3 -4
  167. package/dist/prosemirror/conversion/fromProseDoc.d.ts +3 -4
  168. package/dist/prosemirror/conversion/fromProseDoc.js +1 -1
  169. package/dist/prosemirror/conversion/fromProseDoc.mjs +1 -1
  170. package/dist/prosemirror/conversion/index.d.mts +11 -4
  171. package/dist/prosemirror/conversion/index.d.ts +11 -4
  172. package/dist/prosemirror/conversion/index.js +1 -1
  173. package/dist/prosemirror/conversion/index.mjs +1 -1
  174. package/dist/prosemirror/editor.css +155 -95
  175. package/dist/prosemirror/extensions/index.d.mts +1 -1
  176. package/dist/prosemirror/extensions/index.d.ts +1 -1
  177. package/dist/prosemirror/extensions/index.js +1 -1
  178. package/dist/prosemirror/extensions/index.mjs +1 -1
  179. package/dist/prosemirror/extensions/nodes/TableExtension.js +1 -1
  180. package/dist/prosemirror/extensions/nodes/TableExtension.mjs +1 -1
  181. package/dist/prosemirror/index.d.mts +5 -6
  182. package/dist/prosemirror/index.d.ts +5 -6
  183. package/dist/prosemirror/index.js +1 -1
  184. package/dist/prosemirror/index.mjs +1 -1
  185. package/dist/prosemirror/plugins/index.d.mts +122 -18
  186. package/dist/prosemirror/plugins/index.d.ts +122 -18
  187. package/dist/prosemirror/plugins/index.js +1 -1
  188. package/dist/prosemirror/plugins/index.mjs +1 -1
  189. package/dist/prosemirror/plugins/selectionTracker.d.mts +1 -1
  190. package/dist/prosemirror/plugins/selectionTracker.d.ts +1 -1
  191. package/dist/prosemirror/schema/index.d.mts +4 -5
  192. package/dist/prosemirror/schema/index.d.ts +4 -5
  193. package/dist/prosemirror/schema/index.js +1 -1
  194. package/dist/prosemirror/schema/index.mjs +1 -1
  195. package/dist/prosemirror/styles/index.d.mts +2 -2
  196. package/dist/prosemirror/styles/index.d.ts +2 -2
  197. package/dist/prosemirror/utils/extractTrackedChanges.d.mts +45 -23
  198. package/dist/prosemirror/utils/extractTrackedChanges.d.ts +45 -23
  199. package/dist/prosemirror/utils/extractTrackedChanges.js +1 -1
  200. package/dist/prosemirror/utils/extractTrackedChanges.mjs +1 -1
  201. package/dist/{selectionContext-85CE0f7a.d.ts → selectionContext-BPAqgNgk.d.ts} +1 -1
  202. package/dist/{selectionContext-Xq3AY7pn.d.mts → selectionContext-CoZat7QZ.d.mts} +1 -1
  203. package/dist/{styles-jqO45PSq.d.ts → styles-BBv7doYK.d.ts} +1 -1
  204. package/dist/{styles-BBoqh07F.d.mts → styles-EI2lxeEN.d.mts} +1 -1
  205. package/dist/types/agentApi.d.mts +1 -1
  206. package/dist/types/agentApi.d.ts +1 -1
  207. package/dist/types/content.d.mts +4 -1167
  208. package/dist/types/content.d.ts +4 -1167
  209. package/dist/types/document.d.mts +25 -8
  210. package/dist/types/document.d.ts +25 -8
  211. package/dist/utils/comments.d.mts +79 -6
  212. package/dist/utils/comments.d.ts +79 -6
  213. package/dist/utils/comments.js +1 -1
  214. package/dist/utils/comments.mjs +1 -1
  215. package/dist/utils/highlightColors.js +1 -1
  216. package/dist/utils/highlightColors.mjs +1 -1
  217. package/dist/utils/index.d.mts +5 -6
  218. package/dist/utils/index.d.ts +5 -6
  219. package/dist/utils/index.js +3 -3
  220. package/dist/utils/index.mjs +3 -3
  221. package/dist/{variableDetector-CAdt8yOr.d.mts → variableDetector-DF3-nxUC.d.mts} +1 -1
  222. package/dist/{variableDetector-W4XEN9YC.d.ts → variableDetector-sBkgVh3f.d.ts} +1 -1
  223. package/package.json +3 -3
  224. package/dist/chunk-2D3UPAMA.mjs +0 -1
  225. package/dist/chunk-2RCMY2GE.mjs +0 -1
  226. package/dist/chunk-3GNIP6IX.mjs +0 -4
  227. package/dist/chunk-44RUAQA2.js +0 -1
  228. package/dist/chunk-5N5DBQJV.mjs +0 -1
  229. package/dist/chunk-5TNMVXDS.mjs +0 -1
  230. package/dist/chunk-6DK4UBGM.js +0 -1
  231. package/dist/chunk-6LOYA7G5.mjs +0 -2
  232. package/dist/chunk-7VCMJCBY.js +0 -2
  233. package/dist/chunk-APFTVA4F.mjs +0 -1
  234. package/dist/chunk-BKHQA6JJ.js +0 -1
  235. package/dist/chunk-BOYVCOLZ.mjs +0 -1
  236. package/dist/chunk-BS35CXMN.js +0 -1
  237. package/dist/chunk-BTOBVF4I.mjs +0 -1
  238. package/dist/chunk-C6GSFUV2.js +0 -2
  239. package/dist/chunk-CP5OSG5Z.mjs +0 -1
  240. package/dist/chunk-CP767TWV.js +0 -1
  241. package/dist/chunk-DV6IEOP5.js +0 -4
  242. package/dist/chunk-IBNUQL57.mjs +0 -2
  243. package/dist/chunk-KBU6QQFU.js +0 -9
  244. package/dist/chunk-LDKESXXK.mjs +0 -3
  245. package/dist/chunk-LTYW3NLX.js +0 -59
  246. package/dist/chunk-NERY274X.js +0 -1
  247. package/dist/chunk-NMSU4MWP.mjs +0 -1
  248. package/dist/chunk-NNQWQOC5.mjs +0 -1
  249. package/dist/chunk-OLKDLRJ4.js +0 -1
  250. package/dist/chunk-P3AXSRLG.mjs +0 -1
  251. package/dist/chunk-P6RNOYAG.mjs +0 -2
  252. package/dist/chunk-R7RR6M4A.mjs +0 -2
  253. package/dist/chunk-RCS6UNIJ.mjs +0 -1
  254. package/dist/chunk-T5RYEG2V.js +0 -1
  255. package/dist/chunk-TRJWRZZD.js +0 -1
  256. package/dist/chunk-TYYOBPNK.js +0 -1
  257. package/dist/chunk-UCZVMHB5.mjs +0 -59
  258. package/dist/chunk-V435QKZB.js +0 -3
  259. package/dist/chunk-VQ2QGHYS.js +0 -2
  260. package/dist/chunk-WZP6ZHBR.js +0 -1
  261. package/dist/chunk-XDH55WXX.mjs +0 -1
  262. package/dist/chunk-Y5HZAMND.mjs +0 -9
  263. package/dist/chunk-YE357WVA.js +0 -1
  264. package/dist/chunk-YGHHSCPR.js +0 -2
  265. package/dist/lists-CdiIk_c1.d.ts +0 -142
  266. package/dist/lists-JDB80qyP.d.mts +0 -142
@@ -6,25 +6,22 @@
6
6
  * for replace ops).
7
7
  *
8
8
  * Pure function — no React, no Vue, no side effects. Single O(N) walk
9
- * over text nodes. Lifted from packages/react/src/hooks/useTrackedChanges.ts
10
- * so both adapters can call it directly.
11
- *
12
- * @remarks
13
- * Tagged `@internal` post-1.0 cut. Both adapters re-export this through
14
- * their own composables (`useTrackedChanges`); consumers should prefer
15
- * those. The subpath stays in `package.json` `exports` for back-compat;
16
- * expect it to move behind a public surface in a future major.
9
+ * over text nodes. Consumers building custom sidebars should prefer the
10
+ * adapter-specific wrappers (`useTrackedChanges` in
11
+ * `@eigenpal/docx-editor-react/hooks` and
12
+ * `@eigenpal/docx-editor-vue/composables`), which add the memoization
13
+ * and reactivity layer. Reach for the core function directly for
14
+ * server-side analysis or test fixtures.
17
15
  *
18
16
  * @packageDocumentation
19
- * @internal
17
+ * @public
20
18
  */
21
19
  import { EditorState } from 'prosemirror-state';
22
20
  import { TrackedChangeEntry } from '../../utils/comments.mjs';
23
- import '../../types/content.mjs';
24
- import '../../formatting-D9I-lFS4.mjs';
21
+ import '../../content-5Mrz6w_b.mjs';
22
+ import '../../formatting-BH4hcZiq.mjs';
25
23
  import '../../colors-C3vA7HUU.mjs';
26
24
  import '../../docx/wrapTypes.mjs';
27
- import '../../lists-JDB80qyP.mjs';
28
25
 
29
26
  /**
30
27
  * Walk the PM doc once and derive (a) the tracked-change list and (b) a
@@ -34,20 +31,22 @@ import '../../lists-JDB80qyP.mjs';
34
31
  * for replace ops).
35
32
  *
36
33
  * Pure function — no React, no Vue, no side effects. Single O(N) walk
37
- * over text nodes. Lifted from packages/react/src/hooks/useTrackedChanges.ts
38
- * so both adapters can call it directly.
39
- *
40
- * @remarks
41
- * Tagged `@internal` post-1.0 cut. Both adapters re-export this through
42
- * their own composables (`useTrackedChanges`); consumers should prefer
43
- * those. The subpath stays in `package.json` `exports` for back-compat;
44
- * expect it to move behind a public surface in a future major.
34
+ * over text nodes. Consumers building custom sidebars should prefer the
35
+ * adapter-specific wrappers (`useTrackedChanges` in
36
+ * `@eigenpal/docx-editor-react/hooks` and
37
+ * `@eigenpal/docx-editor-vue/composables`), which add the memoization
38
+ * and reactivity layer. Reach for the core function directly for
39
+ * server-side analysis or test fixtures.
45
40
  *
46
41
  * @packageDocumentation
47
- * @internal
42
+ * @public
48
43
  */
49
44
 
50
- /** @internal */
45
+ /**
46
+ * Output of {@link extractTrackedChanges}.
47
+ *
48
+ * @public
49
+ */
51
50
  interface TrackedChangesResult {
52
51
  /** Tracked-change entries, sorted by document position, with adjacent same-revision entries merged. */
53
52
  entries: TrackedChangeEntry[];
@@ -57,7 +56,30 @@ interface TrackedChangesResult {
57
56
  */
58
57
  commentToRevision: Map<number, number>;
59
58
  }
60
- /** @internal */
59
+ /**
60
+ * Walk the PM doc and extract every tracked change as a flat list of
61
+ * `TrackedChangeEntry` plus a comment→revision overlap map. Adjacent
62
+ * inline marks coalesce by `(type, revisionId, author, date)`; a
63
+ * deletion immediately followed by an insertion (same author + same
64
+ * date) collapses into a single `replacement` entry; paragraph-mark
65
+ * cards (`paragraphMarkInsertion` / `paragraphMarkDeletion`) are
66
+ * hidden when an inline entry already covers their revision triple
67
+ * (one Accept clears every site of one conceptual change).
68
+ *
69
+ * Pure and deterministic. Returns `EMPTY_RESULT` on null state.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * import { extractTrackedChanges } from '@eigenpal/docx-editor-core/prosemirror/utils/extractTrackedChanges';
74
+ *
75
+ * const { entries, commentToRevision } = extractTrackedChanges(view.state);
76
+ * for (const e of entries) {
77
+ * console.log(e.type, e.author, e.text);
78
+ * }
79
+ * ```
80
+ *
81
+ * @public
82
+ */
61
83
  declare function extractTrackedChanges(state: EditorState | null): TrackedChangesResult;
62
84
 
63
85
  export { type TrackedChangesResult, extractTrackedChanges };
@@ -6,25 +6,22 @@
6
6
  * for replace ops).
7
7
  *
8
8
  * Pure function — no React, no Vue, no side effects. Single O(N) walk
9
- * over text nodes. Lifted from packages/react/src/hooks/useTrackedChanges.ts
10
- * so both adapters can call it directly.
11
- *
12
- * @remarks
13
- * Tagged `@internal` post-1.0 cut. Both adapters re-export this through
14
- * their own composables (`useTrackedChanges`); consumers should prefer
15
- * those. The subpath stays in `package.json` `exports` for back-compat;
16
- * expect it to move behind a public surface in a future major.
9
+ * over text nodes. Consumers building custom sidebars should prefer the
10
+ * adapter-specific wrappers (`useTrackedChanges` in
11
+ * `@eigenpal/docx-editor-react/hooks` and
12
+ * `@eigenpal/docx-editor-vue/composables`), which add the memoization
13
+ * and reactivity layer. Reach for the core function directly for
14
+ * server-side analysis or test fixtures.
17
15
  *
18
16
  * @packageDocumentation
19
- * @internal
17
+ * @public
20
18
  */
21
19
  import { EditorState } from 'prosemirror-state';
22
20
  import { TrackedChangeEntry } from '../../utils/comments.js';
23
- import '../../types/content.js';
24
- import '../../formatting-BwpZWdGi.js';
21
+ import '../../content-CmqAwdFL.js';
22
+ import '../../formatting-_OXU8gLB.js';
25
23
  import '../../colors-C3vA7HUU.js';
26
24
  import '../../docx/wrapTypes.js';
27
- import '../../lists-CdiIk_c1.js';
28
25
 
29
26
  /**
30
27
  * Walk the PM doc once and derive (a) the tracked-change list and (b) a
@@ -34,20 +31,22 @@ import '../../lists-CdiIk_c1.js';
34
31
  * for replace ops).
35
32
  *
36
33
  * Pure function — no React, no Vue, no side effects. Single O(N) walk
37
- * over text nodes. Lifted from packages/react/src/hooks/useTrackedChanges.ts
38
- * so both adapters can call it directly.
39
- *
40
- * @remarks
41
- * Tagged `@internal` post-1.0 cut. Both adapters re-export this through
42
- * their own composables (`useTrackedChanges`); consumers should prefer
43
- * those. The subpath stays in `package.json` `exports` for back-compat;
44
- * expect it to move behind a public surface in a future major.
34
+ * over text nodes. Consumers building custom sidebars should prefer the
35
+ * adapter-specific wrappers (`useTrackedChanges` in
36
+ * `@eigenpal/docx-editor-react/hooks` and
37
+ * `@eigenpal/docx-editor-vue/composables`), which add the memoization
38
+ * and reactivity layer. Reach for the core function directly for
39
+ * server-side analysis or test fixtures.
45
40
  *
46
41
  * @packageDocumentation
47
- * @internal
42
+ * @public
48
43
  */
49
44
 
50
- /** @internal */
45
+ /**
46
+ * Output of {@link extractTrackedChanges}.
47
+ *
48
+ * @public
49
+ */
51
50
  interface TrackedChangesResult {
52
51
  /** Tracked-change entries, sorted by document position, with adjacent same-revision entries merged. */
53
52
  entries: TrackedChangeEntry[];
@@ -57,7 +56,30 @@ interface TrackedChangesResult {
57
56
  */
58
57
  commentToRevision: Map<number, number>;
59
58
  }
60
- /** @internal */
59
+ /**
60
+ * Walk the PM doc and extract every tracked change as a flat list of
61
+ * `TrackedChangeEntry` plus a comment→revision overlap map. Adjacent
62
+ * inline marks coalesce by `(type, revisionId, author, date)`; a
63
+ * deletion immediately followed by an insertion (same author + same
64
+ * date) collapses into a single `replacement` entry; paragraph-mark
65
+ * cards (`paragraphMarkInsertion` / `paragraphMarkDeletion`) are
66
+ * hidden when an inline entry already covers their revision triple
67
+ * (one Accept clears every site of one conceptual change).
68
+ *
69
+ * Pure and deterministic. Returns `EMPTY_RESULT` on null state.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * import { extractTrackedChanges } from '@eigenpal/docx-editor-core/prosemirror/utils/extractTrackedChanges';
74
+ *
75
+ * const { entries, commentToRevision } = extractTrackedChanges(view.state);
76
+ * for (const e of entries) {
77
+ * console.log(e.type, e.author, e.text);
78
+ * }
79
+ * ```
80
+ *
81
+ * @public
82
+ */
61
83
  declare function extractTrackedChanges(state: EditorState | null): TrackedChangesResult;
62
84
 
63
85
  export { type TrackedChangesResult, extractTrackedChanges };
@@ -1 +1 @@
1
- 'use strict';require('../../chunk-DC7S76ZX.js');var l={entries:[],commentToRevision:new Map};function k(d){if(!d)return l;let{doc:h,schema:i}=d,a=i.marks.insertion,u=i.marks.deletion,p=i.marks.comment;if(!a&&!u)return l;let f=[],m=new Map;h.descendants((e,t)=>{if(!e.isText)return;let r=null;for(let n of e.marks)(n.type===a||n.type===u)&&(f.push({type:n.type===a?"insertion":"deletion",text:e.text||"",author:n.attrs.author||"",date:n.attrs.date,from:t,to:t+e.nodeSize,revisionId:n.attrs.revisionId}),r=n);if(p&&r){let n=e.marks.find(s=>s.type===p);if(n){let s=n.attrs.commentId,y=r.attrs.revisionId;m.has(s)||m.set(s,y);}}});let o=[];for(let e of f){let t=o[o.length-1];t&&t.revisionId===e.revisionId&&t.type===e.type&&t.to===e.from?(t.text+=e.text,t.to=e.to):o.push({...e});}let c=[];for(let e=0;e<o.length;e++){let t=o[e],r=o[e+1];t.type==="deletion"&&r&&r.type==="insertion"&&t.author===r.author&&t.date===r.date&&t.to===r.from?(c.push({type:"replacement",text:r.text,deletedText:t.text,author:t.author,date:t.date,from:t.from,to:r.to,revisionId:t.revisionId,insertionRevisionId:r.revisionId}),e++):c.push(t);}return {entries:c,commentToRevision:m}}exports.extractTrackedChanges=k;
1
+ 'use strict';require('../../chunk-DC7S76ZX.js');var B={entries:[],commentToRevision:new Map};function O(S){if(!S)return B;let{doc:K,schema:v}=S,b=v.marks.insertion,g=v.marks.deletion,w=v.marks.comment;if(!b&&!g)return B;let d=[],C=new Map;K.descendants((e,t)=>{if(e.type.name==="paragraph"){let r=e.attrs.pPrIns,i=e.attrs.pPrDel;r&&d.push({type:"paragraphMarkInsertion",text:e.textContent||"",author:r.author||"",date:r.date??void 0,from:t,to:t+e.nodeSize,revisionId:r.revisionId}),i&&d.push({type:"paragraphMarkDeletion",text:e.textContent||"",author:i.author||"",date:i.date??void 0,from:t,to:t+e.nodeSize,revisionId:i.revisionId});let o=e.attrs.pPrChange;if(Array.isArray(o))for(let a of o)d.push({type:"paragraphPropertiesChanged",text:e.textContent||"",author:a.info.author||"",date:a.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:a.info.id});}if(e.type.name==="tableRow"){let r=e.attrs.trIns,i=e.attrs.trDel;r&&d.push({type:"rowInserted",text:e.textContent||"",author:r.author||"",date:r.date??void 0,from:t,to:t+e.nodeSize,revisionId:r.revisionId}),i&&d.push({type:"rowDeleted",text:e.textContent||"",author:i.author||"",date:i.date??void 0,from:t,to:t+e.nodeSize,revisionId:i.revisionId});let o=e.attrs.trPrChange;if(Array.isArray(o))for(let a of o)!a?.info||typeof a.info.id!="number"||d.push({type:"rowPropertiesChanged",text:e.textContent||"",author:a.info.author||"",date:a.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:a.info.id});}if(e.type.name==="tableCell"||e.type.name==="tableHeader"){let r=e.attrs.cellMarker;if(r?.info&&typeof r.info.revisionId=="number"){let a={ins:"cellInserted",del:"cellDeleted",merge:"cellMerged"}[r.kind];a&&d.push({type:a,text:e.textContent||"",author:r.info.author||"",date:r.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:r.info.revisionId});}let i=e.attrs.tcPrChange;if(Array.isArray(i))for(let o of i)!o?.info||typeof o.info.id!="number"||d.push({type:"cellPropertiesChanged",text:e.textContent||"",author:o.info.author||"",date:o.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:o.info.id});}if(e.type.name==="table"){let r=e.attrs.tblPrChange;if(Array.isArray(r))for(let l of r)!l?.info||typeof l.info.id!="number"||d.push({type:"tablePropertiesChanged",text:"",author:l.info.author||"",date:l.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:l.info.id});let i=e.firstChild,o=i?.attrs.trIns,a=i?.attrs.trDel,x=o?"trIns":a?"trDel":null;if(x){let l=o??a,R=true,M=[];if(e.forEach(p=>{if(p.type.name!=="tableRow"){R=false;return}let c=p.attrs[x];if(!c||(c.author??"")!==(l.author??"")||(c.date??null)!==(l.date??null)){R=false;return}M.push(c.revisionId);}),R){let p="";g?e.descendants(h=>{h.isText&&!h.marks.some(P=>P.type===g)&&(p+=h.text||"");}):p=e.textContent||"";let c=l.revisionId,A=M.filter((h,P)=>h!==c&&M.indexOf(h)===P);d.push({type:x==="trIns"?"tableInserted":"tableDeleted",text:p,author:l.author||"",date:l.date??void 0,from:t,to:t+e.nodeSize,revisionId:c,...A.length>0?{coalescedRevisionIds:A}:{}});}}}if(!e.isInline)return;let n=e.isText?e.text||"":e.type.name==="image"?e.attrs.alt||"image":e.type.name,s=null;for(let r of e.marks)(r.type===b||r.type===g)&&(d.push({type:r.type===b?"insertion":"deletion",text:n,author:r.attrs.author||"",date:r.attrs.date,from:t,to:t+e.nodeSize,revisionId:r.attrs.revisionId}),s=r);if(w&&s){let r=e.marks.find(i=>i.type===w);if(r){let i=r.attrs.commentId,o=s.attrs.revisionId;C.has(i)||C.set(i,o);}}});let k={tableInserted:6,tableDeleted:6,tablePropertiesChanged:5,rowInserted:4,rowDeleted:4,rowPropertiesChanged:4,cellInserted:3,cellDeleted:3,cellMerged:3,cellPropertiesChanged:3,paragraphMarkInsertion:2,paragraphMarkDeletion:2,paragraphPropertiesChanged:2},U=e=>e in k,E=new Map,f=[],T=(e,t)=>{let n=new Set(e.coalescedRevisionIds??[]);for(let s of t.coalescedRevisionIds??[])n.add(s);return n.add(t.revisionId),n.delete(e.revisionId),[...n]};for(let e of d){if(!U(e.type)){f.push(e);continue}let t=`${e.author}|${e.date??""}`,n=E.get(t);if(n===void 0){E.set(t,f.push(e)-1);continue}let s=f[n],r=k[e.type]??0,i=k[s.type]??0;r>i?f[n]={...e,coalescedRevisionIds:T(e,s)}:f[n]={...s,coalescedRevisionIds:T(s,e)};}let D=new Map,y=[];for(let e of f){if(!(e.type==="insertion"||e.type==="deletion")){y.push({...e});continue}let n=`${e.type}|${e.author}|${e.date??""}`,s=D.get(n);if(s){let r=s.to===e.from?"":" ";if(s.text+=r+e.text,s.to=e.to,e.revisionId!==s.revisionId){let i=new Set(s.coalescedRevisionIds??[]);for(let o of e.coalescedRevisionIds??[])i.add(o);i.add(e.revisionId),i.delete(s.revisionId),s.coalescedRevisionIds=i.size>0?[...i]:void 0;}}else {let r={...e};D.set(n,r),y.push(r);}}let u=[];for(let e=0;e<y.length;e++){let t=y[e],n=y[e+1];t.type==="deletion"&&n&&n.type==="insertion"&&t.author===n.author&&t.date===n.date&&t.to===n.from?(u.push({type:"replacement",text:n.text,deletedText:t.text,author:t.author,date:t.date,from:t.from,to:n.to,revisionId:t.revisionId,insertionRevisionId:n.revisionId}),e++):u.push(t);}let I=new Map;for(let e of u)if(e.type==="insertion"||e.type==="deletion"||e.type==="replacement"){let t=`${e.author}|${e.date??""}`;I.has(t)||I.set(t,e);}for(let e of u){if(e.type!=="paragraphMarkInsertion"&&e.type!=="paragraphMarkDeletion")continue;let t=I.get(`${e.author}|${e.date??""}`);if(!t)continue;let n=new Set(t.coalescedRevisionIds??[]);for(let s of e.coalescedRevisionIds??[])n.add(s);n.add(e.revisionId),n.delete(t.revisionId),t.type==="replacement"&&t.insertionRevisionId!=null&&n.delete(t.insertionRevisionId),t.coalescedRevisionIds=n.size>0?[...n]:void 0;}let z=new Set,m=new Map;for(let e of u){if(e.type!=="tableInserted"&&e.type!=="tableDeleted")continue;let t=`${e.author}|${e.date??""}`;e.text.trim().length>0||(z.add(e),m.has(t)||m.set(t,e));}for(let e of u){if(e.type!=="paragraphMarkInsertion"&&e.type!=="paragraphMarkDeletion")continue;let t=m.get(`${e.author}|${e.date??""}`);if(!t)continue;let n=new Set(t.coalescedRevisionIds??[]);for(let s of e.coalescedRevisionIds??[])n.add(s);n.add(e.revisionId),n.delete(t.revisionId),t.coalescedRevisionIds=n.size>0?[...n]:void 0;}let H=u.filter(e=>e.type==="insertion"||e.type==="replacement"),$=new Set;for(let e of u){if(e.type!=="paragraphPropertiesChanged")continue;let t=H.find(s=>s.author===e.author&&s.from<e.to&&e.from<s.to);if(!t)continue;let n=new Set(T(t,e));t.type==="replacement"&&t.insertionRevisionId!=null&&n.delete(t.insertionRevisionId),t.coalescedRevisionIds=n.size>0?[...n]:void 0,$.add(e);}return {entries:u.filter(e=>{let t=`${e.author}|${e.date??""}`;return e.type==="tableInserted"||e.type==="tableDeleted"?z.has(e):e.type==="paragraphMarkInsertion"||e.type==="paragraphMarkDeletion"?!I.has(t)&&!m.has(t):e.type==="paragraphPropertiesChanged"?!$.has(e):e.type==="insertion"||e.type==="deletion"||e.type==="replacement"?!m.has(t):true}),commentToRevision:C}}exports.extractTrackedChanges=O;
@@ -1 +1 @@
1
- import'../../chunk-QYUPLKLP.mjs';var l={entries:[],commentToRevision:new Map};function k(d){if(!d)return l;let{doc:h,schema:i}=d,a=i.marks.insertion,u=i.marks.deletion,p=i.marks.comment;if(!a&&!u)return l;let f=[],m=new Map;h.descendants((e,t)=>{if(!e.isText)return;let r=null;for(let n of e.marks)(n.type===a||n.type===u)&&(f.push({type:n.type===a?"insertion":"deletion",text:e.text||"",author:n.attrs.author||"",date:n.attrs.date,from:t,to:t+e.nodeSize,revisionId:n.attrs.revisionId}),r=n);if(p&&r){let n=e.marks.find(s=>s.type===p);if(n){let s=n.attrs.commentId,y=r.attrs.revisionId;m.has(s)||m.set(s,y);}}});let o=[];for(let e of f){let t=o[o.length-1];t&&t.revisionId===e.revisionId&&t.type===e.type&&t.to===e.from?(t.text+=e.text,t.to=e.to):o.push({...e});}let c=[];for(let e=0;e<o.length;e++){let t=o[e],r=o[e+1];t.type==="deletion"&&r&&r.type==="insertion"&&t.author===r.author&&t.date===r.date&&t.to===r.from?(c.push({type:"replacement",text:r.text,deletedText:t.text,author:t.author,date:t.date,from:t.from,to:r.to,revisionId:t.revisionId,insertionRevisionId:r.revisionId}),e++):c.push(t);}return {entries:c,commentToRevision:m}}export{k as extractTrackedChanges};
1
+ import'../../chunk-QYUPLKLP.mjs';var B={entries:[],commentToRevision:new Map};function O(S){if(!S)return B;let{doc:K,schema:v}=S,b=v.marks.insertion,g=v.marks.deletion,w=v.marks.comment;if(!b&&!g)return B;let d=[],C=new Map;K.descendants((e,t)=>{if(e.type.name==="paragraph"){let r=e.attrs.pPrIns,i=e.attrs.pPrDel;r&&d.push({type:"paragraphMarkInsertion",text:e.textContent||"",author:r.author||"",date:r.date??void 0,from:t,to:t+e.nodeSize,revisionId:r.revisionId}),i&&d.push({type:"paragraphMarkDeletion",text:e.textContent||"",author:i.author||"",date:i.date??void 0,from:t,to:t+e.nodeSize,revisionId:i.revisionId});let o=e.attrs.pPrChange;if(Array.isArray(o))for(let a of o)d.push({type:"paragraphPropertiesChanged",text:e.textContent||"",author:a.info.author||"",date:a.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:a.info.id});}if(e.type.name==="tableRow"){let r=e.attrs.trIns,i=e.attrs.trDel;r&&d.push({type:"rowInserted",text:e.textContent||"",author:r.author||"",date:r.date??void 0,from:t,to:t+e.nodeSize,revisionId:r.revisionId}),i&&d.push({type:"rowDeleted",text:e.textContent||"",author:i.author||"",date:i.date??void 0,from:t,to:t+e.nodeSize,revisionId:i.revisionId});let o=e.attrs.trPrChange;if(Array.isArray(o))for(let a of o)!a?.info||typeof a.info.id!="number"||d.push({type:"rowPropertiesChanged",text:e.textContent||"",author:a.info.author||"",date:a.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:a.info.id});}if(e.type.name==="tableCell"||e.type.name==="tableHeader"){let r=e.attrs.cellMarker;if(r?.info&&typeof r.info.revisionId=="number"){let a={ins:"cellInserted",del:"cellDeleted",merge:"cellMerged"}[r.kind];a&&d.push({type:a,text:e.textContent||"",author:r.info.author||"",date:r.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:r.info.revisionId});}let i=e.attrs.tcPrChange;if(Array.isArray(i))for(let o of i)!o?.info||typeof o.info.id!="number"||d.push({type:"cellPropertiesChanged",text:e.textContent||"",author:o.info.author||"",date:o.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:o.info.id});}if(e.type.name==="table"){let r=e.attrs.tblPrChange;if(Array.isArray(r))for(let l of r)!l?.info||typeof l.info.id!="number"||d.push({type:"tablePropertiesChanged",text:"",author:l.info.author||"",date:l.info.date??void 0,from:t,to:t+e.nodeSize,revisionId:l.info.id});let i=e.firstChild,o=i?.attrs.trIns,a=i?.attrs.trDel,x=o?"trIns":a?"trDel":null;if(x){let l=o??a,R=true,M=[];if(e.forEach(p=>{if(p.type.name!=="tableRow"){R=false;return}let c=p.attrs[x];if(!c||(c.author??"")!==(l.author??"")||(c.date??null)!==(l.date??null)){R=false;return}M.push(c.revisionId);}),R){let p="";g?e.descendants(h=>{h.isText&&!h.marks.some(P=>P.type===g)&&(p+=h.text||"");}):p=e.textContent||"";let c=l.revisionId,A=M.filter((h,P)=>h!==c&&M.indexOf(h)===P);d.push({type:x==="trIns"?"tableInserted":"tableDeleted",text:p,author:l.author||"",date:l.date??void 0,from:t,to:t+e.nodeSize,revisionId:c,...A.length>0?{coalescedRevisionIds:A}:{}});}}}if(!e.isInline)return;let n=e.isText?e.text||"":e.type.name==="image"?e.attrs.alt||"image":e.type.name,s=null;for(let r of e.marks)(r.type===b||r.type===g)&&(d.push({type:r.type===b?"insertion":"deletion",text:n,author:r.attrs.author||"",date:r.attrs.date,from:t,to:t+e.nodeSize,revisionId:r.attrs.revisionId}),s=r);if(w&&s){let r=e.marks.find(i=>i.type===w);if(r){let i=r.attrs.commentId,o=s.attrs.revisionId;C.has(i)||C.set(i,o);}}});let k={tableInserted:6,tableDeleted:6,tablePropertiesChanged:5,rowInserted:4,rowDeleted:4,rowPropertiesChanged:4,cellInserted:3,cellDeleted:3,cellMerged:3,cellPropertiesChanged:3,paragraphMarkInsertion:2,paragraphMarkDeletion:2,paragraphPropertiesChanged:2},U=e=>e in k,E=new Map,f=[],T=(e,t)=>{let n=new Set(e.coalescedRevisionIds??[]);for(let s of t.coalescedRevisionIds??[])n.add(s);return n.add(t.revisionId),n.delete(e.revisionId),[...n]};for(let e of d){if(!U(e.type)){f.push(e);continue}let t=`${e.author}|${e.date??""}`,n=E.get(t);if(n===void 0){E.set(t,f.push(e)-1);continue}let s=f[n],r=k[e.type]??0,i=k[s.type]??0;r>i?f[n]={...e,coalescedRevisionIds:T(e,s)}:f[n]={...s,coalescedRevisionIds:T(s,e)};}let D=new Map,y=[];for(let e of f){if(!(e.type==="insertion"||e.type==="deletion")){y.push({...e});continue}let n=`${e.type}|${e.author}|${e.date??""}`,s=D.get(n);if(s){let r=s.to===e.from?"":" ";if(s.text+=r+e.text,s.to=e.to,e.revisionId!==s.revisionId){let i=new Set(s.coalescedRevisionIds??[]);for(let o of e.coalescedRevisionIds??[])i.add(o);i.add(e.revisionId),i.delete(s.revisionId),s.coalescedRevisionIds=i.size>0?[...i]:void 0;}}else {let r={...e};D.set(n,r),y.push(r);}}let u=[];for(let e=0;e<y.length;e++){let t=y[e],n=y[e+1];t.type==="deletion"&&n&&n.type==="insertion"&&t.author===n.author&&t.date===n.date&&t.to===n.from?(u.push({type:"replacement",text:n.text,deletedText:t.text,author:t.author,date:t.date,from:t.from,to:n.to,revisionId:t.revisionId,insertionRevisionId:n.revisionId}),e++):u.push(t);}let I=new Map;for(let e of u)if(e.type==="insertion"||e.type==="deletion"||e.type==="replacement"){let t=`${e.author}|${e.date??""}`;I.has(t)||I.set(t,e);}for(let e of u){if(e.type!=="paragraphMarkInsertion"&&e.type!=="paragraphMarkDeletion")continue;let t=I.get(`${e.author}|${e.date??""}`);if(!t)continue;let n=new Set(t.coalescedRevisionIds??[]);for(let s of e.coalescedRevisionIds??[])n.add(s);n.add(e.revisionId),n.delete(t.revisionId),t.type==="replacement"&&t.insertionRevisionId!=null&&n.delete(t.insertionRevisionId),t.coalescedRevisionIds=n.size>0?[...n]:void 0;}let z=new Set,m=new Map;for(let e of u){if(e.type!=="tableInserted"&&e.type!=="tableDeleted")continue;let t=`${e.author}|${e.date??""}`;e.text.trim().length>0||(z.add(e),m.has(t)||m.set(t,e));}for(let e of u){if(e.type!=="paragraphMarkInsertion"&&e.type!=="paragraphMarkDeletion")continue;let t=m.get(`${e.author}|${e.date??""}`);if(!t)continue;let n=new Set(t.coalescedRevisionIds??[]);for(let s of e.coalescedRevisionIds??[])n.add(s);n.add(e.revisionId),n.delete(t.revisionId),t.coalescedRevisionIds=n.size>0?[...n]:void 0;}let H=u.filter(e=>e.type==="insertion"||e.type==="replacement"),$=new Set;for(let e of u){if(e.type!=="paragraphPropertiesChanged")continue;let t=H.find(s=>s.author===e.author&&s.from<e.to&&e.from<s.to);if(!t)continue;let n=new Set(T(t,e));t.type==="replacement"&&t.insertionRevisionId!=null&&n.delete(t.insertionRevisionId),t.coalescedRevisionIds=n.size>0?[...n]:void 0,$.add(e);}return {entries:u.filter(e=>{let t=`${e.author}|${e.date??""}`;return e.type==="tableInserted"||e.type==="tableDeleted"?z.has(e):e.type==="paragraphMarkInsertion"||e.type==="paragraphMarkDeletion"?!I.has(t)&&!m.has(t):e.type==="paragraphPropertiesChanged"?!$.has(e):e.type==="insertion"||e.type==="deletion"||e.type==="replacement"?!m.has(t):true}),commentToRevision:C}}export{O as extractTrackedChanges};
@@ -2,7 +2,7 @@ import { Document } from './types/document.js';
2
2
  import { StyleInfo, AgentContext, Position, Range, AgentCommand, SelectionContext } from './types/agentApi.js';
3
3
  import { S as SelectiveSaveOptions } from './selectiveSave-CWaPEv0B.js';
4
4
  import { D as DocxInput } from './docxInput-DTbCa48g.js';
5
- import { T as TextFormatting, P as ParagraphFormatting } from './formatting-BwpZWdGi.js';
5
+ import { T as TextFormatting, P as ParagraphFormatting } from './formatting-_OXU8gLB.js';
6
6
 
7
7
  /**
8
8
  * DocumentAgent - High-level fluent API for programmatic document manipulation
@@ -2,7 +2,7 @@ import { Document } from './types/document.mjs';
2
2
  import { StyleInfo, AgentContext, Position, Range, AgentCommand, SelectionContext } from './types/agentApi.mjs';
3
3
  import { S as SelectiveSaveOptions } from './selectiveSave-jinP_4xa.mjs';
4
4
  import { D as DocxInput } from './docxInput-DTbCa48g.mjs';
5
- import { T as TextFormatting, P as ParagraphFormatting } from './formatting-D9I-lFS4.mjs';
5
+ import { T as TextFormatting, P as ParagraphFormatting } from './formatting-BH4hcZiq.mjs';
6
6
 
7
7
  /**
8
8
  * DocumentAgent - High-level fluent API for programmatic document manipulation
@@ -1,4 +1,4 @@
1
- import { T as TextFormatting, P as ParagraphFormatting, h as TableFormatting, k as TableRowFormatting, g as TableCellFormatting } from './formatting-BwpZWdGi.js';
1
+ import { T as TextFormatting, P as ParagraphFormatting, a as TableFormatting, b as TableRowFormatting, c as TableCellFormatting } from './formatting-_OXU8gLB.js';
2
2
 
3
3
  /**
4
4
  * Styles, Theme, Font Table, Relationships & Media Types
@@ -1,4 +1,4 @@
1
- import { T as TextFormatting, P as ParagraphFormatting, h as TableFormatting, k as TableRowFormatting, g as TableCellFormatting } from './formatting-D9I-lFS4.mjs';
1
+ import { T as TextFormatting, P as ParagraphFormatting, a as TableFormatting, b as TableRowFormatting, c as TableCellFormatting } from './formatting-BH4hcZiq.mjs';
2
2
 
3
3
  /**
4
4
  * Styles, Theme, Font Table, Relationships & Media Types
@@ -8,7 +8,7 @@
8
8
  * @packageDocumentation
9
9
  * @public
10
10
  */
11
- import { T as TextFormatting, P as ParagraphFormatting } from '../formatting-D9I-lFS4.mjs';
11
+ import { T as TextFormatting, P as ParagraphFormatting } from '../formatting-BH4hcZiq.mjs';
12
12
  import '../colors-C3vA7HUU.mjs';
13
13
 
14
14
  /**
@@ -8,7 +8,7 @@
8
8
  * @packageDocumentation
9
9
  * @public
10
10
  */
11
- import { T as TextFormatting, P as ParagraphFormatting } from '../formatting-BwpZWdGi.js';
11
+ import { T as TextFormatting, P as ParagraphFormatting } from '../formatting-_OXU8gLB.js';
12
12
  import '../colors-C3vA7HUU.js';
13
13
 
14
14
  /**