@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":"transaction.js","sourceRoot":"","sources":["../../src/state/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/state/transaction.ts"],"names":[],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -4,8 +4,8 @@
4
4
  .me-root {
5
5
  --me-border-color: #e2e8f0;
6
6
  --me-text-color: #1e293b;
7
- --me-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas,
8
- "Liberation Mono", monospace;
7
+ --me-font-mono:
8
+ ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
9
9
  /* 거터·활성줄 변수는 루트에 둔다 — .me-gutter 오버레이가 .me-editor의
10
10
  * 형제라 .me-editor 스코프 변수를 못 본다. 자식인 .me-editor도
11
11
  * 같은 변수를 상속해 그라디언트에 쓴다 */
@@ -57,8 +57,8 @@
57
57
  --me-frame-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
58
58
  --me-border-color: #e2e8f0;
59
59
  --me-text-color: #1e293b;
60
- --me-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas,
61
- "Liberation Mono", monospace;
60
+ --me-font-mono:
61
+ ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
62
62
 
63
63
  color: var(--me-text-color);
64
64
  background: #ffffff;
@@ -109,17 +109,13 @@
109
109
  ),
110
110
  /* print margin — 80열 (Ace showPrintMargin 관례) */
111
111
  linear-gradient(
112
- to right,
113
- transparent 0 calc(3.9em + 80ch),
114
- var(--me-print-margin) calc(3.9em + 80ch) calc(3.9em + 80ch + 1px),
115
- transparent calc(3.9em + 80ch + 1px)
116
- ),
112
+ to right,
113
+ transparent 0 calc(3.9em + 80ch),
114
+ var(--me-print-margin) calc(3.9em + 80ch) calc(3.9em + 80ch + 1px),
115
+ transparent calc(3.9em + 80ch + 1px)
116
+ ),
117
117
  /* 거터 컬럼 배경 */
118
- linear-gradient(
119
- to right,
120
- var(--me-gutter-bg) 0 3.9em,
121
- transparent 3.9em
122
- ),
118
+ linear-gradient(to right, var(--me-gutter-bg) 0 3.9em, transparent 3.9em),
123
119
  var(--me-editor-bg);
124
120
  }
125
121
 
@@ -228,12 +224,20 @@
228
224
  margin-bottom: 0;
229
225
  }
230
226
 
231
- .me-editor h1 { font-size: 1.55em; }
232
- .me-editor h2 { font-size: 1.35em; }
233
- .me-editor h3 { font-size: 1.2em; }
227
+ .me-editor h1 {
228
+ font-size: 1.55em;
229
+ }
230
+ .me-editor h2 {
231
+ font-size: 1.35em;
232
+ }
233
+ .me-editor h3 {
234
+ font-size: 1.2em;
235
+ }
234
236
  .me-editor h4,
235
237
  .me-editor h5,
236
- .me-editor h6 { font-size: 1.05em; }
238
+ .me-editor h6 {
239
+ font-size: 1.05em;
240
+ }
237
241
 
238
242
  .me-editor code {
239
243
  padding: 0.08em 0.35em;
@@ -690,17 +694,13 @@
690
694
  ),
691
695
  /* print margin — 80열 (Ace showPrintMargin 관례) */
692
696
  linear-gradient(
693
- to right,
694
- transparent 0 calc(3.4em + 80ch),
695
- var(--me-print-margin) calc(3.4em + 80ch) calc(3.4em + 80ch + 1px),
696
- transparent calc(3.4em + 80ch + 1px)
697
- ),
697
+ to right,
698
+ transparent 0 calc(3.4em + 80ch),
699
+ var(--me-print-margin) calc(3.4em + 80ch) calc(3.4em + 80ch + 1px),
700
+ transparent calc(3.4em + 80ch + 1px)
701
+ ),
698
702
  /* 거터 컬럼 배경 */
699
- linear-gradient(
700
- to right,
701
- var(--me-gutter-bg) 0 3.4em,
702
- transparent 3.4em
703
- ),
703
+ linear-gradient(to right, var(--me-gutter-bg) 0 3.4em, transparent 3.4em),
704
704
  var(--me-code-bg);
705
705
  }
706
706
  /* 활성 줄 — 바인딩의 restoreSelection이 DOM에 is-active를 단다
@@ -742,6 +742,33 @@
742
742
  background-color: var(--me-bracket-bg, rgba(59, 130, 246, 0.28));
743
743
  }
744
744
 
745
+ /* 검색 매치 하이라이트 — searchFeature가 CSS Custom Highlight API로
746
+ * "me-find"/"me-find-active" Range를 등록한다. DOM을 건드리지 않아
747
+ * 매핑·리렌더에 무영향 (me-bracket과 같은 계약) */
748
+ ::highlight(me-find) {
749
+ background-color: var(--me-find-bg, rgba(250, 204, 21, 0.35));
750
+ }
751
+ ::highlight(me-find-active) {
752
+ background-color: var(--me-find-active-bg, rgba(249, 115, 22, 0.45));
753
+ outline: 1px solid var(--me-find-active-bg, rgba(249, 115, 22, 0.45));
754
+ }
755
+
756
+ /* 멘션 칩 — 인라인 atom. 라벨은 DOM 텍스트 없이 ::after로 그려
757
+ * 텍스트 누적 오프셋 매핑(dom.ts)을 건드리지 않는다 */
758
+ .me-mention {
759
+ display: inline-block;
760
+ padding: 0 4px;
761
+ margin: 0 1px;
762
+ border-radius: 4px;
763
+ background: var(--me-mention-bg, rgba(59, 130, 246, 0.12));
764
+ color: var(--me-mention-color, #2563eb);
765
+ font-weight: 500;
766
+ cursor: default;
767
+ }
768
+ .me-mention::after {
769
+ content: "@" attr(data-label);
770
+ }
771
+
745
772
  /* 구분선 — atom 노드라 data-me-path를 직접 갖는다 */
746
773
  .me-editor hr {
747
774
  border: none;
@@ -996,7 +1023,9 @@
996
1023
  display: inline-flex;
997
1024
  align-items: center;
998
1025
  justify-content: center;
999
- transition: background-color 0.12s ease, color 0.12s ease;
1026
+ transition:
1027
+ background-color 0.12s ease,
1028
+ color 0.12s ease;
1000
1029
  }
1001
1030
 
1002
1031
  /* 툴바 아이콘 — 24px viewBox stroke 아이콘을 currentColor로.
@@ -1359,3 +1388,105 @@
1359
1388
  [data-me-theme="dark"] .me-tool[data-me-cmd="theme"] {
1360
1389
  color: var(--me-tool-active-color);
1361
1390
  }
1391
+
1392
+ /* ── 블록 드래그&드롭 — .me-dnd 오버레이(block-dnd feature)가
1393
+ * .me-editor의 형제로 그린다. 거터 스트립(왼쪽 여백)에만 겹치게 둬
1394
+ * Chrome 캐럿 줄 경계 계산을 지키고, 래퍼는 pointer-events:none이라
1395
+ * 텍스트 클릭을 가로채지 않는다 */
1396
+ .me-dnd {
1397
+ position: absolute;
1398
+ inset: 0;
1399
+ pointer-events: none;
1400
+ }
1401
+ /* 호버 블록의 왼쪽에 붙는 핸들 — 드래그 시작점. gutter 영역
1402
+ * (3.9em) 안에 두고 핸들만 이벤트를 받는다 */
1403
+ .me-drag-handle {
1404
+ position: absolute;
1405
+ left: 0.2em;
1406
+ width: 1.4em;
1407
+ height: 1.4em;
1408
+ display: none;
1409
+ align-items: center;
1410
+ justify-content: center;
1411
+ pointer-events: auto;
1412
+ cursor: grab;
1413
+ color: var(--me-gutter-color);
1414
+ font-size: 12px;
1415
+ line-height: 1;
1416
+ letter-spacing: -0.15em;
1417
+ border-radius: 4px;
1418
+ }
1419
+ .me-drag-handle.is-visible {
1420
+ display: flex;
1421
+ }
1422
+ .me-drag-handle:hover {
1423
+ background: var(--me-gutter-bg);
1424
+ color: var(--me-text-color);
1425
+ }
1426
+ .me-drag-handle:active {
1427
+ cursor: grabbing;
1428
+ }
1429
+ /* 드롭 경계 표시선 — dragover 동안 삽입 위치에 그린다 */
1430
+ .me-drop-line {
1431
+ position: absolute;
1432
+ left: 3.9em;
1433
+ right: 0;
1434
+ height: 2px;
1435
+ display: none;
1436
+ background: var(--me-node-sel-color);
1437
+ border-radius: 1px;
1438
+ }
1439
+ .me-drop-line.is-visible {
1440
+ display: block;
1441
+ }
1442
+
1443
+ /* ── 뷰 데코레이션 — Plugin.decorations가 만드는 span.me-deco.
1444
+ * 기본은 투명 — 기능/테마가 attrs.class로 모양을 준다.
1445
+ * 데모의 TODO 데코는 me-deco-todo로 밑줄을 긋는다 */
1446
+ .me-deco.me-deco-todo {
1447
+ background: rgba(245, 158, 11, 0.16);
1448
+ border-bottom: 1px dashed #d97706;
1449
+ }
1450
+
1451
+ /* ── 원격 커서 — collab-yjs의 carets extension이 paintOverlay로 그리는
1452
+ * 협업 캐럿. .me-imgui처럼 .me-editor의 형제(.me-root의 absolute
1453
+ * 자식)라 DOM↔Point 매핑과 무관하다. 피어별 색은 요소의
1454
+ * --me-remote-color 인라인 변수로 들어온다 */
1455
+ .me-carets {
1456
+ position: absolute;
1457
+ inset: 0;
1458
+ pointer-events: none;
1459
+ z-index: 35;
1460
+ overflow: hidden;
1461
+ }
1462
+ /* 캐럿 바 — 2px 세로선, 높이는 JS가 줄 높이로 맞춘다 */
1463
+ .me-remote-caret {
1464
+ position: absolute;
1465
+ width: 2px;
1466
+ background: var(--me-remote-color, #f59e0b);
1467
+ }
1468
+ /* 이름 라벨 — 캐럿 위에 붙는 작은 깃발 (y-prosemirror 관례) */
1469
+ .me-remote-caret-label {
1470
+ position: absolute;
1471
+ top: -1.15em;
1472
+ left: -1px;
1473
+ padding: 0 4px;
1474
+ border-radius: 3px 3px 3px 0;
1475
+ background: var(--me-remote-color, #f59e0b);
1476
+ color: #fff;
1477
+ font:
1478
+ 600 10px/1.5 ui-sans-serif,
1479
+ system-ui,
1480
+ sans-serif;
1481
+ white-space: nowrap;
1482
+ user-select: none;
1483
+ }
1484
+ /* 원격 선택 영역 — Range.getClientRects()로 줄별 rect를 깐다 */
1485
+ .me-remote-sel {
1486
+ position: absolute;
1487
+ background: color-mix(
1488
+ in srgb,
1489
+ var(--me-remote-color, #f59e0b) 22%,
1490
+ transparent
1491
+ );
1492
+ }
@@ -0,0 +1,84 @@
1
+ import type { Schema } from "../model/schema.js";
2
+ import type { RenderNode } from "./render.js";
3
+ /**
4
+ * 어댑터 렌더 계약 — RenderNode 트리를 각 프레임워크 vnode로 번역할
5
+ * 때 5개 렌더러가 공유하는 결정을 한 곳에 타입화한다.
6
+ *
7
+ * 어댑터는 planAdapterNode()가 반환하는 "렌더 계획"을 그대로
8
+ * 프레임워크 요소로 옮기기만 한다 — 노드 뷰 래퍼/아울렛의
9
+ * data-me-path·contenteditable·class 계약을 어댑터가 각자 계산하면
10
+ * 한쪽이 어긋났을 때 찾기 어렵다 (컨포먼스는 DOM 결과만 검증한다).
11
+ *
12
+ * DOM 계약 요약 (자세한 것은 render.ts 헤더):
13
+ * - 노드 뷰 래퍼: .me-node-view + contenteditable="false"
14
+ * atom이면 래퍼가 data-me-path를 갖는다
15
+ * - 비-atom 노드 뷰: .me-node-content 아울렛이 data-me-path와
16
+ * contenteditable="true"를 갖고 AST 자식을 1:1로 렌더한다.
17
+ * 아울렛 태그/속성은 노드의 toDOM 결과 — codeBlock이면
18
+ * <pre data-language>라 pre[data-me-path] 셀렉터가 유지된다
19
+ * - 래퍼 태그는 인라인 노드면 span, 블록이면 div
20
+ */
21
+ /** 어댑터가 노드 뷰 판별에 필요한 최소 컨텍스트 */
22
+ export interface AdapterRenderContext {
23
+ readonly schema: Schema;
24
+ /** 노드 타입 → 프레임워크 컴포넌트 — 코어는 타입을 모르므로 unknown */
25
+ readonly nodeViews?: Record<string, unknown> | undefined;
26
+ }
27
+ /** 커스텀 노드 뷰 렌더 계획 — .me-node-view 래퍼 + 선택적 콘텐츠 아울렛 */
28
+ export interface NodeViewRenderPlan {
29
+ readonly kind: "nodeView";
30
+ /**
31
+ * nodeViews[nodeType] 팩토리 — 어댑터가 자기 프레임워크의
32
+ * 컴포넌트 타입(React ComponentType, Vue Component …)으로 캐스트한다
33
+ */
34
+ readonly view: unknown;
35
+ /** 래퍼 태그 — 인라인 노드는 span, 블록은 div */
36
+ readonly wrapperTag: "span" | "div";
37
+ /** 래퍼 속성 — me-node-view + ce=false, atom이면 data-me-path 포함 */
38
+ readonly wrapperAttrs: Record<string, string>;
39
+ /** .me-node-content 아울렛이 필요한가 — 비-atom 노드 뷰만 true */
40
+ readonly editable: boolean;
41
+ /** 아울렛 태그 — 노드의 toDOM 태그 (codeBlock → pre) */
42
+ readonly outletTag: string;
43
+ /** 아울렛 속성 — toDOM attrs + me-node-content + ce=true + data-me-path */
44
+ readonly outletAttrs: Record<string, string>;
45
+ /** 아울렛에 넣을 AST 자식들의 RenderNode — 1:1 렌더 */
46
+ readonly children: readonly RenderNode[];
47
+ }
48
+ /** 일반 노드 렌더 계획 — toDOM 태그/속성 그대로 */
49
+ export interface ElementRenderPlan {
50
+ readonly kind: "element";
51
+ readonly tag: string;
52
+ readonly attrs: Record<string, string>;
53
+ /** 텍스트 리프 내용 — 있으면 children 대신 문자열을 렌더한다 */
54
+ readonly text?: string;
55
+ /**
56
+ * 자식 — 없으면(정의 자체가 없음) children을 렌더하지 않는다.
57
+ * 빈 배열과 구분해야 한다: br/hr 같은 void 태그에 children=[]
58
+ * 조차 넘기면 React가 "void element tag" 에러를 낸다.
59
+ */
60
+ readonly children?: readonly RenderNode[];
61
+ }
62
+ export type RenderPlan = NodeViewRenderPlan | ElementRenderPlan;
63
+ /**
64
+ * RenderNode → 렌더 계획 — 노드 뷰 분기와 래퍼/아울렛 속성 계산.
65
+ * 반환값의 attrs에는 data-me-path가 이미 들어 있다 — 어댑터는
66
+ * 속성을 있는 그대로 DOM에 쓰기만 한다.
67
+ */
68
+ export declare function planAdapterNode(rn: RenderNode, ctx: AdapterRenderContext): RenderPlan;
69
+ /**
70
+ * void HTML 태그 — 자식을 가질 수 없는 요소들.
71
+ * Svelte/svelte:element처럼 자식 유무를 정적 분기해야 하는 어댑터가
72
+ * 쓴다 (br 자리표시자·hr·hardBreak·img 등).
73
+ */
74
+ export declare const VOID_TAGS: ReadonlySet<string>;
75
+ /**
76
+ * 자식이 전부 데코레이션인가 — data-me-path를 가진 자식이 하나도
77
+ * 없으면(토큰 스팬·.me-ws·bogus br만 있는 리프 홀더) true.
78
+ * 어댑터는 이 경우 자식을 프레임워크 자식으로 렌더하지 말고
79
+ * renderNodeHTML()로 HTML 문자열 직렬화해 한 번에 써야 한다 —
80
+ * {#each}/v-for 앵커 노드가 편집 영역에 섞이면 Chromium IME 조합
81
+ * 앵커가 깨진다.
82
+ */
83
+ export declare function decorationOnlyChildren(rn: RenderNode): boolean;
84
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/view/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AAEH,gCAAgC;AAChC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAC1D;AAED,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CAC1C;AAED,oCAAoC;AACpC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,oBAAoB,GACxB,UAAU,CAmCZ;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,CAcxC,CAAC;AAEH;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAM9D"}
@@ -0,0 +1,76 @@
1
+ import { nodeViewEditable, nodeViewFor } from "./render.js";
2
+ /**
3
+ * RenderNode → 렌더 계획 — 노드 뷰 분기와 래퍼/아울렛 속성 계산.
4
+ * 반환값의 attrs에는 data-me-path가 이미 들어 있다 — 어댑터는
5
+ * 속성을 있는 그대로 DOM에 쓰기만 한다.
6
+ */
7
+ export function planAdapterNode(rn, ctx) {
8
+ const view = nodeViewFor(ctx.nodeViews, rn.source.type);
9
+ if (view === undefined) {
10
+ return {
11
+ kind: "element",
12
+ tag: rn.tag,
13
+ attrs: rn.attrs ?? {},
14
+ ...(rn.text != null ? { text: rn.text } : {}),
15
+ ...(rn.children != null ? { children: rn.children } : {}),
16
+ };
17
+ }
18
+ const editable = nodeViewEditable(ctx.schema, rn.source.type);
19
+ const pathKey = rn.path.join(",");
20
+ const outletAttrs = {
21
+ ...(rn.attrs ?? {}),
22
+ class: ["me-node-content", rn.attrs?.["class"]].filter(Boolean).join(" "),
23
+ contenteditable: "true",
24
+ "data-me-path": pathKey,
25
+ };
26
+ return {
27
+ kind: "nodeView",
28
+ view,
29
+ wrapperTag: ctx.schema.isInline(rn.source.type) ? "span" : "div",
30
+ wrapperAttrs: {
31
+ // 편집 가능한 노드 뷰는 아울렛이 data-me-path를 갖는다 —
32
+ // 컨테이너 포인트가 아울렛 자식(AST 자식)과 1:1로 매핑되도록
33
+ ...(editable ? {} : { "data-me-path": pathKey }),
34
+ class: "me-node-view",
35
+ contenteditable: "false",
36
+ },
37
+ editable,
38
+ outletTag: rn.tag,
39
+ outletAttrs,
40
+ children: rn.children ?? [],
41
+ };
42
+ }
43
+ /**
44
+ * void HTML 태그 — 자식을 가질 수 없는 요소들.
45
+ * Svelte/svelte:element처럼 자식 유무를 정적 분기해야 하는 어댑터가
46
+ * 쓴다 (br 자리표시자·hr·hardBreak·img 등).
47
+ */
48
+ export const VOID_TAGS = new Set([
49
+ "area",
50
+ "base",
51
+ "br",
52
+ "col",
53
+ "embed",
54
+ "hr",
55
+ "img",
56
+ "input",
57
+ "link",
58
+ "meta",
59
+ "source",
60
+ "track",
61
+ "wbr",
62
+ ]);
63
+ /**
64
+ * 자식이 전부 데코레이션인가 — data-me-path를 가진 자식이 하나도
65
+ * 없으면(토큰 스팬·.me-ws·bogus br만 있는 리프 홀더) true.
66
+ * 어댑터는 이 경우 자식을 프레임워크 자식으로 렌더하지 말고
67
+ * renderNodeHTML()로 HTML 문자열 직렬화해 한 번에 써야 한다 —
68
+ * {#each}/v-for 앵커 노드가 편집 영역에 섞이면 Chromium IME 조합
69
+ * 앵커가 깨진다.
70
+ */
71
+ export function decorationOnlyChildren(rn) {
72
+ return (rn.text == null &&
73
+ rn.children != null &&
74
+ !rn.children.some((c) => c.attrs?.["data-me-path"] != null));
75
+ }
76
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/view/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAoE5D;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,EAAc,EACd,GAAyB;IAEzB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,EAAE,CAAC,GAAG;YACX,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;YACrB,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,WAAW,GAA2B;QAC1C,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QACnB,KAAK,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACzE,eAAe,EAAE,MAAM;QACvB,cAAc,EAAE,OAAO;KACxB,CAAC;IACF,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI;QACJ,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;QAChE,YAAY,EAAE;YACZ,wCAAwC;YACxC,uCAAuC;YACvC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;YAChD,KAAK,EAAE,cAAc;YACrB,eAAe,EAAE,OAAO;SACzB;QACD,QAAQ;QACR,SAAS,EAAE,EAAE,CAAC,GAAG;QACjB,WAAW;QACX,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE;KAC5B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC;IACpD,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,IAAI;IACJ,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAc;IACnD,OAAO,CACL,EAAE,CAAC,IAAI,IAAI,IAAI;QACf,EAAE,CAAC,QAAQ,IAAI,IAAI;QACnB,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAC5D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { DocNode } from "../model/node.js";
2
+ import type { Point } from "../state/selection.js";
3
+ /**
4
+ * 캐럿/포인트 관련 순수 DOM 헬퍼 — 입력 바인딩(input.ts)에서 분리.
5
+ * 에디터 상태나 바인딩 수명주기를 모르는 DOM ↔ Point 판정 함수들이다.
6
+ */
7
+ /** drop 좌표 → doc Point — caretPositionFromPoint / Range 폴백 */
8
+ export declare function caretPointFromXY(doc: Document, root: HTMLElement, x: number, y: number): Point | null;
9
+ /**
10
+ * p가 속한 최상위 블록 경로 문자열 — 프레임워크 리마운트 대상 키.
11
+ * dirtyPaths는 최상위 블록 인덱스만 담는다 (어댑터는 블록 단위로 키를 만든다).
12
+ */
13
+ export declare function topBlockKey(p: Point | null): string | null;
14
+ /**
15
+ * p가 텍스트 리프 포인트인가 — element-boundary 포인트(컨테이너
16
+ * 자식 경계)와 구분한다. 리프 포인트만 텍스트 삽입·캐럿 대상이다.
17
+ */
18
+ export declare function isLeafPoint(doc: DocNode, p: Point | null | undefined): boolean;
19
+ /**
20
+ * DOM 캐럿 바로 앞 텍스트가 data로 끝나는가 — IME 커밋 에코 감지.
21
+ * 조합 중 브라우저가 쓴 글자가 DOM에 남아있으면 뒤에 도착하는
22
+ * 커밋 beforeinput은 중복이다.
23
+ */
24
+ export declare function domEndsWith(el: HTMLElement, focus: Point, data: string): boolean;
25
+ //# sourceMappingURL=caret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caret.d.ts","sourceRoot":"","sources":["../../src/view/caret.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD;;;GAGG;AAEH,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,WAAW,EACjB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,KAAK,GAAG,IAAI,CAQd;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAE1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAC1B,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAMT"}
@@ -0,0 +1,43 @@
1
+ import { nodeAt } from "../model/traverse.js";
2
+ import { domToPoint, PATH_ATTR } from "./dom.js";
3
+ /**
4
+ * 캐럿/포인트 관련 순수 DOM 헬퍼 — 입력 바인딩(input.ts)에서 분리.
5
+ * 에디터 상태나 바인딩 수명주기를 모르는 DOM ↔ Point 판정 함수들이다.
6
+ */
7
+ /** drop 좌표 → doc Point — caretPositionFromPoint / Range 폴백 */
8
+ export function caretPointFromXY(doc, root, x, y) {
9
+ const d = doc;
10
+ const pos = doc.caretPositionFromPoint?.(x, y);
11
+ if (pos)
12
+ return domToPoint(root, pos.offsetNode, pos.offset);
13
+ const r = d.caretRangeFromPoint?.(x, y);
14
+ return r ? domToPoint(root, r.startContainer, r.startOffset) : null;
15
+ }
16
+ /**
17
+ * p가 속한 최상위 블록 경로 문자열 — 프레임워크 리마운트 대상 키.
18
+ * dirtyPaths는 최상위 블록 인덱스만 담는다 (어댑터는 블록 단위로 키를 만든다).
19
+ */
20
+ export function topBlockKey(p) {
21
+ return p?.path[0] == null ? null : String(p.path[0]);
22
+ }
23
+ /**
24
+ * p가 텍스트 리프 포인트인가 — element-boundary 포인트(컨테이너
25
+ * 자식 경계)와 구분한다. 리프 포인트만 텍스트 삽입·캐럿 대상이다.
26
+ */
27
+ export function isLeafPoint(doc, p) {
28
+ return !!p && nodeAt(doc, p.path)?.type === "text";
29
+ }
30
+ /**
31
+ * DOM 캐럿 바로 앞 텍스트가 data로 끝나는가 — IME 커밋 에코 감지.
32
+ * 조합 중 브라우저가 쓴 글자가 DOM에 남아있으면 뒤에 도착하는
33
+ * 커밋 beforeinput은 중복이다.
34
+ */
35
+ export function domEndsWith(el, focus, data) {
36
+ const holder = focus.path.length
37
+ ? el.querySelector(`[${PATH_ATTR}="${focus.path.join(",")}"]`)
38
+ : null;
39
+ if (!holder || holder.querySelector(`[${PATH_ATTR}]`))
40
+ return false;
41
+ return (holder.textContent ?? "").slice(0, focus.offset).endsWith(data);
42
+ }
43
+ //# sourceMappingURL=caret.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caret.js","sourceRoot":"","sources":["../../src/view/caret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AAEH,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAC9B,GAAa,EACb,IAAiB,EACjB,CAAS,EACT,CAAS;IAET,MAAM,CAAC,GAAG,GAET,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,GAAG;QAAE,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,CAAe;IACzC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,GAAY,EACZ,CAA2B;IAE3B,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,EAAe,EACf,KAAY,EACZ,IAAY;IAEZ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;QAC9B,CAAC,CAAC,EAAE,CAAC,aAAa,CAAc,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3E,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Decoration } from "../editor/extension.js";
2
+ import type { Schema } from "../model/schema.js";
3
+ import type { RenderNode } from "./render.js";
4
+ /**
5
+ * 렌더 트리에 데코레이션을 적용한다 — renderChildren의 후처리.
6
+ * decos가 비어 있으면 입력 배열을 그대로 돌려준다 (비용 0).
7
+ */
8
+ export declare function applyDecorations(rns: RenderNode[], schema: Schema, decos: readonly Decoration[]): RenderNode[];
9
+ //# sourceMappingURL=decoration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoration.d.ts","sourceRoot":"","sources":["../../src/view/decoration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2M9C;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,UAAU,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,UAAU,EAAE,CA8Bd"}