@doxi/core 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -0
  3. package/dist/collab/port.d.ts +46 -0
  4. package/dist/collab/port.d.ts.map +1 -0
  5. package/dist/collab/port.js +11 -0
  6. package/dist/collab/port.js.map +1 -0
  7. package/dist/commands/block-commands.d.ts +62 -0
  8. package/dist/commands/block-commands.d.ts.map +1 -0
  9. package/dist/commands/block-commands.js +208 -0
  10. package/dist/commands/block-commands.js.map +1 -0
  11. package/dist/commands/command.d.ts +13 -0
  12. package/dist/commands/command.d.ts.map +1 -0
  13. package/dist/commands/command.js +13 -0
  14. package/dist/commands/command.js.map +1 -0
  15. package/dist/commands/edit-commands.d.ts +5 -0
  16. package/dist/commands/edit-commands.d.ts.map +1 -0
  17. package/dist/commands/edit-commands.js +147 -0
  18. package/dist/commands/edit-commands.js.map +1 -0
  19. package/dist/commands/image-commands.d.ts +31 -0
  20. package/dist/commands/image-commands.d.ts.map +1 -0
  21. package/dist/commands/image-commands.js +130 -0
  22. package/dist/commands/image-commands.js.map +1 -0
  23. package/dist/commands/index.d.ts +11 -0
  24. package/dist/commands/index.d.ts.map +1 -0
  25. package/dist/commands/index.js +11 -0
  26. package/dist/commands/index.js.map +1 -0
  27. package/dist/commands/keymap.d.ts +34 -0
  28. package/dist/commands/keymap.d.ts.map +1 -0
  29. package/dist/commands/keymap.js +84 -0
  30. package/dist/commands/keymap.js.map +1 -0
  31. package/dist/commands/link-commands.d.ts +54 -0
  32. package/dist/commands/link-commands.d.ts.map +1 -0
  33. package/dist/commands/link-commands.js +151 -0
  34. package/dist/commands/link-commands.js.map +1 -0
  35. package/dist/commands/list-commands.d.ts +42 -0
  36. package/dist/commands/list-commands.d.ts.map +1 -0
  37. package/dist/commands/list-commands.js +316 -0
  38. package/dist/commands/list-commands.js.map +1 -0
  39. package/dist/commands/mark-commands.d.ts +53 -0
  40. package/dist/commands/mark-commands.d.ts.map +1 -0
  41. package/dist/commands/mark-commands.js +181 -0
  42. package/dist/commands/mark-commands.js.map +1 -0
  43. package/dist/commands/selection-commands.d.ts +3 -0
  44. package/dist/commands/selection-commands.d.ts.map +1 -0
  45. package/dist/commands/selection-commands.js +11 -0
  46. package/dist/commands/selection-commands.js.map +1 -0
  47. package/dist/commands/table-commands.d.ts +109 -0
  48. package/dist/commands/table-commands.d.ts.map +1 -0
  49. package/dist/commands/table-commands.js +884 -0
  50. package/dist/commands/table-commands.js.map +1 -0
  51. package/dist/history/history.d.ts +40 -0
  52. package/dist/history/history.d.ts.map +1 -0
  53. package/dist/history/history.js +139 -0
  54. package/dist/history/history.js.map +1 -0
  55. package/dist/history/index.d.ts +2 -0
  56. package/dist/history/index.d.ts.map +1 -0
  57. package/dist/history/index.js +2 -0
  58. package/dist/history/index.js.map +1 -0
  59. package/dist/html/index.d.ts +3 -0
  60. package/dist/html/index.d.ts.map +1 -0
  61. package/dist/html/index.js +3 -0
  62. package/dist/html/index.js.map +1 -0
  63. package/dist/html/parse.d.ts +4 -0
  64. package/dist/html/parse.d.ts.map +1 -0
  65. package/dist/html/parse.js +0 -0
  66. package/dist/html/parse.js.map +1 -0
  67. package/dist/html/serialize.d.ts +4 -0
  68. package/dist/html/serialize.d.ts.map +1 -0
  69. package/dist/html/serialize.js +75 -0
  70. package/dist/html/serialize.js.map +1 -0
  71. package/dist/index.d.ts +13 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +13 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/layout/index.d.ts +6 -0
  76. package/dist/layout/index.d.ts.map +1 -0
  77. package/dist/layout/index.js +6 -0
  78. package/dist/layout/index.js.map +1 -0
  79. package/dist/layout/layout-engine.d.ts +20 -0
  80. package/dist/layout/layout-engine.d.ts.map +1 -0
  81. package/dist/layout/layout-engine.js +198 -0
  82. package/dist/layout/layout-engine.js.map +1 -0
  83. package/dist/layout/measure.d.ts +9 -0
  84. package/dist/layout/measure.d.ts.map +1 -0
  85. package/dist/layout/measure.js +37 -0
  86. package/dist/layout/measure.js.map +1 -0
  87. package/dist/layout/split-paragraph.d.ts +28 -0
  88. package/dist/layout/split-paragraph.d.ts.map +1 -0
  89. package/dist/layout/split-paragraph.js +122 -0
  90. package/dist/layout/split-paragraph.js.map +1 -0
  91. package/dist/layout/split-table.d.ts +46 -0
  92. package/dist/layout/split-table.d.ts.map +1 -0
  93. package/dist/layout/split-table.js +84 -0
  94. package/dist/layout/split-table.js.map +1 -0
  95. package/dist/layout/types.d.ts +73 -0
  96. package/dist/layout/types.d.ts.map +1 -0
  97. package/dist/layout/types.js +36 -0
  98. package/dist/layout/types.js.map +1 -0
  99. package/dist/layout/widow-orphan.d.ts +15 -0
  100. package/dist/layout/widow-orphan.d.ts.map +1 -0
  101. package/dist/layout/widow-orphan.js +14 -0
  102. package/dist/layout/widow-orphan.js.map +1 -0
  103. package/dist/model/content-expr.d.ts +32 -0
  104. package/dist/model/content-expr.d.ts.map +1 -0
  105. package/dist/model/content-expr.js +106 -0
  106. package/dist/model/content-expr.js.map +1 -0
  107. package/dist/model/fragment.d.ts +17 -0
  108. package/dist/model/fragment.d.ts.map +1 -0
  109. package/dist/model/fragment.js +44 -0
  110. package/dist/model/fragment.js.map +1 -0
  111. package/dist/model/index.d.ts +10 -0
  112. package/dist/model/index.d.ts.map +1 -0
  113. package/dist/model/index.js +10 -0
  114. package/dist/model/index.js.map +1 -0
  115. package/dist/model/mark.d.ts +35 -0
  116. package/dist/model/mark.d.ts.map +1 -0
  117. package/dist/model/mark.js +89 -0
  118. package/dist/model/mark.js.map +1 -0
  119. package/dist/model/node-type.d.ts +36 -0
  120. package/dist/model/node-type.d.ts.map +1 -0
  121. package/dist/model/node-type.js +14 -0
  122. package/dist/model/node-type.js.map +1 -0
  123. package/dist/model/node.d.ts +36 -0
  124. package/dist/model/node.d.ts.map +1 -0
  125. package/dist/model/node.js +192 -0
  126. package/dist/model/node.js.map +1 -0
  127. package/dist/model/position.d.ts +66 -0
  128. package/dist/model/position.d.ts.map +1 -0
  129. package/dist/model/position.js +158 -0
  130. package/dist/model/position.js.map +1 -0
  131. package/dist/model/schema.d.ts +28 -0
  132. package/dist/model/schema.d.ts.map +1 -0
  133. package/dist/model/schema.js +195 -0
  134. package/dist/model/schema.js.map +1 -0
  135. package/dist/model/slice.d.ts +26 -0
  136. package/dist/model/slice.d.ts.map +1 -0
  137. package/dist/model/slice.js +56 -0
  138. package/dist/model/slice.js.map +1 -0
  139. package/dist/model/table-grid.d.ts +71 -0
  140. package/dist/model/table-grid.d.ts.map +1 -0
  141. package/dist/model/table-grid.js +130 -0
  142. package/dist/model/table-grid.js.map +1 -0
  143. package/dist/plugin/index.d.ts +3 -0
  144. package/dist/plugin/index.d.ts.map +1 -0
  145. package/dist/plugin/index.js +3 -0
  146. package/dist/plugin/index.js.map +1 -0
  147. package/dist/plugin/plugin-key.d.ts +13 -0
  148. package/dist/plugin/plugin-key.d.ts.map +1 -0
  149. package/dist/plugin/plugin-key.js +13 -0
  150. package/dist/plugin/plugin-key.js.map +1 -0
  151. package/dist/plugin/plugin-state.d.ts +2 -0
  152. package/dist/plugin/plugin-state.d.ts.map +1 -0
  153. package/dist/plugin/plugin-state.js +3 -0
  154. package/dist/plugin/plugin-state.js.map +1 -0
  155. package/dist/plugin/plugin.d.ts +39 -0
  156. package/dist/plugin/plugin.d.ts.map +1 -0
  157. package/dist/plugin/plugin.js +10 -0
  158. package/dist/plugin/plugin.js.map +1 -0
  159. package/dist/schema/default.d.ts +163 -0
  160. package/dist/schema/default.d.ts.map +1 -0
  161. package/dist/schema/default.js +94 -0
  162. package/dist/schema/default.js.map +1 -0
  163. package/dist/schema/index.d.ts +2 -0
  164. package/dist/schema/index.d.ts.map +1 -0
  165. package/dist/schema/index.js +2 -0
  166. package/dist/schema/index.js.map +1 -0
  167. package/dist/serialize/index.d.ts +2 -0
  168. package/dist/serialize/index.d.ts.map +1 -0
  169. package/dist/serialize/index.js +2 -0
  170. package/dist/serialize/index.js.map +1 -0
  171. package/dist/serialize/json.d.ts +15 -0
  172. package/dist/serialize/json.d.ts.map +1 -0
  173. package/dist/serialize/json.js +23 -0
  174. package/dist/serialize/json.js.map +1 -0
  175. package/dist/state/all-selection.d.ts +11 -0
  176. package/dist/state/all-selection.d.ts.map +1 -0
  177. package/dist/state/all-selection.js +17 -0
  178. package/dist/state/all-selection.js.map +1 -0
  179. package/dist/state/cell-selection.d.ts +30 -0
  180. package/dist/state/cell-selection.d.ts.map +1 -0
  181. package/dist/state/cell-selection.js +38 -0
  182. package/dist/state/cell-selection.js.map +1 -0
  183. package/dist/state/editor-state.d.ts +46 -0
  184. package/dist/state/editor-state.d.ts.map +1 -0
  185. package/dist/state/editor-state.js +211 -0
  186. package/dist/state/editor-state.js.map +1 -0
  187. package/dist/state/index.d.ts +7 -0
  188. package/dist/state/index.d.ts.map +1 -0
  189. package/dist/state/index.js +7 -0
  190. package/dist/state/index.js.map +1 -0
  191. package/dist/state/node-selection.d.ts +16 -0
  192. package/dist/state/node-selection.d.ts.map +1 -0
  193. package/dist/state/node-selection.js +51 -0
  194. package/dist/state/node-selection.js.map +1 -0
  195. package/dist/state/selection.d.ts +29 -0
  196. package/dist/state/selection.d.ts.map +1 -0
  197. package/dist/state/selection.js +24 -0
  198. package/dist/state/selection.js.map +1 -0
  199. package/dist/state/text-selection.d.ts +10 -0
  200. package/dist/state/text-selection.d.ts.map +1 -0
  201. package/dist/state/text-selection.js +26 -0
  202. package/dist/state/text-selection.js.map +1 -0
  203. package/dist/transform/attr-step.d.ts +16 -0
  204. package/dist/transform/attr-step.d.ts.map +1 -0
  205. package/dist/transform/attr-step.js +98 -0
  206. package/dist/transform/attr-step.js.map +1 -0
  207. package/dist/transform/index.d.ts +10 -0
  208. package/dist/transform/index.d.ts.map +1 -0
  209. package/dist/transform/index.js +10 -0
  210. package/dist/transform/index.js.map +1 -0
  211. package/dist/transform/mapping.d.ts +44 -0
  212. package/dist/transform/mapping.d.ts.map +1 -0
  213. package/dist/transform/mapping.js +101 -0
  214. package/dist/transform/mapping.js.map +1 -0
  215. package/dist/transform/mark-step.d.ts +27 -0
  216. package/dist/transform/mark-step.d.ts.map +1 -0
  217. package/dist/transform/mark-step.js +146 -0
  218. package/dist/transform/mark-step.js.map +1 -0
  219. package/dist/transform/replace-around-step.d.ts +35 -0
  220. package/dist/transform/replace-around-step.d.ts.map +1 -0
  221. package/dist/transform/replace-around-step.js +144 -0
  222. package/dist/transform/replace-around-step.js.map +1 -0
  223. package/dist/transform/replace-step.d.ts +17 -0
  224. package/dist/transform/replace-step.d.ts.map +1 -0
  225. package/dist/transform/replace-step.js +72 -0
  226. package/dist/transform/replace-step.js.map +1 -0
  227. package/dist/transform/replace.d.ts +18 -0
  228. package/dist/transform/replace.d.ts.map +1 -0
  229. package/dist/transform/replace.js +132 -0
  230. package/dist/transform/replace.js.map +1 -0
  231. package/dist/transform/set-page-meta-step.d.ts +42 -0
  232. package/dist/transform/set-page-meta-step.d.ts.map +1 -0
  233. package/dist/transform/set-page-meta-step.js +75 -0
  234. package/dist/transform/set-page-meta-step.js.map +1 -0
  235. package/dist/transform/step.d.ts +34 -0
  236. package/dist/transform/step.d.ts.map +1 -0
  237. package/dist/transform/step.js +23 -0
  238. package/dist/transform/step.js.map +1 -0
  239. package/dist/transform/transaction.d.ts +20 -0
  240. package/dist/transform/transaction.d.ts.map +1 -0
  241. package/dist/transform/transaction.js +38 -0
  242. package/dist/transform/transaction.js.map +1 -0
  243. package/dist/version.d.ts +2 -0
  244. package/dist/version.d.ts.map +1 -0
  245. package/dist/version.js +5 -0
  246. package/dist/version.js.map +1 -0
  247. package/dist/view/cell-drag.d.ts +33 -0
  248. package/dist/view/cell-drag.d.ts.map +1 -0
  249. package/dist/view/cell-drag.js +177 -0
  250. package/dist/view/cell-drag.js.map +1 -0
  251. package/dist/view/clipboard.d.ts +5 -0
  252. package/dist/view/clipboard.d.ts.map +1 -0
  253. package/dist/view/clipboard.js +97 -0
  254. package/dist/view/clipboard.js.map +1 -0
  255. package/dist/view/default-renderer.d.ts +3 -0
  256. package/dist/view/default-renderer.d.ts.map +1 -0
  257. package/dist/view/default-renderer.js +142 -0
  258. package/dist/view/default-renderer.js.map +1 -0
  259. package/dist/view/dom-spec.d.ts +11 -0
  260. package/dist/view/dom-spec.d.ts.map +1 -0
  261. package/dist/view/dom-spec.js +32 -0
  262. package/dist/view/dom-spec.js.map +1 -0
  263. package/dist/view/editor-view.d.ts +55 -0
  264. package/dist/view/editor-view.d.ts.map +1 -0
  265. package/dist/view/editor-view.js +143 -0
  266. package/dist/view/editor-view.js.map +1 -0
  267. package/dist/view/image-resize.d.ts +37 -0
  268. package/dist/view/image-resize.d.ts.map +1 -0
  269. package/dist/view/image-resize.js +191 -0
  270. package/dist/view/image-resize.js.map +1 -0
  271. package/dist/view/index.d.ts +15 -0
  272. package/dist/view/index.d.ts.map +1 -0
  273. package/dist/view/index.js +15 -0
  274. package/dist/view/index.js.map +1 -0
  275. package/dist/view/input-pipeline.d.ts +24 -0
  276. package/dist/view/input-pipeline.d.ts.map +1 -0
  277. package/dist/view/input-pipeline.js +226 -0
  278. package/dist/view/input-pipeline.js.map +1 -0
  279. package/dist/view/mutation-observer.d.ts +17 -0
  280. package/dist/view/mutation-observer.d.ts.map +1 -0
  281. package/dist/view/mutation-observer.js +62 -0
  282. package/dist/view/mutation-observer.js.map +1 -0
  283. package/dist/view/page-slots.d.ts +56 -0
  284. package/dist/view/page-slots.d.ts.map +1 -0
  285. package/dist/view/page-slots.js +230 -0
  286. package/dist/view/page-slots.js.map +1 -0
  287. package/dist/view/paginator.d.ts +17 -0
  288. package/dist/view/paginator.d.ts.map +1 -0
  289. package/dist/view/paginator.js +93 -0
  290. package/dist/view/paginator.js.map +1 -0
  291. package/dist/view/print.d.ts +42 -0
  292. package/dist/view/print.d.ts.map +1 -0
  293. package/dist/view/print.js +70 -0
  294. package/dist/view/print.js.map +1 -0
  295. package/dist/view/reconcile.d.ts +16 -0
  296. package/dist/view/reconcile.d.ts.map +1 -0
  297. package/dist/view/reconcile.js +158 -0
  298. package/dist/view/reconcile.js.map +1 -0
  299. package/dist/view/renderer.d.ts +31 -0
  300. package/dist/view/renderer.d.ts.map +1 -0
  301. package/dist/view/renderer.js +89 -0
  302. package/dist/view/renderer.js.map +1 -0
  303. package/dist/view/selection-sync.d.ts +35 -0
  304. package/dist/view/selection-sync.d.ts.map +1 -0
  305. package/dist/view/selection-sync.js +324 -0
  306. package/dist/view/selection-sync.js.map +1 -0
  307. package/dist/view/table-resize.d.ts +41 -0
  308. package/dist/view/table-resize.d.ts.map +1 -0
  309. package/dist/view/table-resize.js +216 -0
  310. package/dist/view/table-resize.js.map +1 -0
  311. package/package.json +93 -0
  312. package/styles/base.css +269 -0
  313. package/styles/dark.css +36 -0
  314. package/styles/light.css +13 -0
  315. package/styles/page.css +93 -0
  316. package/styles/print-a4.css +87 -0
  317. package/styles/print.css +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/model/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Fragment } from './fragment.js';
2
+ import { DxNode, type NodeJSON } from './node.js';
3
+ import type { Schema } from './schema.js';
4
+ export interface SliceJSON {
5
+ content: NodeJSON[];
6
+ openStart: number;
7
+ openEnd: number;
8
+ }
9
+ export declare class Slice {
10
+ readonly content: Fragment;
11
+ readonly openStart: number;
12
+ readonly openEnd: number;
13
+ static readonly empty: Slice;
14
+ constructor(content: Fragment, openStart: number, openEnd: number);
15
+ /** Total token size of the slice. openStart/openEnd subtract boundary tokens that aren't really there. */
16
+ get size(): number;
17
+ toJSON(): SliceJSON;
18
+ static fromJSON(schema: Schema, json: SliceJSON): Slice;
19
+ }
20
+ /**
21
+ * Extracts a slice of `root` between absolute positions `from` and `to`.
22
+ * v0.1 implementation: only supports same-depth slices (sufficient for inline paste/cut).
23
+ * Deeper structural slicing arrives in Track B alongside ReplaceStep.
24
+ */
25
+ export declare function sliceBetween(root: DxNode, from: number, to: number): Slice;
26
+ //# sourceMappingURL=slice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/model/slice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,QAAQ,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,KAAK;IAId,QAAQ,CAAC,OAAO,EAAE,QAAQ;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAL1B,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAkC;gBAG5C,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;IAG1B,0GAA0G;IAC1G,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,SAAS;IAQnB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK;CAQxD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,CAe1E"}
@@ -0,0 +1,56 @@
1
+ import { Fragment } from './fragment.js';
2
+ import { DxNode } from './node.js';
3
+ import { resolve } from './position.js';
4
+ export class Slice {
5
+ content;
6
+ openStart;
7
+ openEnd;
8
+ static empty = new Slice(Fragment.empty, 0, 0);
9
+ constructor(content, openStart, openEnd) {
10
+ this.content = content;
11
+ this.openStart = openStart;
12
+ this.openEnd = openEnd;
13
+ }
14
+ /** Total token size of the slice. openStart/openEnd subtract boundary tokens that aren't really there. */
15
+ get size() {
16
+ return this.content.size - this.openStart - this.openEnd;
17
+ }
18
+ toJSON() {
19
+ return {
20
+ content: this.content.children.map((c) => c.toJSON()),
21
+ openStart: this.openStart,
22
+ openEnd: this.openEnd,
23
+ };
24
+ }
25
+ static fromJSON(schema, json) {
26
+ const types = {};
27
+ for (const name of Object.keys(schema.nodes)) {
28
+ types[name] = schema.nodes[name];
29
+ }
30
+ const children = json.content.map((c) => DxNode.fromJSON(types, c));
31
+ return new Slice(Fragment.from(children), json.openStart, json.openEnd);
32
+ }
33
+ }
34
+ /**
35
+ * Extracts a slice of `root` between absolute positions `from` and `to`.
36
+ * v0.1 implementation: only supports same-depth slices (sufficient for inline paste/cut).
37
+ * Deeper structural slicing arrives in Track B alongside ReplaceStep.
38
+ */
39
+ export function sliceBetween(root, from, to) {
40
+ if (from === to)
41
+ return Slice.empty;
42
+ if (from > to)
43
+ throw new RangeError('sliceBetween: from must be <= to');
44
+ const rFrom = resolve(root, from);
45
+ const rTo = resolve(root, to);
46
+ if (rFrom.depth !== rTo.depth) {
47
+ throw new Error('sliceBetween: v0.1 supports same-depth slices only (Track B will lift this)');
48
+ }
49
+ const depth = rFrom.depth;
50
+ const parent = rFrom.parent;
51
+ const a = rFrom.parentOffset;
52
+ const b = rTo.parentOffset;
53
+ const cut = parent.cut(a, b);
54
+ return new Slice(cut.content, depth, depth);
55
+ }
56
+ //# sourceMappingURL=slice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/model/slice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,EAAiB,MAAM,WAAW,CAAA;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AASvC,MAAM,OAAO,KAAK;IAIL;IACA;IACA;IALX,MAAM,CAAU,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAEvD,YACW,OAAiB,EACjB,SAAiB,EACjB,OAAe;QAFf,YAAO,GAAP,OAAO,CAAU;QACjB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;IACvB,CAAC;IAEJ,0GAA0G;IAC1G,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAA;IAC1D,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAY,CAAC,MAAM,EAAE,CAAC;YACjE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAe;QAC7C,MAAM,KAAK,GAA6B,EAAE,CAAA;QAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,KAAkC,CAAC,IAAI,CAAE,CAAA;QACjE,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QACnE,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACzE,CAAC;;AAGH;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,EAAU;IACjE,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC,KAAK,CAAA;IACnC,IAAI,IAAI,GAAG,EAAE;QAAE,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAA;IAEvE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;IAChG,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,CAAA;IAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAA;IAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5B,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAC7C,CAAC"}
@@ -0,0 +1,71 @@
1
+ import type { DxNode } from './node.js';
2
+ /**
3
+ * tableGrid — build a logical grid view of a `table` node, accounting for
4
+ * `colspan` and `rowspan` on each cell.
5
+ *
6
+ * The grid is logical: every (row, col) coordinate is mapped to a single
7
+ * master cell. Spanned coordinates resolve to the same master.
8
+ *
9
+ * Used by CellSelection-aware commands (merge, split, per-cell ops) and by
10
+ * column-resize math when spans are present.
11
+ */
12
+ export interface TableGridCell {
13
+ readonly node: DxNode;
14
+ /** Absolute model position of this cell's [open] token in the doc. */
15
+ readonly pos: number;
16
+ /** Logical row index (0-based) of the cell's MASTER (top-left) slot. */
17
+ readonly row: number;
18
+ /** Logical column index (0-based) of the cell's MASTER (top-left) slot. */
19
+ readonly col: number;
20
+ readonly rowspan: number;
21
+ readonly colspan: number;
22
+ }
23
+ export interface TableGrid {
24
+ readonly rows: number;
25
+ readonly cols: number;
26
+ /** All distinct cells in document order. */
27
+ readonly cells: ReadonlyArray<TableGridCell>;
28
+ /**
29
+ * Returns the cell occupying (row, col) — for spanned cells, this is the
30
+ * MASTER cell. Returns null when (row, col) is out of range.
31
+ */
32
+ cellAt(row: number, col: number): TableGridCell | null;
33
+ /**
34
+ * Returns the model positions of every distinct cell whose master lies
35
+ * within the rectangle `[r0..r1] x [c0..c1]` (inclusive). Used by
36
+ * CellSelection-aware operations to enumerate the selected cells.
37
+ *
38
+ * Cells whose masters sit OUTSIDE the rectangle but whose spans intrude
39
+ * into it are NOT included by this helper. Track A is expected to widen
40
+ * the rect first (see notes in cell-selection.ts) before calling.
41
+ */
42
+ cellPositionsInRect(r0: number, r1: number, c0: number, c1: number): number[];
43
+ /** Find a cell by its master position. Returns null if not present. */
44
+ byPos(pos: number): TableGridCell | null;
45
+ }
46
+ /**
47
+ * Build a logical grid from a `table` node. `tableStart` is the absolute
48
+ * model position of the table's [open] token. Cell positions emitted by the
49
+ * grid are absolute model positions of each cell's [open] token.
50
+ *
51
+ * Algorithm — top-to-bottom row walk + free-column scan:
52
+ * - Maintain a 2D `occupied[row][col]` matrix.
53
+ * - For each row r, walk that row's child cells in document order. For
54
+ * each cell, find the next free column c (scanning left-to-right). Plant
55
+ * the master cell at (r, c) and mark every slot in the rowspan x colspan
56
+ * rectangle as occupied by that master's index.
57
+ * - This handles colspans (cells skip over their own slots in the same
58
+ * row) and rowspans (subsequent rows pre-skip the occupied slots).
59
+ *
60
+ * Why this approach: it mirrors how spans are stored in HTML (per-row child
61
+ * lists, masters live in the row where they begin) and matches how
62
+ * ProseMirror's table grid is computed. It is O(rows x cols) time and
63
+ * O(rows x cols) space, which is fine for any realistic table.
64
+ *
65
+ * If the input is malformed (e.g. spans that would overflow `cols`), we
66
+ * widen `cols` greedily as new masters force the issue. This keeps the
67
+ * function total — callers can decide whether to consider the result
68
+ * pathological.
69
+ */
70
+ export declare function tableGrid(table: DxNode, tableStart: number): TableGrid;
71
+ //# sourceMappingURL=table-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-grid.d.ts","sourceRoot":"","sources":["../../src/model/table-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC5C;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAAA;IACtD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7E,uEAAuE;IACvE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAAA;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAsGtE"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Build a logical grid from a `table` node. `tableStart` is the absolute
3
+ * model position of the table's [open] token. Cell positions emitted by the
4
+ * grid are absolute model positions of each cell's [open] token.
5
+ *
6
+ * Algorithm — top-to-bottom row walk + free-column scan:
7
+ * - Maintain a 2D `occupied[row][col]` matrix.
8
+ * - For each row r, walk that row's child cells in document order. For
9
+ * each cell, find the next free column c (scanning left-to-right). Plant
10
+ * the master cell at (r, c) and mark every slot in the rowspan x colspan
11
+ * rectangle as occupied by that master's index.
12
+ * - This handles colspans (cells skip over their own slots in the same
13
+ * row) and rowspans (subsequent rows pre-skip the occupied slots).
14
+ *
15
+ * Why this approach: it mirrors how spans are stored in HTML (per-row child
16
+ * lists, masters live in the row where they begin) and matches how
17
+ * ProseMirror's table grid is computed. It is O(rows x cols) time and
18
+ * O(rows x cols) space, which is fine for any realistic table.
19
+ *
20
+ * If the input is malformed (e.g. spans that would overflow `cols`), we
21
+ * widen `cols` greedily as new masters force the issue. This keeps the
22
+ * function total — callers can decide whether to consider the result
23
+ * pathological.
24
+ */
25
+ export function tableGrid(table, tableStart) {
26
+ const rowCount = table.content.childCount;
27
+ const cells = [];
28
+ // 2D occupancy map storing the index into `cells` of the master that
29
+ // covers each slot. `-1` means free. We size lazily — each row pushes a
30
+ // fresh array sized to the current `cols`, then we may expand `cols` when
31
+ // a master forces a wider grid.
32
+ const occupied = [];
33
+ let cols = 0;
34
+ const ensureCols = (n) => {
35
+ if (n <= cols)
36
+ return;
37
+ for (const row of occupied) {
38
+ while (row.length < n)
39
+ row.push(-1);
40
+ }
41
+ cols = n;
42
+ };
43
+ // tableStart points at table[open]; first row[open] = tableStart + 1.
44
+ let rowOpenPos = tableStart + 1;
45
+ for (let r = 0; r < rowCount; r++) {
46
+ const row = table.content.child(r);
47
+ // Make sure the occupancy matrix has a row for this index.
48
+ if (occupied.length <= r) {
49
+ occupied.push(new Array(cols).fill(-1));
50
+ }
51
+ // row[open] sits at rowOpenPos; first cell[open] sits at rowOpenPos + 1.
52
+ let cellOpenPos = rowOpenPos + 1;
53
+ let scanCol = 0;
54
+ for (let cIdx = 0; cIdx < row.content.childCount; cIdx++) {
55
+ const cell = row.content.child(cIdx);
56
+ const colspan = Math.max(1, cell.attrs.colspan ?? 1);
57
+ const rowspan = Math.max(1, cell.attrs.rowspan ?? 1);
58
+ // Find the next free column in row r.
59
+ const rowOcc = occupied[r];
60
+ while (scanCol < cols && rowOcc[scanCol] !== -1)
61
+ scanCol++;
62
+ const masterCol = scanCol;
63
+ const masterRow = r;
64
+ // Grow cols if this master extends past the current width.
65
+ ensureCols(masterCol + colspan);
66
+ // Ensure occupancy rows exist down to masterRow + rowspan - 1.
67
+ while (occupied.length < masterRow + rowspan) {
68
+ occupied.push(new Array(cols).fill(-1));
69
+ }
70
+ const masterIdx = cells.length;
71
+ cells.push({
72
+ node: cell,
73
+ pos: cellOpenPos,
74
+ row: masterRow,
75
+ col: masterCol,
76
+ rowspan,
77
+ colspan,
78
+ });
79
+ // Mark occupancy across rowspan x colspan.
80
+ for (let dr = 0; dr < rowspan; dr++) {
81
+ const occRow = occupied[masterRow + dr];
82
+ for (let dc = 0; dc < colspan; dc++) {
83
+ occRow[masterCol + dc] = masterIdx;
84
+ }
85
+ }
86
+ // Advance scanCol past the just-planted master and beyond any
87
+ // pre-occupied slots that follow.
88
+ scanCol = masterCol + colspan;
89
+ cellOpenPos += cell.nodeSize;
90
+ }
91
+ rowOpenPos += row.nodeSize;
92
+ }
93
+ // Final logical row count = max(occupied.length, rowCount).
94
+ const rows = Math.max(occupied.length, rowCount);
95
+ // Pad any row arrays that are shorter than `cols` (only happens if we
96
+ // grew cols after adding the row).
97
+ for (const row of occupied) {
98
+ while (row.length < cols)
99
+ row.push(-1);
100
+ }
101
+ const byPosMap = new Map();
102
+ for (const c of cells)
103
+ byPosMap.set(c.pos, c);
104
+ return {
105
+ rows,
106
+ cols,
107
+ cells,
108
+ cellAt(row, col) {
109
+ if (row < 0 || row >= occupied.length || col < 0 || col >= cols)
110
+ return null;
111
+ const idx = occupied[row][col];
112
+ if (idx === undefined || idx === -1)
113
+ return null;
114
+ return cells[idx] ?? null;
115
+ },
116
+ cellPositionsInRect(r0, r1, c0, c1) {
117
+ const out = [];
118
+ for (const c of cells) {
119
+ if (c.row >= r0 && c.row <= r1 && c.col >= c0 && c.col <= c1) {
120
+ out.push(c.pos);
121
+ }
122
+ }
123
+ return out;
124
+ },
125
+ byPos(pos) {
126
+ return byPosMap.get(pos) ?? null;
127
+ },
128
+ };
129
+ }
130
+ //# sourceMappingURL=table-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-grid.js","sourceRoot":"","sources":["../../src/model/table-grid.ts"],"names":[],"mappings":"AAiDA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,UAAkB;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAA;IACzC,MAAM,KAAK,GAAoB,EAAE,CAAA;IACjC,qEAAqE;IACrE,wEAAwE;IACxE,0EAA0E;IAC1E,gCAAgC;IAChC,MAAM,QAAQ,GAAe,EAAE,CAAA;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;IAEZ,MAAM,UAAU,GAAG,CAAC,CAAS,EAAQ,EAAE;QACrC,IAAI,CAAC,IAAI,IAAI;YAAE,OAAM;QACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC;QACD,IAAI,GAAG,CAAC,CAAA;IACV,CAAC,CAAA;IAED,sEAAsE;IACtE,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAW,CAAA;QAC5C,2DAA2D;QAC3D,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC;QACD,yEAAyE;QACzE,IAAI,WAAW,GAAG,UAAU,GAAG,CAAC,CAAA;QAChC,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAW,CAAA;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAG,IAAI,CAAC,KAAK,CAAC,OAA8B,IAAI,CAAC,CAAC,CAAA;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAG,IAAI,CAAC,KAAK,CAAC,OAA8B,IAAI,CAAC,CAAC,CAAA;YAC5E,sCAAsC;YACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;YAC3B,OAAO,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAA;YAC1D,MAAM,SAAS,GAAG,OAAO,CAAA;YACzB,MAAM,SAAS,GAAG,CAAC,CAAA;YACnB,2DAA2D;YAC3D,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC,CAAA;YAC/B,+DAA+D;YAC/D,OAAO,QAAQ,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;gBAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzC,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,WAAW;gBAChB,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,SAAS;gBACd,OAAO;gBACP,OAAO;aACR,CAAC,CAAA;YACF,2CAA2C;YAC3C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAE,CAAA;gBACxC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;oBACpC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,SAAS,CAAA;gBACpC,CAAC;YACH,CAAC;YACD,8DAA8D;YAC9D,kCAAkC;YAClC,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;YAC7B,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAA;QAC9B,CAAC;QACD,UAAU,IAAI,GAAG,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED,4DAA4D;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAChD,sEAAsE;IACtE,mCAAmC;IACnC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAA;IACjD,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAE7C,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM,CAAC,GAAG,EAAE,GAAG;YACb,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;YAC5E,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAA;YAChD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;QAC3B,CAAC;QACD,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YAChC,MAAM,GAAG,GAAa,EAAE,CAAA;YACxB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;oBAC7D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,KAAK,CAAC,GAAG;YACP,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Plugin, type PluginSpec, type PluginStateSpec, type PluginInitConfig, type PluginViewProps } from './plugin.js';
2
+ export { PluginKey } from './plugin-key.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AACxH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { Plugin } from './plugin.js';
2
+ export { PluginKey } from './plugin-key.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsF,MAAM,aAAa,CAAA;AACxH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Typed identity for retrieving a plugin's state from an EditorState.
3
+ *
4
+ * Two PluginKeys with the same `name` are distinct identities — the `name` is
5
+ * purely for debugging.
6
+ */
7
+ export declare class PluginKey<T = unknown> {
8
+ readonly name: string;
9
+ constructor(name?: string);
10
+ /** Phantom marker to keep T inferred. Never accessed at runtime. */
11
+ readonly _t: T;
12
+ }
13
+ //# sourceMappingURL=plugin-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-key.d.ts","sourceRoot":"","sources":["../../src/plugin/plugin-key.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,SAAS,CAAC,CAAC,GAAG,OAAO;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,GAAE,MAAiB;IAC5C,oEAAoE;IACpE,SAAiB,EAAE,EAAE,CAAC,CAAA;CACvB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Typed identity for retrieving a plugin's state from an EditorState.
3
+ *
4
+ * Two PluginKeys with the same `name` are distinct identities — the `name` is
5
+ * purely for debugging.
6
+ */
7
+ export class PluginKey {
8
+ name;
9
+ constructor(name = 'plugin') {
10
+ this.name = name;
11
+ }
12
+ }
13
+ //# sourceMappingURL=plugin-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-key.js","sourceRoot":"","sources":["../../src/plugin/plugin-key.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,SAAS;IACC;IAArB,YAAqB,OAAe,QAAQ;QAAvB,SAAI,GAAJ,IAAI,CAAmB;IAAG,CAAC;CAGjD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugin-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-state.d.ts","sourceRoot":"","sources":["../../src/plugin/plugin-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ // Reserved for future plugin-state helpers (e.g. typed selectors). Empty in v0.1.
2
+ export {};
3
+ //# sourceMappingURL=plugin-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-state.js","sourceRoot":"","sources":["../../src/plugin/plugin-state.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,CAAA"}
@@ -0,0 +1,39 @@
1
+ import type { Transaction } from '../transform/transaction.js';
2
+ import type { PluginKey } from './plugin-key.js';
3
+ export interface PluginEditorStateView {
4
+ readonly doc: import('../model/node.js').DxNode;
5
+ readonly selection: import('../state/selection.js').Selection;
6
+ }
7
+ export interface PluginStateSpec<T> {
8
+ /** Compute the initial state value when a fresh EditorState is created. */
9
+ init(config: PluginInitConfig, state: PluginEditorStateView): T;
10
+ /** Compute the new state value when a transaction is applied. */
11
+ apply(tx: Transaction, value: T, oldState: PluginEditorStateView, newState: PluginEditorStateView): T;
12
+ /** Optional JSON encoders. If absent, the field is not serialized. */
13
+ toJSON?(value: T): unknown;
14
+ fromJSON?(config: PluginInitConfig, json: unknown, state: PluginEditorStateView): T;
15
+ }
16
+ export interface PluginInitConfig {
17
+ readonly schema: import('../model/schema.js').Schema;
18
+ readonly doc?: import('../model/node.js').DxNode;
19
+ readonly selection?: import('../state/selection.js').Selection;
20
+ }
21
+ export interface PluginViewProps {
22
+ /** Placeholder for Phase 5 — view-layer event handlers, decorations, nodeViews. */
23
+ readonly [k: string]: unknown;
24
+ }
25
+ export interface PluginSpec<T> {
26
+ readonly key: PluginKey<T>;
27
+ readonly state?: PluginStateSpec<T>;
28
+ /** Veto a transaction. Returning false drops the transaction; default is true. */
29
+ filterTransaction?(tx: Transaction, state: PluginEditorStateView): boolean;
30
+ /** React to a batch of transactions; may return a new transaction to apply. */
31
+ appendTransaction?(transactions: ReadonlyArray<Transaction>, oldState: PluginEditorStateView, newState: PluginEditorStateView): Transaction | null;
32
+ readonly props?: PluginViewProps;
33
+ }
34
+ export declare class Plugin<T = unknown> {
35
+ readonly spec: PluginSpec<T>;
36
+ constructor(spec: PluginSpec<T>);
37
+ get key(): PluginKey<T>;
38
+ }
39
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAIhD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,OAAO,kBAAkB,EAAE,MAAM,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,OAAO,uBAAuB,EAAE,SAAS,CAAA;CAC9D;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,2EAA2E;IAC3E,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,qBAAqB,GAAG,CAAC,CAAA;IAC/D,iEAAiE;IACjE,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,GAAG,CAAC,CAAA;IACrG,sEAAsE;IACtE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAA;IAC1B,QAAQ,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,GAAG,CAAC,CAAA;CACpF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,MAAM,CAAA;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,kBAAkB,EAAE,MAAM,CAAA;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,uBAAuB,EAAE,SAAS,CAAA;CAC/D;AAED,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;IACnC,kFAAkF;IAClF,iBAAiB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAA;IAC1E,+EAA+E;IAC/E,iBAAiB,CAAC,CAChB,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,EACxC,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,qBAAqB,GAC9B,WAAW,GAAG,IAAI,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;CACjC;AAED,qBAAa,MAAM,CAAC,CAAC,GAAG,OAAO;IACjB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;gBAAnB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACxC,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAEtB;CACF"}
@@ -0,0 +1,10 @@
1
+ export class Plugin {
2
+ spec;
3
+ constructor(spec) {
4
+ this.spec = spec;
5
+ }
6
+ get key() {
7
+ return this.spec.key;
8
+ }
9
+ }
10
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin/plugin.ts"],"names":[],"mappings":"AA6CA,MAAM,OAAO,MAAM;IACI;IAArB,YAAqB,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAC5C,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;IACtB,CAAC;CACF"}
@@ -0,0 +1,163 @@
1
+ import { Schema } from '../model/schema.js';
2
+ /**
3
+ * Default Doxiva v0.1 schema.
4
+ *
5
+ * Block nodes: doc, paragraph, heading (level 1-6), blockquote, list (ordered),
6
+ * list_item, hr. Tables arrive in v0.3.
7
+ *
8
+ * Inline nodes: text, image (atomic). Hard breaks are deferred to a later patch
9
+ * (no v0.1 keymap binds Shift+Enter yet).
10
+ *
11
+ * Marks: bold, italic, underline, link (href), color (value), font_size (px),
12
+ * font_family (name).
13
+ */
14
+ export declare const defaultSchema: Schema<{
15
+ doc: {
16
+ content: string;
17
+ };
18
+ paragraph: {
19
+ content: string;
20
+ group: string;
21
+ attrs: {
22
+ align: {
23
+ default: null;
24
+ };
25
+ lineHeight: {
26
+ default: null;
27
+ };
28
+ };
29
+ };
30
+ heading: {
31
+ content: string;
32
+ group: string;
33
+ attrs: {
34
+ level: {
35
+ default: number;
36
+ };
37
+ align: {
38
+ default: null;
39
+ };
40
+ lineHeight: {
41
+ default: null;
42
+ };
43
+ };
44
+ };
45
+ blockquote: {
46
+ content: string;
47
+ group: string;
48
+ };
49
+ list: {
50
+ content: string;
51
+ group: string;
52
+ attrs: {
53
+ ordered: {
54
+ default: boolean;
55
+ };
56
+ };
57
+ };
58
+ list_item: {
59
+ content: string;
60
+ };
61
+ hr: {
62
+ group: string;
63
+ isAtom: true;
64
+ };
65
+ page_break: {
66
+ group: string;
67
+ isAtom: true;
68
+ };
69
+ table: {
70
+ content: string;
71
+ group: string;
72
+ isolating: true;
73
+ };
74
+ table_row: {
75
+ content: string;
76
+ isolating: true;
77
+ attrs: {
78
+ header: {
79
+ default: boolean;
80
+ };
81
+ };
82
+ };
83
+ table_cell: {
84
+ content: string;
85
+ isolating: true;
86
+ attrs: {
87
+ widthPx: {
88
+ default: null;
89
+ };
90
+ background: {
91
+ default: null;
92
+ };
93
+ colspan: {
94
+ default: number;
95
+ };
96
+ rowspan: {
97
+ default: number;
98
+ };
99
+ };
100
+ };
101
+ text: {
102
+ group: string;
103
+ inline: true;
104
+ isText: true;
105
+ };
106
+ image: {
107
+ group: string;
108
+ inline: true;
109
+ isAtom: true;
110
+ attrs: {
111
+ src: {};
112
+ alt: {
113
+ default: string;
114
+ };
115
+ widthPx: {
116
+ default: null;
117
+ };
118
+ };
119
+ };
120
+ page_var: {
121
+ group: string;
122
+ inline: true;
123
+ isAtom: true;
124
+ attrs: {
125
+ kind: {};
126
+ };
127
+ };
128
+ }, {
129
+ bold: {};
130
+ italic: {};
131
+ underline: {};
132
+ link: {
133
+ attrs: {
134
+ href: {
135
+ default: string;
136
+ };
137
+ };
138
+ excludes: string;
139
+ };
140
+ color: {
141
+ attrs: {
142
+ value: {
143
+ default: string;
144
+ };
145
+ };
146
+ };
147
+ font_size: {
148
+ attrs: {
149
+ px: {
150
+ default: number;
151
+ };
152
+ };
153
+ };
154
+ font_family: {
155
+ attrs: {
156
+ name: {
157
+ default: string;
158
+ };
159
+ };
160
+ };
161
+ }>;
162
+ export type DefaultSchema = typeof defaultSchema;
163
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/schema/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+ExB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA"}