@rtif-sdk/web 1.0.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 (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -0
  3. package/dist/block-drag-handler.d.ts +189 -0
  4. package/dist/block-drag-handler.d.ts.map +1 -0
  5. package/dist/block-drag-handler.js +745 -0
  6. package/dist/block-drag-handler.js.map +1 -0
  7. package/dist/block-renderer.d.ts +402 -0
  8. package/dist/block-renderer.d.ts.map +1 -0
  9. package/dist/block-renderer.js +424 -0
  10. package/dist/block-renderer.js.map +1 -0
  11. package/dist/clipboard.d.ts +178 -0
  12. package/dist/clipboard.d.ts.map +1 -0
  13. package/dist/clipboard.js +432 -0
  14. package/dist/clipboard.js.map +1 -0
  15. package/dist/command-bus.d.ts +113 -0
  16. package/dist/command-bus.d.ts.map +1 -0
  17. package/dist/command-bus.js +70 -0
  18. package/dist/command-bus.js.map +1 -0
  19. package/dist/composition.d.ts +220 -0
  20. package/dist/composition.d.ts.map +1 -0
  21. package/dist/composition.js +271 -0
  22. package/dist/composition.js.map +1 -0
  23. package/dist/content-extraction.d.ts +69 -0
  24. package/dist/content-extraction.d.ts.map +1 -0
  25. package/dist/content-extraction.js +228 -0
  26. package/dist/content-extraction.js.map +1 -0
  27. package/dist/content-handler-file.d.ts +40 -0
  28. package/dist/content-handler-file.d.ts.map +1 -0
  29. package/dist/content-handler-file.js +91 -0
  30. package/dist/content-handler-file.js.map +1 -0
  31. package/dist/content-handler-image.d.ts +82 -0
  32. package/dist/content-handler-image.d.ts.map +1 -0
  33. package/dist/content-handler-image.js +120 -0
  34. package/dist/content-handler-image.js.map +1 -0
  35. package/dist/content-handler-url.d.ts +129 -0
  36. package/dist/content-handler-url.d.ts.map +1 -0
  37. package/dist/content-handler-url.js +244 -0
  38. package/dist/content-handler-url.js.map +1 -0
  39. package/dist/content-handlers.d.ts +67 -0
  40. package/dist/content-handlers.d.ts.map +1 -0
  41. package/dist/content-handlers.js +263 -0
  42. package/dist/content-handlers.js.map +1 -0
  43. package/dist/content-pipeline.d.ts +383 -0
  44. package/dist/content-pipeline.d.ts.map +1 -0
  45. package/dist/content-pipeline.js +232 -0
  46. package/dist/content-pipeline.js.map +1 -0
  47. package/dist/cursor-nav.d.ts +149 -0
  48. package/dist/cursor-nav.d.ts.map +1 -0
  49. package/dist/cursor-nav.js +230 -0
  50. package/dist/cursor-nav.js.map +1 -0
  51. package/dist/cursor-rect.d.ts +65 -0
  52. package/dist/cursor-rect.d.ts.map +1 -0
  53. package/dist/cursor-rect.js +98 -0
  54. package/dist/cursor-rect.js.map +1 -0
  55. package/dist/drop-indicator.d.ts +108 -0
  56. package/dist/drop-indicator.d.ts.map +1 -0
  57. package/dist/drop-indicator.js +236 -0
  58. package/dist/drop-indicator.js.map +1 -0
  59. package/dist/editor.d.ts +41 -0
  60. package/dist/editor.d.ts.map +1 -0
  61. package/dist/editor.js +710 -0
  62. package/dist/editor.js.map +1 -0
  63. package/dist/floating-toolbar.d.ts +93 -0
  64. package/dist/floating-toolbar.d.ts.map +1 -0
  65. package/dist/floating-toolbar.js +159 -0
  66. package/dist/floating-toolbar.js.map +1 -0
  67. package/dist/index.d.ts +62 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +119 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/input-bridge.d.ts +273 -0
  72. package/dist/input-bridge.d.ts.map +1 -0
  73. package/dist/input-bridge.js +884 -0
  74. package/dist/input-bridge.js.map +1 -0
  75. package/dist/link-popover.d.ts +38 -0
  76. package/dist/link-popover.d.ts.map +1 -0
  77. package/dist/link-popover.js +278 -0
  78. package/dist/link-popover.js.map +1 -0
  79. package/dist/mark-renderer.d.ts +275 -0
  80. package/dist/mark-renderer.d.ts.map +1 -0
  81. package/dist/mark-renderer.js +210 -0
  82. package/dist/mark-renderer.js.map +1 -0
  83. package/dist/perf.d.ts +145 -0
  84. package/dist/perf.d.ts.map +1 -0
  85. package/dist/perf.js +260 -0
  86. package/dist/perf.js.map +1 -0
  87. package/dist/plugin-kit.d.ts +265 -0
  88. package/dist/plugin-kit.d.ts.map +1 -0
  89. package/dist/plugin-kit.js +234 -0
  90. package/dist/plugin-kit.js.map +1 -0
  91. package/dist/plugins/alignment-plugin.d.ts +68 -0
  92. package/dist/plugins/alignment-plugin.d.ts.map +1 -0
  93. package/dist/plugins/alignment-plugin.js +98 -0
  94. package/dist/plugins/alignment-plugin.js.map +1 -0
  95. package/dist/plugins/block-utils.d.ts +113 -0
  96. package/dist/plugins/block-utils.d.ts.map +1 -0
  97. package/dist/plugins/block-utils.js +191 -0
  98. package/dist/plugins/block-utils.js.map +1 -0
  99. package/dist/plugins/blockquote-plugin.d.ts +39 -0
  100. package/dist/plugins/blockquote-plugin.d.ts.map +1 -0
  101. package/dist/plugins/blockquote-plugin.js +88 -0
  102. package/dist/plugins/blockquote-plugin.js.map +1 -0
  103. package/dist/plugins/bold-plugin.d.ts +37 -0
  104. package/dist/plugins/bold-plugin.d.ts.map +1 -0
  105. package/dist/plugins/bold-plugin.js +48 -0
  106. package/dist/plugins/bold-plugin.js.map +1 -0
  107. package/dist/plugins/callout-plugin.d.ts +100 -0
  108. package/dist/plugins/callout-plugin.d.ts.map +1 -0
  109. package/dist/plugins/callout-plugin.js +200 -0
  110. package/dist/plugins/callout-plugin.js.map +1 -0
  111. package/dist/plugins/code-block-plugin.d.ts +62 -0
  112. package/dist/plugins/code-block-plugin.d.ts.map +1 -0
  113. package/dist/plugins/code-block-plugin.js +176 -0
  114. package/dist/plugins/code-block-plugin.js.map +1 -0
  115. package/dist/plugins/code-plugin.d.ts +37 -0
  116. package/dist/plugins/code-plugin.d.ts.map +1 -0
  117. package/dist/plugins/code-plugin.js +48 -0
  118. package/dist/plugins/code-plugin.js.map +1 -0
  119. package/dist/plugins/embed-plugin.d.ts +90 -0
  120. package/dist/plugins/embed-plugin.d.ts.map +1 -0
  121. package/dist/plugins/embed-plugin.js +147 -0
  122. package/dist/plugins/embed-plugin.js.map +1 -0
  123. package/dist/plugins/font-family-plugin.d.ts +58 -0
  124. package/dist/plugins/font-family-plugin.d.ts.map +1 -0
  125. package/dist/plugins/font-family-plugin.js +57 -0
  126. package/dist/plugins/font-family-plugin.js.map +1 -0
  127. package/dist/plugins/font-size-plugin.d.ts +57 -0
  128. package/dist/plugins/font-size-plugin.d.ts.map +1 -0
  129. package/dist/plugins/font-size-plugin.js +56 -0
  130. package/dist/plugins/font-size-plugin.js.map +1 -0
  131. package/dist/plugins/heading-plugin.d.ts +52 -0
  132. package/dist/plugins/heading-plugin.d.ts.map +1 -0
  133. package/dist/plugins/heading-plugin.js +114 -0
  134. package/dist/plugins/heading-plugin.js.map +1 -0
  135. package/dist/plugins/hr-plugin.d.ts +33 -0
  136. package/dist/plugins/hr-plugin.d.ts.map +1 -0
  137. package/dist/plugins/hr-plugin.js +75 -0
  138. package/dist/plugins/hr-plugin.js.map +1 -0
  139. package/dist/plugins/image-plugin.d.ts +115 -0
  140. package/dist/plugins/image-plugin.d.ts.map +1 -0
  141. package/dist/plugins/image-plugin.js +199 -0
  142. package/dist/plugins/image-plugin.js.map +1 -0
  143. package/dist/plugins/indent-plugin.d.ts +62 -0
  144. package/dist/plugins/indent-plugin.d.ts.map +1 -0
  145. package/dist/plugins/indent-plugin.js +128 -0
  146. package/dist/plugins/indent-plugin.js.map +1 -0
  147. package/dist/plugins/index.d.ts +45 -0
  148. package/dist/plugins/index.d.ts.map +1 -0
  149. package/dist/plugins/index.js +42 -0
  150. package/dist/plugins/index.js.map +1 -0
  151. package/dist/plugins/italic-plugin.d.ts +37 -0
  152. package/dist/plugins/italic-plugin.d.ts.map +1 -0
  153. package/dist/plugins/italic-plugin.js +48 -0
  154. package/dist/plugins/italic-plugin.js.map +1 -0
  155. package/dist/plugins/link-plugin.d.ts +129 -0
  156. package/dist/plugins/link-plugin.d.ts.map +1 -0
  157. package/dist/plugins/link-plugin.js +212 -0
  158. package/dist/plugins/link-plugin.js.map +1 -0
  159. package/dist/plugins/list-plugin.d.ts +53 -0
  160. package/dist/plugins/list-plugin.d.ts.map +1 -0
  161. package/dist/plugins/list-plugin.js +309 -0
  162. package/dist/plugins/list-plugin.js.map +1 -0
  163. package/dist/plugins/mark-utils.d.ts +173 -0
  164. package/dist/plugins/mark-utils.d.ts.map +1 -0
  165. package/dist/plugins/mark-utils.js +425 -0
  166. package/dist/plugins/mark-utils.js.map +1 -0
  167. package/dist/plugins/mention-plugin.d.ts +191 -0
  168. package/dist/plugins/mention-plugin.d.ts.map +1 -0
  169. package/dist/plugins/mention-plugin.js +295 -0
  170. package/dist/plugins/mention-plugin.js.map +1 -0
  171. package/dist/plugins/strikethrough-plugin.d.ts +37 -0
  172. package/dist/plugins/strikethrough-plugin.d.ts.map +1 -0
  173. package/dist/plugins/strikethrough-plugin.js +48 -0
  174. package/dist/plugins/strikethrough-plugin.js.map +1 -0
  175. package/dist/plugins/text-color-plugin.d.ts +57 -0
  176. package/dist/plugins/text-color-plugin.d.ts.map +1 -0
  177. package/dist/plugins/text-color-plugin.js +56 -0
  178. package/dist/plugins/text-color-plugin.js.map +1 -0
  179. package/dist/plugins/underline-plugin.d.ts +37 -0
  180. package/dist/plugins/underline-plugin.d.ts.map +1 -0
  181. package/dist/plugins/underline-plugin.js +48 -0
  182. package/dist/plugins/underline-plugin.js.map +1 -0
  183. package/dist/presets.d.ts +95 -0
  184. package/dist/presets.d.ts.map +1 -0
  185. package/dist/presets.js +159 -0
  186. package/dist/presets.js.map +1 -0
  187. package/dist/renderer.d.ts +125 -0
  188. package/dist/renderer.d.ts.map +1 -0
  189. package/dist/renderer.js +415 -0
  190. package/dist/renderer.js.map +1 -0
  191. package/dist/scroll-to-cursor.d.ts +25 -0
  192. package/dist/scroll-to-cursor.d.ts.map +1 -0
  193. package/dist/scroll-to-cursor.js +59 -0
  194. package/dist/scroll-to-cursor.js.map +1 -0
  195. package/dist/selection-sync.d.ts +159 -0
  196. package/dist/selection-sync.d.ts.map +1 -0
  197. package/dist/selection-sync.js +527 -0
  198. package/dist/selection-sync.js.map +1 -0
  199. package/dist/shortcut-handler.d.ts +98 -0
  200. package/dist/shortcut-handler.d.ts.map +1 -0
  201. package/dist/shortcut-handler.js +155 -0
  202. package/dist/shortcut-handler.js.map +1 -0
  203. package/dist/toolbar.d.ts +103 -0
  204. package/dist/toolbar.d.ts.map +1 -0
  205. package/dist/toolbar.js +134 -0
  206. package/dist/toolbar.js.map +1 -0
  207. package/dist/trigger-manager.d.ts +205 -0
  208. package/dist/trigger-manager.d.ts.map +1 -0
  209. package/dist/trigger-manager.js +466 -0
  210. package/dist/trigger-manager.js.map +1 -0
  211. package/dist/types.d.ts +216 -0
  212. package/dist/types.d.ts.map +1 -0
  213. package/dist/types.js +2 -0
  214. package/dist/types.js.map +1 -0
  215. package/package.json +30 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Cory Robinson
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # @rtif-sdk/web
2
+
3
+ Web platform implementation for RTIF (Rich Text Input Format). A vanilla TypeScript rich text editor built on `contenteditable`, with plugin presets, keyboard shortcuts, clipboard handling, IME support, and accessibility.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @rtif-sdk/web
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```typescript
14
+ import { createWebEditor, PRESET_STANDARD } from '@rtif-sdk/web';
15
+
16
+ const editor = createWebEditor({
17
+ root: document.getElementById('editor')!,
18
+ plugins: PRESET_STANDARD,
19
+ placeholder: 'Start typing...',
20
+ accessibleLabel: 'Document editor',
21
+ });
22
+
23
+ // Subscribe to changes
24
+ editor.onChange((state) => {
25
+ console.log('Document:', JSON.stringify(state.doc));
26
+ });
27
+ ```
28
+
29
+ ## Presets
30
+
31
+ Four plugin presets are included, each a superset of the previous:
32
+
33
+ | Preset | Plugins | Includes |
34
+ |--------|---------|----------|
35
+ | `PRESET_PLAINTEXT` | 0 | No formatting |
36
+ | `PRESET_BASIC` | 4 | Bold, italic, underline, link |
37
+ | `PRESET_STANDARD` | 11 | + strikethrough, code, heading, list, blockquote, code block, HR |
38
+ | `PRESET_FULL` | 19 | + text color, font size, font family, alignment, indent, callout, image, embed |
39
+
40
+ ## Features
41
+
42
+ - 8 RTIF operation types with full undo/redo
43
+ - IME/composition input (CJK, accent keys, dictation)
44
+ - Clipboard: copy/cut/paste with RTIF JSON, HTML, and plain text formats
45
+ - Keyboard shortcuts (Cmd/Ctrl+B, I, U, K, Z, etc.)
46
+ - Plugin system for custom block types, marks, commands, and input rules
47
+ - Content pipeline for paste/drop handling (images, URLs, files)
48
+ - @mention trigger infrastructure
49
+ - Accessibility: ARIA roles, keyboard-only operation, screen reader support
50
+
51
+ ## Plugin Kit
52
+
53
+ Create custom plugins with minimal boilerplate:
54
+
55
+ ```typescript
56
+ import { defineBooleanMark, defineBlockType } from '@rtif-sdk/web';
57
+
58
+ const highlight = defineBooleanMark({
59
+ markType: 'highlight',
60
+ shortcut: { key: 'h', mod: true, shift: true },
61
+ renderer: { apply(el) { el.style.backgroundColor = 'yellow'; } },
62
+ });
63
+ ```
64
+
65
+ ## License
66
+
67
+ MIT
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Block drag-and-drop handler — enables reordering blocks via drag handles.
3
+ *
4
+ * Provides two main exports:
5
+ * - {@link computeMoveBlockOps} — Pure function that computes the RTIF operations
6
+ * needed to move a block from one position to another.
7
+ * - {@link BlockDragHandler} — DOM event handler class that manages drag handles,
8
+ * drag events, drop indicator, and dispatches move operations.
9
+ *
10
+ * Since RTIF has no `move_block` core operation, block reordering is composed
11
+ * from existing operations: `delete_text`, `merge_block`, `split_block`,
12
+ * `insert_text`, `set_block_type`, `set_block_attrs`, and `set_span_marks`.
13
+ *
14
+ * @module
15
+ */
16
+ import type { Document, Operation } from '@rtif-sdk/core';
17
+ /**
18
+ * Dependencies injected into {@link BlockDragHandler}.
19
+ *
20
+ * This keeps the handler decoupled from the editor wiring and makes
21
+ * it testable in isolation.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const deps: BlockDragHandlerDeps = {
26
+ * root: editorRoot,
27
+ * getDoc: () => engine.state.doc,
28
+ * dispatch: (ops) => engine.dispatch(ops),
29
+ * isReadOnly: () => false,
30
+ * };
31
+ * ```
32
+ */
33
+ export interface BlockDragHandlerDeps {
34
+ /** The editor's contenteditable root element. */
35
+ readonly root: HTMLElement;
36
+ /** Return the current RTIF document. */
37
+ readonly getDoc: () => Document;
38
+ /** Dispatch one or more RTIF operations to the engine. */
39
+ readonly dispatch: (ops: Operation | Operation[]) => void;
40
+ /** Whether the editor is in read-only mode. */
41
+ readonly isReadOnly: () => boolean;
42
+ }
43
+ /**
44
+ * Compute the shallow-merge diff needed to transform `currentAttrs` into
45
+ * `targetAttrs` via a single `set_block_attrs` operation.
46
+ *
47
+ * Returns `null` if no changes are needed (attrs are already equivalent).
48
+ *
49
+ * @param currentAttrs - The block's current attrs (may be undefined)
50
+ * @param targetAttrs - The desired attrs (may be undefined)
51
+ * @returns An attrs diff object for `set_block_attrs`, or null if no diff
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * computeAttrsDiff({ level: 1 }, { level: 2 });
56
+ * // => { level: 2 }
57
+ *
58
+ * computeAttrsDiff({ level: 1, indent: 2 }, { color: 'red' });
59
+ * // => { level: null, indent: null, color: 'red' }
60
+ *
61
+ * computeAttrsDiff({ level: 1 }, { level: 1 });
62
+ * // => null
63
+ * ```
64
+ */
65
+ export declare function computeAttrsDiff(currentAttrs: Record<string, unknown> | undefined, targetAttrs: Record<string, unknown> | undefined): Record<string, unknown> | null;
66
+ /**
67
+ * Compute the RTIF operations needed to move a block to a new position.
68
+ *
69
+ * This is a pure function that takes the current document, the block ID to
70
+ * move, and the desired target index in the final array. It returns an
71
+ * array of RTIF operations that, when applied in sequence, produce a
72
+ * document with the block at the target position.
73
+ *
74
+ * The algorithm has three phases:
75
+ * 1. **Remove** — Delete the source block's text and merge it away
76
+ * 2. **Create** — Split at the target position to create an empty block
77
+ * 3. **Restore** — Insert text, set type/attrs, apply marks
78
+ *
79
+ * Block IDs are preserved when the source block is not the first block
80
+ * and the target position is not 0. In the target=0 case, the moved
81
+ * block inherits the ID of the block that was previously at index 0.
82
+ *
83
+ * @param doc - The current RTIF document
84
+ * @param blockId - The ID of the block to move
85
+ * @param targetIndex - The desired final index (0-based) in the result
86
+ * @returns Array of operations to apply, or empty array if no move needed
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * // Move third block to first position
91
+ * const ops = computeMoveBlockOps(doc, 'b3', 0);
92
+ * for (const op of ops) {
93
+ * const result = apply(currentDoc, op);
94
+ * currentDoc = result.doc;
95
+ * }
96
+ * ```
97
+ */
98
+ export declare function computeMoveBlockOps(doc: Document, blockId: string, targetIndex: number): Operation[];
99
+ /**
100
+ * DOM event handler for block drag-and-drop reordering.
101
+ *
102
+ * Shows a drag handle on block hover. When the user drags a block handle
103
+ * and drops it between other blocks, computes and dispatches the RTIF
104
+ * operations to move the block to the new position.
105
+ *
106
+ * Uses the existing {@link DropIndicator} for visual drop feedback.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * const handler = new BlockDragHandler({
111
+ * root: editorRoot,
112
+ * getDoc: () => engine.state.doc,
113
+ * dispatch: (ops) => engine.dispatch(ops),
114
+ * isReadOnly: () => false,
115
+ * });
116
+ *
117
+ * handler.attach();
118
+ * // ... user drags blocks ...
119
+ * handler.detach();
120
+ * ```
121
+ */
122
+ export declare class BlockDragHandler {
123
+ private readonly _deps;
124
+ private readonly _dropIndicator;
125
+ private _dragBlockId;
126
+ private _handleEl;
127
+ private _attached;
128
+ private readonly _onMouseOver;
129
+ private readonly _onMouseOut;
130
+ private readonly _onDragStart;
131
+ private readonly _onDragOver;
132
+ private readonly _onDragLeave;
133
+ private readonly _onDrop;
134
+ private readonly _onDragEnd;
135
+ /**
136
+ * Create a block drag handler.
137
+ *
138
+ * @param deps - Injected dependencies
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * const handler = new BlockDragHandler(deps);
143
+ * handler.attach();
144
+ * ```
145
+ */
146
+ constructor(deps: BlockDragHandlerDeps);
147
+ /**
148
+ * Attach event listeners to the editor root.
149
+ *
150
+ * @example
151
+ * ```ts
152
+ * handler.attach();
153
+ * ```
154
+ */
155
+ attach(): void;
156
+ /**
157
+ * Detach event listeners and clean up DOM.
158
+ *
159
+ * @example
160
+ * ```ts
161
+ * handler.detach();
162
+ * ```
163
+ */
164
+ detach(): void;
165
+ /**
166
+ * Show the drag handle next to a block element.
167
+ */
168
+ private _showHandle;
169
+ /**
170
+ * Hide the drag handle.
171
+ */
172
+ private _hideHandle;
173
+ /**
174
+ * Remove the drag handle from the DOM.
175
+ */
176
+ private _removeHandle;
177
+ private _handleMouseOver;
178
+ private _handleMouseOut;
179
+ private _handleDragStart;
180
+ private _handleDragOver;
181
+ private _handleDragLeave;
182
+ private _handleDrop;
183
+ private _handleDragEnd;
184
+ /**
185
+ * Clean up drag state after drop or cancel.
186
+ */
187
+ private _cleanup;
188
+ }
189
+ //# sourceMappingURL=block-drag-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-drag-handler.d.ts","sourceRoot":"","sources":["../src/block-drag-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgBvE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,QAAQ,CAAC;IAEhC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,IAAI,CAAC;IAE1D,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC;CACpC;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC/C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAwBhC;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,SAAS,EAAE,CAqOb;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAEpD;;;;;;;;;;OAUG;gBACS,IAAI,EAAE,oBAAoB;IActC;;;;;;;OAOG;IACH,MAAM,IAAI,IAAI;IAcd;;;;;;;OAOG;IACH,MAAM,IAAI,IAAI;IAsBd;;OAEG;IACH,OAAO,CAAC,WAAW;IAyBnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,gBAAgB;IAiCxB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAcjB"}