@moda-editor/core 0.1.3 → 0.1.5

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 (243) hide show
  1. package/dist/collab.d.ts +61 -0
  2. package/dist/collab.d.ts.map +1 -0
  3. package/dist/collab.js +67 -0
  4. package/dist/collab.js.map +1 -0
  5. package/dist/commands.d.ts +11 -0
  6. package/dist/commands.d.ts.map +1 -1
  7. package/dist/commands.js +48 -4
  8. package/dist/commands.js.map +1 -1
  9. package/dist/conformance/editor-base.d.ts +7 -0
  10. package/dist/conformance/editor-base.d.ts.map +1 -0
  11. package/dist/conformance/editor-base.js +280 -0
  12. package/dist/conformance/editor-base.js.map +1 -0
  13. package/dist/conformance/editor-codeblock.d.ts +8 -0
  14. package/dist/conformance/editor-codeblock.d.ts.map +1 -0
  15. package/dist/conformance/editor-codeblock.js +402 -0
  16. package/dist/conformance/editor-codeblock.js.map +1 -0
  17. package/dist/conformance/editor-ime.d.ts +7 -0
  18. package/dist/conformance/editor-ime.d.ts.map +1 -0
  19. package/dist/conformance/editor-ime.js +166 -0
  20. package/dist/conformance/editor-ime.js.map +1 -0
  21. package/dist/conformance/editor-input.d.ts +8 -0
  22. package/dist/conformance/editor-input.d.ts.map +1 -0
  23. package/dist/conformance/editor-input.js +676 -0
  24. package/dist/conformance/editor-input.js.map +1 -0
  25. package/dist/conformance/editor-nodeview.d.ts +7 -0
  26. package/dist/conformance/editor-nodeview.d.ts.map +1 -0
  27. package/dist/conformance/editor-nodeview.js +120 -0
  28. package/dist/conformance/editor-nodeview.js.map +1 -0
  29. package/dist/conformance/editor-overlay.d.ts +8 -0
  30. package/dist/conformance/editor-overlay.d.ts.map +1 -0
  31. package/dist/conformance/editor-overlay.js +323 -0
  32. package/dist/conformance/editor-overlay.js.map +1 -0
  33. package/dist/conformance/fixtures.d.ts +4 -0
  34. package/dist/conformance/fixtures.d.ts.map +1 -0
  35. package/dist/conformance/fixtures.js +15 -0
  36. package/dist/conformance/fixtures.js.map +1 -0
  37. package/dist/conformance/index.d.ts +14 -0
  38. package/dist/conformance/index.d.ts.map +1 -0
  39. package/dist/conformance/index.js +28 -0
  40. package/dist/conformance/index.js.map +1 -0
  41. package/dist/conformance/types.d.ts +51 -0
  42. package/dist/conformance/types.d.ts.map +1 -0
  43. package/dist/conformance/types.js +2 -0
  44. package/dist/conformance/types.js.map +1 -0
  45. package/dist/conformance/widget.d.ts +3 -0
  46. package/dist/conformance/widget.d.ts.map +1 -0
  47. package/dist/conformance/widget.js +49 -0
  48. package/dist/conformance/widget.js.map +1 -0
  49. package/dist/conformance.d.ts +1 -58
  50. package/dist/conformance.d.ts.map +1 -1
  51. package/dist/conformance.js +3 -1748
  52. package/dist/conformance.js.map +1 -1
  53. package/dist/editor/extension.d.ts +47 -3
  54. package/dist/editor/extension.d.ts.map +1 -1
  55. package/dist/features/ace.d.ts +4 -0
  56. package/dist/features/ace.d.ts.map +1 -1
  57. package/dist/features/ace.js +34 -13
  58. package/dist/features/ace.js.map +1 -1
  59. package/dist/features/block-dnd.d.ts +7 -0
  60. package/dist/features/block-dnd.d.ts.map +1 -0
  61. package/dist/features/block-dnd.js +207 -0
  62. package/dist/features/block-dnd.js.map +1 -0
  63. package/dist/features/code-block.d.ts +9 -84
  64. package/dist/features/code-block.d.ts.map +1 -1
  65. package/dist/features/code-block.js +37 -1027
  66. package/dist/features/code-block.js.map +1 -1
  67. package/dist/features/code-context.d.ts +81 -0
  68. package/dist/features/code-context.d.ts.map +1 -0
  69. package/dist/features/code-context.js +322 -0
  70. package/dist/features/code-context.js.map +1 -0
  71. package/dist/features/code-edit.d.ts +50 -0
  72. package/dist/features/code-edit.d.ts.map +1 -0
  73. package/dist/features/code-edit.js +412 -0
  74. package/dist/features/code-edit.js.map +1 -0
  75. package/dist/features/code-format.d.ts +21 -0
  76. package/dist/features/code-format.d.ts.map +1 -0
  77. package/dist/features/code-format.js +410 -0
  78. package/dist/features/code-format.js.map +1 -0
  79. package/dist/features/doc.d.ts.map +1 -1
  80. package/dist/features/doc.js +1 -1
  81. package/dist/features/doc.js.map +1 -1
  82. package/dist/features/heading.d.ts.map +1 -1
  83. package/dist/features/heading.js.map +1 -1
  84. package/dist/features/image.d.ts.map +1 -1
  85. package/dist/features/image.js +11 -2
  86. package/dist/features/image.js.map +1 -1
  87. package/dist/features/index.d.ts +7 -0
  88. package/dist/features/index.d.ts.map +1 -1
  89. package/dist/features/index.js +16 -0
  90. package/dist/features/index.js.map +1 -1
  91. package/dist/features/inline-style.d.ts.map +1 -1
  92. package/dist/features/inline-style.js +4 -1
  93. package/dist/features/inline-style.js.map +1 -1
  94. package/dist/features/link.d.ts.map +1 -1
  95. package/dist/features/link.js +1 -1
  96. package/dist/features/link.js.map +1 -1
  97. package/dist/features/markdown.d.ts +15 -0
  98. package/dist/features/markdown.d.ts.map +1 -0
  99. package/dist/features/markdown.js +80 -0
  100. package/dist/features/markdown.js.map +1 -0
  101. package/dist/features/marks.d.ts.map +1 -1
  102. package/dist/features/marks.js +49 -4
  103. package/dist/features/marks.js.map +1 -1
  104. package/dist/features/mention.d.ts +30 -0
  105. package/dist/features/mention.d.ts.map +1 -0
  106. package/dist/features/mention.js +89 -0
  107. package/dist/features/mention.js.map +1 -0
  108. package/dist/features/script.d.ts.map +1 -1
  109. package/dist/features/script.js.map +1 -1
  110. package/dist/features/search.d.ts +73 -0
  111. package/dist/features/search.d.ts.map +1 -0
  112. package/dist/features/search.js +252 -0
  113. package/dist/features/search.js.map +1 -0
  114. package/dist/features/shared.d.ts +69 -0
  115. package/dist/features/shared.d.ts.map +1 -0
  116. package/dist/features/shared.js +272 -0
  117. package/dist/features/shared.js.map +1 -0
  118. package/dist/features/table.d.ts.map +1 -1
  119. package/dist/features/table.js +17 -3
  120. package/dist/features/table.js.map +1 -1
  121. package/dist/features/testkit.d.ts.map +1 -1
  122. package/dist/features/testkit.js +1 -1
  123. package/dist/features/testkit.js.map +1 -1
  124. package/dist/history.d.ts.map +1 -1
  125. package/dist/history.js +65 -20
  126. package/dist/history.js.map +1 -1
  127. package/dist/index.d.ts +19 -7
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +16 -6
  130. package/dist/index.js.map +1 -1
  131. package/dist/model/schema.d.ts.map +1 -1
  132. package/dist/model/schema.js +2 -1
  133. package/dist/model/schema.js.map +1 -1
  134. package/dist/parse/html.d.ts.map +1 -1
  135. package/dist/parse/html.js +38 -6
  136. package/dist/parse/html.js.map +1 -1
  137. package/dist/parse/sanitize.d.ts.map +1 -1
  138. package/dist/parse/sanitize.js +4 -1
  139. package/dist/parse/sanitize.js.map +1 -1
  140. package/dist/presets/highlight.d.ts.map +1 -1
  141. package/dist/presets/highlight.js +1 -4
  142. package/dist/presets/highlight.js.map +1 -1
  143. package/dist/presets/markdown-parse.d.ts +13 -0
  144. package/dist/presets/markdown-parse.d.ts.map +1 -0
  145. package/dist/presets/markdown-parse.js +398 -0
  146. package/dist/presets/markdown-parse.js.map +1 -0
  147. package/dist/presets/markdown.d.ts +45 -0
  148. package/dist/presets/markdown.d.ts.map +1 -0
  149. package/dist/presets/markdown.js +195 -0
  150. package/dist/presets/markdown.js.map +1 -0
  151. package/dist/state/apply.d.ts.map +1 -1
  152. package/dist/state/apply.js +19 -11
  153. package/dist/state/apply.js.map +1 -1
  154. package/dist/state/delete-ops.d.ts +34 -0
  155. package/dist/state/delete-ops.d.ts.map +1 -0
  156. package/dist/state/delete-ops.js +204 -0
  157. package/dist/state/delete-ops.js.map +1 -0
  158. package/dist/state/input-rules.d.ts +30 -0
  159. package/dist/state/input-rules.d.ts.map +1 -0
  160. package/dist/state/input-rules.js +70 -0
  161. package/dist/state/input-rules.js.map +1 -0
  162. package/dist/state/insert-ops.d.ts +54 -0
  163. package/dist/state/insert-ops.d.ts.map +1 -0
  164. package/dist/state/insert-ops.js +186 -0
  165. package/dist/state/insert-ops.js.map +1 -0
  166. package/dist/state/list-ops.d.ts +46 -0
  167. package/dist/state/list-ops.d.ts.map +1 -0
  168. package/dist/state/list-ops.js +231 -0
  169. package/dist/state/list-ops.js.map +1 -0
  170. package/dist/state/navigate.d.ts.map +1 -1
  171. package/dist/state/navigate.js +3 -1
  172. package/dist/state/navigate.js.map +1 -1
  173. package/dist/state/resolve-insert.d.ts +55 -0
  174. package/dist/state/resolve-insert.d.ts.map +1 -0
  175. package/dist/state/resolve-insert.js +118 -0
  176. package/dist/state/resolve-insert.js.map +1 -0
  177. package/dist/state/slice-ops.d.ts +46 -0
  178. package/dist/state/slice-ops.d.ts.map +1 -0
  179. package/dist/state/slice-ops.js +150 -0
  180. package/dist/state/slice-ops.js.map +1 -0
  181. package/dist/state/state.d.ts +6 -1
  182. package/dist/state/state.d.ts.map +1 -1
  183. package/dist/state/state.js +10 -0
  184. package/dist/state/state.js.map +1 -1
  185. package/dist/state/transaction.d.ts +43 -49
  186. package/dist/state/transaction.d.ts.map +1 -1
  187. package/dist/state/transaction.js +62 -858
  188. package/dist/state/transaction.js.map +1 -1
  189. package/dist/styles.css +160 -29
  190. package/dist/view/adapter.d.ts +84 -0
  191. package/dist/view/adapter.d.ts.map +1 -0
  192. package/dist/view/adapter.js +76 -0
  193. package/dist/view/adapter.js.map +1 -0
  194. package/dist/view/caret.d.ts +25 -0
  195. package/dist/view/caret.d.ts.map +1 -0
  196. package/dist/view/caret.js +43 -0
  197. package/dist/view/caret.js.map +1 -0
  198. package/dist/view/decoration.d.ts +9 -0
  199. package/dist/view/decoration.d.ts.map +1 -0
  200. package/dist/view/decoration.js +214 -0
  201. package/dist/view/decoration.js.map +1 -0
  202. package/dist/view/dirty-keys.d.ts +18 -0
  203. package/dist/view/dirty-keys.d.ts.map +1 -0
  204. package/dist/view/dirty-keys.js +31 -0
  205. package/dist/view/dirty-keys.js.map +1 -0
  206. package/dist/view/dom.d.ts.map +1 -1
  207. package/dist/view/dom.js +7 -5
  208. package/dist/view/dom.js.map +1 -1
  209. package/dist/view/hook-ctx.d.ts +32 -0
  210. package/dist/view/hook-ctx.d.ts.map +1 -0
  211. package/dist/view/hook-ctx.js +64 -0
  212. package/dist/view/hook-ctx.js.map +1 -0
  213. package/dist/view/ime.d.ts +72 -0
  214. package/dist/view/ime.d.ts.map +1 -0
  215. package/dist/view/ime.js +185 -0
  216. package/dist/view/ime.js.map +1 -0
  217. package/dist/view/input.d.ts +12 -12
  218. package/dist/view/input.d.ts.map +1 -1
  219. package/dist/view/input.js +83 -534
  220. package/dist/view/input.js.map +1 -1
  221. package/dist/view/keys.d.ts +25 -0
  222. package/dist/view/keys.d.ts.map +1 -0
  223. package/dist/view/keys.js +106 -0
  224. package/dist/view/keys.js.map +1 -0
  225. package/dist/view/line-nav.d.ts +13 -0
  226. package/dist/view/line-nav.d.ts.map +1 -0
  227. package/dist/view/line-nav.js +114 -0
  228. package/dist/view/line-nav.js.map +1 -0
  229. package/dist/view/mount.d.ts.map +1 -1
  230. package/dist/view/mount.js +43 -39
  231. package/dist/view/mount.js.map +1 -1
  232. package/dist/view/node-selection.d.ts +33 -0
  233. package/dist/view/node-selection.d.ts.map +1 -0
  234. package/dist/view/node-selection.js +107 -0
  235. package/dist/view/node-selection.js.map +1 -0
  236. package/dist/view/render.d.ts +4 -1
  237. package/dist/view/render.d.ts.map +1 -1
  238. package/dist/view/render.js +13 -3
  239. package/dist/view/render.js.map +1 -1
  240. package/dist/view/serialize.d.ts.map +1 -1
  241. package/dist/view/serialize.js +14 -5
  242. package/dist/view/serialize.js.map +1 -1
  243. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,uCAAuC;AACvC,cAAc,wBAAwB,CAAC"}
@@ -135,11 +135,48 @@ export interface InputHooks {
135
135
  * 디스패치할 때 쓴다 (핸들 드래그 → setNodeAttr 등).
136
136
  */
137
137
  paintOverlay?(el: HTMLElement, state: EditorState, editor: Editor): void;
138
+ /**
139
+ * 입력 바인딩 해제 시 오버레이 정리 — paintOverlay가 만든 오버레이
140
+ * DOM(.me-gutter/.me-codeui/…)과 ResizeObserver 같은 구독을 해제한다.
141
+ * 안 구현하면 옵저버가 el을 붙잡아 GC가 회수하지 못한다.
142
+ */
143
+ destroyOverlay?(el: HTMLElement): void;
138
144
  }
139
145
  /**
140
- * 플러그인 — 트랜잭션 파이프라인 훅 + 전용 상태.
141
- * PM plugin과 같은 역할이지만 뷰 계층(view/decorations)은 어댑터가
142
- * 가지므로 코어 플러그인은 상태 쪽 책임만 가진다.
146
+ * 뷰 데코레이션 속성 — 렌더 트리의 DOM attrs에 병합된다.
147
+ * class는 공백으로 연결하고 나머지 키는 덮어쓴다.
148
+ */
149
+ export interface DecorationAttrs {
150
+ class?: string;
151
+ style?: string;
152
+ [k: string]: string | undefined;
153
+ }
154
+ /**
155
+ * 뷰 데코레이션 — doc을 바꾸지 않는 표시 계층 (PM Decoration 대응).
156
+ *
157
+ * inline — 텍스트 범위를 .me-deco span으로 감싼다. 텍스트 홀더
158
+ * *내부*를 쪼개므로 자식 수가 안 바뀌고 DOM↔doc 오프셋
159
+ * 매핑(텍스트 누적 순회)이 유지된다 — codeHighlighter의
160
+ * 토큰 스팬과 같은 안전 조건.
161
+ * node — 블록 최외곽 요소의 attrs에 병합 (배경·테두리 등).
162
+ *
163
+ * 위젯 데코레이션은 의도적으로 없다 — `.me-editor` 직계 자식이
164
+ * AST와 1:1이어야 하므로 문서 부수 DOM은 paintOverlay가 담당한다.
165
+ */
166
+ export type Decoration = {
167
+ type: "inline";
168
+ from: Point;
169
+ to: Point;
170
+ attrs: DecorationAttrs;
171
+ } | {
172
+ type: "node";
173
+ path: readonly number[];
174
+ attrs: DecorationAttrs;
175
+ };
176
+ /**
177
+ * 플러그인 — 트랜잭션 파이프라인 훅 + 전용 상태 + 뷰 데코레이션.
178
+ * PM plugin과 같은 역할이지만 뷰 계층 렌더는 어댑터가 가지므로
179
+ * 코어 플러그인은 상태 계산 + 데코레이션 기술만 담당한다.
143
180
  */
144
181
  export interface Plugin {
145
182
  readonly key: string;
@@ -154,6 +191,13 @@ export interface Plugin {
154
191
  init?(state: EditorState): unknown;
155
192
  /** tr 적용 시 전용 상태 갱신 — 반환값이 새 pluginState[key] */
156
193
  apply?(tr: Transaction, value: unknown, prevState: EditorState, state: EditorState): unknown;
194
+ /**
195
+ * 뷰 데코레이션 — 매 렌더마다 상태로부터 계산한다 (순수 함수여야 함).
196
+ * pluginState 기반 표시(검색 매치·린트 밑줄·협업 캐럿 등)를
197
+ * doc 변경 없이 그리는 공식 경로. 반환값은 `state.decorations()`에
198
+ * 합산돼 렌더러로 전달된다.
199
+ */
200
+ decorations?(state: EditorState): readonly Decoration[];
157
201
  }
158
202
  /** 기능 번들 — 개발자가 주입하는 단위 */
159
203
  export interface Extension {
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/editor/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/editor/extension.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@
4
4
  * Ace의 active-line 배경·거터 강조를 CSS가 그리고, 라인번호 거터·
5
5
  * 코드 줄번호·언어 라벨은 .me-gutter 오버레이 DOM으로 그린다
6
6
  * (편집 영역 안의 생성 콘텐츠는 Chrome 캐럿 경계를 깨뜨린다).
7
+ *
8
+ * 뷰 상태는 aceViews(WeakMap<HTMLElement, AceViewState>)에 캡슐화 —
9
+ * 시그니처·거터 타깃·ResizeObserver가 한 엔트리로 묶이고,
10
+ * destroyOverlay에서 옵저버 해제 + 거터 제거로 정리한다.
7
11
  */
8
12
  export declare const aceFeature: import("./feature.js").Feature;
9
13
  //# sourceMappingURL=ace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ace.d.ts","sourceRoot":"","sources":["../../src/features/ace.ts"],"names":[],"mappings":"AAkKA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,gCAsCrB,CAAC"}
1
+ {"version":3,"file":"ace.d.ts","sourceRoot":"","sources":["../../src/features/ace.ts"],"names":[],"mappings":"AA6LA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,gCA2CrB,CAAC"}
@@ -1,6 +1,13 @@
1
1
  import { defineFeature } from "./feature.js";
2
- const gutterSig = new WeakMap();
3
- const gutterTargets = new WeakMap();
2
+ const aceViews = new WeakMap();
3
+ function aceView(el) {
4
+ let s = aceViews.get(el);
5
+ if (!s) {
6
+ s = { sig: null, targets: [], observer: null };
7
+ aceViews.set(el, s);
8
+ }
9
+ return s;
10
+ }
4
11
  /**
5
12
  * 라인번호·언어 라벨 오버레이 — contenteditable "안"의 ::before/
6
13
  * ::marker·절대위치 요소는 Chrome의 Home/End 줄 경계 계산을 깨뜨려
@@ -13,6 +20,7 @@ function syncGutter(el, state, activeBlock, activeLine) {
13
20
  const root = el.parentElement;
14
21
  if (!root)
15
22
  return;
23
+ const view = aceView(el);
16
24
  let gut = root.querySelector(":scope > .me-gutter");
17
25
  if (!gut) {
18
26
  gut = el.ownerDocument.createElement("div");
@@ -20,7 +28,12 @@ function syncGutter(el, state, activeBlock, activeLine) {
20
28
  gut.setAttribute("aria-hidden", "true");
21
29
  root.appendChild(gut);
22
30
  // 창 리사이즈·비동기 폰트 로드 등 doc과 무관한 리플로우도 재배치
23
- new ResizeObserver(() => gutterSig.delete(el)).observe(el);
31
+ if (!view.observer) {
32
+ view.observer = new ResizeObserver(() => {
33
+ view.sig = null;
34
+ });
35
+ view.observer.observe(el);
36
+ }
24
37
  }
25
38
  const cur = {
26
39
  doc: state.doc,
@@ -30,7 +43,7 @@ function syncGutter(el, state, activeBlock, activeLine) {
30
43
  n: el.childElementCount,
31
44
  st: el.scrollTop,
32
45
  };
33
- const sig = gutterSig.get(el);
46
+ const sig = view.sig;
34
47
  const relayout = !sig ||
35
48
  sig.doc !== cur.doc ||
36
49
  sig.h !== cur.h ||
@@ -39,7 +52,7 @@ function syncGutter(el, state, activeBlock, activeLine) {
39
52
  sig.n !== cur.n ||
40
53
  sig.st !== cur.st;
41
54
  if (relayout) {
42
- gutterSig.set(el, cur);
55
+ view.sig = cur;
43
56
  const base = root.getBoundingClientRect();
44
57
  const elR = el.getBoundingClientRect();
45
58
  const targets = [];
@@ -90,18 +103,16 @@ function syncGutter(el, state, activeBlock, activeLine) {
90
103
  }
91
104
  const r = c.getBoundingClientRect();
92
105
  // 번호를 블록 첫 줄 세로에 맞춘다 — 제목·리스트 높이 차이 흡수
93
- const lh = el.ownerDocument.defaultView
94
- ?.getComputedStyle(c)
95
- .lineHeight;
106
+ const lh = el.ownerDocument.defaultView?.getComputedStyle(c).lineHeight;
96
107
  emit("me-gnum", String(i + 1), r.top - base.top, elR.left - base.left, lh && lh !== "normal" ? lh : null, c);
97
108
  }
98
109
  while (gut.children.length > used) {
99
110
  gut.lastElementChild?.remove();
100
111
  }
101
- gutterTargets.set(gut, targets);
112
+ view.targets = targets;
102
113
  }
103
114
  // 활성 번호 강조 — doc이 같아도 캐럿은 움직이므로 매 paint 갱신
104
- const targets = gutterTargets.get(gut) ?? [];
115
+ const targets = view.targets;
105
116
  for (let i = 0; i < gut.children.length; i++) {
106
117
  const t = targets[i];
107
118
  gut.children[i].classList.toggle("is-active", t != null && (t === activeBlock || t === activeLine));
@@ -113,6 +124,10 @@ function syncGutter(el, state, activeBlock, activeLine) {
113
124
  * Ace의 active-line 배경·거터 강조를 CSS가 그리고, 라인번호 거터·
114
125
  * 코드 줄번호·언어 라벨은 .me-gutter 오버레이 DOM으로 그린다
115
126
  * (편집 영역 안의 생성 콘텐츠는 Chrome 캐럿 경계를 깨뜨린다).
127
+ *
128
+ * 뷰 상태는 aceViews(WeakMap<HTMLElement, AceViewState>)에 캡슐화 —
129
+ * 시그니처·거터 타깃·ResizeObserver가 한 엔트리로 묶이고,
130
+ * destroyOverlay에서 옵저버 해제 + 거터 제거로 정리한다.
116
131
  */
117
132
  export const aceFeature = defineFeature({
118
133
  name: "ace",
@@ -127,9 +142,7 @@ export const aceFeature = defineFeature({
127
142
  // 셀렉션 앵커에서 올라가 에디터의 직계 자식을 찾는다 — 직계
128
143
  // 자식이 곧 최상위 doc 블록이다. 콜아웃 같은 노드 뷰는 래퍼가
129
144
  // data-me-path를 갖지 않아도 직계 자식이므로 그대로 취한다
130
- const near = node.nodeType === 1
131
- ? node
132
- : node.parentElement;
145
+ const near = node.nodeType === 1 ? node : node.parentElement;
133
146
  let host = near;
134
147
  while (host && host.parentElement !== el) {
135
148
  host = host.parentElement;
@@ -150,6 +163,14 @@ export const aceFeature = defineFeature({
150
163
  syncGutter(el, state, active, activeLine);
151
164
  });
152
165
  },
166
+ destroyOverlay(el) {
167
+ // 바인딩 해제 — 거터 DOM 제거 + 리사이즈 옵저버 해제.
168
+ // WeakMap 엔트리도 지워 재마운트가 깨끗한 상태로 시작하게 한다
169
+ const view = aceViews.get(el);
170
+ view?.observer?.disconnect();
171
+ el.parentElement?.querySelector(":scope > .me-gutter")?.remove();
172
+ aceViews.delete(el);
173
+ },
153
174
  },
154
175
  });
155
176
  //# sourceMappingURL=ace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ace.js","sourceRoot":"","sources":["../../src/features/ace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ace.js","sourceRoot":"","sources":["../../src/features/ace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 블록 드래그&드롭 피처 — `moveBlock(from, to)` 커맨드 + 호버 핸들/
3
+ * 드롭 라인 오버레이. `to`는 제거 전 기준 삽입 경계다
4
+ * (예: 블록0을 블록2 뒤로 → moveBlock(0, 3)).
5
+ */
6
+ export declare const blockDndFeature: import("./feature.js").Feature;
7
+ //# sourceMappingURL=block-dnd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-dnd.d.ts","sourceRoot":"","sources":["../../src/features/block-dnd.ts"],"names":[],"mappings":"AAmLA;;;;GAIG;AACH,eAAO,MAAM,eAAe,gCAwC1B,CAAC"}
@@ -0,0 +1,207 @@
1
+ import { point } from "../state/selection.js";
2
+ import { defineFeature } from "./feature.js";
3
+ /**
4
+ * 블록 드래그&드롭 — Notion식 블록 재배치.
5
+ *
6
+ * DOM 계약: `.me-editor`의 직계 요소 자식은 doc 루트 블록과 1:1 —
7
+ * 자식 인덱스가 곧 블록 경로다. 최상위 블록만 이동 대상으로 한다
8
+ * (중첩 블록의 리스트/표 내부 재배치는 별개 기능).
9
+ *
10
+ * UI는 .me-editor의 형제 오버레이(.me-dnd)로 그린다 — 편집 DOM 안에
11
+ * 핸들을 넣으면 DOM↔Point 매핑과 IME 경계가 깨진다. 거터 스트립
12
+ * (왼쪽 여백)에만 겹치게 둬 Chrome 캐럿 줄 경계 계산을 지킨다.
13
+ *
14
+ * .me-dnd (pointer-events:none)
15
+ * ├ .me-drag-handle (pointer-events:auto, draggable) — 호버 블록 좌측
16
+ * └ .me-drop-line — dragover 중 삽입 경계 표시
17
+ *
18
+ * 데이터는 "application/x-moda-block" MIME로 나른다 — 파일 드롭
19
+ * (imageFeature의 files 훅)과 섞이지 않게 자기 타입일 때만
20
+ * dragover/drop을 소비한다.
21
+ */
22
+ const MIME = "application/x-moda-block";
23
+ const dndViews = new WeakMap();
24
+ /**
25
+ * 포인터 아래의 최상위 블록 — target에서 올라가 el의 직계 자식을
26
+ * 찾는다. 직계 자식 인덱스 = doc 루트 블록 인덱스 (DOM 계약).
27
+ * 노드 뷰 래퍼(.me-node-view)도 직계 자식이므로 같은 규칙이 성립한다.
28
+ */
29
+ function topBlockAt(el, target) {
30
+ const ElementCtor = el.ownerDocument.defaultView?.Element;
31
+ if (!ElementCtor || !(target instanceof ElementCtor))
32
+ return null;
33
+ let host = target;
34
+ while (host && host.parentElement !== el)
35
+ host = host.parentElement;
36
+ if (!host)
37
+ return null;
38
+ return { host, index: Array.prototype.indexOf.call(el.children, host) };
39
+ }
40
+ /**
41
+ * dragover의 삽입 경계 — 블록 중간선 기준 before/after를 계산한다.
42
+ * to는 "원래 배열의 삽입 경계"(블록 i 앞=i, 뒤=i+1), y는 표시선 위치.
43
+ */
44
+ function dropTargetAt(el, e) {
45
+ const hit = topBlockAt(el, e.target);
46
+ if (!hit)
47
+ return null;
48
+ const r = hit.host.getBoundingClientRect();
49
+ const after = e.clientY > r.top + r.height / 2;
50
+ return { to: hit.index + (after ? 1 : 0), y: after ? r.bottom : r.top };
51
+ }
52
+ /**
53
+ * 오버레이 DOM과 이벤트 리스너를 지연 바인딩한다 — paintOverlay는
54
+ * 렌더 커밋마다 호출되므로 WeakMap으로 한 번만 붙인다.
55
+ */
56
+ function ensureBound(el, editor) {
57
+ const prev = dndViews.get(el);
58
+ if (prev)
59
+ return prev;
60
+ const doc = el.ownerDocument;
61
+ const root = el.parentElement;
62
+ // .me-root 형제로 올라가야 하므로 부모가 없으면 오버레이를 못 둔다
63
+ if (!root)
64
+ return null;
65
+ const overlay = doc.createElement("div");
66
+ overlay.className = "me-dnd";
67
+ overlay.setAttribute("contenteditable", "false");
68
+ const handle = doc.createElement("div");
69
+ handle.className = "me-drag-handle";
70
+ handle.draggable = true;
71
+ handle.title = "드래그해서 블록 이동";
72
+ handle.textContent = "⋮⋮";
73
+ const line = doc.createElement("div");
74
+ line.className = "me-drop-line";
75
+ overlay.append(handle, line);
76
+ root.appendChild(overlay);
77
+ const vs = {
78
+ overlay,
79
+ handle,
80
+ line,
81
+ hover: -1,
82
+ from: null,
83
+ listeners: [],
84
+ };
85
+ const on = (t, type, fn) => {
86
+ t.addEventListener(type, fn);
87
+ vs.listeners.push([t, type, fn]);
88
+ };
89
+ // 블록 위 호버 → 핸들을 그 블록의 왼쪽 거터 자리에 표시한다
90
+ on(el, "mousemove", ((e) => {
91
+ if (vs.from !== null)
92
+ return; // 드래그 중에는 핸들을 감춘 채 둔다
93
+ const hit = topBlockAt(el, e.target);
94
+ if (!hit) {
95
+ vs.hover = -1;
96
+ handle.classList.remove("is-visible");
97
+ return;
98
+ }
99
+ vs.hover = hit.index;
100
+ const r = hit.host.getBoundingClientRect();
101
+ const rr = overlay.getBoundingClientRect();
102
+ handle.style.top = `${r.top - rr.top}px`;
103
+ handle.classList.add("is-visible");
104
+ }));
105
+ on(el, "mouseleave", (() => {
106
+ vs.hover = -1;
107
+ handle.classList.remove("is-visible");
108
+ }));
109
+ on(handle, "dragstart", ((e) => {
110
+ if (vs.hover < 0) {
111
+ e.preventDefault();
112
+ return;
113
+ }
114
+ vs.from = vs.hover;
115
+ e.dataTransfer?.setData(MIME, String(vs.from));
116
+ // effectAllowed가 없으면 일부 브라우저가 drop을 보내지 않는다
117
+ if (e.dataTransfer)
118
+ e.dataTransfer.effectAllowed = "move";
119
+ handle.classList.remove("is-visible");
120
+ }));
121
+ const clearDrag = () => {
122
+ vs.from = null;
123
+ line.classList.remove("is-visible");
124
+ handle.classList.remove("is-visible");
125
+ };
126
+ on(handle, "dragend", clearDrag);
127
+ on(el, "dragover", ((e) => {
128
+ // 우리 MIME이 아니면(파일 드롭 등) 관여하지 않는다
129
+ if (!e.dataTransfer?.types.includes(MIME))
130
+ return;
131
+ const t = dropTargetAt(el, e);
132
+ if (!t)
133
+ return;
134
+ e.preventDefault(); // drop 허용
135
+ if (e.dataTransfer)
136
+ e.dataTransfer.dropEffect = "move";
137
+ const rr = overlay.getBoundingClientRect();
138
+ line.style.top = `${t.y - rr.top}px`;
139
+ line.classList.add("is-visible");
140
+ }));
141
+ on(el, "drop", ((e) => {
142
+ if (!e.dataTransfer?.types.includes(MIME))
143
+ return;
144
+ const t = dropTargetAt(el, e);
145
+ const from = vs.from ?? Number(e.dataTransfer.getData(MIME));
146
+ clearDrag();
147
+ if (!t || !Number.isFinite(from))
148
+ return;
149
+ e.preventDefault();
150
+ editor.commands["moveBlock"](from, t.to);
151
+ }));
152
+ on(el, "dragleave", (() => {
153
+ line.classList.remove("is-visible");
154
+ }));
155
+ dndViews.set(el, vs);
156
+ return vs;
157
+ }
158
+ /**
159
+ * 블록 드래그&드롭 피처 — `moveBlock(from, to)` 커맨드 + 호버 핸들/
160
+ * 드롭 라인 오버레이. `to`는 제거 전 기준 삽입 경계다
161
+ * (예: 블록0을 블록2 뒤로 → moveBlock(0, 3)).
162
+ */
163
+ export const blockDndFeature = defineFeature({
164
+ name: "block-dnd",
165
+ description: "블록 드래그&드롭 — .me-drag-handle로 최상위 블록 재배치 (moveBlock)",
166
+ commands: {
167
+ /**
168
+ * 최상위 블록 from을 경계 to로 이동한다. to는 "원래 배열의 삽입
169
+ * 경계" — 블록 i 앞이 i, 뒤가 i+1. from 제거로 생기는 인덱스
170
+ * 시프트(to>from이면 -1)는 여기서 정규화한다.
171
+ */
172
+ moveBlock(ctx, ...args) {
173
+ const from = args[0];
174
+ const to = args[1];
175
+ if (typeof from !== "number" || typeof to !== "number")
176
+ return false;
177
+ const len = ctx.state.doc.content?.length ?? 0;
178
+ if (from < 0 || from >= len || to < 0 || to > len)
179
+ return false;
180
+ if (to === from || to === from + 1)
181
+ return true; // 제자리 — no-op
182
+ const node = ctx.state.doc.content[from];
183
+ const adj = to > from ? to - 1 : to;
184
+ ctx.tr
185
+ .delete({ anchor: point([], from), focus: point([], from + 1) })
186
+ .insertNode(point([], adj), node);
187
+ ctx.dispatch();
188
+ return true;
189
+ },
190
+ },
191
+ input: {
192
+ paintOverlay(el, _state, editor) {
193
+ ensureBound(el, editor);
194
+ },
195
+ destroyOverlay(el) {
196
+ const vs = dndViews.get(el);
197
+ if (!vs)
198
+ return;
199
+ for (const [t, type, fn] of vs.listeners) {
200
+ t.removeEventListener(type, fn);
201
+ }
202
+ vs.overlay.remove();
203
+ dndViews.delete(el);
204
+ },
205
+ },
206
+ });
207
+ //# sourceMappingURL=block-dnd.js.map