@clevertask/scribe 0.1.29 → 0.1.30

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 (84) hide show
  1. package/README.md +30 -47
  2. package/dist/BarMenu-Bban-B3t.js +302 -0
  3. package/dist/components/Menu/BarMenu.d.ts.map +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.d.ts.map +1 -1
  8. package/dist/components/Menu/LinkBubbleMenu.js +107 -119
  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 +152 -153
  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 +1 -1
  15. package/dist/components/Menu/linkBubbleMenuPlugin.d.ts.map +1 -1
  16. package/dist/components/Menu/linkBubbleMenuPlugin.js +9 -5
  17. package/dist/components/Scribe/extension/callout.js +7 -7
  18. package/dist/components/Scribe/extension/emoji/suggest.js +1 -1
  19. package/dist/components/Scribe/extension/extension-link.js +1 -1
  20. package/dist/components/Scribe/extension/extension-markdown-paste.js +1 -1
  21. package/dist/components/Scribe/extension/extension-selectedText.js +1 -1
  22. package/dist/components/Scribe/extension/external-link-preview/attributes.d.ts +0 -7
  23. package/dist/components/Scribe/extension/external-link-preview/attributes.d.ts.map +1 -1
  24. package/dist/components/Scribe/extension/external-link-preview/attributes.js +26 -51
  25. package/dist/components/Scribe/extension/external-link-preview/commands.d.ts +5 -12
  26. package/dist/components/Scribe/extension/external-link-preview/commands.d.ts.map +1 -1
  27. package/dist/components/Scribe/extension/external-link-preview/commands.js +56 -121
  28. package/dist/components/Scribe/extension/external-link-preview/index.d.ts +4 -6
  29. package/dist/components/Scribe/extension/external-link-preview/index.d.ts.map +1 -1
  30. package/dist/components/Scribe/extension/external-link-preview/index.js +5 -41
  31. package/dist/components/Scribe/extension/external-link-preview/render-html.d.ts +1 -0
  32. package/dist/components/Scribe/extension/external-link-preview/render-html.d.ts.map +1 -1
  33. package/dist/components/Scribe/extension/external-link-preview/render-html.js +17 -60
  34. package/dist/components/Scribe/extension/external-link-preview/schema.d.ts +2 -2
  35. package/dist/components/Scribe/extension/external-link-preview/schema.js +1 -1
  36. package/dist/components/Scribe/extension/external-link-preview/serialization.d.ts.map +1 -1
  37. package/dist/components/Scribe/extension/external-link-preview/serialization.js +29 -45
  38. package/dist/components/Scribe/extension/external-link-preview/types.d.ts +14 -17
  39. package/dist/components/Scribe/extension/external-link-preview/types.d.ts.map +1 -1
  40. package/dist/components/Scribe/extension/index.js +1 -1
  41. package/dist/components/Scribe/extension/resizable-table.js +2 -2
  42. package/dist/components/Scribe/extension/slashCommand/index.js +2 -2
  43. package/dist/components/Scribe/extension/slashCommand/renderItems.js +1 -1
  44. package/dist/components/Scribe/extension/table-layout.js +1 -1
  45. package/dist/components/Scribe/extension/tableOfContents.js +1 -1
  46. package/dist/components/Scribe/index.d.ts +3 -9
  47. package/dist/components/Scribe/index.d.ts.map +1 -1
  48. package/dist/components/Scribe/index.js +3 -3
  49. package/dist/{dist-DnVcys79.js → dist-DGEcUiqG.js} +464 -561
  50. package/dist/{dist-CDJRm4fL.js → dist-TKt66Yz8.js} +1 -1
  51. package/dist/{dist-B0xwy1Q5.js → dist-ZGDUiMX8.js} +174 -382
  52. package/dist/document-node-capabilities.js +1 -1
  53. package/dist/{extension-BPeoqfHR.js → extension-I7Ocj_D_.js} +1 -1
  54. package/dist/extension-link-Cb1UO6hv.js +939 -0
  55. package/dist/main.css +0 -141
  56. package/dist/{menus-scgppp2C.js → menus-BrQTLTFL.js} +15 -15
  57. package/dist/{schema-extensions-ITR9LEgX.js → schema-extensions-CzDKrIf8.js} +1324 -1324
  58. package/dist/schema-extensions.js +1 -1
  59. package/dist/schema.js +1 -1
  60. package/dist/{table-layout-iVolql5p.js → table-layout-Dt7KmVp_.js} +36 -36
  61. package/dist/utils/create-scribe-editor.d.ts +1 -1
  62. package/dist/utils/create-scribe-editor.d.ts.map +1 -1
  63. package/dist/utils/index.js +2 -2
  64. package/package.json +1 -1
  65. package/dist/BarMenu-BC8XoC6e.js +0 -302
  66. package/dist/components/Menu/ExternalLinkDisplayOptions.d.ts +0 -13
  67. package/dist/components/Menu/ExternalLinkDisplayOptions.d.ts.map +0 -1
  68. package/dist/components/Menu/ExternalLinkDisplayOptions.js +0 -90
  69. package/dist/components/Scribe/extension/external-link-preview/node-view.d.ts +0 -3
  70. package/dist/components/Scribe/extension/external-link-preview/node-view.d.ts.map +0 -1
  71. package/dist/components/Scribe/extension/external-link-preview/node-view.js +0 -97
  72. package/dist/components/Scribe/extension/external-link-preview/normalization.d.ts +0 -7
  73. package/dist/components/Scribe/extension/external-link-preview/normalization.d.ts.map +0 -1
  74. package/dist/components/Scribe/extension/external-link-preview/normalization.js +0 -21
  75. package/dist/components/Scribe/extension/external-link-preview/paste.d.ts +0 -8
  76. package/dist/components/Scribe/extension/external-link-preview/paste.d.ts.map +0 -1
  77. package/dist/components/Scribe/extension/external-link-preview/paste.js +0 -53
  78. package/dist/components/Scribe/extension/external-link-preview/policy.d.ts +0 -7
  79. package/dist/components/Scribe/extension/external-link-preview/policy.d.ts.map +0 -1
  80. package/dist/components/Scribe/extension/external-link-preview/policy.js +0 -38
  81. package/dist/components/Scribe/extension/external-link-preview/resolver.d.ts +0 -23
  82. package/dist/components/Scribe/extension/external-link-preview/resolver.d.ts.map +0 -1
  83. package/dist/components/Scribe/extension/external-link-preview/resolver.js +0 -118
  84. package/dist/extension-link-RvaqaDqr.js +0 -934
@@ -1,97 +0,0 @@
1
- import { getExternalLinkPreviewHostname as e, getExternalLinkPreviewTitle as t, normalizeExternalLinkPreviewAttributes as n } from "./attributes.js";
2
- import { n as r, s as i } from "../../../../dist-B0xwy1Q5.js";
3
- import { showLinkBubbleMenu as a } from "../../../Menu/linkBubbleMenuPlugin.js";
4
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
- //#region lib/components/Scribe/extension/external-link-preview/node-view.tsx
6
- var c = (e, t) => {
7
- let n = e.state.doc.resolve(t), r = e.state.doc.nodeAt(t);
8
- return !!(r && n.parent.isTextblock && n.parent.childCount === 1 && n.parent.content.size === r.nodeSize);
9
- }, l = () => /* @__PURE__ */ o("svg", {
10
- "aria-hidden": "true",
11
- viewBox: "0 0 24 24",
12
- width: "16",
13
- height: "16",
14
- children: /* @__PURE__ */ o("path", {
15
- d: "M9.5 14.5l5-5m-7.25 7.25-1 1a3.18 3.18 0 004.5 4.5l3-3a3.18 3.18 0 000-4.5m3-7.5 1-1a3.18 3.18 0 014.5 4.5l-3 3a3.18 3.18 0 01-4.5 0",
16
- fill: "none",
17
- stroke: "currentColor",
18
- strokeLinecap: "round",
19
- strokeWidth: "1.5"
20
- })
21
- }), u = ({ editor: u, getPos: d, node: f }) => {
22
- let p = n(f.attrs), m = i({
23
- editor: u,
24
- selector: ({ editor: e }) => {
25
- let t = d();
26
- return typeof t == "number" ? {
27
- isEditable: e.isEditable,
28
- isSoleTextblockContent: c(e, t)
29
- } : {
30
- isEditable: e.isEditable,
31
- isSoleTextblockContent: !1
32
- };
33
- }
34
- });
35
- if (!p) return /* @__PURE__ */ o(r, {
36
- as: "span",
37
- className: "scribe-external-link-preview scribe-external-link-preview--invalid",
38
- "data-type": "external-link-preview",
39
- children: "Invalid external link"
40
- });
41
- let h = p.display === "card" && m.isSoleTextblockContent ? "card" : "compact", g = t(p, h), _ = h === "card" ? p.siteName || e(p.href) : null;
42
- return /* @__PURE__ */ o(r, {
43
- as: "span",
44
- className: `scribe-external-link-preview scribe-external-link-preview--${h}`,
45
- "data-type": "external-link-preview",
46
- "data-display": h,
47
- "data-configured-display": p.display,
48
- contentEditable: !1,
49
- children: /* @__PURE__ */ s("a", {
50
- "data-link-preview-target": "",
51
- href: p.href,
52
- target: "_blank",
53
- rel: "noopener noreferrer",
54
- "aria-haspopup": m.isEditable ? "dialog" : void 0,
55
- onClick: (e) => {
56
- if (!m.isEditable) return;
57
- e.preventDefault();
58
- let t = d();
59
- typeof t == "number" && u.chain().focus().setNodeSelection(t).run() && a(u, "dialog");
60
- },
61
- children: [h === "card" && p.imageUrl ? /* @__PURE__ */ o("img", {
62
- "data-link-preview-image": "",
63
- src: p.imageUrl,
64
- alt: ""
65
- }) : null, /* @__PURE__ */ s("span", {
66
- "data-link-preview-main": "",
67
- children: [h === "card" && p.faviconUrl ? /* @__PURE__ */ o("img", {
68
- "data-link-preview-favicon": "",
69
- src: p.faviconUrl,
70
- alt: ""
71
- }) : /* @__PURE__ */ o("span", {
72
- "data-link-preview-favicon-fallback": "",
73
- "aria-hidden": "true",
74
- children: /* @__PURE__ */ o(l, {})
75
- }), /* @__PURE__ */ s("span", {
76
- "data-link-preview-copy": "",
77
- children: [
78
- /* @__PURE__ */ o("span", {
79
- "data-link-preview-title": "",
80
- children: g
81
- }),
82
- _ ? /* @__PURE__ */ o("span", {
83
- "data-link-preview-site": "",
84
- children: _
85
- }) : null,
86
- h === "card" && p.description ? /* @__PURE__ */ o("span", {
87
- "data-link-preview-description": "",
88
- children: p.description
89
- }) : null
90
- ]
91
- })]
92
- })]
93
- })
94
- });
95
- };
96
- //#endregion
97
- export { u as ExternalLinkPreviewNodeView };
@@ -1,7 +0,0 @@
1
- import { Plugin, PluginKey } from "@tiptap/pm/state";
2
- import type { EditorState } from "@tiptap/pm/state";
3
- export declare const externalLinkPreviewNormalizationPluginKey: PluginKey<any>;
4
- export declare const createExternalLinkPreviewNormalizationTransaction: (state: EditorState) => import("@tiptap/pm/state").Transaction | null;
5
- /** Keep the persisted display contract aligned with Card's sole-textblock requirement. */
6
- export declare const createExternalLinkPreviewNormalizationPlugin: () => Plugin<any>;
7
- //# sourceMappingURL=normalization.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalization.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Scribe/extension/external-link-preview/normalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,eAAO,MAAM,yCAAyC,gBAErD,CAAC;AAEF,eAAO,MAAM,iDAAiD,UAAW,WAAW,kDA2BnF,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,4CAA4C,mBAerD,CAAC"}
@@ -1,21 +0,0 @@
1
- import "./attributes.js";
2
- import { Plugin as e, PluginKey as t } from "@tiptap/pm/state";
3
- //#region lib/components/Scribe/extension/external-link-preview/normalization.ts
4
- var n = new t("scribeExternalLinkPreviewNormalization"), r = (e) => {
5
- let t = e.tr, r = !1;
6
- return e.doc.descendants((n, i) => {
7
- if (n.type.name !== "externalLinkPreview" || n.attrs.display !== "card") return;
8
- let a = e.doc.resolve(i);
9
- a.parent.isTextblock && a.parent.childCount === 1 && a.parent.content.size === n.nodeSize || (t.setNodeMarkup(i, void 0, {
10
- ...n.attrs,
11
- display: "compact"
12
- }), r = !0);
13
- }), r ? t.setMeta(n, !0) : null;
14
- }, i = () => new e({
15
- key: n,
16
- appendTransaction(e, t, i) {
17
- return !e.some((e) => e.docChanged) || e.some((e) => e.getMeta(n)) ? null : r(i);
18
- }
19
- });
20
- //#endregion
21
- export { i as createExternalLinkPreviewNormalizationPlugin, r as createExternalLinkPreviewNormalizationTransaction, n as externalLinkPreviewNormalizationPluginKey };
@@ -1,8 +0,0 @@
1
- import type { NodeType } from "@tiptap/pm/model";
2
- import { Plugin } from "@tiptap/pm/state";
3
- export declare const createExternalLinkPreviewPastePlugin: ({ previewType, autoPreviewOnPaste, shouldPreview, }: {
4
- previewType: NodeType;
5
- autoPreviewOnPaste: boolean;
6
- shouldPreview?: (href: string) => boolean;
7
- }) => Plugin<any>;
8
- //# sourceMappingURL=paste.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paste.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Scribe/extension/external-link-preview/paste.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAiB,MAAM,EAAa,MAAM,kBAAkB,CAAC;AA6EpE,eAAO,MAAM,oCAAoC,wDAI9C;IACD,WAAW,EAAE,QAAQ,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C,gBAgEG,CAAC"}
@@ -1,53 +0,0 @@
1
- import { normalizeExternalLinkPreviewAttributes as e, normalizeExternalLinkPreviewHref as t } from "./attributes.js";
2
- import { normalizeLinkUrl as n } from "../../../Menu/linkUrl.js";
3
- import { NodeSelection as r, Plugin as i, PluginKey as a } from "@tiptap/pm/state";
4
- //#region lib/components/Scribe/extension/external-link-preview/paste.ts
5
- var o = new a("scribeExternalLinkPreviewPaste"), s = (e) => {
6
- let t = e.clipboardData?.getData("text/plain");
7
- if (!t) return null;
8
- let n = t.trim();
9
- return n && !/[\r\n]/.test(n) ? n : null;
10
- }, c = (e, t) => {
11
- let { selection: n, schema: r } = e.state, i = r.marks.link;
12
- if (n.empty || !i) return !1;
13
- let a = e.state.tr.setMeta("preventAutolink", !0), o = !1;
14
- return e.state.doc.nodesBetween(n.from, n.to, (e, r, s) => {
15
- if (!e.isText || !s?.isTextblock || !s.type.allowsMarkType(i)) return;
16
- let c = Math.max(r, n.from), l = Math.min(r + e.nodeSize, n.to);
17
- c < l && (a.addMark(c, l, i.create({ href: t })), o = !0);
18
- }), o ? (e.dispatch(a), !0) : !1;
19
- }, l = (e, t) => {
20
- let { selection: n } = e.state, r = !0;
21
- return n.$from.parent.forEach((e) => {
22
- (!e.isText || e.textContent.trim()) && (r = !1);
23
- }), !n.empty || n.$from.parent.type.name !== "paragraph" || !r ? !1 : n.$from.parent.canReplaceWith(0, n.$from.parent.childCount, t);
24
- }, u = ({ previewType: a, autoPreviewOnPaste: u, shouldPreview: d }) => new i({
25
- key: o,
26
- props: { handlePaste(i, o) {
27
- let f = s(o);
28
- if (!f) return !1;
29
- let p = n(f);
30
- if (!i.state.selection.empty && p) {
31
- let e = c(i, p);
32
- return e && o.preventDefault(), e;
33
- }
34
- let m = t(f);
35
- if (!u || !m || !l(i, a)) return !1;
36
- try {
37
- if (d && !d(m)) return !1;
38
- } catch {
39
- return !1;
40
- }
41
- let h = e({
42
- href: m,
43
- linkText: f,
44
- display: "compact"
45
- });
46
- if (!h) return !1;
47
- o.preventDefault();
48
- let g = i.state.selection.$from.start(), _ = g + i.state.selection.$from.parent.content.size, v = g, y = i.state.tr.replaceWith(g, _, a.create(h));
49
- return y.setSelection(r.create(y.doc, v)), i.dispatch(y.scrollIntoView()), !0;
50
- } }
51
- });
52
- //#endregion
53
- export { u as createExternalLinkPreviewPastePlugin };
@@ -1,7 +0,0 @@
1
- import type { EditorState, Transaction } from "@tiptap/pm/state";
2
- import { Plugin, PluginKey } from "@tiptap/pm/state";
3
- export declare const externalLinkPreviewPolicyPluginKey: PluginKey<any>;
4
- /** Convert previews rejected by a consumer policy into safe, ordinary link text. */
5
- export declare const createExternalLinkPreviewPolicyTransaction: (state: EditorState, shouldPreview?: (href: string) => boolean) => Transaction | null;
6
- export declare const createExternalLinkPreviewPolicyPlugin: (shouldPreview?: (href: string) => boolean) => Plugin<any>;
7
- //# sourceMappingURL=policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Scribe/extension/external-link-preview/policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAMrD,eAAO,MAAM,kCAAkC,gBAAmD,CAAC;AA+BnG,oFAAoF;AACpF,eAAO,MAAM,0CAA0C,UAC9C,WAAW,kBACF,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,KACxC,WAAW,GAAG,IA2ChB,CAAC;AAEF,eAAO,MAAM,qCAAqC,mBAAoB,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,gBAa3F,CAAC"}
@@ -1,38 +0,0 @@
1
- import { normalizeExternalLinkPreviewAttributes as e } from "./attributes.js";
2
- import { Plugin as t, PluginKey as n } from "@tiptap/pm/state";
3
- //#region lib/components/Scribe/extension/external-link-preview/policy.ts
4
- var r = new n("scribeExternalLinkPreviewPolicy"), i = (e, t) => {
5
- try {
6
- return t(e);
7
- } catch {
8
- return !1;
9
- }
10
- }, a = (t, n, r, i) => {
11
- let a = e(n.attrs);
12
- if (!a) return null;
13
- let o = t.doc.resolve(r).parent, s = i && o.type.allowsMarkType(i) ? [i.create({ href: a.href })] : [];
14
- return t.schema.text(a.linkText, s);
15
- }, o = (t, n) => {
16
- if (!n) return null;
17
- let o = [];
18
- if (t.doc.descendants((t, r) => {
19
- if (t.type.name !== "externalLinkPreview") return;
20
- let a = e(t.attrs);
21
- (!a || !i(a.href, n)) && o.push({
22
- node: t,
23
- position: r
24
- });
25
- }), !o.length) return null;
26
- let s = t.tr, c = t.schema.marks.link, l = !1;
27
- return o.sort((e, t) => t.position - e.position).forEach(({ node: e, position: n }) => {
28
- let r = a(t, e, n, c);
29
- r && (s.replaceWith(n, n + e.nodeSize, r), l = !0);
30
- }), l ? s.setMeta(r, !0).setMeta("addToHistory", !1) : null;
31
- }, s = (e) => new t({
32
- key: r,
33
- appendTransaction(t, n, i) {
34
- return !t.some((e) => e.docChanged) || t.some((e) => e.getMeta(r)) ? null : o(i, e);
35
- }
36
- });
37
- //#endregion
38
- export { s as createExternalLinkPreviewPolicyPlugin, o as createExternalLinkPreviewPolicyTransaction, r as externalLinkPreviewPolicyPluginKey };
@@ -1,23 +0,0 @@
1
- import type { Editor } from "@tiptap/core";
2
- import type { EditorState, Transaction } from "@tiptap/pm/state";
3
- import { Plugin, PluginKey } from "@tiptap/pm/state";
4
- import type { ExternalLinkPreviewResolutionStatus, ExternalLinkPreviewResolver } from "./types";
5
- interface ExternalLinkPreviewRequest {
6
- href: string;
7
- position: number;
8
- status: Exclude<ExternalLinkPreviewResolutionStatus, "idle">;
9
- token: number;
10
- }
11
- interface ExternalLinkPreviewResolverState {
12
- nextToken: number;
13
- requests: Map<number, ExternalLinkPreviewRequest>;
14
- }
15
- export declare const externalLinkPreviewResolverPluginKey: PluginKey<ExternalLinkPreviewResolverState>;
16
- export declare const startExternalLinkPreviewResolution: (transaction: Transaction, position: number, href: string) => Transaction;
17
- export declare const getExternalLinkPreviewResolutionStatus: (state: EditorState, position: number) => ExternalLinkPreviewResolutionStatus;
18
- export declare const createExternalLinkPreviewResolverPlugin: ({ editor, resolve, }: {
19
- editor: Editor;
20
- resolve?: ExternalLinkPreviewResolver;
21
- }) => Plugin<ExternalLinkPreviewResolverState>;
22
- export {};
23
- //# sourceMappingURL=resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Scribe/extension/external-link-preview/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAiB,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOpE,OAAO,KAAK,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEhG,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gCAAgC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CACnD;AAOD,eAAO,MAAM,oCAAoC,6CAEhD,CAAC;AAUF,eAAO,MAAM,kCAAkC,gBAChC,WAAW,YACd,MAAM,QACV,MAAM,gBASb,CAAC;AAEF,eAAO,MAAM,sCAAsC,UAC1C,WAAW,YACR,MAAM,KACf,mCAWF,CAAC;AAyHF,eAAO,MAAM,uCAAuC,yBAGjD;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,2BAA2B,CAAC;CACvC,6CAkEA,CAAC"}
@@ -1,118 +0,0 @@
1
- import { normalizeExternalLinkPreviewAttributes as e, normalizeExternalLinkPreviewMetadataPatch as t } from "./attributes.js";
2
- import { NodeSelection as n, Plugin as r, PluginKey as i } from "@tiptap/pm/state";
3
- //#region lib/components/Scribe/extension/external-link-preview/resolver.ts
4
- var a = new i("scribeExternalLinkPreviewResolver"), o = (e, t) => e?.type.name === "externalLinkPreview" && e.attrs.display === "card" && e.attrs.href === t, s = (e, t) => Array.from(e.requests.values()).find((e) => e.token === t), c = (e, t, n) => (e.setMeta(a, {
5
- type: "start",
6
- href: n,
7
- position: t
8
- }), e), l = (e, t) => {
9
- let n = a.getState(e);
10
- return n ? Array.from(n.requests.values()).find((e) => e.position === t)?.status ?? "idle" : "idle";
11
- }, u = (e, t) => {
12
- let n = /* @__PURE__ */ new Map();
13
- t.requests.forEach((t) => {
14
- let r = e.mapping.mapResult(t.position, 1), i = e.doc.nodeAt(r.pos);
15
- !r.deleted && o(i, t.href) && n.set(t.token, {
16
- ...t,
17
- position: r.pos
18
- });
19
- });
20
- let r = e.getMeta(a), i = t.nextToken;
21
- if (!r) return {
22
- nextToken: i,
23
- requests: n
24
- };
25
- if (r.type === "start") n.forEach((e, t) => {
26
- e.position === r.position && n.delete(t);
27
- }), o(e.doc.nodeAt(r.position), r.href) && (i += 1, n.set(i, {
28
- href: r.href,
29
- position: r.position,
30
- status: "loading",
31
- token: i
32
- }));
33
- else if (r.type === "complete") n.delete(r.token);
34
- else {
35
- let e = s({
36
- nextToken: i,
37
- requests: n
38
- }, r.token);
39
- e && n.set(e.token, {
40
- ...e,
41
- status: "error"
42
- });
43
- }
44
- return {
45
- nextToken: i,
46
- requests: n
47
- };
48
- }, d = (e, t) => {
49
- e.isDestroyed || e.dispatch(e.state.tr.setMeta(a, t).setMeta("addToHistory", !1));
50
- }, f = (r, i, c) => {
51
- if (r.isDestroyed) return;
52
- let l = a.getState(r.state), u = l ? s(l, i.token) : void 0;
53
- if (!u || u.status !== "loading" || !c) {
54
- u && !c && d(r, {
55
- type: "error",
56
- token: i.token
57
- });
58
- return;
59
- }
60
- let f = r.state.doc.nodeAt(u.position);
61
- if (!o(f, u.href) || !f) return;
62
- let p = e({
63
- ...f.attrs,
64
- ...t(c)
65
- });
66
- if (!p) {
67
- d(r, {
68
- type: "error",
69
- token: i.token
70
- });
71
- return;
72
- }
73
- let m = r.state.selection instanceof n && r.state.selection.from === u.position && r.state.selection.node.type.name === "externalLinkPreview", h = r.state.tr.setNodeMarkup(u.position, void 0, p).setMeta(a, {
74
- type: "complete",
75
- token: i.token
76
- }).setMeta("addToHistory", !1);
77
- m && h.setSelection(n.create(h.doc, u.position)), r.dispatch(h);
78
- }, p = ({ editor: e, resolve: t }) => {
79
- let n = /* @__PURE__ */ new Map(), i = (r) => {
80
- let i = a.getState(r.state), o = new Set(Array.from(i?.requests.values() ?? []).filter((e) => e.status === "loading").map((e) => e.token));
81
- n.forEach((e, t) => {
82
- o.has(t) || (e.abort(), n.delete(t));
83
- }), t && !e.isDestroyed && i && i.requests.forEach((e) => {
84
- if (e.status !== "loading" || n.has(e.token)) return;
85
- let i = new AbortController();
86
- n.set(e.token, i), Promise.resolve().then(() => t(e.href, { signal: i.signal })).then((t) => {
87
- i.signal.aborted || f(r, e, t);
88
- }).catch(() => {
89
- i.signal.aborted || d(r, {
90
- type: "error",
91
- token: e.token
92
- });
93
- }).finally(() => {
94
- n.delete(e.token);
95
- });
96
- });
97
- };
98
- return new r({
99
- key: a,
100
- state: {
101
- init: () => ({
102
- nextToken: 0,
103
- requests: /* @__PURE__ */ new Map()
104
- }),
105
- apply: u
106
- },
107
- view(e) {
108
- return i(e), {
109
- update: i,
110
- destroy() {
111
- n.forEach((e) => e.abort()), n.clear();
112
- }
113
- };
114
- }
115
- });
116
- };
117
- //#endregion
118
- export { p as createExternalLinkPreviewResolverPlugin, a as externalLinkPreviewResolverPluginKey, l as getExternalLinkPreviewResolutionStatus, c as startExternalLinkPreviewResolution };