@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,1642 @@
1
+ import { E as e, G as t, Ht as n, Ln as r, T as i, et as a, f as o, fn as s, gn as c, lt as l, m as u, nt as d, pn as f, s as p, u as m, v as h, yn as g, zn as _ } from "../dist-DlTupuCB.js";
2
+ import { a as v, c as y, i as b, k as x, o as ee, r as S } from "../dist-BiHYI9ZI.js";
3
+ import { a as te, l as ne, r as re, u as ie } from "../dist-DyMj6m6j.js";
4
+ import { i as ae, n as oe, r as se, t as ce } from "../dist-BzUsSMiM.js";
5
+ //#region ../../../node_modules/.bun/@tiptap+core@3.31.3+ef29727eaaf819d3/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js
6
+ var le = /* @__PURE__ */ new WeakSet(), ue = /* @__PURE__ */ new WeakSet();
7
+ function C(e) {
8
+ let t = e;
9
+ return le.add(t), t;
10
+ }
11
+ function de(e) {
12
+ return Array.isArray(e) && le.has(e);
13
+ }
14
+ function fe(e) {
15
+ return e.flatMap((e) => e == null ? [] : Array.isArray(e) && ue.has(e) && !de(e) ? fe(e) : [e]);
16
+ }
17
+ function pe(e, t) {
18
+ if (e === "slot") return 0;
19
+ if (e instanceof Function) {
20
+ let n = e(t);
21
+ return Array.isArray(n) && !de(n) && !ue.has(n) ? C(n) : n;
22
+ }
23
+ let { children: n, ...r } = t ?? {};
24
+ if (e === "svg") throw Error("SVG elements are not supported in the JSX syntax, use the array syntax instead");
25
+ if (Array.isArray(n)) {
26
+ if (de(n)) return C([
27
+ e,
28
+ r,
29
+ n
30
+ ]);
31
+ if (n.length === 0) return C([e, r]);
32
+ let t = fe(n);
33
+ return t.length === 0 ? C([e, r]) : C([
34
+ e,
35
+ r,
36
+ ...t
37
+ ]);
38
+ }
39
+ return C(n == null ? [e, r] : [
40
+ e,
41
+ r,
42
+ n
43
+ ]);
44
+ }
45
+ var me = (e, t) => pe(e, t), he = (e, t) => {
46
+ let { state: n } = e, { selection: r } = n;
47
+ if (!r.empty) return !1;
48
+ let { $from: i } = r;
49
+ if (i.parentOffset !== 0) return !1;
50
+ let a = i.depth - 1;
51
+ if (a < 0) return !1;
52
+ let o = i.node(a), s = i.index(a);
53
+ if (s === 0) return !1;
54
+ if (o.type === t) return e.commands.lift(t.name);
55
+ let c = o.child(s - 1);
56
+ if (c.type !== t || !c.lastChild?.isTextblock) return !1;
57
+ let l = i.before() - 1 - 1;
58
+ return e.commands.command(({ tr: e, dispatch: t }) => {
59
+ if (!t) return !0;
60
+ let n = i.parent.content, r = new x(n, 0, 0);
61
+ return e.replace(l, i.after(), r), e.setSelection(y.create(e.doc, l + n.size)), e.scrollIntoView(), t(e), !0;
62
+ });
63
+ }, ge = /^\s*>\s$/, _e = u.create({
64
+ name: "blockquote",
65
+ addOptions() {
66
+ return { HTMLAttributes: {} };
67
+ },
68
+ content: "block+",
69
+ group: "block",
70
+ defining: !0,
71
+ parseHTML() {
72
+ return [{ tag: "blockquote" }];
73
+ },
74
+ renderHTML({ HTMLAttributes: e }) {
75
+ return /* @__PURE__ */ me("blockquote", {
76
+ ...c(this.options.HTMLAttributes, e),
77
+ children: /* @__PURE__ */ me("slot", {})
78
+ });
79
+ },
80
+ parseMarkdown: (e, t) => {
81
+ let n = t.parseBlockChildren ?? t.parseChildren;
82
+ return t.createNode("blockquote", void 0, n(e.tokens || []));
83
+ },
84
+ renderMarkdown: (e, t) => {
85
+ if (!e.content) return "";
86
+ let n = [];
87
+ return e.content.forEach((e, r) => {
88
+ let i = (t.renderChild?.call(t, e, r) ?? t.renderChildren([e])).split("\n").map((e) => e.trim() === "" ? ">" : `> ${e}`);
89
+ n.push(i.join("\n"));
90
+ }), n.join("\n>\n");
91
+ },
92
+ addCommands() {
93
+ return {
94
+ setBlockquote: () => ({ commands: e }) => e.wrapIn(this.name),
95
+ toggleBlockquote: () => ({ commands: e }) => e.toggleWrap(this.name),
96
+ unsetBlockquote: () => ({ commands: e }) => e.lift(this.name)
97
+ };
98
+ },
99
+ addKeyboardShortcuts() {
100
+ return {
101
+ "Mod-Shift-b": () => this.editor.commands.toggleBlockquote(),
102
+ Backspace: () => he(this.editor, this.type)
103
+ };
104
+ },
105
+ addInputRules() {
106
+ return [_({
107
+ find: ge,
108
+ type: this.type
109
+ })];
110
+ }
111
+ }), ve = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/, ye = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g, be = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/, xe = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g, Se = o.create({
112
+ name: "bold",
113
+ addOptions() {
114
+ return { HTMLAttributes: {} };
115
+ },
116
+ parseHTML() {
117
+ return [
118
+ { tag: "strong" },
119
+ {
120
+ tag: "b",
121
+ getAttrs: (e) => e.style.fontWeight !== "normal" && null
122
+ },
123
+ {
124
+ style: "font-weight=400",
125
+ clearMark: (e) => e.type.name === this.name
126
+ },
127
+ {
128
+ style: "font-weight",
129
+ getAttrs: (e) => /^(bold(er)?|[5-9]\d{2,})$/.test(e) && null
130
+ }
131
+ ];
132
+ },
133
+ renderHTML({ HTMLAttributes: e }) {
134
+ return /* @__PURE__ */ me("strong", {
135
+ ...c(this.options.HTMLAttributes, e),
136
+ children: /* @__PURE__ */ me("slot", {})
137
+ });
138
+ },
139
+ markdownTokenName: "strong",
140
+ parseMarkdown: (e, t) => t.applyMark("bold", t.parseInline(e.tokens || [])),
141
+ markdownOptions: { htmlReopen: {
142
+ open: "<strong>",
143
+ close: "</strong>"
144
+ } },
145
+ renderMarkdown: (e, t) => `**${t.renderChildren(e)}**`,
146
+ addCommands() {
147
+ return {
148
+ setBold: () => ({ commands: e }) => e.setMark(this.name),
149
+ toggleBold: () => ({ commands: e }) => e.toggleMark(this.name),
150
+ unsetBold: () => ({ commands: e }) => e.unsetMark(this.name)
151
+ };
152
+ },
153
+ addKeyboardShortcuts() {
154
+ return {
155
+ "Mod-b": () => this.editor.commands.toggleBold(),
156
+ "Mod-B": () => this.editor.commands.toggleBold()
157
+ };
158
+ },
159
+ addInputRules() {
160
+ return [s({
161
+ find: ve,
162
+ type: this.type
163
+ }), s({
164
+ find: be,
165
+ type: this.type
166
+ })];
167
+ },
168
+ addPasteRules() {
169
+ return [f({
170
+ find: ye,
171
+ type: this.type
172
+ }), f({
173
+ find: xe,
174
+ type: this.type
175
+ })];
176
+ }
177
+ }), Ce = (e) => {
178
+ let t = /`([^`]+)`(?!`)$/.exec(e);
179
+ return !t || t.index > 0 && e[t.index - 1] === "`" ? null : {
180
+ index: t.index,
181
+ text: t[0],
182
+ replaceWith: t[1]
183
+ };
184
+ }, we = (e) => {
185
+ let t = /`([^`]+)`(?!`)/g, n = [], r;
186
+ for (; (r = t.exec(e)) !== null;) r.index > 0 && e[r.index - 1] === "`" || n.push({
187
+ index: r.index,
188
+ text: r[0],
189
+ replaceWith: r[1]
190
+ });
191
+ return n;
192
+ }, Te = o.create({
193
+ name: "code",
194
+ addOptions() {
195
+ return { HTMLAttributes: {} };
196
+ },
197
+ excludes: "_",
198
+ code: !0,
199
+ exitable: !0,
200
+ parseHTML() {
201
+ return [{ tag: "code" }];
202
+ },
203
+ renderHTML({ HTMLAttributes: e }) {
204
+ return [
205
+ "code",
206
+ c(this.options.HTMLAttributes, e),
207
+ 0
208
+ ];
209
+ },
210
+ markdownTokenName: "codespan",
211
+ parseMarkdown: (e, t) => t.applyMark("code", [{
212
+ type: "text",
213
+ text: e.text || ""
214
+ }]),
215
+ renderMarkdown: (e, t) => e.content ? `\`${t.renderChildren(e.content)}\`` : "",
216
+ addCommands() {
217
+ return {
218
+ setCode: () => ({ commands: e }) => e.setMark(this.name),
219
+ toggleCode: () => ({ commands: e }) => e.toggleMark(this.name),
220
+ unsetCode: () => ({ commands: e }) => e.unsetMark(this.name)
221
+ };
222
+ },
223
+ addKeyboardShortcuts() {
224
+ return { "Mod-e": () => this.editor.commands.toggleCode() };
225
+ },
226
+ addInputRules() {
227
+ return [s({
228
+ find: Ce,
229
+ type: this.type
230
+ })];
231
+ },
232
+ addPasteRules() {
233
+ return [f({
234
+ find: we,
235
+ type: this.type
236
+ })];
237
+ }
238
+ }), Ee = 4, De = /^```([a-z]+)?[\s\n]$/, Oe = /^~~~([a-z]+)?[\s\n]$/, ke = u.create({
239
+ name: "codeBlock",
240
+ addOptions() {
241
+ return {
242
+ languageClassPrefix: "language-",
243
+ exitOnTripleEnter: !0,
244
+ exitOnArrowDown: !0,
245
+ exitOnArrowUp: !0,
246
+ defaultLanguage: null,
247
+ enableTabIndentation: !1,
248
+ tabSize: Ee,
249
+ HTMLAttributes: {}
250
+ };
251
+ },
252
+ content: "text*",
253
+ marks: "",
254
+ group: "block",
255
+ code: !0,
256
+ defining: !0,
257
+ addAttributes() {
258
+ return { language: {
259
+ default: this.options.defaultLanguage,
260
+ parseHTML: (e) => {
261
+ let { languageClassPrefix: t } = this.options;
262
+ return t && [...e.firstElementChild?.classList || []].filter((e) => e.startsWith(t)).map((e) => e.replace(t, ""))[0] || null;
263
+ },
264
+ rendered: !1
265
+ } };
266
+ },
267
+ parseHTML() {
268
+ return [{
269
+ tag: "pre",
270
+ preserveWhitespace: "full"
271
+ }];
272
+ },
273
+ renderHTML({ node: e, HTMLAttributes: t }) {
274
+ return [
275
+ "pre",
276
+ c(this.options.HTMLAttributes, t),
277
+ [
278
+ "code",
279
+ { class: e.attrs.language ? this.options.languageClassPrefix + e.attrs.language : null },
280
+ 0
281
+ ]
282
+ ];
283
+ },
284
+ markdownTokenName: "code",
285
+ parseMarkdown: (e, t) => e.raw?.startsWith("```") === !1 && e.raw?.startsWith("~~~") === !1 && e.codeBlockStyle !== "indented" ? [] : t.createNode("codeBlock", { language: e.lang || null }, e.text ? [t.createTextNode(e.text)] : []),
286
+ renderMarkdown: (e, t) => {
287
+ let n = "", r = e.attrs?.language || "";
288
+ return n = e.content ? [
289
+ `\`\`\`${r}`,
290
+ t.renderChildren(e.content),
291
+ "```"
292
+ ].join("\n") : `\`\`\`${r}\n\n\`\`\``, n;
293
+ },
294
+ addCommands() {
295
+ return {
296
+ setCodeBlock: (e) => ({ commands: t }) => t.setNode(this.name, e),
297
+ toggleCodeBlock: (e) => ({ commands: t }) => t.toggleNode(this.name, "paragraph", e)
298
+ };
299
+ },
300
+ addKeyboardShortcuts() {
301
+ return {
302
+ "Mod-Alt-c": () => this.editor.commands.toggleCodeBlock(),
303
+ Backspace: () => {
304
+ let { empty: e, $anchor: t } = this.editor.state.selection, n = t.pos === 1;
305
+ return !e || t.parent.type.name !== this.name ? !1 : n || !t.parent.textContent.length ? this.editor.commands.clearNodes() : !1;
306
+ },
307
+ Tab: ({ editor: e }) => {
308
+ if (!this.options.enableTabIndentation) return !1;
309
+ let t = this.options.tabSize ?? Ee, { state: n } = e, { selection: r } = n, { $from: i, empty: a } = r;
310
+ if (i.parent.type !== this.type) return !1;
311
+ let o = " ".repeat(t);
312
+ return a ? e.commands.insertContent(o) : e.commands.command(({ tr: e }) => {
313
+ let { from: t, to: i } = r, a = n.doc.textBetween(t, i, "\n", "\n").split("\n").map((e) => o + e).join("\n");
314
+ return e.replaceWith(t, i, n.schema.text(a)), !0;
315
+ });
316
+ },
317
+ "Shift-Tab": ({ editor: e }) => {
318
+ if (!this.options.enableTabIndentation) return !1;
319
+ let t = this.options.tabSize ?? Ee, { state: n } = e, { selection: r } = n, { $from: i, empty: a } = r;
320
+ return i.parent.type === this.type ? a ? e.commands.command(({ tr: e }) => {
321
+ let { pos: r } = i, a = i.start(), o = i.end(), s = n.doc.textBetween(a, o, "\n", "\n").split("\n"), c = 0, l = 0, u = r - a;
322
+ for (let e = 0; e < s.length; e += 1) {
323
+ if (l + s[e].length >= u) {
324
+ c = e;
325
+ break;
326
+ }
327
+ l += s[e].length + 1;
328
+ }
329
+ let d = s[c].match(/^ */)?.[0] || "", f = Math.min(d.length, t);
330
+ if (f === 0) return !0;
331
+ let p = a;
332
+ for (let e = 0; e < c; e += 1) p += s[e].length + 1;
333
+ return e.delete(p, p + f), r - p <= f && e.setSelection(y.create(e.doc, p)), !0;
334
+ }) : e.commands.command(({ tr: e }) => {
335
+ let { from: i, to: a } = r, o = n.doc.textBetween(i, a, "\n", "\n").split("\n").map((e) => {
336
+ let n = e.match(/^ */)?.[0] || "", r = Math.min(n.length, t);
337
+ return e.slice(r);
338
+ }).join("\n");
339
+ return e.replaceWith(i, a, n.schema.text(o)), !0;
340
+ }) : !1;
341
+ },
342
+ Enter: ({ editor: e }) => {
343
+ if (!this.options.exitOnTripleEnter) return !1;
344
+ let { state: t } = e, { selection: n } = t, { $from: r, empty: i } = n;
345
+ if (!i || r.parent.type !== this.type) return !1;
346
+ let a = r.parentOffset === r.parent.nodeSize - 2, o = r.parent.textContent.endsWith("\n\n");
347
+ return !a || !o ? !1 : e.chain().command(({ tr: e }) => (e.delete(r.pos - 2, r.pos), !0)).exitCode().run();
348
+ },
349
+ ArrowUp: ({ editor: e }) => {
350
+ if (!this.options.exitOnArrowUp) return !1;
351
+ let { state: t } = e, { selection: n } = t, { $from: r, empty: i } = n;
352
+ if (!i || r.parent.type !== this.type || r.parentOffset !== 0) return !1;
353
+ let a = r.before();
354
+ return a > 0 ? !1 : e.commands.insertDefaultBlock({ pos: a });
355
+ },
356
+ ArrowDown: ({ editor: e }) => {
357
+ if (!this.options.exitOnArrowDown) return !1;
358
+ let { state: t } = e, { selection: n, doc: r } = t, { $from: i, empty: a } = n;
359
+ if (!a || i.parent.type !== this.type || i.parentOffset !== i.parent.nodeSize - 2) return !1;
360
+ let o = i.after();
361
+ return o === void 0 ? !1 : r.nodeAt(o) ? e.commands.command(({ tr: e }) => (e.setSelection(ee.near(r.resolve(o))), !0)) : e.commands.exitCode();
362
+ }
363
+ };
364
+ },
365
+ addInputRules() {
366
+ return [r({
367
+ find: De,
368
+ type: this.type,
369
+ getAttributes: (e) => ({ language: e[1] })
370
+ }), r({
371
+ find: Oe,
372
+ type: this.type,
373
+ getAttributes: (e) => ({ language: e[1] })
374
+ })];
375
+ },
376
+ addProseMirrorPlugins() {
377
+ return [new b({
378
+ key: new v("codeBlockVSCodeHandler"),
379
+ props: { handlePaste: (e, t) => {
380
+ if (!t.clipboardData || this.editor.isActive(this.type.name)) return !1;
381
+ let n = t.clipboardData.getData("text/plain"), r = t.clipboardData.getData("vscode-editor-data"), i = (r ? JSON.parse(r) : void 0)?.mode;
382
+ if (!n || !i) return !1;
383
+ let { tr: a, schema: o } = e.state, s = o.text(n.replace(/\r\n?/g, "\n"));
384
+ return a.replaceSelectionWith(this.type.create({ language: i }, s)), a.selection.$from.parent.type !== this.type && a.setSelection(y.near(a.doc.resolve(Math.max(0, a.selection.from - 2)))), a.setMeta("paste", !0), e.dispatch(a), !0;
385
+ } }
386
+ })];
387
+ }
388
+ }), Ae = u.create({
389
+ name: "doc",
390
+ topNode: !0,
391
+ content: "block+",
392
+ renderMarkdown: (e, t) => e.content ? t.renderChildren(e.content, "\n\n") : ""
393
+ }), je = u.create({
394
+ name: "hardBreak",
395
+ markdownTokenName: "br",
396
+ addOptions() {
397
+ return {
398
+ keepMarks: !0,
399
+ HTMLAttributes: {}
400
+ };
401
+ },
402
+ inline: !0,
403
+ group: "inline",
404
+ selectable: !1,
405
+ linebreakReplacement: !0,
406
+ parseHTML() {
407
+ return [{ tag: "br" }];
408
+ },
409
+ renderHTML({ HTMLAttributes: e }) {
410
+ return ["br", c(this.options.HTMLAttributes, e)];
411
+ },
412
+ renderText() {
413
+ return "\n";
414
+ },
415
+ renderMarkdown: () => " \n",
416
+ parseMarkdown: () => ({ type: "hardBreak" }),
417
+ addCommands() {
418
+ return { setHardBreak: () => ({ commands: e, chain: t, state: n, editor: r }) => e.first([() => e.exitCode(), () => e.command(() => {
419
+ let { selection: e, storedMarks: i } = n;
420
+ if (e.$from.parent.type.spec.isolating) return !1;
421
+ let { keepMarks: a } = this.options, { splittableMarks: o } = r.extensionManager, s = i || e.$to.parentOffset && e.$from.marks();
422
+ return t().insertContent({ type: this.name }).command(({ tr: e, dispatch: t }) => {
423
+ if (t && s && a) {
424
+ let t = s.filter((e) => o.includes(e.type.name));
425
+ e.ensureMarks(t);
426
+ }
427
+ return !0;
428
+ }).scrollIntoView().run();
429
+ })]) };
430
+ },
431
+ addKeyboardShortcuts() {
432
+ return {
433
+ "Mod-Enter": () => this.editor.commands.setHardBreak(),
434
+ "Shift-Enter": () => this.editor.commands.setHardBreak()
435
+ };
436
+ }
437
+ }), Me = u.create({
438
+ name: "heading",
439
+ addOptions() {
440
+ return {
441
+ levels: [
442
+ 1,
443
+ 2,
444
+ 3,
445
+ 4,
446
+ 5,
447
+ 6
448
+ ],
449
+ HTMLAttributes: {}
450
+ };
451
+ },
452
+ content: "inline*",
453
+ group: "block",
454
+ defining: !0,
455
+ addAttributes() {
456
+ return { level: {
457
+ default: 1,
458
+ rendered: !1
459
+ } };
460
+ },
461
+ parseHTML() {
462
+ return this.options.levels.map((e) => ({
463
+ tag: `h${e}`,
464
+ attrs: { level: e }
465
+ }));
466
+ },
467
+ renderHTML({ node: e, HTMLAttributes: t }) {
468
+ return [
469
+ `h${this.options.levels.includes(e.attrs.level) ? e.attrs.level : this.options.levels[0]}`,
470
+ c(this.options.HTMLAttributes, t),
471
+ 0
472
+ ];
473
+ },
474
+ parseMarkdown: (e, t) => t.createNode("heading", { level: e.depth || 1 }, t.parseInline(e.tokens || [])),
475
+ renderMarkdown: (e, t) => {
476
+ let n = e.attrs?.level ? parseInt(e.attrs.level, 10) : 1, r = "#".repeat(n);
477
+ return e.content ? `${r} ${t.renderChildren(e.content)}` : "";
478
+ },
479
+ addCommands() {
480
+ return {
481
+ setHeading: (e) => ({ commands: t }) => this.options.levels.includes(e.level) ? t.setNode(this.name, e) : !1,
482
+ toggleHeading: (e) => ({ commands: t }) => this.options.levels.includes(e.level) ? t.toggleNode(this.name, "paragraph", e) : !1
483
+ };
484
+ },
485
+ addKeyboardShortcuts() {
486
+ return this.options.levels.reduce((e, t) => ({
487
+ ...e,
488
+ [`Mod-Alt-${t}`]: () => this.editor.commands.toggleHeading({ level: t })
489
+ }), {});
490
+ },
491
+ addInputRules() {
492
+ return this.options.levels.map((e) => r({
493
+ find: RegExp(`^(#{${Math.min(...this.options.levels)},${e}})\\s$`),
494
+ type: this.type,
495
+ getAttributes: { level: e }
496
+ }));
497
+ }
498
+ }), Ne = u.create({
499
+ name: "horizontalRule",
500
+ addOptions() {
501
+ return {
502
+ HTMLAttributes: {},
503
+ nextNodeType: "paragraph"
504
+ };
505
+ },
506
+ group: "block",
507
+ parseHTML() {
508
+ return [{ tag: "hr" }];
509
+ },
510
+ renderHTML({ HTMLAttributes: e }) {
511
+ return ["hr", c(this.options.HTMLAttributes, e)];
512
+ },
513
+ markdownTokenName: "hr",
514
+ parseMarkdown: (e, t) => t.createNode("horizontalRule"),
515
+ renderMarkdown: () => "---",
516
+ addCommands() {
517
+ return { setHorizontalRule: () => ({ chain: e, state: t }) => {
518
+ if (!i(t, t.schema.nodes[this.name])) return !1;
519
+ let { selection: r } = t, { $to: a } = r, o = e();
520
+ return n(r) ? o.insertContentAt(a.pos, { type: this.name }) : o.insertContent({ type: this.name }), o.command(({ state: e, tr: t, dispatch: n }) => {
521
+ if (n) {
522
+ let { $to: n } = t.selection, r = n.end();
523
+ if (n.nodeAfter) n.nodeAfter.isTextblock ? t.setSelection(y.create(t.doc, n.pos + 1)) : n.nodeAfter.isBlock ? t.setSelection(S.create(t.doc, n.pos)) : t.setSelection(y.create(t.doc, n.pos));
524
+ else {
525
+ let i = (e.schema.nodes[this.options.nextNodeType] || n.parent.type.contentMatch.defaultType)?.create();
526
+ i && (t.insert(r, i), t.setSelection(y.create(t.doc, r + 1)));
527
+ }
528
+ t.scrollIntoView();
529
+ }
530
+ return !0;
531
+ }).run();
532
+ } };
533
+ },
534
+ addInputRules() {
535
+ return [g({
536
+ find: /^(?:---|—-|___\s|\*\*\*\s)$/,
537
+ type: this.type
538
+ })];
539
+ }
540
+ }), Pe = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/, Fe = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g, Ie = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/, Le = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g, Re = o.create({
541
+ name: "italic",
542
+ addOptions() {
543
+ return { HTMLAttributes: {} };
544
+ },
545
+ parseHTML() {
546
+ return [
547
+ { tag: "em" },
548
+ {
549
+ tag: "i",
550
+ getAttrs: (e) => e.style.fontStyle !== "normal" && null
551
+ },
552
+ {
553
+ style: "font-style=normal",
554
+ clearMark: (e) => e.type.name === this.name
555
+ },
556
+ { style: "font-style=italic" }
557
+ ];
558
+ },
559
+ renderHTML({ HTMLAttributes: e }) {
560
+ return [
561
+ "em",
562
+ c(this.options.HTMLAttributes, e),
563
+ 0
564
+ ];
565
+ },
566
+ addCommands() {
567
+ return {
568
+ setItalic: () => ({ commands: e }) => e.setMark(this.name),
569
+ toggleItalic: () => ({ commands: e }) => e.toggleMark(this.name),
570
+ unsetItalic: () => ({ commands: e }) => e.unsetMark(this.name)
571
+ };
572
+ },
573
+ markdownTokenName: "em",
574
+ parseMarkdown: (e, t) => t.applyMark("italic", t.parseInline(e.tokens || [])),
575
+ markdownOptions: { htmlReopen: {
576
+ open: "<em>",
577
+ close: "</em>"
578
+ } },
579
+ renderMarkdown: (e, t) => `*${t.renderChildren(e)}*`,
580
+ addKeyboardShortcuts() {
581
+ return {
582
+ "Mod-i": () => this.editor.commands.toggleItalic(),
583
+ "Mod-I": () => this.editor.commands.toggleItalic()
584
+ };
585
+ },
586
+ addInputRules() {
587
+ return [s({
588
+ find: Pe,
589
+ type: this.type
590
+ }), s({
591
+ find: Ie,
592
+ type: this.type
593
+ })];
594
+ },
595
+ addPasteRules() {
596
+ return [f({
597
+ find: Fe,
598
+ type: this.type
599
+ }), f({
600
+ find: Le,
601
+ type: this.type
602
+ })];
603
+ }
604
+ }), ze = "aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2", Be = "ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2", Ve = "numeric", He = "ascii", Ue = "alpha", w = "asciinumeric", T = "alphanumeric", We = "domain", Ge = "emoji", Ke = "scheme", qe = "slashscheme", Je = "whitespace";
605
+ function Ye(e, t) {
606
+ return e in t || (t[e] = []), t[e];
607
+ }
608
+ function E(e, t, n) {
609
+ t[Ve] && (t[w] = !0, t[T] = !0), t[He] && (t[w] = !0, t[Ue] = !0), t[w] && (t[T] = !0), t[Ue] && (t[T] = !0), t[T] && (t[We] = !0), t[Ge] && (t[We] = !0);
610
+ for (let r in t) {
611
+ let t = Ye(r, n);
612
+ t.indexOf(e) < 0 && t.push(e);
613
+ }
614
+ }
615
+ function Xe(e, t) {
616
+ let n = {};
617
+ for (let r in t) t[r].indexOf(e) >= 0 && (n[r] = !0);
618
+ return n;
619
+ }
620
+ function D(e = null) {
621
+ this.j = {}, this.jr = [], this.jd = null, this.t = e;
622
+ }
623
+ D.groups = {}, D.prototype = {
624
+ accepts() {
625
+ return !!this.t;
626
+ },
627
+ go(e) {
628
+ let t = this, n = t.j[e];
629
+ if (n) return n;
630
+ for (let n = 0; n < t.jr.length; n++) {
631
+ let r = t.jr[n][0], i = t.jr[n][1];
632
+ if (i && r.test(e)) return i;
633
+ }
634
+ return t.jd;
635
+ },
636
+ has(e, t = !1) {
637
+ return t ? e in this.j : !!this.go(e);
638
+ },
639
+ ta(e, t, n, r) {
640
+ for (let i = 0; i < e.length; i++) this.tt(e[i], t, n, r);
641
+ },
642
+ tr(e, t, n, r) {
643
+ r ||= D.groups;
644
+ let i;
645
+ return t && t.j ? i = t : (i = new D(t), n && r && E(t, n, r)), this.jr.push([e, i]), i;
646
+ },
647
+ ts(e, t, n, r) {
648
+ let i = this, a = e.length;
649
+ if (!a) return i;
650
+ for (let t = 0; t < a - 1; t++) i = i.tt(e[t]);
651
+ return i.tt(e[a - 1], t, n, r);
652
+ },
653
+ tt(e, t, n, r) {
654
+ r ||= D.groups;
655
+ let i = this;
656
+ if (t && t.j) return i.j[e] = t, t;
657
+ let a = t, o, s = i.go(e);
658
+ return s ? (o = new D(), Object.assign(o.j, s.j), o.jr.push.apply(o.jr, s.jr), o.jd = s.jd, o.t = s.t) : o = new D(), a && (r && (o.t && typeof o.t == "string" ? E(a, Object.assign(Xe(o.t, r), n), r) : n && E(a, n, r)), o.t = a), i.j[e] = o, o;
659
+ }
660
+ };
661
+ var O = (e, t, n, r, i) => e.ta(t, n, r, i), k = (e, t, n, r, i) => e.tr(t, n, r, i), Ze = (e, t, n, r, i) => e.ts(t, n, r, i), A = (e, t, n, r, i) => e.tt(t, n, r, i), j = "WORD", Qe = "UWORD", $e = "ASCIINUMERICAL", et = "ALPHANUMERICAL", M = "LOCALHOST", tt = "TLD", nt = "UTLD", N = "SCHEME", P = "SLASH_SCHEME", rt = "NUM", it = "WS", at = "NL", F = "OPENBRACE", I = "CLOSEBRACE", ot = "OPENBRACKET", st = "CLOSEBRACKET", ct = "OPENPAREN", lt = "CLOSEPAREN", ut = "OPENANGLEBRACKET", dt = "CLOSEANGLEBRACKET", ft = "FULLWIDTHLEFTPAREN", pt = "FULLWIDTHRIGHTPAREN", mt = "LEFTCORNERBRACKET", ht = "RIGHTCORNERBRACKET", gt = "LEFTWHITECORNERBRACKET", _t = "RIGHTWHITECORNERBRACKET", vt = "FULLWIDTHLESSTHAN", yt = "FULLWIDTHGREATERTHAN", bt = "AMPERSAND", L = "APOSTROPHE", xt = "ASTERISK", R = "AT", St = "BACKSLASH", Ct = "BACKTICK", wt = "CARET", z = "COLON", Tt = "COMMA", Et = "DOLLAR", B = "DOT", Dt = "EQUALS", Ot = "EXCLAMATION", V = "HYPHEN", H = "PERCENT", kt = "PIPE", At = "PLUS", jt = "POUND", U = "QUERY", Mt = "QUOTE", Nt = "FULLWIDTHMIDDLEDOT", Pt = "SEMI", W = "SLASH", G = "TILDE", Ft = "UNDERSCORE", It = "EMOJI", Lt = "SYM", Rt = /*#__PURE__*/ Object.freeze({
662
+ __proto__: null,
663
+ ALPHANUMERICAL: et,
664
+ AMPERSAND: bt,
665
+ APOSTROPHE: L,
666
+ ASCIINUMERICAL: $e,
667
+ ASTERISK: xt,
668
+ AT: R,
669
+ BACKSLASH: St,
670
+ BACKTICK: Ct,
671
+ CARET: wt,
672
+ CLOSEANGLEBRACKET: dt,
673
+ CLOSEBRACE: I,
674
+ CLOSEBRACKET: st,
675
+ CLOSEPAREN: lt,
676
+ COLON: z,
677
+ COMMA: Tt,
678
+ DOLLAR: Et,
679
+ DOT: B,
680
+ EMOJI: It,
681
+ EQUALS: Dt,
682
+ EXCLAMATION: Ot,
683
+ FULLWIDTHGREATERTHAN: yt,
684
+ FULLWIDTHLEFTPAREN: ft,
685
+ FULLWIDTHLESSTHAN: vt,
686
+ FULLWIDTHMIDDLEDOT: Nt,
687
+ FULLWIDTHRIGHTPAREN: pt,
688
+ HYPHEN: V,
689
+ LEFTCORNERBRACKET: mt,
690
+ LEFTWHITECORNERBRACKET: gt,
691
+ LOCALHOST: M,
692
+ NL: at,
693
+ NUM: rt,
694
+ OPENANGLEBRACKET: ut,
695
+ OPENBRACE: F,
696
+ OPENBRACKET: ot,
697
+ OPENPAREN: ct,
698
+ PERCENT: H,
699
+ PIPE: kt,
700
+ PLUS: At,
701
+ POUND: jt,
702
+ QUERY: U,
703
+ QUOTE: Mt,
704
+ RIGHTCORNERBRACKET: ht,
705
+ RIGHTWHITECORNERBRACKET: _t,
706
+ SCHEME: N,
707
+ SEMI: Pt,
708
+ SLASH: W,
709
+ SLASH_SCHEME: P,
710
+ SYM: Lt,
711
+ TILDE: G,
712
+ TLD: tt,
713
+ UNDERSCORE: Ft,
714
+ UTLD: nt,
715
+ UWORD: Qe,
716
+ WORD: j,
717
+ WS: it
718
+ }), K = /[a-z]/, q = /\p{L}/u, zt = /\p{Emoji}/u, J = /\d/, Bt = /\s/, Vt = "\r", Ht = "\n", Ut = "️", Wt = "‍", Gt = "", Kt = null, qt = null;
719
+ function Jt(e = []) {
720
+ let t = {};
721
+ D.groups = t;
722
+ let n = new D();
723
+ Kt ??= Zt(ze), qt ??= Zt(Be), A(n, "'", L), A(n, "{", F), A(n, "}", I), A(n, "[", ot), A(n, "]", st), A(n, "(", ct), A(n, ")", lt), A(n, "<", ut), A(n, ">", dt), A(n, "(", ft), A(n, ")", pt), A(n, "「", mt), A(n, "」", ht), A(n, "『", gt), A(n, "』", _t), A(n, "<", vt), A(n, ">", yt), A(n, "&", bt), A(n, "*", xt), A(n, "@", R), A(n, "`", Ct), A(n, "^", wt), A(n, ":", z), A(n, ",", Tt), A(n, "$", Et), A(n, ".", B), A(n, "=", Dt), A(n, "!", Ot), A(n, "-", V), A(n, "%", H), A(n, "|", kt), A(n, "+", At), A(n, "#", jt), A(n, "?", U), A(n, "\"", Mt), A(n, "/", W), A(n, ";", Pt), A(n, "~", G), A(n, "_", Ft), A(n, "\\", St), A(n, "・", Nt);
724
+ let r = k(n, J, rt, { [Ve]: !0 });
725
+ k(r, J, r);
726
+ let i = k(r, K, $e, { [w]: !0 }), a = k(r, q, et, { [T]: !0 }), o = k(n, K, j, { [He]: !0 });
727
+ k(o, J, i), k(o, K, o), k(i, J, i), k(i, K, i);
728
+ let s = k(n, q, Qe, { [Ue]: !0 });
729
+ k(s, K), k(s, J, a), k(s, q, s), k(a, J, a), k(a, K), k(a, q, a);
730
+ let c = A(n, Ht, at, { [Je]: !0 }), l = A(n, Vt, it, { [Je]: !0 }), u = k(n, Bt, it, { [Je]: !0 });
731
+ A(n, Gt, u), A(l, Ht, c), A(l, Gt, u), k(l, Bt, u), A(u, Vt), A(u, Ht), k(u, Bt, u), A(u, Gt, u);
732
+ let d = k(n, zt, It, { [Ge]: !0 });
733
+ A(d, "#"), k(d, zt, d), A(d, Ut, d);
734
+ let f = A(d, Wt);
735
+ A(f, "#"), k(f, zt, d);
736
+ let p = [[K, o], [J, i]], m = [
737
+ [K, null],
738
+ [q, s],
739
+ [J, a]
740
+ ];
741
+ for (let e = 0; e < Kt.length; e++) Y(n, Kt[e], tt, j, p);
742
+ for (let e = 0; e < qt.length; e++) Y(n, qt[e], nt, Qe, m);
743
+ E(tt, {
744
+ tld: !0,
745
+ ascii: !0
746
+ }, t), E(nt, {
747
+ utld: !0,
748
+ alpha: !0
749
+ }, t), Y(n, "file", N, j, p), Y(n, "mailto", N, j, p), Y(n, "http", P, j, p), Y(n, "https", P, j, p), Y(n, "ftp", P, j, p), Y(n, "ftps", P, j, p), E(N, {
750
+ scheme: !0,
751
+ ascii: !0
752
+ }, t), E(P, {
753
+ slashscheme: !0,
754
+ ascii: !0
755
+ }, t), e = e.sort((e, t) => e[0] > t[0] ? 1 : -1);
756
+ for (let t = 0; t < e.length; t++) {
757
+ let r = e[t][0], i = e[t][1] ? { [Ke]: !0 } : { [qe]: !0 };
758
+ r.indexOf("-") >= 0 ? i[We] = !0 : K.test(r) ? J.test(r) ? i[w] = !0 : i[He] = !0 : i[Ve] = !0, Ze(n, r, r, i);
759
+ }
760
+ return Ze(n, "localhost", M, { ascii: !0 }), n.jd = new D(Lt), {
761
+ start: n,
762
+ tokens: Object.assign({ groups: t }, Rt)
763
+ };
764
+ }
765
+ function Yt(e, t) {
766
+ let n = Xt(t.replace(/[A-Z]/g, (e) => e.toLowerCase())), r = n.length, i = [], a = 0, o = 0;
767
+ for (; o < r;) {
768
+ let s = e, c = null, l = 0, u = null, d = -1, f = -1;
769
+ for (; o < r && (c = s.go(n[o]));) s = c, s.accepts() ? (d = 0, f = 0, u = s) : d >= 0 && (d += n[o].length, f++), l += n[o].length, a += n[o].length, o++;
770
+ a -= d, o -= f, l -= d, i.push({
771
+ t: u.t,
772
+ v: t.slice(a - l, a),
773
+ s: a - l,
774
+ e: a
775
+ });
776
+ }
777
+ return i;
778
+ }
779
+ function Xt(e) {
780
+ let t = [], n = e.length, r = 0;
781
+ for (; r < n;) {
782
+ let i = e.charCodeAt(r), a, o = i < 55296 || i > 56319 || r + 1 === n || (a = e.charCodeAt(r + 1)) < 56320 || a > 57343 ? e[r] : e.slice(r, r + 2);
783
+ t.push(o), r += o.length;
784
+ }
785
+ return t;
786
+ }
787
+ function Y(e, t, n, r, i) {
788
+ let a, o = t.length;
789
+ for (let n = 0; n < o - 1; n++) {
790
+ let o = t[n];
791
+ e.j[o] ? a = e.j[o] : (a = new D(r), a.jr = i.slice(), e.j[o] = a), e = a;
792
+ }
793
+ return a = new D(n), a.jr = i.slice(), e.j[t[o - 1]] = a, a;
794
+ }
795
+ function Zt(e) {
796
+ let t = [], n = [], r = 0;
797
+ for (; r < e.length;) {
798
+ let i = 0;
799
+ for (; "0123456789".indexOf(e[r + i]) >= 0;) i++;
800
+ if (i > 0) {
801
+ t.push(n.join(""));
802
+ for (let t = parseInt(e.substring(r, r + i), 10); t > 0; t--) n.pop();
803
+ r += i;
804
+ } else n.push(e[r]), r++;
805
+ }
806
+ return t;
807
+ }
808
+ var X = {
809
+ defaultProtocol: "http",
810
+ events: null,
811
+ format: $t,
812
+ formatHref: $t,
813
+ nl2br: !1,
814
+ tagName: "a",
815
+ target: null,
816
+ rel: null,
817
+ validate: !0,
818
+ truncate: Infinity,
819
+ className: null,
820
+ attributes: null,
821
+ ignoreTags: [],
822
+ render: null
823
+ };
824
+ function Qt(e, t = null) {
825
+ let n = Object.assign({}, X);
826
+ e && (n = Object.assign(n, e instanceof Qt ? e.o : e));
827
+ let r = n.ignoreTags, i = [];
828
+ for (let e = 0; e < r.length; e++) i.push(r[e].toUpperCase());
829
+ this.o = n, t && (this.defaultRender = t), this.ignoreTags = i;
830
+ }
831
+ Qt.prototype = {
832
+ o: X,
833
+ ignoreTags: [],
834
+ defaultRender(e) {
835
+ return e;
836
+ },
837
+ check(e) {
838
+ return this.get("validate", e.toString(), e);
839
+ },
840
+ get(e, t, n) {
841
+ let r = t != null, i = this.o[e];
842
+ return i && (typeof i == "object" ? (i = n.t in i ? i[n.t] : X[e], typeof i == "function" && r && (i = i(t, n))) : typeof i == "function" && r && (i = i(t, n.t, n)), i);
843
+ },
844
+ getObj(e, t, n) {
845
+ let r = this.o[e];
846
+ return typeof r == "function" && t != null && (r = r(t, n.t, n)), r;
847
+ },
848
+ render(e) {
849
+ let t = e.render(this);
850
+ return (this.get("render", null, e) || this.defaultRender)(t, e.t, e);
851
+ }
852
+ };
853
+ function $t(e) {
854
+ return e;
855
+ }
856
+ function en(e, t) {
857
+ this.t = "token", this.v = e, this.tk = t;
858
+ }
859
+ en.prototype = {
860
+ isLink: !1,
861
+ toString() {
862
+ return this.v;
863
+ },
864
+ toHref(e) {
865
+ return this.toString();
866
+ },
867
+ toFormattedString(e) {
868
+ let t = this.toString(), n = e.get("truncate", t, this), r = e.get("format", t, this);
869
+ return n && r.length > n ? r.substring(0, n) + "…" : r;
870
+ },
871
+ toFormattedHref(e) {
872
+ return e.get("formatHref", this.toHref(e.get("defaultProtocol")), this);
873
+ },
874
+ startIndex() {
875
+ return this.tk[0].s;
876
+ },
877
+ endIndex() {
878
+ return this.tk[this.tk.length - 1].e;
879
+ },
880
+ toObject(e = X.defaultProtocol) {
881
+ return {
882
+ type: this.t,
883
+ value: this.toString(),
884
+ isLink: this.isLink,
885
+ href: this.toHref(e),
886
+ start: this.startIndex(),
887
+ end: this.endIndex()
888
+ };
889
+ },
890
+ toFormattedObject(e) {
891
+ return {
892
+ type: this.t,
893
+ value: this.toFormattedString(e),
894
+ isLink: this.isLink,
895
+ href: this.toFormattedHref(e),
896
+ start: this.startIndex(),
897
+ end: this.endIndex()
898
+ };
899
+ },
900
+ validate(e) {
901
+ return e.get("validate", this.toString(), this);
902
+ },
903
+ render(e) {
904
+ let t = this, n = this.toHref(e.get("defaultProtocol")), r = e.get("formatHref", n, this), i = e.get("tagName", n, t), a = this.toFormattedString(e), o = {}, s = e.get("className", n, t), c = e.get("target", n, t), l = e.get("rel", n, t), u = e.getObj("attributes", n, t), d = e.getObj("events", n, t);
905
+ return o.href = r, s && (o.class = s), c && (o.target = c), l && (o.rel = l), u && Object.assign(o, u), {
906
+ tagName: i,
907
+ attributes: o,
908
+ content: a,
909
+ eventListeners: d
910
+ };
911
+ }
912
+ };
913
+ function tn(e, t) {
914
+ class n extends en {
915
+ constructor(t, n) {
916
+ super(t, n), this.t = e;
917
+ }
918
+ }
919
+ for (let e in t) n.prototype[e] = t[e];
920
+ return n.t = e, n;
921
+ }
922
+ var nn = tn("email", {
923
+ isLink: !0,
924
+ toHref() {
925
+ return "mailto:" + this.toString();
926
+ }
927
+ }), rn = tn("text"), an = tn("nl"), on = tn("url", {
928
+ isLink: !0,
929
+ toHref(e = X.defaultProtocol) {
930
+ return this.hasProtocol() ? this.v : `${e}://${this.v}`;
931
+ },
932
+ hasProtocol() {
933
+ let e = this.tk;
934
+ return e.length >= 2 && e[0].t !== M && e[1].t === z;
935
+ }
936
+ }), Z = (e) => new D(e);
937
+ function sn({ groups: e }) {
938
+ let t = e.domain.concat([
939
+ bt,
940
+ xt,
941
+ R,
942
+ St,
943
+ Ct,
944
+ wt,
945
+ Et,
946
+ Dt,
947
+ V,
948
+ rt,
949
+ H,
950
+ kt,
951
+ At,
952
+ jt,
953
+ W,
954
+ Lt,
955
+ G,
956
+ Ft
957
+ ]), n = [
958
+ L,
959
+ z,
960
+ Tt,
961
+ B,
962
+ Ot,
963
+ H,
964
+ U,
965
+ Mt,
966
+ Pt,
967
+ ut,
968
+ dt,
969
+ F,
970
+ I,
971
+ st,
972
+ ot,
973
+ ct,
974
+ lt,
975
+ ft,
976
+ pt,
977
+ mt,
978
+ ht,
979
+ gt,
980
+ _t,
981
+ vt,
982
+ yt
983
+ ], r = [
984
+ bt,
985
+ L,
986
+ xt,
987
+ St,
988
+ Ct,
989
+ wt,
990
+ Et,
991
+ Dt,
992
+ V,
993
+ F,
994
+ I,
995
+ H,
996
+ kt,
997
+ At,
998
+ jt,
999
+ U,
1000
+ W,
1001
+ Lt,
1002
+ G,
1003
+ Ft
1004
+ ], i = Z(), a = A(i, G);
1005
+ O(a, r, a), O(a, e.domain, a);
1006
+ let o = Z(), s = Z(), c = Z();
1007
+ O(i, e.domain, o), O(i, e.scheme, s), O(i, e.slashscheme, c), O(o, r, a), O(o, e.domain, o);
1008
+ let l = A(o, R);
1009
+ A(a, R, l), A(s, R, l), A(c, R, l);
1010
+ let u = A(a, B);
1011
+ O(u, r, a), O(u, e.domain, a);
1012
+ let d = Z();
1013
+ O(l, e.domain, d), O(d, e.domain, d);
1014
+ let f = A(d, B);
1015
+ O(f, e.domain, d);
1016
+ let p = Z(nn);
1017
+ O(f, e.tld, p), O(f, e.utld, p), A(l, M, p);
1018
+ let m = A(d, V);
1019
+ A(m, V, m), O(m, e.domain, d), O(p, e.domain, d), A(p, B, f), A(p, V, m);
1020
+ let h = A(o, V), g = A(o, B);
1021
+ A(h, V, h), O(h, e.domain, o), O(g, r, a), O(g, e.domain, o);
1022
+ let _ = Z(on);
1023
+ O(g, e.tld, _), O(g, e.utld, _), O(_, e.domain, o), O(_, r, a), A(_, B, g), A(_, V, h), A(_, R, l);
1024
+ let v = A(_, z), y = Z(on);
1025
+ O(v, e.numeric, y);
1026
+ let b = Z(on), x = Z();
1027
+ O(b, t, b), O(b, n, x), O(x, t, b), O(x, n, x), A(_, W, b), A(y, W, b);
1028
+ let ee = A(s, z), S = A(A(A(c, z), W), W);
1029
+ O(s, e.domain, o), A(s, B, g), A(s, V, h), O(c, e.domain, o), A(c, B, g), A(c, V, h), O(ee, e.domain, b), A(ee, W, b), A(ee, U, b), O(S, e.domain, b), O(S, t, b), A(S, W, b);
1030
+ let te = [
1031
+ [F, I],
1032
+ [ot, st],
1033
+ [ct, lt],
1034
+ [ut, dt],
1035
+ [ft, pt],
1036
+ [mt, ht],
1037
+ [gt, _t],
1038
+ [vt, yt]
1039
+ ];
1040
+ for (let e = 0; e < te.length; e++) {
1041
+ let [r, i] = te[e], a = A(b, r);
1042
+ A(x, r, a);
1043
+ let o = Z(on);
1044
+ O(a, t, o);
1045
+ let s = Z();
1046
+ O(a, n, s), A(a, i, b), O(o, t, o), O(o, n, s), O(s, t, o), O(s, n, s), A(o, i, b), A(s, i, b);
1047
+ }
1048
+ return A(i, M, _), A(i, at, an), {
1049
+ start: i,
1050
+ tokens: Rt
1051
+ };
1052
+ }
1053
+ function cn(e, t, n) {
1054
+ let r = n.length, i = 0, a = [], o = [];
1055
+ for (; i < r;) {
1056
+ let s = e, c = null, l = null, u = 0, d = null, f = -1;
1057
+ for (; i < r && !(c = s.go(n[i].t));) o.push(n[i++]);
1058
+ for (; i < r && (l = c || s.go(n[i].t));) c = null, s = l, s.accepts() ? (f = 0, d = s) : f >= 0 && f++, i++, u++;
1059
+ if (f < 0) i -= u, i < r && (o.push(n[i]), i++);
1060
+ else {
1061
+ o.length > 0 && (a.push(ln(rn, t, o)), o = []), i -= f, u -= f;
1062
+ let e = d.t, r = n.slice(i - u, i);
1063
+ a.push(ln(e, t, r));
1064
+ }
1065
+ }
1066
+ return o.length > 0 && a.push(ln(rn, t, o)), a;
1067
+ }
1068
+ function ln(e, t, n) {
1069
+ let r = n[0].s, i = n[n.length - 1].e;
1070
+ return new e(t.slice(r, i), n);
1071
+ }
1072
+ var un = typeof console < "u" && console && console.warn || (() => {}), dn = "until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.", Q = {
1073
+ scanner: null,
1074
+ parser: null,
1075
+ tokenQueue: [],
1076
+ pluginQueue: [],
1077
+ customSchemes: [],
1078
+ initialized: !1
1079
+ };
1080
+ function fn() {
1081
+ return D.groups = {}, Q.scanner = null, Q.parser = null, Q.tokenQueue = [], Q.pluginQueue = [], Q.customSchemes = [], Q.initialized = !1, Q;
1082
+ }
1083
+ function pn(e, t = !1) {
1084
+ if (Q.initialized && un(`linkifyjs: already initialized - will not register custom scheme "${e}" ${dn}`), !/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e)) throw Error("linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat");
1085
+ Q.customSchemes.push([e, t]);
1086
+ }
1087
+ function mn() {
1088
+ Q.scanner = Jt(Q.customSchemes);
1089
+ for (let e = 0; e < Q.tokenQueue.length; e++) Q.tokenQueue[e][1]({ scanner: Q.scanner });
1090
+ Q.parser = sn(Q.scanner.tokens);
1091
+ for (let e = 0; e < Q.pluginQueue.length; e++) Q.pluginQueue[e][1]({
1092
+ scanner: Q.scanner,
1093
+ parser: Q.parser
1094
+ });
1095
+ return Q.initialized = !0, Q;
1096
+ }
1097
+ function hn(e) {
1098
+ return Q.initialized || mn(), cn(Q.parser.start, e, Yt(Q.scanner.start, e));
1099
+ }
1100
+ hn.scan = Yt;
1101
+ function gn(e, t = null, n = null) {
1102
+ if (t && typeof t == "object") {
1103
+ if (n) throw Error(`linkifyjs: Invalid link type ${t}; must be a string`);
1104
+ n = t, t = null;
1105
+ }
1106
+ let r = new Qt(n), i = hn(e), a = [];
1107
+ for (let e = 0; e < i.length; e++) {
1108
+ let n = i[e];
1109
+ n.isLink && (!t || n.t === t) && r.check(n) && a.push(n.toFormattedObject(r));
1110
+ }
1111
+ return a;
1112
+ }
1113
+ //#endregion
1114
+ //#region ../../../node_modules/.bun/@tiptap+extension-link@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extension-link/dist/index.js
1115
+ var _n = "[\0- \xA0 ᠎ -\u2029  ]", vn = new RegExp(_n), yn = RegExp(`${_n}$`), bn = new RegExp(_n, "g");
1116
+ function xn(e) {
1117
+ return e.length === 1 ? e[0].isLink : e.length === 3 && e[1].isLink ? ["()", "[]"].includes(e[0].value + e[2].value) : !1;
1118
+ }
1119
+ function Sn(n) {
1120
+ return new b({
1121
+ key: new v("autolink"),
1122
+ appendTransaction: (r, i, a) => {
1123
+ let o = r.some((e) => e.docChanged) && !i.doc.eq(a.doc), s = r.some((e) => e.getMeta("preventAutolink"));
1124
+ if (!o || s) return;
1125
+ let { tr: c } = a;
1126
+ if (d(e(i.doc, [...r])).forEach(({ newRange: e }) => {
1127
+ let r = t(a.doc, e, (e) => e.isTextblock), i, o;
1128
+ if (r.length > 1) i = r[0], o = a.doc.textBetween(i.pos, i.pos + i.node.nodeSize, void 0, " ");
1129
+ else if (r.length) {
1130
+ let t = a.doc.textBetween(e.from, e.to, " ", " ");
1131
+ if (!yn.test(t)) return;
1132
+ i = r[0], o = a.doc.textBetween(i.pos, e.to, void 0, " ");
1133
+ }
1134
+ if (i && o) {
1135
+ let e = o.split(vn).filter(Boolean);
1136
+ if (e.length <= 0) return !1;
1137
+ let t = e[e.length - 1], r = i.pos + o.lastIndexOf(t);
1138
+ if (!t) return !1;
1139
+ let s = hn(t).map((e) => e.toObject(n.defaultProtocol));
1140
+ if (!xn(s)) return !1;
1141
+ s.filter((e) => e.isLink).map((e) => ({
1142
+ ...e,
1143
+ from: r + e.start + 1,
1144
+ to: r + e.end + 1
1145
+ })).filter((e) => !a.schema.marks.code || !a.doc.rangeHasMark(e.from, e.to, a.schema.marks.code)).filter((e) => n.validate(e.value)).filter((e) => n.shouldAutoLink(e.value)).forEach((e) => {
1146
+ l(e.from, e.to, a.doc).some((e) => e.mark.type === n.type) || c.addMark(e.from, e.to, n.type.create({ href: e.href }));
1147
+ });
1148
+ }
1149
+ }), c.steps.length) return c;
1150
+ }
1151
+ });
1152
+ }
1153
+ function Cn(e) {
1154
+ return new b({
1155
+ key: new v("handleClickLink"),
1156
+ props: { handleClick: (t, n, r) => {
1157
+ if (r.button !== 0 || !t.editable) return !1;
1158
+ let i = null;
1159
+ if (r.target instanceof HTMLAnchorElement) i = r.target;
1160
+ else {
1161
+ let t = r.target;
1162
+ if (!t) return !1;
1163
+ let n = e.editor.view.dom;
1164
+ i = t.closest("a"), i && !n.contains(i) && (i = null);
1165
+ }
1166
+ if (!i) return !1;
1167
+ let o = !1;
1168
+ if (e.enableClickSelection && (o = e.editor.commands.extendMarkRange(e.type.name)), e.openOnClick) {
1169
+ let n = a(t.state, e.type.name), r = i.href ?? n.href, s = i.target ?? n.target;
1170
+ r && (window.open(r, s), o = !0);
1171
+ }
1172
+ return o;
1173
+ } }
1174
+ });
1175
+ }
1176
+ var wn = /\[([^[\]]+)\]\(((?:[^\s()]|\([^\s()]*\))+)(?:\s+(?:(["'])(.*?)\3|“(.*?)”|‘(.*?)’))?\)$/, Tn = /\[([^[\]]+)\]\(((?:[^\s()]|\([^\s()]*\))+)(?:\s+(?:(["'])(.*?)\3|“(.*?)”|‘(.*?)’))?\)/g;
1177
+ function En(e, t) {
1178
+ let n = 0;
1179
+ for (let r = t - 1; r >= 0 && e[r] === "\\"; --r) n += 1;
1180
+ return n % 2 == 1;
1181
+ }
1182
+ function Dn(e, t) {
1183
+ let n = 0, r = 0;
1184
+ for (; r < t;) {
1185
+ if (e[r] !== "`") {
1186
+ r += 1;
1187
+ continue;
1188
+ }
1189
+ if (n === 0 && En(e, r)) {
1190
+ r += 1;
1191
+ continue;
1192
+ }
1193
+ let i = 0;
1194
+ for (; r < t && e[r] === "`";) i += 1, r += 1;
1195
+ n === 0 ? n = i : i === n && (n = 0);
1196
+ }
1197
+ return n > 0;
1198
+ }
1199
+ function On(e, t, n) {
1200
+ let [, r, i] = t;
1201
+ return (t.index ? e[t.index - 1] : void 0) === "!" || En(e, t.index ?? 0) || Dn(e, t.index ?? 0) ? !1 : !!r.trim() && n(i);
1202
+ }
1203
+ function kn(e) {
1204
+ let [t, n, r, , i, a, o] = e, s = i ?? a ?? o;
1205
+ return {
1206
+ index: e.index ?? 0,
1207
+ text: t,
1208
+ replaceWith: n,
1209
+ data: {
1210
+ href: r,
1211
+ title: s || null,
1212
+ markdown: !0
1213
+ }
1214
+ };
1215
+ }
1216
+ function An(e, t) {
1217
+ return e.index < t.index + t.text.length && t.index < e.index + e.text.length;
1218
+ }
1219
+ function jn(e) {
1220
+ return {
1221
+ href: e.data?.href,
1222
+ title: e.data?.title ?? null
1223
+ };
1224
+ }
1225
+ function Mn(e) {
1226
+ let t = s({
1227
+ find: (t) => {
1228
+ let n = wn.exec(t);
1229
+ return !n || !On(t, n, e.isAllowedHref) ? null : kn(n);
1230
+ },
1231
+ type: e.type,
1232
+ getAttributes: jn
1233
+ });
1234
+ return new m({
1235
+ find: t.find,
1236
+ handler: (e) => {
1237
+ let n = t.handler(e);
1238
+ return n !== null && e.state.tr.steps.length && e.state.tr.setMeta("preventAutolink", !0), n;
1239
+ }
1240
+ });
1241
+ }
1242
+ function Nn(e) {
1243
+ let t = f({
1244
+ find: (t) => {
1245
+ let n = [];
1246
+ for (let r of t.matchAll(Tn)) On(t, r, e.isAllowedHref) && n.push(kn(r));
1247
+ let r = (e.findPlainUrls?.call(e, t) ?? []).filter((e) => !n.some((t) => An(t, e)));
1248
+ return [...n, ...r];
1249
+ },
1250
+ type: e.type,
1251
+ getAttributes: jn
1252
+ });
1253
+ return new h({
1254
+ find: t.find,
1255
+ handler: (e) => {
1256
+ let n = t.handler(e);
1257
+ return n !== null && e.state.tr.steps.length && e.match.data?.markdown && e.state.tr.setMeta("preventAutolink", !0), n;
1258
+ }
1259
+ });
1260
+ }
1261
+ function Pn(e) {
1262
+ return new b({
1263
+ key: new v("handlePasteLink"),
1264
+ props: { handlePaste: (t, n, r) => {
1265
+ let { shouldAutoLink: i } = e, { state: a } = t, { selection: o } = a, { empty: s } = o;
1266
+ if (s) return !1;
1267
+ let c = "";
1268
+ r.content.forEach((e) => {
1269
+ c += e.textContent;
1270
+ });
1271
+ let l = gn(c, { defaultProtocol: e.defaultProtocol }).find((e) => e.isLink && e.value === c);
1272
+ return !c || !l || i !== void 0 && !i(l.value) ? !1 : e.editor.commands.setMark(e.type, { href: l.href });
1273
+ } }
1274
+ });
1275
+ }
1276
+ function $(e, t) {
1277
+ let n = [
1278
+ "http",
1279
+ "https",
1280
+ "ftp",
1281
+ "ftps",
1282
+ "mailto",
1283
+ "tel",
1284
+ "callto",
1285
+ "sms",
1286
+ "cid",
1287
+ "xmpp"
1288
+ ];
1289
+ return t && t.forEach((e) => {
1290
+ let t = typeof e == "string" ? e : e.scheme;
1291
+ t && n.push(t);
1292
+ }), !e || e.replace(bn, "").match(RegExp(`^(?:(?:${n.map((e) => e.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&")).join("|")}):|[^a-z]|[a-z0-9+.\\-]+(?:[^a-z+.\\-:]|$))`, "i"));
1293
+ }
1294
+ var Fn = o.create({
1295
+ name: "link",
1296
+ priority: 1e3,
1297
+ keepOnSplit: !1,
1298
+ exitable: !0,
1299
+ onCreate() {
1300
+ this.options.validate && !this.options.shouldAutoLink && (this.options.shouldAutoLink = this.options.validate, console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")), this.options.protocols.forEach((e) => {
1301
+ if (typeof e == "string") {
1302
+ pn(e);
1303
+ return;
1304
+ }
1305
+ pn(e.scheme, e.optionalSlashes);
1306
+ });
1307
+ },
1308
+ onDestroy() {
1309
+ fn();
1310
+ },
1311
+ inclusive() {
1312
+ return this.options.autolink;
1313
+ },
1314
+ addOptions() {
1315
+ return {
1316
+ openOnClick: !0,
1317
+ enableClickSelection: !1,
1318
+ linkOnPaste: !0,
1319
+ markdownLinks: !1,
1320
+ autolink: !0,
1321
+ protocols: [],
1322
+ defaultProtocol: "http",
1323
+ HTMLAttributes: {
1324
+ target: "_blank",
1325
+ rel: "noopener noreferrer nofollow",
1326
+ class: null
1327
+ },
1328
+ isAllowedUri: (e, t) => !!$(e, t.protocols),
1329
+ validate: (e) => !!e,
1330
+ shouldAutoLink: (e) => {
1331
+ let t = /^[a-z][a-z0-9+.-]*:\/\//i.test(e), n = /^[a-z][a-z0-9+.-]*:/i.test(e);
1332
+ if (t || n && !e.includes("@")) return !0;
1333
+ let r = (e.includes("@") ? e.split("@").pop() : e).split(/[/?#:]/)[0];
1334
+ return !(/^\d{1,3}(\.\d{1,3}){3}$/.test(r) || !/\./.test(r));
1335
+ }
1336
+ };
1337
+ },
1338
+ addAttributes() {
1339
+ return {
1340
+ href: {
1341
+ default: null,
1342
+ parseHTML(e) {
1343
+ return e.getAttribute("href");
1344
+ }
1345
+ },
1346
+ target: { default: this.options.HTMLAttributes.target ?? null },
1347
+ rel: { default: this.options.HTMLAttributes.rel ?? null },
1348
+ class: { default: this.options.HTMLAttributes.class ?? null },
1349
+ title: { default: null }
1350
+ };
1351
+ },
1352
+ parseHTML() {
1353
+ return [{
1354
+ tag: "a[href]",
1355
+ getAttrs: (e) => {
1356
+ let t = e.getAttribute("href");
1357
+ return !t || !this.options.isAllowedUri(t, {
1358
+ defaultValidate: (e) => !!$(e, this.options.protocols),
1359
+ protocols: this.options.protocols,
1360
+ defaultProtocol: this.options.defaultProtocol
1361
+ }) ? !1 : null;
1362
+ }
1363
+ }];
1364
+ },
1365
+ renderHTML({ HTMLAttributes: e }) {
1366
+ return this.options.isAllowedUri(e.href, {
1367
+ defaultValidate: (e) => !!$(e, this.options.protocols),
1368
+ protocols: this.options.protocols,
1369
+ defaultProtocol: this.options.defaultProtocol
1370
+ }) ? [
1371
+ "a",
1372
+ c(this.options.HTMLAttributes, e),
1373
+ 0
1374
+ ] : [
1375
+ "a",
1376
+ c(this.options.HTMLAttributes, {
1377
+ ...e,
1378
+ href: ""
1379
+ }),
1380
+ 0
1381
+ ];
1382
+ },
1383
+ markdownTokenName: "link",
1384
+ parseMarkdown: (e, t) => t.applyMark("link", t.parseInline(e.tokens || []), {
1385
+ href: e.href,
1386
+ title: e.title || null
1387
+ }),
1388
+ renderMarkdown: (e, t) => {
1389
+ let n = e.attrs?.href ?? "", r = e.attrs?.title ?? "", i = t.renderChildren(e);
1390
+ return r ? `[${i}](${n} "${r}")` : `[${i}](${n})`;
1391
+ },
1392
+ addCommands() {
1393
+ return {
1394
+ setLink: (e) => ({ chain: t }) => {
1395
+ let { href: n } = e;
1396
+ return this.options.isAllowedUri(n, {
1397
+ defaultValidate: (e) => !!$(e, this.options.protocols),
1398
+ protocols: this.options.protocols,
1399
+ defaultProtocol: this.options.defaultProtocol
1400
+ }) ? t().setMark(this.name, e).setMeta("preventAutolink", !0).run() : !1;
1401
+ },
1402
+ toggleLink: (e) => ({ chain: t }) => {
1403
+ let { href: n } = e || {};
1404
+ return n && !this.options.isAllowedUri(n, {
1405
+ defaultValidate: (e) => !!$(e, this.options.protocols),
1406
+ protocols: this.options.protocols,
1407
+ defaultProtocol: this.options.defaultProtocol
1408
+ }) ? !1 : t().toggleMark(this.name, e, { extendEmptyMarkRange: !0 }).setMeta("preventAutolink", !0).run();
1409
+ },
1410
+ unsetLink: () => ({ chain: e }) => e().unsetMark(this.name, { extendEmptyMarkRange: !0 }).setMeta("preventAutolink", !0).run()
1411
+ };
1412
+ },
1413
+ addInputRules() {
1414
+ return this.options.markdownLinks ? [Mn({
1415
+ type: this.type,
1416
+ isAllowedHref: (e) => this.options.isAllowedUri(e, {
1417
+ defaultValidate: (e) => !!$(e, this.options.protocols),
1418
+ protocols: this.options.protocols,
1419
+ defaultProtocol: this.options.defaultProtocol
1420
+ })
1421
+ })] : [];
1422
+ },
1423
+ addPasteRules() {
1424
+ let e = (e) => {
1425
+ let t = [];
1426
+ if (e) {
1427
+ let { protocols: n, defaultProtocol: r } = this.options;
1428
+ gn(e).filter((e) => e.isLink && this.options.isAllowedUri(e.value, {
1429
+ defaultValidate: (e) => !!$(e, n),
1430
+ protocols: n,
1431
+ defaultProtocol: r
1432
+ })).forEach((e) => {
1433
+ this.options.shouldAutoLink(e.value) && t.push({
1434
+ text: e.value,
1435
+ data: { href: e.href },
1436
+ index: e.start
1437
+ });
1438
+ });
1439
+ }
1440
+ return t;
1441
+ };
1442
+ return this.options.markdownLinks ? [Nn({
1443
+ type: this.type,
1444
+ isAllowedHref: (e) => this.options.isAllowedUri(e, {
1445
+ defaultValidate: (e) => !!$(e, this.options.protocols),
1446
+ protocols: this.options.protocols,
1447
+ defaultProtocol: this.options.defaultProtocol
1448
+ }),
1449
+ findPlainUrls: e
1450
+ })] : [f({
1451
+ find: e,
1452
+ type: this.type,
1453
+ getAttributes: (e) => ({ href: e.data?.href })
1454
+ })];
1455
+ },
1456
+ addProseMirrorPlugins() {
1457
+ let e = [], { protocols: t, defaultProtocol: n } = this.options;
1458
+ return this.options.autolink && e.push(Sn({
1459
+ type: this.type,
1460
+ defaultProtocol: this.options.defaultProtocol,
1461
+ validate: (e) => this.options.isAllowedUri(e, {
1462
+ defaultValidate: (e) => !!$(e, t),
1463
+ protocols: t,
1464
+ defaultProtocol: n
1465
+ }),
1466
+ shouldAutoLink: this.options.shouldAutoLink
1467
+ })), e.push(Cn({
1468
+ type: this.type,
1469
+ editor: this.editor,
1470
+ openOnClick: this.options.openOnClick === "whenNotEditable" || this.options.openOnClick,
1471
+ enableClickSelection: this.options.enableClickSelection
1472
+ })), this.options.linkOnPaste && e.push(Pn({
1473
+ editor: this.editor,
1474
+ defaultProtocol: this.options.defaultProtocol,
1475
+ type: this.type,
1476
+ shouldAutoLink: this.options.shouldAutoLink
1477
+ })), e;
1478
+ }
1479
+ }), In = "&nbsp;", Ln = "\xA0", Rn = u.create({
1480
+ name: "paragraph",
1481
+ priority: 1e3,
1482
+ addOptions() {
1483
+ return { HTMLAttributes: {} };
1484
+ },
1485
+ group: "block",
1486
+ content: "inline*",
1487
+ parseHTML() {
1488
+ return [{ tag: "p" }];
1489
+ },
1490
+ renderHTML({ HTMLAttributes: e }) {
1491
+ return [
1492
+ "p",
1493
+ c(this.options.HTMLAttributes, e),
1494
+ 0
1495
+ ];
1496
+ },
1497
+ parseMarkdown: (e, t) => {
1498
+ let n = e.tokens || [];
1499
+ if (n.length === 1 && n[0].type === "image") return t.parseChildren([n[0]]);
1500
+ let r = t.parseInline(n);
1501
+ return n.length === 1 && n[0].type === "text" && (n[0].raw === In || n[0].text === In || n[0].raw === Ln || n[0].text === Ln) && r.length === 1 && r[0].type === "text" && (r[0].text === In || r[0].text === Ln) ? t.createNode("paragraph", void 0, []) : t.createNode("paragraph", void 0, r);
1502
+ },
1503
+ renderMarkdown: (e, t, n) => {
1504
+ if (!e) return "";
1505
+ let r = Array.isArray(e.content) ? e.content : [];
1506
+ if (r.length === 0) {
1507
+ var i, a;
1508
+ let e = Array.isArray(n == null || (i = n.previousNode) == null ? void 0 : i.content) ? n.previousNode.content : [];
1509
+ return (n == null || (a = n.previousNode) == null ? void 0 : a.type) === "paragraph" && e.length === 0 ? In : "";
1510
+ }
1511
+ return t.renderChildren(r);
1512
+ },
1513
+ addCommands() {
1514
+ return { setParagraph: () => ({ commands: e }) => e.setNode(this.name) };
1515
+ },
1516
+ addKeyboardShortcuts() {
1517
+ return { "Mod-Alt-0": () => this.editor.commands.setParagraph() };
1518
+ }
1519
+ }), zn = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/, Bn = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g, Vn = o.create({
1520
+ name: "strike",
1521
+ addOptions() {
1522
+ return { HTMLAttributes: {} };
1523
+ },
1524
+ parseHTML() {
1525
+ return [
1526
+ { tag: "s" },
1527
+ { tag: "del" },
1528
+ { tag: "strike" },
1529
+ {
1530
+ style: "text-decoration",
1531
+ consuming: !1,
1532
+ getAttrs: (e) => e.includes("line-through") ? {} : !1
1533
+ }
1534
+ ];
1535
+ },
1536
+ renderHTML({ HTMLAttributes: e }) {
1537
+ return [
1538
+ "s",
1539
+ c(this.options.HTMLAttributes, e),
1540
+ 0
1541
+ ];
1542
+ },
1543
+ markdownTokenName: "del",
1544
+ parseMarkdown: (e, t) => t.applyMark("strike", t.parseInline(e.tokens || [])),
1545
+ renderMarkdown: (e, t) => `~~${t.renderChildren(e)}~~`,
1546
+ addCommands() {
1547
+ return {
1548
+ setStrike: () => ({ commands: e }) => e.setMark(this.name),
1549
+ toggleStrike: () => ({ commands: e }) => e.toggleMark(this.name),
1550
+ unsetStrike: () => ({ commands: e }) => e.unsetMark(this.name)
1551
+ };
1552
+ },
1553
+ addKeyboardShortcuts() {
1554
+ return { "Mod-Shift-s": () => this.editor.commands.toggleStrike() };
1555
+ },
1556
+ addInputRules() {
1557
+ return [s({
1558
+ find: zn,
1559
+ type: this.type
1560
+ })];
1561
+ },
1562
+ addPasteRules() {
1563
+ return [f({
1564
+ find: Bn,
1565
+ type: this.type
1566
+ })];
1567
+ }
1568
+ }), Hn = u.create({
1569
+ name: "text",
1570
+ group: "inline",
1571
+ parseMarkdown: (e) => ({
1572
+ type: "text",
1573
+ text: e.text || ""
1574
+ }),
1575
+ renderMarkdown: (e) => e.text || ""
1576
+ }), Un = o.create({
1577
+ name: "underline",
1578
+ addOptions() {
1579
+ return { HTMLAttributes: {} };
1580
+ },
1581
+ parseHTML() {
1582
+ return [{ tag: "u" }, {
1583
+ style: "text-decoration",
1584
+ consuming: !1,
1585
+ getAttrs: (e) => e.includes("underline") ? {} : !1
1586
+ }];
1587
+ },
1588
+ renderHTML({ HTMLAttributes: e }) {
1589
+ return [
1590
+ "u",
1591
+ c(this.options.HTMLAttributes, e),
1592
+ 0
1593
+ ];
1594
+ },
1595
+ parseMarkdown(e, t) {
1596
+ return t.applyMark(this.name || "underline", t.parseInline(e.tokens || []));
1597
+ },
1598
+ renderMarkdown(e, t) {
1599
+ return `++${t.renderChildren(e)}++`;
1600
+ },
1601
+ markdownTokenizer: {
1602
+ name: "underline",
1603
+ level: "inline",
1604
+ start(e) {
1605
+ return e.indexOf("++");
1606
+ },
1607
+ tokenize(e, t, n) {
1608
+ let r = /^(\+\+)([\s\S]+?)(\+\+)/.exec(e);
1609
+ if (!r) return;
1610
+ let i = r[2].trim();
1611
+ return {
1612
+ type: "underline",
1613
+ raw: r[0],
1614
+ text: i,
1615
+ tokens: n.inlineTokens(i)
1616
+ };
1617
+ }
1618
+ },
1619
+ addCommands() {
1620
+ return {
1621
+ setUnderline: () => ({ commands: e }) => e.setMark(this.name),
1622
+ toggleUnderline: () => ({ commands: e }) => e.toggleMark(this.name),
1623
+ unsetUnderline: () => ({ commands: e }) => e.unsetMark(this.name)
1624
+ };
1625
+ },
1626
+ addKeyboardShortcuts() {
1627
+ return {
1628
+ "Mod-u": () => this.editor.commands.toggleUnderline(),
1629
+ "Mod-U": () => this.editor.commands.toggleUnderline()
1630
+ };
1631
+ }
1632
+ }), Wn = p.create({
1633
+ name: "starterKit",
1634
+ addExtensions() {
1635
+ let e = [];
1636
+ return this.options.bold !== !1 && e.push(Se.configure(this.options.bold)), this.options.blockquote !== !1 && e.push(_e.configure(this.options.blockquote)), this.options.bulletList !== !1 && e.push(ce.configure(this.options.bulletList)), this.options.code !== !1 && e.push(Te.configure(this.options.code)), this.options.codeBlock !== !1 && e.push(ke.configure(this.options.codeBlock)), this.options.document !== !1 && e.push(Ae.configure(this.options.document)), this.options.dropcursor !== !1 && e.push(re.configure(this.options.dropcursor)), this.options.gapcursor !== !1 && e.push(te.configure(this.options.gapcursor)), this.options.hardBreak !== !1 && e.push(je.configure(this.options.hardBreak)), this.options.heading !== !1 && e.push(Me.configure(this.options.heading)), this.options.undoRedo !== !1 && e.push(ie.configure(this.options.undoRedo)), this.options.horizontalRule !== !1 && e.push(Ne.configure(this.options.horizontalRule)), this.options.italic !== !1 && e.push(Re.configure(this.options.italic)), this.options.listItem !== !1 && e.push(oe.configure(this.options.listItem)), this.options.listKeymap !== !1 && e.push(se.configure(this.options?.listKeymap)), this.options.link !== !1 && e.push(Fn.configure(this.options?.link)), this.options.orderedList !== !1 && e.push(ae.configure(this.options.orderedList)), this.options.paragraph !== !1 && e.push(Rn.configure(this.options.paragraph)), this.options.strike !== !1 && e.push(Vn.configure(this.options.strike)), this.options.text !== !1 && e.push(Hn.configure(this.options.text)), this.options.underline !== !1 && e.push(Un.configure(this.options?.underline)), this.options.trailingNode !== !1 && e.push(ne.configure(this.options?.trailingNode)), e;
1637
+ }
1638
+ }), Gn = Wn;
1639
+ //#endregion
1640
+ export { Wn as StarterKit, Gn as default };
1641
+
1642
+ //# sourceMappingURL=index.js.map