@vizel/core 0.0.1-alpha.2 → 0.0.1-alpha.4

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 (53) hide show
  1. package/dist/index.d.ts +13 -13
  2. package/dist/index10.js +1 -1
  3. package/dist/index11.js +2 -2
  4. package/dist/index14.js +1 -1
  5. package/dist/index20.js +2 -2
  6. package/dist/index21.js +2 -2
  7. package/dist/index22.js +3 -3
  8. package/dist/index26.js +1 -1
  9. package/dist/index3.js +1 -1
  10. package/dist/index31.js +2 -2
  11. package/dist/index34.js +63 -16
  12. package/dist/index35.js +4 -58
  13. package/dist/index36.js +123 -15
  14. package/dist/index37.js +316 -37
  15. package/dist/index38.js +481 -58
  16. package/dist/index39.js +48 -4
  17. package/dist/index4.js +1 -1
  18. package/dist/index40.js +664 -108
  19. package/dist/index41.js +4 -327
  20. package/dist/index42.js +4 -487
  21. package/dist/index43.js +206 -647
  22. package/dist/index44.js +82 -4
  23. package/dist/index45.js +17 -4
  24. package/dist/index46.js +57 -237
  25. package/dist/index47.js +15 -82
  26. package/dist/index48.js +4 -4
  27. package/dist/index49.js +3 -3
  28. package/dist/index5.js +1 -1
  29. package/dist/index50.js +1408 -1467
  30. package/dist/index51.js +5 -1502
  31. package/dist/index52.js +1533 -695
  32. package/dist/index53.js +723 -5
  33. package/dist/index54.js +84 -21
  34. package/dist/index55.js +246 -10
  35. package/dist/index56.js +3 -7
  36. package/dist/index57.js +1231 -7
  37. package/dist/index58.js +731 -11
  38. package/dist/index59.js +21 -19
  39. package/dist/index6.js +1 -1
  40. package/dist/index60.js +10 -25
  41. package/dist/index61.js +6 -83
  42. package/dist/index62.js +7 -245
  43. package/dist/index63.js +11 -1229
  44. package/dist/index64.js +17 -732
  45. package/dist/index65.js +25 -3
  46. package/dist/index66.js +1 -1
  47. package/dist/index68.js +91 -98
  48. package/dist/index69.js +3 -90
  49. package/dist/index70.js +98 -4
  50. package/dist/index8.js +1 -1
  51. package/dist/index9.js +1 -1
  52. package/package.json +27 -15
  53. package/LICENSE +0 -21
package/dist/index53.js CHANGED
@@ -1,7 +1,725 @@
1
- import { getDefaultExportFromCjs as r } from "./index70.js";
2
- import { __require as o } from "./index67.js";
3
- var e = /* @__PURE__ */ o();
4
- const a = /* @__PURE__ */ r(e);
1
+ import { Node as g, wrappingInputRule as b, mergeAttributes as L, renderNestedMarkdownContent as $, Extension as S, getRenderedAttributes as K, parseIndentedBlocks as x, isNodeActive as I, isAtStartOfNode as V, isAtEndOfNode as X, getNodeType as O, getNodeAtPosition as z } from "@tiptap/core";
2
+ var F = Object.defineProperty, G = (t, e) => {
3
+ for (var s in e)
4
+ F(t, s, { get: e[s], enumerable: !0 });
5
+ }, W = "listItem", w = "textStyle", C = /^\s*([-+*])\s$/, q = g.create({
6
+ name: "bulletList",
7
+ addOptions() {
8
+ return {
9
+ itemTypeName: "listItem",
10
+ HTMLAttributes: {},
11
+ keepMarks: !1,
12
+ keepAttributes: !1
13
+ };
14
+ },
15
+ group: "block list",
16
+ content() {
17
+ return `${this.options.itemTypeName}+`;
18
+ },
19
+ parseHTML() {
20
+ return [{ tag: "ul" }];
21
+ },
22
+ renderHTML({ HTMLAttributes: t }) {
23
+ return ["ul", L(this.options.HTMLAttributes, t), 0];
24
+ },
25
+ markdownTokenName: "list",
26
+ parseMarkdown: (t, e) => t.type !== "list" || t.ordered ? [] : {
27
+ type: "bulletList",
28
+ content: t.items ? e.parseChildren(t.items) : []
29
+ },
30
+ renderMarkdown: (t, e) => t.content ? e.renderChildren(t.content, `
31
+ `) : "",
32
+ markdownOptions: {
33
+ indentsContent: !0
34
+ },
35
+ addCommands() {
36
+ return {
37
+ toggleBulletList: () => ({ commands: t, chain: e }) => this.options.keepAttributes ? e().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(W, this.editor.getAttributes(w)).run() : t.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks)
38
+ };
39
+ },
40
+ addKeyboardShortcuts() {
41
+ return {
42
+ "Mod-Shift-8": () => this.editor.commands.toggleBulletList()
43
+ };
44
+ },
45
+ addInputRules() {
46
+ let t = b({
47
+ find: C,
48
+ type: this.type
49
+ });
50
+ return (this.options.keepMarks || this.options.keepAttributes) && (t = b({
51
+ find: C,
52
+ type: this.type,
53
+ keepMarks: this.options.keepMarks,
54
+ keepAttributes: this.options.keepAttributes,
55
+ getAttributes: () => this.editor.getAttributes(w),
56
+ editor: this.editor
57
+ })), [t];
58
+ }
59
+ }), Y = g.create({
60
+ name: "listItem",
61
+ addOptions() {
62
+ return {
63
+ HTMLAttributes: {},
64
+ bulletListTypeName: "bulletList",
65
+ orderedListTypeName: "orderedList"
66
+ };
67
+ },
68
+ content: "paragraph block*",
69
+ defining: !0,
70
+ parseHTML() {
71
+ return [
72
+ {
73
+ tag: "li"
74
+ }
75
+ ];
76
+ },
77
+ renderHTML({ HTMLAttributes: t }) {
78
+ return ["li", L(this.options.HTMLAttributes, t), 0];
79
+ },
80
+ markdownTokenName: "list_item",
81
+ parseMarkdown: (t, e) => {
82
+ if (t.type !== "list_item")
83
+ return [];
84
+ let s = [];
85
+ if (t.tokens && t.tokens.length > 0)
86
+ if (t.tokens.some((r) => r.type === "paragraph"))
87
+ s = e.parseChildren(t.tokens);
88
+ else {
89
+ const r = t.tokens[0];
90
+ if (r && r.type === "text" && r.tokens && r.tokens.length > 0) {
91
+ if (s = [
92
+ {
93
+ type: "paragraph",
94
+ content: e.parseInline(r.tokens)
95
+ }
96
+ ], t.tokens.length > 1) {
97
+ const d = t.tokens.slice(1), a = e.parseChildren(d);
98
+ s.push(...a);
99
+ }
100
+ } else
101
+ s = e.parseChildren(t.tokens);
102
+ }
103
+ return s.length === 0 && (s = [
104
+ {
105
+ type: "paragraph",
106
+ content: []
107
+ }
108
+ ]), {
109
+ type: "listItem",
110
+ content: s
111
+ };
112
+ },
113
+ renderMarkdown: (t, e, s) => $(
114
+ t,
115
+ e,
116
+ (n) => n.parentType === "bulletList" ? "- " : n.parentType === "orderedList" ? `${n.index + 1}. ` : "- ",
117
+ s
118
+ ),
119
+ addKeyboardShortcuts() {
120
+ return {
121
+ Enter: () => this.editor.commands.splitListItem(this.name),
122
+ Tab: () => this.editor.commands.sinkListItem(this.name),
123
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
124
+ };
125
+ }
126
+ }), J = {};
127
+ G(J, {
128
+ findListItemPos: () => y,
129
+ getNextListDepth: () => A,
130
+ handleBackspace: () => T,
131
+ handleDelete: () => M,
132
+ hasListBefore: () => P,
133
+ hasListItemAfter: () => Q,
134
+ hasListItemBefore: () => _,
135
+ listItemHasSubList: () => D,
136
+ nextListIsDeeper: () => R,
137
+ nextListIsHigher: () => j
138
+ });
139
+ var y = (t, e) => {
140
+ const { $from: s } = e.selection, n = O(t, e.schema);
141
+ let r = null, i = s.depth, d = s.pos, a = null;
142
+ for (; i > 0 && a === null; )
143
+ r = s.node(i), r.type === n ? a = i : (i -= 1, d -= 1);
144
+ return a === null ? null : { $pos: e.doc.resolve(d), depth: a };
145
+ }, A = (t, e) => {
146
+ const s = y(t, e);
147
+ if (!s)
148
+ return !1;
149
+ const [, n] = z(e, t, s.$pos.pos + 4);
150
+ return n;
151
+ }, P = (t, e, s) => {
152
+ const { $anchor: n } = t.selection, r = Math.max(0, n.pos - 2), i = t.doc.resolve(r).node();
153
+ return !(!i || !s.includes(i.type.name));
154
+ }, _ = (t, e) => {
155
+ var s;
156
+ const { $anchor: n } = e.selection, r = e.doc.resolve(n.pos - 2);
157
+ return !(r.index() === 0 || ((s = r.nodeBefore) == null ? void 0 : s.type.name) !== t);
158
+ }, D = (t, e, s) => {
159
+ if (!s)
160
+ return !1;
161
+ const n = O(t, e.schema);
162
+ let r = !1;
163
+ return s.descendants((i) => {
164
+ i.type === n && (r = !0);
165
+ }), r;
166
+ }, T = (t, e, s) => {
167
+ if (t.commands.undoInputRule())
168
+ return !0;
169
+ if (t.state.selection.from !== t.state.selection.to)
170
+ return !1;
171
+ if (!I(t.state, e) && P(t.state, e, s)) {
172
+ const { $anchor: a } = t.state.selection, u = t.state.doc.resolve(a.before() - 1), p = [];
173
+ u.node().descendants((c, l) => {
174
+ c.type.name === e && p.push({ node: c, pos: l });
175
+ });
176
+ const h = p.at(-1);
177
+ if (!h)
178
+ return !1;
179
+ const o = t.state.doc.resolve(u.start() + h.pos + 1);
180
+ return t.chain().cut({ from: a.start() - 1, to: a.end() + 1 }, o.end()).joinForward().run();
181
+ }
182
+ if (!I(t.state, e) || !V(t.state))
183
+ return !1;
184
+ const n = y(e, t.state);
185
+ if (!n)
186
+ return !1;
187
+ const i = t.state.doc.resolve(n.$pos.pos - 2).node(n.depth), d = D(e, t.state, i);
188
+ return _(e, t.state) && !d ? t.commands.joinItemBackward() : t.chain().liftListItem(e).run();
189
+ }, R = (t, e) => {
190
+ const s = A(t, e), n = y(t, e);
191
+ return !n || !s ? !1 : s > n.depth;
192
+ }, j = (t, e) => {
193
+ const s = A(t, e), n = y(t, e);
194
+ return !n || !s ? !1 : s < n.depth;
195
+ }, M = (t, e) => {
196
+ if (!I(t.state, e) || !X(t.state, e))
197
+ return !1;
198
+ const { selection: s } = t.state, { $from: n, $to: r } = s;
199
+ return !s.empty && n.sameParent(r) ? !1 : R(e, t.state) ? t.chain().focus(t.state.selection.from + 4).lift(e).joinBackward().run() : j(e, t.state) ? t.chain().joinForward().joinBackward().run() : t.commands.joinItemForward();
200
+ }, Q = (t, e) => {
201
+ var s;
202
+ const { $anchor: n } = e.selection, r = e.doc.resolve(n.pos - n.parentOffset - 2);
203
+ return !(r.index() === r.parent.childCount - 1 || ((s = r.nodeAfter) == null ? void 0 : s.type.name) !== t);
204
+ }, U = S.create({
205
+ name: "listKeymap",
206
+ addOptions() {
207
+ return {
208
+ listTypes: [
209
+ {
210
+ itemName: "listItem",
211
+ wrapperNames: ["bulletList", "orderedList"]
212
+ },
213
+ {
214
+ itemName: "taskItem",
215
+ wrapperNames: ["taskList"]
216
+ }
217
+ ]
218
+ };
219
+ },
220
+ addKeyboardShortcuts() {
221
+ return {
222
+ Delete: ({ editor: t }) => {
223
+ let e = !1;
224
+ return this.options.listTypes.forEach(({ itemName: s }) => {
225
+ t.state.schema.nodes[s] !== void 0 && M(t, s) && (e = !0);
226
+ }), e;
227
+ },
228
+ "Mod-Delete": ({ editor: t }) => {
229
+ let e = !1;
230
+ return this.options.listTypes.forEach(({ itemName: s }) => {
231
+ t.state.schema.nodes[s] !== void 0 && M(t, s) && (e = !0);
232
+ }), e;
233
+ },
234
+ Backspace: ({ editor: t }) => {
235
+ let e = !1;
236
+ return this.options.listTypes.forEach(({ itemName: s, wrapperNames: n }) => {
237
+ t.state.schema.nodes[s] !== void 0 && T(t, s, n) && (e = !0);
238
+ }), e;
239
+ },
240
+ "Mod-Backspace": ({ editor: t }) => {
241
+ let e = !1;
242
+ return this.options.listTypes.forEach(({ itemName: s, wrapperNames: n }) => {
243
+ t.state.schema.nodes[s] !== void 0 && T(t, s, n) && (e = !0);
244
+ }), e;
245
+ }
246
+ };
247
+ }
248
+ }), N = /^(\s*)(\d+)\.\s+(.*)$/, Z = /^\s/;
249
+ function tt(t) {
250
+ const e = [];
251
+ let s = 0, n = 0;
252
+ for (; s < t.length; ) {
253
+ const r = t[s], i = r.match(N);
254
+ if (!i)
255
+ break;
256
+ const [, d, a, u] = i, p = d.length;
257
+ let h = u, o = s + 1;
258
+ const c = [r];
259
+ for (; o < t.length; ) {
260
+ const l = t[o];
261
+ if (l.match(N))
262
+ break;
263
+ if (l.trim() === "")
264
+ c.push(l), h += `
265
+ `, o += 1;
266
+ else if (l.match(Z))
267
+ c.push(l), h += `
268
+ ${l.slice(p + 2)}`, o += 1;
269
+ else
270
+ break;
271
+ }
272
+ e.push({
273
+ indent: p,
274
+ number: parseInt(a, 10),
275
+ content: h.trim(),
276
+ raw: c.join(`
277
+ `)
278
+ }), n = o, s = o;
279
+ }
280
+ return [e, n];
281
+ }
282
+ function B(t, e, s) {
283
+ var n;
284
+ const r = [];
285
+ let i = 0;
286
+ for (; i < t.length; ) {
287
+ const d = t[i];
288
+ if (d.indent === e) {
289
+ const a = d.content.split(`
290
+ `), u = ((n = a[0]) == null ? void 0 : n.trim()) || "", p = [];
291
+ u && p.push({
292
+ type: "paragraph",
293
+ raw: u,
294
+ tokens: s.inlineTokens(u)
295
+ });
296
+ const h = a.slice(1).join(`
297
+ `).trim();
298
+ if (h) {
299
+ const l = s.blockTokens(h);
300
+ p.push(...l);
301
+ }
302
+ let o = i + 1;
303
+ const c = [];
304
+ for (; o < t.length && t[o].indent > e; )
305
+ c.push(t[o]), o += 1;
306
+ if (c.length > 0) {
307
+ const l = Math.min(...c.map((m) => m.indent)), k = B(c, l, s);
308
+ p.push({
309
+ type: "list",
310
+ ordered: !0,
311
+ start: c[0].number,
312
+ items: k,
313
+ raw: c.map((m) => m.raw).join(`
314
+ `)
315
+ });
316
+ }
317
+ r.push({
318
+ type: "list_item",
319
+ raw: d.raw,
320
+ tokens: p
321
+ }), i = o;
322
+ } else
323
+ i += 1;
324
+ }
325
+ return r;
326
+ }
327
+ function et(t, e) {
328
+ return t.map((s) => {
329
+ if (s.type !== "list_item")
330
+ return e.parseChildren([s])[0];
331
+ const n = [];
332
+ return s.tokens && s.tokens.length > 0 && s.tokens.forEach((r) => {
333
+ if (r.type === "paragraph" || r.type === "list" || r.type === "blockquote" || r.type === "code")
334
+ n.push(...e.parseChildren([r]));
335
+ else if (r.type === "text" && r.tokens) {
336
+ const i = e.parseChildren([r]);
337
+ n.push({
338
+ type: "paragraph",
339
+ content: i
340
+ });
341
+ } else {
342
+ const i = e.parseChildren([r]);
343
+ i.length > 0 && n.push(...i);
344
+ }
345
+ }), {
346
+ type: "listItem",
347
+ content: n
348
+ };
349
+ });
350
+ }
351
+ var st = "listItem", E = "textStyle", H = /^(\d+)\.\s$/, nt = g.create({
352
+ name: "orderedList",
353
+ addOptions() {
354
+ return {
355
+ itemTypeName: "listItem",
356
+ HTMLAttributes: {},
357
+ keepMarks: !1,
358
+ keepAttributes: !1
359
+ };
360
+ },
361
+ group: "block list",
362
+ content() {
363
+ return `${this.options.itemTypeName}+`;
364
+ },
365
+ addAttributes() {
366
+ return {
367
+ start: {
368
+ default: 1,
369
+ parseHTML: (t) => t.hasAttribute("start") ? parseInt(t.getAttribute("start") || "", 10) : 1
370
+ },
371
+ type: {
372
+ default: null,
373
+ parseHTML: (t) => t.getAttribute("type")
374
+ }
375
+ };
376
+ },
377
+ parseHTML() {
378
+ return [
379
+ {
380
+ tag: "ol"
381
+ }
382
+ ];
383
+ },
384
+ renderHTML({ HTMLAttributes: t }) {
385
+ const { start: e, ...s } = t;
386
+ return e === 1 ? ["ol", L(this.options.HTMLAttributes, s), 0] : ["ol", L(this.options.HTMLAttributes, t), 0];
387
+ },
388
+ markdownTokenName: "list",
389
+ parseMarkdown: (t, e) => {
390
+ if (t.type !== "list" || !t.ordered)
391
+ return [];
392
+ const s = t.start || 1, n = t.items ? et(t.items, e) : [];
393
+ return s !== 1 ? {
394
+ type: "orderedList",
395
+ attrs: { start: s },
396
+ content: n
397
+ } : {
398
+ type: "orderedList",
399
+ content: n
400
+ };
401
+ },
402
+ renderMarkdown: (t, e) => t.content ? e.renderChildren(t.content, `
403
+ `) : "",
404
+ markdownTokenizer: {
405
+ name: "orderedList",
406
+ level: "block",
407
+ start: (t) => {
408
+ const e = t.match(/^(\s*)(\d+)\.\s+/), s = e?.index;
409
+ return s !== void 0 ? s : -1;
410
+ },
411
+ tokenize: (t, e, s) => {
412
+ var n;
413
+ const r = t.split(`
414
+ `), [i, d] = tt(r);
415
+ if (i.length === 0)
416
+ return;
417
+ const a = B(i, 0, s);
418
+ return a.length === 0 ? void 0 : {
419
+ type: "list",
420
+ ordered: !0,
421
+ start: ((n = i[0]) == null ? void 0 : n.number) || 1,
422
+ items: a,
423
+ raw: r.slice(0, d).join(`
424
+ `)
425
+ };
426
+ }
427
+ },
428
+ markdownOptions: {
429
+ indentsContent: !0
430
+ },
431
+ addCommands() {
432
+ return {
433
+ toggleOrderedList: () => ({ commands: t, chain: e }) => this.options.keepAttributes ? e().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(st, this.editor.getAttributes(E)).run() : t.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks)
434
+ };
435
+ },
436
+ addKeyboardShortcuts() {
437
+ return {
438
+ "Mod-Shift-7": () => this.editor.commands.toggleOrderedList()
439
+ };
440
+ },
441
+ addInputRules() {
442
+ let t = b({
443
+ find: H,
444
+ type: this.type,
445
+ getAttributes: (e) => ({ start: +e[1] }),
446
+ joinPredicate: (e, s) => s.childCount + s.attrs.start === +e[1]
447
+ });
448
+ return (this.options.keepMarks || this.options.keepAttributes) && (t = b({
449
+ find: H,
450
+ type: this.type,
451
+ keepMarks: this.options.keepMarks,
452
+ keepAttributes: this.options.keepAttributes,
453
+ getAttributes: (e) => ({ start: +e[1], ...this.editor.getAttributes(E) }),
454
+ joinPredicate: (e, s) => s.childCount + s.attrs.start === +e[1],
455
+ editor: this.editor
456
+ })), [t];
457
+ }
458
+ }), rt = /^\s*(\[([( |x])?\])\s$/, it = g.create({
459
+ name: "taskItem",
460
+ addOptions() {
461
+ return {
462
+ nested: !1,
463
+ HTMLAttributes: {},
464
+ taskListTypeName: "taskList",
465
+ a11y: void 0
466
+ };
467
+ },
468
+ content() {
469
+ return this.options.nested ? "paragraph block*" : "paragraph+";
470
+ },
471
+ defining: !0,
472
+ addAttributes() {
473
+ return {
474
+ checked: {
475
+ default: !1,
476
+ keepOnSplit: !1,
477
+ parseHTML: (t) => {
478
+ const e = t.getAttribute("data-checked");
479
+ return e === "" || e === "true";
480
+ },
481
+ renderHTML: (t) => ({
482
+ "data-checked": t.checked
483
+ })
484
+ }
485
+ };
486
+ },
487
+ parseHTML() {
488
+ return [
489
+ {
490
+ tag: `li[data-type="${this.name}"]`,
491
+ priority: 51
492
+ }
493
+ ];
494
+ },
495
+ renderHTML({ node: t, HTMLAttributes: e }) {
496
+ return [
497
+ "li",
498
+ L(this.options.HTMLAttributes, e, {
499
+ "data-type": this.name
500
+ }),
501
+ [
502
+ "label",
503
+ [
504
+ "input",
505
+ {
506
+ type: "checkbox",
507
+ checked: t.attrs.checked ? "checked" : null
508
+ }
509
+ ],
510
+ ["span"]
511
+ ],
512
+ ["div", 0]
513
+ ];
514
+ },
515
+ parseMarkdown: (t, e) => {
516
+ const s = [];
517
+ if (t.tokens && t.tokens.length > 0 ? s.push(e.createNode("paragraph", {}, e.parseInline(t.tokens))) : t.text ? s.push(e.createNode("paragraph", {}, [e.createNode("text", { text: t.text })])) : s.push(e.createNode("paragraph", {}, [])), t.nestedTokens && t.nestedTokens.length > 0) {
518
+ const n = e.parseChildren(t.nestedTokens);
519
+ s.push(...n);
520
+ }
521
+ return e.createNode("taskItem", { checked: t.checked || !1 }, s);
522
+ },
523
+ renderMarkdown: (t, e) => {
524
+ var s;
525
+ const r = `- [${(s = t.attrs) != null && s.checked ? "x" : " "}] `;
526
+ return $(t, e, r);
527
+ },
528
+ addKeyboardShortcuts() {
529
+ const t = {
530
+ Enter: () => this.editor.commands.splitListItem(this.name),
531
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
532
+ };
533
+ return this.options.nested ? {
534
+ ...t,
535
+ Tab: () => this.editor.commands.sinkListItem(this.name)
536
+ } : t;
537
+ },
538
+ addNodeView() {
539
+ return ({ node: t, HTMLAttributes: e, getPos: s, editor: n }) => {
540
+ const r = document.createElement("li"), i = document.createElement("label"), d = document.createElement("span"), a = document.createElement("input"), u = document.createElement("div"), p = (o) => {
541
+ var c, l;
542
+ a.ariaLabel = ((l = (c = this.options.a11y) == null ? void 0 : c.checkboxLabel) == null ? void 0 : l.call(c, o, a.checked)) || `Task item checkbox for ${o.textContent || "empty task item"}`;
543
+ };
544
+ p(t), i.contentEditable = "false", a.type = "checkbox", a.addEventListener("mousedown", (o) => o.preventDefault()), a.addEventListener("change", (o) => {
545
+ if (!n.isEditable && !this.options.onReadOnlyChecked) {
546
+ a.checked = !a.checked;
547
+ return;
548
+ }
549
+ const { checked: c } = o.target;
550
+ n.isEditable && typeof s == "function" && n.chain().focus(void 0, { scrollIntoView: !1 }).command(({ tr: l }) => {
551
+ const k = s();
552
+ if (typeof k != "number")
553
+ return !1;
554
+ const m = l.doc.nodeAt(k);
555
+ return l.setNodeMarkup(k, void 0, {
556
+ ...m?.attrs,
557
+ checked: c
558
+ }), !0;
559
+ }).run(), !n.isEditable && this.options.onReadOnlyChecked && (this.options.onReadOnlyChecked(t, c) || (a.checked = !a.checked));
560
+ }), Object.entries(this.options.HTMLAttributes).forEach(([o, c]) => {
561
+ r.setAttribute(o, c);
562
+ }), r.dataset.checked = t.attrs.checked, a.checked = t.attrs.checked, i.append(a, d), r.append(i, u), Object.entries(e).forEach(([o, c]) => {
563
+ r.setAttribute(o, c);
564
+ });
565
+ let h = new Set(Object.keys(e));
566
+ return {
567
+ dom: r,
568
+ contentDOM: u,
569
+ update: (o) => {
570
+ if (o.type !== this.type)
571
+ return !1;
572
+ r.dataset.checked = o.attrs.checked, a.checked = o.attrs.checked, p(o);
573
+ const c = n.extensionManager.attributes, l = K(o, c), k = new Set(Object.keys(l)), m = this.options.HTMLAttributes;
574
+ return h.forEach((f) => {
575
+ k.has(f) || (f in m ? r.setAttribute(f, m[f]) : r.removeAttribute(f));
576
+ }), Object.entries(l).forEach(([f, v]) => {
577
+ v == null ? f in m ? r.setAttribute(f, m[f]) : r.removeAttribute(f) : r.setAttribute(f, v);
578
+ }), h = k, !0;
579
+ }
580
+ };
581
+ };
582
+ },
583
+ addInputRules() {
584
+ return [
585
+ b({
586
+ find: rt,
587
+ type: this.type,
588
+ getAttributes: (t) => ({
589
+ checked: t[t.length - 1] === "x"
590
+ })
591
+ })
592
+ ];
593
+ }
594
+ }), at = g.create({
595
+ name: "taskList",
596
+ addOptions() {
597
+ return {
598
+ itemTypeName: "taskItem",
599
+ HTMLAttributes: {}
600
+ };
601
+ },
602
+ group: "block list",
603
+ content() {
604
+ return `${this.options.itemTypeName}+`;
605
+ },
606
+ parseHTML() {
607
+ return [
608
+ {
609
+ tag: `ul[data-type="${this.name}"]`,
610
+ priority: 51
611
+ }
612
+ ];
613
+ },
614
+ renderHTML({ HTMLAttributes: t }) {
615
+ return ["ul", L(this.options.HTMLAttributes, t, { "data-type": this.name }), 0];
616
+ },
617
+ parseMarkdown: (t, e) => e.createNode("taskList", {}, e.parseChildren(t.items || [])),
618
+ renderMarkdown: (t, e) => t.content ? e.renderChildren(t.content, `
619
+ `) : "",
620
+ markdownTokenizer: {
621
+ name: "taskList",
622
+ level: "block",
623
+ start(t) {
624
+ var e;
625
+ const s = (e = t.match(/^\s*[-+*]\s+\[([ xX])\]\s+/)) == null ? void 0 : e.index;
626
+ return s !== void 0 ? s : -1;
627
+ },
628
+ tokenize(t, e, s) {
629
+ const n = (i) => {
630
+ const d = x(
631
+ i,
632
+ {
633
+ itemPattern: /^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,
634
+ extractItemData: (a) => ({
635
+ indentLevel: a[1].length,
636
+ mainContent: a[4],
637
+ checked: a[3].toLowerCase() === "x"
638
+ }),
639
+ createToken: (a, u) => ({
640
+ type: "taskItem",
641
+ raw: "",
642
+ mainContent: a.mainContent,
643
+ indentLevel: a.indentLevel,
644
+ checked: a.checked,
645
+ text: a.mainContent,
646
+ tokens: s.inlineTokens(a.mainContent),
647
+ nestedTokens: u
648
+ }),
649
+ // Allow recursive nesting
650
+ customNestedParser: n
651
+ },
652
+ s
653
+ );
654
+ return d ? [
655
+ {
656
+ type: "taskList",
657
+ raw: d.raw,
658
+ items: d.items
659
+ }
660
+ ] : s.blockTokens(i);
661
+ }, r = x(
662
+ t,
663
+ {
664
+ itemPattern: /^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,
665
+ extractItemData: (i) => ({
666
+ indentLevel: i[1].length,
667
+ mainContent: i[4],
668
+ checked: i[3].toLowerCase() === "x"
669
+ }),
670
+ createToken: (i, d) => ({
671
+ type: "taskItem",
672
+ raw: "",
673
+ mainContent: i.mainContent,
674
+ indentLevel: i.indentLevel,
675
+ checked: i.checked,
676
+ text: i.mainContent,
677
+ tokens: s.inlineTokens(i.mainContent),
678
+ nestedTokens: d
679
+ }),
680
+ // Use the recursive parser for nested content
681
+ customNestedParser: n
682
+ },
683
+ s
684
+ );
685
+ if (r)
686
+ return {
687
+ type: "taskList",
688
+ raw: r.raw,
689
+ items: r.items
690
+ };
691
+ }
692
+ },
693
+ markdownOptions: {
694
+ indentsContent: !0
695
+ },
696
+ addCommands() {
697
+ return {
698
+ toggleTaskList: () => ({ commands: t }) => t.toggleList(this.name, this.options.itemTypeName)
699
+ };
700
+ },
701
+ addKeyboardShortcuts() {
702
+ return {
703
+ "Mod-Shift-9": () => this.editor.commands.toggleTaskList()
704
+ };
705
+ }
706
+ });
707
+ S.create({
708
+ name: "listKit",
709
+ addExtensions() {
710
+ const t = [];
711
+ return this.options.bulletList !== !1 && t.push(q.configure(this.options.bulletList)), this.options.listItem !== !1 && t.push(Y.configure(this.options.listItem)), this.options.listKeymap !== !1 && t.push(U.configure(this.options.listKeymap)), this.options.orderedList !== !1 && t.push(nt.configure(this.options.orderedList)), this.options.taskItem !== !1 && t.push(it.configure(this.options.taskItem)), this.options.taskList !== !1 && t.push(at.configure(this.options.taskList)), t;
712
+ }
713
+ });
5
714
  export {
6
- a as default
715
+ q as BulletList,
716
+ Y as ListItem,
717
+ U as ListKeymap,
718
+ nt as OrderedList,
719
+ it as TaskItem,
720
+ at as TaskList,
721
+ C as bulletListInputRegex,
722
+ rt as inputRegex,
723
+ J as listHelpers,
724
+ H as orderedListInputRegex
7
725
  };