@clevertask/scribe 0.1.29 → 0.1.31

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 (94) hide show
  1. package/README.md +39 -53
  2. package/dist/BarMenu-Bm5IfWVV.js +302 -0
  3. package/dist/components/Menu/BarMenu.d.ts.map +1 -1
  4. package/dist/components/Menu/BarMenu.js +1 -2
  5. package/dist/components/Menu/BubbleMenu.js +2 -2
  6. package/dist/components/Menu/CalloutBubbleMenu.js +2 -2
  7. package/dist/components/Menu/LinkBubbleMenu.d.ts.map +1 -1
  8. package/dist/components/Menu/LinkBubbleMenu.js +113 -103
  9. package/dist/components/Menu/LinkEditor.d.ts +0 -7
  10. package/dist/components/Menu/LinkEditor.d.ts.map +1 -1
  11. package/dist/components/Menu/LinkEditor.js +148 -157
  12. package/dist/components/Menu/Mobile/ListOptionBar.js +1 -1
  13. package/dist/components/Menu/TableBubbleMenu.js +3 -3
  14. package/dist/components/Menu/TableHeightSettings.js +3 -11
  15. package/dist/components/Menu/TableLayoutOptions.js +1 -5
  16. package/dist/components/Menu/linkBubbleMenuPlugin.d.ts.map +1 -1
  17. package/dist/components/Menu/linkBubbleMenuPlugin.js +9 -5
  18. package/dist/components/Scribe/extension/callout.js +7 -7
  19. package/dist/components/Scribe/extension/emoji/suggest.js +2 -2
  20. package/dist/components/Scribe/extension/extension-link.js +1 -2
  21. package/dist/components/Scribe/extension/extension-markdown-paste.js +2 -2
  22. package/dist/components/Scribe/extension/extension-selectedText.js +1 -1
  23. package/dist/components/Scribe/extension/external-link-preview/attributes.d.ts +0 -7
  24. package/dist/components/Scribe/extension/external-link-preview/attributes.d.ts.map +1 -1
  25. package/dist/components/Scribe/extension/external-link-preview/attributes.js +26 -51
  26. package/dist/components/Scribe/extension/external-link-preview/commands.d.ts +5 -12
  27. package/dist/components/Scribe/extension/external-link-preview/commands.d.ts.map +1 -1
  28. package/dist/components/Scribe/extension/external-link-preview/commands.js +56 -121
  29. package/dist/components/Scribe/extension/external-link-preview/index.d.ts +4 -6
  30. package/dist/components/Scribe/extension/external-link-preview/index.d.ts.map +1 -1
  31. package/dist/components/Scribe/extension/external-link-preview/index.js +5 -41
  32. package/dist/components/Scribe/extension/external-link-preview/render-html.d.ts +1 -0
  33. package/dist/components/Scribe/extension/external-link-preview/render-html.d.ts.map +1 -1
  34. package/dist/components/Scribe/extension/external-link-preview/render-html.js +17 -60
  35. package/dist/components/Scribe/extension/external-link-preview/schema.d.ts +2 -2
  36. package/dist/components/Scribe/extension/external-link-preview/schema.js +1 -1
  37. package/dist/components/Scribe/extension/external-link-preview/serialization.d.ts.map +1 -1
  38. package/dist/components/Scribe/extension/external-link-preview/serialization.js +29 -51
  39. package/dist/components/Scribe/extension/external-link-preview/types.d.ts +14 -17
  40. package/dist/components/Scribe/extension/external-link-preview/types.d.ts.map +1 -1
  41. package/dist/components/Scribe/extension/index.js +1 -2
  42. package/dist/components/Scribe/extension/resizable-table.js +2 -2
  43. package/dist/components/Scribe/extension/slashCommand/SlashCommandList.js +10 -14
  44. package/dist/components/Scribe/extension/slashCommand/index.js +2 -2
  45. package/dist/components/Scribe/extension/slashCommand/renderItems.js +2 -2
  46. package/dist/components/Scribe/extension/table-layout.js +1 -2
  47. package/dist/components/Scribe/extension/tableOfContents.js +1 -1
  48. package/dist/components/Scribe/index.d.ts +3 -9
  49. package/dist/components/Scribe/index.d.ts.map +1 -1
  50. package/dist/components/Scribe/index.js +7 -21
  51. package/dist/{dist-DnVcys79.js → dist-BoAzo5MN.js} +491 -598
  52. package/dist/{dist-CDJRm4fL.js → dist-BqlzKS-_.js} +9 -17
  53. package/dist/{dist-B0xwy1Q5.js → dist-SM4NoN4h.js} +174 -385
  54. package/dist/document-node-capabilities.js +1 -1
  55. package/dist/{extension-BPeoqfHR.js → extension-dz0CIf3r.js} +1 -1
  56. package/dist/extension-link-DxIXGCtV.js +931 -0
  57. package/dist/{html-to-markdown-DF93it73.js → html-to-markdown-DeRG9OPm.js} +1 -1
  58. package/dist/main.css +1 -141
  59. package/dist/main.js +2 -2
  60. package/dist/{markdown-to-html-BoK5O_j-.js → markdown-to-html-tCPjQ5u6.js} +23 -70
  61. package/dist/{menus-scgppp2C.js → menus-BKxcTUsl.js} +36 -118
  62. package/dist/{purify.es-q6CUdJQi.js → purify.es-CSWcs7f1.js} +1 -23
  63. package/dist/{schema-extensions-ITR9LEgX.js → schema-extensions-B9hR1VrD.js} +1335 -1360
  64. package/dist/schema-extensions.js +1 -2
  65. package/dist/schema.js +1 -1
  66. package/dist/{table-layout-iVolql5p.js → table-layout-ClqaGg1E.js} +36 -36
  67. package/dist/{tippy.esm-MjWnmeEn.js → tippy.esm-C8V6GlaF.js} +5 -17
  68. package/dist/utils/create-scribe-editor.d.ts +1 -1
  69. package/dist/utils/create-scribe-editor.d.ts.map +1 -1
  70. package/dist/utils/create-scribe-editor.js +1 -2
  71. package/dist/utils/html-to-markdown.js +1 -2
  72. package/dist/utils/index.js +4 -4
  73. package/dist/utils/markdown-to-html.js +1 -2
  74. package/package.json +10 -10
  75. package/dist/BarMenu-BC8XoC6e.js +0 -302
  76. package/dist/components/Menu/ExternalLinkDisplayOptions.d.ts +0 -13
  77. package/dist/components/Menu/ExternalLinkDisplayOptions.d.ts.map +0 -1
  78. package/dist/components/Menu/ExternalLinkDisplayOptions.js +0 -90
  79. package/dist/components/Scribe/extension/external-link-preview/node-view.d.ts +0 -3
  80. package/dist/components/Scribe/extension/external-link-preview/node-view.d.ts.map +0 -1
  81. package/dist/components/Scribe/extension/external-link-preview/node-view.js +0 -97
  82. package/dist/components/Scribe/extension/external-link-preview/normalization.d.ts +0 -7
  83. package/dist/components/Scribe/extension/external-link-preview/normalization.d.ts.map +0 -1
  84. package/dist/components/Scribe/extension/external-link-preview/normalization.js +0 -21
  85. package/dist/components/Scribe/extension/external-link-preview/paste.d.ts +0 -8
  86. package/dist/components/Scribe/extension/external-link-preview/paste.d.ts.map +0 -1
  87. package/dist/components/Scribe/extension/external-link-preview/paste.js +0 -53
  88. package/dist/components/Scribe/extension/external-link-preview/policy.d.ts +0 -7
  89. package/dist/components/Scribe/extension/external-link-preview/policy.d.ts.map +0 -1
  90. package/dist/components/Scribe/extension/external-link-preview/policy.js +0 -38
  91. package/dist/components/Scribe/extension/external-link-preview/resolver.d.ts +0 -23
  92. package/dist/components/Scribe/extension/external-link-preview/resolver.d.ts.map +0 -1
  93. package/dist/components/Scribe/extension/external-link-preview/resolver.js +0 -118
  94. package/dist/extension-link-RvaqaDqr.js +0 -934
@@ -1,2 +1 @@
1
- import { t as e } from "./schema-extensions-ITR9LEgX.js";
2
- export { e as createScribeSchemaExtensionSet };
1
+ export { t as createScribeSchemaExtensionSet } from "./schema-extensions-B9hR1VrD.js";
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-ITR9LEgX.js";
2
+ import { t as n } from "./schema-extensions-B9hR1VrD.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,4 +1,4 @@
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";
1
+ import { B as e, I as t, _ as n, a as r, c as i, m as a, n as o } from "./dist-BoAzo5MN.js";
2
2
  import { Plugin as s, PluginKey as c, TextSelection as l } from "@tiptap/pm/state";
3
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
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
@@ -16,9 +16,9 @@ function w() {
16
16
  return {
17
17
  default: null,
18
18
  parseHTML: (e) => S(e),
19
- renderHTML: (t) => {
20
- let n = x(t.align);
21
- return e(n) ? { style: `text-align: ${n}` } : {};
19
+ renderHTML: (e) => {
20
+ let n = x(e.align);
21
+ return t(n) ? { style: `text-align: ${n}` } : {};
22
22
  }
23
23
  };
24
24
  }
@@ -46,7 +46,7 @@ function k(e, t, n) {
46
46
  let r = t[n];
47
47
  (r === 1 || r === "1" || r == null) && delete e[n];
48
48
  }
49
- var se = n.create({
49
+ var se = r.create({
50
50
  name: "tableCell",
51
51
  addOptions() {
52
52
  return { HTMLAttributes: {} };
@@ -72,15 +72,15 @@ var se = n.create({
72
72
  getContent: (e, t) => O(t.nodes[this.name])
73
73
  }, { tag: "td" }];
74
74
  },
75
- renderHTML({ HTMLAttributes: e }) {
76
- let t = o(this.options.HTMLAttributes, e);
77
- return k(t, e, "colspan"), k(t, e, "rowspan"), [
75
+ renderHTML({ HTMLAttributes: t }) {
76
+ let n = e(this.options.HTMLAttributes, t);
77
+ return k(n, t, "colspan"), k(n, t, "rowspan"), [
78
78
  "td",
79
- t,
79
+ n,
80
80
  0
81
81
  ];
82
82
  }
83
- }), A = n.create({
83
+ }), A = r.create({
84
84
  name: "tableHeader",
85
85
  addOptions() {
86
86
  return { HTMLAttributes: {} };
@@ -106,15 +106,15 @@ var se = n.create({
106
106
  getContent: (e, t) => O(t.nodes[this.name])
107
107
  }, { tag: "th" }];
108
108
  },
109
- renderHTML({ HTMLAttributes: e }) {
110
- let t = o(this.options.HTMLAttributes, e);
111
- return k(t, e, "colspan"), k(t, e, "rowspan"), [
109
+ renderHTML({ HTMLAttributes: t }) {
110
+ let n = e(this.options.HTMLAttributes, t);
111
+ return k(n, t, "colspan"), k(n, t, "rowspan"), [
112
112
  "th",
113
- t,
113
+ n,
114
114
  0
115
115
  ];
116
116
  }
117
- }), j = n.create({
117
+ }), j = r.create({
118
118
  name: "tableRow",
119
119
  addOptions() {
120
120
  return { HTMLAttributes: {} };
@@ -124,10 +124,10 @@ var se = n.create({
124
124
  parseHTML() {
125
125
  return [{ tag: "tr" }];
126
126
  },
127
- renderHTML({ HTMLAttributes: e }) {
127
+ renderHTML({ HTMLAttributes: t }) {
128
128
  return [
129
129
  "tr",
130
- o(this.options.HTMLAttributes, e),
130
+ e(this.options.HTMLAttributes, t),
131
131
  0
132
132
  ];
133
133
  }
@@ -229,18 +229,18 @@ var B = ({ editor: e }) => {
229
229
  let { selection: t } = e.state;
230
230
  if (!z(t)) return !1;
231
231
  let n = 0;
232
- return i(t.ranges[0].$from, (e) => e.type.name === "table")?.node.descendants((e) => {
232
+ return a(t.ranges[0].$from, (e) => e.type.name === "table")?.node.descendants((e) => {
233
233
  if (e.type.name === "table") return !1;
234
234
  ["tableCell", "tableHeader"].includes(e.type.name) && (n += 1);
235
235
  }), n === t.ranges.length && (e.commands.deleteTable(), !0);
236
236
  };
237
237
  function V(e, t) {
238
238
  let n = e.mapping.map(t);
239
- if (i(e.selection.$from, (e) => e.type.name === "table")?.pos === n) return;
239
+ if (a(e.selection.$from, (e) => e.type.name === "table")?.pos === n) return;
240
240
  let r = e.doc.nodeAt(n);
241
241
  if (!r) return;
242
- let a = n + r.nodeSize - 1;
243
- e.setSelection(l.near(e.doc.resolve(a), -1));
242
+ let i = n + r.nodeSize - 1;
243
+ e.setSelection(l.near(e.doc.resolve(i), -1));
244
244
  }
245
245
  function H(e) {
246
246
  let t = "", n = 0;
@@ -355,7 +355,7 @@ function fe() {
355
355
  } } }
356
356
  });
357
357
  }
358
- var q = n.create({
358
+ var q = r.create({
359
359
  name: "table",
360
360
  addOptions() {
361
361
  return {
@@ -376,15 +376,15 @@ var q = n.create({
376
376
  parseHTML() {
377
377
  return [{ tag: "table" }];
378
378
  },
379
- renderHTML({ node: e, HTMLAttributes: t }) {
380
- let { colgroup: n, tableWidth: r, tableMinWidth: i } = F(e, this.options.cellMinWidth), a = t.style;
379
+ renderHTML({ node: t, HTMLAttributes: n }) {
380
+ let { colgroup: r, tableWidth: i, tableMinWidth: a } = F(t, this.options.cellMinWidth), o = n.style;
381
381
  function s() {
382
- return a || (r ? `width: ${r}` : `min-width: ${i}`);
382
+ return o || (i ? `width: ${i}` : `min-width: ${a}`);
383
383
  }
384
384
  let c = [
385
385
  "table",
386
- o(this.options.HTMLAttributes, t, { style: s() }),
387
- n,
386
+ e(this.options.HTMLAttributes, n, { style: s() }),
387
+ r,
388
388
  ["tbody", 0]
389
389
  ];
390
390
  return this.options.renderWrapper ? [
@@ -455,7 +455,7 @@ var q = n.create({
455
455
  addColumnBefore: () => ({ state: e, dispatch: t }) => f(e, t),
456
456
  addColumnAfter: () => ({ state: e, dispatch: t }) => d(e, t),
457
457
  deleteColumn: () => ({ state: e, dispatch: t }) => {
458
- let n = i(e.selection.$from, (e) => e.type.name === "table");
458
+ let n = a(e.selection.$from, (e) => e.type.name === "table");
459
459
  return ne(e, t && ((e) => {
460
460
  n && V(e, n.pos), t(e);
461
461
  }));
@@ -463,7 +463,7 @@ var q = n.create({
463
463
  addRowBefore: () => ({ state: e, dispatch: t }) => p(e, t),
464
464
  addRowAfter: () => ({ state: e, dispatch: t }) => ee(e, t),
465
465
  deleteRow: () => ({ state: e, dispatch: t }) => {
466
- let n = i(e.selection.$from, (e) => e.type.name === "table");
466
+ let n = a(e.selection.$from, (e) => e.type.name === "table");
467
467
  return m(e, t && ((e) => {
468
468
  n && V(e, n.pos), t(e);
469
469
  }));
@@ -512,21 +512,21 @@ var q = n.create({
512
512
  ];
513
513
  },
514
514
  addNodeView() {
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);
515
+ let t = this.options.resizable && this.editor.isEditable, n = this.options.View;
516
+ return t || !n ? null : ({ node: t, view: r, HTMLAttributes: i }) => {
517
+ let a = e(this.options.HTMLAttributes, i);
518
+ return new n(t, this.options.cellMinWidth, r, a);
519
519
  };
520
520
  },
521
521
  extendNodeSchema(e) {
522
- let n = {
522
+ let t = {
523
523
  name: e.name,
524
524
  options: e.options,
525
525
  storage: e.storage
526
526
  };
527
- return { tableRole: r(t(e, "tableRole", n)) };
527
+ return { tableRole: i(n(e, "tableRole", t)) };
528
528
  }
529
- }), pe = a.create({
529
+ }), pe = o.create({
530
530
  name: "tableKit",
531
531
  addExtensions() {
532
532
  let e = [];
@@ -899,11 +899,8 @@ function Ye(e) {
899
899
  }, i.reset = !1, i.placement = i.options.placement, i.orderedModifiers.forEach(function(e) {
900
900
  return i.modifiersData[e.name] = Object.assign({}, e.data);
901
901
  });
902
- for (var r = 0; r < i.orderedModifiers.length; r++) {
903
- if (i.reset === !0) {
904
- i.reset = !1, r = -1;
905
- continue;
906
- }
902
+ for (var r = 0; r < i.orderedModifiers.length; r++) if (i.reset === !0) i.reset = !1, r = -1;
903
+ else {
907
904
  var a = i.orderedModifiers[r], o = a.fn, l = a.options, u = l === void 0 ? {} : l, d = a.name;
908
905
  typeof o == "function" && (i = o({
909
906
  state: i,
@@ -1472,13 +1469,7 @@ function on(e, t) {
1472
1469
  }).filter(Boolean), e) && (I(), le(e));
1473
1470
  }
1474
1471
  function ie(e) {
1475
- if (!(oe(e) || y.props.trigger.indexOf("click") >= 0 && o)) {
1476
- if (y.props.interactive) {
1477
- y.hideWithInteractivity(e);
1478
- return;
1479
- }
1480
- le(e);
1481
- }
1472
+ oe(e) || y.props.trigger.indexOf("click") >= 0 && o || (y.props.interactive ? y.hideWithInteractivity(e) : le(e));
1482
1473
  }
1483
1474
  function ae(e) {
1484
1475
  y.props.trigger.indexOf("focusin") < 0 && e.target !== O() || y.props.interactive && e.relatedTarget && x.contains(e.relatedTarget) || le(e);
@@ -1577,11 +1568,8 @@ function on(e, t) {
1577
1568
  }, t) : y.show();
1578
1569
  }
1579
1570
  function le(e) {
1580
- if (y.clearDelayTimeouts(), N("onUntrigger", [y, e]), !y.state.isVisible) {
1581
- B();
1582
- return;
1583
- }
1584
- if (!(y.props.trigger.indexOf("mouseenter") >= 0 && y.props.trigger.indexOf("click") >= 0 && ["mouseleave", "mousemove"].indexOf(e.type) >= 0 && o)) {
1571
+ if (y.clearDelayTimeouts(), N("onUntrigger", [y, e]), !y.state.isVisible) B();
1572
+ else if (!(y.props.trigger.indexOf("mouseenter") >= 0 && y.props.trigger.indexOf("click") >= 0 && ["mouseleave", "mousemove"].indexOf(e.type) >= 0 && o)) {
1585
1573
  var t = j(!1);
1586
1574
  t ? i = setTimeout(function() {
1587
1575
  y.state.isVisible && y.hide();
@@ -8,7 +8,7 @@ export type CreateEditorOptions = {
8
8
  * extension owns history for the editor.
9
9
  */
10
10
  enableUndoRedo?: boolean;
11
- /** @experimental The link-preview API and built-in UI may change while this feature is tested. */
11
+ /** @deprecated Legacy node compatibility. Resolver, policy and automatic preview options are ignored. */
12
12
  externalLinkPreview?: Partial<ExternalLinkPreviewOptions>;
13
13
  onContentChange?: (content: {
14
14
  htmlContent: string;
@@ -1 +1 @@
1
- {"version":3,"file":"create-scribe-editor.d.ts","sourceRoot":"","sources":["../../lib/utils/create-scribe-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAEvG,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,mBAAmB,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC1D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,WAAW,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,OAAY,EACZ,QAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,GAChB,EAAE,mBAAmB,GAAG,MAAM,CAoB9B"}
1
+ {"version":3,"file":"create-scribe-editor.d.ts","sourceRoot":"","sources":["../../lib/utils/create-scribe-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAEvG,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yGAAyG;IACzG,mBAAmB,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC1D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,WAAW,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,OAAY,EACZ,QAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,GAChB,EAAE,mBAAmB,GAAG,MAAM,CAoB9B"}
@@ -1,2 +1 @@
1
- import { createScribeEditor as e } from "./index.js";
2
- export { e as createScribeEditor };
1
+ export { createScribeEditor } from "./index.js";
@@ -1,2 +1 @@
1
- import { t as e } from "../html-to-markdown-DF93it73.js";
2
- export { e as html2md };
1
+ export { t as html2md } from "../html-to-markdown-DeRG9OPm.js";
@@ -1,9 +1,9 @@
1
- import { t as e } from "../dist-DnVcys79.js";
2
- import { t } from "../html-to-markdown-DF93it73.js";
3
- import { t as n } from "../markdown-to-html-BoK5O_j-.js";
1
+ import { t as e } from "../dist-BoAzo5MN.js";
2
+ import { t } from "../html-to-markdown-DeRG9OPm.js";
3
+ import { t as n } from "../markdown-to-html-tCPjQ5u6.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-BPeoqfHR.js";
6
+ import { t as a } from "../extension-dz0CIf3r.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({
@@ -1,2 +1 @@
1
- import { t as e } from "../markdown-to-html-BoK5O_j-.js";
2
- export { e as md2html };
1
+ export { t as md2html } from "../markdown-to-html-tCPjQ5u6.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clevertask/scribe",
3
- "version": "0.1.29",
3
+ "version": "0.1.31",
4
4
  "private": false,
5
5
  "description": "A Radix-based Tiptap rich text editor with a Notion-style block interface for viewing and creating content. Perfect for diverse needs like notes, documents, AI chat, Markdown parsing, and comments.",
6
6
  "keywords": [
@@ -58,12 +58,12 @@
58
58
  "clsx": "^2.1.1",
59
59
  "dompurify": "^3.4.16",
60
60
  "katex": "^0.19.0",
61
- "marked": "^18.0.14",
61
+ "marked": "^18.1.0",
62
62
  "tippy.js": "^6.3.7",
63
63
  "turndown": "^7.2.4"
64
64
  },
65
65
  "devDependencies": {
66
- "@playwright/test": "^1.63.0",
66
+ "@playwright/test": "^1.64.0",
67
67
  "@radix-ui/themes": "^3.3.0",
68
68
  "@testing-library/dom": "^10.4.2",
69
69
  "@testing-library/jest-dom": "^7.0.1",
@@ -106,19 +106,19 @@
106
106
  "@tiptap/html": "3.31.4",
107
107
  "@tiptap/pm": "3.31.4",
108
108
  "@tiptap/starter-kit": "3.31.4",
109
- "@types/lodash": "^4.17.25",
110
- "@types/node": "^24.19.1",
109
+ "@types/lodash": "^4.17.26",
110
+ "@types/node": "^24.19.2",
111
111
  "@types/react": "^19.3.0",
112
112
  "@types/react-dom": "^19.3.0",
113
113
  "@types/turndown": "^5.0.6",
114
- "@vitejs/plugin-react": "^6.1.1",
114
+ "@vitejs/plugin-react": "^6.1.2",
115
115
  "glob": "^13.0.6",
116
- "jsdom": "^30.1.1",
116
+ "jsdom": "^30.1.2",
117
117
  "lodash": "^4.18.1",
118
- "oxfmt": "^0.71.0",
119
- "oxlint": "^1.86.0",
118
+ "oxfmt": "^0.72.0",
119
+ "oxlint": "^1.87.0",
120
120
  "typescript": "~7.0.2",
121
- "vite": "^8.3.2",
121
+ "vite": "^8.3.4",
122
122
  "vite-plugin-lib-inject-css": "^2.2.2",
123
123
  "vitest": "^5.0.3"
124
124
  },
@@ -1,302 +0,0 @@
1
- import { s as e } from "./dist-B0xwy1Q5.js";
2
- import { getPopupMountTarget as t } from "./components/Scribe/extension/getPopupMountTarget.js";
3
- import n from "./components/Menu/LinkEditor.js";
4
- import { hideLinkBubbleMenu as r } from "./components/Menu/linkBubbleMenuPlugin.js";
5
- import { BlockQuoteIcon as i, BoldIcon as a, CodeBlockIcon as o, HighlightIcon as s, HorizontalLineIcon as c, ImageIcon as l, InlineCodeIcon as u, ItalicIcon as d, LinkIcon as f, OrderedListIcon as p, StrikeIcon as m, UnorderedListIcon as h } from "./icons/ToolbarIcons.js";
6
- import { Box as g, Button as _, Flex as v, IconButton as y, Popover as b, Separator as x, Text as S, TextField as C } from "@radix-ui/themes";
7
- import { Fragment as w, useCallback as T, useState as E } from "react";
8
- import { jsx as D, jsxs as O } from "react/jsx-runtime";
9
- //#region node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
10
- function k(e) {
11
- var t, n, r = "";
12
- if (typeof e == "string" || typeof e == "number") r += e;
13
- else if (typeof e == "object") {
14
- if (Array.isArray(e)) {
15
- var i = e.length;
16
- for (t = 0; t < i; t++) e[t] && (n = k(e[t])) && (r && (r += " "), r += n);
17
- } else for (n in e) e[n] && (r && (r += " "), r += n);
18
- }
19
- return r;
20
- }
21
- function A() {
22
- for (var e, t, n = 0, r = "", i = arguments.length; n < i; n++) (e = arguments[n]) && (t = k(e)) && (r && (r += " "), r += t);
23
- return r;
24
- }
25
- //#endregion
26
- //#region lib/components/Menu/BarMenu.tsx
27
- var j = ({ editor: k }) => {
28
- let [j, M] = E(!1), [N, P] = E(!1), [F, I] = E(""), [L, R] = E(""), z = t(k), B = e({
29
- editor: k,
30
- selector: ({ editor: e }) => e ? {
31
- isBold: e.isActive("bold"),
32
- isItalic: e.isActive("italic"),
33
- isStrike: e.isActive("strike"),
34
- isCode: e.isActive("code"),
35
- isHighlight: e.isActive("highlight"),
36
- isBulletList: e.isActive("bulletList"),
37
- isOrderedList: e.isActive("orderedList"),
38
- isLink: e.isActive("link"),
39
- isImage: e.isActive("image"),
40
- isCodeBlock: e.isActive("codeBlock"),
41
- isBlockquote: e.isActive("blockquote")
42
- } : null
43
- }), V = T((e) => {
44
- if (e) {
45
- r(k);
46
- let e = k.getAttributes("link").href ?? "";
47
- I(e), P(!1);
48
- }
49
- M(e);
50
- }, [k]), H = T((e) => {
51
- if (e) {
52
- r(k);
53
- let e = k.getAttributes("image").src ?? "";
54
- R(e), M(!1);
55
- }
56
- P(e);
57
- }, [k]), U = T(() => {
58
- let e = L.trim();
59
- e && (k.chain().focus().setImage({ src: e }).run(), P(!1));
60
- }, [k, L]), W = T((e) => {
61
- e.preventDefault();
62
- }, []), G = T(({ target: { value: e } }) => {
63
- R(e);
64
- }, []), K = [
65
- [
66
- {
67
- name: "bold",
68
- icon: a,
69
- command: () => k.chain().focus().toggleBold().run(),
70
- isActive: () => !!B?.isBold,
71
- isToggle: !0,
72
- label: "Bold"
73
- },
74
- {
75
- name: "italic",
76
- icon: d,
77
- command: () => k.chain().focus().toggleItalic().run(),
78
- isActive: () => !!B?.isItalic,
79
- isToggle: !0,
80
- label: "Italic"
81
- },
82
- {
83
- name: "strike",
84
- icon: m,
85
- command: () => k.chain().focus().toggleStrike().run(),
86
- isActive: () => !!B?.isStrike,
87
- isToggle: !0,
88
- label: "Strikethrough"
89
- }
90
- ],
91
- [{
92
- name: "inline-code",
93
- icon: u,
94
- command: () => k.chain().focus().toggleCode().run(),
95
- isActive: () => !!B?.isCode,
96
- isToggle: !0,
97
- label: "Inline code"
98
- }, {
99
- name: "highlight",
100
- icon: s,
101
- command: () => k.chain().focus().toggleHighlight().run(),
102
- isActive: () => !!B?.isHighlight,
103
- isToggle: !0,
104
- label: "Highlight"
105
- }],
106
- [{
107
- name: "unordered-list",
108
- icon: h,
109
- command: () => k.chain().focus().toggleBulletList().run(),
110
- isActive: () => !!B?.isBulletList,
111
- isToggle: !0,
112
- label: "Bulleted list"
113
- }, {
114
- name: "ordered-list",
115
- icon: p,
116
- command: () => k.chain().focus().toggleOrderedList().run(),
117
- isActive: () => !!B?.isOrderedList,
118
- isToggle: !0,
119
- label: "Numbered list"
120
- }],
121
- [
122
- {
123
- name: "link",
124
- icon: f,
125
- isActive: () => !!B?.isLink,
126
- label: "Link",
127
- popover: "link"
128
- },
129
- {
130
- name: "image",
131
- icon: l,
132
- isActive: () => !!B?.isImage,
133
- disabled: !1,
134
- label: "Insert image",
135
- popover: "image"
136
- },
137
- {
138
- name: "code-block",
139
- icon: o,
140
- command: () => k.chain().focus().toggleCodeBlock().run(),
141
- isActive: () => !!B?.isCodeBlock,
142
- isToggle: !0,
143
- label: "Code block"
144
- },
145
- {
146
- name: "block-quote",
147
- icon: i,
148
- command: () => k.chain().focus().toggleBlockquote().run(),
149
- isActive: () => !!B?.isBlockquote,
150
- isToggle: !0,
151
- label: "Block quote"
152
- },
153
- {
154
- name: "horizontal-line",
155
- icon: c,
156
- command: () => k.chain().focus().setHorizontalRule().run(),
157
- isActive: () => !1,
158
- label: "Horizontal rule"
159
- }
160
- ]
161
- ];
162
- return /* @__PURE__ */ D(g, {
163
- className: "scribe-toolbar",
164
- role: "toolbar",
165
- "aria-label": "Text formatting",
166
- children: /* @__PURE__ */ D(v, {
167
- align: "center",
168
- gap: "3",
169
- wrap: "wrap",
170
- children: K.map((e, t) => /* @__PURE__ */ O(w, { children: [/* @__PURE__ */ D(v, {
171
- align: "center",
172
- gap: "2",
173
- wrap: "wrap",
174
- children: e.map((e, t) => e.popover === "link" ? /* @__PURE__ */ O(b.Root, {
175
- open: j,
176
- onOpenChange: V,
177
- children: [/* @__PURE__ */ D(b.Trigger, { children: /* @__PURE__ */ D(y, {
178
- type: "button",
179
- "aria-label": e.label,
180
- radius: "medium",
181
- color: "gray",
182
- variant: e.isActive() ? "soft" : "ghost",
183
- disabled: e.disabled || !k.isEditable,
184
- title: e.label,
185
- onMouseDown: W,
186
- className: A(e.disabled && "scribe-toolbar-button--disabled"),
187
- children: /* @__PURE__ */ D(e.icon, { className: "scribe-toolbar-icon" })
188
- }) }), /* @__PURE__ */ D(b.Content, {
189
- "aria-label": "Link settings",
190
- container: z,
191
- size: "2",
192
- side: "bottom",
193
- align: "start",
194
- style: {
195
- maxWidth: "calc(100vw - 32px)",
196
- width: 320
197
- },
198
- children: /* @__PURE__ */ D(n, {
199
- editor: k,
200
- existingHref: k.getAttributes("link").href ?? "",
201
- onClose: () => M(!1),
202
- onValueChange: I,
203
- selectTextblockEndAfterSave: !0,
204
- value: F
205
- })
206
- })]
207
- }, `${e.name}-${t}`) : e.popover === "image" ? /* @__PURE__ */ O(b.Root, {
208
- open: N,
209
- onOpenChange: H,
210
- children: [/* @__PURE__ */ D(b.Trigger, { children: /* @__PURE__ */ D(y, {
211
- type: "button",
212
- "aria-label": e.label,
213
- radius: "medium",
214
- color: "gray",
215
- variant: e.isActive() ? "soft" : "ghost",
216
- disabled: e.disabled || !k.isEditable,
217
- title: e.label,
218
- onMouseDown: W,
219
- className: A(e.disabled && "scribe-toolbar-button--disabled"),
220
- children: /* @__PURE__ */ D(e.icon, { className: "scribe-toolbar-icon" })
221
- }) }), /* @__PURE__ */ D(b.Content, {
222
- "aria-label": "Insert image",
223
- container: z,
224
- size: "2",
225
- side: "bottom",
226
- align: "start",
227
- style: {
228
- maxWidth: "calc(100vw - 32px)",
229
- width: 320
230
- },
231
- children: /* @__PURE__ */ O(v, {
232
- direction: "column",
233
- gap: "4",
234
- children: [
235
- /* @__PURE__ */ O(g, { children: [/* @__PURE__ */ D(S, {
236
- as: "p",
237
- size: "3",
238
- weight: "medium",
239
- children: "Image"
240
- }), /* @__PURE__ */ D(S, {
241
- as: "p",
242
- size: "2",
243
- color: "gray",
244
- children: "Insert an image from a URL."
245
- })] }),
246
- /* @__PURE__ */ D("label", { children: /* @__PURE__ */ O(v, {
247
- direction: "column",
248
- gap: "2",
249
- children: [/* @__PURE__ */ D(S, {
250
- as: "span",
251
- size: "2",
252
- weight: "medium",
253
- children: "Image URL"
254
- }), /* @__PURE__ */ D(C.Root, {
255
- autoFocus: !0,
256
- placeholder: "https://example.com/image.png",
257
- value: L,
258
- onChange: G
259
- })]
260
- }) }),
261
- /* @__PURE__ */ O(v, {
262
- justify: "end",
263
- gap: "2",
264
- children: [/* @__PURE__ */ D(b.Close, { children: /* @__PURE__ */ D(_, {
265
- type: "button",
266
- variant: "soft",
267
- color: "gray",
268
- children: "Cancel"
269
- }) }), /* @__PURE__ */ D(_, {
270
- type: "button",
271
- disabled: L.trim().length === 0,
272
- onClick: U,
273
- children: "Save"
274
- })]
275
- })
276
- ]
277
- })
278
- })]
279
- }, `${e.name}-${t}`) : /* @__PURE__ */ D(y, {
280
- type: "button",
281
- "aria-label": e.label,
282
- "aria-pressed": e.isToggle ? e.isActive() : void 0,
283
- radius: "medium",
284
- color: "gray",
285
- variant: e.isActive() ? "soft" : "ghost",
286
- disabled: e.disabled || !k.isEditable,
287
- title: e.label,
288
- onMouseDown: W,
289
- onClick: e.command,
290
- className: A(e.disabled && "scribe-toolbar-button--disabled"),
291
- children: /* @__PURE__ */ D(e.icon, { className: "scribe-toolbar-icon" })
292
- }, `${e.name}-${t}`))
293
- }), t === K.length - 1 ? null : /* @__PURE__ */ D(x, {
294
- orientation: "vertical",
295
- decorative: !0,
296
- style: { height: 20 }
297
- })] }, `format-group-${t}`))
298
- })
299
- });
300
- };
301
- //#endregion
302
- export { A as n, j as t };
@@ -1,13 +0,0 @@
1
- import type { Editor } from "@tiptap/react";
2
- import type { ExternalLinkDisplay } from "../Scribe/extension/external-link-preview/types";
3
- export type { ExternalLinkDisplay } from "../Scribe/extension/external-link-preview/types";
4
- export interface ExternalLinkDisplayOptionsProps {
5
- currentDisplay: ExternalLinkDisplay;
6
- editor: Editor;
7
- executeDisplayChange?: (display: ExternalLinkDisplay) => boolean;
8
- onDisplayChange?: (display: ExternalLinkDisplay) => void;
9
- targetPosition?: number;
10
- }
11
- declare const ExternalLinkDisplayOptions: ({ currentDisplay, editor, executeDisplayChange, onDisplayChange, targetPosition, }: ExternalLinkDisplayOptionsProps) => import("react").JSX.Element | null;
12
- export default ExternalLinkDisplayOptions;
13
- //# sourceMappingURL=ExternalLinkDisplayOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExternalLinkDisplayOptions.d.ts","sourceRoot":"","sources":["../../../lib/components/Menu/ExternalLinkDisplayOptions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAE3F,YAAY,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAE3F,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,mBAAmB,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC;IACjE,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAuCD,QAAA,MAAM,0BAA0B,uFAM7B,+BAA+B,uCA4FjC,CAAC;eAEa,0BAA0B"}