@moda-editor/core 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/collab.d.ts.map +1 -1
  2. package/dist/collab.js +14 -18
  3. package/dist/collab.js.map +1 -1
  4. package/dist/conformance/editor-base.d.ts.map +1 -1
  5. package/dist/conformance/editor-base.js +57 -0
  6. package/dist/conformance/editor-base.js.map +1 -1
  7. package/dist/conformance/fixtures.d.ts +2 -2
  8. package/dist/conformance/fixtures.d.ts.map +1 -1
  9. package/dist/conformance/fixtures.js +6 -2
  10. package/dist/conformance/fixtures.js.map +1 -1
  11. package/dist/editor/dev.d.ts +7 -0
  12. package/dist/editor/dev.d.ts.map +1 -0
  13. package/dist/editor/dev.js +9 -0
  14. package/dist/editor/dev.js.map +1 -0
  15. package/dist/editor/editor.d.ts +120 -3
  16. package/dist/editor/editor.d.ts.map +1 -1
  17. package/dist/editor/editor.js +133 -27
  18. package/dist/editor/editor.js.map +1 -1
  19. package/dist/features/block-dnd.d.ts.map +1 -1
  20. package/dist/features/block-dnd.js +4 -1
  21. package/dist/features/block-dnd.js.map +1 -1
  22. package/dist/features/code-block.d.ts.map +1 -1
  23. package/dist/features/code-block.js +17 -12
  24. package/dist/features/code-block.js.map +1 -1
  25. package/dist/features/image.d.ts.map +1 -1
  26. package/dist/features/image.js +3 -1
  27. package/dist/features/image.js.map +1 -1
  28. package/dist/features/markdown.d.ts.map +1 -1
  29. package/dist/features/markdown.js +4 -9
  30. package/dist/features/markdown.js.map +1 -1
  31. package/dist/features/search.d.ts.map +1 -1
  32. package/dist/features/search.js +9 -19
  33. package/dist/features/search.js.map +1 -1
  34. package/dist/features/table.d.ts.map +1 -1
  35. package/dist/features/table.js +3 -1
  36. package/dist/features/table.js.map +1 -1
  37. package/dist/history.d.ts.map +1 -1
  38. package/dist/history.js +3 -0
  39. package/dist/history.js.map +1 -1
  40. package/dist/index.d.ts +10 -8
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +6 -6
  43. package/dist/index.js.map +1 -1
  44. package/dist/model/node.d.ts +14 -0
  45. package/dist/model/node.d.ts.map +1 -1
  46. package/dist/model/node.js +67 -0
  47. package/dist/model/node.js.map +1 -1
  48. package/dist/model/schema.d.ts +8 -1
  49. package/dist/model/schema.d.ts.map +1 -1
  50. package/dist/model/schema.js +29 -0
  51. package/dist/model/schema.js.map +1 -1
  52. package/dist/model/traverse.d.ts +4 -0
  53. package/dist/model/traverse.d.ts.map +1 -1
  54. package/dist/model/traverse.js +10 -0
  55. package/dist/model/traverse.js.map +1 -1
  56. package/dist/presets/starter.d.ts +13 -0
  57. package/dist/presets/starter.d.ts.map +1 -1
  58. package/dist/presets/starter.js +9 -1
  59. package/dist/presets/starter.js.map +1 -1
  60. package/dist/state/apply.d.ts.map +1 -1
  61. package/dist/state/apply.js +42 -11
  62. package/dist/state/apply.js.map +1 -1
  63. package/dist/state/transaction.d.ts +18 -1
  64. package/dist/state/transaction.d.ts.map +1 -1
  65. package/dist/state/transaction.js +27 -2
  66. package/dist/state/transaction.js.map +1 -1
  67. package/dist/styles.css +316 -84
  68. package/dist/theme.d.ts.map +1 -1
  69. package/dist/theme.js +10 -0
  70. package/dist/theme.js.map +1 -1
  71. package/dist/view/highlight-registry.d.ts +22 -0
  72. package/dist/view/highlight-registry.d.ts.map +1 -0
  73. package/dist/view/highlight-registry.js +73 -0
  74. package/dist/view/highlight-registry.js.map +1 -0
  75. package/dist/view/input.d.ts.map +1 -1
  76. package/dist/view/input.js +21 -3
  77. package/dist/view/input.js.map +1 -1
  78. package/dist/view/mount.d.ts +5 -0
  79. package/dist/view/mount.d.ts.map +1 -1
  80. package/dist/view/mount.js +19 -1
  81. package/dist/view/mount.js.map +1 -1
  82. package/dist/view/node-selection.d.ts.map +1 -1
  83. package/dist/view/node-selection.js +9 -2
  84. package/dist/view/node-selection.js.map +1 -1
  85. package/package.json +7 -1
@@ -1,4 +1,5 @@
1
- import { expandTextNodes, nodeAt } from "../model/traverse.js";
1
+ import { normalizeDoc } from "../model/schema.js";
2
+ import { expandTextNodes, firstTextPath, nodeAt } from "../model/traverse.js";
2
3
  import { applyStep, coveredOffsets, resolveMarkPoint } from "./apply.js";
3
4
  import { deleteRange } from "./delete-ops.js";
4
5
  import { insertNodeInto, insertTextInto, newTextBlock, splitAt, } from "./insert-ops.js";
@@ -149,6 +150,23 @@ export class TransactionBuilder {
149
150
  this.steps.push({ op: "insert", at, node });
150
151
  return this;
151
152
  }
153
+ replaceDoc(doc) {
154
+ // 스텝은 순수 JSON이어야 한다 — 호출부가 프록시/읽기전용 객체를
155
+ // 넘겨도 라운드트립으로 끊어 미래 변이가 state를 오염시키지 못한다
156
+ const next = normalizeDoc(this.state.schema, JSON.parse(JSON.stringify(doc)));
157
+ this.steps.push({ op: "replaceDoc", doc: next });
158
+ // 셀렉션은 새 문서 시작으로 — 교체 전 좌표는 전부 무효다.
159
+ // createState의 초기 셀렉션과 같은 규약 (첫 텍스트 앞 또는 루트 경계)
160
+ const first = firstTextPath(next);
161
+ this.selection = {
162
+ type: "text",
163
+ anchor: first ? { path: first, offset: 0 } : { path: [], offset: 0 },
164
+ focus: first ? { path: first, offset: 0 } : { path: [], offset: 0 },
165
+ };
166
+ // 이전 문서의 커서 마크는 새 문서에 무의미 — 명시적 클리어
167
+ this.storedMarks = null;
168
+ return this;
169
+ }
152
170
  addStep(step) {
153
171
  this.steps.push(step);
154
172
  return this;
@@ -193,6 +211,7 @@ export class TransactionBuilder {
193
211
  anchor: resolveMarkPoint(doc, r.anchor),
194
212
  focus: resolveMarkPoint(doc, r.focus),
195
213
  };
214
+ const steps = [];
196
215
  expandTextNodes(doc, [], (node, path) => {
197
216
  const cov = coveredOffsets(node, path, resolved);
198
217
  if (!cov)
@@ -203,7 +222,7 @@ export class TransactionBuilder {
203
222
  return [node]; // 코드 구간 — 마크 스킵
204
223
  }
205
224
  }
206
- this.steps.push({
225
+ steps.push({
207
226
  op: "addMark",
208
227
  range: {
209
228
  anchor: { path, offset: cov.s },
@@ -213,6 +232,12 @@ export class TransactionBuilder {
213
232
  });
214
233
  return [node];
215
234
  });
235
+ // 스텝은 doc-before 좌표라 부분 분할이 앞 노드에서 일어나면 뒤
236
+ // 스텝의 경로가 밀린다 — 뒤 노드부터 적용해 서로의 경로를
237
+ // 보존한다 (collab-yjs covered.sort(desc)와 같은 관례)
238
+ for (let i = steps.length - 1; i >= 0; i--) {
239
+ this.steps.push(steps[i]);
240
+ }
216
241
  return this;
217
242
  }
218
243
  removeMark(range, markType) {
@@ -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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"}