@beyondwork/docx-react-component 1.0.29 → 1.0.31

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 (383) 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/responsive-chrome.ts +46 -0
  180. package/src/ui-tailwind/chrome/review-queue-bar.tsx +97 -0
  181. package/src/ui-tailwind/chrome/tw-alert-banner.tsx +64 -0
  182. package/src/ui-tailwind/chrome/tw-context-analytics-summary.tsx +122 -0
  183. package/src/ui-tailwind/chrome/tw-image-context-toolbar.tsx +121 -0
  184. package/src/ui-tailwind/chrome/tw-layout-panel.tsx +114 -0
  185. package/src/ui-tailwind/chrome/tw-object-context-toolbar.tsx +30 -0
  186. package/src/ui-tailwind/chrome/tw-page-ruler.tsx +365 -0
  187. package/src/ui-tailwind/chrome/tw-selection-tool-blocked.tsx +23 -0
  188. package/src/ui-tailwind/chrome/tw-selection-tool-comment.tsx +35 -0
  189. package/src/ui-tailwind/chrome/tw-selection-tool-formatting.tsx +37 -0
  190. package/src/ui-tailwind/chrome/tw-selection-tool-host.tsx +303 -0
  191. package/src/ui-tailwind/chrome/tw-selection-tool-structure.tsx +116 -0
  192. package/src/ui-tailwind/chrome/tw-selection-tool-suggestion.tsx +29 -0
  193. package/src/ui-tailwind/chrome/tw-selection-tool-workflow.tsx +27 -0
  194. package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +186 -0
  195. package/src/ui-tailwind/chrome/tw-suggestion-card.tsx +139 -0
  196. package/src/ui-tailwind/chrome/tw-table-context-toolbar.tsx +250 -0
  197. package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +58 -0
  198. package/src/ui-tailwind/chrome/use-before-unload.ts +20 -0
  199. package/src/ui-tailwind/editor-surface/perf-probe.ts +179 -0
  200. package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +189 -0
  201. package/src/ui-tailwind/editor-surface/pm-contextual-ui.ts +31 -0
  202. package/src/ui-tailwind/editor-surface/pm-decorations.ts +411 -0
  203. package/src/ui-tailwind/editor-surface/pm-position-map.ts +123 -0
  204. package/src/ui-tailwind/editor-surface/pm-schema.ts +927 -0
  205. package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +567 -0
  206. package/src/ui-tailwind/editor-surface/search-plugin.ts +168 -0
  207. package/src/ui-tailwind/editor-surface/surface-build-keys.ts +63 -0
  208. package/src/ui-tailwind/editor-surface/tw-caret.tsx +12 -0
  209. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +150 -0
  210. package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +129 -0
  211. package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +58 -0
  212. package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +151 -0
  213. package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +1047 -0
  214. package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +111 -0
  215. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +503 -0
  216. package/src/ui-tailwind/index.ts +62 -0
  217. package/src/ui-tailwind/page-chrome-model.ts +27 -0
  218. package/src/ui-tailwind/review/tw-comment-sidebar.tsx +406 -0
  219. package/src/ui-tailwind/review/tw-health-panel.tsx +149 -0
  220. package/src/ui-tailwind/review/tw-review-rail.tsx +130 -0
  221. package/src/ui-tailwind/review/tw-revision-sidebar.tsx +164 -0
  222. package/src/ui-tailwind/status/tw-status-bar.tsx +65 -0
  223. package/{dist → src}/ui-tailwind/theme/editor-theme.css +58 -40
  224. package/src/ui-tailwind/toolbar/toolbar-layout.ts +47 -0
  225. package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +52 -0
  226. package/src/ui-tailwind/toolbar/tw-toolbar.tsx +1478 -0
  227. package/src/ui-tailwind/tw-review-workspace.tsx +1587 -0
  228. package/src/validation/README.md +3 -0
  229. package/src/validation/compatibility-engine.ts +878 -0
  230. package/src/validation/compatibility-report.ts +161 -0
  231. package/src/validation/diagnostics.ts +204 -0
  232. package/src/validation/docx-comment-proof.ts +720 -0
  233. package/src/validation/import-diagnostics.ts +128 -0
  234. package/src/validation/low-priority-word-surfaces.ts +373 -0
  235. package/dist/canonical-document-BLEbzL2J.d.cts +0 -844
  236. package/dist/canonical-document-BLEbzL2J.d.ts +0 -844
  237. package/dist/chunk-2FJS5GZM.js +0 -763
  238. package/dist/chunk-2FJS5GZM.js.map +0 -1
  239. package/dist/chunk-2OQBZS3F.js +0 -446
  240. package/dist/chunk-2OQBZS3F.js.map +0 -1
  241. package/dist/chunk-2S7W4KFO.js +0 -127
  242. package/dist/chunk-2S7W4KFO.js.map +0 -1
  243. package/dist/chunk-2TG72QSW.js +0 -3874
  244. package/dist/chunk-2TG72QSW.js.map +0 -1
  245. package/dist/chunk-36QNIZBO.js +0 -532
  246. package/dist/chunk-36QNIZBO.js.map +0 -1
  247. package/dist/chunk-4AQOYAW4.js +0 -3069
  248. package/dist/chunk-4AQOYAW4.js.map +0 -1
  249. package/dist/chunk-4D5EWJ3P.js +0 -77
  250. package/dist/chunk-4D5EWJ3P.js.map +0 -1
  251. package/dist/chunk-5FN54NDH.js +0 -2257
  252. package/dist/chunk-5FN54NDH.js.map +0 -1
  253. package/dist/chunk-BOYGQYRQ.js +0 -7306
  254. package/dist/chunk-BOYGQYRQ.js.map +0 -1
  255. package/dist/chunk-CN3XMECL.js +0 -212
  256. package/dist/chunk-CN3XMECL.js.map +0 -1
  257. package/dist/chunk-EBI3BX6U.js +0 -164
  258. package/dist/chunk-EBI3BX6U.js.map +0 -1
  259. package/dist/chunk-EILUG3VB.js +0 -1275
  260. package/dist/chunk-EILUG3VB.js.map +0 -1
  261. package/dist/chunk-FUDY333O.js +0 -70
  262. package/dist/chunk-FUDY333O.js.map +0 -1
  263. package/dist/chunk-GBVOWFIK.js +0 -1237
  264. package/dist/chunk-GBVOWFIK.js.map +0 -1
  265. package/dist/chunk-H4TQ3H3Y.js +0 -262
  266. package/dist/chunk-H4TQ3H3Y.js.map +0 -1
  267. package/dist/chunk-JGB3IXZO.js +0 -189
  268. package/dist/chunk-JGB3IXZO.js.map +0 -1
  269. package/dist/chunk-KD2QRQPY.js +0 -4342
  270. package/dist/chunk-KD2QRQPY.js.map +0 -1
  271. package/dist/chunk-KLMXQVYK.js +0 -369
  272. package/dist/chunk-KLMXQVYK.js.map +0 -1
  273. package/dist/chunk-KZUG5KFQ.js +0 -214
  274. package/dist/chunk-KZUG5KFQ.js.map +0 -1
  275. package/dist/chunk-QDAQ4CJU.js +0 -345
  276. package/dist/chunk-QDAQ4CJU.js.map +0 -1
  277. package/dist/chunk-RMH72RZI.js.map +0 -1
  278. package/dist/chunk-SWKWQZXM.js +0 -117
  279. package/dist/chunk-SWKWQZXM.js.map +0 -1
  280. package/dist/chunk-TJBP2K4T.js.map +0 -1
  281. package/dist/chunk-TLCEAQDQ.js +0 -542
  282. package/dist/chunk-TLCEAQDQ.js.map +0 -1
  283. package/dist/chunk-UZXBISGO.js.map +0 -1
  284. package/dist/chunk-WGBAKP3Q.js +0 -3220
  285. package/dist/chunk-WGBAKP3Q.js.map +0 -1
  286. package/dist/compare/index.cjs +0 -5475
  287. package/dist/compare/index.cjs.map +0 -1
  288. package/dist/compare/index.d.cts +0 -114
  289. package/dist/compare/index.d.ts +0 -114
  290. package/dist/compare/index.js +0 -731
  291. package/dist/compare/index.js.map +0 -1
  292. package/dist/core/commands/formatting-commands.cjs +0 -828
  293. package/dist/core/commands/formatting-commands.cjs.map +0 -1
  294. package/dist/core/commands/formatting-commands.d.cts +0 -63
  295. package/dist/core/commands/formatting-commands.d.ts +0 -63
  296. package/dist/core/commands/formatting-commands.js +0 -37
  297. package/dist/core/commands/formatting-commands.js.map +0 -1
  298. package/dist/core/commands/image-commands.cjs +0 -2023
  299. package/dist/core/commands/image-commands.cjs.map +0 -1
  300. package/dist/core/commands/image-commands.d.cts +0 -58
  301. package/dist/core/commands/image-commands.d.ts +0 -58
  302. package/dist/core/commands/image-commands.js +0 -18
  303. package/dist/core/commands/image-commands.js.map +0 -1
  304. package/dist/core/commands/section-layout-commands.cjs.map +0 -1
  305. package/dist/core/commands/section-layout-commands.d.cts +0 -62
  306. package/dist/core/commands/section-layout-commands.d.ts +0 -62
  307. package/dist/core/commands/section-layout-commands.js +0 -21
  308. package/dist/core/commands/section-layout-commands.js.map +0 -1
  309. package/dist/core/commands/style-commands.cjs.map +0 -1
  310. package/dist/core/commands/style-commands.d.cts +0 -13
  311. package/dist/core/commands/style-commands.d.ts +0 -13
  312. package/dist/core/commands/style-commands.js +0 -9
  313. package/dist/core/commands/style-commands.js.map +0 -1
  314. package/dist/core/commands/table-structure-commands.cjs +0 -1883
  315. package/dist/core/commands/table-structure-commands.cjs.map +0 -1
  316. package/dist/core/commands/table-structure-commands.d.cts +0 -59
  317. package/dist/core/commands/table-structure-commands.d.ts +0 -59
  318. package/dist/core/commands/table-structure-commands.js +0 -12
  319. package/dist/core/commands/table-structure-commands.js.map +0 -1
  320. package/dist/core/commands/text-commands.cjs +0 -2391
  321. package/dist/core/commands/text-commands.cjs.map +0 -1
  322. package/dist/core/commands/text-commands.d.cts +0 -24
  323. package/dist/core/commands/text-commands.d.ts +0 -24
  324. package/dist/core/commands/text-commands.js +0 -28
  325. package/dist/core/commands/text-commands.js.map +0 -1
  326. package/dist/core/selection/mapping.cjs +0 -200
  327. package/dist/core/selection/mapping.cjs.map +0 -1
  328. package/dist/core/selection/mapping.d.cts +0 -2
  329. package/dist/core/selection/mapping.d.ts +0 -2
  330. package/dist/core/selection/mapping.js +0 -31
  331. package/dist/core/selection/mapping.js.map +0 -1
  332. package/dist/core/state/editor-state.cjs +0 -2278
  333. package/dist/core/state/editor-state.cjs.map +0 -1
  334. package/dist/core/state/editor-state.d.cts +0 -2
  335. package/dist/core/state/editor-state.d.ts +0 -2
  336. package/dist/core/state/editor-state.js +0 -26
  337. package/dist/core/state/editor-state.js.map +0 -1
  338. package/dist/index.cjs +0 -38553
  339. package/dist/index.cjs.map +0 -1
  340. package/dist/index.d.cts +0 -15
  341. package/dist/index.d.ts +0 -15
  342. package/dist/index.js +0 -7856
  343. package/dist/index.js.map +0 -1
  344. package/dist/io/docx-session.cjs +0 -16236
  345. package/dist/io/docx-session.cjs.map +0 -1
  346. package/dist/io/docx-session.d.cts +0 -21
  347. package/dist/io/docx-session.d.ts +0 -21
  348. package/dist/io/docx-session.js +0 -18
  349. package/dist/io/docx-session.js.map +0 -1
  350. package/dist/legal/index.cjs +0 -3900
  351. package/dist/legal/index.cjs.map +0 -1
  352. package/dist/legal/index.d.cts +0 -86
  353. package/dist/legal/index.d.ts +0 -86
  354. package/dist/legal/index.js +0 -616
  355. package/dist/legal/index.js.map +0 -1
  356. package/dist/public-types-7ZL_94cz.d.ts +0 -1573
  357. package/dist/public-types-CeMaDueh.d.cts +0 -1573
  358. package/dist/public-types.cjs +0 -19
  359. package/dist/public-types.cjs.map +0 -1
  360. package/dist/public-types.d.cts +0 -2
  361. package/dist/public-types.d.ts +0 -2
  362. package/dist/public-types.js +0 -1
  363. package/dist/public-types.js.map +0 -1
  364. package/dist/runtime/document-runtime.cjs +0 -11140
  365. package/dist/runtime/document-runtime.cjs.map +0 -1
  366. package/dist/runtime/document-runtime.d.cts +0 -231
  367. package/dist/runtime/document-runtime.d.ts +0 -231
  368. package/dist/runtime/document-runtime.js +0 -21
  369. package/dist/runtime/document-runtime.js.map +0 -1
  370. package/dist/structural-helpers-CilgOVhh.d.cts +0 -10
  371. package/dist/structural-helpers-q0Gd-eBN.d.ts +0 -10
  372. package/dist/ui-tailwind/editor-surface/search-plugin.cjs +0 -313
  373. package/dist/ui-tailwind/editor-surface/search-plugin.cjs.map +0 -1
  374. package/dist/ui-tailwind/editor-surface/search-plugin.d.cts +0 -67
  375. package/dist/ui-tailwind/editor-surface/search-plugin.d.ts +0 -67
  376. package/dist/ui-tailwind/editor-surface/search-plugin.js +0 -23
  377. package/dist/ui-tailwind/editor-surface/search-plugin.js.map +0 -1
  378. package/dist/ui-tailwind/index.cjs +0 -4833
  379. package/dist/ui-tailwind/index.cjs.map +0 -1
  380. package/dist/ui-tailwind/index.d.cts +0 -617
  381. package/dist/ui-tailwind/index.d.ts +0 -617
  382. package/dist/ui-tailwind/index.js +0 -575
  383. package/dist/ui-tailwind/index.js.map +0 -1
@@ -0,0 +1,309 @@
1
+ import {
2
+ createSelectionSnapshot,
3
+ type CanonicalDocumentEnvelope,
4
+ type SelectionSnapshot,
5
+ } from "../state/editor-state.ts";
6
+ import type { TransactionMapping } from "../selection/mapping.ts";
7
+ import type {
8
+ DocumentRootNode,
9
+ ParagraphNode,
10
+ TableCellNode,
11
+ TableNode,
12
+ TableRowNode,
13
+ } from "../../model/canonical-document.ts";
14
+ import { createEditorSurfaceSnapshot } from "../../runtime/surface-projection.ts";
15
+
16
+ export interface TopLevelParagraphScope {
17
+ kind: "top-level";
18
+ blockIndex: number;
19
+ paragraph: ParagraphNode;
20
+ paragraphStart: number;
21
+ }
22
+
23
+ export interface TableParagraphScope {
24
+ kind: "table-cell";
25
+ tableBlockIndex: number;
26
+ rowIndex: number;
27
+ cellIndex: number;
28
+ childIndex: number;
29
+ paragraph: ParagraphNode;
30
+ paragraphStart: number;
31
+ }
32
+
33
+ export type ParagraphScope = TopLevelParagraphScope | TableParagraphScope;
34
+
35
+ export interface StructuralMutationResult {
36
+ changed: boolean;
37
+ document: CanonicalDocumentEnvelope;
38
+ selection: SelectionSnapshot;
39
+ mapping?: TransactionMapping;
40
+ }
41
+
42
+ const DEFAULT_TABLE_COLUMN_WIDTH = 2400;
43
+
44
+ export function createNoopStructuralMutation(
45
+ document: CanonicalDocumentEnvelope,
46
+ selection: SelectionSnapshot,
47
+ ): StructuralMutationResult {
48
+ return {
49
+ changed: false,
50
+ document,
51
+ selection,
52
+ };
53
+ }
54
+
55
+ export function resolveParagraphScope(
56
+ document: CanonicalDocumentEnvelope,
57
+ selection: SelectionSnapshot,
58
+ ): ParagraphScope | null {
59
+ const root = asDocumentRoot(document);
60
+ if (!root) {
61
+ return null;
62
+ }
63
+
64
+ const surface = createEditorSurfaceSnapshot(document, selection);
65
+ const selectionFrom = Math.min(selection.anchor, selection.head);
66
+ const selectionTo = Math.max(selection.anchor, selection.head);
67
+
68
+ for (let blockIndex = 0; blockIndex < root.children.length; blockIndex += 1) {
69
+ const block = root.children[blockIndex];
70
+ const surfaceBlock = surface.blocks[blockIndex];
71
+
72
+ if (!surfaceBlock) {
73
+ continue;
74
+ }
75
+
76
+ if (
77
+ block.type === "paragraph" &&
78
+ surfaceBlock.kind === "paragraph" &&
79
+ selectionWithinRange(selectionFrom, selectionTo, surfaceBlock.from, surfaceBlock.to)
80
+ ) {
81
+ return {
82
+ kind: "top-level",
83
+ blockIndex,
84
+ paragraph: cloneParagraph(block),
85
+ paragraphStart: surfaceBlock.from,
86
+ };
87
+ }
88
+
89
+ if (block.type !== "table" || surfaceBlock.kind !== "table") {
90
+ continue;
91
+ }
92
+
93
+ for (let rowIndex = 0; rowIndex < block.rows.length; rowIndex += 1) {
94
+ const row = block.rows[rowIndex];
95
+ const surfaceRow = surfaceBlock.rows[rowIndex];
96
+ if (!surfaceRow) {
97
+ continue;
98
+ }
99
+
100
+ for (let cellIndex = 0; cellIndex < row.cells.length; cellIndex += 1) {
101
+ const cell = row.cells[cellIndex];
102
+ const surfaceCell = surfaceRow.cells[cellIndex];
103
+ if (!surfaceCell) {
104
+ continue;
105
+ }
106
+
107
+ for (let childIndex = 0; childIndex < cell.children.length; childIndex += 1) {
108
+ const child = cell.children[childIndex];
109
+ const surfaceChild = surfaceCell.content[childIndex];
110
+ if (
111
+ child?.type === "paragraph" &&
112
+ surfaceChild?.kind === "paragraph" &&
113
+ selectionWithinRange(selectionFrom, selectionTo, surfaceChild.from, surfaceChild.to)
114
+ ) {
115
+ return {
116
+ kind: "table-cell",
117
+ tableBlockIndex: blockIndex,
118
+ rowIndex,
119
+ cellIndex,
120
+ childIndex,
121
+ paragraph: cloneParagraph(child),
122
+ paragraphStart: surfaceChild.from,
123
+ };
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+
130
+ return null;
131
+ }
132
+
133
+ export function replaceParagraphScope(
134
+ document: CanonicalDocumentEnvelope,
135
+ scope: ParagraphScope,
136
+ replacementParagraphs: ParagraphNode[],
137
+ ): CanonicalDocumentEnvelope {
138
+ const root = asDocumentRoot(document);
139
+ if (!root) {
140
+ return document;
141
+ }
142
+
143
+ const nextRoot: DocumentRootNode =
144
+ scope.kind === "top-level"
145
+ ? {
146
+ ...root,
147
+ children: [
148
+ ...root.children.slice(0, scope.blockIndex),
149
+ ...replacementParagraphs,
150
+ ...root.children.slice(scope.blockIndex + 1),
151
+ ],
152
+ }
153
+ : {
154
+ ...root,
155
+ children: root.children.map((child, blockIndex) => {
156
+ if (blockIndex !== scope.tableBlockIndex || child.type !== "table") {
157
+ return child;
158
+ }
159
+
160
+ return {
161
+ ...child,
162
+ rows: child.rows.map((row, rowIndex) => {
163
+ if (rowIndex !== scope.rowIndex) {
164
+ return row;
165
+ }
166
+
167
+ return {
168
+ ...row,
169
+ cells: row.cells.map((cell, cellIndex) => {
170
+ if (cellIndex !== scope.cellIndex) {
171
+ return cell;
172
+ }
173
+
174
+ return {
175
+ ...cell,
176
+ children: [
177
+ ...cell.children.slice(0, scope.childIndex),
178
+ ...replacementParagraphs,
179
+ ...cell.children.slice(scope.childIndex + 1),
180
+ ],
181
+ };
182
+ }),
183
+ };
184
+ }),
185
+ };
186
+ }),
187
+ };
188
+
189
+ return {
190
+ ...document,
191
+ content: nextRoot,
192
+ };
193
+ }
194
+
195
+ export function createEmptyParagraph(): ParagraphNode {
196
+ return {
197
+ type: "paragraph",
198
+ children: [],
199
+ };
200
+ }
201
+
202
+ export function createInsertedTableBlock(
203
+ rows: number,
204
+ columns: number,
205
+ styleId?: string,
206
+ ): TableNode {
207
+ const safeRows = Math.max(1, Math.floor(rows));
208
+ const safeColumns = Math.max(1, Math.floor(columns));
209
+ const nextRows: TableRowNode[] = [];
210
+
211
+ for (let rowIndex = 0; rowIndex < safeRows; rowIndex += 1) {
212
+ const cells: TableCellNode[] = [];
213
+ for (let columnIndex = 0; columnIndex < safeColumns; columnIndex += 1) {
214
+ cells.push({
215
+ type: "table_cell",
216
+ children: [createEmptyParagraph()],
217
+ });
218
+ }
219
+ nextRows.push({
220
+ type: "table_row",
221
+ cells,
222
+ });
223
+ }
224
+
225
+ return {
226
+ type: "table",
227
+ ...(styleId ? { styleId } : {}),
228
+ gridColumns: Array.from({ length: safeColumns }, () => DEFAULT_TABLE_COLUMN_WIDTH),
229
+ rows: nextRows,
230
+ };
231
+ }
232
+
233
+ export function resolveInsertedTableStyleId(
234
+ document: CanonicalDocumentEnvelope,
235
+ ): string | undefined {
236
+ const styles = document.styles?.tables;
237
+ if (!styles || typeof styles !== "object") {
238
+ return undefined;
239
+ }
240
+ return "TableGrid" in styles ? "TableGrid" : undefined;
241
+ }
242
+
243
+ export function findTableCellParagraphSelection(
244
+ document: CanonicalDocumentEnvelope,
245
+ tableBlockIndex: number,
246
+ rowIndex: number,
247
+ cellIndex: number,
248
+ ): SelectionSnapshot | null {
249
+ const surface = createEditorSurfaceSnapshot(document, createSelectionSnapshot(0, 0));
250
+ const tableBlock = surface.blocks[tableBlockIndex];
251
+ if (!tableBlock || tableBlock.kind !== "table") {
252
+ return null;
253
+ }
254
+
255
+ const paragraph = tableBlock.rows[rowIndex]?.cells[cellIndex]?.content.find(
256
+ (block) => block.kind === "paragraph",
257
+ );
258
+ if (!paragraph || paragraph.kind !== "paragraph") {
259
+ return null;
260
+ }
261
+
262
+ return createSelectionSnapshot(paragraph.from, paragraph.from);
263
+ }
264
+
265
+ export function findTopLevelParagraphSelectionNearBlock(
266
+ document: CanonicalDocumentEnvelope,
267
+ preferredBlockIndex: number,
268
+ ): SelectionSnapshot | null {
269
+ const surface = createEditorSurfaceSnapshot(document, createSelectionSnapshot(0, 0));
270
+
271
+ for (let index = preferredBlockIndex; index < surface.blocks.length; index += 1) {
272
+ const block = surface.blocks[index];
273
+ if (block?.kind === "paragraph") {
274
+ return createSelectionSnapshot(block.from, block.from);
275
+ }
276
+ }
277
+
278
+ for (let index = Math.min(preferredBlockIndex - 1, surface.blocks.length - 1); index >= 0; index -= 1) {
279
+ const block = surface.blocks[index];
280
+ if (block?.kind === "paragraph") {
281
+ return createSelectionSnapshot(block.from, block.from);
282
+ }
283
+ }
284
+
285
+ return null;
286
+ }
287
+
288
+ function asDocumentRoot(
289
+ document: CanonicalDocumentEnvelope,
290
+ ): DocumentRootNode | null {
291
+ const root = document.content;
292
+ if (!root || root.type !== "doc" || !Array.isArray(root.children)) {
293
+ return null;
294
+ }
295
+ return root;
296
+ }
297
+
298
+ function selectionWithinRange(
299
+ selectionFrom: number,
300
+ selectionTo: number,
301
+ rangeFrom: number,
302
+ rangeTo: number,
303
+ ): boolean {
304
+ return selectionFrom >= rangeFrom && selectionTo <= rangeTo;
305
+ }
306
+
307
+ function cloneParagraph(paragraph: ParagraphNode): ParagraphNode {
308
+ return structuredClone(paragraph) as ParagraphNode;
309
+ }
@@ -1,61 +1,65 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/core/commands/style-commands.ts
21
- var style_commands_exports = {};
22
- __export(style_commands_exports, {
23
- applyParagraphStyleToDocument: () => applyParagraphStyleToDocument,
24
- applyTableStyleToDocument: () => applyTableStyleToDocument
25
- });
26
- module.exports = __toCommonJS(style_commands_exports);
27
- function applyParagraphStyleToDocument(document, snapshot, styleId) {
1
+ import type {
2
+ PersistedEditorSnapshot,
3
+ RuntimeRenderSnapshot,
4
+ SurfaceBlockSnapshot,
5
+ } from "../../api/public-types";
6
+ import type {
7
+ BlockNode,
8
+ DocumentRootNode,
9
+ ParagraphNode,
10
+ TableNode,
11
+ } from "../../model/canonical-document.ts";
12
+
13
+ type CanonicalDocumentEnvelope = PersistedEditorSnapshot["canonicalDocument"];
14
+
15
+ export interface StyleMutationResult {
16
+ document: CanonicalDocumentEnvelope;
17
+ selection: RuntimeRenderSnapshot["selection"];
18
+ changed: boolean;
19
+ }
20
+
21
+ export function applyParagraphStyleToDocument(
22
+ document: CanonicalDocumentEnvelope,
23
+ snapshot: RuntimeRenderSnapshot,
24
+ styleId: string | null,
25
+ ): StyleMutationResult {
28
26
  const surface = snapshot.surface;
29
27
  if (!surface) {
30
28
  return {
31
29
  document,
32
30
  selection: snapshot.selection,
33
- changed: false
31
+ changed: false,
34
32
  };
35
33
  }
34
+
36
35
  const nextDocument = structuredClone(document);
37
- const root = nextDocument.content;
36
+ const root = nextDocument.content as DocumentRootNode;
38
37
  const normalizedStyleId = normalizeStyleId(styleId);
39
38
  if (!isValidParagraphStyleId(document, normalizedStyleId)) {
40
39
  return {
41
40
  document,
42
41
  selection: snapshot.selection,
43
- changed: false
42
+ changed: false,
44
43
  };
45
44
  }
46
45
  let changed = false;
46
+
47
47
  visitParagraphBindings(root.children, surface.blocks, (paragraph, paragraphSurface) => {
48
- if (!selectionTouchesRange(
49
- snapshot.selection.anchor,
50
- snapshot.selection.head,
51
- paragraphSurface.from,
52
- paragraphSurface.to
53
- )) {
48
+ if (
49
+ !selectionTouchesRange(
50
+ snapshot.selection.anchor,
51
+ snapshot.selection.head,
52
+ paragraphSurface.from,
53
+ paragraphSurface.to,
54
+ )
55
+ ) {
54
56
  return;
55
57
  }
58
+
56
59
  if (paragraph.styleId === normalizedStyleId) {
57
60
  return;
58
61
  }
62
+
59
63
  if (normalizedStyleId) {
60
64
  paragraph.styleId = normalizedStyleId;
61
65
  } else {
@@ -63,46 +67,59 @@ function applyParagraphStyleToDocument(document, snapshot, styleId) {
63
67
  }
64
68
  changed = true;
65
69
  });
70
+
66
71
  return {
67
72
  document: changed ? nextDocument : document,
68
73
  selection: snapshot.selection,
69
- changed
74
+ changed,
70
75
  };
71
76
  }
72
- function applyTableStyleToDocument(document, snapshot, styleId) {
77
+
78
+ export function applyTableStyleToDocument(
79
+ document: CanonicalDocumentEnvelope,
80
+ snapshot: RuntimeRenderSnapshot,
81
+ styleId: string | null,
82
+ ): StyleMutationResult {
73
83
  const surface = snapshot.surface;
74
84
  if (!surface) {
75
85
  return {
76
86
  document,
77
87
  selection: snapshot.selection,
78
- changed: false
88
+ changed: false,
79
89
  };
80
90
  }
91
+
81
92
  const nextDocument = structuredClone(document);
82
- const root = nextDocument.content;
93
+ const root = nextDocument.content as DocumentRootNode;
83
94
  const normalizedStyleId = normalizeStyleId(styleId);
84
95
  if (!isValidTableStyleId(document, normalizedStyleId)) {
85
96
  return {
86
97
  document,
87
98
  selection: snapshot.selection,
88
- changed: false
99
+ changed: false,
89
100
  };
90
101
  }
91
102
  let changed = false;
92
103
  let applied = false;
104
+
93
105
  visitTableBindings(root.children, surface.blocks, (table, tableSurface) => {
94
- if (applied || !selectionTouchesRange(
95
- snapshot.selection.anchor,
96
- snapshot.selection.head,
97
- tableSurface.from,
98
- tableSurface.to
99
- )) {
106
+ if (
107
+ applied ||
108
+ !selectionTouchesRange(
109
+ snapshot.selection.anchor,
110
+ snapshot.selection.head,
111
+ tableSurface.from,
112
+ tableSurface.to,
113
+ )
114
+ ) {
100
115
  return;
101
116
  }
117
+
102
118
  if (table.styleId === normalizedStyleId) {
103
119
  applied = true;
104
120
  return;
105
121
  }
122
+
106
123
  if (normalizedStyleId) {
107
124
  table.styleId = normalizedStyleId;
108
125
  } else {
@@ -111,36 +128,53 @@ function applyTableStyleToDocument(document, snapshot, styleId) {
111
128
  changed = true;
112
129
  applied = true;
113
130
  });
131
+
114
132
  return {
115
133
  document: changed ? nextDocument : document,
116
134
  selection: snapshot.selection,
117
- changed
135
+ changed,
118
136
  };
119
137
  }
120
- function normalizeStyleId(styleId) {
138
+
139
+ function normalizeStyleId(styleId: string | null): string | undefined {
121
140
  if (styleId === null) {
122
- return void 0;
141
+ return undefined;
123
142
  }
124
143
  const normalized = styleId.trim();
125
- return normalized.length > 0 ? normalized : void 0;
144
+ return normalized.length > 0 ? normalized : undefined;
126
145
  }
127
- function isValidParagraphStyleId(document, styleId) {
128
- return styleId === void 0 || Boolean(document.styles.paragraphs[styleId]);
146
+
147
+ function isValidParagraphStyleId(
148
+ document: CanonicalDocumentEnvelope,
149
+ styleId: string | undefined,
150
+ ): boolean {
151
+ return styleId === undefined || Boolean(document.styles.paragraphs[styleId]);
129
152
  }
130
- function isValidTableStyleId(document, styleId) {
131
- return styleId === void 0 || Boolean(document.styles.tables[styleId]);
153
+
154
+ function isValidTableStyleId(
155
+ document: CanonicalDocumentEnvelope,
156
+ styleId: string | undefined,
157
+ ): boolean {
158
+ return styleId === undefined || Boolean(document.styles.tables[styleId]);
132
159
  }
133
- function visitParagraphBindings(blocks, surfaceBlocks, visitor) {
160
+
161
+ function visitParagraphBindings(
162
+ blocks: BlockNode[],
163
+ surfaceBlocks: SurfaceBlockSnapshot[],
164
+ visitor: (paragraph: ParagraphNode, surface: Extract<SurfaceBlockSnapshot, { kind: "paragraph" }>) => void,
165
+ ): void {
134
166
  for (let index = 0; index < Math.min(blocks.length, surfaceBlocks.length); index += 1) {
135
167
  const block = blocks[index];
136
168
  const surface = surfaceBlocks[index];
137
169
  if (!block || !surface) {
138
170
  continue;
139
171
  }
172
+
140
173
  if (block.type === "paragraph" && surface.kind === "paragraph") {
141
174
  visitor(block, surface);
142
175
  continue;
143
176
  }
177
+
144
178
  if (block.type === "table" && surface.kind === "table") {
145
179
  for (let rowIndex = 0; rowIndex < Math.min(block.rows.length, surface.rows.length); rowIndex += 1) {
146
180
  const row = block.rows[rowIndex];
@@ -159,18 +193,25 @@ function visitParagraphBindings(blocks, surfaceBlocks, visitor) {
159
193
  }
160
194
  continue;
161
195
  }
196
+
162
197
  if (block.type === "sdt" && surface.kind === "sdt_block") {
163
198
  visitParagraphBindings(block.children, surface.children, visitor);
164
199
  }
165
200
  }
166
201
  }
167
- function visitTableBindings(blocks, surfaceBlocks, visitor) {
202
+
203
+ function visitTableBindings(
204
+ blocks: BlockNode[],
205
+ surfaceBlocks: SurfaceBlockSnapshot[],
206
+ visitor: (table: TableNode, surface: Extract<SurfaceBlockSnapshot, { kind: "table" }>) => void,
207
+ ): void {
168
208
  for (let index = 0; index < Math.min(blocks.length, surfaceBlocks.length); index += 1) {
169
209
  const block = blocks[index];
170
210
  const surface = surfaceBlocks[index];
171
211
  if (!block || !surface) {
172
212
  continue;
173
213
  }
214
+
174
215
  if (block.type === "table" && surface.kind === "table") {
175
216
  visitor(block, surface);
176
217
  for (let rowIndex = 0; rowIndex < Math.min(block.rows.length, surface.rows.length); rowIndex += 1) {
@@ -190,12 +231,19 @@ function visitTableBindings(blocks, surfaceBlocks, visitor) {
190
231
  }
191
232
  continue;
192
233
  }
234
+
193
235
  if (block.type === "sdt" && surface.kind === "sdt_block") {
194
236
  visitTableBindings(block.children, surface.children, visitor);
195
237
  }
196
238
  }
197
239
  }
198
- function selectionTouchesRange(anchor, head, rangeFrom, rangeTo) {
240
+
241
+ function selectionTouchesRange(
242
+ anchor: number,
243
+ head: number,
244
+ rangeFrom: number,
245
+ rangeTo: number,
246
+ ): boolean {
199
247
  const selectionFrom = Math.min(anchor, head);
200
248
  const selectionTo = Math.max(anchor, head);
201
249
  if (selectionFrom === selectionTo) {
@@ -203,12 +251,12 @@ function selectionTouchesRange(anchor, head, rangeFrom, rangeTo) {
203
251
  }
204
252
  return rangesOverlap(selectionFrom, selectionTo, rangeFrom, rangeTo);
205
253
  }
206
- function rangesOverlap(leftFrom, leftTo, rightFrom, rightTo) {
254
+
255
+ function rangesOverlap(
256
+ leftFrom: number,
257
+ leftTo: number,
258
+ rightFrom: number,
259
+ rightTo: number,
260
+ ): boolean {
207
261
  return leftFrom < rightTo && leftTo > rightFrom;
208
262
  }
209
- // Annotate the CommonJS export names for ESM import in node:
210
- 0 && (module.exports = {
211
- applyParagraphStyleToDocument,
212
- applyTableStyleToDocument
213
- });
214
- //# sourceMappingURL=style-commands.cjs.map