@clevertask/scribe 0.1.9 → 0.1.11
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.
- package/README.md +21 -10
- package/dist/{BarMenu-BG_w4DVo.js → BarMenu-5M9g9Y1j.js} +7 -5
- package/dist/components/Menu/BarMenu.js +1 -1
- package/dist/components/Menu/BubbleMenu.js +2 -2
- package/dist/components/Menu/LinkBubbleMenu.js +2 -2
- package/dist/components/Menu/Mobile/ListOptionBar.js +1 -1
- package/dist/components/Menu/TableBubbleMenu.d.ts +8 -0
- package/dist/components/Menu/TableBubbleMenu.d.ts.map +1 -0
- package/dist/components/Menu/TableBubbleMenu.js +305 -0
- package/dist/components/Menu/linkBubbleMenuPlugin.js +1 -1
- package/dist/components/Menu/tableBubbleMenuPlugin.d.ts +11 -0
- package/dist/components/Menu/tableBubbleMenuPlugin.d.ts.map +1 -0
- package/dist/components/Menu/tableBubbleMenuPlugin.js +22 -0
- package/dist/components/Scribe/extension/emoji/suggest.js +1 -1
- package/dist/components/Scribe/extension/extension-link.js +1 -1
- package/dist/components/Scribe/extension/extension-markdown-paste.js +11 -11
- package/dist/components/Scribe/extension/extension-selectedText.js +1 -1
- package/dist/components/Scribe/extension/index.d.ts +1 -1
- package/dist/components/Scribe/extension/index.d.ts.map +1 -1
- package/dist/components/Scribe/extension/index.js +1 -1
- package/dist/components/Scribe/extension/resizable-table.d.ts +8 -0
- package/dist/components/Scribe/extension/resizable-table.d.ts.map +1 -0
- package/dist/components/Scribe/extension/resizable-table.js +2 -0
- package/dist/components/Scribe/extension/slashCommand/SlashCommandList.js +1390 -1390
- package/dist/components/Scribe/extension/slashCommand/index.js +1 -1
- package/dist/components/Scribe/extension/slashCommand/items.d.ts.map +1 -1
- package/dist/components/Scribe/extension/slashCommand/items.js +27 -0
- package/dist/components/Scribe/extension/slashCommand/renderItems.js +1 -1
- package/dist/components/Scribe/extension/tableOfContents.js +4 -4
- package/dist/components/Scribe/index.d.ts +2 -1
- package/dist/components/Scribe/index.d.ts.map +1 -1
- package/dist/components/Scribe/index.js +133 -128
- package/dist/dist-DFua_Xbu.js +3251 -0
- package/dist/{dist-BgEySLwo.js → dist-Dw4STOPE.js} +1 -1
- package/dist/{extension-BVGWENts.js → extension-Dy6hHSvD.js} +1678 -2687
- package/dist/{extension-link-CMRfHUc5.js → extension-link-CjfUZ90W.js} +62 -62
- package/dist/{html-to-markdown-Cta7-ssO.js → html-to-markdown-B6Uhn7ok.js} +112 -54
- package/dist/main.css +52 -1
- package/dist/main.js +2 -2
- package/dist/{markdown-to-html-DwSNqq2i.js → markdown-to-html-WmeDaJXP.js} +73 -60
- package/dist/{menus-D9OsP28c.js → menus-_EXlLMjz.js} +66 -66
- package/dist/{purify.es-CFiLaBu1.js → purify.es-BES4pJF7.js} +267 -260
- package/dist/resizable-table-Ddw3l6DJ.js +489 -0
- package/dist/{slashCommand-B6Iz1i0d.js → slashCommand-CxX07Nbk.js} +69 -66
- package/dist/utils/html-to-markdown.d.ts.map +1 -1
- package/dist/utils/html-to-markdown.js +1 -1
- package/dist/utils/index.js +4 -4
- package/dist/utils/markdown-to-html.d.ts.map +1 -1
- package/dist/utils/markdown-to-html.js +1 -1
- package/package.json +8 -7
- package/dist/dist-BMKyBtRa.js +0 -7023
- package/dist/dist-FrapLVQu.js +0 -3513
- package/dist/tables-CXpUVKdw.js +0 -1347
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { M as e, N as t, _ as n, f as r, h as i, i as a, j as o, m as s, o as c, r as l, u } from "./dist-DFua_Xbu.js";
|
|
2
|
+
import { Plugin as d, PluginKey as f } from "@tiptap/pm/state";
|
|
3
3
|
//#region node_modules/.pnpm/linkifyjs@4.3.3/node_modules/linkifyjs/dist/linkify.mjs
|
|
4
4
|
var p = "aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2", m = "ελ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", h = "numeric", g = "ascii", _ = "alpha", v = "asciinumeric", y = "alphanumeric", b = "domain", x = "emoji", ee = "scheme", S = "slashscheme", C = "whitespace";
|
|
5
5
|
function w(e, t) {
|
|
@@ -516,57 +516,57 @@ var bt = "[\0- \xA0 -\u2029 ]", xt = new RegExp(bt), St = RegExp(`$
|
|
|
516
516
|
function wt(e) {
|
|
517
517
|
return e.length === 1 ? e[0].isLink : e.length === 3 && e[1].isLink ? ["()", "[]"].includes(e[0].value + e[2].value) : !1;
|
|
518
518
|
}
|
|
519
|
-
function Tt(
|
|
520
|
-
return new
|
|
521
|
-
key: new
|
|
522
|
-
appendTransaction: (
|
|
523
|
-
let s =
|
|
519
|
+
function Tt(e) {
|
|
520
|
+
return new d({
|
|
521
|
+
key: new f("autolink"),
|
|
522
|
+
appendTransaction: (t, a, o) => {
|
|
523
|
+
let s = t.some((e) => e.docChanged) && !a.doc.eq(o.doc), c = t.some((e) => e.getMeta("preventAutolink"));
|
|
524
524
|
if (!s || c) return;
|
|
525
|
-
let { tr: l } =
|
|
526
|
-
if (
|
|
527
|
-
let
|
|
528
|
-
if (
|
|
529
|
-
else if (
|
|
530
|
-
let
|
|
531
|
-
if (!St.test(
|
|
532
|
-
|
|
525
|
+
let { tr: l } = o, d = u(a.doc, [...t]);
|
|
526
|
+
if (i(d).forEach(({ newRange: t }) => {
|
|
527
|
+
let i = r(o.doc, t, (e) => e.isTextblock), a, s;
|
|
528
|
+
if (i.length > 1) a = i[0], s = o.doc.textBetween(a.pos, a.pos + a.node.nodeSize, void 0, " ");
|
|
529
|
+
else if (i.length) {
|
|
530
|
+
let e = o.doc.textBetween(t.from, t.to, " ", " ");
|
|
531
|
+
if (!St.test(e)) return;
|
|
532
|
+
a = i[0], s = o.doc.textBetween(a.pos, t.to, void 0, " ");
|
|
533
533
|
}
|
|
534
|
-
if (
|
|
535
|
-
let
|
|
536
|
-
if (
|
|
537
|
-
let
|
|
538
|
-
if (!
|
|
539
|
-
let c = vt(
|
|
534
|
+
if (a && s) {
|
|
535
|
+
let t = s.split(xt).filter(Boolean);
|
|
536
|
+
if (t.length <= 0) return !1;
|
|
537
|
+
let r = t[t.length - 1], i = a.pos + s.lastIndexOf(r);
|
|
538
|
+
if (!r) return !1;
|
|
539
|
+
let c = vt(r).map((t) => t.toObject(e.defaultProtocol));
|
|
540
540
|
if (!wt(c)) return !1;
|
|
541
541
|
c.filter((e) => e.isLink).map((e) => ({
|
|
542
542
|
...e,
|
|
543
|
-
from:
|
|
544
|
-
to:
|
|
545
|
-
})).filter((e) => !
|
|
546
|
-
|
|
543
|
+
from: i + e.start + 1,
|
|
544
|
+
to: i + e.end + 1
|
|
545
|
+
})).filter((e) => !o.schema.marks.code || !o.doc.rangeHasMark(e.from, e.to, o.schema.marks.code)).filter((t) => e.validate(t.value)).filter((t) => e.shouldAutoLink(t.value)).forEach((t) => {
|
|
546
|
+
n(t.from, t.to, o.doc).some((t) => t.mark.type === e.type) || l.addMark(t.from, t.to, e.type.create({ href: t.href }));
|
|
547
547
|
});
|
|
548
548
|
}
|
|
549
549
|
}), l.steps.length) return l;
|
|
550
550
|
}
|
|
551
551
|
});
|
|
552
552
|
}
|
|
553
|
-
function Et(
|
|
554
|
-
return new
|
|
555
|
-
key: new
|
|
556
|
-
props: { handleClick: (
|
|
557
|
-
if (r.button !== 0 || !
|
|
553
|
+
function Et(e) {
|
|
554
|
+
return new d({
|
|
555
|
+
key: new f("handleClickLink"),
|
|
556
|
+
props: { handleClick: (t, n, r) => {
|
|
557
|
+
if (r.button !== 0 || !t.editable) return !1;
|
|
558
558
|
let i = null;
|
|
559
559
|
if (r.target instanceof HTMLAnchorElement) i = r.target;
|
|
560
560
|
else {
|
|
561
|
-
let
|
|
562
|
-
if (!
|
|
563
|
-
let
|
|
564
|
-
i =
|
|
561
|
+
let t = r.target;
|
|
562
|
+
if (!t) return !1;
|
|
563
|
+
let n = e.editor.view.dom;
|
|
564
|
+
i = t.closest("a"), i && !n.contains(i) && (i = null);
|
|
565
565
|
}
|
|
566
566
|
if (!i) return !1;
|
|
567
567
|
let a = !1;
|
|
568
|
-
if (
|
|
569
|
-
let
|
|
568
|
+
if (e.enableClickSelection && (a = e.editor.commands.extendMarkRange(e.type.name)), e.openOnClick) {
|
|
569
|
+
let n = s(t.state, e.type.name), r = i.href ?? n.href, o = i.target ?? n.target;
|
|
570
570
|
r && (window.open(r, o), a = !0);
|
|
571
571
|
}
|
|
572
572
|
return a;
|
|
@@ -623,7 +623,7 @@ function Pt(e) {
|
|
|
623
623
|
};
|
|
624
624
|
}
|
|
625
625
|
function Ft(e) {
|
|
626
|
-
let t =
|
|
626
|
+
let t = o({
|
|
627
627
|
find: (t) => {
|
|
628
628
|
let n = Dt.exec(t);
|
|
629
629
|
return !n || !jt(t, n, e.isAllowedHref) ? null : Mt(n);
|
|
@@ -631,7 +631,7 @@ function Ft(e) {
|
|
|
631
631
|
type: e.type,
|
|
632
632
|
getAttributes: Pt
|
|
633
633
|
});
|
|
634
|
-
return new
|
|
634
|
+
return new l({
|
|
635
635
|
find: t.find,
|
|
636
636
|
handler: (e) => {
|
|
637
637
|
let n = t.handler(e);
|
|
@@ -639,37 +639,37 @@ function Ft(e) {
|
|
|
639
639
|
}
|
|
640
640
|
});
|
|
641
641
|
}
|
|
642
|
-
function It(
|
|
643
|
-
let
|
|
644
|
-
find: (
|
|
642
|
+
function It(t) {
|
|
643
|
+
let n = e({
|
|
644
|
+
find: (e) => {
|
|
645
645
|
let n = [];
|
|
646
|
-
for (let r of
|
|
647
|
-
let r = (
|
|
646
|
+
for (let r of e.matchAll(Ot)) jt(e, r, t.isAllowedHref) && n.push(Mt(r));
|
|
647
|
+
let r = (t.findPlainUrls?.call(t, e) ?? []).filter((e) => !n.some((t) => Nt(t, e)));
|
|
648
648
|
return [...n, ...r];
|
|
649
649
|
},
|
|
650
|
-
type:
|
|
650
|
+
type: t.type,
|
|
651
651
|
getAttributes: Pt
|
|
652
652
|
});
|
|
653
|
-
return new
|
|
654
|
-
find:
|
|
653
|
+
return new c({
|
|
654
|
+
find: n.find,
|
|
655
655
|
handler: (e) => {
|
|
656
|
-
let
|
|
657
|
-
return
|
|
656
|
+
let t = n.handler(e);
|
|
657
|
+
return t !== null && e.state.tr.steps.length && e.match.data?.markdown && e.state.tr.setMeta("preventAutolink", !0), t;
|
|
658
658
|
}
|
|
659
659
|
});
|
|
660
660
|
}
|
|
661
|
-
function Lt(
|
|
662
|
-
return new
|
|
663
|
-
key: new
|
|
664
|
-
props: { handlePaste: (
|
|
665
|
-
let { shouldAutoLink: i } =
|
|
661
|
+
function Lt(e) {
|
|
662
|
+
return new d({
|
|
663
|
+
key: new f("handlePasteLink"),
|
|
664
|
+
props: { handlePaste: (t, n, r) => {
|
|
665
|
+
let { shouldAutoLink: i } = e, { state: a } = t, { selection: o } = a, { empty: s } = o;
|
|
666
666
|
if (s) return !1;
|
|
667
667
|
let c = "";
|
|
668
668
|
r.content.forEach((e) => {
|
|
669
669
|
c += e.textContent;
|
|
670
670
|
});
|
|
671
|
-
let l = yt(c, { defaultProtocol:
|
|
672
|
-
return !c || !l || i !== void 0 && !i(l.value) ? !1 :
|
|
671
|
+
let l = yt(c, { defaultProtocol: e.defaultProtocol }).find((e) => e.isLink && e.value === c);
|
|
672
|
+
return !c || !l || i !== void 0 && !i(l.value) ? !1 : e.editor.commands.setMark(e.type, { href: l.href });
|
|
673
673
|
} }
|
|
674
674
|
});
|
|
675
675
|
}
|
|
@@ -691,7 +691,7 @@ function $(e, t) {
|
|
|
691
691
|
t && n.push(t);
|
|
692
692
|
}), !e || e.replace(Ct, "").match(RegExp(`^(?:(?:${n.map((e) => e.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&")).join("|")}):|[^a-z]|[a-z0-9+.\\-]+(?:[^a-z+.\\-:]|$))`, "i"));
|
|
693
693
|
}
|
|
694
|
-
var Rt =
|
|
694
|
+
var Rt = a.create({
|
|
695
695
|
name: "link",
|
|
696
696
|
priority: 1e3,
|
|
697
697
|
keepOnSplit: !1,
|
|
@@ -769,11 +769,11 @@ var Rt = s.create({
|
|
|
769
769
|
defaultProtocol: this.options.defaultProtocol
|
|
770
770
|
}) ? [
|
|
771
771
|
"a",
|
|
772
|
-
|
|
772
|
+
t(this.options.HTMLAttributes, e),
|
|
773
773
|
0
|
|
774
774
|
] : [
|
|
775
775
|
"a",
|
|
776
|
-
|
|
776
|
+
t(this.options.HTMLAttributes, {
|
|
777
777
|
...e,
|
|
778
778
|
href: ""
|
|
779
779
|
}),
|
|
@@ -821,7 +821,7 @@ var Rt = s.create({
|
|
|
821
821
|
})] : [];
|
|
822
822
|
},
|
|
823
823
|
addPasteRules() {
|
|
824
|
-
let
|
|
824
|
+
let t = (e) => {
|
|
825
825
|
let t = [];
|
|
826
826
|
if (e) {
|
|
827
827
|
let { protocols: n, defaultProtocol: r } = this.options;
|
|
@@ -846,9 +846,9 @@ var Rt = s.create({
|
|
|
846
846
|
protocols: this.options.protocols,
|
|
847
847
|
defaultProtocol: this.options.defaultProtocol
|
|
848
848
|
}),
|
|
849
|
-
findPlainUrls:
|
|
850
|
-
})] : [
|
|
851
|
-
find:
|
|
849
|
+
findPlainUrls: t
|
|
850
|
+
})] : [e({
|
|
851
|
+
find: t,
|
|
852
852
|
type: this.type,
|
|
853
853
|
getAttributes: (e) => ({ href: e.data?.href })
|
|
854
854
|
})];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "./purify.es-
|
|
1
|
+
import { t as e } from "./purify.es-BES4pJF7.js";
|
|
2
2
|
//#region node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.browser.es.js
|
|
3
3
|
function t(e) {
|
|
4
4
|
for (var t = 1; t < arguments.length; t++) {
|
|
@@ -284,48 +284,48 @@ function w(e, t, n) {
|
|
|
284
284
|
if (r.call(e, t, n)) return !0;
|
|
285
285
|
} else throw TypeError("`filter` needs to be a string, array, or function");
|
|
286
286
|
}
|
|
287
|
-
function
|
|
287
|
+
function ee(e) {
|
|
288
288
|
var t = e.element, n = e.isBlock, r = e.isVoid, i = e.isPre || function(e) {
|
|
289
289
|
return e.nodeName === "PRE";
|
|
290
290
|
};
|
|
291
291
|
if (!(!t.firstChild || i(t))) {
|
|
292
|
-
for (var a = null, o = !1, s = null, c =
|
|
292
|
+
for (var a = null, o = !1, s = null, c = E(s, t, i); c !== t;) {
|
|
293
293
|
if (c.nodeType === 3 || c.nodeType === 4) {
|
|
294
294
|
var l = c.data.replace(/[ \r\n\t]+/g, " ");
|
|
295
295
|
if ((!a || / $/.test(a.data)) && !o && l[0] === " " && (l = l.substr(1)), !l) {
|
|
296
|
-
c =
|
|
296
|
+
c = T(c);
|
|
297
297
|
continue;
|
|
298
298
|
}
|
|
299
299
|
c.data = l, a = c;
|
|
300
300
|
} else if (c.nodeType === 1) n(c) || c.nodeName === "BR" ? (a && (a.data = a.data.replace(/ $/, "")), a = null, o = !1) : r(c) || i(c) ? (a = null, o = !0) : a && (o = !1);
|
|
301
301
|
else {
|
|
302
|
-
c =
|
|
302
|
+
c = T(c);
|
|
303
303
|
continue;
|
|
304
304
|
}
|
|
305
|
-
var u =
|
|
305
|
+
var u = E(s, c, i);
|
|
306
306
|
s = c, c = u;
|
|
307
307
|
}
|
|
308
|
-
a && (a.data = a.data.replace(/ $/, ""), a.data ||
|
|
308
|
+
a && (a.data = a.data.replace(/ $/, ""), a.data || T(a));
|
|
309
309
|
}
|
|
310
310
|
}
|
|
311
|
-
function
|
|
311
|
+
function T(e) {
|
|
312
312
|
var t = e.nextSibling || e.parentNode;
|
|
313
313
|
return e.parentNode.removeChild(e), t;
|
|
314
314
|
}
|
|
315
|
-
function
|
|
315
|
+
function E(e, t, n) {
|
|
316
316
|
return e && e.parentNode === t || n(t) ? t.nextSibling || t.parentNode : t.firstChild || t.nextSibling || t.parentNode;
|
|
317
317
|
}
|
|
318
|
-
var
|
|
319
|
-
function
|
|
320
|
-
var e =
|
|
318
|
+
var D = typeof window < "u" ? window : {};
|
|
319
|
+
function O() {
|
|
320
|
+
var e = D.DOMParser, t = !1;
|
|
321
321
|
try {
|
|
322
322
|
new e().parseFromString("", "text/html") && (t = !0);
|
|
323
323
|
} catch {}
|
|
324
324
|
return t;
|
|
325
325
|
}
|
|
326
|
-
function
|
|
326
|
+
function k() {
|
|
327
327
|
var e = function() {};
|
|
328
|
-
return
|
|
328
|
+
return A() ? e.prototype.parseFromString = function(e) {
|
|
329
329
|
var t = new window.ActiveXObject("htmlfile");
|
|
330
330
|
return t.designMode = "on", t.open(), t.write(e), t.close(), t;
|
|
331
331
|
} : e.prototype.parseFromString = function(e) {
|
|
@@ -333,50 +333,50 @@ function A() {
|
|
|
333
333
|
return t.open(), t.write(e), t.close(), t;
|
|
334
334
|
}, e;
|
|
335
335
|
}
|
|
336
|
-
function
|
|
336
|
+
function A() {
|
|
337
337
|
var e = !1;
|
|
338
338
|
try {
|
|
339
339
|
document.implementation.createHTMLDocument("").open();
|
|
340
340
|
} catch {
|
|
341
|
-
|
|
341
|
+
D.ActiveXObject && (e = !0);
|
|
342
342
|
}
|
|
343
343
|
return e;
|
|
344
344
|
}
|
|
345
|
-
var
|
|
346
|
-
function
|
|
347
|
-
var n = typeof e == "string" ?
|
|
348
|
-
return
|
|
345
|
+
var j = O() ? D.DOMParser : k();
|
|
346
|
+
function M(e, t) {
|
|
347
|
+
var n = typeof e == "string" ? te().parseFromString("<x-turndown id=\"turndown-root\">" + e + "</x-turndown>", "text/html").getElementById("turndown-root") : e.cloneNode(!0);
|
|
348
|
+
return ee({
|
|
349
349
|
element: n,
|
|
350
350
|
isBlock: s,
|
|
351
351
|
isVoid: l,
|
|
352
|
-
isPre: t.preformattedCode ?
|
|
352
|
+
isPre: t.preformattedCode ? ne : null
|
|
353
353
|
}), n;
|
|
354
354
|
}
|
|
355
|
-
var
|
|
356
|
-
function
|
|
357
|
-
return
|
|
355
|
+
var N;
|
|
356
|
+
function te() {
|
|
357
|
+
return N ||= new j(), N;
|
|
358
358
|
}
|
|
359
|
-
function
|
|
359
|
+
function ne(e) {
|
|
360
360
|
return e.nodeName === "PRE" || e.nodeName === "CODE";
|
|
361
361
|
}
|
|
362
|
-
function
|
|
363
|
-
return e.isBlock = s(e), e.isCode = e.nodeName === "CODE" || e.parentNode.isCode, e.isBlank =
|
|
362
|
+
function P(e, t) {
|
|
363
|
+
return e.isBlock = s(e), e.isCode = e.nodeName === "CODE" || e.parentNode.isCode, e.isBlank = F(e), e.flankingWhitespace = I(e, t), e;
|
|
364
364
|
}
|
|
365
|
-
function
|
|
365
|
+
function F(e) {
|
|
366
366
|
return !l(e) && !f(e) && /^\s*$/i.test(e.textContent) && !u(e) && !p(e);
|
|
367
367
|
}
|
|
368
|
-
function
|
|
368
|
+
function I(e, t) {
|
|
369
369
|
if (e.isBlock || t.preformattedCode && e.isCode) return {
|
|
370
370
|
leading: "",
|
|
371
371
|
trailing: ""
|
|
372
372
|
};
|
|
373
|
-
var n =
|
|
374
|
-
return n.leadingAscii &&
|
|
373
|
+
var n = L(e.textContent);
|
|
374
|
+
return n.leadingAscii && R("left", e, t) && (n.leading = n.leadingNonAscii), n.trailingAscii && R("right", e, t) && (n.trailing = n.trailingNonAscii), {
|
|
375
375
|
leading: n.leading,
|
|
376
376
|
trailing: n.trailing
|
|
377
377
|
};
|
|
378
378
|
}
|
|
379
|
-
function
|
|
379
|
+
function L(e) {
|
|
380
380
|
var t = e.match(/^(([ \t\r\n]*)(\s*))(?:(?=\S)[\s\S]*\S)?((\s*?)([ \t\r\n]*))$/);
|
|
381
381
|
return {
|
|
382
382
|
leading: t[1],
|
|
@@ -387,13 +387,13 @@ function B(e) {
|
|
|
387
387
|
trailingAscii: t[6]
|
|
388
388
|
};
|
|
389
389
|
}
|
|
390
|
-
function
|
|
390
|
+
function R(e, t, n) {
|
|
391
391
|
var r, i, a;
|
|
392
392
|
return e === "left" ? (r = t.previousSibling, i = / $/) : (r = t.nextSibling, i = /^ /), r && (r.nodeType === 3 ? a = i.test(r.nodeValue) : n.preformattedCode && r.nodeName === "CODE" ? a = !1 : r.nodeType === 1 && !s(r) && (a = i.test(r.textContent))), a;
|
|
393
393
|
}
|
|
394
|
-
var
|
|
395
|
-
function
|
|
396
|
-
if (!(this instanceof
|
|
394
|
+
var z = Array.prototype.reduce;
|
|
395
|
+
function B(e) {
|
|
396
|
+
if (!(this instanceof B)) return new B(e);
|
|
397
397
|
var n = {
|
|
398
398
|
rules: v,
|
|
399
399
|
headingStyle: "setext",
|
|
@@ -419,12 +419,12 @@ function U(e) {
|
|
|
419
419
|
};
|
|
420
420
|
this.options = t({}, n, e), this.rules = new S(this.options);
|
|
421
421
|
}
|
|
422
|
-
|
|
422
|
+
B.prototype = {
|
|
423
423
|
turndown: function(e) {
|
|
424
|
-
if (!
|
|
424
|
+
if (!G(e)) throw TypeError(e + " is not a string, or an element/document/fragment node.");
|
|
425
425
|
if (e === "") return "";
|
|
426
|
-
var t =
|
|
427
|
-
return
|
|
426
|
+
var t = V.call(this, new M(e, this.options));
|
|
427
|
+
return H.call(this, t);
|
|
428
428
|
},
|
|
429
429
|
use: function(e) {
|
|
430
430
|
if (Array.isArray(e)) for (var t = 0; t < e.length; t++) this.use(e[t]);
|
|
@@ -445,35 +445,93 @@ U.prototype = {
|
|
|
445
445
|
return _(e);
|
|
446
446
|
}
|
|
447
447
|
};
|
|
448
|
-
function
|
|
448
|
+
function V(e) {
|
|
449
449
|
var t = this;
|
|
450
|
-
return
|
|
451
|
-
n = new
|
|
450
|
+
return z.call(e.childNodes, function(e, n) {
|
|
451
|
+
n = new P(n, t.options);
|
|
452
452
|
var r = "";
|
|
453
|
-
return n.nodeType === 3 ? r = n.isCode ? n.nodeValue : t.escape(n.nodeValue) : n.nodeType === 1 && (r =
|
|
453
|
+
return n.nodeType === 3 ? r = n.isCode ? n.nodeValue : t.escape(n.nodeValue) : n.nodeType === 1 && (r = U.call(t, n)), W(e, r);
|
|
454
454
|
}, "");
|
|
455
455
|
}
|
|
456
|
-
function
|
|
456
|
+
function H(e) {
|
|
457
457
|
var t = this;
|
|
458
458
|
return this.rules.forEach(function(n) {
|
|
459
|
-
typeof n.append == "function" && (e =
|
|
459
|
+
typeof n.append == "function" && (e = W(e, n.append(t.options)));
|
|
460
460
|
}), e.replace(/^[\t\r\n]+/, "").replace(/[\t\r\n\s]+$/, "");
|
|
461
461
|
}
|
|
462
|
-
function
|
|
463
|
-
var t = this.rules.forNode(e), n =
|
|
462
|
+
function U(e) {
|
|
463
|
+
var t = this.rules.forNode(e), n = V.call(this, e), r = e.flankingWhitespace;
|
|
464
464
|
return (r.leading || r.trailing) && (n = n.trim()), r.leading + t.replacement(n, e, this.options) + r.trailing;
|
|
465
465
|
}
|
|
466
|
-
function
|
|
466
|
+
function W(e, t) {
|
|
467
467
|
var n = i(e), a = r(t), o = Math.max(e.length - n.length, t.length - a.length);
|
|
468
468
|
return n + "\n\n".substring(0, o) + a;
|
|
469
469
|
}
|
|
470
|
-
function
|
|
470
|
+
function G(e) {
|
|
471
471
|
return e != null && (typeof e == "string" || e.nodeType && (e.nodeType === 1 || e.nodeType === 9 || e.nodeType === 11));
|
|
472
472
|
}
|
|
473
473
|
//#endregion
|
|
474
474
|
//#region lib/utils/html-to-markdown.ts
|
|
475
|
-
var
|
|
476
|
-
|
|
475
|
+
var K = "scribe-table-break", q = (/* @__PURE__ */ "address.article.aside.blockquote.details.dialog.dd.div.dl.dt.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hr.li.main.menu.nav.ol.p.pre.section.summary.table.ul".split(".")).join(","), J = /* @__PURE__ */ new Set([
|
|
476
|
+
"A",
|
|
477
|
+
"B",
|
|
478
|
+
"BR",
|
|
479
|
+
"CODE",
|
|
480
|
+
"DEL",
|
|
481
|
+
"EM",
|
|
482
|
+
"I",
|
|
483
|
+
"IMG",
|
|
484
|
+
"S",
|
|
485
|
+
"STRONG"
|
|
486
|
+
]), Y = (e) => J.has(e.tagName) || e.tagName === "SPAN" && e.getAttribute("data-type") === "latex", X = (e) => Y(e) && Array.from(e.querySelectorAll("*")).every(Y), Z = (e) => e.nodeType !== Node.TEXT_NODE || !!e.textContent?.trim(), re = (e) => {
|
|
487
|
+
let t = Array.from(e.childNodes).filter(Z);
|
|
488
|
+
return t.length === 0 ? !0 : t.length === 1 && t[0] instanceof HTMLParagraphElement ? !t[0].querySelector(q) && Array.from(t[0].children).every(X) : t.every((e) => !(e instanceof Element) && e.nodeType === Node.TEXT_NODE || e instanceof Element && !e.matches(q) && !e.querySelector(q) && X(e));
|
|
489
|
+
}, ie = (e) => e.hasAttribute("width") || /(?:^|;)\s*width\s*:/i.test(e.getAttribute("style") ?? "") ? !0 : Array.from(e.querySelectorAll("th, td, col")).some((e) => !!(e.hasAttribute("colwidth") || e.hasAttribute("width") || /(?:^|;)\s*width\s*:/i.test(e.getAttribute("style") ?? ""))), Q = (e) => {
|
|
490
|
+
let t = e.style.textAlign.trim().toLowerCase(), n = (e.getAttribute("align") ?? "").trim().toLowerCase();
|
|
491
|
+
if (t && n && t !== n) return;
|
|
492
|
+
let r = t || n;
|
|
493
|
+
if (!r) return null;
|
|
494
|
+
if (r === "left" || r === "center" || r === "right") return r;
|
|
495
|
+
}, ae = (e) => {
|
|
496
|
+
if (e.caption || e.tFoot || ie(e)) return null;
|
|
497
|
+
let t = Array.from(e.rows), n = t[0]?.cells.length ?? 0;
|
|
498
|
+
if (t.length === 0 || n === 0) return null;
|
|
499
|
+
let r = t.map((e) => Array.from(e.cells));
|
|
500
|
+
if (r.some((t, r) => t.length !== n || t.some((t) => t.closest("table") !== e || t.colSpan !== 1 || t.rowSpan !== 1 || !re(t) || (r === 0 ? t.tagName !== "TH" : t.tagName !== "TD")))) return null;
|
|
501
|
+
let i = r[0].map((e, t) => {
|
|
502
|
+
let n = r.map((e) => Q(e[t])), i = n[0];
|
|
503
|
+
if (!(i === void 0 || n.some((e) => e !== i))) return i;
|
|
504
|
+
});
|
|
505
|
+
return i.some((e) => e === void 0) ? null : {
|
|
506
|
+
rows: r,
|
|
507
|
+
alignments: i
|
|
508
|
+
};
|
|
509
|
+
}, oe = (e, t) => {
|
|
510
|
+
let n = Array.from(t.childNodes).filter(Z), r = (n.length === 1 && n[0] instanceof HTMLParagraphElement ? n[0] : t).cloneNode(!0);
|
|
511
|
+
r.querySelectorAll("br").forEach((e) => {
|
|
512
|
+
e.replaceWith(e.ownerDocument.createTextNode(K));
|
|
513
|
+
});
|
|
514
|
+
let i = e.turndown(r.innerHTML).split(K).join("<br>").split("|").join("\\|").trim();
|
|
515
|
+
return /[\r\n]/.test(i) ? null : i;
|
|
516
|
+
}, $ = (e) => {
|
|
517
|
+
let t = e.cloneNode(!0);
|
|
518
|
+
return t.querySelectorAll("span[data-type=\"latex\"]").forEach((e) => {
|
|
519
|
+
e.textContent === "•" && (e.textContent = "");
|
|
520
|
+
}), t.outerHTML;
|
|
521
|
+
}, se = (e) => {
|
|
522
|
+
e.addRule("scribeTable", {
|
|
523
|
+
filter: "table",
|
|
524
|
+
replacement: (t, n) => {
|
|
525
|
+
let r = n, i = ae(r);
|
|
526
|
+
if (!i) return `\n\n${$(r)}\n\n`;
|
|
527
|
+
let { rows: a, alignments: o } = i, s = a.map((t) => t.map((t) => oe(e, t)));
|
|
528
|
+
if (s.some((e) => e.some((e) => e === null))) return `\n\n${$(r)}\n\n`;
|
|
529
|
+
let c = s.map((e) => `| ${e.join(" | ")} |`), l = `| ${o.map((e) => e === "left" ? ":---" : e === "center" ? ":---:" : e === "right" ? "---:" : "---").join(" | ")} |`;
|
|
530
|
+
return c.splice(1, 0, l), `\n\n${c.join("\n")}\n\n`;
|
|
531
|
+
}
|
|
532
|
+
});
|
|
533
|
+
}, ce = (t) => {
|
|
534
|
+
let n = new B({
|
|
477
535
|
headingStyle: "atx",
|
|
478
536
|
hr: "---",
|
|
479
537
|
bulletListMarker: "-",
|
|
@@ -492,7 +550,7 @@ var Y = (t) => {
|
|
|
492
550
|
replacement: function(e) {
|
|
493
551
|
return "~~" + e + "~~";
|
|
494
552
|
}
|
|
495
|
-
}), n.turndown(e.sanitize(((e) => e.replace(/<span([^>]+data-type="latex"[^>]*)><\/span>/g, "<span$1>•</span>"))(t)));
|
|
553
|
+
}), se(n), n.turndown(e.sanitize(((e) => e.replace(/<span([^>]+data-type="latex"[^>]*)><\/span>/g, "<span$1>•</span>"))(t), { ADD_ATTR: ["colwidth"] }));
|
|
496
554
|
};
|
|
497
555
|
//#endregion
|
|
498
|
-
export {
|
|
556
|
+
export { ce as t };
|
package/dist/main.css
CHANGED
|
@@ -151,10 +151,24 @@
|
|
|
151
151
|
width: 100%;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
.scribe-content .tiptap .tableWrapper {
|
|
155
|
+
margin: 0 0 1rem;
|
|
156
|
+
max-width: 100%;
|
|
157
|
+
overflow-x: auto;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.scribe-content .tiptap .tableWrapper table {
|
|
161
|
+
margin: 0;
|
|
162
|
+
min-width: 100%;
|
|
163
|
+
}
|
|
164
|
+
|
|
154
165
|
.scribe-content .tiptap th,
|
|
155
166
|
.scribe-content .tiptap td {
|
|
156
167
|
border: 1px solid var(--gray-6);
|
|
168
|
+
box-sizing: border-box;
|
|
169
|
+
min-width: 1em;
|
|
157
170
|
padding: 0.6rem 0.75rem;
|
|
171
|
+
position: relative;
|
|
158
172
|
text-align: left;
|
|
159
173
|
vertical-align: top;
|
|
160
174
|
}
|
|
@@ -164,6 +178,33 @@
|
|
|
164
178
|
font-weight: 600;
|
|
165
179
|
}
|
|
166
180
|
|
|
181
|
+
.scribe-content .tiptap .selectedCell::after {
|
|
182
|
+
background: var(--accent-a3);
|
|
183
|
+
bottom: 0;
|
|
184
|
+
content: "";
|
|
185
|
+
left: 0;
|
|
186
|
+
pointer-events: none;
|
|
187
|
+
position: absolute;
|
|
188
|
+
right: 0;
|
|
189
|
+
top: 0;
|
|
190
|
+
z-index: 2;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.scribe-content .tiptap .column-resize-handle {
|
|
194
|
+
background-color: var(--accent-9);
|
|
195
|
+
bottom: -2px;
|
|
196
|
+
pointer-events: none;
|
|
197
|
+
position: absolute;
|
|
198
|
+
right: -2px;
|
|
199
|
+
top: 0;
|
|
200
|
+
width: 4px;
|
|
201
|
+
z-index: 3;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.scribe-content .tiptap.resize-cursor {
|
|
205
|
+
cursor: col-resize;
|
|
206
|
+
}
|
|
207
|
+
|
|
167
208
|
.scribe-content .tiptap img {
|
|
168
209
|
display: block;
|
|
169
210
|
max-width: 100%;
|
|
@@ -182,7 +223,8 @@
|
|
|
182
223
|
width: 1em;
|
|
183
224
|
}
|
|
184
225
|
|
|
185
|
-
.scribe-bubble-menu
|
|
226
|
+
.scribe-bubble-menu,
|
|
227
|
+
.scribe-table-bubble-menu {
|
|
186
228
|
background: var(--color-panel-solid);
|
|
187
229
|
border: 1px solid var(--gray-6);
|
|
188
230
|
border-radius: 12px;
|
|
@@ -192,6 +234,15 @@
|
|
|
192
234
|
padding: 8px;
|
|
193
235
|
}
|
|
194
236
|
|
|
237
|
+
.scribe-table-bubble-menu {
|
|
238
|
+
max-width: calc(100vw - 16px);
|
|
239
|
+
overflow-x: auto;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.scribe-table-bubble-menu > * {
|
|
243
|
+
flex-shrink: 0;
|
|
244
|
+
}
|
|
245
|
+
|
|
195
246
|
.scribe-link-popover {
|
|
196
247
|
background: var(--color-panel-solid);
|
|
197
248
|
border: 1px solid var(--gray-6);
|
package/dist/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "./html-to-markdown-
|
|
2
|
-
import { t } from "./markdown-to-html-
|
|
1
|
+
import { t as e } from "./html-to-markdown-B6Uhn7ok.js";
|
|
2
|
+
import { t } from "./markdown-to-html-WmeDaJXP.js";
|
|
3
3
|
import { isInViewport as n } from "./utils/is-in-viewport.js";
|
|
4
4
|
import { convertLegacyMathDelimiters as r } from "./utils/convert-legacy-math-delimiters.js";
|
|
5
5
|
import { SuggestionItemType as i } from "./components/Scribe/extension/slashCommand/items.js";
|