quoin-editor 0.4.2 → 1.0.1

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 (231) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/MIGRATION.md +233 -0
  3. package/README.md +78 -716
  4. package/dist/ai.cjs +1148 -0
  5. package/dist/ai.cjs.map +1 -0
  6. package/dist/ai.d.cts +68 -0
  7. package/dist/ai.d.ts +68 -0
  8. package/dist/ai.js +1148 -0
  9. package/dist/ai.js.map +1 -0
  10. package/dist/catalogue.cjs +59 -0
  11. package/dist/catalogue.cjs.map +1 -0
  12. package/dist/catalogue.d.cts +39 -0
  13. package/dist/catalogue.d.ts +39 -0
  14. package/dist/catalogue.js +59 -0
  15. package/dist/catalogue.js.map +1 -0
  16. package/dist/chunk-26Q4LSIU.js +100 -0
  17. package/dist/chunk-26Q4LSIU.js.map +1 -0
  18. package/dist/chunk-56C7GCKO.cjs +1385 -0
  19. package/dist/chunk-56C7GCKO.cjs.map +1 -0
  20. package/dist/chunk-5M4QG3ZC.cjs +3303 -0
  21. package/dist/chunk-5M4QG3ZC.cjs.map +1 -0
  22. package/dist/chunk-5R3ISX4A.cjs +6643 -0
  23. package/dist/chunk-5R3ISX4A.cjs.map +1 -0
  24. package/dist/chunk-62WKUAQY.js +3335 -0
  25. package/dist/chunk-62WKUAQY.js.map +1 -0
  26. package/dist/chunk-6LMS5J3Y.js +320 -0
  27. package/dist/chunk-6LMS5J3Y.js.map +1 -0
  28. package/dist/chunk-6PKVJZQV.cjs +100 -0
  29. package/dist/chunk-6PKVJZQV.cjs.map +1 -0
  30. package/dist/chunk-6YSGUAVW.js +376 -0
  31. package/dist/chunk-6YSGUAVW.js.map +1 -0
  32. package/dist/chunk-75C6PX2L.cjs +239 -0
  33. package/dist/chunk-75C6PX2L.cjs.map +1 -0
  34. package/dist/chunk-A4IJSJKL.js +598 -0
  35. package/dist/chunk-A4IJSJKL.js.map +1 -0
  36. package/dist/chunk-BTBHHBVR.cjs +3335 -0
  37. package/dist/chunk-BTBHHBVR.cjs.map +1 -0
  38. package/dist/chunk-CLTHD5GO.cjs +34 -0
  39. package/dist/chunk-CLTHD5GO.cjs.map +1 -0
  40. package/dist/chunk-EH5KXQXY.cjs +62 -0
  41. package/dist/chunk-EH5KXQXY.cjs.map +1 -0
  42. package/dist/chunk-ESMAW4NK.cjs +184 -0
  43. package/dist/chunk-ESMAW4NK.cjs.map +1 -0
  44. package/dist/chunk-EYFCOV3T.cjs +30 -0
  45. package/dist/chunk-EYFCOV3T.cjs.map +1 -0
  46. package/dist/chunk-F5V3IEEE.cjs +326 -0
  47. package/dist/chunk-F5V3IEEE.cjs.map +1 -0
  48. package/dist/chunk-GPIDU3GN.js +239 -0
  49. package/dist/chunk-GPIDU3GN.js.map +1 -0
  50. package/dist/chunk-HOIDJEVI.cjs +4063 -0
  51. package/dist/chunk-HOIDJEVI.cjs.map +1 -0
  52. package/dist/chunk-JJ3RASQS.cjs +706 -0
  53. package/dist/chunk-JJ3RASQS.cjs.map +1 -0
  54. package/dist/chunk-LE3F7WIP.js +6643 -0
  55. package/dist/chunk-LE3F7WIP.js.map +1 -0
  56. package/dist/chunk-LE5XMIFJ.cjs +14 -0
  57. package/dist/chunk-LE5XMIFJ.cjs.map +1 -0
  58. package/dist/chunk-LMAEPFTX.js +30 -0
  59. package/dist/chunk-LMAEPFTX.js.map +1 -0
  60. package/dist/chunk-LV6EYPJO.js +34 -0
  61. package/dist/chunk-LV6EYPJO.js.map +1 -0
  62. package/dist/chunk-MLRAVUFG.cjs +376 -0
  63. package/dist/chunk-MLRAVUFG.cjs.map +1 -0
  64. package/dist/chunk-MQUCCSWG.js +14 -0
  65. package/dist/chunk-MQUCCSWG.js.map +1 -0
  66. package/dist/chunk-O4Z2WMFF.js +62 -0
  67. package/dist/chunk-O4Z2WMFF.js.map +1 -0
  68. package/dist/chunk-OCCKQHCY.js +25 -0
  69. package/dist/chunk-OCCKQHCY.js.map +1 -0
  70. package/dist/chunk-PGSS4IOS.js +706 -0
  71. package/dist/chunk-PGSS4IOS.js.map +1 -0
  72. package/dist/chunk-PIWRSX7U.js +562 -0
  73. package/dist/chunk-PIWRSX7U.js.map +1 -0
  74. package/dist/chunk-PX6LZMH4.cjs +598 -0
  75. package/dist/chunk-PX6LZMH4.cjs.map +1 -0
  76. package/dist/chunk-QXG3HWDS.js +184 -0
  77. package/dist/chunk-QXG3HWDS.js.map +1 -0
  78. package/dist/chunk-RQW3P3GH.js +504 -0
  79. package/dist/chunk-RQW3P3GH.js.map +1 -0
  80. package/dist/chunk-SSIRYUCK.js +3303 -0
  81. package/dist/chunk-SSIRYUCK.js.map +1 -0
  82. package/dist/chunk-UBNG5YCG.js +326 -0
  83. package/dist/chunk-UBNG5YCG.js.map +1 -0
  84. package/dist/chunk-UCXLRRWY.js +1385 -0
  85. package/dist/chunk-UCXLRRWY.js.map +1 -0
  86. package/dist/chunk-UDAVVEFC.cjs +562 -0
  87. package/dist/chunk-UDAVVEFC.cjs.map +1 -0
  88. package/dist/chunk-UPSLDTLT.js +4063 -0
  89. package/dist/chunk-UPSLDTLT.js.map +1 -0
  90. package/dist/chunk-UWNZG2SD.cjs +25 -0
  91. package/dist/chunk-UWNZG2SD.cjs.map +1 -0
  92. package/dist/chunk-V3KLMSRO.cjs +504 -0
  93. package/dist/chunk-V3KLMSRO.cjs.map +1 -0
  94. package/dist/chunk-VACTAZWS.cjs +249 -0
  95. package/dist/chunk-VACTAZWS.cjs.map +1 -0
  96. package/dist/chunk-WMN6566P.js +249 -0
  97. package/dist/chunk-WMN6566P.js.map +1 -0
  98. package/dist/chunk-XX5FTPJR.cjs +320 -0
  99. package/dist/chunk-XX5FTPJR.cjs.map +1 -0
  100. package/dist/comments.cjs +1008 -0
  101. package/dist/comments.cjs.map +1 -0
  102. package/dist/comments.d.cts +93 -0
  103. package/dist/comments.d.ts +93 -0
  104. package/dist/comments.js +1008 -0
  105. package/dist/comments.js.map +1 -0
  106. package/dist/diff.cjs +346 -0
  107. package/dist/diff.cjs.map +1 -0
  108. package/dist/diff.d.cts +67 -0
  109. package/dist/diff.d.ts +67 -0
  110. package/dist/diff.js +346 -0
  111. package/dist/diff.js.map +1 -0
  112. package/dist/docx.cjs +874 -0
  113. package/dist/docx.cjs.map +1 -0
  114. package/dist/docx.d.cts +33 -0
  115. package/dist/docx.d.ts +33 -0
  116. package/dist/docx.js +874 -0
  117. package/dist/docx.js.map +1 -0
  118. package/dist/embed-provider-jXwlRmnp.d.cts +19 -0
  119. package/dist/embed-provider-jXwlRmnp.d.ts +19 -0
  120. package/dist/embed.cjs +17 -0
  121. package/dist/embed.cjs.map +1 -0
  122. package/dist/embed.d.cts +56 -0
  123. package/dist/embed.d.ts +56 -0
  124. package/dist/embed.js +17 -0
  125. package/dist/embed.js.map +1 -0
  126. package/dist/emoji-data.cjs +1968 -0
  127. package/dist/emoji-data.cjs.map +1 -0
  128. package/dist/emoji-data.js +1968 -0
  129. package/dist/emoji-data.js.map +1 -0
  130. package/dist/emoji-extension-CmPlRssm.d.ts +46 -0
  131. package/dist/emoji-extension-zJ6F7hW8.d.cts +46 -0
  132. package/dist/emoji.cjs +18 -0
  133. package/dist/emoji.cjs.map +1 -0
  134. package/dist/emoji.d.cts +31 -0
  135. package/dist/emoji.d.ts +31 -0
  136. package/dist/emoji.js +18 -0
  137. package/dist/emoji.js.map +1 -0
  138. package/dist/engine.cjs +119 -0
  139. package/dist/engine.cjs.map +1 -0
  140. package/dist/engine.d.cts +144 -0
  141. package/dist/engine.d.ts +144 -0
  142. package/dist/engine.js +119 -0
  143. package/dist/engine.js.map +1 -0
  144. package/dist/find-extension-BcRyE9K4.d.cts +41 -0
  145. package/dist/find-extension-CmFehyul.d.ts +41 -0
  146. package/dist/find.cjs +20 -0
  147. package/dist/find.cjs.map +1 -0
  148. package/dist/find.d.cts +44 -0
  149. package/dist/find.d.ts +44 -0
  150. package/dist/find.js +20 -0
  151. package/dist/find.js.map +1 -0
  152. package/dist/headless.cjs +151 -518
  153. package/dist/headless.cjs.map +1 -1
  154. package/dist/headless.d.cts +102 -69
  155. package/dist/headless.d.ts +102 -69
  156. package/dist/headless.js +149 -467
  157. package/dist/headless.js.map +1 -1
  158. package/dist/index-CFPmCee4.d.cts +68 -0
  159. package/dist/index-DiCGV60d.d.ts +68 -0
  160. package/dist/index.cjs +183 -2753
  161. package/dist/index.cjs.map +1 -1
  162. package/dist/index.d.cts +345 -253
  163. package/dist/index.d.ts +345 -253
  164. package/dist/index.js +168 -2696
  165. package/dist/index.js.map +1 -1
  166. package/dist/math.cjs +18 -0
  167. package/dist/math.cjs.map +1 -0
  168. package/dist/math.d.cts +49 -0
  169. package/dist/math.d.ts +49 -0
  170. package/dist/math.js +18 -0
  171. package/dist/math.js.map +1 -0
  172. package/dist/mention.cjs +18 -0
  173. package/dist/mention.cjs.map +1 -0
  174. package/dist/mention.d.cts +50 -0
  175. package/dist/mention.d.ts +50 -0
  176. package/dist/mention.js +18 -0
  177. package/dist/mention.js.map +1 -0
  178. package/dist/presence.cjs +562 -0
  179. package/dist/presence.cjs.map +1 -0
  180. package/dist/presence.d.cts +30 -0
  181. package/dist/presence.d.ts +30 -0
  182. package/dist/presence.js +562 -0
  183. package/dist/presence.js.map +1 -0
  184. package/dist/registry-CWBOSAHm.d.cts +121 -0
  185. package/dist/registry-CWBOSAHm.d.ts +121 -0
  186. package/dist/stats-extension-DisOEbbI.d.ts +40 -0
  187. package/dist/stats-extension-Dt1lgP3m.d.cts +40 -0
  188. package/dist/stats.cjs +19 -0
  189. package/dist/stats.cjs.map +1 -0
  190. package/dist/stats.d.cts +19 -0
  191. package/dist/stats.d.ts +19 -0
  192. package/dist/stats.js +19 -0
  193. package/dist/stats.js.map +1 -0
  194. package/dist/styles.css +1 -1
  195. package/dist/table-extension-BTMJnT7J.d.ts +57 -0
  196. package/dist/table-extension-DxZz3jqp.d.cts +57 -0
  197. package/dist/table.cjs +50 -0
  198. package/dist/table.cjs.map +1 -0
  199. package/dist/table.d.cts +57 -0
  200. package/dist/table.d.ts +57 -0
  201. package/dist/table.js +50 -0
  202. package/dist/table.js.map +1 -0
  203. package/dist/to-html-C5t7xyaM.d.ts +21 -0
  204. package/dist/to-html-CNCITCln.d.cts +21 -0
  205. package/dist/toc-extension-CR9U-l6j.d.ts +25 -0
  206. package/dist/toc-extension-DGHywOBv.d.cts +25 -0
  207. package/dist/toc.cjs +18 -0
  208. package/dist/toc.cjs.map +1 -0
  209. package/dist/toc.d.cts +24 -0
  210. package/dist/toc.d.ts +24 -0
  211. package/dist/toc.js +18 -0
  212. package/dist/toc.js.map +1 -0
  213. package/dist/types-C6_QkXzy.d.ts +358 -0
  214. package/dist/types-CJ7Gq3GX.d.cts +358 -0
  215. package/dist/types-DULc8wwg.d.cts +120 -0
  216. package/dist/types-DULc8wwg.d.ts +120 -0
  217. package/dist/view-controller-BD1KwYfE.d.cts +105 -0
  218. package/dist/view-controller-y4cb60ue.d.ts +105 -0
  219. package/dist/view.cjs +23 -0
  220. package/dist/view.cjs.map +1 -0
  221. package/dist/view.d.cts +40 -0
  222. package/dist/view.d.ts +40 -0
  223. package/dist/view.js +23 -0
  224. package/dist/view.js.map +1 -0
  225. package/dist/yjs.cjs +864 -0
  226. package/dist/yjs.cjs.map +1 -0
  227. package/dist/yjs.d.cts +22 -0
  228. package/dist/yjs.d.ts +22 -0
  229. package/dist/yjs.js +864 -0
  230. package/dist/yjs.js.map +1 -0
  231. package/package.json +217 -18
@@ -0,0 +1,100 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+
5
+ var _chunkEH5KXQXYcjs = require('./chunk-EH5KXQXY.cjs');
6
+
7
+
8
+
9
+
10
+
11
+
12
+ var _chunkBTBHHBVRcjs = require('./chunk-BTBHHBVR.cjs');
13
+
14
+ // src/view-static/html-to-react.ts
15
+ var _react = require('react');
16
+
17
+ // src/view-static/react-props.ts
18
+ var PROP_NAMES = {
19
+ class: "className",
20
+ checked: "defaultChecked",
21
+ referrerpolicy: "referrerPolicy"
22
+ };
23
+ var camelCase = (name) => name.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
24
+ function styleObject(css) {
25
+ const style = {};
26
+ for (const declaration of css.split(";")) {
27
+ const colon = declaration.indexOf(":");
28
+ if (colon > 0) style[camelCase(declaration.slice(0, colon).trim())] = declaration.slice(colon + 1).trim();
29
+ }
30
+ return style;
31
+ }
32
+ function reactProps(attrs) {
33
+ const props = {};
34
+ for (const [name, value] of _chunkBTBHHBVRcjs.writtenAttrs.call(void 0, attrs)) {
35
+ props[_nullishCoalesce(PROP_NAMES[name], () => ( name))] = name === "style" && value !== true ? styleObject(value) : value;
36
+ }
37
+ return props;
38
+ }
39
+
40
+ // src/view-static/html-to-react.ts
41
+ var NO_SLOTS = /* @__PURE__ */ new Map();
42
+ function reactElement(node, slots) {
43
+ const props = reactProps(node.attrs);
44
+ if (node.html !== void 0) return _react.createElement.call(void 0, node.tag, { ...props, dangerouslySetInnerHTML: { __html: node.html } });
45
+ const children = slots.has(node) ? [slots.get(node)] : reactNodes(node.children, slots);
46
+ return _react.createElement.call(void 0, node.tag, props, ...children);
47
+ }
48
+ function reactNodes(nodes, slots = NO_SLOTS) {
49
+ const out = [];
50
+ let text = "";
51
+ for (const node of nodes) {
52
+ if (typeof node === "string") {
53
+ text += node;
54
+ continue;
55
+ }
56
+ if (text !== "") out.push(text);
57
+ text = "";
58
+ out.push(reactElement(node, slots));
59
+ }
60
+ if (text !== "") out.push(text);
61
+ return out;
62
+ }
63
+
64
+ // src/view-static/code-nodes.ts
65
+ var colourStyle = (color) => _chunkEH5KXQXYcjs.tokenColour.call(void 0, color) && `color:${color}`;
66
+ function highlightedCode(pre, block, highlight) {
67
+ const lines = _chunkEH5KXQXYcjs.highlightedLines.call(void 0, highlight, _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.code), _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.language));
68
+ const code = pre.children[0];
69
+ if (lines === null || typeof code === "string") return pre;
70
+ const tokens = lines.flatMap((line, index) => [
71
+ ...index > 0 ? ["\n"] : [],
72
+ ...line.map(
73
+ ({ text, color, className }) => _chunkBTBHHBVRcjs.element.call(void 0, "span", [["style", colourStyle(color)], ["class", className]], [text])
74
+ )
75
+ ]);
76
+ return _chunkBTBHHBVRcjs.element.call(void 0, pre.tag, pre.attrs, [_chunkBTBHHBVRcjs.element.call(void 0, code.tag, code.attrs, tokens)]);
77
+ }
78
+
79
+ // src/view-static/view-renderer.tsx
80
+ var _jsxruntime = require('react/jsx-runtime');
81
+ var QUOIN_TYPES = new Set(_chunkBTBHHBVRcjs.coreBlockSpecs.map((spec) => spec.type));
82
+ function viewRenderer({ blockTypes = [], highlight }, slots) {
83
+ return (block, view, env) => {
84
+ const node = _chunkBTBHHBVRcjs.blockNode.call(void 0, block, view, env);
85
+ if (typeof node === "string") return node;
86
+ if (block.type === "CODE") return highlightedCode(node, block, highlight);
87
+ const Preview = QUOIN_TYPES.has(block.type) ? void 0 : _optionalChain([_chunkEH5KXQXYcjs.blockByType.call(void 0, blockTypes, block.type), 'optionalAccess', _2 => _2.preview]);
88
+ if (Preview) {
89
+ const data = _nullishCoalesce(block.attrs.data, () => ( {}));
90
+ slots.set(node, /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Preview, { data, blockId: block.id }));
91
+ }
92
+ return node;
93
+ };
94
+ }
95
+
96
+
97
+
98
+
99
+ exports.reactNodes = reactNodes; exports.viewRenderer = viewRenderer;
100
+ //# sourceMappingURL=chunk-6PKVJZQV.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["chunk-6PKVJZQV.cjs","../src/view-static/html-to-react.ts","../src/view-static/react-props.ts","../src/view-static/code-nodes.ts","../src/view-static/view-renderer.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/quoin-editor/quoin-editor/dist/chunk-6PKVJZQV.cjs"}
@@ -0,0 +1,376 @@
1
+ import {
2
+ addMarkStep,
3
+ removeMarkStep,
4
+ replaceInlineStep,
5
+ sameSelection,
6
+ validateSelection
7
+ } from "./chunk-UPSLDTLT.js";
8
+ import {
9
+ atom,
10
+ inlineLength,
11
+ markKey,
12
+ nodeLength,
13
+ normalizeInline,
14
+ text
15
+ } from "./chunk-62WKUAQY.js";
16
+
17
+ // src/engine/collab/apply-remote.ts
18
+ function sharedChange(editor, steps, selectionHint, origin = "remote") {
19
+ const tr = editor.createTransaction().setOrigin(origin).setMeta("addToHistory", false);
20
+ for (const step of steps) tr.step(step);
21
+ if (selectionHint && sameSelection(validateSelection(tr.doc, editor.schema, selectionHint), selectionHint)) {
22
+ tr.setSelection(selectionHint);
23
+ }
24
+ return tr;
25
+ }
26
+ function applyRemote(editor, steps, selectionHint) {
27
+ editor.dispatch(sharedChange(editor, steps, selectionHint));
28
+ }
29
+
30
+ // src/yjs/bound.ts
31
+ var BOUND = /* @__PURE__ */ Symbol.for("quoin-editor.yjs.binding");
32
+ function holdBinding(collaboration, binding) {
33
+ collaboration[BOUND] = binding;
34
+ }
35
+ function sharedOf(collaboration, editor) {
36
+ const binding = collaboration[BOUND]?.();
37
+ return binding?.editor === editor ? binding.shared : null;
38
+ }
39
+
40
+ // src/yjs/carets.ts
41
+ import * as Y2 from "yjs";
42
+
43
+ // src/yjs/layout.ts
44
+ var NO_STRAYS = { read: [], leading: /* @__PURE__ */ new Set(), unread: false };
45
+ var emptySpan = () => ({ length: 0, entry: null, segs: [], index: 0 });
46
+ var createLayout = (spans, entries, clean, strays = NO_STRAYS) => ({
47
+ spans,
48
+ entries,
49
+ clean,
50
+ strays,
51
+ starts: [],
52
+ valid: 0
53
+ });
54
+ function settle(layout) {
55
+ const { spans, starts } = layout;
56
+ let at = layout.valid === 0 ? 0 : starts[layout.valid - 1] + spans[layout.valid - 1].length;
57
+ for (let i = layout.valid; i < spans.length; i++) {
58
+ starts[i] = at;
59
+ spans[i].index = i;
60
+ at += spans[i].length;
61
+ }
62
+ layout.valid = spans.length;
63
+ }
64
+ var invalidate = (layout, from) => void (layout.valid = Math.min(layout.valid, from));
65
+ function spanStart(layout, span) {
66
+ if (span.index >= layout.valid || layout.spans[span.index] !== span) settle(layout);
67
+ return layout.starts[span.index];
68
+ }
69
+ function indexOf(layout, span) {
70
+ spanStart(layout, span);
71
+ return span.index;
72
+ }
73
+ function textLength(layout) {
74
+ const last = layout.spans[layout.spans.length - 1];
75
+ return spanStart(layout, last) + last.length;
76
+ }
77
+ function spanAt(layout, at, item = false) {
78
+ settle(layout);
79
+ let [low, high] = [0, layout.spans.length - 1];
80
+ while (low < high) {
81
+ const middle = Math.ceil((low + high) / 2);
82
+ if (layout.starts[middle] < at || item && layout.starts[middle] === at) low = middle;
83
+ else high = middle - 1;
84
+ }
85
+ return layout.spans[low];
86
+ }
87
+ function offsetIn(seg, rel) {
88
+ let offset = rel - seg.at;
89
+ for (const other of seg.region.segs) {
90
+ if (other === seg) return offset;
91
+ offset += other.length;
92
+ }
93
+ return offset;
94
+ }
95
+ function pointOf(region, offset) {
96
+ let before = 0;
97
+ for (const seg of region.segs) {
98
+ if (offset <= before + seg.length) return { seg, rel: seg.at + offset - before };
99
+ before += seg.length;
100
+ }
101
+ throw new RangeError(`offset ${offset} is past the end of region "${region.name}"`);
102
+ }
103
+ function piecesOf(region, from, to) {
104
+ const pieces = [];
105
+ let before = 0;
106
+ for (const seg of region.segs) {
107
+ const start = Math.max(from, before);
108
+ const end = Math.min(to, before + seg.length);
109
+ if (end > start) pieces.push({ seg, rel: seg.at + start - before, length: end - start });
110
+ before += seg.length;
111
+ }
112
+ return pieces;
113
+ }
114
+ function grow(layout, seg, rel, by) {
115
+ seg.length += by;
116
+ seg.host.length += by;
117
+ for (const other of seg.host.segs) {
118
+ if (other !== seg && (by > 0 ? other.at >= rel : other.at > rel)) other.at += by;
119
+ }
120
+ invalidate(layout, seg.host.index + 1);
121
+ }
122
+ function cleanEntry(block, map) {
123
+ const span = emptySpan();
124
+ const entry = { id: block.id, map, span, regions: [], copies: [] };
125
+ span.entry = entry;
126
+ span.length = 1;
127
+ for (const [name, inline] of Object.entries(block.regions)) {
128
+ const region = { name, entry, segs: [] };
129
+ const seg = { host: span, region, at: span.length + 1, length: inlineLength(inline) };
130
+ region.segs.push(seg);
131
+ span.segs.push(seg);
132
+ entry.regions.push(region);
133
+ span.length += 1 + seg.length;
134
+ }
135
+ return entry;
136
+ }
137
+ function placeEntries(layout, at, count, entries) {
138
+ for (const span of layout.spans.splice(at, count, ...entries.map((entry) => entry.span))) {
139
+ if (span.entry !== null && layout.entries.get(span.entry.id) === span.entry) layout.entries.delete(span.entry.id);
140
+ const copies = span.copyOf?.copies;
141
+ if (copies?.includes(span)) copies.splice(copies.indexOf(span), 1);
142
+ }
143
+ for (const entry of entries) layout.entries.set(entry.id, entry);
144
+ invalidate(layout, at);
145
+ }
146
+ function regionOf(layout, id, name) {
147
+ const region = layout.entries.get(id)?.regions.find((candidate) => candidate.name === name);
148
+ if (region === void 0) throw new RangeError(`no region "${name}" in block "${id}"`);
149
+ return region;
150
+ }
151
+
152
+ // src/yjs/doc-shape.ts
153
+ import * as Y from "yjs";
154
+
155
+ // src/yjs/marks-codec.ts
156
+ var ESCAPE = "$";
157
+ var escapeKey = (key) => key in Object.prototype || key.startsWith(ESCAPE) ? ESCAPE + key : key;
158
+ var unescapeKey = (key) => key.startsWith(ESCAPE) ? key.slice(1) : key;
159
+ var onlyString = (attrs, key) => Object.keys(attrs).length === 1 && Object.hasOwn(attrs, key) && typeof attrs[key] === "string";
160
+ function markAttribute(mark) {
161
+ const key = markKey(mark);
162
+ const { attrs } = mark;
163
+ const stacked = key !== mark.type;
164
+ if (attrs === void 0) return [escapeKey(key), !stacked];
165
+ if (stacked && onlyString(attrs, "id")) return [escapeKey(key), true];
166
+ if (onlyString(attrs, mark.type)) return [escapeKey(key), attrs[mark.type]];
167
+ return [escapeKey(key), attrs];
168
+ }
169
+ function stackedType(key) {
170
+ const colon = key.indexOf(":");
171
+ if (colon < 1) return null;
172
+ const type = key.slice(0, colon);
173
+ const id = key.slice(colon + 1);
174
+ return markKey({ type, attrs: { id } }) === key ? [type, id] : null;
175
+ }
176
+ function markFromAttribute(attribute, value) {
177
+ const key = unescapeKey(attribute);
178
+ const stacked = stackedType(key);
179
+ const type = stacked?.[0] ?? key;
180
+ if (value === true) return stacked === null ? { type } : { type, attrs: { id: stacked[1] } };
181
+ if (value === false) return { type };
182
+ if (typeof value === "string") return { type, attrs: { [type]: value } };
183
+ return { type, attrs: value };
184
+ }
185
+ var marksToAttributes = (marks) => Object.fromEntries(marks.map(markAttribute));
186
+ var attributesToMarks = (attributes = {}) => Object.entries(attributes).map(([key, value]) => markFromAttribute(key, value));
187
+
188
+ // src/yjs/inline-codec.ts
189
+ var inlineOps = (inline) => inline.map((node) => ({
190
+ insert: node.kind === "text" ? node.text : { atom: node.type, attrs: node.attrs },
191
+ attributes: marksToAttributes(node.marks)
192
+ }));
193
+ function insertInline(target, at, inline) {
194
+ let offset = at;
195
+ for (const node of inline) {
196
+ const attributes = marksToAttributes(node.marks);
197
+ if (node.kind === "text") target.insert(offset, node.text, attributes);
198
+ else target.insertEmbed(offset, { atom: node.type, attrs: node.attrs }, attributes);
199
+ offset += nodeLength(node);
200
+ }
201
+ }
202
+ function nodeOf({ insert, attributes }) {
203
+ const marks = attributesToMarks(attributes);
204
+ return typeof insert === "string" ? text(insert, marks) : atom(insert.atom, insert.attrs, marks);
205
+ }
206
+ var inlineOfOps = (ops) => normalizeInline(ops.map(nodeOf));
207
+
208
+ // src/yjs/doc-shape.ts
209
+ var deleteText = (text2, at, length) => text2.applyDelta(at > 0 ? [{ retain: at }, { delete: length }] : [{ delete: length }]);
210
+ var regionStart = (name) => ({ r: name });
211
+ var isPlainObject = (value) => typeof value === "object" && value !== null && !(value instanceof Y.AbstractType);
212
+ var regionNameOf = (embed) => isPlainObject(embed) && typeof embed.r === "string" && embed.atom === void 0 ? embed.r : null;
213
+ var isAtomEmbed = (embed) => isPlainObject(embed) && typeof embed.atom === "string" && isPlainObject(embed.attrs);
214
+ var definedEntries = (attrs) => Object.entries(attrs).filter(([, value]) => value !== void 0);
215
+ function attrsMap(marker, attrs) {
216
+ const current = marker.get("attrs");
217
+ if (current instanceof Y.Map) return current;
218
+ marker.set("attrs", new Y.Map(definedEntries(attrs)));
219
+ return null;
220
+ }
221
+ function markerOf(block) {
222
+ return new Y.Map([
223
+ ["id", block.id],
224
+ ["type", block.type],
225
+ ["indent", block.indent],
226
+ ["attrs", new Y.Map(definedEntries(block.attrs))]
227
+ ]);
228
+ }
229
+ function readMarker(map) {
230
+ const [id, type, indent, attrs] = ["id", "type", "indent", "attrs"].map((key) => map.get(key));
231
+ if (typeof id !== "string") return null;
232
+ return {
233
+ id,
234
+ type: typeof type === "string" ? type : "",
235
+ indent: typeof indent === "number" ? indent : 0,
236
+ attrs: attrs instanceof Y.Map ? attrs : null
237
+ };
238
+ }
239
+ function blockOps(block, map, open) {
240
+ const ops = [{ insert: map, attributes: {} }];
241
+ for (const [name, inline] of Object.entries(block.regions)) {
242
+ ops.push({ insert: regionStart(name), attributes: {} });
243
+ if (name === open) break;
244
+ ops.push(...inlineOps(inline));
245
+ }
246
+ return ops;
247
+ }
248
+ var writeOps = (text2, at, ops) => text2.applyDelta(at > 0 ? [{ retain: at }, ...ops] : ops);
249
+ function writeBlock(text2, at, block, map, open) {
250
+ writeOps(text2, at, blockOps(block, map, open));
251
+ }
252
+ function writeBlocks(text2, at, blocks) {
253
+ const maps = blocks.map(markerOf);
254
+ writeOps(text2, at, blocks.flatMap((block, i) => blockOps(block, maps[i])));
255
+ return maps;
256
+ }
257
+
258
+ // src/yjs/text-steps.ts
259
+ function segAt(layout, at, item) {
260
+ const span = spanAt(layout, at, item);
261
+ const rel = at - spanStart(layout, span);
262
+ const seg = span.segs.find((candidate) => candidate.at <= rel && rel <= candidate.at + candidate.length);
263
+ return seg === void 0 ? null : { seg, rel };
264
+ }
265
+ function replaceAt(layout, { seg, rel }, removed, inline) {
266
+ const from = offsetIn(seg, rel);
267
+ grow(layout, seg, rel, inlineLength(inline) - removed);
268
+ return replaceInlineStep(seg.region.entry.id, seg.region.name, from, from + removed, inline);
269
+ }
270
+ function formatSteps(layout, at, length, attributes) {
271
+ const steps = [];
272
+ for (let span = spanAt(layout, at, true); ; span = layout.spans[span.index + 1]) {
273
+ const start = spanStart(layout, span);
274
+ if (start >= at + length) break;
275
+ for (const seg of span.segs) {
276
+ const from = Math.max(at - start, seg.at);
277
+ const to = Math.min(at + length - start, seg.at + seg.length);
278
+ if (to <= from) continue;
279
+ const { entry, name } = seg.region;
280
+ const [first, last] = [offsetIn(seg, from), offsetIn(seg, to)];
281
+ for (const [key, value] of Object.entries(attributes)) {
282
+ const mark = markFromAttribute(key, value ?? true);
283
+ steps.push((value === null ? removeMarkStep : addMarkStep)(entry.id, name, first, last, mark));
284
+ }
285
+ }
286
+ if (span.index + 1 >= layout.spans.length) break;
287
+ }
288
+ return steps;
289
+ }
290
+ function textSteps(layout, delta) {
291
+ const steps = [];
292
+ let at = 0;
293
+ for (const op of delta) {
294
+ if (op.retain !== void 0) {
295
+ if (op.attributes !== void 0) steps.push(...formatSteps(layout, at, op.retain, op.attributes));
296
+ at += op.retain;
297
+ } else if (op.delete !== void 0) {
298
+ const found = segAt(layout, at, true);
299
+ if (found === null || found.rel + op.delete > found.seg.at + found.seg.length) return null;
300
+ steps.push(replaceAt(layout, found, op.delete, []));
301
+ } else {
302
+ const found = typeof op.insert === "string" || isAtomEmbed(op.insert) ? segAt(layout, at, false) : null;
303
+ if (found === null) return null;
304
+ const inline = inlineOfOps([op]);
305
+ steps.push(replaceAt(layout, found, 0, inline));
306
+ at += inlineLength(inline);
307
+ }
308
+ }
309
+ return steps;
310
+ }
311
+
312
+ // src/yjs/carets.ts
313
+ function relative(text2, layout, pos) {
314
+ const { seg, rel } = pointOf(regionOf(layout, pos.block, pos.region), pos.offset);
315
+ return Y2.createRelativePositionFromTypeIndex(text2, spanStart(layout, seg.host) + rel, -1);
316
+ }
317
+ function absolute(text2, layout, held) {
318
+ const found = Y2.createAbsolutePositionFromRelativePosition(held, text2.doc);
319
+ if (found === null || found.type !== text2) return null;
320
+ const at = segAt(layout, found.index, false);
321
+ if (at === null) return null;
322
+ const { seg, rel } = at;
323
+ return { block: seg.region.entry.id, region: seg.region.name, offset: offsetIn(seg, rel) };
324
+ }
325
+ function holdSelection(text2, layout, selection) {
326
+ if (selection?.kind !== "text") return null;
327
+ try {
328
+ return { anchor: relative(text2, layout, selection.anchor), head: relative(text2, layout, selection.head) };
329
+ } catch {
330
+ return null;
331
+ }
332
+ }
333
+ function restoreSelection(text2, layout, held) {
334
+ if (held === null) return null;
335
+ const [anchor, head] = [absolute(text2, layout, held.anchor), absolute(text2, layout, held.head)];
336
+ return anchor === null || head === null ? null : { kind: "text", anchor, head };
337
+ }
338
+
339
+ export {
340
+ sharedChange,
341
+ applyRemote,
342
+ emptySpan,
343
+ createLayout,
344
+ spanStart,
345
+ indexOf,
346
+ textLength,
347
+ spanAt,
348
+ offsetIn,
349
+ pointOf,
350
+ piecesOf,
351
+ grow,
352
+ cleanEntry,
353
+ placeEntries,
354
+ regionOf,
355
+ markAttribute,
356
+ insertInline,
357
+ inlineOfOps,
358
+ deleteText,
359
+ regionStart,
360
+ regionNameOf,
361
+ isAtomEmbed,
362
+ definedEntries,
363
+ attrsMap,
364
+ markerOf,
365
+ readMarker,
366
+ writeBlock,
367
+ writeBlocks,
368
+ textSteps,
369
+ relative,
370
+ absolute,
371
+ holdSelection,
372
+ restoreSelection,
373
+ holdBinding,
374
+ sharedOf
375
+ };
376
+ //# sourceMappingURL=chunk-6YSGUAVW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/engine/collab/apply-remote.ts","../src/yjs/bound.ts","../src/yjs/carets.ts","../src/yjs/layout.ts","../src/yjs/doc-shape.ts","../src/yjs/marks-codec.ts","../src/yjs/inline-codec.ts","../src/yjs/text-steps.ts"],"mappings":"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","names":["Y","text","text"]}