@rtif-sdk/web 1.0.0 → 1.3.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 (70) hide show
  1. package/dist/block-drag-handler.d.ts +5 -0
  2. package/dist/block-drag-handler.d.ts.map +1 -1
  3. package/dist/block-drag-handler.js +32 -3
  4. package/dist/block-drag-handler.js.map +1 -1
  5. package/dist/block-renderer.d.ts +12 -6
  6. package/dist/block-renderer.d.ts.map +1 -1
  7. package/dist/block-renderer.js +98 -9
  8. package/dist/block-renderer.js.map +1 -1
  9. package/dist/block-type-dropdown.d.ts +78 -0
  10. package/dist/block-type-dropdown.d.ts.map +1 -0
  11. package/dist/block-type-dropdown.js +276 -0
  12. package/dist/block-type-dropdown.js.map +1 -0
  13. package/dist/color-picker.d.ts +91 -0
  14. package/dist/color-picker.d.ts.map +1 -0
  15. package/dist/color-picker.js +346 -0
  16. package/dist/color-picker.js.map +1 -0
  17. package/dist/content-handlers.d.ts +7 -8
  18. package/dist/content-handlers.d.ts.map +1 -1
  19. package/dist/content-handlers.js +122 -93
  20. package/dist/content-handlers.js.map +1 -1
  21. package/dist/editor.d.ts.map +1 -1
  22. package/dist/editor.js +224 -15
  23. package/dist/editor.js.map +1 -1
  24. package/dist/embed-utils.d.ts +148 -0
  25. package/dist/embed-utils.d.ts.map +1 -0
  26. package/dist/embed-utils.js +197 -0
  27. package/dist/embed-utils.js.map +1 -0
  28. package/dist/font-family-picker.d.ts +105 -0
  29. package/dist/font-family-picker.d.ts.map +1 -0
  30. package/dist/font-family-picker.js +314 -0
  31. package/dist/font-family-picker.js.map +1 -0
  32. package/dist/font-size-picker.d.ts +82 -0
  33. package/dist/font-size-picker.d.ts.map +1 -0
  34. package/dist/font-size-picker.js +290 -0
  35. package/dist/font-size-picker.js.map +1 -0
  36. package/dist/index.d.ts +18 -4
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +30 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/plugins/index.d.ts +2 -1
  41. package/dist/plugins/index.d.ts.map +1 -1
  42. package/dist/plugins/index.js +1 -1
  43. package/dist/plugins/index.js.map +1 -1
  44. package/dist/plugins/link-plugin.d.ts +4 -0
  45. package/dist/plugins/link-plugin.d.ts.map +1 -1
  46. package/dist/plugins/link-plugin.js +17 -0
  47. package/dist/plugins/link-plugin.js.map +1 -1
  48. package/dist/plugins/mark-utils.d.ts +31 -0
  49. package/dist/plugins/mark-utils.d.ts.map +1 -1
  50. package/dist/plugins/mark-utils.js +46 -0
  51. package/dist/plugins/mark-utils.js.map +1 -1
  52. package/dist/renderer.d.ts +31 -2
  53. package/dist/renderer.d.ts.map +1 -1
  54. package/dist/renderer.js +131 -55
  55. package/dist/renderer.js.map +1 -1
  56. package/dist/selection-sync.d.ts +2 -26
  57. package/dist/selection-sync.d.ts.map +1 -1
  58. package/dist/selection-sync.js +49 -13
  59. package/dist/selection-sync.js.map +1 -1
  60. package/dist/spatial-index.d.ts +203 -0
  61. package/dist/spatial-index.d.ts.map +1 -0
  62. package/dist/spatial-index.js +211 -0
  63. package/dist/spatial-index.js.map +1 -0
  64. package/dist/types.d.ts +93 -0
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/virtual-viewport.d.ts +241 -0
  67. package/dist/virtual-viewport.d.ts.map +1 -0
  68. package/dist/virtual-viewport.js +584 -0
  69. package/dist/virtual-viewport.js.map +1 -0
  70. package/package.json +17 -5
@@ -29,6 +29,10 @@ export const LinkCommands = {
29
29
  REMOVE: 'removeLink',
30
30
  UPDATE: 'updateLink',
31
31
  SHOW_UI: 'showLinkUI',
32
+ /** @internal Auto-wire callback for link popover. */
33
+ _WIRE_UI: '_linkWireUI',
34
+ /** @internal Clear auto-wired callback. */
35
+ _UNWIRE_UI: '_linkUnwireUI',
32
36
  };
33
37
  /**
34
38
  * Create the link mark plugin with web layer attachment.
@@ -182,6 +186,19 @@ export function createLinkPlugin() {
182
186
  // Keyboard shortcut: Cmd/Ctrl+K → showLinkUI
183
187
  // ---------------------------------------------------------------
184
188
  ctx.registerShortcut({ key: 'k', mod: true }, LinkCommands.SHOW_UI);
189
+ // ---------------------------------------------------------------
190
+ // Internal commands for auto-wiring the link popover
191
+ // ---------------------------------------------------------------
192
+ ctx.registerCommand(LinkCommands._WIRE_UI, {
193
+ execute(_engine, payload) {
194
+ showUICallback = payload;
195
+ },
196
+ });
197
+ ctx.registerCommand(LinkCommands._UNWIRE_UI, {
198
+ execute() {
199
+ showUICallback = null;
200
+ },
201
+ });
185
202
  },
186
203
  };
187
204
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"link-plugin.js","sourceRoot":"","sources":["../../src/plugins/link-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link-plugin.js","sourceRoot":"","sources":["../../src/plugins/link-plugin.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,37 @@ export declare function toggleMark(engine: IEditorEngine, markType: string, mark
63
63
  * ```
64
64
  */
65
65
  export declare function isMarkActiveAtSelection(engine: IEditorEngine, markType: string): boolean;
66
+ /**
67
+ * Result of querying a parameterized mark value at the current selection.
68
+ */
69
+ export interface MarkValueResult {
70
+ /** The mark value, or `undefined` if the mark is not present. */
71
+ readonly value: unknown;
72
+ /** `true` when the selection spans text with different values for this mark. */
73
+ readonly isMixed: boolean;
74
+ }
75
+ /**
76
+ * Get the current value of a parameterized mark at the cursor or selection.
77
+ *
78
+ * Checks pending marks first (they override document state). For a collapsed
79
+ * cursor, reads the mark at the cursor offset. For a range selection, checks
80
+ * whether the mark is common (uniform) or mixed across the range.
81
+ *
82
+ * @param engine - The editor engine instance
83
+ * @param markType - The mark type to query (e.g., "color", "fontSize", "fontFamily")
84
+ * @returns The mark value and whether it's mixed across the selection
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const { value, isMixed } = getMarkValueAtSelection(engine, 'color');
89
+ * if (isMixed) {
90
+ * // Show "—" or indeterminate state in picker
91
+ * } else if (value) {
92
+ * // Highlight the active color swatch
93
+ * }
94
+ * ```
95
+ */
96
+ export declare function getMarkValueAtSelection(engine: IEditorEngine, markType: string): MarkValueResult;
66
97
  /**
67
98
  * Create a `CommandDescriptor` that sets a parameterized mark value.
68
99
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mark-utils.d.ts","sourceRoot":"","sources":["../../src/plugins/mark-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AAG5D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAc,GACxB,iBAAiB,CAYnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAc,GACxB,OAAO,CAuBT;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAoBT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAC1C,iBAAiB,CA0BnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,GACf,iBAAiB,CAyBnB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmB1C;AA0ED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EAC7C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAC5E,MAAM,CA2BR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EAC7C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAC5C,MAAM,CAoDR"}
1
+ {"version":3,"file":"mark-utils.d.ts","sourceRoot":"","sources":["../../src/plugins/mark-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AAG5D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAc,GACxB,iBAAiB,CAYnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAc,GACxB,OAAO,CAuBT;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAoBT;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,eAAe,CA2BjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAC1C,iBAAiB,CA0BnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,GACf,iBAAiB,CAyBnB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmB1C;AA0ED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EAC7C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAC5E,MAAM,CA2BR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EAC7C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAC5C,MAAM,CAoDR"}
@@ -110,6 +110,52 @@ export function isMarkActiveAtSelection(engine, markType) {
110
110
  const { common } = engine.getMarksInRange(start, end - start);
111
111
  return markType in common;
112
112
  }
113
+ /**
114
+ * Get the current value of a parameterized mark at the cursor or selection.
115
+ *
116
+ * Checks pending marks first (they override document state). For a collapsed
117
+ * cursor, reads the mark at the cursor offset. For a range selection, checks
118
+ * whether the mark is common (uniform) or mixed across the range.
119
+ *
120
+ * @param engine - The editor engine instance
121
+ * @param markType - The mark type to query (e.g., "color", "fontSize", "fontFamily")
122
+ * @returns The mark value and whether it's mixed across the selection
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * const { value, isMixed } = getMarkValueAtSelection(engine, 'color');
127
+ * if (isMixed) {
128
+ * // Show "—" or indeterminate state in picker
129
+ * } else if (value) {
130
+ * // Highlight the active color swatch
131
+ * }
132
+ * ```
133
+ */
134
+ export function getMarkValueAtSelection(engine, markType) {
135
+ const { anchor, focus } = engine.state.selection;
136
+ const start = Math.min(anchor.offset, focus.offset);
137
+ const end = Math.max(anchor.offset, focus.offset);
138
+ // Check pending marks first (they override document marks)
139
+ const pending = engine.getPendingMarks();
140
+ if (markType in pending) {
141
+ const pv = pending[markType];
142
+ return { value: pv ?? undefined, isMixed: false };
143
+ }
144
+ if (start === end) {
145
+ // Collapsed cursor — check marks at offset
146
+ const marks = engine.getMarksAtOffset(start);
147
+ return { value: marks[markType], isMixed: false };
148
+ }
149
+ // Range selection — check common vs mixed
150
+ const { common, mixed } = engine.getMarksInRange(start, end - start);
151
+ if (markType in common) {
152
+ return { value: common[markType], isMixed: false };
153
+ }
154
+ if (mixed.includes(markType)) {
155
+ return { value: undefined, isMixed: true };
156
+ }
157
+ return { value: undefined, isMixed: false };
158
+ }
113
159
  /**
114
160
  * Create a `CommandDescriptor` that sets a parameterized mark value.
115
161
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mark-utils.js","sourceRoot":"","sources":["../../src/plugins/mark-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mark-utils.js","sourceRoot":"","sources":["../../src/plugins/mark-utils.ts"],"names":[],"mappings":"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"}
@@ -94,7 +94,7 @@ export declare function findBlockElement(root: HTMLElement, blockId: string): HT
94
94
  * });
95
95
  * ```
96
96
  */
97
- export declare function renderInitial(root: HTMLElement, doc: Document, markRenderers?: MarkRendererRegistry, blockRenderers?: BlockRendererRegistry): void;
97
+ export declare function renderInitial(root: HTMLElement, doc: Document, markRenderers?: MarkRendererRegistry, blockRenderers?: BlockRendererRegistry, blockElementMap?: Map<string, HTMLElement>): void;
98
98
  /**
99
99
  * Efficiently reconcile the DOM to match a new RTIF document state.
100
100
  *
@@ -121,5 +121,34 @@ export declare function renderInitial(root: HTMLElement, doc: Document, markRend
121
121
  * reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderers, blockRenderers);
122
122
  * ```
123
123
  */
124
- export declare function reconcile(root: HTMLElement, prevDoc: Document, nextDoc: Document, composingBlockId: string | null, markRenderers?: MarkRendererRegistry, blockRenderers?: BlockRendererRegistry): void;
124
+ export declare function reconcile(root: HTMLElement, prevDoc: Document, nextDoc: Document, composingBlockId: string | null, markRenderers?: MarkRendererRegistry, blockRenderers?: BlockRendererRegistry, blockElementMap?: Map<string, HTMLElement>): void;
125
+ /**
126
+ * Reconcile a single block element to match a new RTIF block state.
127
+ *
128
+ * Extracted from {@link reconcile} for use by the virtual viewport, which
129
+ * needs to reconcile individual blocks without running the full document
130
+ * reconciliation loop.
131
+ *
132
+ * Returns the (possibly replaced) block element. When the block type or attrs
133
+ * change and in-place update fails, a new element is created and the caller
134
+ * must update its own references (e.g., blockElementMap).
135
+ *
136
+ * @param root - The root DOM element (used for block renderer context)
137
+ * @param blockEl - The existing block DOM element
138
+ * @param prevBlock - The previous RTIF block state, or undefined if new
139
+ * @param nextBlock - The new RTIF block state
140
+ * @param composingBlockId - Block ID currently under IME composition, or null
141
+ * @param markRenderers - Optional registry of mark renderers
142
+ * @param blockRenderers - Optional registry of block renderers
143
+ * @returns The reconciled block element (same reference or a new replacement)
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * const el = reconcileBlock(root, blockEl, prevBlock, nextBlock, null, marks, blocks);
148
+ * if (el !== blockEl) {
149
+ * blockElementMap.set(nextBlock.id, el);
150
+ * }
151
+ * ```
152
+ */
153
+ export declare function reconcileBlock(root: HTMLElement, blockEl: HTMLElement, prevBlock: Block | undefined, nextBlock: Block, composingBlockId: string | null, markRenderers?: MarkRendererRegistry, blockRenderers?: BlockRendererRegistry): HTMLElement;
125
154
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAoCjE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,aAAa,CAAC,EAAE,oBAAoB,GACnC,WAAW,CA6Bb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,cAAc,CAgBhB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GACd,WAAW,GAAG,IAAI,CAEpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,QAAQ,EACb,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,IAAI,CASN;AA4HD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,QAAQ,EACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,IAAI,CA4GN"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAoCjE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,aAAa,CAAC,EAAE,oBAAoB,GACnC,WAAW,CA6Bb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,cAAc,CAgBhB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GACd,WAAW,GAAG,IAAI,CAEpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,QAAQ,EACb,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,EACtC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,IAAI,CAiBN;AA4HD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,QAAQ,EACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,EACtC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,IAAI,CAuFN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,SAAS,EAAE,KAAK,EAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,WAAW,CAmEb"}
package/dist/renderer.js CHANGED
@@ -162,13 +162,20 @@ export function findBlockElement(root, blockId) {
162
162
  * });
163
163
  * ```
164
164
  */
165
- export function renderInitial(root, doc, markRenderers, blockRenderers) {
165
+ export function renderInitial(root, doc, markRenderers, blockRenderers, blockElementMap) {
166
166
  // Clear all existing content without using innerHTML
167
167
  while (root.firstChild) {
168
168
  root.removeChild(root.firstChild);
169
169
  }
170
+ if (blockElementMap) {
171
+ blockElementMap.clear();
172
+ }
170
173
  for (const block of doc.blocks) {
171
- root.appendChild(createBlockElement(block, markRenderers, blockRenderers));
174
+ const el = createBlockElement(block, markRenderers, blockRenderers);
175
+ root.appendChild(el);
176
+ if (blockElementMap) {
177
+ blockElementMap.set(block.id, el);
178
+ }
172
179
  }
173
180
  }
174
181
  /**
@@ -312,7 +319,7 @@ function reconcileBlockSpans(container, prevBlock, nextBlock, markRenderers) {
312
319
  * reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderers, blockRenderers);
313
320
  * ```
314
321
  */
315
- export function reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderers, blockRenderers) {
322
+ export function reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderers, blockRenderers, blockElementMap) {
316
323
  // Fast path: identical document reference
317
324
  if (prevDoc === nextDoc) {
318
325
  return;
@@ -322,71 +329,43 @@ export function reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderer
322
329
  for (const block of prevDoc.blocks) {
323
330
  prevBlockMap.set(block.id, block);
324
331
  }
325
- // Build a map of existing DOM block elements by ID
326
- const existingElements = new Map();
327
- for (let i = 0; i < root.children.length; i++) {
328
- const child = root.children[i];
329
- const blockId = child.getAttribute('data-rtif-block');
330
- if (blockId) {
331
- existingElements.set(blockId, child);
332
+ // Use persistent blockElementMap if provided, otherwise scan DOM children
333
+ const existingElements = blockElementMap ?? new Map();
334
+ if (!blockElementMap) {
335
+ for (let i = 0; i < root.children.length; i++) {
336
+ const child = root.children[i];
337
+ const blockId = child.getAttribute('data-rtif-block');
338
+ if (blockId) {
339
+ existingElements.set(blockId, child);
340
+ }
332
341
  }
333
342
  }
334
343
  // Track which block IDs are in the next document
335
344
  const nextBlockIds = new Set();
336
345
  // Walk next blocks in order, using a reference node cursor to minimize moves
337
346
  let referenceNode = root.firstChild;
347
+ // Skip spacer nodes (from virtual viewport) so reconcile doesn't treat them as blocks
348
+ while (referenceNode instanceof HTMLElement &&
349
+ referenceNode.hasAttribute('data-rtif-spacer')) {
350
+ referenceNode = referenceNode.nextSibling;
351
+ }
338
352
  for (const nextBlock of nextDoc.blocks) {
339
353
  nextBlockIds.add(nextBlock.id);
340
354
  let blockEl = existingElements.get(nextBlock.id) ?? null;
341
355
  if (blockEl) {
342
- // Block element already exists in the DOM
343
356
  const prevBlock = prevBlockMap.get(nextBlock.id);
344
- // Skip composing block entirely
345
- if (nextBlock.id === composingBlockId) {
346
- // Just make sure it's in the right position
347
- if (blockEl !== referenceNode) {
348
- root.insertBefore(blockEl, referenceNode);
349
- }
350
- else {
351
- referenceNode = referenceNode.nextSibling;
352
- }
357
+ // Delegate content reconciliation to reconcileBlock (single source of truth).
358
+ // reconcileBlock handles composing skip, type/attr changes, span updates.
359
+ // It may return a new element if the block was fully replaced.
360
+ const result = reconcileBlock(root, blockEl, prevBlock, nextBlock, composingBlockId, markRenderers, blockRenderers);
361
+ if (result !== blockEl) {
362
+ existingElements.set(nextBlock.id, result);
363
+ blockEl = result;
364
+ // replaceChild already placed the new element in the old position;
365
+ // advance referenceNode past it.
366
+ referenceNode = result.nextSibling;
353
367
  continue;
354
368
  }
355
- // Check if block changed by reference
356
- if (prevBlock !== nextBlock) {
357
- // If block type or attrs changed, replace entire block element
358
- // to ensure block-renderer styling is re-applied cleanly.
359
- // This mirrors how mark changes replace span elements.
360
- if (prevBlock && (prevBlock.type !== nextBlock.type || prevBlock.attrs !== nextBlock.attrs)) {
361
- const newBlockEl = createBlockElement(nextBlock, markRenderers, blockRenderers);
362
- root.replaceChild(newBlockEl, blockEl);
363
- // Update our reference so position tracking remains correct
364
- existingElements.set(nextBlock.id, newBlockEl);
365
- blockEl = newBlockEl;
366
- // replaceChild keeps position; advance referenceNode past replaced element
367
- referenceNode = newBlockEl.nextSibling;
368
- continue;
369
- }
370
- // Update block-type attribute if changed
371
- if (blockEl.getAttribute('data-block-type') !== nextBlock.type) {
372
- blockEl.setAttribute('data-block-type', nextBlock.type);
373
- }
374
- // Reconcile spans within this block
375
- if (prevBlock) {
376
- const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
377
- reconcileBlockSpans(container, prevBlock, nextBlock, markRenderers);
378
- }
379
- else {
380
- // No previous block data — full re-render of span content
381
- const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
382
- while (container.firstChild) {
383
- container.removeChild(container.firstChild);
384
- }
385
- for (const span of nextBlock.spans) {
386
- container.appendChild(createSpanElement(span, markRenderers));
387
- }
388
- }
389
- }
390
369
  // Ensure correct position
391
370
  if (blockEl !== referenceNode) {
392
371
  root.insertBefore(blockEl, referenceNode);
@@ -399,6 +378,7 @@ export function reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderer
399
378
  // New block — create element and insert at correct position
400
379
  blockEl = createBlockElement(nextBlock, markRenderers, blockRenderers);
401
380
  root.insertBefore(blockEl, referenceNode);
381
+ existingElements.set(nextBlock.id, blockEl);
402
382
  }
403
383
  }
404
384
  // Remove any block elements that are no longer in the document
@@ -410,6 +390,102 @@ export function reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderer
410
390
  }
411
391
  for (const el of toRemove) {
412
392
  root.removeChild(el);
393
+ const blockId = el.getAttribute('data-rtif-block');
394
+ if (blockId) {
395
+ existingElements.delete(blockId);
396
+ }
397
+ }
398
+ }
399
+ /**
400
+ * Reconcile a single block element to match a new RTIF block state.
401
+ *
402
+ * Extracted from {@link reconcile} for use by the virtual viewport, which
403
+ * needs to reconcile individual blocks without running the full document
404
+ * reconciliation loop.
405
+ *
406
+ * Returns the (possibly replaced) block element. When the block type or attrs
407
+ * change and in-place update fails, a new element is created and the caller
408
+ * must update its own references (e.g., blockElementMap).
409
+ *
410
+ * @param root - The root DOM element (used for block renderer context)
411
+ * @param blockEl - The existing block DOM element
412
+ * @param prevBlock - The previous RTIF block state, or undefined if new
413
+ * @param nextBlock - The new RTIF block state
414
+ * @param composingBlockId - Block ID currently under IME composition, or null
415
+ * @param markRenderers - Optional registry of mark renderers
416
+ * @param blockRenderers - Optional registry of block renderers
417
+ * @returns The reconciled block element (same reference or a new replacement)
418
+ *
419
+ * @example
420
+ * ```ts
421
+ * const el = reconcileBlock(root, blockEl, prevBlock, nextBlock, null, marks, blocks);
422
+ * if (el !== blockEl) {
423
+ * blockElementMap.set(nextBlock.id, el);
424
+ * }
425
+ * ```
426
+ */
427
+ export function reconcileBlock(root, blockEl, prevBlock, nextBlock, composingBlockId, markRenderers, blockRenderers) {
428
+ // Skip composing block entirely
429
+ if (nextBlock.id === composingBlockId) {
430
+ return blockEl;
431
+ }
432
+ // Check if block changed by reference
433
+ if (prevBlock === nextBlock) {
434
+ return blockEl;
435
+ }
436
+ // If block type or attrs changed, try in-place update first
437
+ if (prevBlock && (prevBlock.type !== nextBlock.type || prevBlock.attrs !== nextBlock.attrs)) {
438
+ // If same type, try updateElement() for efficient in-place attr updates
439
+ if (prevBlock.type === nextBlock.type && blockRenderers) {
440
+ const renderer = blockRenderers.get(nextBlock.type);
441
+ if (renderer?.updateElement) {
442
+ const didUpdate = renderer.updateElement(blockEl, nextBlock);
443
+ if (didUpdate) {
444
+ // Re-apply attr renderers (alignment, indent, etc.)
445
+ if (nextBlock.attrs) {
446
+ for (const [key, value] of Object.entries(nextBlock.attrs)) {
447
+ if (value == null)
448
+ continue;
449
+ const attrRenderer = blockRenderers.getAttrRenderer(key);
450
+ if (attrRenderer) {
451
+ attrRenderer.apply(blockEl, value);
452
+ }
453
+ }
454
+ }
455
+ // Reconcile spans separately since updateElement only handles attrs
456
+ const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
457
+ reconcileBlockSpans(container, prevBlock, nextBlock, markRenderers);
458
+ return blockEl;
459
+ }
460
+ }
461
+ }
462
+ // Fall back to full replacement if updateElement doesn't exist,
463
+ // returned false, or types differ
464
+ const newBlockEl = createBlockElement(nextBlock, markRenderers, blockRenderers);
465
+ if (blockEl.parentNode) {
466
+ blockEl.parentNode.replaceChild(newBlockEl, blockEl);
467
+ }
468
+ return newBlockEl;
413
469
  }
470
+ // Update block-type attribute if changed
471
+ if (blockEl.getAttribute('data-block-type') !== nextBlock.type) {
472
+ blockEl.setAttribute('data-block-type', nextBlock.type);
473
+ }
474
+ // Reconcile spans within this block (skip if spans are identical by reference)
475
+ if (prevBlock && prevBlock.spans !== nextBlock.spans) {
476
+ const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
477
+ reconcileBlockSpans(container, prevBlock, nextBlock, markRenderers);
478
+ }
479
+ else if (!prevBlock) {
480
+ // No previous block data — full re-render of span content
481
+ const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
482
+ while (container.firstChild) {
483
+ container.removeChild(container.firstChild);
484
+ }
485
+ for (const span of nextBlock.spans) {
486
+ container.appendChild(createSpanElement(span, markRenderers));
487
+ }
488
+ }
489
+ return blockEl;
414
490
  }
415
491
  //# sourceMappingURL=renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
@@ -12,30 +12,6 @@
12
12
  */
13
13
  import type { Document, Selection } from '@rtif-sdk/core';
14
14
  import type { BlockOffsetEntry, DomPoint } from './types.js';
15
- /**
16
- * Build an array of block offset entries for fast DOM <-> RTIF conversion.
17
- *
18
- * Each entry records the block's ID, its absolute start offset in the
19
- * document, and its text length. Block N+1 starts at
20
- * `block[N].startOffset + block[N].length + 1` (the +1 is the virtual `\n`
21
- * separator between consecutive blocks).
22
- *
23
- * @param doc - The RTIF document
24
- * @returns Array of offset entries, one per block, in document order
25
- *
26
- * @example
27
- * ```ts
28
- * const doc = { version: 1, blocks: [
29
- * { id: 'b1', type: 'text', spans: [{ text: 'hello' }] },
30
- * { id: 'b2', type: 'text', spans: [{ text: 'world' }] },
31
- * ]};
32
- * buildBlockOffsetCache(doc);
33
- * // => [
34
- * // { blockId: 'b1', startOffset: 0, length: 5 },
35
- * // { blockId: 'b2', startOffset: 6, length: 5 },
36
- * // ]
37
- * ```
38
- */
39
15
  export declare function buildBlockOffsetCache(doc: Document): BlockOffsetEntry[];
40
16
  /**
41
17
  * Convert a DOM position (node + offset) to an absolute RTIF document offset.
@@ -79,7 +55,7 @@ export declare function domPointToRtifOffset(root: HTMLElement, node: Node, domO
79
55
  * }
80
56
  * ```
81
57
  */
82
- export declare function rtifOffsetToDomPoint(root: HTMLElement, doc: Document, offset: number): DomPoint | null;
58
+ export declare function rtifOffsetToDomPoint(root: HTMLElement, doc: Document, offset: number, blockElementMap?: Map<string, HTMLElement>): DomPoint | null;
83
59
  /**
84
60
  * Read the browser's current DOM selection and convert it to an RTIF Selection.
85
61
  *
@@ -123,7 +99,7 @@ export declare function readDomSelection(root: HTMLElement, cache: BlockOffsetEn
123
99
  * setDomSelection(root, doc, { anchor: { offset: 0 }, focus: { offset: 5 } });
124
100
  * ```
125
101
  */
126
- export declare function setDomSelection(root: HTMLElement, doc: Document, selection: Selection): void;
102
+ export declare function setDomSelection(root: HTMLElement, doc: Document, selection: Selection, blockElementMap?: Map<string, HTMLElement>): void;
127
103
  /**
128
104
  * Returns `true` if the selection-sync layer is currently suppressing
129
105
  * `selectionchange` events to avoid feedback loops.
@@ -1 +1 @@
1
- {"version":3,"file":"selection-sync.d.ts","sourceRoot":"","sources":["../src/selection-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAS7D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CAmBvE;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EAAE,GACxB,MAAM,GAAG,IAAI,CAoCf;AAoOD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,GACb,QAAQ,GAAG,IAAI,CAmBjB;AAuGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,gBAAgB,EAAE,GACxB,SAAS,GAAG,IAAI,CAsBlB;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,SAAS,GACnB,IAAI,CA6BN;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
1
+ {"version":3,"file":"selection-sync.d.ts","sourceRoot":"","sources":["../src/selection-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAsC7D,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CA6BvE;AA4BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EAAE,GACxB,MAAM,GAAG,IAAI,CAoCf;AAqOD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,QAAQ,GAAG,IAAI,CAmBjB;AAuGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,gBAAgB,EAAE,GACxB,SAAS,GAAG,IAAI,CAsBlB;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,SAAS,EACpB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,IAAI,CA6BN;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}