@beyondwork/docx-react-component 1.0.29 → 1.0.30

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 (381) hide show
  1. package/package.json +65 -96
  2. package/src/README.md +85 -0
  3. package/src/api/README.md +26 -0
  4. package/src/api/public-types.ts +1952 -0
  5. package/src/api/session-state.ts +62 -0
  6. package/src/compare/diff-engine.ts +623 -0
  7. package/src/compare/export-redlines.ts +280 -0
  8. package/src/compare/index.ts +25 -0
  9. package/src/compare/snapshot.ts +97 -0
  10. package/src/component-inventory.md +99 -0
  11. package/src/core/README.md +10 -0
  12. package/src/core/commands/README.md +3 -0
  13. package/{dist/chunk-TJBP2K4T.js → src/core/commands/formatting-commands.ts} +536 -196
  14. package/src/core/commands/image-commands.ts +373 -0
  15. package/src/core/commands/index.ts +1879 -0
  16. package/src/core/commands/list-commands.ts +565 -0
  17. package/src/core/commands/paragraph-layout-commands.ts +339 -0
  18. package/src/core/commands/review-commands.ts +108 -0
  19. package/{dist/core/commands/section-layout-commands.cjs → src/core/commands/section-layout-commands.ts} +340 -137
  20. package/src/core/commands/structural-helpers.ts +309 -0
  21. package/{dist/core/commands/style-commands.cjs → src/core/commands/style-commands.ts} +113 -65
  22. package/src/core/commands/table-structure-commands.ts +854 -0
  23. package/{dist/chunk-UZXBISGO.js → src/core/commands/text-commands.ts} +142 -86
  24. package/src/core/schema/README.md +3 -0
  25. package/src/core/schema/text-schema.ts +516 -0
  26. package/src/core/search/search-text.ts +357 -0
  27. package/src/core/selection/README.md +3 -0
  28. package/src/core/selection/mapping.ts +289 -0
  29. package/src/core/selection/review-anchors.ts +183 -0
  30. package/src/core/state/README.md +3 -0
  31. package/src/core/state/editor-state.ts +892 -0
  32. package/src/core/state/text-transaction.ts +869 -0
  33. package/src/formats/xlsx/io/parse-shared-strings.ts +41 -0
  34. package/src/formats/xlsx/io/parse-sheet.ts +459 -0
  35. package/src/formats/xlsx/io/parse-styles.ts +59 -0
  36. package/src/formats/xlsx/io/parse-workbook.ts +75 -0
  37. package/src/formats/xlsx/io/serialize-shared-strings.ts +72 -0
  38. package/src/formats/xlsx/io/serialize-sheet.ts +333 -0
  39. package/src/formats/xlsx/io/serialize-styles.ts +98 -0
  40. package/src/formats/xlsx/io/serialize-workbook.ts +429 -0
  41. package/src/formats/xlsx/io/xlsx-session.ts +314 -0
  42. package/src/formats/xlsx/model/cell.ts +189 -0
  43. package/src/formats/xlsx/model/sheet.ts +326 -0
  44. package/src/formats/xlsx/model/styles.ts +118 -0
  45. package/src/formats/xlsx/model/workbook.ts +453 -0
  46. package/src/formats/xlsx/runtime/cell-commands.ts +567 -0
  47. package/src/formats/xlsx/runtime/sheet-commands.ts +206 -0
  48. package/src/formats/xlsx/runtime/workbook-runtime.ts +177 -0
  49. package/src/formats/xlsx/runtime/workbook-transaction.ts +822 -0
  50. package/src/index.ts +142 -0
  51. package/src/io/README.md +10 -0
  52. package/src/io/docx-session.ts +3175 -0
  53. package/src/io/export/README.md +3 -0
  54. package/src/io/export/export-session.ts +220 -0
  55. package/src/io/export/minimal-docx.ts +115 -0
  56. package/src/io/export/reattach-preserved-parts.ts +54 -0
  57. package/src/io/export/serialize-comments.ts +947 -0
  58. package/src/io/export/serialize-footnotes.ts +394 -0
  59. package/src/io/export/serialize-headers-footers.ts +368 -0
  60. package/src/io/export/serialize-main-document.ts +1342 -0
  61. package/src/io/export/serialize-numbering.ts +218 -0
  62. package/src/io/export/serialize-revisions.ts +389 -0
  63. package/src/io/export/serialize-runtime-revisions.ts +463 -0
  64. package/src/io/export/serialize-tables.ts +174 -0
  65. package/src/io/export/split-review-boundaries.ts +356 -0
  66. package/src/io/export/split-story-blocks-for-runtime-revisions.ts +252 -0
  67. package/src/io/export/table-properties-xml.ts +318 -0
  68. package/src/io/normalize/README.md +3 -0
  69. package/src/io/normalize/normalize-text.ts +670 -0
  70. package/src/io/ooxml/README.md +3 -0
  71. package/src/io/ooxml/highlight-colors.ts +39 -0
  72. package/src/io/ooxml/numbering-sentinels.ts +44 -0
  73. package/src/io/ooxml/parse-comments.ts +852 -0
  74. package/src/io/ooxml/parse-complex-content.ts +287 -0
  75. package/src/io/ooxml/parse-fields.ts +834 -0
  76. package/src/io/ooxml/parse-footnotes.ts +952 -0
  77. package/src/io/ooxml/parse-headers-footers.ts +1212 -0
  78. package/src/io/ooxml/parse-inline-media.ts +461 -0
  79. package/src/io/ooxml/parse-main-document.ts +2947 -0
  80. package/src/io/ooxml/parse-numbering.ts +747 -0
  81. package/src/io/ooxml/parse-revisions.ts +1045 -0
  82. package/src/io/ooxml/parse-settings.ts +184 -0
  83. package/src/io/ooxml/parse-shapes.ts +296 -0
  84. package/src/io/ooxml/parse-styles.ts +639 -0
  85. package/src/io/ooxml/parse-tables.ts +627 -0
  86. package/src/io/ooxml/parse-theme.ts +346 -0
  87. package/src/io/ooxml/part-manifest.ts +136 -0
  88. package/src/io/ooxml/revision-boundaries.ts +475 -0
  89. package/src/io/ooxml/workflow-payload.ts +544 -0
  90. package/src/io/opc/README.md +3 -0
  91. package/src/io/opc/corrupt-package.ts +166 -0
  92. package/src/io/opc/docx-package.ts +74 -0
  93. package/src/io/opc/package-reader.ts +325 -0
  94. package/src/io/opc/package-writer.ts +273 -0
  95. package/src/io/source-package-provenance.ts +241 -0
  96. package/{dist/chunk-RMH72RZI.js → src/legal/bookmarks.ts} +130 -44
  97. package/src/legal/cross-references.ts +414 -0
  98. package/src/legal/defined-terms.ts +203 -0
  99. package/src/legal/index.ts +32 -0
  100. package/src/legal/signature-blocks.ts +259 -0
  101. package/src/model/README.md +3 -0
  102. package/src/model/canonical-document.ts +2722 -0
  103. package/src/model/cds-1.0.0.ts +212 -0
  104. package/src/model/snapshot.ts +760 -0
  105. package/src/preservation/README.md +3 -0
  106. package/src/preservation/markup-compatibility.ts +48 -0
  107. package/src/preservation/opaque-fragment-store.ts +89 -0
  108. package/src/preservation/opaque-region.ts +233 -0
  109. package/src/preservation/package-preservation.ts +113 -0
  110. package/src/preservation/preserved-part-manifest.ts +56 -0
  111. package/src/preservation/relationship-retention.ts +57 -0
  112. package/src/preservation/store.ts +255 -0
  113. package/src/review/README.md +16 -0
  114. package/src/review/store/README.md +3 -0
  115. package/src/review/store/comment-anchors.ts +70 -0
  116. package/src/review/store/comment-remapping.ts +154 -0
  117. package/src/review/store/comment-store.ts +349 -0
  118. package/src/review/store/comment-thread.ts +109 -0
  119. package/src/review/store/revision-actions.ts +423 -0
  120. package/src/review/store/revision-store.ts +323 -0
  121. package/src/review/store/revision-types.ts +182 -0
  122. package/src/review/store/runtime-comment-store.ts +43 -0
  123. package/src/runtime/README.md +3 -0
  124. package/src/runtime/ai-action-policy.ts +764 -0
  125. package/src/runtime/context-analytics.ts +824 -0
  126. package/src/runtime/document-layout.ts +332 -0
  127. package/src/runtime/document-locations.ts +521 -0
  128. package/src/runtime/document-navigation.ts +616 -0
  129. package/src/runtime/document-outline.ts +440 -0
  130. package/src/runtime/document-runtime.ts +4055 -0
  131. package/src/runtime/document-search.ts +145 -0
  132. package/src/runtime/event-refresh-hints.ts +137 -0
  133. package/src/runtime/numbering-prefix.ts +244 -0
  134. package/src/runtime/page-layout-estimation.ts +305 -0
  135. package/src/runtime/read-only-diagnostics-runtime.ts +241 -0
  136. package/src/runtime/resolved-numbering-geometry.ts +293 -0
  137. package/src/runtime/review-runtime.ts +44 -0
  138. package/src/runtime/revision-runtime.ts +107 -0
  139. package/src/runtime/session-capabilities.ts +192 -0
  140. package/src/runtime/story-context.ts +164 -0
  141. package/src/runtime/story-targeting.ts +162 -0
  142. package/src/runtime/suggestions-snapshot.ts +137 -0
  143. package/src/runtime/surface-projection.ts +1553 -0
  144. package/src/runtime/table-commands.ts +173 -0
  145. package/src/runtime/table-schema.ts +309 -0
  146. package/src/runtime/table-style-resolver.ts +409 -0
  147. package/src/runtime/view-state.ts +493 -0
  148. package/src/runtime/virtualized-rendering.ts +258 -0
  149. package/src/runtime/workflow-markup.ts +393 -0
  150. package/src/ui/README.md +30 -0
  151. package/src/ui/WordReviewEditor.tsx +5268 -0
  152. package/src/ui/browser-export.ts +52 -0
  153. package/src/ui/comments/README.md +3 -0
  154. package/src/ui/compatibility/README.md +3 -0
  155. package/src/ui/editor-command-bag.ts +127 -0
  156. package/src/ui/editor-runtime-boundary.ts +1558 -0
  157. package/src/ui/editor-shell-view.tsx +144 -0
  158. package/src/ui/editor-surface/README.md +3 -0
  159. package/src/ui/editor-surface-controller.tsx +66 -0
  160. package/src/ui/headless/comment-decoration-model.ts +124 -0
  161. package/src/ui/headless/preserve-editor-selection.ts +5 -0
  162. package/src/ui/headless/revision-decoration-model.ts +128 -0
  163. package/src/ui/headless/selection-helpers.ts +54 -0
  164. package/src/ui/headless/selection-tool-context.ts +19 -0
  165. package/src/ui/headless/selection-tool-resolver.ts +752 -0
  166. package/src/ui/headless/selection-tool-types.ts +129 -0
  167. package/src/ui/headless/selection-toolbar-model.ts +11 -0
  168. package/src/ui/headless/use-editor-keyboard.ts +103 -0
  169. package/src/ui/review/README.md +3 -0
  170. package/src/ui/runtime-shortcut-dispatch.ts +365 -0
  171. package/src/ui/runtime-snapshot-selectors.ts +197 -0
  172. package/src/ui/shared/revision-filters.ts +31 -0
  173. package/src/ui/status/README.md +3 -0
  174. package/src/ui/theme/README.md +3 -0
  175. package/src/ui/toolbar/README.md +3 -0
  176. package/src/ui/workflow-surface-blocked-rails.ts +94 -0
  177. package/src/ui-tailwind/chrome/chrome-preset-model.ts +107 -0
  178. package/src/ui-tailwind/chrome/chrome-preset-toolbar.tsx +15 -0
  179. package/src/ui-tailwind/chrome/review-queue-bar.tsx +97 -0
  180. package/src/ui-tailwind/chrome/tw-alert-banner.tsx +64 -0
  181. package/src/ui-tailwind/chrome/tw-context-analytics-summary.tsx +122 -0
  182. package/src/ui-tailwind/chrome/tw-image-context-toolbar.tsx +121 -0
  183. package/src/ui-tailwind/chrome/tw-layout-panel.tsx +114 -0
  184. package/src/ui-tailwind/chrome/tw-object-context-toolbar.tsx +30 -0
  185. package/src/ui-tailwind/chrome/tw-page-ruler.tsx +365 -0
  186. package/src/ui-tailwind/chrome/tw-selection-tool-blocked.tsx +23 -0
  187. package/src/ui-tailwind/chrome/tw-selection-tool-comment.tsx +35 -0
  188. package/src/ui-tailwind/chrome/tw-selection-tool-formatting.tsx +37 -0
  189. package/src/ui-tailwind/chrome/tw-selection-tool-host.tsx +298 -0
  190. package/src/ui-tailwind/chrome/tw-selection-tool-structure.tsx +116 -0
  191. package/src/ui-tailwind/chrome/tw-selection-tool-suggestion.tsx +29 -0
  192. package/src/ui-tailwind/chrome/tw-selection-tool-workflow.tsx +27 -0
  193. package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +186 -0
  194. package/src/ui-tailwind/chrome/tw-suggestion-card.tsx +139 -0
  195. package/src/ui-tailwind/chrome/tw-table-context-toolbar.tsx +200 -0
  196. package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +58 -0
  197. package/src/ui-tailwind/chrome/use-before-unload.ts +20 -0
  198. package/src/ui-tailwind/editor-surface/perf-probe.ts +179 -0
  199. package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +189 -0
  200. package/src/ui-tailwind/editor-surface/pm-contextual-ui.ts +31 -0
  201. package/src/ui-tailwind/editor-surface/pm-decorations.ts +411 -0
  202. package/src/ui-tailwind/editor-surface/pm-position-map.ts +123 -0
  203. package/src/ui-tailwind/editor-surface/pm-schema.ts +927 -0
  204. package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +567 -0
  205. package/src/ui-tailwind/editor-surface/search-plugin.ts +168 -0
  206. package/src/ui-tailwind/editor-surface/surface-build-keys.ts +65 -0
  207. package/src/ui-tailwind/editor-surface/tw-caret.tsx +12 -0
  208. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +150 -0
  209. package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +129 -0
  210. package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +58 -0
  211. package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +151 -0
  212. package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +1047 -0
  213. package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +111 -0
  214. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +503 -0
  215. package/src/ui-tailwind/index.ts +62 -0
  216. package/src/ui-tailwind/page-chrome-model.ts +27 -0
  217. package/src/ui-tailwind/review/tw-comment-sidebar.tsx +406 -0
  218. package/src/ui-tailwind/review/tw-health-panel.tsx +149 -0
  219. package/src/ui-tailwind/review/tw-review-rail.tsx +122 -0
  220. package/src/ui-tailwind/review/tw-revision-sidebar.tsx +164 -0
  221. package/src/ui-tailwind/status/tw-status-bar.tsx +65 -0
  222. package/{dist → src}/ui-tailwind/theme/editor-theme.css +58 -40
  223. package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +52 -0
  224. package/src/ui-tailwind/toolbar/tw-toolbar.tsx +1133 -0
  225. package/src/ui-tailwind/tw-review-workspace.tsx +1460 -0
  226. package/src/validation/README.md +3 -0
  227. package/src/validation/compatibility-engine.ts +878 -0
  228. package/src/validation/compatibility-report.ts +161 -0
  229. package/src/validation/diagnostics.ts +204 -0
  230. package/src/validation/docx-comment-proof.ts +720 -0
  231. package/src/validation/import-diagnostics.ts +128 -0
  232. package/src/validation/low-priority-word-surfaces.ts +373 -0
  233. package/dist/canonical-document-BLEbzL2J.d.cts +0 -844
  234. package/dist/canonical-document-BLEbzL2J.d.ts +0 -844
  235. package/dist/chunk-2FJS5GZM.js +0 -763
  236. package/dist/chunk-2FJS5GZM.js.map +0 -1
  237. package/dist/chunk-2OQBZS3F.js +0 -446
  238. package/dist/chunk-2OQBZS3F.js.map +0 -1
  239. package/dist/chunk-2S7W4KFO.js +0 -127
  240. package/dist/chunk-2S7W4KFO.js.map +0 -1
  241. package/dist/chunk-2TG72QSW.js +0 -3874
  242. package/dist/chunk-2TG72QSW.js.map +0 -1
  243. package/dist/chunk-36QNIZBO.js +0 -532
  244. package/dist/chunk-36QNIZBO.js.map +0 -1
  245. package/dist/chunk-4AQOYAW4.js +0 -3069
  246. package/dist/chunk-4AQOYAW4.js.map +0 -1
  247. package/dist/chunk-4D5EWJ3P.js +0 -77
  248. package/dist/chunk-4D5EWJ3P.js.map +0 -1
  249. package/dist/chunk-5FN54NDH.js +0 -2257
  250. package/dist/chunk-5FN54NDH.js.map +0 -1
  251. package/dist/chunk-BOYGQYRQ.js +0 -7306
  252. package/dist/chunk-BOYGQYRQ.js.map +0 -1
  253. package/dist/chunk-CN3XMECL.js +0 -212
  254. package/dist/chunk-CN3XMECL.js.map +0 -1
  255. package/dist/chunk-EBI3BX6U.js +0 -164
  256. package/dist/chunk-EBI3BX6U.js.map +0 -1
  257. package/dist/chunk-EILUG3VB.js +0 -1275
  258. package/dist/chunk-EILUG3VB.js.map +0 -1
  259. package/dist/chunk-FUDY333O.js +0 -70
  260. package/dist/chunk-FUDY333O.js.map +0 -1
  261. package/dist/chunk-GBVOWFIK.js +0 -1237
  262. package/dist/chunk-GBVOWFIK.js.map +0 -1
  263. package/dist/chunk-H4TQ3H3Y.js +0 -262
  264. package/dist/chunk-H4TQ3H3Y.js.map +0 -1
  265. package/dist/chunk-JGB3IXZO.js +0 -189
  266. package/dist/chunk-JGB3IXZO.js.map +0 -1
  267. package/dist/chunk-KD2QRQPY.js +0 -4342
  268. package/dist/chunk-KD2QRQPY.js.map +0 -1
  269. package/dist/chunk-KLMXQVYK.js +0 -369
  270. package/dist/chunk-KLMXQVYK.js.map +0 -1
  271. package/dist/chunk-KZUG5KFQ.js +0 -214
  272. package/dist/chunk-KZUG5KFQ.js.map +0 -1
  273. package/dist/chunk-QDAQ4CJU.js +0 -345
  274. package/dist/chunk-QDAQ4CJU.js.map +0 -1
  275. package/dist/chunk-RMH72RZI.js.map +0 -1
  276. package/dist/chunk-SWKWQZXM.js +0 -117
  277. package/dist/chunk-SWKWQZXM.js.map +0 -1
  278. package/dist/chunk-TJBP2K4T.js.map +0 -1
  279. package/dist/chunk-TLCEAQDQ.js +0 -542
  280. package/dist/chunk-TLCEAQDQ.js.map +0 -1
  281. package/dist/chunk-UZXBISGO.js.map +0 -1
  282. package/dist/chunk-WGBAKP3Q.js +0 -3220
  283. package/dist/chunk-WGBAKP3Q.js.map +0 -1
  284. package/dist/compare/index.cjs +0 -5475
  285. package/dist/compare/index.cjs.map +0 -1
  286. package/dist/compare/index.d.cts +0 -114
  287. package/dist/compare/index.d.ts +0 -114
  288. package/dist/compare/index.js +0 -731
  289. package/dist/compare/index.js.map +0 -1
  290. package/dist/core/commands/formatting-commands.cjs +0 -828
  291. package/dist/core/commands/formatting-commands.cjs.map +0 -1
  292. package/dist/core/commands/formatting-commands.d.cts +0 -63
  293. package/dist/core/commands/formatting-commands.d.ts +0 -63
  294. package/dist/core/commands/formatting-commands.js +0 -37
  295. package/dist/core/commands/formatting-commands.js.map +0 -1
  296. package/dist/core/commands/image-commands.cjs +0 -2023
  297. package/dist/core/commands/image-commands.cjs.map +0 -1
  298. package/dist/core/commands/image-commands.d.cts +0 -58
  299. package/dist/core/commands/image-commands.d.ts +0 -58
  300. package/dist/core/commands/image-commands.js +0 -18
  301. package/dist/core/commands/image-commands.js.map +0 -1
  302. package/dist/core/commands/section-layout-commands.cjs.map +0 -1
  303. package/dist/core/commands/section-layout-commands.d.cts +0 -62
  304. package/dist/core/commands/section-layout-commands.d.ts +0 -62
  305. package/dist/core/commands/section-layout-commands.js +0 -21
  306. package/dist/core/commands/section-layout-commands.js.map +0 -1
  307. package/dist/core/commands/style-commands.cjs.map +0 -1
  308. package/dist/core/commands/style-commands.d.cts +0 -13
  309. package/dist/core/commands/style-commands.d.ts +0 -13
  310. package/dist/core/commands/style-commands.js +0 -9
  311. package/dist/core/commands/style-commands.js.map +0 -1
  312. package/dist/core/commands/table-structure-commands.cjs +0 -1883
  313. package/dist/core/commands/table-structure-commands.cjs.map +0 -1
  314. package/dist/core/commands/table-structure-commands.d.cts +0 -59
  315. package/dist/core/commands/table-structure-commands.d.ts +0 -59
  316. package/dist/core/commands/table-structure-commands.js +0 -12
  317. package/dist/core/commands/table-structure-commands.js.map +0 -1
  318. package/dist/core/commands/text-commands.cjs +0 -2391
  319. package/dist/core/commands/text-commands.cjs.map +0 -1
  320. package/dist/core/commands/text-commands.d.cts +0 -24
  321. package/dist/core/commands/text-commands.d.ts +0 -24
  322. package/dist/core/commands/text-commands.js +0 -28
  323. package/dist/core/commands/text-commands.js.map +0 -1
  324. package/dist/core/selection/mapping.cjs +0 -200
  325. package/dist/core/selection/mapping.cjs.map +0 -1
  326. package/dist/core/selection/mapping.d.cts +0 -2
  327. package/dist/core/selection/mapping.d.ts +0 -2
  328. package/dist/core/selection/mapping.js +0 -31
  329. package/dist/core/selection/mapping.js.map +0 -1
  330. package/dist/core/state/editor-state.cjs +0 -2278
  331. package/dist/core/state/editor-state.cjs.map +0 -1
  332. package/dist/core/state/editor-state.d.cts +0 -2
  333. package/dist/core/state/editor-state.d.ts +0 -2
  334. package/dist/core/state/editor-state.js +0 -26
  335. package/dist/core/state/editor-state.js.map +0 -1
  336. package/dist/index.cjs +0 -38553
  337. package/dist/index.cjs.map +0 -1
  338. package/dist/index.d.cts +0 -15
  339. package/dist/index.d.ts +0 -15
  340. package/dist/index.js +0 -7856
  341. package/dist/index.js.map +0 -1
  342. package/dist/io/docx-session.cjs +0 -16236
  343. package/dist/io/docx-session.cjs.map +0 -1
  344. package/dist/io/docx-session.d.cts +0 -21
  345. package/dist/io/docx-session.d.ts +0 -21
  346. package/dist/io/docx-session.js +0 -18
  347. package/dist/io/docx-session.js.map +0 -1
  348. package/dist/legal/index.cjs +0 -3900
  349. package/dist/legal/index.cjs.map +0 -1
  350. package/dist/legal/index.d.cts +0 -86
  351. package/dist/legal/index.d.ts +0 -86
  352. package/dist/legal/index.js +0 -616
  353. package/dist/legal/index.js.map +0 -1
  354. package/dist/public-types-7ZL_94cz.d.ts +0 -1573
  355. package/dist/public-types-CeMaDueh.d.cts +0 -1573
  356. package/dist/public-types.cjs +0 -19
  357. package/dist/public-types.cjs.map +0 -1
  358. package/dist/public-types.d.cts +0 -2
  359. package/dist/public-types.d.ts +0 -2
  360. package/dist/public-types.js +0 -1
  361. package/dist/public-types.js.map +0 -1
  362. package/dist/runtime/document-runtime.cjs +0 -11140
  363. package/dist/runtime/document-runtime.cjs.map +0 -1
  364. package/dist/runtime/document-runtime.d.cts +0 -231
  365. package/dist/runtime/document-runtime.d.ts +0 -231
  366. package/dist/runtime/document-runtime.js +0 -21
  367. package/dist/runtime/document-runtime.js.map +0 -1
  368. package/dist/structural-helpers-CilgOVhh.d.cts +0 -10
  369. package/dist/structural-helpers-q0Gd-eBN.d.ts +0 -10
  370. package/dist/ui-tailwind/editor-surface/search-plugin.cjs +0 -313
  371. package/dist/ui-tailwind/editor-surface/search-plugin.cjs.map +0 -1
  372. package/dist/ui-tailwind/editor-surface/search-plugin.d.cts +0 -67
  373. package/dist/ui-tailwind/editor-surface/search-plugin.d.ts +0 -67
  374. package/dist/ui-tailwind/editor-surface/search-plugin.js +0 -23
  375. package/dist/ui-tailwind/editor-surface/search-plugin.js.map +0 -1
  376. package/dist/ui-tailwind/index.cjs +0 -4833
  377. package/dist/ui-tailwind/index.cjs.map +0 -1
  378. package/dist/ui-tailwind/index.d.cts +0 -617
  379. package/dist/ui-tailwind/index.d.ts +0 -617
  380. package/dist/ui-tailwind/index.js +0 -575
  381. package/dist/ui-tailwind/index.js.map +0 -1
@@ -1,31 +1,57 @@
1
- import {
2
- extractBookmarksFromBodyXml
3
- } from "./chunk-TLCEAQDQ.js";
1
+ import { extractBookmarksFromBodyXml } from "../io/ooxml/parse-fields.ts";
2
+ import type {
3
+ BookmarkEndNode,
4
+ BookmarkStartNode,
5
+ CanonicalDocument,
6
+ DocumentNode,
7
+ FieldRegistry,
8
+ FieldRegistryEntry,
9
+ } from "../model/canonical-document.ts";
4
10
 
5
- // src/legal/bookmarks.ts
6
- function parseBookmarksFromDocumentXml(xml) {
11
+ export interface LegalBookmark {
12
+ bookmarkId: string;
13
+ name?: string;
14
+ hidden: boolean;
15
+ source: "ooxml" | "canonical";
16
+ status: "paired" | "start-only" | "end-only";
17
+ startIndex?: number;
18
+ endIndex?: number;
19
+ }
20
+
21
+ interface OpenBookmark {
22
+ bookmarkId: string;
23
+ name?: string;
24
+ hidden: boolean;
25
+ startIndex: number;
26
+ }
27
+
28
+ export function parseBookmarksFromDocumentXml(xml: string): LegalBookmark[] {
7
29
  const bookmarks = extractBookmarksFromBodyXml(xml);
8
- const openBookmarks = /* @__PURE__ */ new Map();
9
- const results = [];
30
+ const openBookmarks = new Map<string, OpenBookmark[]>();
31
+ const results: LegalBookmark[] = [];
32
+
10
33
  for (let index = 0; index < bookmarks.length; index += 1) {
11
34
  const bookmark = bookmarks[index];
35
+
12
36
  if (bookmark.type === "bookmark_start") {
13
- const entry = {
37
+ const entry: OpenBookmark = {
14
38
  bookmarkId: bookmark.bookmarkId,
15
39
  name: bookmark.name,
16
40
  hidden: isHiddenBookmarkName(bookmark.name),
17
- startIndex: index
41
+ startIndex: index,
18
42
  };
19
- const stack2 = openBookmarks.get(bookmark.bookmarkId) ?? [];
20
- stack2.push(entry);
21
- openBookmarks.set(bookmark.bookmarkId, stack2);
43
+ const stack = openBookmarks.get(bookmark.bookmarkId) ?? [];
44
+ stack.push(entry);
45
+ openBookmarks.set(bookmark.bookmarkId, stack);
22
46
  continue;
23
47
  }
48
+
24
49
  const stack = openBookmarks.get(bookmark.bookmarkId);
25
50
  const open = stack?.pop();
26
51
  if (stack && stack.length === 0) {
27
52
  openBookmarks.delete(bookmark.bookmarkId);
28
53
  }
54
+
29
55
  if (open) {
30
56
  results.push({
31
57
  bookmarkId: bookmark.bookmarkId,
@@ -34,18 +60,20 @@ function parseBookmarksFromDocumentXml(xml) {
34
60
  source: "ooxml",
35
61
  status: "paired",
36
62
  startIndex: open.startIndex,
37
- endIndex: index
63
+ endIndex: index,
38
64
  });
39
65
  continue;
40
66
  }
67
+
41
68
  results.push({
42
69
  bookmarkId: bookmark.bookmarkId,
43
70
  hidden: false,
44
71
  source: "ooxml",
45
72
  status: "end-only",
46
- endIndex: index
73
+ endIndex: index,
47
74
  });
48
75
  }
76
+
49
77
  for (const stack of openBookmarks.values()) {
50
78
  for (const open of stack) {
51
79
  results.push({
@@ -54,41 +82,51 @@ function parseBookmarksFromDocumentXml(xml) {
54
82
  hidden: open.hidden,
55
83
  source: "ooxml",
56
84
  status: "start-only",
57
- startIndex: open.startIndex
85
+ startIndex: open.startIndex,
58
86
  });
59
87
  }
60
88
  }
89
+
61
90
  return results.sort(compareBookmarks);
62
91
  }
63
- function collectBookmarksFromCanonicalDocument(document) {
92
+
93
+ export function collectBookmarksFromCanonicalDocument(
94
+ document: Pick<CanonicalDocument, "content"> | DocumentNode,
95
+ ): LegalBookmark[] {
64
96
  const root = "content" in document ? document.content : document;
65
- const sequence = [];
97
+ const sequence: Array<BookmarkStartNode | BookmarkEndNode> = [];
98
+
66
99
  walkDocument(root, (node) => {
67
100
  if (node.type === "bookmark_start" || node.type === "bookmark_end") {
68
101
  sequence.push(node);
69
102
  }
70
103
  });
71
- const openBookmarks = /* @__PURE__ */ new Map();
72
- const results = [];
104
+
105
+ const openBookmarks = new Map<string, OpenBookmark[]>();
106
+ const results: LegalBookmark[] = [];
107
+
73
108
  for (let index = 0; index < sequence.length; index += 1) {
74
109
  const bookmark = sequence[index];
110
+
75
111
  if (bookmark.type === "bookmark_start") {
76
- const entry = {
112
+ const entry: OpenBookmark = {
77
113
  bookmarkId: bookmark.bookmarkId,
78
114
  name: bookmark.name,
79
115
  hidden: isHiddenBookmarkName(bookmark.name),
80
- startIndex: index
116
+ startIndex: index,
81
117
  };
82
- const stack2 = openBookmarks.get(bookmark.bookmarkId) ?? [];
83
- stack2.push(entry);
84
- openBookmarks.set(bookmark.bookmarkId, stack2);
118
+ const stack = openBookmarks.get(bookmark.bookmarkId) ?? [];
119
+ stack.push(entry);
120
+ openBookmarks.set(bookmark.bookmarkId, stack);
85
121
  continue;
86
122
  }
123
+
87
124
  const stack = openBookmarks.get(bookmark.bookmarkId);
88
125
  const open = stack?.pop();
89
126
  if (stack && stack.length === 0) {
90
127
  openBookmarks.delete(bookmark.bookmarkId);
91
128
  }
129
+
92
130
  if (open) {
93
131
  results.push({
94
132
  bookmarkId: bookmark.bookmarkId,
@@ -97,18 +135,20 @@ function collectBookmarksFromCanonicalDocument(document) {
97
135
  source: "canonical",
98
136
  status: "paired",
99
137
  startIndex: open.startIndex,
100
- endIndex: index
138
+ endIndex: index,
101
139
  });
102
140
  continue;
103
141
  }
142
+
104
143
  results.push({
105
144
  bookmarkId: bookmark.bookmarkId,
106
145
  hidden: false,
107
146
  source: "canonical",
108
147
  status: "end-only",
109
- endIndex: index
148
+ endIndex: index,
110
149
  });
111
150
  }
151
+
112
152
  for (const stack of openBookmarks.values()) {
113
153
  for (const open of stack) {
114
154
  results.push({
@@ -117,16 +157,29 @@ function collectBookmarksFromCanonicalDocument(document) {
117
157
  hidden: open.hidden,
118
158
  source: "canonical",
119
159
  status: "start-only",
120
- startIndex: open.startIndex
160
+ startIndex: open.startIndex,
121
161
  });
122
162
  }
123
163
  }
164
+
124
165
  return results.sort(compareBookmarks);
125
166
  }
126
- function isHiddenBookmarkName(name) {
167
+
168
+ export function isHiddenBookmarkName(name: string | undefined): boolean {
127
169
  return Boolean(name && name.startsWith("_"));
128
170
  }
129
- function assessBookmarkIntegrity(bookmarks) {
171
+
172
+ export interface BookmarkIntegrityResult {
173
+ totalCount: number;
174
+ pairedCount: number;
175
+ startOnlyCount: number;
176
+ endOnlyCount: number;
177
+ hiddenCount: number;
178
+ namedCount: number;
179
+ integrityScore: "complete" | "partial" | "degraded";
180
+ }
181
+
182
+ export function assessBookmarkIntegrity(bookmarks: LegalBookmark[]): BookmarkIntegrityResult {
130
183
  const pairedCount = bookmarks.filter((b) => b.status === "paired").length;
131
184
  const startOnlyCount = bookmarks.filter((b) => b.status === "start-only").length;
132
185
  const endOnlyCount = bookmarks.filter((b) => b.status === "end-only").length;
@@ -134,6 +187,7 @@ function assessBookmarkIntegrity(bookmarks) {
134
187
  const namedCount = bookmarks.filter((b) => b.name && !b.hidden).length;
135
188
  const totalCount = bookmarks.length;
136
189
  const unpairedCount = startOnlyCount + endOnlyCount;
190
+
137
191
  return {
138
192
  totalCount,
139
193
  pairedCount,
@@ -141,16 +195,34 @@ function assessBookmarkIntegrity(bookmarks) {
141
195
  endOnlyCount,
142
196
  hiddenCount,
143
197
  namedCount,
144
- integrityScore: unpairedCount === 0 ? "complete" : unpairedCount <= pairedCount ? "partial" : "degraded"
198
+ integrityScore:
199
+ unpairedCount === 0
200
+ ? "complete"
201
+ : unpairedCount <= pairedCount
202
+ ? "partial"
203
+ : "degraded",
145
204
  };
146
205
  }
147
- function compareBookmarks(left, right) {
148
- return (left.startIndex ?? left.endIndex ?? Number.MAX_SAFE_INTEGER) - (right.startIndex ?? right.endIndex ?? Number.MAX_SAFE_INTEGER) || left.bookmarkId.localeCompare(right.bookmarkId);
206
+
207
+ function compareBookmarks(left: LegalBookmark, right: LegalBookmark): number {
208
+ return (
209
+ (left.startIndex ?? left.endIndex ?? Number.MAX_SAFE_INTEGER) -
210
+ (right.startIndex ?? right.endIndex ?? Number.MAX_SAFE_INTEGER) ||
211
+ left.bookmarkId.localeCompare(right.bookmarkId)
212
+ );
149
213
  }
150
- function buildBookmarkNameMap(document) {
214
+
215
+ /**
216
+ * Build a lookup map from bookmark name to bookmarkId for the document.
217
+ * Used by the field refresh runtime to resolve REF/PAGEREF/NOTEREF targets.
218
+ */
219
+ export function buildBookmarkNameMap(
220
+ document: Pick<CanonicalDocument, "content"> | DocumentNode,
221
+ ): Map<string, { bookmarkId: string; paragraphIndex: number }> {
151
222
  const root = "content" in document ? document.content : document;
152
- const map = /* @__PURE__ */ new Map();
223
+ const map = new Map<string, { bookmarkId: string; paragraphIndex: number }>();
153
224
  let paragraphIndex = -1;
225
+
154
226
  walkDocument(root, (node) => {
155
227
  if (node.type === "paragraph") {
156
228
  paragraphIndex += 1;
@@ -159,15 +231,38 @@ function buildBookmarkNameMap(document) {
159
231
  map.set(node.name, { bookmarkId: node.bookmarkId, paragraphIndex });
160
232
  }
161
233
  });
234
+
162
235
  return map;
163
236
  }
164
- function walkDocument(node, visit) {
237
+
238
+ /**
239
+ * Resolve field-to-bookmark dependencies from a field registry.
240
+ * Returns a map of bookmark names to the field entries that reference them.
241
+ * This enables the runtime to determine which fields need refresh when
242
+ * a bookmark's content changes.
243
+ */
244
+ export function resolveBookmarkFieldDependencies(
245
+ registry: FieldRegistry,
246
+ ): Map<string, FieldRegistryEntry[]> {
247
+ const deps = new Map<string, FieldRegistryEntry[]>();
248
+ for (const entry of registry.supported) {
249
+ if (!entry.fieldTarget) continue;
250
+ const existing = deps.get(entry.fieldTarget) ?? [];
251
+ existing.push(entry);
252
+ deps.set(entry.fieldTarget, existing);
253
+ }
254
+ return deps;
255
+ }
256
+
257
+ function walkDocument(node: DocumentNode, visit: (node: DocumentNode) => void): void {
165
258
  visit(node);
259
+
166
260
  if ("children" in node && Array.isArray(node.children)) {
167
261
  for (const child of node.children) {
168
262
  walkDocument(child, visit);
169
263
  }
170
264
  }
265
+
171
266
  if (node.type === "table") {
172
267
  for (const row of node.rows) {
173
268
  walkDocument(row, visit);
@@ -178,12 +273,3 @@ function walkDocument(node, visit) {
178
273
  }
179
274
  }
180
275
  }
181
-
182
- export {
183
- parseBookmarksFromDocumentXml,
184
- collectBookmarksFromCanonicalDocument,
185
- isHiddenBookmarkName,
186
- assessBookmarkIntegrity,
187
- buildBookmarkNameMap
188
- };
189
- //# sourceMappingURL=chunk-RMH72RZI.js.map