@clevertask/scribe 0.1.27 → 0.1.29

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 (57) hide show
  1. package/README.md +4 -2
  2. package/dist/{BarMenu-BGWT4Oyk.js → BarMenu-BC8XoC6e.js} +1 -1
  3. package/dist/assets/index.css +1 -1
  4. package/dist/components/Menu/BarMenu.js +1 -1
  5. package/dist/components/Menu/BubbleMenu.js +2 -2
  6. package/dist/components/Menu/CalloutBubbleMenu.js +2 -2
  7. package/dist/components/Menu/LinkBubbleMenu.js +2 -2
  8. package/dist/components/Menu/Mobile/ListOptionBar.js +1 -1
  9. package/dist/components/Menu/TableBubbleMenu.d.ts.map +1 -1
  10. package/dist/components/Menu/TableBubbleMenu.js +145 -132
  11. package/dist/components/Menu/TableHeightSettings.d.ts +11 -0
  12. package/dist/components/Menu/TableHeightSettings.d.ts.map +1 -0
  13. package/dist/components/Menu/TableHeightSettings.js +156 -0
  14. package/dist/components/Menu/TableLayoutOptions.d.ts +5 -0
  15. package/dist/components/Menu/TableLayoutOptions.d.ts.map +1 -1
  16. package/dist/components/Menu/TableLayoutOptions.js +56 -39
  17. package/dist/components/Menu/linkBubbleMenuPlugin.js +1 -1
  18. package/dist/components/Scribe/extension/callout.js +7 -7
  19. package/dist/components/Scribe/extension/emoji/suggest.js +1 -1
  20. package/dist/components/Scribe/extension/extension-link.js +1 -1
  21. package/dist/components/Scribe/extension/extension-markdown-paste.js +1 -1
  22. package/dist/components/Scribe/extension/extension-selectedText.js +1 -1
  23. package/dist/components/Scribe/extension/external-link-preview/commands.js +1 -1
  24. package/dist/components/Scribe/extension/external-link-preview/index.js +1 -1
  25. package/dist/components/Scribe/extension/external-link-preview/node-view.js +1 -1
  26. package/dist/components/Scribe/extension/external-link-preview/render-html.js +1 -1
  27. package/dist/components/Scribe/extension/external-link-preview/schema.js +1 -1
  28. package/dist/components/Scribe/extension/index.js +1 -1
  29. package/dist/components/Scribe/extension/resizable-table.d.ts +1 -0
  30. package/dist/components/Scribe/extension/resizable-table.d.ts.map +1 -1
  31. package/dist/components/Scribe/extension/resizable-table.js +64 -43
  32. package/dist/components/Scribe/extension/slashCommand/index.js +2 -2
  33. package/dist/components/Scribe/extension/slashCommand/renderItems.js +1 -1
  34. package/dist/components/Scribe/extension/table-layout.d.ts +5 -0
  35. package/dist/components/Scribe/extension/table-layout.d.ts.map +1 -1
  36. package/dist/components/Scribe/extension/table-layout.js +2 -2
  37. package/dist/components/Scribe/extension/tableOfContents.js +1 -1
  38. package/dist/components/Scribe/index.js +4 -4
  39. package/dist/{dist-BiognBi4.js → dist-B0xwy1Q5.js} +175 -154
  40. package/dist/{dist-Dk0fXvrc.js → dist-CDJRm4fL.js} +2 -2
  41. package/dist/{dist-xjmWZ-oh.js → dist-DnVcys79.js} +632 -571
  42. package/dist/document-node-capabilities.d.ts.map +1 -1
  43. package/dist/document-node-capabilities.js +5 -1
  44. package/dist/{extension-CBOxOV0e.js → extension-BPeoqfHR.js} +2 -2
  45. package/dist/{extension-link-DmM_EJTn.js → extension-link-RvaqaDqr.js} +319 -294
  46. package/dist/{html-to-markdown-DZ83bZ9I.js → html-to-markdown-DF93it73.js} +1 -1
  47. package/dist/main.css +2 -1
  48. package/dist/main.js +1 -1
  49. package/dist/{menus-BDXjZsFU.js → menus-scgppp2C.js} +25 -25
  50. package/dist/{schema-extensions-BXyGPwMf.js → schema-extensions-ITR9LEgX.js} +2025 -1898
  51. package/dist/schema-extensions.js +1 -1
  52. package/dist/schema.js +1 -1
  53. package/dist/{table-layout-B3sPDpEF.js → table-layout-iVolql5p.js} +180 -121
  54. package/dist/utils/html-to-markdown.d.ts.map +1 -1
  55. package/dist/utils/html-to-markdown.js +1 -1
  56. package/dist/utils/index.js +3 -3
  57. package/package.json +51 -51
@@ -1,2 +1,2 @@
1
- import { t as e } from "./schema-extensions-BXyGPwMf.js";
1
+ import { t as e } from "./schema-extensions-ITR9LEgX.js";
2
2
  export { e as createScribeSchemaExtensionSet };
package/dist/schema.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ScribeTableTransformError as e, applyScribeTableTransform as t } from "./table-transforms.js";
2
- import { t as n } from "./schema-extensions-BXyGPwMf.js";
2
+ import { t as n } from "./schema-extensions-ITR9LEgX.js";
3
3
  import { SCRIBE_DOCUMENT_NODE_CAPABILITY_ROLES as r, SCRIBE_DOCUMENT_NODE_CONTENT_KINDS as i, createScribeDocumentNodeCapabilityManifest as a, defineScribeDocumentNodeCapability as o } from "./document-node-capabilities.js";
4
4
  //#region lib/schema.ts
5
5
  var s = (e = {}) => Object.values(n(e));
@@ -1,44 +1,52 @@
1
- import { I as e, _ as t, a as n, l as r, m as i, n as a } from "./dist-xjmWZ-oh.js";
2
- import { TextSelection as o } from "@tiptap/pm/state";
3
- import { CellSelection as s, addColumnAfter as c, addColumnBefore as l, addRowAfter as u, addRowBefore as d, columnResizing as f, deleteColumn as p, deleteRow as m, deleteTable as ee, fixTables as h, goToNextCell as g, mergeCells as _, setCellAttr as v, splitCell as y, tableEditing as te, toggleHeader as b, toggleHeaderCell as x } from "@tiptap/pm/tables";
4
- //#region node_modules/.pnpm/@tiptap+extension-table@3.31.3_@tiptap+core@3.31.3_@tiptap+pm@3.31.3__@tiptap+pm@3.31.3/node_modules/@tiptap/extension-table/dist/index.js
5
- function S(e) {
1
+ import { F as e, _ as t, a as n, l as r, m as i, n as a, z as o } from "./dist-DnVcys79.js";
2
+ import { Plugin as s, PluginKey as c, TextSelection as l } from "@tiptap/pm/state";
3
+ import { CellSelection as u, addColumnAfter as d, addColumnBefore as f, addRowAfter as ee, addRowBefore as p, columnResizing as te, deleteColumn as ne, deleteRow as m, deleteTable as re, fixTables as ie, goToNextCell as h, mergeCells as g, setCellAttr as _, splitCell as v, tableEditing as ae, toggleHeader as y, toggleHeaderCell as b } from "@tiptap/pm/tables";
4
+ //#region node_modules/.pnpm/@tiptap+extension-table@3.31.4_@tiptap+core@3.31.4_@tiptap+pm@3.31.4__@tiptap+pm@3.31.4/node_modules/@tiptap/extension-table/dist/index.js
5
+ function x(e) {
6
6
  return e === "left" || e === "right" || e === "center" ? e : null;
7
7
  }
8
- function C(e) {
8
+ function S(e) {
9
9
  let t = (e.style.textAlign || "").trim().toLowerCase(), n = (e.getAttribute("align") || "").trim().toLowerCase();
10
- return S(t || n);
10
+ return x(t || n);
11
11
  }
12
- function w(e) {
13
- return S(e?.align);
12
+ function C(e) {
13
+ return x(e?.align);
14
14
  }
15
- function T() {
15
+ function w() {
16
16
  return {
17
17
  default: null,
18
- parseHTML: (e) => C(e),
19
- renderHTML: (e) => e.align ? { style: `text-align: ${e.align}` } : {}
18
+ parseHTML: (e) => S(e),
19
+ renderHTML: (t) => {
20
+ let n = x(t.align);
21
+ return e(n) ? { style: `text-align: ${n}` } : {};
22
+ }
20
23
  };
21
24
  }
22
- function E(e) {
25
+ function T(e) {
23
26
  let t = e.parentElement, n = e.closest("table");
24
27
  if (!t || !n) return null;
25
28
  let r = Array.from(t.children).indexOf(e), i = n.querySelectorAll("colgroup > col")[r]?.getAttribute("width");
26
29
  return i ? [parseInt(i, 10)] : null;
27
30
  }
28
- function D(e) {
31
+ function E(e) {
29
32
  let t = e.getAttribute("colwidth");
30
- return t ? t.split(",").map((e) => parseInt(e, 10)) : E(e);
33
+ return t ? t.split(",").map((e) => parseInt(e, 10)) : T(e);
31
34
  }
32
- var ne = /[ \t\r\n\f]+/g;
33
- function O(e) {
34
- return e.children.length > 0 ? !1 : (e.textContent ?? "").replace(ne, "") === "";
35
+ var oe = /[ \t\r\n\f]+/g;
36
+ function D(e) {
37
+ return e.children.length > 0 ? !1 : (e.textContent ?? "").replace(oe, "") === "";
35
38
  }
36
- function k(e) {
39
+ function O(e) {
37
40
  let t = e.createAndFill();
38
41
  if (!t) throw Error(`[tiptap error]: "${e.name}" has no default content to backfill.`);
39
42
  return t.content;
40
43
  }
41
- var re = n.create({
44
+ function k(e, t, n) {
45
+ if (!(n in t)) return;
46
+ let r = t[n];
47
+ (r === 1 || r === "1" || r == null) && delete e[n];
48
+ }
49
+ var se = n.create({
42
50
  name: "tableCell",
43
51
  addOptions() {
44
52
  return { HTMLAttributes: {} };
@@ -50,9 +58,9 @@ var re = n.create({
50
58
  rowspan: { default: 1 },
51
59
  colwidth: {
52
60
  default: null,
53
- parseHTML: D
61
+ parseHTML: E
54
62
  },
55
- align: T()
63
+ align: w()
56
64
  };
57
65
  },
58
66
  tableRole: "cell",
@@ -60,14 +68,15 @@ var re = n.create({
60
68
  parseHTML() {
61
69
  return [{
62
70
  tag: "td",
63
- getAttrs: (e) => O(e) ? {} : !1,
64
- getContent: (e, t) => k(t.nodes[this.name])
71
+ getAttrs: (e) => D(e) ? {} : !1,
72
+ getContent: (e, t) => O(t.nodes[this.name])
65
73
  }, { tag: "td" }];
66
74
  },
67
- renderHTML({ HTMLAttributes: t }) {
68
- return [
75
+ renderHTML({ HTMLAttributes: e }) {
76
+ let t = o(this.options.HTMLAttributes, e);
77
+ return k(t, e, "colspan"), k(t, e, "rowspan"), [
69
78
  "td",
70
- e(this.options.HTMLAttributes, t),
79
+ t,
71
80
  0
72
81
  ];
73
82
  }
@@ -83,9 +92,9 @@ var re = n.create({
83
92
  rowspan: { default: 1 },
84
93
  colwidth: {
85
94
  default: null,
86
- parseHTML: D
95
+ parseHTML: E
87
96
  },
88
- align: T()
97
+ align: w()
89
98
  };
90
99
  },
91
100
  tableRole: "header_cell",
@@ -93,14 +102,15 @@ var re = n.create({
93
102
  parseHTML() {
94
103
  return [{
95
104
  tag: "th",
96
- getAttrs: (e) => O(e) ? {} : !1,
97
- getContent: (e, t) => k(t.nodes[this.name])
105
+ getAttrs: (e) => D(e) ? {} : !1,
106
+ getContent: (e, t) => O(t.nodes[this.name])
98
107
  }, { tag: "th" }];
99
108
  },
100
- renderHTML({ HTMLAttributes: t }) {
101
- return [
109
+ renderHTML({ HTMLAttributes: e }) {
110
+ let t = o(this.options.HTMLAttributes, e);
111
+ return k(t, e, "colspan"), k(t, e, "rowspan"), [
102
112
  "th",
103
- e(this.options.HTMLAttributes, t),
113
+ t,
104
114
  0
105
115
  ];
106
116
  }
@@ -114,10 +124,10 @@ var re = n.create({
114
124
  parseHTML() {
115
125
  return [{ tag: "tr" }];
116
126
  },
117
- renderHTML({ HTMLAttributes: t }) {
127
+ renderHTML({ HTMLAttributes: e }) {
118
128
  return [
119
129
  "tr",
120
- e(this.options.HTMLAttributes, t),
130
+ o(this.options.HTMLAttributes, e),
121
131
  0
122
132
  ];
123
133
  }
@@ -213,7 +223,7 @@ function R(e, t, n, r, i) {
213
223
  return a.table.createChecked(null, c);
214
224
  }
215
225
  function z(e) {
216
- return e instanceof s;
226
+ return e instanceof u;
217
227
  }
218
228
  var B = ({ editor: e }) => {
219
229
  let { selection: t } = e.state;
@@ -230,7 +240,7 @@ function V(e, t) {
230
240
  let r = e.doc.nodeAt(n);
231
241
  if (!r) return;
232
242
  let a = n + r.nodeSize - 1;
233
- e.setSelection(o.near(e.doc.resolve(a), -1));
243
+ e.setSelection(l.near(e.doc.resolve(a), -1));
234
244
  }
235
245
  function H(e) {
236
246
  let t = "", n = 0;
@@ -268,47 +278,84 @@ function U(e) {
268
278
  return e.split("\n").map((e) => !e.includes("|") || !e.includes("`") ? e : H(e)).join("\n");
269
279
  }
270
280
  function W(e) {
271
- return (e || "").replace(/\s+/g, " ").trim();
281
+ return (e || "").replaceAll("", " ").replace(/\s+/g, " ").trim();
272
282
  }
273
- function G(e, t, n = {}) {
274
- let r = n.cellLineSeparator ?? "";
283
+ function G(e, t) {
284
+ return t ? e.split(t).join("\n") : e;
285
+ }
286
+ function K(e) {
287
+ return e.replace(/\\.|\|/g, (e) => e === "|" ? "\\|" : e);
288
+ }
289
+ function ce(e, t, n = {}) {
275
290
  if (!e || !e.content || e.content.length === 0) return "";
276
- let i = [];
291
+ let r = [];
277
292
  e.content.forEach((e) => {
278
- let n = [];
293
+ let i = [];
279
294
  e.content && e.content.forEach((e) => {
280
- let i = "";
281
- i = e.content && Array.isArray(e.content) && e.content.length > 1 ? e.content.map((e) => t.renderChildren(e)).join(r) : e.content ? t.renderChildren(e.content) : "";
282
- let a = W(i.split(r).join("\n").replace(/[ \t]*\r?\n[ \t]*/g, "<br>")), o = e.type === "tableHeader", s = w(e.attrs);
283
- n.push({
295
+ let r = "";
296
+ r = e.content && Array.isArray(e.content) && e.content.length > 1 ? e.content.map((e) => G(t.renderChildren(e), n.cellLineSeparator)).join("\n") : G(e.content ? t.renderChildren(e.content) : "", n.cellLineSeparator);
297
+ let a = K(W(r.replace(/[ \t]*\r?\n[ \t]*/g, "<br>"))), o = e.type === "tableHeader", s = C(e.attrs);
298
+ i.push({
284
299
  text: a,
285
300
  isHeader: o,
286
301
  align: s
287
302
  });
288
- }), i.push(n);
303
+ }), r.push(i);
289
304
  });
290
- let a = i.reduce((e, t) => Math.max(e, t.length), 0);
291
- if (a === 0) return "";
292
- let o = Array.from({ length: a }).fill(0);
293
- i.forEach((e) => {
294
- for (let t = 0; t < a; t += 1) {
305
+ let i = r.reduce((e, t) => Math.max(e, t.length), 0);
306
+ if (i === 0) return "";
307
+ let a = Array.from({ length: i }).fill(0);
308
+ r.forEach((e) => {
309
+ for (let t = 0; t < i; t += 1) {
295
310
  let n = (e[t]?.text || "").length;
296
- n > o[t] && (o[t] = n), o[t] < 3 && (o[t] = 3);
311
+ n > a[t] && (a[t] = n), a[t] < 3 && (a[t] = 3);
297
312
  }
298
313
  });
299
- let s = (e, t) => e + " ".repeat(Math.max(0, t - e.length)), c = i[0], l = c.some((e) => e.isHeader), u = Array.from({ length: a }).fill(null);
300
- i.forEach((e) => {
301
- for (let t = 0; t < a; t += 1) !u[t] && e[t]?.align && (u[t] = e[t].align);
314
+ let o = (e, t) => e + " ".repeat(Math.max(0, t - e.length)), s = r[0], c = s.some((e) => e.isHeader), l = Array.from({ length: i }).fill(null);
315
+ r.forEach((e) => {
316
+ for (let t = 0; t < i; t += 1) !l[t] && e[t]?.align && (l[t] = e[t].align);
302
317
  });
303
- let d = "\n", f = Array.from({ length: a }).map((e, t) => l && c[t] && c[t].text || "");
304
- return d += `| ${f.map((e, t) => s(e, o[t])).join(" | ")} |\n`, d += `| ${o.map((e, t) => {
305
- let n = Math.max(3, e), r = u[t];
318
+ let u = "\n", d = Array.from({ length: i }).map((e, t) => c && s[t] && s[t].text || "");
319
+ return u += `| ${d.map((e, t) => o(e, a[t])).join(" | ")} |\n`, u += `| ${a.map((e, t) => {
320
+ let n = Math.max(3, e), r = l[t];
306
321
  return r === "left" ? `:${"-".repeat(n)}` : r === "right" ? `${"-".repeat(n)}:` : r === "center" ? `:${"-".repeat(n)}:` : "-".repeat(n);
307
- }).join(" | ")} |\n`, (l ? i.slice(1) : i).forEach((e) => {
308
- d += `| ${Array.from({ length: a }).fill(0).map((t, n) => s(e[n] && e[n].text || "", o[n])).join(" | ")} |\n`;
309
- }), d;
322
+ }).join(" | ")} |\n`, (c ? r.slice(1) : r).forEach((e) => {
323
+ u += `| ${Array.from({ length: i }).fill(0).map((t, n) => o(e[n] && e[n].text || "", a[n])).join(" | ")} |\n`;
324
+ }), u;
325
+ }
326
+ var le = new c("preserveCellSelectionOnContextMenu");
327
+ function ue(e, t) {
328
+ let n = e.posAtCoords({
329
+ left: t.clientX,
330
+ top: t.clientY
331
+ });
332
+ if (n) return n.pos;
333
+ if (!(t.target instanceof Node)) return null;
334
+ try {
335
+ return e.posAtDOM(t.target, 0);
336
+ } catch {
337
+ return null;
338
+ }
339
+ }
340
+ function de(e, t) {
341
+ let n = !1;
342
+ return e.forEachCell((e, r) => {
343
+ t >= r && t < r + e.nodeSize && (n = !0);
344
+ }), n;
310
345
  }
311
- var K = n.create({
346
+ function fe() {
347
+ return new s({
348
+ key: le,
349
+ props: { handleDOMEvents: { mousedown(e, t) {
350
+ if (t.button !== 2) return !1;
351
+ let { selection: n } = e.state;
352
+ if (!z(n) || n.ranges.length < 2) return !1;
353
+ let r = ue(e, t);
354
+ return r == null || !de(n, r) ? !1 : (t.preventDefault(), !0);
355
+ } } }
356
+ });
357
+ }
358
+ var q = n.create({
312
359
  name: "table",
313
360
  addOptions() {
314
361
  return {
@@ -329,15 +376,15 @@ var K = n.create({
329
376
  parseHTML() {
330
377
  return [{ tag: "table" }];
331
378
  },
332
- renderHTML({ node: t, HTMLAttributes: n }) {
333
- let { colgroup: r, tableWidth: i, tableMinWidth: a } = F(t, this.options.cellMinWidth), o = n.style;
379
+ renderHTML({ node: e, HTMLAttributes: t }) {
380
+ let { colgroup: n, tableWidth: r, tableMinWidth: i } = F(e, this.options.cellMinWidth), a = t.style;
334
381
  function s() {
335
- return o || (i ? `width: ${i}` : `min-width: ${a}`);
382
+ return a || (r ? `width: ${r}` : `min-width: ${i}`);
336
383
  }
337
384
  let c = [
338
385
  "table",
339
- e(this.options.HTMLAttributes, n, { style: s() }),
340
- r,
386
+ o(this.options.HTMLAttributes, t, { style: s() }),
387
+ n,
341
388
  ["tbody", 0]
342
389
  ];
343
390
  return this.options.renderWrapper ? [
@@ -351,7 +398,7 @@ var K = n.create({
351
398
  if (e.header) {
352
399
  let i = [];
353
400
  e.header.forEach((e, n) => {
354
- let a = S(r[n] ?? e.align), o = a ? { align: a } : {};
401
+ let a = x(r[n] ?? e.align), o = a ? { align: a } : {};
355
402
  i.push(t.createNode("tableHeader", o, [{
356
403
  type: "paragraph",
357
404
  content: t.parseInline(e.tokens)
@@ -361,7 +408,7 @@ var K = n.create({
361
408
  return e.rows && e.rows.forEach((e) => {
362
409
  let i = [];
363
410
  e.forEach((e, n) => {
364
- let a = S(r[n] ?? e.align), o = a ? { align: a } : {};
411
+ let a = x(r[n] ?? e.align), o = a ? { align: a } : {};
365
412
  i.push(t.createNode("tableCell", o, [{
366
413
  type: "paragraph",
367
414
  content: t.parseInline(e.tokens)
@@ -369,7 +416,7 @@ var K = n.create({
369
416
  }), n.push(t.createNode("tableRow", {}, i));
370
417
  }), t.createNode("table", void 0, n);
371
418
  },
372
- renderMarkdown: (e, t) => G(e, t),
419
+ renderMarkdown: (e, t) => ce(e, t),
373
420
  markdownTokenizer: {
374
421
  name: "table",
375
422
  level: "block",
@@ -398,43 +445,43 @@ var K = n.create({
398
445
  addCommands() {
399
446
  return {
400
447
  insertTable: ({ rows: e = 3, cols: t = 3, withHeaderRow: n = !0 } = {}) => ({ tr: r, dispatch: i, editor: a }) => {
401
- let s = R(a.schema, e, t, n);
448
+ let o = R(a.schema, e, t, n);
402
449
  if (i) {
403
450
  let e = r.selection.from + 1;
404
- r.replaceSelectionWith(s).scrollIntoView().setSelection(o.near(r.doc.resolve(e)));
451
+ r.replaceSelectionWith(o).scrollIntoView().setSelection(l.near(r.doc.resolve(e)));
405
452
  }
406
453
  return !0;
407
454
  },
408
- addColumnBefore: () => ({ state: e, dispatch: t }) => l(e, t),
409
- addColumnAfter: () => ({ state: e, dispatch: t }) => c(e, t),
455
+ addColumnBefore: () => ({ state: e, dispatch: t }) => f(e, t),
456
+ addColumnAfter: () => ({ state: e, dispatch: t }) => d(e, t),
410
457
  deleteColumn: () => ({ state: e, dispatch: t }) => {
411
458
  let n = i(e.selection.$from, (e) => e.type.name === "table");
412
- return p(e, t && ((e) => {
459
+ return ne(e, t && ((e) => {
413
460
  n && V(e, n.pos), t(e);
414
461
  }));
415
462
  },
416
- addRowBefore: () => ({ state: e, dispatch: t }) => d(e, t),
417
- addRowAfter: () => ({ state: e, dispatch: t }) => u(e, t),
463
+ addRowBefore: () => ({ state: e, dispatch: t }) => p(e, t),
464
+ addRowAfter: () => ({ state: e, dispatch: t }) => ee(e, t),
418
465
  deleteRow: () => ({ state: e, dispatch: t }) => {
419
466
  let n = i(e.selection.$from, (e) => e.type.name === "table");
420
467
  return m(e, t && ((e) => {
421
468
  n && V(e, n.pos), t(e);
422
469
  }));
423
470
  },
424
- deleteTable: () => ({ state: e, dispatch: t }) => ee(e, t),
425
- mergeCells: () => ({ state: e, dispatch: t }) => _(e, t),
426
- splitCell: () => ({ state: e, dispatch: t }) => y(e, t),
427
- toggleHeaderColumn: () => ({ state: e, dispatch: t }) => b("column")(e, t),
428
- toggleHeaderRow: () => ({ state: e, dispatch: t }) => b("row")(e, t),
429
- toggleHeaderCell: () => ({ state: e, dispatch: t }) => x(e, t),
430
- mergeOrSplit: () => ({ state: e, dispatch: t }) => _(e, t) ? !0 : y(e, t),
431
- setCellAttribute: (e, t) => ({ state: n, dispatch: r }) => v(e, t)(n, r),
432
- goToNextCell: () => ({ state: e, dispatch: t }) => g(1)(e, t),
433
- goToPreviousCell: () => ({ state: e, dispatch: t }) => g(-1)(e, t),
434
- fixTables: () => ({ state: e, dispatch: t }) => (t && h(e), !0),
471
+ deleteTable: () => ({ state: e, dispatch: t }) => re(e, t),
472
+ mergeCells: () => ({ state: e, dispatch: t }) => g(e, t),
473
+ splitCell: () => ({ state: e, dispatch: t }) => v(e, t),
474
+ toggleHeaderColumn: () => ({ state: e, dispatch: t }) => y("column")(e, t),
475
+ toggleHeaderRow: () => ({ state: e, dispatch: t }) => y("row")(e, t),
476
+ toggleHeaderCell: () => ({ state: e, dispatch: t }) => b(e, t),
477
+ mergeOrSplit: () => ({ state: e, dispatch: t }) => g(e, t) ? !0 : v(e, t),
478
+ setCellAttribute: (e, t) => ({ state: n, dispatch: r }) => _(e, t)(n, r),
479
+ goToNextCell: () => ({ state: e, dispatch: t }) => h(1)(e, t),
480
+ goToPreviousCell: () => ({ state: e, dispatch: t }) => h(-1)(e, t),
481
+ fixTables: () => ({ state: e, dispatch: t }) => (t && ie(e), !0),
435
482
  setCellSelection: (e) => ({ tr: t, dispatch: n }) => {
436
483
  if (n) {
437
- let n = s.create(t.doc, e.anchorCell, e.headCell);
484
+ let n = u.create(t.doc, e.anchorCell, e.headCell);
438
485
  t.setSelection(n);
439
486
  }
440
487
  return !0;
@@ -452,19 +499,23 @@ var K = n.create({
452
499
  };
453
500
  },
454
501
  addProseMirrorPlugins() {
455
- return [...this.options.resizable && this.editor.isEditable ? [f({
456
- handleWidth: this.options.handleWidth,
457
- cellMinWidth: this.options.cellMinWidth,
458
- defaultCellMinWidth: this.options.cellMinWidth,
459
- View: this.options.View,
460
- lastColumnResizable: this.options.lastColumnResizable
461
- })] : [], te({ allowTableNodeSelection: this.options.allowTableNodeSelection })];
502
+ return [
503
+ ...this.options.resizable && this.editor.isEditable ? [te({
504
+ handleWidth: this.options.handleWidth,
505
+ cellMinWidth: this.options.cellMinWidth,
506
+ defaultCellMinWidth: this.options.cellMinWidth,
507
+ View: this.options.View,
508
+ lastColumnResizable: this.options.lastColumnResizable
509
+ })] : [],
510
+ ae({ allowTableNodeSelection: this.options.allowTableNodeSelection }),
511
+ fe()
512
+ ];
462
513
  },
463
514
  addNodeView() {
464
- let t = this.options.resizable && this.editor.isEditable, n = this.options.View;
465
- return t || !n ? null : ({ node: t, view: r, HTMLAttributes: i }) => {
466
- let a = e(this.options.HTMLAttributes, i);
467
- return new n(t, this.options.cellMinWidth, r, a);
515
+ let e = this.options.resizable && this.editor.isEditable, t = this.options.View;
516
+ return e || !t ? null : ({ node: e, view: n, HTMLAttributes: r }) => {
517
+ let i = o(this.options.HTMLAttributes, r);
518
+ return new t(e, this.options.cellMinWidth, n, i);
468
519
  };
469
520
  },
470
521
  extendNodeSchema(e) {
@@ -475,29 +526,36 @@ var K = n.create({
475
526
  };
476
527
  return { tableRole: r(t(e, "tableRole", n)) };
477
528
  }
478
- }), q = a.create({
529
+ }), pe = a.create({
479
530
  name: "tableKit",
480
531
  addExtensions() {
481
532
  let e = [];
482
- return this.options.table !== !1 && e.push(K.configure(this.options.table)), this.options.tableCell !== !1 && e.push(re.configure(this.options.tableCell)), this.options.tableHeader !== !1 && e.push(A.configure(this.options.tableHeader)), this.options.tableRow !== !1 && e.push(j.configure(this.options.tableRow)), e;
533
+ return this.options.table !== !1 && e.push(q.configure(this.options.table)), this.options.tableCell !== !1 && e.push(se.configure(this.options.tableCell)), this.options.tableHeader !== !1 && e.push(A.configure(this.options.tableHeader)), this.options.tableRow !== !1 && e.push(j.configure(this.options.tableRow)), e;
483
534
  }
484
- }), J = [
535
+ }), me = [
485
536
  "auto",
486
537
  "fit",
487
538
  "scroll"
488
- ], Y = 128, X = (e) => e === "fit" || e === "scroll" ? e : "auto", Z = (e) => {
539
+ ], he = 128, ge = 120, J = 2e3, _e = 360, Y = (e) => {
540
+ let t = typeof e == "string" && /^\d+$/.test(e) ? Number(e) : e;
541
+ return typeof t == "number" && Number.isInteger(t) && t >= 120 && t <= 2e3 ? t : null;
542
+ }, X = (e) => e === "fit" || e === "scroll" ? e : "auto", Z = (e) => {
489
543
  let t = e.firstChild;
490
544
  if (!t || t.childCount === 0) return !1;
491
545
  let n = !0;
492
546
  return t.forEach((e) => {
493
547
  e.type.spec.tableRole !== "header_cell" && (n = !1);
494
548
  }), n;
495
- }, Q = (e) => e.attrs.stickyHeaderRow === !0 && Z(e), $ = (e) => ({
496
- "data-table-layout": X(e.attrs.tableLayout),
497
- "data-table-limit-height": e.attrs.limitHeight === !0 ? "true" : "false",
498
- "data-table-sticky-header-row": e.attrs.stickyHeaderRow === !0 ? "true" : "false",
499
- "data-table-sticky-header-active": Q(e) ? "true" : "false"
500
- }), ie = (e, t) => {
549
+ }, Q = (e) => e.attrs.stickyHeaderRow === !0 && Z(e), $ = (e) => {
550
+ let t = Y(e.attrs.maxHeight);
551
+ return {
552
+ "data-table-layout": X(e.attrs.tableLayout),
553
+ "data-table-limit-height": e.attrs.limitHeight === !0 ? "true" : "false",
554
+ "data-table-sticky-header-row": e.attrs.stickyHeaderRow === !0 ? "true" : "false",
555
+ "data-table-sticky-header-active": Q(e) ? "true" : "false",
556
+ ...t === null ? {} : { "data-table-max-height": String(t) }
557
+ };
558
+ }, ve = (e, t) => {
501
559
  let n = 0, r = [];
502
560
  return e.firstChild?.forEach((e) => {
503
561
  for (let i = 0; i < e.attrs.colspan; i++) {
@@ -512,7 +570,7 @@ var K = n.create({
512
570
  ...r
513
571
  ]
514
572
  };
515
- }, ae = class extends P {
573
+ }, ye = class extends P {
516
574
  constructor(e, t, n) {
517
575
  super(e, t, n), this.applyLayout();
518
576
  }
@@ -520,17 +578,18 @@ var K = n.create({
520
578
  return super.update(e) ? (this.applyLayout(), !0) : !1;
521
579
  }
522
580
  applyLayout() {
523
- let e = X(this.node.attrs.tableLayout);
581
+ let e = X(this.node.attrs.tableLayout), t = Y(this.node.attrs.maxHeight);
582
+ t === null ? (this.dom.removeAttribute("data-table-max-height"), this.table.removeAttribute("data-table-max-height"), this.dom.style.removeProperty("--scribe-table-custom-max-height")) : this.dom.style.setProperty("--scribe-table-custom-max-height", `${t}px`);
524
583
  for (let [e, t] of Object.entries($(this.node))) this.dom.setAttribute(e, t), this.table.setAttribute(e, t);
525
584
  (!Q(this.node) || this.node.attrs.limitHeight === !0) && this.dom.style.removeProperty("--scribe-table-sticky-header-top");
526
- let t = 0, n = 0;
527
- this.node.firstChild?.forEach((r) => {
528
- for (let i = 0; i < r.attrs.colspan; i++, t++) {
529
- let a = r.attrs.colwidth?.[i], o = e === "scroll" ? 128 : this.cellMinWidth, s = this.colgroup.children[t];
530
- s && (s.style.width = a ? `${Math.max(a, this.cellMinWidth)}px` : "", s.style.minWidth = a ? "" : `${o}px`, n += a ? Math.max(a, this.cellMinWidth) : o);
585
+ let n = 0, r = 0;
586
+ this.node.firstChild?.forEach((t) => {
587
+ for (let i = 0; i < t.attrs.colspan; i++, n++) {
588
+ let a = t.attrs.colwidth?.[i], o = e === "scroll" ? 128 : this.cellMinWidth, s = this.colgroup.children[n];
589
+ s && (s.style.width = a ? `${Math.max(a, this.cellMinWidth)}px` : "", s.style.minWidth = a ? "" : `${o}px`, r += a ? Math.max(a, this.cellMinWidth) : o);
531
590
  }
532
- }), e === "scroll" && (this.table.style.width = `${n}px`, this.table.style.minWidth = `${n}px`);
591
+ }), e === "scroll" && (this.table.style.width = `${r}px`, this.table.style.minWidth = `${r}px`);
533
592
  }
534
593
  };
535
594
  //#endregion
536
- export { ie as a, $ as c, X as i, K as l, Y as n, Z as o, ae as r, Q as s, J as t, q as u };
595
+ export { he as a, Y as c, Q as d, $ as f, me as i, ve as l, pe as m, J as n, ye as o, q as p, ge as r, X as s, _e as t, Z as u };
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-markdown.d.ts","sourceRoot":"","sources":["../../lib/utils/html-to-markdown.ts"],"names":[],"mappings":"AA2XA,eAAO,MAAM,OAAO,SAAU,MAAM,WA6CnC,CAAC"}
1
+ {"version":3,"file":"html-to-markdown.d.ts","sourceRoot":"","sources":["../../lib/utils/html-to-markdown.ts"],"names":[],"mappings":"AA4XA,eAAO,MAAM,OAAO,SAAU,MAAM,WA6CnC,CAAC"}
@@ -1,2 +1,2 @@
1
- import { t as e } from "../html-to-markdown-DZ83bZ9I.js";
1
+ import { t as e } from "../html-to-markdown-DF93it73.js";
2
2
  export { e as html2md };
@@ -1,9 +1,9 @@
1
- import { t as e } from "../dist-xjmWZ-oh.js";
2
- import { t } from "../html-to-markdown-DZ83bZ9I.js";
1
+ import { t as e } from "../dist-DnVcys79.js";
2
+ import { t } from "../html-to-markdown-DF93it73.js";
3
3
  import { t as n } from "../markdown-to-html-BoK5O_j-.js";
4
4
  import { isInViewport as r } from "./is-in-viewport.js";
5
5
  import { convertLegacyMathDelimiters as i } from "./convert-legacy-math-delimiters.js";
6
- import { t as a } from "../extension-CBOxOV0e.js";
6
+ import { t as a } from "../extension-BPeoqfHR.js";
7
7
  //#region lib/utils/create-scribe-editor.ts
8
8
  function o({ content: n = "", editable: r = !1, enableUndoRedo: i, externalLinkPreview: o, onContentChange: s }) {
9
9
  return new e({