velo-text 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/LICENSE +21 -0
  3. package/README.md +122 -0
  4. package/dist/adapters/backend/index.d.ts +4 -0
  5. package/dist/adapters/backend/index.d.ts.map +1 -0
  6. package/dist/adapters/backend/index.js +3 -0
  7. package/dist/adapters/backend/index.js.map +1 -0
  8. package/dist/adapters/backend/pdf-http.d.ts +48 -0
  9. package/dist/adapters/backend/pdf-http.d.ts.map +1 -0
  10. package/dist/adapters/backend/pdf-http.js +117 -0
  11. package/dist/adapters/backend/pdf-http.js.map +1 -0
  12. package/dist/adapters/backend/sinks.d.ts +7 -0
  13. package/dist/adapters/backend/sinks.d.ts.map +1 -0
  14. package/dist/adapters/backend/sinks.js +43 -0
  15. package/dist/adapters/backend/sinks.js.map +1 -0
  16. package/dist/adapters/browser/index.d.ts +11 -0
  17. package/dist/adapters/browser/index.d.ts.map +1 -0
  18. package/dist/adapters/browser/index.js +51 -0
  19. package/dist/adapters/browser/index.js.map +1 -0
  20. package/dist/adapters/postgres-contract/index.d.ts +45 -0
  21. package/dist/adapters/postgres-contract/index.d.ts.map +1 -0
  22. package/dist/adapters/postgres-contract/index.js +108 -0
  23. package/dist/adapters/postgres-contract/index.js.map +1 -0
  24. package/dist/adapters/s3-compatible/index.d.ts +46 -0
  25. package/dist/adapters/s3-compatible/index.d.ts.map +1 -0
  26. package/dist/adapters/s3-compatible/index.js +106 -0
  27. package/dist/adapters/s3-compatible/index.js.map +1 -0
  28. package/dist/adapters/vanilla.d.ts +5 -0
  29. package/dist/adapters/vanilla.d.ts.map +1 -0
  30. package/dist/adapters/vanilla.js +6 -0
  31. package/dist/adapters/vanilla.js.map +1 -0
  32. package/dist/assets/dimensions/index.d.ts +12 -0
  33. package/dist/assets/dimensions/index.d.ts.map +1 -0
  34. package/dist/assets/dimensions/index.js +46 -0
  35. package/dist/assets/dimensions/index.js.map +1 -0
  36. package/dist/assets/hashing/index.d.ts +7 -0
  37. package/dist/assets/hashing/index.d.ts.map +1 -0
  38. package/dist/assets/hashing/index.js +21 -0
  39. package/dist/assets/hashing/index.js.map +1 -0
  40. package/dist/assets/icons/index.d.ts +25 -0
  41. package/dist/assets/icons/index.d.ts.map +1 -0
  42. package/dist/assets/icons/index.js +107 -0
  43. package/dist/assets/icons/index.js.map +1 -0
  44. package/dist/assets/png/placeholder.d.ts +4 -0
  45. package/dist/assets/png/placeholder.d.ts.map +1 -0
  46. package/dist/assets/png/placeholder.js +13 -0
  47. package/dist/assets/png/placeholder.js.map +1 -0
  48. package/dist/assets/sniff/index.d.ts +13 -0
  49. package/dist/assets/sniff/index.d.ts.map +1 -0
  50. package/dist/assets/sniff/index.js +41 -0
  51. package/dist/assets/sniff/index.js.map +1 -0
  52. package/dist/assets/store/index.d.ts +56 -0
  53. package/dist/assets/store/index.d.ts.map +1 -0
  54. package/dist/assets/store/index.js +102 -0
  55. package/dist/assets/store/index.js.map +1 -0
  56. package/dist/assets/svg/index.d.ts +7 -0
  57. package/dist/assets/svg/index.d.ts.map +1 -0
  58. package/dist/assets/svg/index.js +82 -0
  59. package/dist/assets/svg/index.js.map +1 -0
  60. package/dist/core/equation/html.d.ts +3 -0
  61. package/dist/core/equation/html.d.ts.map +1 -0
  62. package/dist/core/equation/html.js +138 -0
  63. package/dist/core/equation/html.js.map +1 -0
  64. package/dist/core/equation/index.d.ts +19 -0
  65. package/dist/core/equation/index.d.ts.map +1 -0
  66. package/dist/core/equation/index.js +107 -0
  67. package/dist/core/equation/index.js.map +1 -0
  68. package/dist/core/events/index.d.ts +13 -0
  69. package/dist/core/events/index.d.ts.map +1 -0
  70. package/dist/core/events/index.js +18 -0
  71. package/dist/core/events/index.js.map +1 -0
  72. package/dist/core/history/history.d.ts +29 -0
  73. package/dist/core/history/history.d.ts.map +1 -0
  74. package/dist/core/history/history.js +55 -0
  75. package/dist/core/history/history.js.map +1 -0
  76. package/dist/core/history/index.d.ts +2 -0
  77. package/dist/core/history/index.d.ts.map +1 -0
  78. package/dist/core/history/index.js +2 -0
  79. package/dist/core/history/index.js.map +1 -0
  80. package/dist/core/model/block.d.ts +121 -0
  81. package/dist/core/model/block.d.ts.map +1 -0
  82. package/dist/core/model/block.js +2 -0
  83. package/dist/core/model/block.js.map +1 -0
  84. package/dist/core/model/document.d.ts +70 -0
  85. package/dist/core/model/document.d.ts.map +1 -0
  86. package/dist/core/model/document.js +2 -0
  87. package/dist/core/model/document.js.map +1 -0
  88. package/dist/core/model/factories.d.ts +35 -0
  89. package/dist/core/model/factories.d.ts.map +1 -0
  90. package/dist/core/model/factories.js +115 -0
  91. package/dist/core/model/factories.js.map +1 -0
  92. package/dist/core/model/index.d.ts +4 -0
  93. package/dist/core/model/index.d.ts.map +1 -0
  94. package/dist/core/model/index.js +4 -0
  95. package/dist/core/model/index.js.map +1 -0
  96. package/dist/core/model/inline.d.ts +43 -0
  97. package/dist/core/model/inline.d.ts.map +1 -0
  98. package/dist/core/model/inline.js +2 -0
  99. package/dist/core/model/inline.js.map +1 -0
  100. package/dist/core/model/primitives.d.ts +36 -0
  101. package/dist/core/model/primitives.d.ts.map +1 -0
  102. package/dist/core/model/primitives.js +3 -0
  103. package/dist/core/model/primitives.js.map +1 -0
  104. package/dist/core/model/table-look.d.ts +12 -0
  105. package/dist/core/model/table-look.d.ts.map +1 -0
  106. package/dist/core/model/table-look.js +99 -0
  107. package/dist/core/model/table-look.js.map +1 -0
  108. package/dist/core/model/types.d.ts +5 -0
  109. package/dist/core/model/types.d.ts.map +1 -0
  110. package/dist/core/model/types.js +5 -0
  111. package/dist/core/model/types.js.map +1 -0
  112. package/dist/core/normalize/index.d.ts +2 -0
  113. package/dist/core/normalize/index.d.ts.map +1 -0
  114. package/dist/core/normalize/index.js +2 -0
  115. package/dist/core/normalize/index.js.map +1 -0
  116. package/dist/core/normalize/normalize.d.ts +8 -0
  117. package/dist/core/normalize/normalize.d.ts.map +1 -0
  118. package/dist/core/normalize/normalize.js +145 -0
  119. package/dist/core/normalize/normalize.js.map +1 -0
  120. package/dist/core/operations/index.d.ts +2 -0
  121. package/dist/core/operations/index.d.ts.map +1 -0
  122. package/dist/core/operations/index.js +2 -0
  123. package/dist/core/operations/index.js.map +1 -0
  124. package/dist/core/operations/operations.d.ts +53 -0
  125. package/dist/core/operations/operations.d.ts.map +1 -0
  126. package/dist/core/operations/operations.js +92 -0
  127. package/dist/core/operations/operations.js.map +1 -0
  128. package/dist/core/plugin/index.d.ts +84 -0
  129. package/dist/core/plugin/index.d.ts.map +1 -0
  130. package/dist/core/plugin/index.js +137 -0
  131. package/dist/core/plugin/index.js.map +1 -0
  132. package/dist/core/schema/canonical.d.ts +6 -0
  133. package/dist/core/schema/canonical.d.ts.map +1 -0
  134. package/dist/core/schema/canonical.js +42 -0
  135. package/dist/core/schema/canonical.js.map +1 -0
  136. package/dist/core/schema/index.d.ts +3 -0
  137. package/dist/core/schema/index.d.ts.map +1 -0
  138. package/dist/core/schema/index.js +3 -0
  139. package/dist/core/schema/index.js.map +1 -0
  140. package/dist/core/schema/validator.d.ts +23 -0
  141. package/dist/core/schema/validator.d.ts.map +1 -0
  142. package/dist/core/schema/validator.js +276 -0
  143. package/dist/core/schema/validator.js.map +1 -0
  144. package/dist/core/selection/index.d.ts +2 -0
  145. package/dist/core/selection/index.d.ts.map +1 -0
  146. package/dist/core/selection/index.js +2 -0
  147. package/dist/core/selection/index.js.map +1 -0
  148. package/dist/core/selection/selection.d.ts +12 -0
  149. package/dist/core/selection/selection.d.ts.map +1 -0
  150. package/dist/core/selection/selection.js +38 -0
  151. package/dist/core/selection/selection.js.map +1 -0
  152. package/dist/editor-web/accessibility/index.d.ts +40 -0
  153. package/dist/editor-web/accessibility/index.d.ts.map +1 -0
  154. package/dist/editor-web/accessibility/index.js +170 -0
  155. package/dist/editor-web/accessibility/index.js.map +1 -0
  156. package/dist/editor-web/clipboard/index.d.ts +52 -0
  157. package/dist/editor-web/clipboard/index.d.ts.map +1 -0
  158. package/dist/editor-web/clipboard/index.js +154 -0
  159. package/dist/editor-web/clipboard/index.js.map +1 -0
  160. package/dist/editor-web/controller/column-presets.d.ts +9 -0
  161. package/dist/editor-web/controller/column-presets.d.ts.map +1 -0
  162. package/dist/editor-web/controller/column-presets.js +11 -0
  163. package/dist/editor-web/controller/column-presets.js.map +1 -0
  164. package/dist/editor-web/controller/column-resize.d.ts +6 -0
  165. package/dist/editor-web/controller/column-resize.d.ts.map +1 -0
  166. package/dist/editor-web/controller/column-resize.js +119 -0
  167. package/dist/editor-web/controller/column-resize.js.map +1 -0
  168. package/dist/editor-web/controller/columns-ui.d.ts +5 -0
  169. package/dist/editor-web/controller/columns-ui.d.ts.map +1 -0
  170. package/dist/editor-web/controller/columns-ui.js +107 -0
  171. package/dist/editor-web/controller/columns-ui.js.map +1 -0
  172. package/dist/editor-web/controller/commands.d.ts +27 -0
  173. package/dist/editor-web/controller/commands.d.ts.map +1 -0
  174. package/dist/editor-web/controller/commands.js +198 -0
  175. package/dist/editor-web/controller/commands.js.map +1 -0
  176. package/dist/editor-web/controller/format-commands.d.ts +12 -0
  177. package/dist/editor-web/controller/format-commands.d.ts.map +1 -0
  178. package/dist/editor-web/controller/format-commands.js +77 -0
  179. package/dist/editor-web/controller/format-commands.js.map +1 -0
  180. package/dist/editor-web/controller/handles.d.ts +7 -0
  181. package/dist/editor-web/controller/handles.d.ts.map +1 -0
  182. package/dist/editor-web/controller/handles.js +205 -0
  183. package/dist/editor-web/controller/handles.js.map +1 -0
  184. package/dist/editor-web/controller/host.d.ts +8 -0
  185. package/dist/editor-web/controller/host.d.ts.map +1 -0
  186. package/dist/editor-web/controller/host.js +48 -0
  187. package/dist/editor-web/controller/host.js.map +1 -0
  188. package/dist/editor-web/controller/image-resize.d.ts +9 -0
  189. package/dist/editor-web/controller/image-resize.d.ts.map +1 -0
  190. package/dist/editor-web/controller/image-resize.js +163 -0
  191. package/dist/editor-web/controller/image-resize.js.map +1 -0
  192. package/dist/editor-web/controller/index.d.ts +6 -0
  193. package/dist/editor-web/controller/index.d.ts.map +1 -0
  194. package/dist/editor-web/controller/index.js +190 -0
  195. package/dist/editor-web/controller/index.js.map +1 -0
  196. package/dist/editor-web/controller/nesting.d.ts +27 -0
  197. package/dist/editor-web/controller/nesting.d.ts.map +1 -0
  198. package/dist/editor-web/controller/nesting.js +218 -0
  199. package/dist/editor-web/controller/nesting.js.map +1 -0
  200. package/dist/editor-web/controller/place-overlay.d.ts +6 -0
  201. package/dist/editor-web/controller/place-overlay.d.ts.map +1 -0
  202. package/dist/editor-web/controller/place-overlay.js +55 -0
  203. package/dist/editor-web/controller/place-overlay.js.map +1 -0
  204. package/dist/editor-web/controller/size-picker.d.ts +28 -0
  205. package/dist/editor-web/controller/size-picker.d.ts.map +1 -0
  206. package/dist/editor-web/controller/size-picker.js +177 -0
  207. package/dist/editor-web/controller/size-picker.js.map +1 -0
  208. package/dist/editor-web/controller/table-resize.d.ts +14 -0
  209. package/dist/editor-web/controller/table-resize.d.ts.map +1 -0
  210. package/dist/editor-web/controller/table-resize.js +178 -0
  211. package/dist/editor-web/controller/table-resize.js.map +1 -0
  212. package/dist/editor-web/controller/table-ui.d.ts +5 -0
  213. package/dist/editor-web/controller/table-ui.d.ts.map +1 -0
  214. package/dist/editor-web/controller/table-ui.js +214 -0
  215. package/dist/editor-web/controller/table-ui.js.map +1 -0
  216. package/dist/editor-web/controller/types.d.ts +95 -0
  217. package/dist/editor-web/controller/types.d.ts.map +1 -0
  218. package/dist/editor-web/controller/types.js +4 -0
  219. package/dist/editor-web/controller/types.js.map +1 -0
  220. package/dist/editor-web/controller/variable-ui.d.ts +5 -0
  221. package/dist/editor-web/controller/variable-ui.d.ts.map +1 -0
  222. package/dist/editor-web/controller/variable-ui.js +75 -0
  223. package/dist/editor-web/controller/variable-ui.js.map +1 -0
  224. package/dist/editor-web/images/index.d.ts +9 -0
  225. package/dist/editor-web/images/index.d.ts.map +1 -0
  226. package/dist/editor-web/images/index.js +18 -0
  227. package/dist/editor-web/images/index.js.map +1 -0
  228. package/dist/editor-web/index.d.ts +10 -0
  229. package/dist/editor-web/index.d.ts.map +1 -0
  230. package/dist/editor-web/index.js +10 -0
  231. package/dist/editor-web/index.js.map +1 -0
  232. package/dist/editor-web/input/index.d.ts +75 -0
  233. package/dist/editor-web/input/index.d.ts.map +1 -0
  234. package/dist/editor-web/input/index.js +151 -0
  235. package/dist/editor-web/input/index.js.map +1 -0
  236. package/dist/editor-web/tables/index.d.ts +47 -0
  237. package/dist/editor-web/tables/index.d.ts.map +1 -0
  238. package/dist/editor-web/tables/index.js +159 -0
  239. package/dist/editor-web/tables/index.js.map +1 -0
  240. package/dist/editor-web/toolbar/index.d.ts +17 -0
  241. package/dist/editor-web/toolbar/index.d.ts.map +1 -0
  242. package/dist/editor-web/toolbar/index.js +36 -0
  243. package/dist/editor-web/toolbar/index.js.map +1 -0
  244. package/dist/editor-web/ux/attach.d.ts +21 -0
  245. package/dist/editor-web/ux/attach.d.ts.map +1 -0
  246. package/dist/editor-web/ux/attach.js +61 -0
  247. package/dist/editor-web/ux/attach.js.map +1 -0
  248. package/dist/editor-web/ux/command-palette.d.ts +11 -0
  249. package/dist/editor-web/ux/command-palette.d.ts.map +1 -0
  250. package/dist/editor-web/ux/command-palette.js +135 -0
  251. package/dist/editor-web/ux/command-palette.js.map +1 -0
  252. package/dist/editor-web/ux/equation-editor.d.ts +11 -0
  253. package/dist/editor-web/ux/equation-editor.d.ts.map +1 -0
  254. package/dist/editor-web/ux/equation-editor.js +130 -0
  255. package/dist/editor-web/ux/equation-editor.js.map +1 -0
  256. package/dist/editor-web/ux/equation-palette.d.ts +11 -0
  257. package/dist/editor-web/ux/equation-palette.d.ts.map +1 -0
  258. package/dist/editor-web/ux/equation-palette.js +90 -0
  259. package/dist/editor-web/ux/equation-palette.js.map +1 -0
  260. package/dist/editor-web/ux/find-replace.d.ts +6 -0
  261. package/dist/editor-web/ux/find-replace.d.ts.map +1 -0
  262. package/dist/editor-web/ux/find-replace.js +125 -0
  263. package/dist/editor-web/ux/find-replace.js.map +1 -0
  264. package/dist/editor-web/ux/find-text.d.ts +10 -0
  265. package/dist/editor-web/ux/find-text.d.ts.map +1 -0
  266. package/dist/editor-web/ux/find-text.js +101 -0
  267. package/dist/editor-web/ux/find-text.js.map +1 -0
  268. package/dist/editor-web/ux/image-drop.d.ts +7 -0
  269. package/dist/editor-web/ux/image-drop.d.ts.map +1 -0
  270. package/dist/editor-web/ux/image-drop.js +198 -0
  271. package/dist/editor-web/ux/image-drop.js.map +1 -0
  272. package/dist/editor-web/ux/link-ui.d.ts +6 -0
  273. package/dist/editor-web/ux/link-ui.d.ts.map +1 -0
  274. package/dist/editor-web/ux/link-ui.js +50 -0
  275. package/dist/editor-web/ux/link-ui.js.map +1 -0
  276. package/dist/editor-web/ux/outline.d.ts +9 -0
  277. package/dist/editor-web/ux/outline.d.ts.map +1 -0
  278. package/dist/editor-web/ux/outline.js +48 -0
  279. package/dist/editor-web/ux/outline.js.map +1 -0
  280. package/dist/editor-web/ux/page-preview.d.ts +6 -0
  281. package/dist/editor-web/ux/page-preview.d.ts.map +1 -0
  282. package/dist/editor-web/ux/page-preview.js +90 -0
  283. package/dist/editor-web/ux/page-preview.js.map +1 -0
  284. package/dist/editor-web/ux/selection-bubble.d.ts +6 -0
  285. package/dist/editor-web/ux/selection-bubble.d.ts.map +1 -0
  286. package/dist/editor-web/ux/selection-bubble.js +79 -0
  287. package/dist/editor-web/ux/selection-bubble.js.map +1 -0
  288. package/dist/editor-web/ux/shortcuts-sheet.d.ts +6 -0
  289. package/dist/editor-web/ux/shortcuts-sheet.d.ts.map +1 -0
  290. package/dist/editor-web/ux/shortcuts-sheet.js +58 -0
  291. package/dist/editor-web/ux/shortcuts-sheet.js.map +1 -0
  292. package/dist/editor-web/view/index.d.ts +3 -0
  293. package/dist/editor-web/view/index.d.ts.map +1 -0
  294. package/dist/editor-web/view/index.js +3 -0
  295. package/dist/editor-web/view/index.js.map +1 -0
  296. package/dist/editor-web/view/parse-inlines.d.ts +15 -0
  297. package/dist/editor-web/view/parse-inlines.d.ts.map +1 -0
  298. package/dist/editor-web/view/parse-inlines.js +107 -0
  299. package/dist/editor-web/view/parse-inlines.js.map +1 -0
  300. package/dist/editor-web/view/parse.d.ts +8 -0
  301. package/dist/editor-web/view/parse.d.ts.map +1 -0
  302. package/dist/editor-web/view/parse.js +238 -0
  303. package/dist/editor-web/view/parse.js.map +1 -0
  304. package/dist/editor-web/view/reconcile.d.ts +26 -0
  305. package/dist/editor-web/view/reconcile.d.ts.map +1 -0
  306. package/dist/editor-web/view/reconcile.js +142 -0
  307. package/dist/editor-web/view/reconcile.js.map +1 -0
  308. package/dist/editor-web/view/render.d.ts +14 -0
  309. package/dist/editor-web/view/render.d.ts.map +1 -0
  310. package/dist/editor-web/view/render.js +162 -0
  311. package/dist/editor-web/view/render.js.map +1 -0
  312. package/dist/export/docx/document-xml.d.ts +3 -0
  313. package/dist/export/docx/document-xml.d.ts.map +1 -0
  314. package/dist/export/docx/document-xml.js +218 -0
  315. package/dist/export/docx/document-xml.js.map +1 -0
  316. package/dist/export/docx/package-parts.d.ts +9 -0
  317. package/dist/export/docx/package-parts.d.ts.map +1 -0
  318. package/dist/export/docx/package-parts.js +91 -0
  319. package/dist/export/docx/package-parts.js.map +1 -0
  320. package/dist/export/docx/writer.d.ts +17 -0
  321. package/dist/export/docx/writer.d.ts.map +1 -0
  322. package/dist/export/docx/writer.js +48 -0
  323. package/dist/export/docx/writer.js.map +1 -0
  324. package/dist/export/images/downsample.d.ts +19 -0
  325. package/dist/export/images/downsample.d.ts.map +1 -0
  326. package/dist/export/images/downsample.js +64 -0
  327. package/dist/export/images/downsample.js.map +1 -0
  328. package/dist/export/images/png-encode.d.ts +4 -0
  329. package/dist/export/images/png-encode.d.ts.map +1 -0
  330. package/dist/export/images/png-encode.js +86 -0
  331. package/dist/export/images/png-encode.js.map +1 -0
  332. package/dist/export/images/prepare.d.ts +22 -0
  333. package/dist/export/images/prepare.d.ts.map +1 -0
  334. package/dist/export/images/prepare.js +29 -0
  335. package/dist/export/images/prepare.js.map +1 -0
  336. package/dist/export/images/rasterize.d.ts +7 -0
  337. package/dist/export/images/rasterize.d.ts.map +1 -0
  338. package/dist/export/images/rasterize.js +62 -0
  339. package/dist/export/images/rasterize.js.map +1 -0
  340. package/dist/export/index.d.ts +45 -0
  341. package/dist/export/index.d.ts.map +1 -0
  342. package/dist/export/index.js +52 -0
  343. package/dist/export/index.js.map +1 -0
  344. package/dist/export/layout/index.d.ts +23 -0
  345. package/dist/export/layout/index.d.ts.map +1 -0
  346. package/dist/export/layout/index.js +18 -0
  347. package/dist/export/layout/index.js.map +1 -0
  348. package/dist/export/layout/layout-blocks.d.ts +5 -0
  349. package/dist/export/layout/layout-blocks.d.ts.map +1 -0
  350. package/dist/export/layout/layout-blocks.js +91 -0
  351. package/dist/export/layout/layout-blocks.js.map +1 -0
  352. package/dist/export/layout/layout-flow.d.ts +25 -0
  353. package/dist/export/layout/layout-flow.d.ts.map +1 -0
  354. package/dist/export/layout/layout-flow.js +23 -0
  355. package/dist/export/layout/layout-flow.js.map +1 -0
  356. package/dist/export/layout/layout-structured.d.ts +4 -0
  357. package/dist/export/layout/layout-structured.d.ts.map +1 -0
  358. package/dist/export/layout/layout-structured.js +153 -0
  359. package/dist/export/layout/layout-structured.js.map +1 -0
  360. package/dist/export/layout/layout-types.d.ts +35 -0
  361. package/dist/export/layout/layout-types.d.ts.map +1 -0
  362. package/dist/export/layout/layout-types.js +2 -0
  363. package/dist/export/layout/layout-types.js.map +1 -0
  364. package/dist/export/layout/pagination.d.ts +9 -0
  365. package/dist/export/layout/pagination.d.ts.map +1 -0
  366. package/dist/export/layout/pagination.js +38 -0
  367. package/dist/export/layout/pagination.js.map +1 -0
  368. package/dist/export/layout/text.d.ts +47 -0
  369. package/dist/export/layout/text.d.ts.map +1 -0
  370. package/dist/export/layout/text.js +119 -0
  371. package/dist/export/layout/text.js.map +1 -0
  372. package/dist/export/layout/units.d.ts +30 -0
  373. package/dist/export/layout/units.d.ts.map +1 -0
  374. package/dist/export/layout/units.js +55 -0
  375. package/dist/export/layout/units.js.map +1 -0
  376. package/dist/export/odt/writer.d.ts +24 -0
  377. package/dist/export/odt/writer.d.ts.map +1 -0
  378. package/dist/export/odt/writer.js +258 -0
  379. package/dist/export/odt/writer.js.map +1 -0
  380. package/dist/export/pdf/assemble.d.ts +9 -0
  381. package/dist/export/pdf/assemble.d.ts.map +1 -0
  382. package/dist/export/pdf/assemble.js +105 -0
  383. package/dist/export/pdf/assemble.js.map +1 -0
  384. package/dist/export/pdf/diagnostics.d.ts +11 -0
  385. package/dist/export/pdf/diagnostics.d.ts.map +1 -0
  386. package/dist/export/pdf/diagnostics.js +88 -0
  387. package/dist/export/pdf/diagnostics.js.map +1 -0
  388. package/dist/export/pdf/equation.d.ts +55 -0
  389. package/dist/export/pdf/equation.d.ts.map +1 -0
  390. package/dist/export/pdf/equation.js +301 -0
  391. package/dist/export/pdf/equation.js.map +1 -0
  392. package/dist/export/pdf/export-pdf.d.ts +33 -0
  393. package/dist/export/pdf/export-pdf.d.ts.map +1 -0
  394. package/dist/export/pdf/export-pdf.js +54 -0
  395. package/dist/export/pdf/export-pdf.js.map +1 -0
  396. package/dist/export/pdf/fonts.d.ts +7 -0
  397. package/dist/export/pdf/fonts.d.ts.map +1 -0
  398. package/dist/export/pdf/fonts.js +15 -0
  399. package/dist/export/pdf/fonts.js.map +1 -0
  400. package/dist/export/pdf/image.d.ts +27 -0
  401. package/dist/export/pdf/image.d.ts.map +1 -0
  402. package/dist/export/pdf/image.js +271 -0
  403. package/dist/export/pdf/image.js.map +1 -0
  404. package/dist/export/pdf/layout-pages.d.ts +9 -0
  405. package/dist/export/pdf/layout-pages.d.ts.map +1 -0
  406. package/dist/export/pdf/layout-pages.js +174 -0
  407. package/dist/export/pdf/layout-pages.js.map +1 -0
  408. package/dist/export/pdf/layout-table.d.ts +29 -0
  409. package/dist/export/pdf/layout-table.d.ts.map +1 -0
  410. package/dist/export/pdf/layout-table.js +216 -0
  411. package/dist/export/pdf/layout-table.js.map +1 -0
  412. package/dist/export/pdf/page-metrics.d.ts +11 -0
  413. package/dist/export/pdf/page-metrics.d.ts.map +1 -0
  414. package/dist/export/pdf/page-metrics.js +14 -0
  415. package/dist/export/pdf/page-metrics.js.map +1 -0
  416. package/dist/export/pdf/pdf-model.d.ts +36 -0
  417. package/dist/export/pdf/pdf-model.d.ts.map +1 -0
  418. package/dist/export/pdf/pdf-model.js +4 -0
  419. package/dist/export/pdf/pdf-model.js.map +1 -0
  420. package/dist/export/pdf/stream.d.ts +6 -0
  421. package/dist/export/pdf/stream.d.ts.map +1 -0
  422. package/dist/export/pdf/stream.js +213 -0
  423. package/dist/export/pdf/stream.js.map +1 -0
  424. package/dist/export/pdf/writer.d.ts +26 -0
  425. package/dist/export/pdf/writer.d.ts.map +1 -0
  426. package/dist/export/pdf/writer.js +31 -0
  427. package/dist/export/pdf/writer.js.map +1 -0
  428. package/dist/export/validate.d.ts +29 -0
  429. package/dist/export/validate.d.ts.map +1 -0
  430. package/dist/export/validate.js +127 -0
  431. package/dist/export/validate.js.map +1 -0
  432. package/dist/export/xml/writer.d.ts +19 -0
  433. package/dist/export/xml/writer.d.ts.map +1 -0
  434. package/dist/export/xml/writer.js +57 -0
  435. package/dist/export/xml/writer.js.map +1 -0
  436. package/dist/export/zip/crc32.d.ts +2 -0
  437. package/dist/export/zip/crc32.d.ts.map +1 -0
  438. package/dist/export/zip/crc32.js +20 -0
  439. package/dist/export/zip/crc32.js.map +1 -0
  440. package/dist/export/zip/deflate.d.ts +15 -0
  441. package/dist/export/zip/deflate.d.ts.map +1 -0
  442. package/dist/export/zip/deflate.js +28 -0
  443. package/dist/export/zip/deflate.js.map +1 -0
  444. package/dist/export/zip/index.d.ts +3 -0
  445. package/dist/export/zip/index.d.ts.map +1 -0
  446. package/dist/export/zip/index.js +3 -0
  447. package/dist/export/zip/index.js.map +1 -0
  448. package/dist/export/zip/zipWriter.d.ts +23 -0
  449. package/dist/export/zip/zipWriter.d.ts.map +1 -0
  450. package/dist/export/zip/zipWriter.js +123 -0
  451. package/dist/export/zip/zipWriter.js.map +1 -0
  452. package/dist/public-api/index.d.ts +46 -0
  453. package/dist/public-api/index.d.ts.map +1 -0
  454. package/dist/public-api/index.js +40 -0
  455. package/dist/public-api/index.js.map +1 -0
  456. package/dist/template/diagnostics/index.d.ts +8 -0
  457. package/dist/template/diagnostics/index.d.ts.map +1 -0
  458. package/dist/template/diagnostics/index.js +4 -0
  459. package/dist/template/diagnostics/index.js.map +1 -0
  460. package/dist/template/formatter/index.d.ts +9 -0
  461. package/dist/template/formatter/index.d.ts.map +1 -0
  462. package/dist/template/formatter/index.js +27 -0
  463. package/dist/template/formatter/index.js.map +1 -0
  464. package/dist/template/index.d.ts +3 -0
  465. package/dist/template/index.d.ts.map +1 -0
  466. package/dist/template/index.js +3 -0
  467. package/dist/template/index.js.map +1 -0
  468. package/dist/template/parser/parser.d.ts +42 -0
  469. package/dist/template/parser/parser.d.ts.map +1 -0
  470. package/dist/template/parser/parser.js +135 -0
  471. package/dist/template/parser/parser.js.map +1 -0
  472. package/dist/template/resolver/format.d.ts +11 -0
  473. package/dist/template/resolver/format.d.ts.map +1 -0
  474. package/dist/template/resolver/format.js +80 -0
  475. package/dist/template/resolver/format.js.map +1 -0
  476. package/dist/template/resolver/resolver.d.ts +31 -0
  477. package/dist/template/resolver/resolver.d.ts.map +1 -0
  478. package/dist/template/resolver/resolver.js +218 -0
  479. package/dist/template/resolver/resolver.js.map +1 -0
  480. package/dist/theme/index.d.ts +26 -0
  481. package/dist/theme/index.d.ts.map +1 -0
  482. package/dist/theme/index.js +87 -0
  483. package/dist/theme/index.js.map +1 -0
  484. package/package.json +110 -0
  485. package/schemas/portable-doc-v1.json +250 -0
  486. package/themes/base.css +71 -0
  487. package/themes/components.css +135 -0
  488. package/themes/editor-chrome.css +174 -0
  489. package/themes/editor-columns.css +121 -0
  490. package/themes/editor-overlays.css +464 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Renderer and reconciler — Phase 4.1.1 / 4.1.2
3
+ * Controlled contenteditable host, data-node-id/type, reconciliation by IDs.
4
+ * DOM is a reflection of the AST; AST is the source of truth.
5
+ */
6
+ import type { PortableDocument } from "../../core/model/types.js";
7
+ export interface RenderOptions {
8
+ theme?: string;
9
+ editable?: boolean;
10
+ resolveAssetUrl?: (assetId: string) => string | undefined;
11
+ }
12
+ export declare function renderBlocksToHtml(doc: PortableDocument, resolveAssetUrl?: RenderOptions["resolveAssetUrl"]): string;
13
+ export declare function renderDocumentToHtml(doc: PortableDocument, opts?: RenderOptions): string;
14
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/editor-web/view/render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,2BAA2B,CAAC;AAIzF,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC3D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAEpH;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM,CAG5F"}
@@ -0,0 +1,162 @@
1
+ import { tableClassName } from "../../core/model/table-look.js";
2
+ import { latexToHtml } from "../../core/equation/index.js";
3
+ export function renderBlocksToHtml(doc, resolveAssetUrl) {
4
+ return doc.root.children.map((b) => renderBlock(b, resolveAssetUrl)).join("");
5
+ }
6
+ export function renderDocumentToHtml(doc, opts = {}) {
7
+ const blocks = renderBlocksToHtml(doc, opts.resolveAssetUrl);
8
+ return `<div class="pde-root" data-pde-theme="${opts.theme ?? "light-neutral"}" contenteditable="${opts.editable ?? true ? "true" : "false"}">${blocks}</div>`;
9
+ }
10
+ function renderBlock(block, resolve) {
11
+ const id = block.id;
12
+ switch (block.type) {
13
+ case "paragraph":
14
+ return `<p data-node-id="${id}" data-node-type="paragraph"${blockStyle(block)}>${(block.children ?? []).map((n) => renderInline(n, resolve)).join("") || "<br>"}</p>`;
15
+ case "heading":
16
+ return `<h${block.level} data-node-id="${id}" data-node-type="heading"${alignStyle(block)}>${(block.children ?? []).map((n) => renderInline(n, resolve)).join("")}</h${block.level}>`;
17
+ case "quote":
18
+ return `<blockquote data-node-id="${id}" data-node-type="quote"${alignStyle(block)}>${(block.children ?? []).map((n) => renderInline(n, resolve)).join("")}</blockquote>`;
19
+ case "list": {
20
+ const tag = block.kind === "ordered" ? "ol" : "ul";
21
+ const items = block.items
22
+ .map((it) => `<li data-node-id="${it.id}">${it.content.map((n) => renderInline(n, resolve)).join("")}${it.nested ? renderBlock(it.nested, resolve) : ""}</li>`)
23
+ .join("");
24
+ return `<${tag} data-node-id="${id}" data-node-type="list">${items}</${tag}>`;
25
+ }
26
+ case "table": {
27
+ const colsHtml = block.columns
28
+ .map((c) => {
29
+ const defaultW = 40000;
30
+ const style = c.widthUm && c.widthUm !== defaultW ? ` style="width:${Math.round((c.widthUm / 25400) * 96)}px"` : "";
31
+ return `<col data-col-id="${c.id}" data-col-width-um="${c.widthUm}"${style} />`;
32
+ })
33
+ .join("");
34
+ const rows = block.rows
35
+ .map((row) => {
36
+ const hPx = row.heightUm ? ` style="height:${Math.round((row.heightUm / 25400) * 96)}px" data-height-um="${row.heightUm}"` : "";
37
+ const hdr = row.header ? ` data-header="true"` : "";
38
+ const cells = row.cells
39
+ .map((cell, colIndex) => {
40
+ const tag = row.header ? "th" : "td";
41
+ const inner = cell.blocks.map((bl) => renderBlock(bl, resolve)).join("") || "<p><br></p>";
42
+ const bg = typeof cell.style?.background === "string" ? `background:${cell.style.background}` : "";
43
+ const va = "vertical-align:middle";
44
+ const st = [bg, va].filter(Boolean).join(";");
45
+ const styleAttr = st ? ` style="${st}"` : ` style="${va}"`;
46
+ return `<${tag} data-node-id="${cell.id}" colspan="${cell.colSpan}" rowspan="${cell.rowSpan}" data-col-index="${colIndex}"${styleAttr}>${inner}</${tag}>`;
47
+ })
48
+ .join("");
49
+ return `<tr data-node-id="${row.id}"${hPx}${hdr}>${cells}</tr>`;
50
+ })
51
+ .join("");
52
+ return `<table class="${tableClassName(block)}" data-node-id="${id}" data-node-type="table" style="table-layout:fixed;width:100%"><colgroup>${colsHtml}</colgroup><tbody>${rows}</tbody></table>`;
53
+ }
54
+ case "image": {
55
+ const wUm = block.widthUm ?? 150000;
56
+ const hUm = block.heightUm ?? 90000;
57
+ const wPx = Math.round((wUm / 25400) * 96);
58
+ const align = block.align;
59
+ const figStyle = align && align !== "left" ? ` style="text-align:${align}"` : "";
60
+ const cap = block.title ? `<figcaption>${escapeAttr(block.title)}</figcaption>` : "";
61
+ const src = assetSrc(block.assetId, resolve);
62
+ return `<figure contenteditable="false" draggable="true" data-node-id="${id}" data-node-type="image" data-asset-id="${block.assetId}" data-width-um="${wUm}" data-height-um="${hUm}" data-alt="${escapeAttr(block.alt ?? "")}"${block.title ? ` data-title="${escapeAttr(block.title)}"` : ""} class="pde-image-block"${figStyle}><img data-asset-id="${block.assetId}" alt="${escapeAttr(block.alt ?? "")}" draggable="true" style="width:${wPx}px;height:auto;aspect-ratio:${wUm}/${hUm}"${src} />${cap}</figure>`;
63
+ }
64
+ case "columns": {
65
+ const cols = block.columns
66
+ .map((col, i) => {
67
+ const pct = col.widthPct ?? Math.round(100 / Math.max(1, block.columns.length));
68
+ const inner = col.blocks.map((bl) => renderBlock(bl, resolve)).join("") || "<p><br></p>";
69
+ return `<div class="pde-column" data-node-id="${col.id}" data-col-index="${i}" data-width-pct="${pct}" style="flex:0 0 ${pct}%;width:${pct}%;max-width:${pct}%">${inner}</div>`;
70
+ })
71
+ .join("");
72
+ const gapPx = Math.round(((block.gapUm ?? 4000) / 25400) * 96);
73
+ return `<div class="pde-columns" data-node-id="${id}" data-node-type="columns" style="gap:${gapPx}px">${cols}</div>`;
74
+ }
75
+ case "page-break":
76
+ return `<div data-node-id="${id}" data-node-type="page-break" class="pde-page-break" data-page-break="true"></div>`;
77
+ case "horizontal-rule":
78
+ return `<hr data-node-id="${id}" data-node-type="horizontal-rule" />`;
79
+ case "equation-block": {
80
+ const latex = escapeAttr(block.latex ?? "");
81
+ const inner = latexToHtml(block.latex ?? "");
82
+ return `<div data-node-id="${id}" data-node-type="equation-block" contenteditable="false" class="pde-equation pde-equation--block" role="math" aria-label="${latex}" data-latex="${latex}">${inner}</div>`;
83
+ }
84
+ default:
85
+ return `<div data-node-id="${id}">[${block.type}]</div>`;
86
+ }
87
+ }
88
+ function renderInline(inline, resolve) {
89
+ switch (inline.type) {
90
+ case "text": {
91
+ let s = escapeHtml(inline.text);
92
+ const m = inline.marks;
93
+ if (!m)
94
+ return s;
95
+ if (m.bold)
96
+ s = `<strong>${s}</strong>`;
97
+ if (m.italic)
98
+ s = `<em>${s}</em>`;
99
+ if (m.underline)
100
+ s = `<u>${s}</u>`;
101
+ if (m.strike)
102
+ s = `<s>${s}</s>`;
103
+ if (m.code)
104
+ s = `<code>${s}</code>`;
105
+ const st = [];
106
+ if (m.color)
107
+ st.push(`color:${m.color}`);
108
+ if (m.background)
109
+ st.push(`background:${m.background}`);
110
+ if (m.fontSizePt)
111
+ st.push(`font-size:${m.fontSizePt}pt`);
112
+ if (m.fontFamily)
113
+ st.push(`font-family:${m.fontFamily}`);
114
+ if (st.length)
115
+ s = `<span style="${st.join(";")}">${s}</span>`;
116
+ return s;
117
+ }
118
+ case "variable":
119
+ return `<span data-node-id="${inline.id}" data-node-type="variable" contenteditable="false" class="pde-variable" role="button" tabindex="0" data-path="${escapeAttr(inline.path)}" data-source="${escapeAttr(inline.source)}"${inline.format ? ` data-format="${escapeAttr(inline.format)}"` : ""}${inline.fallback ? ` data-fallback="${escapeAttr(inline.fallback)}"` : ""} aria-label="Variable ${escapeAttr(inline.path)}">${escapeHtml(inline.source)}</span>`;
120
+ case "link":
121
+ return `<a data-node-id="${inline.id}" href="${escapeAttr(inline.href)}" data-node-type="link">${inline.children.map((n) => renderInline(n, resolve)).join("")}</a>`;
122
+ case "inline-image":
123
+ return `<img data-node-id="${inline.id}" data-asset-id="${inline.assetId}" class="pde-inline-image" alt=""${assetSrc(inline.assetId, resolve)} />`;
124
+ case "hard-break":
125
+ return `<br data-node-id="${inline.id}" />`;
126
+ case "equation": {
127
+ const latex = inline.latex ?? "";
128
+ const display = inline.display;
129
+ const inner = latexToHtml(latex);
130
+ const cls = display ? "pde-equation pde-equation--block" : "pde-equation";
131
+ return `<span data-node-id="${inline.id}" data-node-type="equation" contenteditable="false" class="${cls}" role="math" tabindex="0" aria-label="${escapeAttr(latex)}" data-latex="${escapeAttr(latex)}">${inner}</span>`;
132
+ }
133
+ default:
134
+ return `<span>[${inline.type}]</span>`;
135
+ }
136
+ }
137
+ function blockStyle(block) {
138
+ const b = block;
139
+ const parts = [];
140
+ if (b.align)
141
+ parts.push(`text-align:${b.align}`);
142
+ if (b.indentLevel)
143
+ parts.push(`padding-left:${b.indentLevel * 1.5}em`);
144
+ const indentAttr = b.indentLevel ? ` data-indent-level="${b.indentLevel}"` : "";
145
+ const style = parts.length ? ` style="${parts.join(";")}"` : "";
146
+ return `${indentAttr}${style}`;
147
+ }
148
+ function alignStyle(block) {
149
+ const align = block.align;
150
+ return align ? ` style="text-align:${align}"` : "";
151
+ }
152
+ function assetSrc(assetId, resolve) {
153
+ const url = resolve?.(assetId);
154
+ return url ? ` src="${escapeAttr(url)}"` : "";
155
+ }
156
+ function escapeHtml(s) {
157
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
158
+ }
159
+ function escapeAttr(s) {
160
+ return escapeHtml(s);
161
+ }
162
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/editor-web/view/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { PortableDocument } from "../../core/model/types.js";
2
+ export declare function buildDocument(doc: PortableDocument): string;
3
+ //# sourceMappingURL=document-xml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-xml.d.ts","sourceRoot":"","sources":["../../../src/export/docx/document-xml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAkBzD"}
@@ -0,0 +1,218 @@
1
+ import { XmlWriter } from "../xml/writer.js";
2
+ import { umToEmu } from "../layout/units.js";
3
+ export function buildDocument(doc) {
4
+ const w = new XmlWriter().declaration();
5
+ w.open("w:document", {
6
+ "xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
7
+ "xmlns:r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
8
+ "xmlns:wp": "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
9
+ "xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
10
+ "xmlns:pic": "http://schemas.openxmlformats.org/drawingml/2006/picture",
11
+ });
12
+ w.open("w:body");
13
+ for (const block of doc.root.children)
14
+ writeBlock(w, block, doc);
15
+ // section props
16
+ w.open("w:sectPr");
17
+ w.selfClose("w:pgSz", { "w:w": "11906", "w:h": "16838" }); // A4 in twips
18
+ w.selfClose("w:pgMar", { "w:top": "1134", "w:right": "1134", "w:bottom": "1134", "w:left": "1134" });
19
+ w.close();
20
+ w.close().close();
21
+ return w.toString();
22
+ }
23
+ function writeBlock(w, block, doc) {
24
+ switch (block.type) {
25
+ case "paragraph": {
26
+ w.open("w:p");
27
+ writeParagraphProps(w, block);
28
+ for (const inl of block.children ?? [])
29
+ writeInline(w, inl, doc);
30
+ // ensure at least one run if empty
31
+ if (!block.children || block.children.length === 0) {
32
+ w.open("w:r").open("w:t").text("").close().close();
33
+ }
34
+ w.close();
35
+ break;
36
+ }
37
+ case "heading": {
38
+ const level = block.level ?? 1;
39
+ w.open("w:p");
40
+ w.open("w:pPr").open("w:pStyle", { "w:val": `Heading${level}` }).close().close();
41
+ for (const inl of block.children ?? [])
42
+ writeInline(w, inl, doc);
43
+ w.close();
44
+ break;
45
+ }
46
+ case "quote": {
47
+ w.open("w:p");
48
+ w.open("w:pPr").open("w:pStyle", { "w:val": "Quote" }).close().close();
49
+ for (const inl of block.children ?? [])
50
+ writeInline(w, inl, doc);
51
+ w.close();
52
+ break;
53
+ }
54
+ case "list": {
55
+ for (const item of block.items ?? []) {
56
+ w.open("w:p");
57
+ w.open("w:pPr");
58
+ // simple list styling via numPr placeholder
59
+ w.open("w:numPr").selfClose("w:ilvl", { "w:val": "0" }).selfClose("w:numId", { "w:val": block.kind === "ordered" ? "1" : "2" }).close();
60
+ w.close();
61
+ const text = item.content?.map((c) => c.text ?? c.source ?? "").join("") ?? "";
62
+ writeInline(w, { type: "text", id: `${item.id}_t`, text }, doc);
63
+ w.close();
64
+ if (item.nested)
65
+ writeBlock(w, item.nested, doc);
66
+ }
67
+ break;
68
+ }
69
+ case "table": {
70
+ w.open("w:tbl");
71
+ w.open("w:tblPr").selfClose("w:tblW", { "w:w": "0", "w:type": "auto" }).close();
72
+ // grid
73
+ w.open("w:tblGrid");
74
+ for (const _col of block.columns ?? [])
75
+ w.selfClose("w:gridCol", { "w:w": "3000" });
76
+ w.close();
77
+ for (const row of block.rows ?? []) {
78
+ w.open("w:tr");
79
+ for (const cell of row.cells ?? []) {
80
+ w.open("w:tc");
81
+ w.open("w:tcPr");
82
+ if (cell.colSpan > 1)
83
+ w.selfClose("w:gridSpan", { "w:val": String(cell.colSpan) });
84
+ if (cell.rowSpan > 1)
85
+ w.selfClose("w:vMerge", { "w:val": "restart" });
86
+ w.close();
87
+ for (const b of cell.blocks ?? [])
88
+ writeBlock(w, b, doc);
89
+ // ensure cell has at least one paragraph
90
+ if (!cell.blocks || cell.blocks.length === 0)
91
+ w.open("w:p").close();
92
+ w.close();
93
+ }
94
+ w.close();
95
+ }
96
+ w.close();
97
+ break;
98
+ }
99
+ case "columns": {
100
+ w.open("w:tbl");
101
+ w.open("w:tblPr").selfClose("w:tblW", { "w:w": "0", "w:type": "auto" }).close();
102
+ w.open("w:tblGrid");
103
+ for (const _col of block.columns ?? [])
104
+ w.selfClose("w:gridCol", { "w:w": "4500" });
105
+ w.close();
106
+ w.open("w:tr");
107
+ for (const col of block.columns ?? []) {
108
+ w.open("w:tc");
109
+ w.open("w:tcPr").close();
110
+ for (const b of col.blocks ?? [])
111
+ writeBlock(w, b, doc);
112
+ if (!col.blocks || col.blocks.length === 0)
113
+ w.open("w:p").close();
114
+ w.close();
115
+ }
116
+ w.close();
117
+ w.close();
118
+ break;
119
+ }
120
+ case "image": {
121
+ const asset = doc.assets[block.assetId];
122
+ if (!asset) {
123
+ w.open("w:p").open("w:r").open("w:t").text(`[missing image ${block.assetId}]`).close().close().close();
124
+ break;
125
+ }
126
+ w.open("w:p");
127
+ writeParagraphProps(w, block);
128
+ w.open("w:r").open("w:drawing");
129
+ const widthEmu = umToEmu(block.widthUm ?? 150000);
130
+ const heightEmu = umToEmu(block.heightUm ?? 90000);
131
+ w.open("wp:inline", { distT: "0", distB: "0", distL: "0", distR: "0" });
132
+ w.selfClose("wp:extent", { cx: String(widthEmu), cy: String(heightEmu) });
133
+ w.selfClose("wp:docPr", { id: "1", name: block.id, descr: asset.alt ?? "" });
134
+ w.open("a:graphic").open("a:graphicData", { uri: "http://schemas.openxmlformats.org/drawingml/2006/picture" });
135
+ w.open("pic:pic");
136
+ w.open("pic:nvPicPr").selfClose("pic:cNvPr", { id: "0", name: asset.alt ?? "" }).selfClose("pic:cNvPicPr").close();
137
+ w.open("pic:blipFill").selfClose("a:blip", { "r:embed": `rId_${block.assetId}` }).open("a:stretch").selfClose("a:fillRect").close().close();
138
+ w.open("pic:spPr").selfClose("a:xfrm").open("a:prstGeom", { prst: "rect" }).selfClose("a:avLst").close().close();
139
+ // close pic:pic, a:graphicData, a:graphic, wp:inline, w:drawing, w:r, w:p = 7 closes
140
+ w.close().close().close().close().close().close().close();
141
+ break;
142
+ }
143
+ case "page-break": {
144
+ w.open("w:p").open("w:r").selfClose("w:br", { "w:type": "page" }).close().close();
145
+ break;
146
+ }
147
+ case "horizontal-rule": {
148
+ w.open("w:p").open("w:pPr").open("w:pBdr").open("w:bottom", { "w:val": "single", "w:sz": "6", "w:space": "1", "w:color": "999999" }).close().close().close();
149
+ w.open("w:r").open("w:t").text("").close().close().close();
150
+ break;
151
+ }
152
+ case "equation-block": {
153
+ // DOCX OfficeMath fallback: render LaTeX as italic text inside centered paragraph
154
+ // Future: emit <m:oMath> for native equation support
155
+ w.open("w:p");
156
+ w.open("w:pPr").selfClose("w:jc", { "w:val": "center" }).close();
157
+ w.open("w:r");
158
+ w.open("w:rPr").selfClose("w:i").close();
159
+ w.open("w:t", { "xml:space": "preserve" }).text(`$${block.latex}$`).close().close().close();
160
+ break;
161
+ }
162
+ default:
163
+ w.open("w:p").open("w:r").open("w:t").text(`[${block.type}]`).close().close().close();
164
+ }
165
+ }
166
+ function writeParagraphProps(w, block) {
167
+ const align = block.align;
168
+ if (align) {
169
+ w.open("w:pPr");
170
+ const map = { left: "left", center: "center", right: "right", justify: "both" };
171
+ w.selfClose("w:jc", { "w:val": map[align] ?? align });
172
+ w.close();
173
+ }
174
+ }
175
+ function writeInline(w, inl, _doc) {
176
+ if (inl.type === "text") {
177
+ w.open("w:r");
178
+ const marks = inl.marks;
179
+ if (marks && Object.keys(marks).length) {
180
+ w.open("w:rPr");
181
+ if (marks.bold)
182
+ w.selfClose("w:b");
183
+ if (marks.italic)
184
+ w.selfClose("w:i");
185
+ if (marks.underline)
186
+ w.selfClose("w:u", { "w:val": "single" });
187
+ if (marks.strike)
188
+ w.selfClose("w:strike");
189
+ if (marks.code)
190
+ w.selfClose("w:rStyle", { "w:val": "Code" });
191
+ if (marks.color)
192
+ w.open("w:color", { "w:val": String(marks.color).replace("#", "").slice(0, 6) }).close();
193
+ w.close();
194
+ }
195
+ w.open("w:t", { "xml:space": "preserve" }).text(inl.text).close().close();
196
+ }
197
+ else if (inl.type === "variable") {
198
+ w.open("w:r").open("w:t", { "xml:space": "preserve" }).text(inl.source).close().close();
199
+ }
200
+ else if (inl.type === "link") {
201
+ w.open("w:hyperlink", { "r:id": `rId_link_${inl.id}`, "w:history": "1" });
202
+ for (const c of inl.children ?? [])
203
+ writeInline(w, c, _doc);
204
+ w.close();
205
+ }
206
+ else if (inl.type === "hard-break") {
207
+ w.open("w:r").selfClose("w:br").close();
208
+ }
209
+ else if (inl.type === "inline-image") {
210
+ w.open("w:r").open("w:t").text(`[image ${inl.assetId}]`).close().close();
211
+ }
212
+ else if (inl.type === "equation") {
213
+ w.open("w:r");
214
+ w.open("w:rPr").selfClose("w:i").close();
215
+ w.open("w:t", { "xml:space": "preserve" }).text(`$${inl.latex}$`).close().close();
216
+ }
217
+ }
218
+ //# sourceMappingURL=document-xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-xml.js","sourceRoot":"","sources":["../../../src/export/docx/document-xml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { PortableDocument } from "../../core/model/types.js";
2
+ export declare function buildContentTypes(doc: PortableDocument): string;
3
+ export declare function buildRels(): string;
4
+ export declare function buildDocRels(doc: PortableDocument): string;
5
+ export declare function buildStyles(): string;
6
+ export declare function buildSettings(): string;
7
+ export declare function buildCoreProps(doc: PortableDocument): string;
8
+ export declare function buildAppProps(): string;
9
+ //# sourceMappingURL=package-parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-parts.d.ts","sourceRoot":"","sources":["../../../src/export/docx/package-parts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAsB7D;AAEH,wBAAgB,SAAS,IAAI,MAAM,CAYhC;AAEH,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAmBxD;AAEH,wBAAgB,WAAW,IAAI,MAAM,CAQlC;AAEH,wBAAgB,aAAa,IAAI,MAAM,CAIpC;AAEH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAY1D;AAEH,wBAAgB,aAAa,IAAI,MAAM,CAKpC"}
@@ -0,0 +1,91 @@
1
+ import { XmlWriter } from "../xml/writer.js";
2
+ export function buildContentTypes(doc) {
3
+ const w = new XmlWriter().declaration();
4
+ w.open("Types", { xmlns: "http://schemas.openxmlformats.org/package/2006/content-types" });
5
+ w.selfClose("Default", { Extension: "rels", ContentType: "application/vnd.openxmlformats-package.relationships+xml" });
6
+ w.selfClose("Default", { Extension: "xml", ContentType: "application/xml" });
7
+ w.selfClose("Override", { PartName: "/word/document.xml", ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" });
8
+ w.selfClose("Override", { PartName: "/word/styles.xml", ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" });
9
+ w.selfClose("Override", { PartName: "/word/settings.xml", ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" });
10
+ w.selfClose("Override", { PartName: "/docProps/core.xml", ContentType: "application/vnd.openxmlformats-package.core-properties+xml" });
11
+ w.selfClose("Override", { PartName: "/docProps/app.xml", ContentType: "application/vnd.openxmlformats-officedocument.extended-properties+xml" });
12
+ const exts = new Set();
13
+ for (const a of Object.values(doc.assets ?? {})) {
14
+ const fallback = a.mediaType === "image/svg+xml" || a.mediaType === "image/webp";
15
+ const ext = fallback ? "png" : a.mediaType.split("/")[1].replace("jpeg", "jpg").replace("svg+xml", "svg");
16
+ if (!exts.has(ext)) {
17
+ exts.add(ext);
18
+ const ct = fallback ? "image/png" : (a.mediaType === "image/svg+xml" ? "image/svg+xml" : `image/${ext}`);
19
+ w.selfClose("Default", { Extension: ext, ContentType: ct });
20
+ }
21
+ }
22
+ w.close();
23
+ return w.toString();
24
+ }
25
+ export function buildRels() {
26
+ const w = new XmlWriter().declaration();
27
+ w.open("Relationships", { xmlns: "http://schemas.openxmlformats.org/package/2006/relationships" });
28
+ w.selfClose("Relationship", {
29
+ Id: "rId1",
30
+ Type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
31
+ Target: "word/document.xml",
32
+ });
33
+ w.selfClose("Relationship", { Id: "rId2", Type: "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties", Target: "docProps/core.xml" });
34
+ w.selfClose("Relationship", { Id: "rId3", Type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties", Target: "docProps/app.xml" });
35
+ w.close();
36
+ return w.toString();
37
+ }
38
+ export function buildDocRels(doc) {
39
+ const w = new XmlWriter().declaration();
40
+ w.open("Relationships", { xmlns: "http://schemas.openxmlformats.org/package/2006/relationships" });
41
+ let id = 1;
42
+ for (const [assetId] of Object.entries(doc.assets ?? {})) {
43
+ const asset = doc.assets[assetId];
44
+ const fallback = asset.mediaType === "image/svg+xml" || asset.mediaType === "image/webp";
45
+ const ext = fallback ? "png" : asset.mediaType.split("/")[1].replace("jpeg", "jpg").replace("svg+xml", "svg");
46
+ w.selfClose("Relationship", {
47
+ Id: `rId_${assetId}`,
48
+ Type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
49
+ Target: `media/${assetId}.${ext}`,
50
+ });
51
+ id++;
52
+ }
53
+ // hyperlinks
54
+ // collected via walk? simplified
55
+ w.close();
56
+ return w.toString();
57
+ }
58
+ export function buildStyles() {
59
+ const w = new XmlWriter().declaration();
60
+ w.open("w:styles", { "xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main" });
61
+ for (const name of ["Normal", "Heading1", "Heading2", "Quote"]) {
62
+ w.open("w:style", { "w:type": "paragraph", "w:styleId": name }).open("w:name", { "w:val": name }).close().close();
63
+ }
64
+ w.close();
65
+ return w.toString();
66
+ }
67
+ export function buildSettings() {
68
+ const w = new XmlWriter().declaration();
69
+ w.open("w:settings", { "xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main" }).close();
70
+ return w.toString();
71
+ }
72
+ export function buildCoreProps(doc) {
73
+ const w = new XmlWriter().declaration();
74
+ w.open("cp:coreProperties", {
75
+ "xmlns:cp": "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
76
+ "xmlns:dc": "http://purl.org/dc/elements/1.1/",
77
+ "xmlns:dcterms": "http://purl.org/dc/terms/",
78
+ });
79
+ w.open("dc:title").text(doc.metadata?.title ?? "Untitled").close();
80
+ w.open("dcterms:created", { "xsi:type": "dcterms:W3CDTF" }).text(doc.createdAt).close();
81
+ w.open("dcterms:modified", { "xsi:type": "dcterms:W3CDTF" }).text(doc.updatedAt).close();
82
+ w.close();
83
+ return w.toString();
84
+ }
85
+ export function buildAppProps() {
86
+ const w = new XmlWriter().declaration();
87
+ w.open("Properties", { xmlns: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" });
88
+ w.open("Application").text("velo-text").close().close();
89
+ return w.toString();
90
+ }
91
+ //# sourceMappingURL=package-parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-parts.js","sourceRoot":"","sources":["../../../src/export/docx/package-parts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { PortableDocument, BinarySink, Clock } from "../../core/model/types.js";
2
+ interface ResolvedAssetStub {
3
+ id: string;
4
+ mediaType: string;
5
+ data?: Uint8Array;
6
+ }
7
+ export declare class DocxWriter {
8
+ private readonly clock;
9
+ constructor(opts?: {
10
+ clock?: Clock;
11
+ });
12
+ write(document: PortableDocument, assets: Record<string, ResolvedAssetStub> | null, sink: BinarySink): Promise<{
13
+ byteLength: number;
14
+ }>;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../src/export/docx/writer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAcrF,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAClB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAO;IAIlC,KAAK,CACT,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAChD,IAAI,EAAE,UAAU,GACf,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAiCnC"}