@pie-element/shared-editor-runtime 0.1.1-next.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 (40) hide show
  1. package/dist/browser/dist-86k79VvK.js +1829 -0
  2. package/dist/browser/dist-86k79VvK.js.map +1 -0
  3. package/dist/browser/dist-BiHYI9ZI.js +3508 -0
  4. package/dist/browser/dist-BiHYI9ZI.js.map +1 -0
  5. package/dist/browser/dist-BzUsSMiM.js +933 -0
  6. package/dist/browser/dist-BzUsSMiM.js.map +1 -0
  7. package/dist/browser/dist-DlTupuCB.js +8000 -0
  8. package/dist/browser/dist-DlTupuCB.js.map +1 -0
  9. package/dist/browser/dist-DyMj6m6j.js +996 -0
  10. package/dist/browser/dist-DyMj6m6j.js.map +1 -0
  11. package/dist/browser/prosemirror-state/index.js +2 -0
  12. package/dist/browser/tiptap-core/index.js +2 -0
  13. package/dist/browser/tiptap-extension-character-count/index.js +7 -0
  14. package/dist/browser/tiptap-extension-character-count/index.js.map +1 -0
  15. package/dist/browser/tiptap-extension-image/index.js +133 -0
  16. package/dist/browser/tiptap-extension-image/index.js.map +1 -0
  17. package/dist/browser/tiptap-extension-list-item/index.js +7 -0
  18. package/dist/browser/tiptap-extension-list-item/index.js.map +1 -0
  19. package/dist/browser/tiptap-extension-placeholder/index.js +7 -0
  20. package/dist/browser/tiptap-extension-placeholder/index.js.map +1 -0
  21. package/dist/browser/tiptap-extension-subscript/index.js +37 -0
  22. package/dist/browser/tiptap-extension-subscript/index.js.map +1 -0
  23. package/dist/browser/tiptap-extension-superscript/index.js +37 -0
  24. package/dist/browser/tiptap-extension-superscript/index.js.map +1 -0
  25. package/dist/browser/tiptap-extension-table/index.js +2 -0
  26. package/dist/browser/tiptap-extension-table-cell/index.js +7 -0
  27. package/dist/browser/tiptap-extension-table-cell/index.js.map +1 -0
  28. package/dist/browser/tiptap-extension-table-header/index.js +7 -0
  29. package/dist/browser/tiptap-extension-table-header/index.js.map +1 -0
  30. package/dist/browser/tiptap-extension-table-row/index.js +7 -0
  31. package/dist/browser/tiptap-extension-table-row/index.js.map +1 -0
  32. package/dist/browser/tiptap-extension-text-align/index.js +49 -0
  33. package/dist/browser/tiptap-extension-text-align/index.js.map +1 -0
  34. package/dist/browser/tiptap-extension-text-style/index.js +166 -0
  35. package/dist/browser/tiptap-extension-text-style/index.js.map +1 -0
  36. package/dist/browser/tiptap-extensions/index.js +2 -0
  37. package/dist/browser/tiptap-pm-state/index.js +2 -0
  38. package/dist/browser/tiptap-starter-kit/index.js +1642 -0
  39. package/dist/browser/tiptap-starter-kit/index.js.map +1 -0
  40. package/package.json +50 -0
@@ -0,0 +1,933 @@
1
+ import { Bt as e, Cn as t, Dn as n, Mt as r, ft as i, gn as a, jt as o, m as s, mt as c, pt as l, s as u, ut as d, zn as f } from "./dist-DlTupuCB.js";
2
+ import { c as p, i as m, w as h } from "./dist-BiHYI9ZI.js";
3
+ //#region ../../../node_modules/.bun/@tiptap+extension-list@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extension-list/dist/index.js
4
+ var g = "listItem", _ = "textStyle", v = /^\s*([-+*])\s$/, y = s.create({
5
+ name: "bulletList",
6
+ addOptions() {
7
+ return {
8
+ itemTypeName: "listItem",
9
+ HTMLAttributes: {},
10
+ keepMarks: !1,
11
+ keepAttributes: !1
12
+ };
13
+ },
14
+ group: "block list",
15
+ content() {
16
+ return `${this.options.itemTypeName}+`;
17
+ },
18
+ parseHTML() {
19
+ return [{ tag: "ul" }];
20
+ },
21
+ renderHTML({ HTMLAttributes: e }) {
22
+ return [
23
+ "ul",
24
+ a(this.options.HTMLAttributes, e),
25
+ 0
26
+ ];
27
+ },
28
+ markdownTokenName: "list",
29
+ parseMarkdown: (e, t) => e.type !== "list" || e.ordered ? [] : {
30
+ type: "bulletList",
31
+ content: e.items ? t.parseChildren(e.items) : []
32
+ },
33
+ renderMarkdown: (e, t) => e.content ? t.renderChildren(e.content, "\n") : "",
34
+ markdownOptions: { indentsContent: !0 },
35
+ addCommands() {
36
+ return { toggleBulletList: () => ({ commands: e, chain: t }) => this.options.keepAttributes ? t().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(g, this.editor.getAttributes(_)).run() : e.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks) };
37
+ },
38
+ addKeyboardShortcuts() {
39
+ return { "Mod-Shift-8": () => this.editor.commands.toggleBulletList() };
40
+ },
41
+ addInputRules() {
42
+ let e = f({
43
+ find: v,
44
+ type: this.type
45
+ });
46
+ return (this.options.keepMarks || this.options.keepAttributes) && (e = f({
47
+ find: v,
48
+ type: this.type,
49
+ keepMarks: this.options.keepMarks,
50
+ keepAttributes: this.options.keepAttributes,
51
+ getAttributes: () => this.editor.getAttributes(_),
52
+ editor: this.editor
53
+ })), [e];
54
+ }
55
+ }), b = (e, t, n) => {
56
+ let { selection: r } = e;
57
+ if (!r.empty) return null;
58
+ let { $from: i } = r;
59
+ if (!i.parent.isTextblock || i.parentOffset !== i.parent.content.size) return null;
60
+ let a = -1;
61
+ for (let e = i.depth; e > 0; --e) if (i.node(e).type.name === t) {
62
+ a = e;
63
+ break;
64
+ }
65
+ if (a < 0) return null;
66
+ let o = i.node(a), s = i.index(a);
67
+ if (s + 1 >= o.childCount) return null;
68
+ let c = o.child(s + 1);
69
+ if (!n.includes(c.type.name)) return null;
70
+ let l = e.schema.nodes[t], u = !1;
71
+ if (c.forEach((e) => {
72
+ e.type === l && e.childCount > 1 && (u = !0);
73
+ }), !u) return null;
74
+ let d = e.doc.resolve(i.after()).nodeAfter;
75
+ if (!d || !n.includes(d.type.name)) return null;
76
+ let f = [];
77
+ return d.forEach((e) => {
78
+ f.push(e);
79
+ }), f.length === 0 ? null : {
80
+ listItemDepth: a,
81
+ nestedList: d,
82
+ nestedListPos: i.after(),
83
+ insertPos: i.after(a),
84
+ items: f
85
+ };
86
+ }, x = (e, t, n, r) => {
87
+ let i = b(e, n, r);
88
+ if (!i) return !1;
89
+ let { selection: a } = e, { nestedList: o, nestedListPos: s, insertPos: c, items: l } = i, u = e.tr;
90
+ u.delete(s, s + o.nodeSize);
91
+ let d = u.mapping.map(c);
92
+ return u.insert(d, h.from(l)), u.setSelection(a.map(u.doc, u.mapping)), t && t(u), !0;
93
+ }, S = (e, t, n) => x(e.state, e.view.dispatch, t, n), C = (e, t) => u.create({
94
+ name: `${e}BranchingDeleteKeymap`,
95
+ priority: 101,
96
+ addKeyboardShortcuts() {
97
+ let n = () => S(this.editor, e, t);
98
+ return {
99
+ Delete: n,
100
+ "Mod-Delete": n
101
+ };
102
+ }
103
+ }), w = [
104
+ [1e3, "m"],
105
+ [900, "cm"],
106
+ [500, "d"],
107
+ [400, "cd"],
108
+ [100, "c"],
109
+ [90, "xc"],
110
+ [50, "l"],
111
+ [40, "xl"],
112
+ [10, "x"],
113
+ [9, "ix"],
114
+ [5, "v"],
115
+ [4, "iv"],
116
+ [1, "i"]
117
+ ], T = "abcdefghijklmnopqrstuvwxyz", E = String.raw`\d+|[ivxlcdmIVXLCDM]+|${"[a-zA-Z]{1,2}"}`;
118
+ function D(e) {
119
+ let t = e, n = "";
120
+ for (let [e, r] of w) for (; t >= e;) n += r, t -= e;
121
+ return n;
122
+ }
123
+ function O(e) {
124
+ return D(e).toUpperCase();
125
+ }
126
+ function k(e) {
127
+ let t = e.toLowerCase(), n = 0, r = 0;
128
+ for (; n < t.length;) {
129
+ let e = !1;
130
+ for (let [i, a] of w) if (t.startsWith(a, n)) {
131
+ r += i, n += a.length, e = !0;
132
+ break;
133
+ }
134
+ if (!e) return 0;
135
+ }
136
+ return r;
137
+ }
138
+ function ee(e) {
139
+ if (!/^[ivxlcdmIVXLCDM]+$/.test(e)) return !1;
140
+ let t = k(e);
141
+ return t <= 0 ? !1 : (e === e.toLowerCase() ? D(t) : O(t)) === e;
142
+ }
143
+ function te(e) {
144
+ let t = e.toLowerCase();
145
+ if (t.length === 1) return t.charCodeAt(0) - 97 + 1;
146
+ if (t.length === 2) {
147
+ let e = t.charCodeAt(0) - 97, n = t.charCodeAt(1) - 97;
148
+ return (e + 1) * 26 + n + 1;
149
+ }
150
+ return 0;
151
+ }
152
+ function A(e) {
153
+ if (e <= 26) return T[e - 1];
154
+ let t = Math.floor((e - 1) / 26) - 1, n = (e - 1) % 26;
155
+ return t < 0 ? T[n] : T[t] + T[n];
156
+ }
157
+ function j(e) {
158
+ if (!(!e || /^\d+$/.test(e))) {
159
+ if (ee(e)) return e === e.toLowerCase() ? "i" : "I";
160
+ if (/^[a-z]{1,2}$/.test(e)) return "a";
161
+ if (/^[A-Z]{1,2}$/.test(e)) return "A";
162
+ }
163
+ }
164
+ function M(e) {
165
+ if (/^\d+$/.test(e)) return parseInt(e, 10);
166
+ let t = j(e);
167
+ if (t === "i" || t === "I") return k(e);
168
+ if (t === "a" || t === "A") {
169
+ let t = te(e);
170
+ return t > 0 ? t : 1;
171
+ }
172
+ let n = parseInt(e, 10);
173
+ return Number.isNaN(n) ? 1 : n;
174
+ }
175
+ function N(e, t) {
176
+ if (e === "numeric") return String(t);
177
+ switch (e) {
178
+ case "a": return A(t);
179
+ case "A": return A(t).toUpperCase();
180
+ case "i": return D(t);
181
+ case "I": return O(t);
182
+ default: return String(t);
183
+ }
184
+ }
185
+ function P(e) {
186
+ if (e.length === 0) return !1;
187
+ let t = j(e[0]) ?? "numeric", n = M(e[0]);
188
+ if (n < 1) return !1;
189
+ for (let r = 0; r < e.length; r++) {
190
+ let i = N(t, n + r);
191
+ if (e[r] !== i) return !1;
192
+ }
193
+ return !0;
194
+ }
195
+ function ne(e) {
196
+ return {
197
+ type: j(e),
198
+ start: M(e)
199
+ };
200
+ }
201
+ function re(e) {
202
+ let { type: t, start: n } = ne(e), r = {};
203
+ return t && (r.type = t), n !== 1 && (r.start = n), r;
204
+ }
205
+ function ie(e, t, n = ". ") {
206
+ let r = t + 1;
207
+ if (!e || e === "1") return `${r}${n}`;
208
+ switch (e) {
209
+ case "a": return `${A(r)}${n}`;
210
+ case "A": return `${A(r).toUpperCase()}${n}`;
211
+ case "i": return `${D(r)}${n}`;
212
+ case "I": return `${O(r)}${n}`;
213
+ default: return `${r}${n}`;
214
+ }
215
+ }
216
+ function ae(e) {
217
+ let t = e.tokens?.[0];
218
+ return !!(e.text && e.tokens?.length === 1 && t?.type === "list" && t.ordered && t.raw === e.text);
219
+ }
220
+ function oe(e, t) {
221
+ return t.tokenizeInline ? t.parseInline(t.tokenizeInline(e)) : t.parseInline([{
222
+ type: "text",
223
+ raw: e,
224
+ text: e
225
+ }]);
226
+ }
227
+ var F = s.create({
228
+ name: "listItem",
229
+ addOptions() {
230
+ return {
231
+ HTMLAttributes: {},
232
+ bulletListTypeName: "bulletList",
233
+ orderedListTypeName: "orderedList"
234
+ };
235
+ },
236
+ content: "paragraph block*",
237
+ defining: !0,
238
+ parseHTML() {
239
+ return [{ tag: "li" }];
240
+ },
241
+ renderHTML({ HTMLAttributes: e }) {
242
+ return [
243
+ "li",
244
+ a(this.options.HTMLAttributes, e),
245
+ 0
246
+ ];
247
+ },
248
+ markdownTokenName: "list_item",
249
+ parseMarkdown: (e, t) => {
250
+ if (e.type !== "list_item") return [];
251
+ let n = t.parseBlockChildren ?? t.parseChildren, r = [];
252
+ if (e.tokens && e.tokens.length > 0) {
253
+ if (ae(e)) return {
254
+ type: "listItem",
255
+ content: [{
256
+ type: "paragraph",
257
+ content: oe(e.text || "", t)
258
+ }]
259
+ };
260
+ if (e.tokens.some((e) => e.type === "paragraph")) r = n(e.tokens);
261
+ else {
262
+ let i = e.tokens[0];
263
+ if (i && i.type === "text" && i.tokens && i.tokens.length > 0) {
264
+ if (r = [{
265
+ type: "paragraph",
266
+ content: t.parseInline(i.tokens)
267
+ }], e.tokens.length > 1) {
268
+ let t = n(e.tokens.slice(1));
269
+ r.push(...t);
270
+ }
271
+ } else r = n(e.tokens);
272
+ }
273
+ }
274
+ return r.length === 0 && (r = [{
275
+ type: "paragraph",
276
+ content: []
277
+ }]), {
278
+ type: "listItem",
279
+ content: r
280
+ };
281
+ },
282
+ renderMarkdown: (e, t, r) => n(e, t, (e) => {
283
+ if (e.parentType === "bulletList") return "- ";
284
+ if (e.parentType === "orderedList") {
285
+ var t, n;
286
+ let r = ((t = e.meta) == null || (t = t.parentAttrs) == null ? void 0 : t.start) || 1;
287
+ return ie((n = e.meta) == null || (n = n.parentAttrs) == null ? void 0 : n.type, r - 1 + (e.index || 0), ". ");
288
+ }
289
+ return "- ";
290
+ }, r, { alignNestedToPrefix: r?.parentType === "orderedList" }),
291
+ addExtensions() {
292
+ return [C(this.name, [this.options.bulletListTypeName, this.options.orderedListTypeName])];
293
+ },
294
+ addKeyboardShortcuts() {
295
+ return {
296
+ Enter: () => this.editor.commands.splitListItem(this.name),
297
+ Tab: () => this.editor.commands.sinkListItem(this.name),
298
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
299
+ };
300
+ }
301
+ }), I = (e, t) => {
302
+ let { $from: n } = t.selection, r = i(e, t.schema), a = null, o = n.depth, s = n.pos, c = null;
303
+ for (; o > 0 && c === null;) a = n.node(o), a.type === r ? c = o : (--o, --s);
304
+ return c === null ? null : {
305
+ $pos: t.doc.resolve(s),
306
+ depth: c
307
+ };
308
+ }, L = (e, t) => {
309
+ let n = I(e, t);
310
+ if (!n) return !1;
311
+ let [, r] = d(t, e, n.$pos.pos + 4);
312
+ return r;
313
+ }, R = (e, t, n) => {
314
+ let { $anchor: r } = e.selection, i = Math.max(0, r.pos - 2), a = e.doc.resolve(i).node();
315
+ return !(!a || !n.includes(a.type.name));
316
+ }, z = (t, n, i) => {
317
+ if (t.commands.undoInputRule()) return !0;
318
+ if (t.state.selection.from !== t.state.selection.to) return !1;
319
+ if (!e(t.state, n) && R(t.state, n, i)) {
320
+ let { $anchor: e } = t.state.selection, r = t.state.doc.resolve(e.before() - 1), i = [];
321
+ r.node().descendants((e, t) => {
322
+ e.type.name === n && i.push({
323
+ node: e,
324
+ pos: t
325
+ });
326
+ });
327
+ let a = i.at(-1);
328
+ if (!a) return !1;
329
+ let o = t.state.doc.resolve(r.start() + a.pos + 1);
330
+ return t.chain().cut({
331
+ from: e.start() - 1,
332
+ to: e.end() + 1
333
+ }, o.end()).joinForward().run();
334
+ }
335
+ if (!e(t.state, n) || !r(t.state)) return !1;
336
+ let { $from: a } = t.state.selection, o = a.depth - 1;
337
+ return a.node(o).type !== t.schema.nodes[n] || a.index(o) !== 0 ? !1 : t.chain().liftListItem(n).run();
338
+ }, B = (e, t) => {
339
+ let n = L(e, t), r = I(e, t);
340
+ return !r || !n ? !1 : n > r.depth;
341
+ }, V = (e, t) => {
342
+ let n = L(e, t), r = I(e, t);
343
+ return !r || !n ? !1 : n < r.depth;
344
+ }, H = (t, n) => {
345
+ if (!e(t.state, n) || !o(t.state, n)) return !1;
346
+ let { selection: r } = t.state, { $from: i, $to: a } = r;
347
+ return !r.empty && i.sameParent(a) ? !1 : B(n, t.state) ? t.chain().focus(t.state.selection.from + 4).lift(n).joinBackward().run() : V(n, t.state) ? t.chain().joinForward().joinBackward().run() : t.commands.joinItemForward();
348
+ }, U = (t, n, r) => {
349
+ let { state: i } = t, { selection: a } = i;
350
+ if (!a.empty) return !1;
351
+ let { $from: o } = a;
352
+ if (o.parentOffset !== 0 || !o.parent.isTextblock || e(i, n)) return !1;
353
+ let s = l(o);
354
+ if (!s || !r.includes(s.type.name)) return !1;
355
+ let c = s.lastChild;
356
+ if (!c || c.type.name !== n) return !1;
357
+ let u = o.parent;
358
+ if (!c.canReplace(c.childCount, c.childCount, h.from(u))) return !1;
359
+ let d = o.before(), f = o.after(), m = d - 2;
360
+ return t.commands.command(({ tr: e, dispatch: t }) => (t && (e.delete(d, f).insert(m, h.from(u)), e.setSelection(p.create(e.doc, m + 1)), e.scrollIntoView()), !0));
361
+ }, W = u.create({
362
+ name: "listKeymap",
363
+ addOptions() {
364
+ return { listTypes: [{
365
+ itemName: "listItem",
366
+ wrapperNames: ["bulletList", "orderedList"]
367
+ }, {
368
+ itemName: "taskItem",
369
+ wrapperNames: ["taskList"]
370
+ }] };
371
+ },
372
+ addKeyboardShortcuts() {
373
+ return {
374
+ Delete: ({ editor: e }) => {
375
+ let t = !1;
376
+ return this.options.listTypes.forEach(({ itemName: n }) => {
377
+ e.state.schema.nodes[n] !== void 0 && H(e, n) && (t = !0);
378
+ }), t;
379
+ },
380
+ "Mod-Delete": ({ editor: e }) => {
381
+ let t = !1;
382
+ return this.options.listTypes.forEach(({ itemName: n }) => {
383
+ e.state.schema.nodes[n] !== void 0 && H(e, n) && (t = !0);
384
+ }), t;
385
+ },
386
+ Backspace: ({ editor: e }) => {
387
+ let t = !1;
388
+ return this.options.listTypes.forEach(({ itemName: n, wrapperNames: r }) => {
389
+ e.state.schema.nodes[n] !== void 0 && z(e, n, r) && (t = !0);
390
+ }), t;
391
+ },
392
+ "Mod-Backspace": ({ editor: e }) => {
393
+ let t = !1;
394
+ return this.options.listTypes.forEach(({ itemName: n, wrapperNames: r }) => {
395
+ e.state.schema.nodes[n] !== void 0 && z(e, n, r) && (t = !0);
396
+ }), t;
397
+ },
398
+ Tab: ({ editor: e }) => {
399
+ for (let { itemName: t, wrapperNames: n } of this.options.listTypes) if (e.state.schema.nodes[t] !== void 0 && U(e, t, n)) return !0;
400
+ return !1;
401
+ }
402
+ };
403
+ }
404
+ }), G = RegExp(`^(\\s*)(${E})([.)])\\s+(.*)$`), K = /^\s/, q = {
405
+ heading: /^#{1,6}(?:\s|$)/,
406
+ bulletItem: /^[-+*]\s+/,
407
+ codeFence: /^(?:```|~~~)/,
408
+ blockMath: /^\$\$/,
409
+ thematicBreak: /^(?:(?:-[ \t]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})$/
410
+ };
411
+ function se(e) {
412
+ return G.test(e.trimStart());
413
+ }
414
+ function ce(e) {
415
+ let t = e.trimStart();
416
+ return q.bulletItem.test(t) || se(t) || q.heading.test(t) || q.thematicBreak.test(t) && !t.startsWith("-") || /^>\s?/.test(t) || q.codeFence.test(t) || q.blockMath.test(t);
417
+ }
418
+ function le(e) {
419
+ return Object.values(q).some((t) => t.test(e));
420
+ }
421
+ function ue(e) {
422
+ let t = [], n = [], r = !1;
423
+ return e.forEach((e) => {
424
+ if (r) {
425
+ n.push(e);
426
+ return;
427
+ }
428
+ if (e.trim() === "") {
429
+ r = !0, n.push(e);
430
+ return;
431
+ }
432
+ if (t.length > 0 && ce(e)) {
433
+ r = !0, n.push(e);
434
+ return;
435
+ }
436
+ t.push(e);
437
+ }), {
438
+ paragraphLines: t,
439
+ blockLines: n
440
+ };
441
+ }
442
+ function de(e) {
443
+ let t = [], n = 0, r = 0;
444
+ for (; n < e.length;) {
445
+ let i = e[n], a = i.match(G);
446
+ if (!a) break;
447
+ let [, o, s, c, l] = a, u = o.length, d = parseInt(s, 10), f = isNaN(d) ? j(s) : void 0, p = isNaN(d) ? M(s) : d, m = [l], h = n + 1, g = [i], _ = !1;
448
+ for (; h < e.length;) {
449
+ let t = e[h];
450
+ if (t.match(G)) break;
451
+ if (t.trim() === "") g.push(t), m.push(""), _ = !0, h += 1;
452
+ else if (t.match(K)) {
453
+ let e = t.length - t.trimStart().length, n = u + s.length + 1;
454
+ g.push(t), m.push(t.slice(Math.min(e, n))), h += 1;
455
+ } else {
456
+ if (_ || le(t)) break;
457
+ g.push(t), m.push(t), h += 1;
458
+ }
459
+ }
460
+ t.push({
461
+ indent: u,
462
+ number: p,
463
+ type: f,
464
+ content: m.join("\n").trim(),
465
+ contentLines: m,
466
+ raw: g.join("\n")
467
+ }), r = h, n = h;
468
+ }
469
+ return [t, r];
470
+ }
471
+ var fe = RegExp(`^(${E})([.)])\\s+(.+)$`);
472
+ function pe(e) {
473
+ let t = e.split("\n").filter((e) => e.trim().length > 0);
474
+ if (t.length === 0) return null;
475
+ let n = [];
476
+ for (let e of t) {
477
+ let t = e.trim().match(fe);
478
+ if (!t) return null;
479
+ n.push({
480
+ marker: t[1],
481
+ content: t[3]
482
+ });
483
+ }
484
+ return P(n.map((e) => e.marker)) ? {
485
+ type: "orderedList",
486
+ attrs: re(n[0].marker),
487
+ content: n.map((e) => ({
488
+ type: "listItem",
489
+ content: [{
490
+ type: "paragraph",
491
+ content: [{
492
+ type: "text",
493
+ text: e.content
494
+ }]
495
+ }]
496
+ }))
497
+ } : null;
498
+ }
499
+ function J(e, t, n) {
500
+ let r = [], i = 0;
501
+ for (; i < e.length;) {
502
+ let a = e[i];
503
+ if (a.indent === t) {
504
+ let { paragraphLines: o, blockLines: s } = ue(a.contentLines), c = o.join("\n").trim(), l = [];
505
+ c && l.push({
506
+ type: "paragraph",
507
+ raw: c,
508
+ tokens: n.inlineTokens(c)
509
+ });
510
+ let u = s.join("\n").trim();
511
+ if (u) {
512
+ let e = n.blockTokens(u);
513
+ l.push(...e);
514
+ }
515
+ let d = i + 1, f = [];
516
+ for (; d < e.length && e[d].indent > t;) f.push(e[d]), d += 1;
517
+ if (f.length > 0) {
518
+ let e = J(f, Math.min(...f.map((e) => e.indent)), n);
519
+ l.push({
520
+ type: "list",
521
+ ordered: !0,
522
+ start: f[0].number,
523
+ typeMarker: f[0].type,
524
+ items: e,
525
+ raw: f.map((e) => e.raw).join("\n")
526
+ });
527
+ }
528
+ r.push({
529
+ type: "list_item",
530
+ raw: a.raw,
531
+ tokens: l
532
+ }), i = d;
533
+ } else i += 1;
534
+ }
535
+ return r;
536
+ }
537
+ function me(e, t) {
538
+ return e.map((e) => {
539
+ if (e.type !== "list_item") return t.parseChildren([e])[0];
540
+ let n = [];
541
+ return e.tokens && e.tokens.length > 0 && e.tokens.forEach((e) => {
542
+ if (e.type === "paragraph" || e.type === "list" || e.type === "blockquote" || e.type === "code") n.push(...t.parseChildren([e]));
543
+ else if (e.type === "text" && e.tokens) {
544
+ let r = t.parseChildren([e]);
545
+ n.push({
546
+ type: "paragraph",
547
+ content: r
548
+ });
549
+ } else {
550
+ let r = t.parseChildren([e]);
551
+ r.length > 0 && n.push(...r);
552
+ }
553
+ }), {
554
+ type: "listItem",
555
+ content: n
556
+ };
557
+ });
558
+ }
559
+ var he = "listItem", Y = "textStyle", X = /^(\d+)\.\s$/;
560
+ function Z(e) {
561
+ let t = e.match(/list-style-type\s*:\s*([^;]+)/i);
562
+ if (!t) return null;
563
+ switch (t[1].trim().toLowerCase()) {
564
+ case "upper-roman": return "I";
565
+ case "lower-roman": return "i";
566
+ case "upper-alpha":
567
+ case "upper-latin": return "A";
568
+ case "lower-alpha":
569
+ case "lower-latin": return "a";
570
+ default: return null;
571
+ }
572
+ }
573
+ var Q = s.create({
574
+ name: "orderedList",
575
+ addOptions() {
576
+ return {
577
+ itemTypeName: "listItem",
578
+ HTMLAttributes: {},
579
+ keepMarks: !1,
580
+ keepAttributes: !1
581
+ };
582
+ },
583
+ group: "block list",
584
+ content() {
585
+ return `${this.options.itemTypeName}+`;
586
+ },
587
+ addAttributes() {
588
+ return {
589
+ start: {
590
+ default: 1,
591
+ parseHTML: (e) => e.hasAttribute("start") ? parseInt(e.getAttribute("start") || "", 10) : 1
592
+ },
593
+ type: {
594
+ default: null,
595
+ parseHTML: (e) => {
596
+ let t = e.getAttribute("type");
597
+ if (t) return t;
598
+ let n = e.getAttribute("style");
599
+ if (n) {
600
+ let e = Z(n);
601
+ if (e) return e;
602
+ }
603
+ let r = e.querySelector("li");
604
+ if (r) {
605
+ let e = r.getAttribute("style");
606
+ if (e) {
607
+ let t = Z(e);
608
+ if (t) return t;
609
+ }
610
+ }
611
+ return null;
612
+ }
613
+ }
614
+ };
615
+ },
616
+ parseHTML() {
617
+ return [{ tag: "ol" }];
618
+ },
619
+ renderHTML({ HTMLAttributes: e }) {
620
+ let { start: t, type: n, ...r } = e, i = a(this.options.HTMLAttributes, r);
621
+ return t !== 1 && (i.start = t), n && n !== "1" && (i.type = n), [
622
+ "ol",
623
+ i,
624
+ 0
625
+ ];
626
+ },
627
+ markdownTokenName: "list",
628
+ parseMarkdown: (e, t) => {
629
+ if (e.type !== "list" || !e.ordered) return [];
630
+ let n = e.start || 1, r = e.typeMarker, i = e.items ? me(e.items, t) : [], a = {};
631
+ return n !== 1 && (a.start = n), r && (a.type = r), Object.keys(a).length > 0 ? {
632
+ type: "orderedList",
633
+ attrs: a,
634
+ content: i
635
+ } : {
636
+ type: "orderedList",
637
+ content: i
638
+ };
639
+ },
640
+ renderMarkdown: (e, t) => e.content ? t.renderChildren(e.content, "\n") : "",
641
+ markdownTokenizer: {
642
+ name: "orderedList",
643
+ level: "block",
644
+ start: () => -1,
645
+ tokenize: (e, t, n) => {
646
+ let r = e.split("\n"), [i, a] = de(r);
647
+ if (i.length === 0) return;
648
+ let o = J(i, i[0].indent, n);
649
+ if (o.length !== 0) return {
650
+ type: "list",
651
+ ordered: !0,
652
+ start: i[0]?.number || 1,
653
+ typeMarker: i[0]?.type,
654
+ items: o,
655
+ raw: r.slice(0, a).join("\n")
656
+ };
657
+ }
658
+ },
659
+ markdownOptions: { indentsContent: !0 },
660
+ addCommands() {
661
+ return { toggleOrderedList: () => ({ commands: e, chain: t }) => this.options.keepAttributes ? t().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(he, this.editor.getAttributes(Y)).run() : e.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks) };
662
+ },
663
+ addKeyboardShortcuts() {
664
+ return { "Mod-Shift-7": () => this.editor.commands.toggleOrderedList() };
665
+ },
666
+ addProseMirrorPlugins() {
667
+ return [new m({ props: { handlePaste: (e, t) => {
668
+ if ((t.clipboardData?.getData("text/html"))?.trim()) return !1;
669
+ let n = t.clipboardData?.getData("text/plain");
670
+ if (!n) return !1;
671
+ let r = pe(n);
672
+ if (!r) return !1;
673
+ try {
674
+ let t = e.state.schema.nodeFromJSON(r), n = e.state.tr.replaceSelectionWith(t);
675
+ return e.dispatch(n), !0;
676
+ } catch {
677
+ return !1;
678
+ }
679
+ } } })];
680
+ },
681
+ addInputRules() {
682
+ let e = (e, t) => (!t.attrs.type || t.attrs.type === "1") && t.childCount + t.attrs.start === +e[1], t = f({
683
+ find: X,
684
+ type: this.type,
685
+ getAttributes: (e) => ({ start: +e[1] }),
686
+ joinPredicate: e
687
+ });
688
+ return (this.options.keepMarks || this.options.keepAttributes) && (t = f({
689
+ find: X,
690
+ type: this.type,
691
+ keepMarks: this.options.keepMarks,
692
+ keepAttributes: this.options.keepAttributes,
693
+ getAttributes: (e) => ({
694
+ start: +e[1],
695
+ ...this.editor.getAttributes(Y)
696
+ }),
697
+ joinPredicate: e,
698
+ editor: this.editor
699
+ })), [t];
700
+ }
701
+ }), ge = /^\s*(\[([( |x])?\])\s$/, $ = "position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0", _e = (e, t, n) => {
702
+ var r;
703
+ return (n == null || (r = n.checkboxLabel) == null ? void 0 : r.call(n, e, t)) || `Task item checkbox for ${e.textContent || "empty task item"}`;
704
+ }, ve = s.create({
705
+ name: "taskItem",
706
+ addOptions() {
707
+ return {
708
+ nested: !1,
709
+ HTMLAttributes: {},
710
+ taskListTypeName: "taskList",
711
+ a11y: void 0
712
+ };
713
+ },
714
+ content() {
715
+ return this.options.nested ? "paragraph block*" : "paragraph+";
716
+ },
717
+ defining: !0,
718
+ addAttributes() {
719
+ return { checked: {
720
+ default: !1,
721
+ keepOnSplit: !1,
722
+ parseHTML: (e) => {
723
+ let t = e.getAttribute("data-checked");
724
+ return t === "" || t === "true";
725
+ },
726
+ renderHTML: (e) => ({ "data-checked": e.checked })
727
+ } };
728
+ },
729
+ parseHTML() {
730
+ return [{
731
+ tag: `li[data-type="${this.name}"]`,
732
+ priority: 51,
733
+ contentElement: (e) => e.querySelector("div") ?? e
734
+ }];
735
+ },
736
+ renderHTML({ node: e, HTMLAttributes: t }) {
737
+ return [
738
+ "li",
739
+ a(this.options.HTMLAttributes, t, { "data-type": this.name }),
740
+ [
741
+ "label",
742
+ ["input", {
743
+ type: "checkbox",
744
+ checked: e.attrs.checked ? "checked" : null
745
+ }],
746
+ ["span"]
747
+ ],
748
+ ["div", 0]
749
+ ];
750
+ },
751
+ parseMarkdown: (e, t) => {
752
+ let n = [];
753
+ if (e.tokens && e.tokens.length > 0 ? n.push(t.createNode("paragraph", {}, t.parseInline(e.tokens))) : e.text ? n.push(t.createNode("paragraph", {}, [t.createNode("text", { text: e.text })])) : n.push(t.createNode("paragraph", {}, [])), e.nestedTokens && e.nestedTokens.length > 0) {
754
+ let r = t.parseChildren(e.nestedTokens);
755
+ n.push(...r);
756
+ }
757
+ return t.createNode("taskItem", { checked: e.checked || !1 }, n);
758
+ },
759
+ renderMarkdown: (e, t) => n(e, t, `- [${e.attrs?.checked ? "x" : " "}] `),
760
+ addExtensions() {
761
+ return this.options.nested ? [C(this.name, [this.options.taskListTypeName])] : [];
762
+ },
763
+ addKeyboardShortcuts() {
764
+ let e = {
765
+ Enter: () => this.editor.commands.splitListItem(this.name),
766
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
767
+ };
768
+ return this.options.nested ? {
769
+ ...e,
770
+ Tab: () => this.editor.commands.sinkListItem(this.name)
771
+ } : e;
772
+ },
773
+ addNodeView() {
774
+ return ({ node: e, HTMLAttributes: t, getPos: n, editor: r }) => {
775
+ let i = document.createElement("li"), a = document.createElement("label"), o = document.createElement("span"), s = document.createElement("input"), l = document.createElement("div");
776
+ o.style.cssText = $;
777
+ let u = (e) => {
778
+ let t = _e(e, e.attrs.checked, this.options.a11y);
779
+ s.setAttribute("aria-label", t), o.textContent = t;
780
+ };
781
+ u(e), a.contentEditable = "false", s.type = "checkbox", s.addEventListener("mousedown", (e) => e.preventDefault()), s.addEventListener("change", (t) => {
782
+ if (!r.isEditable && !this.options.onReadOnlyChecked) {
783
+ s.checked = !s.checked;
784
+ return;
785
+ }
786
+ let { checked: i } = t.target;
787
+ r.isEditable && typeof n == "function" && r.chain().focus(void 0, { scrollIntoView: !1 }).command(({ tr: e }) => {
788
+ let t = n();
789
+ if (typeof t != "number") return !1;
790
+ let r = e.doc.nodeAt(t);
791
+ return e.setNodeMarkup(t, void 0, {
792
+ ...r?.attrs,
793
+ checked: i
794
+ }), !0;
795
+ }).run(), !r.isEditable && this.options.onReadOnlyChecked && (this.options.onReadOnlyChecked(e, i) || (s.checked = !s.checked));
796
+ }), Object.entries(this.options.HTMLAttributes).forEach(([e, t]) => {
797
+ i.setAttribute(e, t);
798
+ }), i.dataset.checked = e.attrs.checked, s.checked = e.attrs.checked, a.append(s, o), i.append(a, l), Object.entries(t).forEach(([e, t]) => {
799
+ i.setAttribute(e, t);
800
+ });
801
+ let d = new Set(Object.keys(t));
802
+ return {
803
+ dom: i,
804
+ contentDOM: l,
805
+ update: (e) => {
806
+ if (e.type !== this.type) return !1;
807
+ i.dataset.checked = e.attrs.checked, s.checked = e.attrs.checked, u(e);
808
+ let t = r.extensionManager.attributes, n = c(e, t), a = new Set(Object.keys(n)), o = this.options.HTMLAttributes;
809
+ return d.forEach((e) => {
810
+ a.has(e) || (e in o ? i.setAttribute(e, o[e]) : i.removeAttribute(e));
811
+ }), Object.entries(n).forEach(([e, t]) => {
812
+ t == null ? e in o ? i.setAttribute(e, o[e]) : i.removeAttribute(e) : i.setAttribute(e, t);
813
+ }), d = a, !0;
814
+ }
815
+ };
816
+ };
817
+ },
818
+ addInputRules() {
819
+ return [f({
820
+ find: ge,
821
+ type: this.type,
822
+ getAttributes: (e) => ({ checked: e[e.length - 1] === "x" })
823
+ })];
824
+ }
825
+ }), ye = s.create({
826
+ name: "taskList",
827
+ addOptions() {
828
+ return {
829
+ itemTypeName: "taskItem",
830
+ HTMLAttributes: {}
831
+ };
832
+ },
833
+ group: "block list",
834
+ content() {
835
+ return `${this.options.itemTypeName}+`;
836
+ },
837
+ parseHTML() {
838
+ return [{
839
+ tag: `ul[data-type="${this.name}"]`,
840
+ priority: 51
841
+ }];
842
+ },
843
+ renderHTML({ HTMLAttributes: e }) {
844
+ return [
845
+ "ul",
846
+ a(this.options.HTMLAttributes, e, { "data-type": this.name }),
847
+ 0
848
+ ];
849
+ },
850
+ parseMarkdown: (e, t) => t.createNode("taskList", {}, t.parseChildren(e.items || [])),
851
+ renderMarkdown: (e, t) => e.content ? t.renderChildren(e.content, "\n") : "",
852
+ markdownTokenizer: {
853
+ name: "taskList",
854
+ level: "block",
855
+ start(e) {
856
+ let t = e.match(/^\s*[-+*]\s+\[([ xX])\]\s+/)?.index;
857
+ return t === void 0 ? -1 : t;
858
+ },
859
+ tokenize(e, n, r) {
860
+ let i = (e) => {
861
+ let n = t(e, {
862
+ itemPattern: /^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,
863
+ extractItemData: (e) => ({
864
+ indentLevel: e[1].length,
865
+ mainContent: e[4],
866
+ checked: e[3].toLowerCase() === "x"
867
+ }),
868
+ createToken: (e, t) => ({
869
+ type: "taskItem",
870
+ raw: "",
871
+ mainContent: e.mainContent,
872
+ indentLevel: e.indentLevel,
873
+ checked: e.checked,
874
+ text: e.mainContent,
875
+ tokens: r.inlineTokens(e.mainContent),
876
+ nestedTokens: t
877
+ }),
878
+ customNestedParser: i
879
+ }, r);
880
+ if (n) {
881
+ let t = {
882
+ type: "taskList",
883
+ raw: n.raw,
884
+ items: n.items
885
+ }, i = e.slice(n.raw.length);
886
+ return i.trim() ? [t, ...r.blockTokens(i)] : [t];
887
+ }
888
+ return r.blockTokens(e);
889
+ }, a = t(e, {
890
+ itemPattern: /^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,
891
+ extractItemData: (e) => ({
892
+ indentLevel: e[1].length,
893
+ mainContent: e[4],
894
+ checked: e[3].toLowerCase() === "x"
895
+ }),
896
+ createToken: (e, t) => ({
897
+ type: "taskItem",
898
+ raw: "",
899
+ mainContent: e.mainContent,
900
+ indentLevel: e.indentLevel,
901
+ checked: e.checked,
902
+ text: e.mainContent,
903
+ tokens: r.inlineTokens(e.mainContent),
904
+ nestedTokens: t
905
+ }),
906
+ customNestedParser: i
907
+ }, r);
908
+ if (a) return {
909
+ type: "taskList",
910
+ raw: a.raw,
911
+ items: a.items
912
+ };
913
+ }
914
+ },
915
+ markdownOptions: { indentsContent: !0 },
916
+ addCommands() {
917
+ return { toggleTaskList: () => ({ commands: e }) => e.toggleList(this.name, this.options.itemTypeName) };
918
+ },
919
+ addKeyboardShortcuts() {
920
+ return { "Mod-Shift-9": () => this.editor.commands.toggleTaskList() };
921
+ }
922
+ });
923
+ u.create({
924
+ name: "listKit",
925
+ addExtensions() {
926
+ let e = [];
927
+ return this.options.bulletList !== !1 && e.push(y.configure(this.options.bulletList)), this.options.listItem !== !1 && e.push(F.configure(this.options.listItem)), this.options.listKeymap !== !1 && e.push(W.configure(this.options.listKeymap)), this.options.orderedList !== !1 && e.push(Q.configure(this.options.orderedList)), this.options.taskItem !== !1 && e.push(ve.configure(this.options.taskItem)), this.options.taskList !== !1 && e.push(ye.configure(this.options.taskList)), e;
928
+ }
929
+ });
930
+ //#endregion
931
+ export { Q as i, F as n, W as r, y as t };
932
+
933
+ //# sourceMappingURL=dist-BzUsSMiM.js.map