@rtif-sdk/web 1.3.0 → 1.5.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 (72) hide show
  1. package/dist/block-drag-handler.d.ts +26 -0
  2. package/dist/block-drag-handler.d.ts.map +1 -1
  3. package/dist/block-drag-handler.js +33 -23
  4. package/dist/block-drag-handler.js.map +1 -1
  5. package/dist/block-gutter.d.ts +81 -0
  6. package/dist/block-gutter.d.ts.map +1 -0
  7. package/dist/block-gutter.js +331 -0
  8. package/dist/block-gutter.js.map +1 -0
  9. package/dist/content-handler-html.d.ts +28 -0
  10. package/dist/content-handler-html.d.ts.map +1 -0
  11. package/dist/content-handler-html.js +49 -0
  12. package/dist/content-handler-html.js.map +1 -0
  13. package/dist/content-handlers.d.ts +20 -19
  14. package/dist/content-handlers.d.ts.map +1 -1
  15. package/dist/content-handlers.js +4 -43
  16. package/dist/content-handlers.js.map +1 -1
  17. package/dist/drop-indicator.d.ts.map +1 -1
  18. package/dist/drop-indicator.js +8 -34
  19. package/dist/drop-indicator.js.map +1 -1
  20. package/dist/editor.d.ts.map +1 -1
  21. package/dist/editor.js +33 -13
  22. package/dist/editor.js.map +1 -1
  23. package/dist/floating-toolbar.d.ts.map +1 -1
  24. package/dist/floating-toolbar.js +4 -7
  25. package/dist/floating-toolbar.js.map +1 -1
  26. package/dist/index.d.ts +8 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +8 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/link-popover.d.ts.map +1 -1
  31. package/dist/link-popover.js +2 -43
  32. package/dist/link-popover.js.map +1 -1
  33. package/dist/preset-basic.d.ts +20 -0
  34. package/dist/preset-basic.d.ts.map +1 -0
  35. package/dist/preset-basic.js +28 -0
  36. package/dist/preset-basic.js.map +1 -0
  37. package/dist/preset-full.d.ts +22 -0
  38. package/dist/preset-full.d.ts.map +1 -0
  39. package/dist/preset-full.js +66 -0
  40. package/dist/preset-full.js.map +1 -0
  41. package/dist/preset-plaintext.d.ts +20 -0
  42. package/dist/preset-plaintext.d.ts.map +1 -0
  43. package/dist/preset-plaintext.js +19 -0
  44. package/dist/preset-plaintext.js.map +1 -0
  45. package/dist/preset-standard.d.ts +22 -0
  46. package/dist/preset-standard.d.ts.map +1 -0
  47. package/dist/preset-standard.js +47 -0
  48. package/dist/preset-standard.js.map +1 -0
  49. package/dist/presets.d.ts +7 -88
  50. package/dist/presets.d.ts.map +1 -1
  51. package/dist/presets.js +7 -152
  52. package/dist/presets.js.map +1 -1
  53. package/dist/renderer.d.ts.map +1 -1
  54. package/dist/renderer.js +27 -5
  55. package/dist/renderer.js.map +1 -1
  56. package/dist/selection-sync.d.ts.map +1 -1
  57. package/dist/selection-sync.js +20 -3
  58. package/dist/selection-sync.js.map +1 -1
  59. package/dist/types.d.ts +19 -0
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +8 -4
  62. package/styles/all.css +20 -0
  63. package/styles/base.css +33 -0
  64. package/styles/block-gutter.css +76 -0
  65. package/styles/blocks.css +199 -0
  66. package/styles/drop-indicator.css +37 -0
  67. package/styles/floating-toolbar.css +51 -0
  68. package/styles/link-popover.css +64 -0
  69. package/styles/marks.css +27 -0
  70. package/styles/mention.css +17 -0
  71. package/styles/pickers.css +317 -0
  72. package/styles/toolbar.css +151 -0
@@ -0,0 +1,331 @@
1
+ /**
2
+ * Block gutter toolbar — a Notion-style hover-revealed toolbar to the left
3
+ * of blocks with a "+" button (add block below) and a drag handle (reorder).
4
+ *
5
+ * The gutter owns hover detection and DOM elements. Drag-and-drop logic is
6
+ * delegated to {@link BlockDragHandler} in external handle mode.
7
+ *
8
+ * @module
9
+ */
10
+ import { blockTextLength } from '@rtif-sdk/core';
11
+ import { BlockDragHandler, findBlockElement } from './block-drag-handler.js';
12
+ import { getBlockStartOffset } from './plugins/block-utils.js';
13
+ // ---------------------------------------------------------------------------
14
+ // CSS class names
15
+ // ---------------------------------------------------------------------------
16
+ const CSS_GUTTER = 'rtif-block-gutter';
17
+ const CSS_ADD = 'rtif-gutter-add';
18
+ const CSS_HANDLE = 'rtif-drag-handle';
19
+ const CSS_HIDDEN = 'rtif-hidden';
20
+ // ---------------------------------------------------------------------------
21
+ // Factory
22
+ // ---------------------------------------------------------------------------
23
+ /**
24
+ * Create a block gutter toolbar.
25
+ *
26
+ * The gutter appears on hover or when the keyboard cursor enters a block.
27
+ * It provides a "+" button to add a new block below and a drag handle
28
+ * for block reordering.
29
+ *
30
+ * @param deps - Injected dependencies
31
+ * @returns A handle to attach/detach the gutter
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const gutter = createBlockGutter({
36
+ * root: editorRoot,
37
+ * engine,
38
+ * isReadOnly: () => false,
39
+ * getBlockElementMap: () => blockElementMap,
40
+ * generateBlockId: () => generateId(),
41
+ * focusAtOffset: (offset) => { ... },
42
+ * });
43
+ * gutter.attach();
44
+ * ```
45
+ */
46
+ export function createBlockGutter(deps) {
47
+ let attached = false;
48
+ // Active block state
49
+ let activeBlockId = null;
50
+ let mouseIsActive = false;
51
+ let isDragging = false;
52
+ let hideTimeout = null;
53
+ let rafId = null;
54
+ // -------------------------------------------------------------------------
55
+ // DOM creation
56
+ // -------------------------------------------------------------------------
57
+ const gutterEl = document.createElement('div');
58
+ gutterEl.className = CSS_GUTTER;
59
+ gutterEl.setAttribute('role', 'toolbar');
60
+ gutterEl.setAttribute('aria-label', 'Block actions');
61
+ gutterEl.setAttribute('contenteditable', 'false');
62
+ gutterEl.classList.add(CSS_HIDDEN);
63
+ // + button
64
+ const addButton = document.createElement('button');
65
+ addButton.className = CSS_ADD;
66
+ addButton.type = 'button';
67
+ addButton.setAttribute('aria-label', 'Add block below');
68
+ addButton.textContent = '+';
69
+ // Drag handle
70
+ const dragHandle = document.createElement('div');
71
+ dragHandle.className = CSS_HANDLE;
72
+ dragHandle.setAttribute('draggable', 'true');
73
+ dragHandle.setAttribute('role', 'button');
74
+ dragHandle.setAttribute('tabindex', '-1');
75
+ dragHandle.setAttribute('aria-label', 'Drag to reorder');
76
+ dragHandle.textContent = '\u2807'; // BRAILLE PATTERN DOTS-123
77
+ gutterEl.appendChild(addButton);
78
+ gutterEl.appendChild(dragHandle);
79
+ // -------------------------------------------------------------------------
80
+ // BlockDragHandler in external handle mode
81
+ // -------------------------------------------------------------------------
82
+ const blockDragHandler = new BlockDragHandler({
83
+ root: deps.root,
84
+ getDoc: () => deps.engine.state.doc,
85
+ dispatch: (ops) => deps.engine.dispatch(ops),
86
+ isReadOnly: deps.isReadOnly,
87
+ getBlockElementMap: () => deps.getBlockElementMap(),
88
+ externalHandleMode: true,
89
+ getHandleEl: () => dragHandle,
90
+ });
91
+ // -------------------------------------------------------------------------
92
+ // Gutter positioning
93
+ // -------------------------------------------------------------------------
94
+ function showGutter(blockEl) {
95
+ if (deps.isReadOnly())
96
+ return;
97
+ if (isDragging)
98
+ return;
99
+ const blockId = blockEl.getAttribute('data-rtif-block');
100
+ if (!blockId)
101
+ return;
102
+ activeBlockId = blockId;
103
+ dragHandle.setAttribute('data-drag-block-id', blockId);
104
+ const rootRect = deps.root.getBoundingClientRect();
105
+ const blockRect = blockEl.getBoundingClientRect();
106
+ // Account for scroll offset: getBoundingClientRect is viewport-relative,
107
+ // but absolute positioning is relative to the offsetParent (root).
108
+ // When the root is scrolled, we need to add scrollTop to compensate.
109
+ gutterEl.style.top = `${blockRect.top - rootRect.top + deps.root.scrollTop}px`;
110
+ gutterEl.style.height = `${blockRect.height}px`;
111
+ gutterEl.classList.remove(CSS_HIDDEN);
112
+ }
113
+ function hideGutter() {
114
+ gutterEl.classList.add(CSS_HIDDEN);
115
+ activeBlockId = null;
116
+ }
117
+ function clearHideTimeout() {
118
+ if (hideTimeout !== null) {
119
+ clearTimeout(hideTimeout);
120
+ hideTimeout = null;
121
+ }
122
+ }
123
+ function scheduleHide() {
124
+ clearHideTimeout();
125
+ hideTimeout = setTimeout(() => {
126
+ hideTimeout = null;
127
+ hideGutter();
128
+ mouseIsActive = false;
129
+ }, 150);
130
+ }
131
+ // -------------------------------------------------------------------------
132
+ // Hover detection (event delegation on root)
133
+ // -------------------------------------------------------------------------
134
+ function onMouseOver(e) {
135
+ const blockEl = findBlockElement(e.target, deps.root);
136
+ if (blockEl) {
137
+ clearHideTimeout();
138
+ mouseIsActive = true;
139
+ showGutter(blockEl);
140
+ }
141
+ }
142
+ function onMouseOut(e) {
143
+ const relatedTarget = e.relatedTarget;
144
+ if (relatedTarget) {
145
+ // Moving to gutter → grace
146
+ if (gutterEl.contains(relatedTarget))
147
+ return;
148
+ // Moving to another block → will trigger mouseover
149
+ if (deps.root.contains(relatedTarget)) {
150
+ const blockEl = findBlockElement(relatedTarget, deps.root);
151
+ if (blockEl)
152
+ return;
153
+ }
154
+ }
155
+ scheduleHide();
156
+ }
157
+ function onGutterMouseEnter() {
158
+ clearHideTimeout();
159
+ }
160
+ function onGutterMouseLeave(e) {
161
+ const relatedTarget = e.relatedTarget;
162
+ if (relatedTarget && deps.root.contains(relatedTarget)) {
163
+ const blockEl = findBlockElement(relatedTarget, deps.root);
164
+ if (blockEl)
165
+ return; // Moving back to a block
166
+ }
167
+ scheduleHide();
168
+ }
169
+ // -------------------------------------------------------------------------
170
+ // Drag state tracking — hide gutter during active drag
171
+ // -------------------------------------------------------------------------
172
+ function onDragStart() {
173
+ isDragging = true;
174
+ hideGutter();
175
+ }
176
+ function onDragEnd() {
177
+ isDragging = false;
178
+ }
179
+ // -------------------------------------------------------------------------
180
+ // Keyboard focus tracking (rAF-throttled)
181
+ // -------------------------------------------------------------------------
182
+ let prevFocusBlockId = null;
183
+ let unsubChange = null;
184
+ let unsubSelection = null;
185
+ function updateGutterForSelection() {
186
+ if (deps.isReadOnly())
187
+ return;
188
+ // Mouse hover takes priority
189
+ if (mouseIsActive)
190
+ return;
191
+ if (isDragging)
192
+ return;
193
+ const { selection, doc } = deps.engine.state;
194
+ const offset = selection.focus.offset;
195
+ try {
196
+ const block = deps.engine.getBlockAtOffset(offset);
197
+ if (block.id === prevFocusBlockId)
198
+ return;
199
+ prevFocusBlockId = block.id;
200
+ const blockEl = deps.getBlockElementMap().get(block.id);
201
+ if (!blockEl)
202
+ return; // Virtualized away
203
+ showGutter(blockEl);
204
+ }
205
+ catch {
206
+ // Offset out of range — hide
207
+ hideGutter();
208
+ }
209
+ }
210
+ function scheduleSelectionUpdate() {
211
+ if (rafId !== null)
212
+ return; // Already scheduled
213
+ rafId = requestAnimationFrame(() => {
214
+ rafId = null;
215
+ updateGutterForSelection();
216
+ });
217
+ }
218
+ // -------------------------------------------------------------------------
219
+ // + button handler
220
+ // -------------------------------------------------------------------------
221
+ function onAddMouseDown(e) {
222
+ e.preventDefault(); // Preserve editor focus
223
+ }
224
+ function onAddClick() {
225
+ if (deps.isReadOnly())
226
+ return;
227
+ if (!activeBlockId)
228
+ return;
229
+ const doc = deps.engine.state.doc;
230
+ const block = doc.blocks.find((b) => b.id === activeBlockId);
231
+ if (!block)
232
+ return;
233
+ const blockStart = getBlockStartOffset(doc, activeBlockId);
234
+ const blockLen = blockTextLength(block);
235
+ const splitOffset = blockStart + blockLen;
236
+ const newBlockId = deps.generateBlockId();
237
+ deps.engine.dispatch({
238
+ type: 'split_block',
239
+ offset: splitOffset,
240
+ newBlockId,
241
+ });
242
+ // Cursor at start of new block (splitOffset + 1 for virtual \n)
243
+ deps.focusAtOffset(splitOffset + 1);
244
+ }
245
+ // Drag handle also needs focus preservation
246
+ function onDragHandleMouseDown(e) {
247
+ e.preventDefault();
248
+ }
249
+ // -------------------------------------------------------------------------
250
+ // Blur handler
251
+ // -------------------------------------------------------------------------
252
+ function onBlur() {
253
+ clearHideTimeout();
254
+ hideGutter();
255
+ mouseIsActive = false;
256
+ prevFocusBlockId = null;
257
+ }
258
+ // -------------------------------------------------------------------------
259
+ // Lifecycle
260
+ // -------------------------------------------------------------------------
261
+ return {
262
+ attach() {
263
+ if (attached)
264
+ return;
265
+ attached = true;
266
+ // Append gutter to root
267
+ deps.root.appendChild(gutterEl);
268
+ // Hover listeners
269
+ deps.root.addEventListener('mouseover', onMouseOver);
270
+ deps.root.addEventListener('mouseout', onMouseOut);
271
+ gutterEl.addEventListener('mouseenter', onGutterMouseEnter);
272
+ gutterEl.addEventListener('mouseleave', onGutterMouseLeave);
273
+ // Button listeners
274
+ addButton.addEventListener('mousedown', onAddMouseDown);
275
+ addButton.addEventListener('click', onAddClick);
276
+ dragHandle.addEventListener('mousedown', onDragHandleMouseDown);
277
+ // Drag state listeners
278
+ deps.root.addEventListener('dragstart', onDragStart);
279
+ deps.root.addEventListener('dragend', onDragEnd);
280
+ // Blur
281
+ deps.root.addEventListener('blur', onBlur);
282
+ // Keyboard tracking (rAF-throttled)
283
+ unsubChange = deps.engine.onChange(() => scheduleSelectionUpdate());
284
+ unsubSelection = deps.engine.onSelectionChange(() => scheduleSelectionUpdate());
285
+ // Drag handler
286
+ blockDragHandler.attach();
287
+ },
288
+ detach() {
289
+ if (!attached)
290
+ return;
291
+ attached = false;
292
+ // Hover listeners
293
+ deps.root.removeEventListener('mouseover', onMouseOver);
294
+ deps.root.removeEventListener('mouseout', onMouseOut);
295
+ gutterEl.removeEventListener('mouseenter', onGutterMouseEnter);
296
+ gutterEl.removeEventListener('mouseleave', onGutterMouseLeave);
297
+ // Button listeners
298
+ addButton.removeEventListener('mousedown', onAddMouseDown);
299
+ addButton.removeEventListener('click', onAddClick);
300
+ dragHandle.removeEventListener('mousedown', onDragHandleMouseDown);
301
+ // Drag state listeners
302
+ deps.root.removeEventListener('dragstart', onDragStart);
303
+ deps.root.removeEventListener('dragend', onDragEnd);
304
+ // Blur
305
+ deps.root.removeEventListener('blur', onBlur);
306
+ // Keyboard tracking
307
+ unsubChange?.();
308
+ unsubSelection?.();
309
+ unsubChange = null;
310
+ unsubSelection = null;
311
+ // Cancel pending rAF
312
+ if (rafId !== null) {
313
+ cancelAnimationFrame(rafId);
314
+ rafId = null;
315
+ }
316
+ // Drag handler
317
+ blockDragHandler.detach();
318
+ // Remove DOM
319
+ if (gutterEl.parentNode) {
320
+ gutterEl.parentNode.removeChild(gutterEl);
321
+ }
322
+ // Clear state
323
+ clearHideTimeout();
324
+ activeBlockId = null;
325
+ mouseIsActive = false;
326
+ isDragging = false;
327
+ prevFocusBlockId = null;
328
+ },
329
+ };
330
+ }
331
+ //# sourceMappingURL=block-gutter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-gutter.js","sourceRoot":"","sources":["../src/block-gutter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * HTML content handler for the RTIF content pipeline.
3
+ *
4
+ * Separated into its own module so that `@rtif-sdk/format-html` is only
5
+ * bundled when this handler is imported. Consumers who don't need HTML
6
+ * paste can omit this handler to save ~4.8 KB minified.
7
+ *
8
+ * @module
9
+ */
10
+ import type { ContentHandler } from './content-pipeline.js';
11
+ /**
12
+ * Create a content handler for HTML paste.
13
+ *
14
+ * Accepts `text/html` content and deserializes it via `@rtif-sdk/format-html`,
15
+ * preserving formatting (bold, italic, links, headings, lists, code blocks, etc.).
16
+ *
17
+ * Priority: -90 (between RTIF JSON and plain text).
18
+ *
19
+ * @returns A ContentHandler for HTML paste
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const handler = createHtmlPasteHandler();
24
+ * pipeline.register(handler);
25
+ * ```
26
+ */
27
+ export declare function createHtmlPasteHandler(): ContentHandler;
28
+ //# sourceMappingURL=content-handler-html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-handler-html.d.ts","sourceRoot":"","sources":["../src/content-handler-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,uBAAuB,CAAC;AAG/B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,CA6BvD"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * HTML content handler for the RTIF content pipeline.
3
+ *
4
+ * Separated into its own module so that `@rtif-sdk/format-html` is only
5
+ * bundled when this handler is imported. Consumers who don't need HTML
6
+ * paste can omit this handler to save ~4.8 KB minified.
7
+ *
8
+ * @module
9
+ */
10
+ import { deserialize as deserializeHtml } from '@rtif-sdk/format-html';
11
+ import { insertBlocksAsOps } from './content-handlers.js';
12
+ /**
13
+ * Create a content handler for HTML paste.
14
+ *
15
+ * Accepts `text/html` content and deserializes it via `@rtif-sdk/format-html`,
16
+ * preserving formatting (bold, italic, links, headings, lists, code blocks, etc.).
17
+ *
18
+ * Priority: -90 (between RTIF JSON and plain text).
19
+ *
20
+ * @returns A ContentHandler for HTML paste
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const handler = createHtmlPasteHandler();
25
+ * pipeline.register(handler);
26
+ * ```
27
+ */
28
+ export function createHtmlPasteHandler() {
29
+ return {
30
+ id: 'rtif:html',
31
+ accept: ['text/html'],
32
+ priority: -90,
33
+ async handle(item, context) {
34
+ const html = await item.getString();
35
+ if (html === null || html === '')
36
+ return false;
37
+ const doc = deserializeHtml(html);
38
+ // Check if deserialization produced only a single empty block
39
+ if (doc.blocks.length === 1 &&
40
+ doc.blocks[0].spans.length === 1 &&
41
+ doc.blocks[0].spans[0].text === '') {
42
+ return false;
43
+ }
44
+ insertBlocksAsOps(doc.blocks, context);
45
+ return true;
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=content-handler-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-handler-html.js","sourceRoot":"","sources":["../src/content-handler-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,CAAC,WAAW,CAAC;QACrB,QAAQ,EAAE,CAAC,EAAE;QAEb,KAAK,CAAC,MAAM,CACV,IAAiB,EACjB,OAAuB;YAEvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YAE/C,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAElC,8DAA8D;YAC9D,IACE,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBACvB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,EAAE,EACpC,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEvC,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -4,11 +4,14 @@
4
4
  * Provides handlers for:
5
5
  * - Plain text (`text/plain`) — splits on newlines, creates blocks
6
6
  * - RTIF JSON (`application/x-rtif+json`) — preserves marks and block attrs
7
- * - HTML (`text/html`) — deserializes via @rtif-sdk/format-html
7
+ *
8
+ * The HTML handler lives in `content-handler-html.ts` to isolate the
9
+ * `@rtif-sdk/format-html` dependency (tree-shaking friendly).
8
10
  *
9
11
  * @module
10
12
  */
11
- import type { ContentHandler } from './content-pipeline.js';
13
+ import type { Block } from '@rtif-sdk/core';
14
+ import type { ContentHandler, ContentContext } from './content-pipeline.js';
12
15
  /**
13
16
  * Create a content handler for plain text paste/drop.
14
17
  *
@@ -28,6 +31,21 @@ import type { ContentHandler } from './content-pipeline.js';
28
31
  * ```
29
32
  */
30
33
  export declare function createPlainTextHandler(generateBlockId: () => string): ContentHandler;
34
+ /**
35
+ * Convert an array of RTIF blocks into operations and dispatch them.
36
+ *
37
+ * Generates a 4-phase operation sequence:
38
+ * 1. Insert text + split blocks
39
+ * 2. Apply span marks
40
+ * 3. Apply block attrs on new blocks
41
+ * 4. Apply block type on new blocks
42
+ *
43
+ * Used by both the RTIF JSON and HTML paste handlers.
44
+ *
45
+ * @param blocks - Source blocks to insert
46
+ * @param context - The content pipeline context
47
+ */
48
+ export declare function insertBlocksAsOps(blocks: readonly Block[], context: ContentContext): void;
31
49
  /**
32
50
  * Create a content handler for RTIF JSON paste.
33
51
  *
@@ -46,21 +64,4 @@ export declare function createPlainTextHandler(generateBlockId: () => string): C
46
64
  * ```
47
65
  */
48
66
  export declare function createRtifPasteHandler(): ContentHandler;
49
- /**
50
- * Create a content handler for HTML paste.
51
- *
52
- * Accepts `text/html` content and deserializes it via `@rtif-sdk/format-html`,
53
- * preserving formatting (bold, italic, links, headings, lists, code blocks, etc.).
54
- *
55
- * Priority: -90 (between RTIF JSON and plain text).
56
- *
57
- * @returns A ContentHandler for HTML paste
58
- *
59
- * @example
60
- * ```ts
61
- * const handler = createHtmlPasteHandler();
62
- * pipeline.register(handler);
63
- * ```
64
- */
65
- export declare function createHtmlPasteHandler(): ContentHandler;
66
67
  //# sourceMappingURL=content-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-handlers.d.ts","sourceRoot":"","sources":["../src/content-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,uBAAuB,CAAC;AAM/B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,MAAM,GAC5B,cAAc,CA+ChB;AA0ID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,CAsBvD;AAqDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,CA6BvD"}
1
+ {"version":3,"file":"content-handlers.d.ts","sourceRoot":"","sources":["../src/content-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAa,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACf,MAAM,uBAAuB,CAAC;AAM/B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,MAAM,GAC5B,cAAc,CA+ChB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,OAAO,EAAE,cAAc,GACtB,IAAI,CAqGN;AAcD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,CAsBvD"}
@@ -4,11 +4,12 @@
4
4
  * Provides handlers for:
5
5
  * - Plain text (`text/plain`) — splits on newlines, creates blocks
6
6
  * - RTIF JSON (`application/x-rtif+json`) — preserves marks and block attrs
7
- * - HTML (`text/html`) — deserializes via @rtif-sdk/format-html
7
+ *
8
+ * The HTML handler lives in `content-handler-html.ts` to isolate the
9
+ * `@rtif-sdk/format-html` dependency (tree-shaking friendly).
8
10
  *
9
11
  * @module
10
12
  */
11
- import { deserialize as deserializeHtml } from '@rtif-sdk/format-html';
12
13
  // ---------------------------------------------------------------------------
13
14
  // Plain text handler
14
15
  // ---------------------------------------------------------------------------
@@ -86,7 +87,7 @@ export function createPlainTextHandler(generateBlockId) {
86
87
  * @param blocks - Source blocks to insert
87
88
  * @param context - The content pipeline context
88
89
  */
89
- function insertBlocksAsOps(blocks, context) {
90
+ export function insertBlocksAsOps(blocks, context) {
90
91
  let insertOffset = context.deleteSelectionAndGetOffset();
91
92
  const ops = [];
92
93
  // Track the offsets where each new block starts, for set_span_marks later
@@ -249,44 +250,4 @@ function parseRtifPayload(jsonStr) {
249
250
  return null;
250
251
  }
251
252
  }
252
- // ---------------------------------------------------------------------------
253
- // HTML paste handler
254
- // ---------------------------------------------------------------------------
255
- /**
256
- * Create a content handler for HTML paste.
257
- *
258
- * Accepts `text/html` content and deserializes it via `@rtif-sdk/format-html`,
259
- * preserving formatting (bold, italic, links, headings, lists, code blocks, etc.).
260
- *
261
- * Priority: -90 (between RTIF JSON and plain text).
262
- *
263
- * @returns A ContentHandler for HTML paste
264
- *
265
- * @example
266
- * ```ts
267
- * const handler = createHtmlPasteHandler();
268
- * pipeline.register(handler);
269
- * ```
270
- */
271
- export function createHtmlPasteHandler() {
272
- return {
273
- id: 'rtif:html',
274
- accept: ['text/html'],
275
- priority: -90,
276
- async handle(item, context) {
277
- const html = await item.getString();
278
- if (html === null || html === '')
279
- return false;
280
- const doc = deserializeHtml(html);
281
- // Check if deserialization produced only a single empty block
282
- if (doc.blocks.length === 1 &&
283
- doc.blocks[0].spans.length === 1 &&
284
- doc.blocks[0].spans[0].text === '') {
285
- return false;
286
- }
287
- insertBlocksAsOps(doc.blocks, context);
288
- return true;
289
- },
290
- };
291
- }
292
253
  //# sourceMappingURL=content-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-handlers.js","sourceRoot":"","sources":["../src/content-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-handlers.js","sourceRoot":"","sources":["../src/content-handlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"drop-indicator.d.ts","sourceRoot":"","sources":["../src/drop-indicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;;;;;;;;OAYG;gBACS,SAAS,EAAE,WAAW;IAmBlC;;;;;;;;;;OAUG;IACH,WAAW,IAAI,IAAI;IAcnB;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI;IA0BvE;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI;IAMZ;;;;;;;;;;OAUG;IACH,OAAO,IAAI,IAAI;IAmBf,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;CAKrB"}
1
+ {"version":3,"file":"drop-indicator.d.ts","sourceRoot":"","sources":["../src/drop-indicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;;;;;;;;OAYG;gBACS,SAAS,EAAE,WAAW;IAmBlC;;;;;;;;;;OAUG;IACH,WAAW,IAAI,IAAI;IAcnB;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI;IAwBvE;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI;IAMZ;;;;;;;;;;OAUG;IACH,OAAO,IAAI,IAAI;IAmBf,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;CAKrB"}