@vizel/core 0.0.1-alpha.5 → 1.0.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 (75) hide show
  1. package/dist/components.css +1 -1
  2. package/dist/components.css.map +1 -1
  3. package/dist/index.d.ts +230 -15
  4. package/dist/index.js +78 -75
  5. package/dist/index10.js +1 -1
  6. package/dist/index11.js +4 -4
  7. package/dist/index14.js +1 -1
  8. package/dist/index15.js +134 -127
  9. package/dist/index17.js +2 -2
  10. package/dist/index18.js +1 -1
  11. package/dist/index19.js +86 -86
  12. package/dist/index20.js +2 -2
  13. package/dist/index21.js +2 -2
  14. package/dist/index22.js +16 -13
  15. package/dist/index24.js +164 -11
  16. package/dist/index25.js +12 -53
  17. package/dist/index26.js +49 -136
  18. package/dist/index27.js +132 -59
  19. package/dist/index28.js +66 -32
  20. package/dist/index29.js +35 -21
  21. package/dist/index3.js +91 -90
  22. package/dist/index30.js +23 -9
  23. package/dist/index31.js +9 -147
  24. package/dist/index32.js +138 -256
  25. package/dist/index33.js +258 -85
  26. package/dist/index34.js +84 -55
  27. package/dist/index35.js +64 -4
  28. package/dist/index36.js +4 -123
  29. package/dist/index37.js +111 -315
  30. package/dist/index38.js +321 -481
  31. package/dist/index39.js +12 -47
  32. package/dist/index4.js +1 -1
  33. package/dist/index40.js +463 -655
  34. package/dist/index41.js +48 -4
  35. package/dist/index42.js +694 -4
  36. package/dist/index43.js +4 -238
  37. package/dist/index44.js +4 -82
  38. package/dist/index45.js +237 -16
  39. package/dist/index46.js +81 -57
  40. package/dist/index47.js +17 -15
  41. package/dist/index48.js +57 -285
  42. package/dist/index49.js +15 -202
  43. package/dist/index5.js +78 -68
  44. package/dist/index50.js +281 -1497
  45. package/dist/index51.js +202 -5
  46. package/dist/index52.js +1408 -1467
  47. package/dist/index53.js +5 -723
  48. package/dist/index54.js +1109 -81
  49. package/dist/index55.js +703 -226
  50. package/dist/index56.js +84 -3
  51. package/dist/index57.js +219 -1205
  52. package/dist/index58.js +3 -734
  53. package/dist/index59.js +1232 -21
  54. package/dist/index6.js +1 -1
  55. package/dist/index60.js +734 -10
  56. package/dist/index61.js +21 -7
  57. package/dist/index62.js +10 -8
  58. package/dist/index63.js +6 -13
  59. package/dist/index64.js +7 -18
  60. package/dist/index65.js +12 -23
  61. package/dist/index66.js +17 -53
  62. package/dist/index67.js +23 -1059
  63. package/dist/index68.js +54 -90
  64. package/dist/index69.js +1061 -98
  65. package/dist/index7.js +108 -96
  66. package/dist/index70.js +98 -4
  67. package/dist/index71.js +93 -0
  68. package/dist/index72.js +6 -0
  69. package/dist/index8.js +1 -1
  70. package/dist/index9.js +75 -65
  71. package/dist/mathematics.css +1 -0
  72. package/dist/mathematics.css.map +1 -0
  73. package/dist/styles.css +1 -1
  74. package/dist/styles.css.map +1 -1
  75. package/package.json +90 -52
package/dist/index55.js CHANGED
@@ -1,248 +1,725 @@
1
- import P from "./index69.js";
2
- import { Mapping as k } from "./index58.js";
3
- import { Plugin as H, PluginKey as O } from "./index38.js";
4
- const D = 500;
5
- class c {
6
- constructor(t, e) {
7
- this.items = t, this.eventCount = 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];
8
58
  }
9
- // Pop the latest event off the branch's history and apply it
10
- // to a document transform.
11
- popEvent(t, e) {
12
- if (this.eventCount == 0)
13
- return null;
14
- let i = this.items.length;
15
- for (; ; i--)
16
- if (this.items.get(i - 1).selection) {
17
- --i;
18
- break;
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"
19
74
  }
20
- let s, p;
21
- e && (s = this.remapping(i, this.items.length), p = s.maps.length);
22
- let l = t.tr, r, m, u = [], f = [];
23
- return this.items.forEach((a, o) => {
24
- if (!a.step) {
25
- s || (s = this.remapping(i, o + 1), p = s.maps.length), p--, f.push(a);
26
- return;
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);
27
102
  }
28
- if (s) {
29
- f.push(new g(a.map));
30
- let d = a.step.map(s.slice(p)), v;
31
- d && l.maybeStep(d).doc && (v = l.mapping.maps[l.mapping.maps.length - 1], u.push(new g(v, void 0, void 0, u.length + f.length))), p--, v && s.appendMap(v, p);
32
- } else
33
- l.maybeStep(a.step);
34
- if (a.selection)
35
- return r = s ? a.selection.map(s.slice(p)) : a.selection, m = new c(this.items.slice(0, i).append(f.reverse().concat(u)), this.eventCount - 1), !1;
36
- }, this.items.length, 0), { remaining: m, transform: l, selection: r };
37
- }
38
- // Create a new branch with the given transform added.
39
- addTransform(t, e, i, s) {
40
- let p = [], l = this.eventCount, r = this.items, m = !s && r.length ? r.get(r.length - 1) : null;
41
- for (let f = 0; f < t.steps.length; f++) {
42
- let a = t.steps[f].invert(t.docs[f]), o = new g(t.mapping.maps[f], a, e), d;
43
- (d = m && m.merge(o)) && (o = d, f ? p.pop() : r = r.slice(0, r.length - 1)), p.push(o), e && (l++, e = void 0), s || (m = o);
44
- }
45
- let u = l - i.depth;
46
- return u > y && (r = x(r, u), l -= u), new c(r.append(p), l);
47
- }
48
- remapping(t, e) {
49
- let i = new k();
50
- return this.items.forEach((s, p) => {
51
- let l = s.mirrorOffset != null && p - s.mirrorOffset >= t ? i.maps.length - s.mirrorOffset : void 0;
52
- i.appendMap(s.map, l);
53
- }, t, e), i;
54
- }
55
- addMaps(t) {
56
- return this.eventCount == 0 ? this : new c(this.items.append(t.map((e) => new g(e))), this.eventCount);
57
- }
58
- // When the collab module receives remote changes, the history has
59
- // to know about those, so that it can adjust the steps that were
60
- // rebased on top of the remote changes, and include the position
61
- // maps for the remote changes in its array of items.
62
- rebased(t, e) {
63
- if (!this.eventCount)
64
- return this;
65
- let i = [], s = Math.max(0, this.items.length - e), p = t.mapping, l = t.steps.length, r = this.eventCount;
66
- this.items.forEach((o) => {
67
- o.selection && r--;
68
- }, s);
69
- let m = e;
70
- this.items.forEach((o) => {
71
- let d = p.getMirror(--m);
72
- if (d == null)
73
- return;
74
- l = Math.min(l, d);
75
- let v = p.maps[d];
76
- if (o.step) {
77
- let S = t.steps[d].invert(t.docs[d]), E = o.selection && o.selection.map(p.slice(m + 1, d));
78
- E && r++, i.push(new g(v, S, E));
79
- } else
80
- i.push(new g(v));
81
- }, s);
82
- let u = [];
83
- for (let o = e; o < l; o++)
84
- u.push(new g(p.maps[o]));
85
- let f = this.items.slice(0, s).append(u).append(i), a = new c(f, r);
86
- return a.emptyItemCount() > D && (a = a.compress(this.items.length - i.length)), a;
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
+ };
87
125
  }
88
- emptyItemCount() {
89
- let t = 0;
90
- return this.items.forEach((e) => {
91
- e.step || t++;
92
- }), t;
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();
93
181
  }
94
- // Compressing a branch means rewriting it to push the air (map-only
95
- // items) out. During collaboration, these naturally accumulate
96
- // because each remote change adds one. The `upto` argument is used
97
- // to ensure that only the items below a given level are compressed,
98
- // because `rebased` relies on a clean, untouched set of items in
99
- // order to associate old items with rebased steps.
100
- compress(t = this.items.length) {
101
- let e = this.remapping(0, t), i = e.maps.length, s = [], p = 0;
102
- return this.items.forEach((l, r) => {
103
- if (r >= t)
104
- s.push(l), l.selection && p++;
105
- else if (l.step) {
106
- let m = l.step.map(e.slice(i)), u = m && m.getMap();
107
- if (i--, u && e.appendMap(u, i), m) {
108
- let f = l.selection && l.selection.map(e.slice(i));
109
- f && p++;
110
- let a = new g(u.invert(), m, f), o, d = s.length - 1;
111
- (o = s.length && s[d].merge(a)) ? s[d] = o : s.push(a);
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"]
112
216
  }
113
- } else l.map && i--;
114
- }, this.items.length, 0), new c(P.from(s.reverse()), p);
115
- }
116
- }
117
- c.empty = new c(P.empty, 0);
118
- function x(n, t) {
119
- let e;
120
- return n.forEach((i, s) => {
121
- if (i.selection && t-- == 0)
122
- return e = s, !1;
123
- }), n.slice(e);
124
- }
125
- class g {
126
- constructor(t, e, i, s) {
127
- this.map = t, this.step = e, this.selection = i, this.mirrorOffset = s;
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
+ };
128
247
  }
129
- merge(t) {
130
- if (this.step && t.step && !t.selection) {
131
- let e = t.step.merge(this.step);
132
- if (e)
133
- return new g(e.getMap().invert(), e, this.selection);
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;
134
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;
135
279
  }
280
+ return [e, n];
136
281
  }
137
- class h {
138
- constructor(t, e, i, s, p) {
139
- this.done = t, this.undone = e, this.prevRanges = i, this.prevTime = s, this.prevComposition = p;
140
- }
141
- }
142
- const y = 20;
143
- function F(n, t, e, i) {
144
- let s = e.getMeta(w), p;
145
- if (s)
146
- return s.historyState;
147
- e.getMeta(j) && (n = new h(n.done, n.undone, null, 0, -1));
148
- let l = e.getMeta("appendedTransaction");
149
- if (e.steps.length == 0)
150
- return n;
151
- if (l && l.getMeta(w))
152
- return l.getMeta(w).redo ? new h(n.done.addTransform(e, void 0, i, M(t)), n.undone, I(e.mapping.maps), n.prevTime, n.prevComposition) : new h(n.done, n.undone.addTransform(e, void 0, i, M(t)), null, n.prevTime, n.prevComposition);
153
- if (e.getMeta("addToHistory") !== !1 && !(l && l.getMeta("addToHistory") === !1)) {
154
- let r = e.getMeta("composition"), m = n.prevTime == 0 || !l && n.prevComposition != r && (n.prevTime < (e.time || 0) - i.newGroupDelay || !G(e, n.prevRanges)), u = l ? C(n.prevRanges, e.mapping) : I(e.mapping.maps);
155
- return new h(n.done.addTransform(e, m ? t.selection.getBookmark() : void 0, i, M(t)), c.empty, u, e.time, r ?? n.prevComposition);
156
- } else return (p = e.getMeta("rebased")) ? new h(n.done.rebased(e, p), n.undone.rebased(e, p), C(n.prevRanges, e.mapping), n.prevTime, n.prevComposition) : new h(n.done.addMaps(e.mapping.maps), n.undone.addMaps(e.mapping.maps), C(n.prevRanges, e.mapping), n.prevTime, n.prevComposition);
157
- }
158
- function G(n, t) {
159
- if (!t)
160
- return !1;
161
- if (!n.docChanged)
162
- return !0;
163
- let e = !1;
164
- return n.mapping.maps[0].forEach((i, s) => {
165
- for (let p = 0; p < t.length; p += 2)
166
- i <= t[p + 1] && s >= t[p] && (e = !0);
167
- }), e;
168
- }
169
- function I(n) {
170
- let t = [];
171
- for (let e = n.length - 1; e >= 0 && t.length == 0; e--)
172
- n[e].forEach((i, s, p, l) => t.push(p, l));
173
- return t;
174
- }
175
- function C(n, t) {
176
- if (!n)
177
- return null;
178
- let e = [];
179
- for (let i = 0; i < n.length; i += 2) {
180
- let s = t.map(n[i], 1), p = t.map(n[i + 1], -1);
181
- s <= p && e.push(s, p);
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;
182
324
  }
183
- return e;
184
- }
185
- function K(n, t, e) {
186
- let i = M(t), s = w.get(t).spec.config, p = (e ? n.undone : n.done).popEvent(t, i);
187
- if (!p)
188
- return null;
189
- let l = p.selection.resolve(p.transform.doc), r = (e ? n.done : n.undone).addTransform(p.transform, t.selection.getBookmark(), s, i), m = new h(e ? r : p.remaining, e ? p.remaining : r, null, 0, -1);
190
- return p.transform.setSelection(l).setMeta(w, { redo: e, historyState: m });
325
+ return r;
191
326
  }
192
- let T = !1, b = null;
193
- function M(n) {
194
- let t = n.plugins;
195
- if (b != t) {
196
- T = !1, b = t;
197
- for (let e = 0; e < t.length; e++)
198
- if (t[e].spec.historyPreserveItems) {
199
- T = !0;
200
- break;
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);
201
344
  }
202
- }
203
- return T;
345
+ }), {
346
+ type: "listItem",
347
+ content: n
348
+ };
349
+ });
204
350
  }
205
- const w = new O("history"), j = new O("closeHistory");
206
- function W(n = {}) {
207
- return n = {
208
- depth: n.depth || 100,
209
- newGroupDelay: n.newGroupDelay || 500
210
- }, new H({
211
- key: w,
212
- state: {
213
- init() {
214
- return new h(c.empty, c.empty, null, 0, -1);
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
215
370
  },
216
- apply(t, e, i) {
217
- return F(e, i, t, n);
371
+ type: {
372
+ default: null,
373
+ parseHTML: (t) => t.getAttribute("type")
374
+ }
375
+ };
376
+ },
377
+ parseHTML() {
378
+ return [
379
+ {
380
+ tag: "ol"
218
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;
219
410
  },
220
- config: n,
221
- props: {
222
- handleDOMEvents: {
223
- beforeinput(t, e) {
224
- let i = e.inputType, s = i == "historyUndo" ? A : i == "historyRedo" ? U : null;
225
- return !s || !t.editable ? !1 : (e.preventDefault(), s(t.state, t.dispatch));
226
- }
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
227
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);
228
520
  }
229
- });
230
- }
231
- function R(n, t) {
232
- return (e, i) => {
233
- let s = w.getState(e);
234
- if (!s || (n ? s.undone : s.done).eventCount == 0)
235
- return !1;
236
- if (i) {
237
- let p = K(s, e, n);
238
- p && i(t ? p.scrollIntoView() : p);
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
+ };
239
691
  }
240
- return !0;
241
- };
242
- }
243
- const A = R(!1, !0), U = R(!0, !0);
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
+ });
244
714
  export {
245
- W as history,
246
- U as redo,
247
- A as undo
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
248
725
  };