@kerebron/extension-basic-editor 0.0.6 → 0.0.8

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 (183) hide show
  1. package/esm/editor/src/CoreEditor.d.ts +28 -0
  2. package/esm/editor/src/CoreEditor.d.ts.map +1 -0
  3. package/esm/editor/src/CoreEditor.js +170 -0
  4. package/esm/editor/src/Extension.d.ts +26 -0
  5. package/esm/editor/src/Extension.d.ts.map +1 -0
  6. package/esm/editor/src/Extension.js +33 -0
  7. package/esm/editor/src/ExtensionManager.d.ts +32 -0
  8. package/esm/editor/src/ExtensionManager.d.ts.map +1 -0
  9. package/esm/editor/src/ExtensionManager.js +253 -0
  10. package/esm/editor/src/Mark.d.ts +18 -0
  11. package/esm/editor/src/Mark.d.ts.map +1 -0
  12. package/esm/editor/src/Mark.js +34 -0
  13. package/esm/editor/src/Node.d.ts +27 -0
  14. package/esm/editor/src/Node.d.ts.map +1 -0
  15. package/esm/editor/src/Node.js +43 -0
  16. package/esm/editor/src/commands/CommandManager.d.ts +20 -0
  17. package/esm/editor/src/commands/CommandManager.d.ts.map +1 -0
  18. package/esm/editor/src/commands/CommandManager.js +60 -0
  19. package/esm/editor/src/commands/createChainableState.d.ts +3 -0
  20. package/esm/editor/src/commands/createChainableState.d.ts.map +1 -0
  21. package/esm/editor/src/commands/createChainableState.js +29 -0
  22. package/esm/editor/src/commands/mod.d.ts +49 -0
  23. package/esm/editor/src/commands/mod.d.ts.map +1 -0
  24. package/esm/editor/src/commands/mod.js +928 -0
  25. package/esm/editor/src/mod.d.ts +5 -0
  26. package/esm/editor/src/mod.d.ts.map +1 -0
  27. package/esm/editor/src/mod.js +4 -0
  28. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.d.ts +23 -0
  29. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.d.ts.map +1 -0
  30. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.js +163 -0
  31. package/esm/editor/src/plugins/input-rules/mod.d.ts +3 -0
  32. package/esm/editor/src/plugins/input-rules/mod.d.ts.map +1 -0
  33. package/esm/editor/src/plugins/input-rules/mod.js +2 -0
  34. package/esm/editor/src/plugins/input-rules/rulebuilders.d.ts +5 -0
  35. package/esm/editor/src/plugins/input-rules/rulebuilders.d.ts.map +1 -0
  36. package/esm/editor/src/plugins/input-rules/rulebuilders.js +50 -0
  37. package/esm/editor/src/types.d.ts +29 -0
  38. package/esm/editor/src/types.d.ts.map +1 -0
  39. package/esm/editor/src/types.js +1 -0
  40. package/esm/editor/src/utilities/createNodeFromContent.d.ts +12 -0
  41. package/esm/editor/src/utilities/createNodeFromContent.d.ts.map +1 -0
  42. package/esm/editor/src/utilities/createNodeFromContent.js +118 -0
  43. package/esm/editor/src/utilities/getHtmlAttributes.d.ts +4 -0
  44. package/esm/editor/src/utilities/getHtmlAttributes.d.ts.map +1 -0
  45. package/esm/editor/src/utilities/getHtmlAttributes.js +47 -0
  46. package/esm/editor/src/utilities/mod.d.ts +3 -0
  47. package/esm/editor/src/utilities/mod.d.ts.map +1 -0
  48. package/esm/editor/src/utilities/mod.js +2 -0
  49. package/esm/extension-automerge/src/CursorPlugin.d.ts +16 -0
  50. package/esm/extension-automerge/src/CursorPlugin.d.ts.map +1 -0
  51. package/esm/extension-automerge/src/CursorPlugin.js +114 -0
  52. package/esm/extension-automerge/src/ExtensionAutomerge.d.ts +26 -0
  53. package/esm/extension-automerge/src/ExtensionAutomerge.d.ts.map +1 -0
  54. package/esm/extension-automerge/src/ExtensionAutomerge.js +136 -0
  55. package/esm/extension-automerge/src/MarkUnknown.d.ts +8 -0
  56. package/esm/extension-automerge/src/MarkUnknown.d.ts.map +1 -0
  57. package/esm/extension-automerge/src/MarkUnknown.js +26 -0
  58. package/esm/extension-automerge/src/NodeUnknown.d.ts +8 -0
  59. package/esm/extension-automerge/src/NodeUnknown.d.ts.map +1 -0
  60. package/esm/extension-automerge/src/NodeUnknown.js +28 -0
  61. package/esm/extension-automerge/src/NodeUnknownBlock.d.ts +11 -0
  62. package/esm/extension-automerge/src/NodeUnknownBlock.d.ts.map +1 -0
  63. package/esm/extension-automerge/src/NodeUnknownBlock.js +36 -0
  64. package/esm/extension-automerge/src/SchemaAdapter.d.ts +70 -0
  65. package/esm/extension-automerge/src/SchemaAdapter.d.ts.map +1 -0
  66. package/esm/extension-automerge/src/SchemaAdapter.js +188 -0
  67. package/esm/extension-automerge/src/SyncPlugin.d.ts +16 -0
  68. package/esm/extension-automerge/src/SyncPlugin.d.ts.map +1 -0
  69. package/esm/extension-automerge/src/SyncPlugin.js +147 -0
  70. package/esm/extension-automerge/src/amToPm.d.ts +9 -0
  71. package/esm/extension-automerge/src/amToPm.d.ts.map +1 -0
  72. package/esm/extension-automerge/src/amToPm.js +245 -0
  73. package/esm/extension-automerge/src/amTraversal.d.ts +62 -0
  74. package/esm/extension-automerge/src/amTraversal.d.ts.map +1 -0
  75. package/esm/extension-automerge/src/amTraversal.js +688 -0
  76. package/esm/extension-automerge/src/loader.d.ts +8 -0
  77. package/esm/extension-automerge/src/loader.d.ts.map +1 -0
  78. package/esm/extension-automerge/src/loader.js +54 -0
  79. package/esm/extension-automerge/src/maintainSpans.d.ts +9 -0
  80. package/esm/extension-automerge/src/maintainSpans.d.ts.map +1 -0
  81. package/esm/extension-automerge/src/maintainSpans.js +464 -0
  82. package/esm/extension-automerge/src/pmToAm.d.ts +6 -0
  83. package/esm/extension-automerge/src/pmToAm.d.ts.map +1 -0
  84. package/esm/extension-automerge/src/pmToAm.js +183 -0
  85. package/esm/extension-automerge/src/pmTraversal.d.ts +26 -0
  86. package/esm/extension-automerge/src/pmTraversal.d.ts.map +1 -0
  87. package/esm/extension-automerge/src/pmTraversal.js +102 -0
  88. package/esm/extension-automerge/src/types.d.ts +42 -0
  89. package/esm/extension-automerge/src/types.d.ts.map +1 -0
  90. package/esm/extension-automerge/src/types.js +94 -0
  91. package/esm/extension-automerge/src/utils.d.ts +3 -0
  92. package/esm/extension-automerge/src/utils.d.ts.map +1 -0
  93. package/esm/extension-automerge/src/utils.js +18 -0
  94. package/esm/extension-basic-editor/src/ExtensionBaseKeymap.d.ts +8 -0
  95. package/esm/extension-basic-editor/src/ExtensionBaseKeymap.d.ts.map +1 -0
  96. package/esm/{ExtensionBaseKeymap.js → extension-basic-editor/src/ExtensionBaseKeymap.js} +2 -2
  97. package/esm/{ExtensionBasicEditor.d.ts → extension-basic-editor/src/ExtensionBasicEditor.d.ts} +1 -1
  98. package/esm/extension-basic-editor/src/ExtensionBasicEditor.d.ts.map +1 -0
  99. package/esm/{ExtensionBasicEditor.js → extension-basic-editor/src/ExtensionBasicEditor.js} +1 -1
  100. package/esm/{ExtensionDropcursor.d.ts → extension-basic-editor/src/ExtensionDropcursor.d.ts} +1 -1
  101. package/esm/extension-basic-editor/src/ExtensionDropcursor.d.ts.map +1 -0
  102. package/esm/{ExtensionDropcursor.js → extension-basic-editor/src/ExtensionDropcursor.js} +1 -1
  103. package/esm/{ExtensionGapcursor.d.ts → extension-basic-editor/src/ExtensionGapcursor.d.ts} +1 -1
  104. package/esm/extension-basic-editor/src/ExtensionGapcursor.d.ts.map +1 -0
  105. package/esm/{ExtensionGapcursor.js → extension-basic-editor/src/ExtensionGapcursor.js} +1 -1
  106. package/esm/{ExtensionHistory.d.ts → extension-basic-editor/src/ExtensionHistory.d.ts} +2 -2
  107. package/esm/extension-basic-editor/src/ExtensionHistory.d.ts.map +1 -0
  108. package/esm/{ExtensionHistory.js → extension-basic-editor/src/ExtensionHistory.js} +1 -1
  109. package/esm/{MarkCode.d.ts → extension-basic-editor/src/MarkCode.d.ts} +2 -2
  110. package/esm/extension-basic-editor/src/MarkCode.d.ts.map +1 -0
  111. package/esm/{MarkCode.js → extension-basic-editor/src/MarkCode.js} +2 -2
  112. package/esm/{MarkItalic.d.ts → extension-basic-editor/src/MarkItalic.d.ts} +2 -2
  113. package/esm/extension-basic-editor/src/MarkItalic.d.ts.map +1 -0
  114. package/esm/{MarkItalic.js → extension-basic-editor/src/MarkItalic.js} +2 -2
  115. package/esm/{MarkLink.d.ts → extension-basic-editor/src/MarkLink.d.ts} +1 -1
  116. package/esm/extension-basic-editor/src/MarkLink.d.ts.map +1 -0
  117. package/esm/{MarkLink.js → extension-basic-editor/src/MarkLink.js} +1 -1
  118. package/esm/{MarkStrong.d.ts → extension-basic-editor/src/MarkStrong.d.ts} +2 -2
  119. package/esm/extension-basic-editor/src/MarkStrong.d.ts.map +1 -0
  120. package/esm/{MarkStrong.js → extension-basic-editor/src/MarkStrong.js} +2 -2
  121. package/esm/{MarkUnderline.d.ts → extension-basic-editor/src/MarkUnderline.d.ts} +2 -2
  122. package/esm/extension-basic-editor/src/MarkUnderline.d.ts.map +1 -0
  123. package/esm/{MarkUnderline.js → extension-basic-editor/src/MarkUnderline.js} +2 -2
  124. package/esm/{NodeAside.d.ts → extension-basic-editor/src/NodeAside.d.ts} +1 -1
  125. package/esm/extension-basic-editor/src/NodeAside.d.ts.map +1 -0
  126. package/esm/{NodeAside.js → extension-basic-editor/src/NodeAside.js} +1 -1
  127. package/esm/{NodeBlockquote.d.ts → extension-basic-editor/src/NodeBlockquote.d.ts} +3 -3
  128. package/esm/extension-basic-editor/src/NodeBlockquote.d.ts.map +1 -0
  129. package/esm/{NodeBlockquote.js → extension-basic-editor/src/NodeBlockquote.js} +3 -3
  130. package/esm/{NodeBulletList.d.ts → extension-basic-editor/src/NodeBulletList.d.ts} +3 -3
  131. package/esm/extension-basic-editor/src/NodeBulletList.d.ts.map +1 -0
  132. package/esm/{NodeBulletList.js → extension-basic-editor/src/NodeBulletList.js} +3 -3
  133. package/esm/{NodeDocument.d.ts → extension-basic-editor/src/NodeDocument.d.ts} +1 -1
  134. package/esm/extension-basic-editor/src/NodeDocument.d.ts.map +1 -0
  135. package/esm/{NodeDocument.js → extension-basic-editor/src/NodeDocument.js} +1 -1
  136. package/esm/{NodeHardBreak.d.ts → extension-basic-editor/src/NodeHardBreak.d.ts} +2 -2
  137. package/esm/extension-basic-editor/src/NodeHardBreak.d.ts.map +1 -0
  138. package/esm/{NodeHardBreak.js → extension-basic-editor/src/NodeHardBreak.js} +2 -2
  139. package/esm/{NodeHeading.d.ts → extension-basic-editor/src/NodeHeading.d.ts} +3 -3
  140. package/esm/extension-basic-editor/src/NodeHeading.d.ts.map +1 -0
  141. package/esm/{NodeHeading.js → extension-basic-editor/src/NodeHeading.js} +3 -3
  142. package/esm/{NodeHorizontalRule.d.ts → extension-basic-editor/src/NodeHorizontalRule.d.ts} +2 -2
  143. package/esm/extension-basic-editor/src/NodeHorizontalRule.d.ts.map +1 -0
  144. package/esm/{NodeHorizontalRule.js → extension-basic-editor/src/NodeHorizontalRule.js} +1 -1
  145. package/esm/{NodeImage.d.ts → extension-basic-editor/src/NodeImage.d.ts} +2 -2
  146. package/esm/extension-basic-editor/src/NodeImage.d.ts.map +1 -0
  147. package/esm/{NodeImage.js → extension-basic-editor/src/NodeImage.js} +1 -1
  148. package/esm/{NodeListItem.d.ts → extension-basic-editor/src/NodeListItem.d.ts} +2 -2
  149. package/esm/extension-basic-editor/src/NodeListItem.d.ts.map +1 -0
  150. package/esm/{NodeListItem.js → extension-basic-editor/src/NodeListItem.js} +1 -1
  151. package/esm/{NodeOrderedList.d.ts → extension-basic-editor/src/NodeOrderedList.d.ts} +3 -3
  152. package/esm/extension-basic-editor/src/NodeOrderedList.d.ts.map +1 -0
  153. package/esm/{NodeOrderedList.js → extension-basic-editor/src/NodeOrderedList.js} +5 -5
  154. package/esm/{NodeParagraph.d.ts → extension-basic-editor/src/NodeParagraph.d.ts} +2 -2
  155. package/esm/extension-basic-editor/src/NodeParagraph.d.ts.map +1 -0
  156. package/esm/{NodeParagraph.js → extension-basic-editor/src/NodeParagraph.js} +2 -2
  157. package/esm/{NodeText.d.ts → extension-basic-editor/src/NodeText.d.ts} +1 -1
  158. package/esm/extension-basic-editor/src/NodeText.d.ts.map +1 -0
  159. package/esm/{NodeText.js → extension-basic-editor/src/NodeText.js} +1 -1
  160. package/package.json +31 -25
  161. package/esm/ExtensionBaseKeymap.d.ts +0 -8
  162. package/esm/ExtensionBaseKeymap.d.ts.map +0 -1
  163. package/esm/ExtensionBasicEditor.d.ts.map +0 -1
  164. package/esm/ExtensionDropcursor.d.ts.map +0 -1
  165. package/esm/ExtensionGapcursor.d.ts.map +0 -1
  166. package/esm/ExtensionHistory.d.ts.map +0 -1
  167. package/esm/MarkCode.d.ts.map +0 -1
  168. package/esm/MarkItalic.d.ts.map +0 -1
  169. package/esm/MarkLink.d.ts.map +0 -1
  170. package/esm/MarkStrong.d.ts.map +0 -1
  171. package/esm/MarkUnderline.d.ts.map +0 -1
  172. package/esm/NodeAside.d.ts.map +0 -1
  173. package/esm/NodeBlockquote.d.ts.map +0 -1
  174. package/esm/NodeBulletList.d.ts.map +0 -1
  175. package/esm/NodeDocument.d.ts.map +0 -1
  176. package/esm/NodeHardBreak.d.ts.map +0 -1
  177. package/esm/NodeHeading.d.ts.map +0 -1
  178. package/esm/NodeHorizontalRule.d.ts.map +0 -1
  179. package/esm/NodeImage.d.ts.map +0 -1
  180. package/esm/NodeListItem.d.ts.map +0 -1
  181. package/esm/NodeOrderedList.d.ts.map +0 -1
  182. package/esm/NodeParagraph.d.ts.map +0 -1
  183. package/esm/NodeText.d.ts.map +0 -1
@@ -0,0 +1,183 @@
1
+ import { next as automerge } from '@automerge/automerge/slim';
2
+ import { pmNodeToSpans, pmRangeToAmRange } from './pmTraversal.js';
3
+ import { amMarksFromPmMarks } from './SchemaAdapter.js';
4
+ export function pmToAm(adapter, spans, steps,
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ doc, pmDoc, path) {
7
+ let unappliedMarks = [];
8
+ function flushMarks() {
9
+ if (unappliedMarks.length > 0) {
10
+ applyAddMarkSteps(adapter, spans, unappliedMarks, doc, path);
11
+ unappliedMarks = [];
12
+ }
13
+ }
14
+ for (const step of steps) {
15
+ const stepId = step.toJSON()['stepType'];
16
+ if (stepId === 'addMark') {
17
+ unappliedMarks.push(step);
18
+ continue;
19
+ }
20
+ else {
21
+ flushMarks();
22
+ }
23
+ oneStep(adapter, spans, stepId, step, doc, pmDoc, path);
24
+ const nextDoc = step.apply(pmDoc).doc;
25
+ if (nextDoc == null) {
26
+ throw new Error('Could not apply step to document');
27
+ }
28
+ pmDoc = nextDoc;
29
+ spans = automerge.spans(doc, path);
30
+ }
31
+ flushMarks();
32
+ }
33
+ function oneStep(adapter, spans, stepId, step,
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ doc, pmDoc, path) {
36
+ if (stepId === 'replace') {
37
+ replaceStep(adapter, spans, step, doc, path, pmDoc);
38
+ }
39
+ else if (stepId === 'replaceAround') {
40
+ replaceAroundStep(adapter, step, doc, pmDoc, path);
41
+ }
42
+ else if (stepId === 'removeMark') {
43
+ removeMarkStep(adapter, spans, step, doc, path);
44
+ }
45
+ }
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
+ function replaceStep(adapter, spans, step, doc, field, pmDoc) {
48
+ if (step.slice.content.childCount === 1 &&
49
+ step.slice.content.firstChild?.isText) {
50
+ // This is a text insertion or deletion
51
+ const amRange = pmRangeToAmRange(adapter, spans, {
52
+ from: step.from,
53
+ to: step.to,
54
+ });
55
+ if (amRange == null) {
56
+ throw new Error(`Could not find range (${step.from}, ${step.to}) in render tree`);
57
+ }
58
+ let { start, end } = amRange;
59
+ if (start > end) {
60
+ // eslint-disable-next-line @typescript-eslint/no-extra-semi
61
+ [start, end] = [end, start];
62
+ }
63
+ const toDelete = end - start;
64
+ automerge.splice(doc, field, start, toDelete, step.slice.content.firstChild.text);
65
+ const marks = step.slice.content.firstChild.marks;
66
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
67
+ const length = step.slice.content.firstChild.text.length;
68
+ reconcileMarks(adapter, doc, field, start, length, marks);
69
+ return;
70
+ }
71
+ const applied = step.apply(pmDoc).doc;
72
+ if (applied == null) {
73
+ throw new Error('Could not apply step to document');
74
+ }
75
+ const newSpans = pmNodeToSpans(adapter, applied);
76
+ automerge.updateSpans(doc, field, newSpans);
77
+ }
78
+ function replaceAroundStep(adapter, step,
79
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
+ doc, pmDoc, field) {
81
+ const applied = step.apply(pmDoc).doc;
82
+ if (applied == null) {
83
+ throw new Error('Could not apply step to document');
84
+ }
85
+ const newSpans = pmNodeToSpans(adapter, applied);
86
+ automerge.updateSpans(doc, field, newSpans);
87
+ }
88
+ function applyAddMarkSteps(adapter, spans, steps, doc, field) {
89
+ const marks = steps.map((step) => {
90
+ const amRange = pmRangeToAmRange(adapter, spans, {
91
+ from: step.from,
92
+ to: step.to,
93
+ });
94
+ if (amRange == null) {
95
+ throw new Error(`Could not find range (${step.from}, ${step.to}) in render tree`);
96
+ }
97
+ const markName = step.mark.type.name;
98
+ const expand = step.mark.type.spec.inclusive ? 'both' : 'none';
99
+ const value = markAttrsToMarkValue(step.mark.type, step.mark.attrs);
100
+ return { range: amRange, markName, expand, value };
101
+ });
102
+ const groupedMarks = marks.reduce((acc, mark) => {
103
+ const lastGroup = acc[acc.length - 1];
104
+ if (lastGroup == null) {
105
+ return [mark];
106
+ }
107
+ if (lastGroup.markName === mark.markName &&
108
+ lastGroup.expand === mark.expand &&
109
+ lastGroup.value === mark.value) {
110
+ if (lastGroup.range.end === mark.range.start) {
111
+ lastGroup.range.end = mark.range.end;
112
+ return acc;
113
+ }
114
+ else {
115
+ const spansBetween = spans.slice(lastGroup.range.end, mark.range.start);
116
+ if (spansBetween.every((s) => s.type === 'block')) {
117
+ lastGroup.range.end = mark.range.end;
118
+ return acc;
119
+ }
120
+ }
121
+ }
122
+ acc.push(mark);
123
+ return acc;
124
+ }, []);
125
+ for (const mark of groupedMarks) {
126
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
127
+ automerge.mark(
128
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
129
+ doc, field, { start: mark.range.start, end: mark.range.end, expand: mark.expand }, mark.markName, mark.value);
130
+ }
131
+ }
132
+ function removeMarkStep(adapter, spans, step, doc, field) {
133
+ const amRange = pmRangeToAmRange(adapter, spans, {
134
+ from: step.from,
135
+ to: step.to,
136
+ });
137
+ if (amRange == null) {
138
+ throw new Error(`Could not find range (${step.from}, ${step.to}) in render tree`);
139
+ }
140
+ const { start, end } = amRange;
141
+ if (start == null || end == null) {
142
+ throw new Error(`Could not find step.from (${step.from}) or step.to (${step.to}) in render tree`);
143
+ }
144
+ const markName = step.mark.type.name;
145
+ const expand = step.mark.type.spec.inclusive ? 'both' : 'none';
146
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
147
+ automerge.unmark(doc, field, { start, end, expand }, markName);
148
+ }
149
+ function reconcileMarks(adapter, doc, path, index, length, marks) {
150
+ const currentMarks = automerge.marksAt(doc, path, index);
151
+ const newMarks = amMarksFromPmMarks(adapter, marks);
152
+ const newMarkNames = new Set(Object.keys(newMarks));
153
+ const currentMarkNames = new Set(Object.keys(currentMarks));
154
+ for (const markName of newMarkNames) {
155
+ if (!currentMarkNames.has(markName) ||
156
+ newMarks[markName] !== currentMarks[markName]) {
157
+ automerge.mark(doc, path, { start: index, end: index + length, expand: 'both' }, markName, newMarks[markName]);
158
+ }
159
+ }
160
+ for (const markName of currentMarkNames) {
161
+ const markMapping = adapter.markMappings.find((m) => m.automergeMarkName === markName);
162
+ if (markMapping == null) {
163
+ continue;
164
+ }
165
+ if (!newMarkNames.has(markName)) {
166
+ automerge.unmark(doc, path, { start: index, end: index + length, expand: 'both' }, markName);
167
+ }
168
+ }
169
+ }
170
+ function markAttrsToMarkValue(markType, attrs) {
171
+ if (markType.name === 'link') {
172
+ return JSON.stringify(attrs);
173
+ }
174
+ else if (markType.name === 'strong' ||
175
+ markType.name === 'em' ||
176
+ markType.name === 'code') {
177
+ return true;
178
+ }
179
+ else {
180
+ // Maybe we should just throw here?
181
+ return true;
182
+ }
183
+ }
@@ -0,0 +1,26 @@
1
+ import { next as automerge } from '@automerge/automerge/slim';
2
+ import { Node } from 'prosemirror-model';
3
+ import { SchemaAdapter } from './SchemaAdapter.js';
4
+ export declare function pmNodeToSpans(adapter: SchemaAdapter, node: Node): ({
5
+ type: 'block';
6
+ value: {
7
+ type: automerge.RawString;
8
+ parents: automerge.RawString[];
9
+ attrs: {
10
+ [key: string]: automerge.MaterializeValue;
11
+ };
12
+ isEmbed: boolean;
13
+ };
14
+ } | {
15
+ type: 'text';
16
+ value: string;
17
+ marks?: automerge.MarkSet;
18
+ })[];
19
+ export declare function pmRangeToAmRange(adapter: SchemaAdapter, spans: automerge.Span[], { from, to }: {
20
+ from: number;
21
+ to: number;
22
+ }): {
23
+ start: number;
24
+ end: number;
25
+ } | null;
26
+ //# sourceMappingURL=pmTraversal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pmTraversal.d.ts","sourceRoot":"","sources":["../../../src/extension-automerge/src/pmTraversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAGL,IAAI,EAGL,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,IAAI,GACT,CACC;IACA,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;QAC1B,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;QAC/B,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAA;SAAE,CAAC;QACrD,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,GACC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAA;CAAE,CAC7D,EAAE,CAgCF;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,EACvB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA4EvC"}
@@ -0,0 +1,102 @@
1
+ import { next as automerge } from '@automerge/automerge/slim';
2
+ import { eventsWithIndexChanges, traverseNode, traverseSpans, } from './amTraversal.js';
3
+ export function pmNodeToSpans(adapter, node) {
4
+ const events = traverseNode(adapter, node);
5
+ const result = [];
6
+ for (const event of events) {
7
+ if (event.type == 'block') {
8
+ const attrs = { ...event.block.attrs };
9
+ delete attrs.isAmgBlock;
10
+ result.push({
11
+ type: 'block',
12
+ value: {
13
+ type: new automerge.RawString(event.block.type),
14
+ parents: event.block.parents.map((p) => new automerge.RawString(p)),
15
+ attrs,
16
+ isEmbed: event.block.isEmbed,
17
+ },
18
+ });
19
+ }
20
+ else if (event.type == 'text') {
21
+ result.push({ type: 'text', value: event.text, marks: event.marks });
22
+ }
23
+ }
24
+ return result;
25
+ }
26
+ export function pmRangeToAmRange(adapter, spans, { from, to }) {
27
+ const events = eventsWithIndexChanges(traverseSpans(adapter, spans));
28
+ let amStart = null;
29
+ let amEnd = null;
30
+ let maxPmIdxSeen = null;
31
+ let maxAmIdxSeen = null;
32
+ if (from === 0) {
33
+ amStart = 0;
34
+ }
35
+ while (maxPmIdxSeen == null ||
36
+ maxPmIdxSeen <= to ||
37
+ amStart == null ||
38
+ amEnd == null) {
39
+ const next = events.next();
40
+ if (next.done) {
41
+ break;
42
+ }
43
+ const state = next.value;
44
+ maxPmIdxSeen = state.after.pmIdx;
45
+ maxAmIdxSeen = state.after.amIdx;
46
+ if (amStart == null) {
47
+ if (state.after.pmIdx < from) {
48
+ continue;
49
+ }
50
+ if (state.event.type === 'text') {
51
+ if (state.before.pmIdx > from) {
52
+ // We already passed the start but this is the first automerge event
53
+ // we've seen
54
+ amStart = Math.max(state.before.amIdx, 0) + 1;
55
+ }
56
+ else if (state.before.pmIdx + state.event.text.length > from) {
57
+ // The target `from` is in the middle of this text
58
+ const diff = from - state.before.pmIdx;
59
+ //amStart = Math.max(state.before.amIdx, 0) + diff + 1
60
+ amStart = state.before.amIdx + diff + 1;
61
+ }
62
+ else {
63
+ amStart = Math.max(state.after.amIdx, 0) + 1;
64
+ }
65
+ }
66
+ else if (state.after.pmIdx >= from) {
67
+ // we are only interested in blocks which start _after_ the from index
68
+ amStart = state.after.amIdx + 1;
69
+ }
70
+ }
71
+ if (amEnd == null) {
72
+ if (state.after.pmIdx < to) {
73
+ continue;
74
+ }
75
+ if (state.event.type === 'text') {
76
+ if (state.before.pmIdx >= to) {
77
+ amEnd = state.before.amIdx + 1;
78
+ }
79
+ else if (state.before.pmIdx + state.event.text.length > to) {
80
+ const diff = to - state.before.pmIdx;
81
+ //amEnd = Math.max(state.before.amIdx, 0) + diff + 1
82
+ amEnd = state.before.amIdx + diff + 1;
83
+ }
84
+ }
85
+ else {
86
+ if (state.before.pmIdx >= to) {
87
+ amEnd = state.before.amIdx + 1;
88
+ }
89
+ }
90
+ }
91
+ }
92
+ if (amStart != null) {
93
+ if (amEnd == null) {
94
+ amEnd = maxAmIdxSeen ? maxAmIdxSeen + 1 : amStart;
95
+ }
96
+ return { start: amStart, end: amEnd };
97
+ }
98
+ else {
99
+ const endOfDoc = maxAmIdxSeen ? maxAmIdxSeen + 1 : 0;
100
+ return { start: endOfDoc, end: endOfDoc };
101
+ }
102
+ }
@@ -0,0 +1,42 @@
1
+ import { next as automerge } from '@automerge/automerge/slim';
2
+ export type ChangeFn<T> = (doc: T, field: string) => void;
3
+ export type DocHandle<T> = {
4
+ docSync(): T | undefined;
5
+ change: (fn: (doc: T) => void) => void;
6
+ on(event: 'change', callback: (p: DocHandleChangePayload<T>) => void): void;
7
+ off(event: 'change', callback: (p: DocHandleChangePayload<T>) => void): void;
8
+ };
9
+ export interface DocHandleChangePayload<T> {
10
+ /** The handle that changed */
11
+ handle: DocHandle<T>;
12
+ /** The value of the document after the change */
13
+ doc: automerge.Doc<T>;
14
+ /** The patches representing the change that occurred */
15
+ patches: automerge.Patch[];
16
+ /** Information about the change */
17
+ patchInfo: automerge.PatchInfo<T>;
18
+ }
19
+ export type BlockType = string;
20
+ export declare function isBlockMarker(obj: unknown): obj is BlockMarker;
21
+ export declare function validBlockType(type: unknown): type is BlockType;
22
+ export type BlockMarker = {
23
+ type: automerge.RawString;
24
+ parents: automerge.RawString[];
25
+ attrs: {
26
+ [key: string]: automerge.MaterializeValue;
27
+ };
28
+ isEmbed?: boolean;
29
+ };
30
+ export declare function blockSpanToBlockMarker(span: {
31
+ [key: string]: automerge.MaterializeValue;
32
+ }): BlockMarker;
33
+ export type Span = {
34
+ type: 'text';
35
+ value: string;
36
+ marks?: automerge.MarkSet;
37
+ } | {
38
+ type: 'block';
39
+ value: BlockMarker;
40
+ };
41
+ export declare function amSpanToSpan(span: automerge.Span): Span;
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extension-automerge/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAS1D,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,OAAO,IAAI,CAAC,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC;IACvC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5E,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;CAC9E,CAAC;AAEF,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,8BAA8B;IAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,iDAAiD;IACjD,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,mCAAmC;IACnC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAsB9D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,SAAS,CAc/D;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IAC/B,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAA;KAAE,CAAC;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;CAC3C,GAAG,WAAW,CAsCd;AAcD,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1C,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAMvD"}
@@ -0,0 +1,94 @@
1
+ import { next as automerge } from '@automerge/automerge/slim';
2
+ export function isBlockMarker(obj) {
3
+ if (obj == null) {
4
+ return false;
5
+ }
6
+ if (typeof obj !== 'object') {
7
+ return false;
8
+ }
9
+ if (!('type' in obj)) {
10
+ return false;
11
+ }
12
+ if (!('parents' in obj) || !Array.isArray(obj.parents)) {
13
+ return false;
14
+ }
15
+ if (!validBlockType(obj.type)) {
16
+ return false;
17
+ }
18
+ for (const parent of obj.parents) {
19
+ if (!validBlockType(parent)) {
20
+ return false;
21
+ }
22
+ }
23
+ return true;
24
+ }
25
+ export function validBlockType(type) {
26
+ if (!(type instanceof automerge.RawString)) {
27
+ return false;
28
+ }
29
+ return [
30
+ 'list_item',
31
+ 'ordered_list',
32
+ 'bullet_list',
33
+ 'paragraph',
34
+ 'heading',
35
+ 'aside',
36
+ 'image',
37
+ 'blockquote',
38
+ ].includes(type.val);
39
+ }
40
+ export function blockSpanToBlockMarker(span) {
41
+ const { type: spanType, parents: spanParents, attrs: spanAttrs, isEmbed: spanIsEmbed, } = span;
42
+ let type;
43
+ if (!(spanType instanceof automerge.RawString)) {
44
+ if ('string' === typeof (spanType?.val)) {
45
+ type = new automerge.RawString(spanType.val);
46
+ }
47
+ else {
48
+ type = new automerge.RawString('paragraph');
49
+ }
50
+ }
51
+ else {
52
+ type = spanType;
53
+ }
54
+ const attrs = {};
55
+ if (spanAttrs && typeof spanAttrs == 'object') {
56
+ for (const [key, value] of Object.entries(spanAttrs)) {
57
+ attrs[key] = value;
58
+ }
59
+ }
60
+ let parents;
61
+ if (!isArrayOfRawString(spanParents)) {
62
+ if (Array.isArray(spanParents)) {
63
+ parents = spanParents.filter((spanType) => 'string' === typeof (spanType?.val))
64
+ .map((spanType) => new automerge.RawString(spanType.val));
65
+ }
66
+ else {
67
+ parents = [];
68
+ }
69
+ }
70
+ else {
71
+ parents = spanParents;
72
+ }
73
+ const isEmbed = !!spanIsEmbed;
74
+ return { type, parents, attrs, isEmbed };
75
+ }
76
+ function isArrayOfRawString(obj) {
77
+ if (!Array.isArray(obj)) {
78
+ return false;
79
+ }
80
+ for (const item of obj) {
81
+ if (!(item instanceof automerge.RawString)) {
82
+ return false;
83
+ }
84
+ }
85
+ return true;
86
+ }
87
+ export function amSpanToSpan(span) {
88
+ if (span.type === 'text') {
89
+ return { type: 'text', value: span.value, marks: span.marks };
90
+ }
91
+ else {
92
+ return { type: 'block', value: blockSpanToBlockMarker(span.value) };
93
+ }
94
+ }
@@ -0,0 +1,3 @@
1
+ export declare function isArrayEqual<T>(a: T[], b: T[]): boolean;
2
+ export declare function isPrefixOfArray<T>(prefix: T[], a: T[]): boolean;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/extension-automerge/src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAMvD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAM/D"}
@@ -0,0 +1,18 @@
1
+ export function isArrayEqual(a, b) {
2
+ if (a.length !== b.length)
3
+ return false;
4
+ for (let i = 0; i < a.length; i++) {
5
+ if (a[i] !== b[i])
6
+ return false;
7
+ }
8
+ return true;
9
+ }
10
+ export function isPrefixOfArray(prefix, a) {
11
+ if (prefix.length > a.length)
12
+ return false;
13
+ for (let i = 0; i < prefix.length; i++) {
14
+ if (prefix[i] !== a[i])
15
+ return false;
16
+ }
17
+ return true;
18
+ }
@@ -0,0 +1,8 @@
1
+ import { Extension } from '../../editor/src/mod.js';
2
+ import { type Commands, type CommandShortcuts } from '../../editor/src/commands/mod.js';
3
+ export declare class ExtensionBaseKeymap extends Extension {
4
+ name: string;
5
+ getCommands(): Partial<Commands>;
6
+ getKeyboardShortcuts(): Partial<CommandShortcuts>;
7
+ }
8
+ //# sourceMappingURL=ExtensionBaseKeymap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionBaseKeymap.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/ExtensionBaseKeymap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAQpD,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,IAAI,SAAiB;IAErB,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAgBhC,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAclD"}
@@ -1,5 +1,5 @@
1
- import { Extension } from '@kerebron/editor';
2
- import { baseKeymap, joinDown, joinUp, lift, selectParentNode, } from '@kerebron/editor/commands';
1
+ import { Extension } from '../../editor/src/mod.js';
2
+ import { baseKeymap, joinDown, joinUp, lift, selectParentNode, } from '../../editor/src/commands/mod.js';
3
3
  export class ExtensionBaseKeymap extends Extension {
4
4
  constructor() {
5
5
  super(...arguments);
@@ -1,4 +1,4 @@
1
- import { Extension } from '@kerebron/editor';
1
+ import { Extension } from '../../editor/src/mod.js';
2
2
  import { ExtensionBaseKeymap } from './ExtensionBaseKeymap.js';
3
3
  import { ExtensionDropcursor } from './ExtensionDropcursor.js';
4
4
  import { ExtensionGapcursor } from './ExtensionGapcursor.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionBasicEditor.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/ExtensionBasicEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,IAAI,SAAkB;IACtB,QAAQ,6TAqBN;CACH"}
@@ -1,4 +1,4 @@
1
- import { Extension } from '@kerebron/editor';
1
+ import { Extension } from '../../editor/src/mod.js';
2
2
  import { ExtensionBaseKeymap } from './ExtensionBaseKeymap.js';
3
3
  import { ExtensionDropcursor } from './ExtensionDropcursor.js';
4
4
  import { ExtensionGapcursor } from './ExtensionGapcursor.js';
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'prosemirror-state';
2
- import { Extension } from '@kerebron/editor';
2
+ import { Extension } from '../../editor/src/mod.js';
3
3
  export declare class ExtensionDropcursor extends Extension {
4
4
  name: string;
5
5
  options: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionDropcursor.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/ExtensionDropcursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,IAAI,SAAgB;IAEpB,OAAO;;;;MAIL;IAEF,qBAAqB,IAAI,MAAM,EAAE;CAKlC"}
@@ -1,5 +1,5 @@
1
1
  import { dropCursor } from 'prosemirror-dropcursor';
2
- import { Extension } from '@kerebron/editor';
2
+ import { Extension } from '../../editor/src/mod.js';
3
3
  export class ExtensionDropcursor extends Extension {
4
4
  constructor() {
5
5
  super(...arguments);
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'prosemirror-state';
2
- import { Extension } from '@kerebron/editor';
2
+ import { Extension } from '../../editor/src/mod.js';
3
3
  export declare class ExtensionGapcursor extends Extension {
4
4
  name: string;
5
5
  options: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionGapcursor.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/ExtensionGapcursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,IAAI,SAAe;IAEnB,OAAO;;;;MAIL;IAEO,qBAAqB,IAAI,MAAM,EAAE;CAK3C"}
@@ -1,5 +1,5 @@
1
1
  import { gapCursor } from 'prosemirror-gapcursor';
2
- import { Extension } from '@kerebron/editor';
2
+ import { Extension } from '../../editor/src/mod.js';
3
3
  export class ExtensionGapcursor extends Extension {
4
4
  constructor() {
5
5
  super(...arguments);
@@ -1,6 +1,6 @@
1
1
  import { Plugin } from 'prosemirror-state';
2
- import { type CoreEditor, Extension } from '@kerebron/editor';
3
- import { type Commands, type CommandShortcuts } from '@kerebron/editor/commands';
2
+ import { type CoreEditor, Extension } from '../../editor/src/mod.js';
3
+ import { type Commands, type CommandShortcuts } from '../../editor/src/commands/mod.js';
4
4
  export declare class ExtensionHistory extends Extension {
5
5
  name: string;
6
6
  options: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionHistory.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/ExtensionHistory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,IAAI,SAAa;IAEjB,OAAO;;;MAGL;IAEO,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQlD,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAiBjD,qBAAqB,IAAI,MAAM,EAAE;CAK3C"}
@@ -1,6 +1,6 @@
1
1
  import { history, redo, undo } from 'prosemirror-history';
2
2
  import { undoInputRule } from 'prosemirror-inputrules';
3
- import { Extension } from '@kerebron/editor';
3
+ import { Extension } from '../../editor/src/mod.js';
4
4
  export class ExtensionHistory extends Extension {
5
5
  constructor() {
6
6
  super(...arguments);
@@ -1,6 +1,6 @@
1
1
  import { MarkSpec, MarkType } from 'prosemirror-model';
2
- import { CoreEditor, Mark } from '@kerebron/editor';
3
- import { Commands, CommandShortcuts } from '@kerebron/editor/commands';
2
+ import { CoreEditor, Mark } from '../../editor/src/mod.js';
3
+ import { Commands, CommandShortcuts } from '../../editor/src/commands/mod.js';
4
4
  export declare class MarkCode extends Mark {
5
5
  name: string;
6
6
  requires: string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkCode.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/MarkCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,QAAQ,EACR,gBAAgB,EAEjB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,QAAS,SAAQ,IAAI;IACvB,IAAI,SAAU;IACvB,QAAQ,WAAW;IAEnB,SAAS;;MAEP;IAEF,WAAW,IAAI,QAAQ;IASvB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMlE,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAKlD"}
@@ -1,5 +1,5 @@
1
- import { Mark } from '@kerebron/editor';
2
- import { toggleMark, } from '@kerebron/editor/commands';
1
+ import { Mark } from '../../editor/src/mod.js';
2
+ import { toggleMark, } from '../../editor/src/commands/mod.js';
3
3
  export class MarkCode extends Mark {
4
4
  constructor() {
5
5
  super(...arguments);
@@ -1,5 +1,5 @@
1
- import { CoreEditor, Mark } from '@kerebron/editor';
2
- import { Commands, CommandShortcuts } from '@kerebron/editor/commands';
1
+ import { CoreEditor, Mark } from '../../editor/src/mod.js';
2
+ import { Commands, CommandShortcuts } from '../../editor/src/commands/mod.js';
3
3
  export declare class MarkItalic extends Mark {
4
4
  name: string;
5
5
  requires: string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkItalic.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/MarkItalic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,QAAQ,EACR,gBAAgB,EAEjB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,UAAW,SAAQ,IAAI;IACzB,IAAI,SAAQ;IACrB,QAAQ,WAAW;IAEnB,SAAS;;MAEP;IAEF,WAAW,IAAI,QAAQ;IAcvB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMlE,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAMlD"}
@@ -1,5 +1,5 @@
1
- import { Mark } from '@kerebron/editor';
2
- import { toggleMark, } from '@kerebron/editor/commands';
1
+ import { Mark } from '../../editor/src/mod.js';
2
+ import { toggleMark, } from '../../editor/src/commands/mod.js';
3
3
  export class MarkItalic extends Mark {
4
4
  constructor() {
5
5
  super(...arguments);
@@ -1,5 +1,5 @@
1
1
  import { Mark as PmMark, MarkSpec } from 'prosemirror-model';
2
- import { Mark } from '@kerebron/editor';
2
+ import { Mark } from '../../editor/src/mod.js';
3
3
  export declare class MarkLink extends Mark {
4
4
  name: string;
5
5
  requires: string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkLink.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/MarkLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,IAAI;IACvB,IAAI,SAAU;IACvB,QAAQ,WAAW;IAEnB,SAAS;;;kCAGiB,MAAM;;;;oCAiBJ,MAAM;;MAMhC;IAEO,WAAW,IAAI,QAAQ;CAwBjC"}