@docs.plus/extension-hyperlink 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/README.md +60 -661
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +61 -83
- package/dist/index.d.ts +61 -83
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/styles.css +8 -49
- package/package.json +16 -14
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Ue=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var Pt=Object.prototype.hasOwnProperty;var Tt=(e,t)=>{for(var r in t)Ue(e,r,{get:t[r],enumerable:!0})},
|
|
1
|
+
"use strict";var Ue=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var Pt=Object.prototype.hasOwnProperty;var Tt=(e,t)=>{for(var r in t)Ue(e,r,{get:t[r],enumerable:!0})},Mt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ct(t))!Pt.call(e,o)&&o!==r&&Ue(e,o,{get:()=>t[o],enumerable:!(n=At(t,o))||n.enumerable});return e};var Rt=e=>Mt(Ue({},"__esModule",{value:!0}),e);var br={};Tt(br,{Copy:()=>ke,DANGEROUS_SCHEME_RE:()=>_e,DEFAULT_OFFSET:()=>Se,Hyperlink:()=>$e,LinkOff:()=>ve,Pencil:()=>Le,SAFE_WINDOW_FEATURES:()=>B,attachTooltip:()=>ge,buildPreviewOptionsFromAnchor:()=>F,copyToClipboard:()=>he,createHTMLElement:()=>d,createHyperlinkPopover:()=>G,createPopover:()=>_,default:()=>xr,editHyperlinkPopover:()=>J,getDefaultController:()=>g,getSpecialUrlInfo:()=>He,hideTooltip:()=>H,isSafeHref:()=>b,normalizeHref:()=>z,openCreateHyperlink:()=>le,openEditHyperlink:()=>ce,openPreviewHyperlink:()=>V,previewHyperlinkPopover:()=>Q,registerCustomProtocol:()=>xt.registerCustomProtocol,validateURL:()=>I});module.exports=Rt(br);var Re=require("@tiptap/core"),Ht=require("linkifyjs");var R="hyperlink",se="preventAutolink";var B="noopener,noreferrer";function Ve({markName:e,urls:t}){let r=(o,{commands:i,tr:s,dispatch:a})=>{if(!o.href)return!1;let[l]=t.forWrite({kind:"href",href:o.href});if(!l)return!1;let c=i.setMark(e,{...o,href:l.href});return c&&a&&s.setMeta(se,!0),c},n=({commands:o,tr:i,dispatch:s})=>{let a=o.unsetMark(e,{extendEmptyMarkRange:!0});return a&&s&&i.setMeta(se,!0),a};return{set:o=>i=>r(o,i),unset:()=>o=>n(o),toggle:o=>i=>i.editor.isActive(e)?n(i):r(o,i)}}var N=require("@floating-ui/dom"),Ot=400,Ze="visible",$=null,ae=null;function It(){return $||($=document.createElement("div"),$.className="floating-tooltip",$.setAttribute("role","tooltip"),document.body.append($)),$}function Ge(){ae!==null&&(clearTimeout(ae),ae=null)}async function Ut(e,t){if(!e.isConnected)return;let r=It();r.textContent=t;let{x:n,y:o}=await(0,N.computePosition)(e,r,{strategy:"fixed",placement:"top",middleware:[(0,N.offset)(6),(0,N.flip)(),(0,N.shift)({padding:8})]});r.style.left=`${n}px`,r.style.top=`${o}px`,r.classList.add(Ze)}function H(){Ge(),$?.classList.remove(Ze)}function ge(e,t){let r=()=>{Ge(),ae=setTimeout(()=>{ae=null,Ut(e,t)},Ot)},n=()=>{e.matches(":focus-visible")&&r()};return e.addEventListener("mouseenter",r),e.addEventListener("focus",n),e.addEventListener("mouseleave",H),e.addEventListener("blur",H),e.addEventListener("pointerdown",H),e.addEventListener("click",H),()=>{e.removeEventListener("mouseenter",r),e.removeEventListener("focus",n),e.removeEventListener("mouseleave",H),e.removeEventListener("blur",H),e.removeEventListener("pointerdown",H),e.removeEventListener("click",H),H()}}var A=require("@floating-ui/dom");function St(){let e=null,t=new Set,r=()=>e===null?{kind:"idle"}:{kind:"mounted",popoverKind:e.kind,element:e.metadata.element,referenceElement:e.metadata.referenceElement},n=()=>{let o=r();t.forEach(i=>i(o))};return{adopt(o,i,s){let a=e;return e={popover:o,kind:i,metadata:s},a&&a.popover!==o&&a.popover.destroy(),n(),()=>{e?.popover===o&&(e=null,n())}},close(){if(e===null)return;let{popover:o}=e;e=null,o.hide(),n()},reposition(o,i){e?.popover.updateReference(o,i)},getState:r,subscribe(o){return t.add(o),()=>{t.delete(o)}}}}var Nt=St();function g(){return Nt}var Se=8,_t=9999,Dt=8,Ft="-5px",Wt=50,Bt=150,Ye={top:"bottom",bottom:"top",left:"right",right:"left"};function Xe(e){return{getBoundingClientRect:()=>{let{x:t,y:r,width:n,height:o}=e.getBoundingClientRect();return{width:n,height:o,top:r,right:t+n,bottom:r+o,left:t,x:t,y:r}},contextElement:e.contextElement||document.body}}function $t(e){let t=e.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(!t.length)return[];let r=[];return t.forEach((n,o)=>{let i=s=>{if(s.key!=="Tab")return;s.preventDefault();let a=s.shiftKey?(o-1+t.length)%t.length:(o+1)%t.length;t[a].focus()};n.addEventListener("keydown",i),r.push(()=>n.removeEventListener("keydown",i))}),r}function _(e){let t=g(),{referenceElement:r,coordinates:n,content:o,placement:i="bottom-start",offset:s=Se,showArrow:a=!1,className:l="",zIndex:c=_t,role:p,ariaLabel:m,ignoreOutsideClickOn:v,crossAxisShift:f=!0,onShow:x,onHide:O}=e;if(!r&&!n)throw new Error("Either referenceElement or coordinates must be provided");let L=r||Xe(n),C=v?Array.isArray(v)?[...v]:[v]:r?[r]:[],P=[],h=!1,k=!1,y=null,w=E=>E?u.contains(E)?!1:!C.some(M=>M===E||M.contains(E)):!0,u=document.createElement("div");u.className=`floating-popover ${l}`.trim(),p&&u.setAttribute("role",p),m&&u.setAttribute("aria-label",m),u.setAttribute("tabindex","-1"),u.style.zIndex=String(c),u.style.position="fixed";let T=null;a&&(T=document.createElement("div"),T.className="floating-popover-arrow",u.appendChild(T));let U=document.createElement("div");U.className="floating-popover-content",u.appendChild(U);let ee=[],me=()=>{for(;ee.length;)ee.pop()()},de=E=>{me(),U.innerHTML="",U.appendChild(E),ee.push(...$t(u))};de(o);let te=async()=>{if(!h)return;let E=[(0,A.offset)(s),(0,A.flip)(),(0,A.shift)({padding:Dt,crossAxis:f})];T&&E.push((0,A.arrow)({element:T})),E.push((0,A.hide)({strategy:"referenceHidden"}));let{x:M,y:ye,placement:W,middlewareData:ie}=await(0,A.computePosition)(L,u,{placement:i,strategy:"fixed",middleware:E});if(!h)return;Object.assign(u.style,{left:`${M}px`,top:`${ye}px`}),u.style.visibility=ie.hide?.referenceHidden?"hidden":"visible";let Ie=W.split("-")[0];if(u.style.transformOrigin=Ye[Ie]??"center",T&&ie.arrow){let{x:Ke,y:ze}=ie.arrow,wt=Ye[Ie];T.className=`floating-popover-arrow floating-popover-arrow-${Ie}`,Object.assign(T.style,{left:Ke!=null?`${Ke}px`:"",top:ze!=null?`${ze}px`:"",right:"",bottom:"",[wt]:Ft})}},re=null,fe=null,oe=null,bt=()=>{fe&&(clearTimeout(fe),fe=null),oe&&(u.removeEventListener("transitionend",oe),oe=null)},Oe=()=>{bt(),u.remove()},ne=()=>{h&&(h=!1,k=!0,y?.(),y=null,me(),P.forEach(E=>E()),P.length=0,re?.(),re=null,u.classList.remove("visible"),oe=E=>{E.target===u&&Oe()},u.addEventListener("transitionend",oe),fe=setTimeout(Oe,Bt),O?.())},qe={element:u,show:()=>{if(h||k)return;document.body.appendChild(u),h=!0,y=(0,A.autoUpdate)(L,u,te),requestAnimationFrame(()=>u.classList.add("visible")),setTimeout(()=>{if(!h)return;let M=W=>{w(W.target)&&ne()},ye=W=>{if(!W.touches.length)return;let ie=document.elementFromPoint(W.touches[0].clientX,W.touches[0].clientY);w(ie)&&ne()};document.addEventListener("mousedown",M,{passive:!0}),document.addEventListener("touchstart",ye,{passive:!0}),P.push(()=>document.removeEventListener("mousedown",M),()=>document.removeEventListener("touchstart",ye))},Wt);let E=M=>{M.key==="Escape"&&(M.preventDefault(),ne())};u.addEventListener("keydown",E),P.push(()=>u.removeEventListener("keydown",E)),x?.()},hide:ne,destroy:()=>{ne(),k=!0,Oe()},isVisible:()=>h,setContent:de,updateReference:(E,M)=>{E?L=E:M&&(L=Xe(M)),h?(y?.(),y=(0,A.autoUpdate)(L,u,te)):te()}};return re=t.adopt(qe,"unknown",{element:u,referenceElement:r??null}),qe}var je="[extension-hyperlink]",q={warn:(...e)=>console.warn(je,...e),error:(...e)=>console.error(je,...e)};var he=async(e,t)=>{try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(e);else{let r=document.createElement("textarea");r.value=e,document.body.appendChild(r);let n=!1;try{r.select(),n=document.execCommand("copy")}finally{document.body.removeChild(r)}if(!n)return q.warn("copyToClipboard failed","execCommand returned false"),t?.(!1),!1}return t?.(!0),!0}catch(r){return q.warn("copyToClipboard failed",r),t?.(!1),!1}};var d=(e,t)=>{let r=document.createElement(e);return t&&Object.assign(r,t),r};var ke=({size:e=24,fill:t="currentColor"}={})=>`
|
|
2
2
|
<svg xmlns="http://www.w3.org/2000/svg" height="${e}" viewBox="0 -960 960 960" width="${e}" fill="${t}" aria-hidden="true">
|
|
3
3
|
<path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"/>
|
|
4
4
|
</svg>
|
|
@@ -18,5 +18,5 @@
|
|
|
18
18
|
<svg xmlns="http://www.w3.org/2000/svg" height="${e}" viewBox="0 -960 960 960" width="${e}" fill="${t}" aria-hidden="true">
|
|
19
19
|
<path d="M160-560v-80h360v80H160Zm0 160v-80h640v80H160Z"/>
|
|
20
20
|
</svg>
|
|
21
|
-
`;var Qe=require("linkifyjs");var qt=/^\+\d[\d\s.\-()]{4,18}\d$/,Kt=/\D/g,Z=e=>{if(!qt.test(e))return{ok:!1};let t=e.replace(Kt,"");return t.length<8||t.length>15?{ok:!1}:{ok:!0,href:`tel:+${t}`}};var zt=/^([a-z][a-z0-9+.-]*):/i,Vt=/^([#?/]|\.\.?\/)/,Zt=e=>{if(e.startsWith("//"))return!0;let t=e.match(zt);if(!t)return!1;if(e.includes("://"))return!0;let r=t[1].toLowerCase();return!(r==="localhost"||r.includes("."))},Gt=e=>{if(!e.includes("@"))return{ok:!1};let t=(0,Qe.find)(e);if(t.length!==1)return{ok:!1};let r=t[0];return r.type!=="email"||r.value!==e?{ok:!1}:{ok:!0,href:r.href}},K="https",z=(e,t=K)=>{let r=e.trim();if(!r)return"";let n=Z(r);if(n.ok)return n.href;let o=Gt(r);return o.ok?o.href:Zt(r)||Vt.test(r)?r:`${t}://${r}`},Ne=(e,t=K)=>e.type==="url"?z(e.value,t):e.href;var Yt={"mailto:":{type:"email",title:"Email",category:"communication"},"tel:":{type:"phone",title:"Phone",category:"communication"},"telprompt:":{type:"phone",title:"Phone",category:"communication"},"sms:":{type:"sms",title:"SMS",category:"communication"},"facetime:":{type:"facetime",title:"FaceTime",category:"communication"},"facetime-audio:":{type:"facetime-audio",title:"FaceTime Audio",category:"communication"}},Xt={"whatsapp:":{type:"whatsapp",title:"WhatsApp",category:"social"},"tg:":{type:"telegram",title:"Telegram",category:"social"},"discord:":{type:"discord",title:"Discord",category:"social"},"skype:":{type:"skype",title:"Skype",category:"social"},"slack:":{type:"slack",title:"Slack",category:"social"},"twitter:":{type:"twitter",title:"Twitter",category:"social"},"fb:":{type:"facebook",title:"Facebook",category:"social"},"instagram:":{type:"instagram",title:"Instagram",category:"social"},"linkedin:":{type:"linkedin",title:"LinkedIn",category:"social"},"snapchat:":{type:"snapchat",title:"Snapchat",category:"social"},"reddit:":{type:"reddit",title:"Reddit",category:"social"},"tiktok:":{type:"tiktok",title:"TikTok",category:"social"}},jt={"zoommtg:":{type:"zoom",title:"Zoom Meeting",category:"communication"},"zoomus:":{type:"zoom",title:"Zoom",category:"communication"},"msteams:":{type:"teams",title:"Microsoft Teams",category:"communication"},"webex:":{type:"webex",title:"Cisco Webex",category:"communication"}},Jt={"calshow:":{type:"calendar",title:"Calendar",category:"apple"},"x-apple-calevent:":{type:"calendar",title:"Calendar Event",category:"apple"},"x-apple-reminder:":{type:"reminders",title:"Reminders",category:"apple"},"contacts:":{type:"contacts",title:"Contacts",category:"apple"},"maps:":{type:"maps",title:"Maps",category:"apple"},"map:":{type:"maps",title:"Maps",category:"apple"},"music:":{type:"music",title:"Apple Music",category:"apple"},"videos:":{type:"apple-tv",title:"Apple TV",category:"apple"},"mobilenotes:":{type:"notes",title:"Notes",category:"apple"},"photos-redirect:":{type:"photos",title:"Photos",category:"apple"},"shortcuts:":{type:"shortcuts",title:"Shortcuts",category:"apple"},"itms-apps:":{type:"app-store",title:"App Store",category:"apple"}},Qt={"github:":{type:"github",title:"GitHub",category:"development"},"gitlab:":{type:"gitlab",title:"GitLab",category:"development"},"vscode:":{type:"vscode",title:"VS Code",category:"development"},"notion:":{type:"notion",title:"Notion",category:"productivity"},"obsidian:":{type:"obsidian",title:"Obsidian",category:"productivity"},"figma:":{type:"figma",title:"Figma",category:"development"}},er={"youtube:":{type:"youtube",title:"YouTube",category:"entertainment"},"spotify:":{type:"spotify",title:"Spotify",category:"entertainment"},"netflix:":{type:"netflix",title:"Netflix",category:"entertainment"},"twitch:":{type:"twitch",title:"Twitch",category:"entertainment"}},tr={"amazon:":{type:"amazon",title:"Amazon",category:"shopping"},"uber:":{type:"uber",title:"Uber",category:"other"},"lyft:":{type:"lyft",title:"Lyft",category:"other"}},rr={...Yt,...Xt,...jt,...Jt,...Qt,...er,...tr},or={"wa.me":{type:"whatsapp",title:"WhatsApp",category:"social"},"t.me":{type:"telegram",title:"Telegram",category:"social"},"discord.gg":{type:"discord",title:"Discord Invite",category:"social"},"zoom.us":{type:"zoom",title:"Zoom Meeting",category:"communication"},"meet.google.com":{type:"meet",title:"Google Meet",category:"communication"},"teams.microsoft.com":{type:"teams",title:"Microsoft Teams",category:"communication"},"github.com":{type:"github",title:"GitHub",category:"development"},"gitlab.com":{type:"gitlab",title:"GitLab",category:"development"},"figma.com":{type:"figma",title:"Figma",category:"development"},"notion.so":{type:"notion",title:"Notion",category:"productivity"},"twitter.com":{type:"twitter",title:"Twitter",category:"social"},"x.com":{type:"twitter",title:"X (Twitter)",category:"social"},"instagram.com":{type:"instagram",title:"Instagram",category:"social"},"linkedin.com":{type:"linkedin",title:"LinkedIn",category:"social"},"youtube.com":{type:"youtube",title:"YouTube",category:"entertainment"},"spotify.com":{type:"spotify",title:"Spotify",category:"entertainment"}},xe=e=>{let t=e.toLowerCase();for(let[r,n]of Object.entries(rr))if(t.startsWith(r))return n;try{let n=new URL(e).hostname.toLowerCase(),o=n.startsWith("www.")?n.slice(4):n;for(let[i,s]of Object.entries(or))if(o===i||o.endsWith(`.${i}`))return s}catch{}return null};var et=require("linkifyjs");var _e=/^\s*(javascript|data|vbscript|file|blob):/i,b=e=>typeof e!="string"||e.length===0?!1:!_e.test(e.replace(/[\u0000-\u0020]+/g,"")),nr=new Set(["http","https","ftp","ftps"]),ir=/^\d{1,3}(\.\d{1,3}){3}$/,sr=e=>xe(e)!==null,ar=e=>{let t;try{t=new URL(e)}catch{return!1}let r=t.hostname;return r?r==="localhost"||ir.test(r)||r.includes(":")?!0:r.includes("."):!1},I=(e,t)=>{let r=e.trim();if(!r||!b(r))return!1;try{if(Z(r).ok||sr(e))return t?.customValidator?t.customValidator(e):!0;let n=(0,et.find)(e).find(o=>o.isLink&&(t?.customValidator?t.customValidator(o.value):!0));return n?.href?pr(n.href)?ar(n.href):!0:!1}catch(n){return q.error("validateURL threw",n),!1}},lr=e=>{if(!e.trim())return null;let t=e.indexOf(":");return t===-1?null:e.substring(0,t).toLowerCase()},pr=e=>{let t=lr(e);return t!==null&&nr.has(t)};var cr=e=>{let t=d("div",{className:"hyperlink-create-popover"}),r=d("div",{className:"buttons-wrapper"}),n=d("div",{className:"inputs-wrapper"}),o=d("form",{}),i=d("input",{type:"text",inputMode:"url",name:"hyperlink-url",placeholder:"https://example.com",autocomplete:"new-password",spellcheck:!1,value:e}),s=d("button",{type:"submit",textContent:"Apply",disabled:e.trim().length===0}),a=d("div",{className:"error-message",textContent:"Please enter a valid URL"}),l=d("div",{className:"search-icon",innerHTML:Ee({size:24})});return n.append(l,i,a),r.append(s),o.append(n,r),t.append(o),{root:t,form:o,input:i,button:s,inputsWrapper:n,errorMessage:a}},ur=(e,t)=>{let{form:r,input:n,button:o,inputsWrapper:i,errorMessage:s}=e,{editor:a}=t,l=()=>{i.classList.add("error"),s.classList.add("show")},c=()=>{i.classList.remove("error"),s.classList.remove("show")},p=()=>{let m=n.value.trim().length>0;o.disabled=!m,m&&c()};n.addEventListener("input",p),n.addEventListener("paste",()=>setTimeout(p,0)),i.addEventListener("click",()=>n.focus()),n.addEventListener("keydown",m=>{m.key==="Escape"&&(m.preventDefault(),g().close(),a.commands.focus())}),r.addEventListener("submit",m=>{if(m.preventDefault(),o.disabled)return;let v=n.value.trim();if(!I(v,{customValidator:t.validate})){l();return}if(!a.can().setHyperlink({href:v})){l();return}let f=a.chain().setHyperlink({href:v});if(a.state.selection.empty&&f.insertContent({type:"text",text:v}),!f.run()){l();return}g().close(),a.commands.focus()})};function G(e){let t=cr(e.attributes?.href??"");return ur(t,e),t.root}function Y(e,t){let r=e.extensionManager.extensions.find(n=>n.name===M);if(!r)throw new Error(`${t}: Hyperlink extension not registered on editor`);return r.options}var D=null,X=null;function j(e,t){D={editor:e,popover:t},mr()}function mr(){X||(X=g().subscribe(e=>{D&&e.kind==="mounted"&&e.element===D.popover.element||(D=null,X?.(),X=null)}))}function tt(e){if(!D||D.editor!==e)return;let{popover:t}=D;D=null,X?.(),X=null;let r=g(),n=r.getState();n.kind==="mounted"&&n.element===t.element&&r.close()}var dr=100;function le(e,t={}){let r=Y(e,"openCreateHyperlink"),n=r.popovers.createHyperlink??G,o={editor:e,validate:r.validate,extensionName:M,attributes:t},i=n(o);if(!i)return!1;let{from:s,to:a}=e.state.selection,l=null,c=_({coordinates:{getBoundingClientRect:()=>{try{let p=e.view.coordsAtPos(s),m=e.view.coordsAtPos(a);return{x:Math.min(p.left,m.left),y:p.top,width:Math.abs(m.left-p.left),height:m.bottom-p.top}}catch{return queueMicrotask(()=>c.hide()),{x:-9999,y:-9999,width:0,height:0}}},contextElement:e.view.dom},content:i,placement:"bottom",showArrow:!0,role:"dialog",ariaLabel:"Add link",onShow:()=>{let p=i.querySelector("input");p&&(l=setTimeout(()=>p.focus(),dr))},onHide:()=>{l!=null&&(clearTimeout(l),l=null),x()}});return g().adopt(c,"create",{element:c.element,referenceElement:null}),j(e,c),c.show(),!0}var nt=require("@tiptap/core");var rt=require("linkifyjs");var fr=/\b[a-zA-Z][a-zA-Z0-9+.-]*:[^\s]+/g,yr=/[.,;:!?)\]}]+$/,gr=e=>{let t=e.value.match(yr);if(!t)return e;let r=t[0].length;return{...e,value:e.value.slice(0,-r),href:e.href.endsWith(t[0])?e.href.slice(0,-r):e.href,end:e.end-r}},De=e=>{let t=[],r=(0,rt.find)(e).filter(o=>o.isLink);if(t.push(...r),e.includes(":"))for(let o of e.matchAll(fr)){let i=o[0],s=o.index,a=s+i.length;!r.some(c=>s>=c.start&&a<=c.end)&&I(i)&&t.push({type:"url",href:i,value:i,start:s,end:a,isLink:!0})}let n=Z(e);return n.ok&&t.push({type:"phone",href:n.href,value:e,start:0,end:e.length,isLink:!0}),t.map(gr)};function ot(e={}){let t=e.defaultProtocol??K,r=e.protocols??[],n=e.isAllowedUri;return o=>b(o)?n?n(o,{defaultValidate:b,protocols:r,defaultProtocol:t}):!0:!1}function be(e={}){let t=e.defaultProtocol??K,r=e.gate??b,n=(o,i)=>{if(!r(o))return!1;let s=i?.validate??e.validate;if(s&&!s(o))return!1;let a=e.shouldAutoLink;return!(a&&!a(o))};return{forWrite(o,i){if(o.kind==="href"){let s=o.href.trim();if(!s)return[];let a=z(s,t);if(!r(a))return[];let l=i?.validate??e.validate;return l&&!l(a)?[]:[{href:a,start:0,end:o.href.length}]}if(o.kind==="match"){let s=Ne(o.match,t);return n(s,i)?[{href:s,start:0,end:o.match.value.length}]:[]}return De(o.text).filter(s=>s.isLink).map(s=>({href:Ne(s,t),start:s.start,end:s.end})).filter(s=>n(s.href,i))},forRead(o){let i=typeof o=="string"?o:"";return{navigable:b(i)&&r(i)}},detect(o){return De(o).some(i=>i.isLink)}}}var we=(e={})=>({tr:t,dispatch:r})=>{let{newURL:n,newText:o,title:i,image:s,validate:a,markName:l=M,urls:c=be()}=e;if(n&&!I(n,{customValidator:a}))return!1;let p=t.doc.type.schema.marks[l];if(!p)return!1;let{from:m}=t.selection,v=t.doc.resolve(m),f=(0,nt.getMarkRange)(v,p);if(!f)return!1;let H;try{H=t.doc.nodeAt(f.from)?.marks.find(k=>k.type===p)}catch(k){return q.warn("editHyperlink: failed to read mark at position",k),!1}if(!H)return!1;let O=H.attrs.href;if(n){let[k]=c.forWrite({kind:"href",href:n},{validate:a});if(!k)return!1;O=k.href}if(!r)return!0;let L=t.doc.textBetween(f.from,f.to),C=o||L,P=p.create({...H.attrs,href:O,...i!==void 0&&{title:i},...s!==void 0&&{image:s}});if(C===L)return t.removeMark(f.from,f.to,p),t.addMark(f.from,f.to,P),!0;let h=t.doc.nodeAt(f.from)?.marks.filter(k=>k.type!==p)??[];return t.replaceWith(f.from,f.to,t.doc.type.schema.text(C,[...h,P])),!0};function it(e){return{setHyperlink:e.set,unsetHyperlink:e.unset,toggleHyperlink:e.toggle,setLink:e.set,unsetLink:e.unset,toggleLink:e.toggle}}function st(e){let t={markName:e.markName,urls:e.urls,validate:e.validate};return{editHyperlink:r=>we({...r,...t}),editHyperlinkText:r=>we({newText:r,...t}),editHyperlinkHref:r=>we({newURL:r,...t})}}function at(){return{openCreateHyperlinkPopover:e=>({editor:t,dispatch:r})=>r?le(t,e??{}):!0}}function lt(e){let t=Ve({markName:e.markName,urls:e.urls});return{...it(t),...st({markName:e.markName,urls:e.urls,validate:e.options.validate}),...at()}}var S=require("@tiptap/core"),Ae=require("@tiptap/pm/state");var hr=/\s$/,kr=15,vr=e=>e.split(/\s+/).filter(t=>t!=="");function pt(e){let{urls:t,type:r}=e;return new Ae.Plugin({key:new Ae.PluginKey("hyperlinkAutolink"),appendTransaction:(n,o,i)=>{let s=n.some(f=>f.docChanged)&&!o.doc.eq(i.doc),a=n.some(f=>f.getMeta(se));if(!s||a)return;let{tr:l}=i,c=(0,S.combineTransactionSteps)(o.doc,[...n]),{mapping:p}=c,m=(0,S.getChangedRanges)(c),v=i.schema.marks.code??null;for(let{oldRange:f,newRange:H}of m){for(let y of(0,S.getMarksBetween)(f.from,f.to,o.doc).filter(w=>w.mark.type===r)){let w=p.map(y.from),u=p.map(y.to),T=(0,S.getMarksBetween)(w,u,i.doc).filter(re=>re.mark.type===r);if(!T.length)continue;let U=T[0],ee=o.doc.textBetween(y.from,y.to,void 0," "),me=i.doc.textBetween(U.from,U.to,void 0," "),de=t.detect(ee),te=t.detect(me);de&&!te&&l.removeMark(U.from,U.to,r)}let O=(0,S.findChildrenInRange)(i.doc,H,y=>y.isTextblock),L,C;if(O.length>1?(L=O[0],C=i.doc.textBetween(L.pos,L.pos+L.node.nodeSize,void 0," ")):O.length&&hr.test(i.doc.textBetween(H.from,H.to," "," "))&&(L=O[0],C=i.doc.textBetween(L.pos,H.to,void 0," ")),!L||!C)continue;let P=vr(C);if(!P.length)continue;let h=P[P.length-1],k=L.pos+C.lastIndexOf(h);t.forWrite({kind:"text",text:h}).map(y=>({href:y.href,from:k+y.start+1,to:k+y.end+1})).filter(({from:y})=>{let w=Math.max(0,y-kr),u=i.doc.textBetween(w,y," "," ");return!(u.includes(")}).filter(({from:y})=>v?!i.doc.nodeAt(y)?.marks.some(u=>u.type===v):!0).forEach(({from:y,to:w,href:u})=>{l.addMark(y,w,r.create({href:u}))})}if(l.steps.length)return l}})}var We=require("@tiptap/core"),Ce=require("@tiptap/pm/state");function pe(e,t,r){if(t.isConnected)return t;if(typeof r=="number")try{let{node:s}=e.view.domAtPos(r),l=("closest"in s?s:s.parentElement)?.closest("a");if(l&&e.view.dom.contains(l))return l}catch{}let n=t.getAttribute("href"),o=t.textContent;return Array.from(e.view.dom.querySelectorAll("a")).find(s=>s.getAttribute("href")===n&&s.textContent===o)??null}function F({editor:e,link:t,nodePos:r,validate:n,isAllowedUri:o,markName:i=M}){let s=e.view,a=pe(e,t,r)??t,l=r??-1,c=null;try{l=s.posAtDOM(a,0),l>=0&&(c=s.state.doc.nodeAt(l))}catch{c=null}let m=c?.marks.find(v=>v.type.name===i)?.attrs??{href:a.getAttribute("href"),target:null,rel:null,class:null,title:null,image:null};return{editor:e,link:a,nodePos:l,attrs:m,validate:n,isAllowedUri:o}}function J(e){let{editor:t,link:r,validate:n}=e,o=d("form",{className:"hyperlink-edit-popover"}),i=d("div",{className:"inputs-wrapper"}),s=d("div",{className:"buttons-wrapper"}),a=d("div",{className:"text-wrapper"}),l=d("div",{className:"search-icon",innerHTML:Je({size:24})}),c=d("input",{type:"text",value:r.innerText||"",placeholder:"Enter link text"}),p=d("div",{className:"error-message",textContent:"Please enter link text"}),m=d("div",{className:"href-wrapper"}),v=d("div",{className:"search-icon",innerHTML:Ee({size:24})}),f=d("input",{type:"text",inputMode:"url",value:r.getAttribute("href")??"",placeholder:"Enter URL",autocomplete:"new-password",spellcheck:!1}),H=d("div",{className:"error-message",textContent:"Please enter a valid URL"}),O=d("button",{type:"button",textContent:"Back",className:"back-button"}),L=d("button",{type:"submit",textContent:"Apply",className:"apply-button"}),C=(h,k)=>{h.classList.add("error"),k.classList.add("show")},P=(h,k)=>{h.classList.remove("error"),k.classList.remove("show")};return c.addEventListener("input",()=>P(a,p)),f.addEventListener("input",()=>P(m,H)),o.addEventListener("keydown",h=>{h.key==="Escape"&&(h.preventDefault(),g().close(),t.commands.focus())}),O.addEventListener("click",()=>{if(e.onBack){e.onBack();return}V(F({editor:t,link:r,validate:n,isAllowedUri:e.isAllowedUri,nodePos:e.nodePos,markName:e.markName}))}),o.addEventListener("submit",h=>{h.preventDefault();let k=c.value.trim(),y=f.value.trim(),w=!1;if(k||(C(a,p),w=!0),I(y,{customValidator:n})||(C(m,H),w=!0),w)return;let u=e.markName??M;if(!t.chain().focus().extendMarkRange(u).editHyperlink({newURL:y,newText:k}).run()){if(!t.isActive(u)){g().close();return}C(m,H);return}g().close()}),a.append(l,c,p),m.append(v,f,H),i.append(a,m),s.append(O,L),o.append(i,s),queueMicrotask(()=>c.focus()),o}function ce(e){let{editor:t}=e,{popovers:r}=Y(t,"openEditHyperlink"),o=(r.editHyperlink??J)(e);if(!o)return;let i=pe(t,e.link,e.nodePos),s=!1,a=_({coordinates:{getBoundingClientRect:()=>{if(i=i?pe(t,i,e.nodePos):null,!i)return s||(s=!0,queueMicrotask(()=>a.hide())),{x:-9999,y:-9999,width:0,height:0};let l=i.getBoundingClientRect();return{x:l.left,y:l.top,width:l.width,height:l.height}},contextElement:t.view.dom},content:o,placement:"bottom",showArrow:!0,role:"dialog",ariaLabel:"Edit link",onHide:x});g().adopt(a,"edit",{element:a.element,referenceElement:null}),j(t,a),a.show()}var Fe=(e,t,r)=>{let n=d("button",{type:"button",className:e,innerHTML:r});return n.setAttribute("aria-label",t),ge(n,t),n};function Q(e){let{link:t,editor:r}=e,n=e.attrs.href??"",o=b(n)?n:"",i=e.isAllowedUri??b,s=d("div",{className:"hyperlink-preview-popover"}),a=Fe("remove","Remove link",ve()),l=Fe("copy","Copy link",ke()),c=Fe("edit","Edit link",Le()),p=d("a",{target:"_blank",rel:"noopener noreferrer",href:o,innerText:n});return p.addEventListener("click",m=>{m.preventDefault(),o&&i(o)&&window.open(o,"_blank",B)}),a.addEventListener("click",()=>{g().close(),r.chain().focus().unsetHyperlink().run()}),c.addEventListener("click",()=>{ce({editor:r,link:t,nodePos:e.nodePos,validate:e.validate,isAllowedUri:e.isAllowedUri})}),l.addEventListener("click",()=>{he(n,m=>{m&&g().close()})}),s.append(p,l,c,a),s}function V(e){let{editor:t}=e,{popovers:r}=Y(t,"openPreviewHyperlink"),o=(r.previewHyperlink??Q)(e);if(!o)return!1;let i=_({referenceElement:e.link,content:o,placement:"bottom",showArrow:!0,role:"toolbar",onHide:x});return g().adopt(i,"preview",{element:i.element,referenceElement:e.link}),j(t,i),i.show(),!0}function ue(e,t){let r=e.target;if(!r)return null;let n=r.closest("a");return!n||!t.contains(n)?null:n}function ut(e,t){return t.urls.forRead(e).navigable}function ct(e,t,r,n){let o=F({editor:r.editor,link:t,validate:r.validate,isAllowedUri:l=>r.urls.forRead(l).navigable}),i=o.attrs.href??t.getAttribute("href"),s=t.target||o.attrs.target||"_blank";if(!r.previewPopover)return!e.editable&&ut(i,r)&&window.open(i,s,B),!e.editable;if(!i)return g().close(),!0;if(!V(o))return!0;if(n!==void 0){let{from:l,to:c}=e.state.selection;if(r.options.enableClickSelection&&e.editable&&l===c){let p=(0,We.getMarkRange)(e.state.doc.resolve(n),r.type);p?r.editor.chain().focus(n).setTextSelection(p).run():r.editor.chain().focus(n===0?"start":n).run()}else{let p=(0,We.getMarkRange)(e.state.doc.resolve(n),r.type),m=!!p&&l<p.to&&c>p.from,v=l===c||!m?n:{from:l,to:c};r.editor.chain().focus(n===0?"start":n).setTextSelection(v).run()}}return!0}function mt(e){return new Ce.Plugin({key:new Ce.PluginKey("hyperlinkClickHandler"),view(t){let r=i=>{i.button!==0||!ue(i,t.dom)||(i.preventDefault(),i.stopPropagation())},n=i=>{if(i.button!==0)return;ue(i,t.dom)&&i.preventDefault()},o=i=>{if(i.button!==1)return;let s=ue(i,t.dom);if(!s)return;i.preventDefault(),i.stopPropagation();let{attrs:a}=F({editor:e.editor,link:s}),l=a.href??s.getAttribute("href");ut(l,e)&&window.open(l,"_blank",B)};return t.dom.addEventListener("mousedown",r,!0),t.dom.addEventListener("click",n,!0),t.dom.addEventListener("auxclick",o,!0),{destroy(){t.dom.removeEventListener("mousedown",r,!0),t.dom.removeEventListener("click",n,!0),t.dom.removeEventListener("auxclick",o,!0)}}},props:{handleDOMEvents:{touchend:(t,r)=>{let n=ue(r,t.dom);if(!n)return!1;r.preventDefault();let{clientX:o,clientY:i}=r.changedTouches[0],s=t.posAtCoords({left:o,top:i});return ct(t,n,e,s?.pos)},click:(t,r)=>{if(r.button!==0)return!1;let n=ue(r,t.dom);if(!n)return!1;r.preventDefault();let o=t.posAtCoords({left:r.clientX,top:r.clientY});return ct(t,n,e,o?.pos)}}}})}var dt=require("@tiptap/core"),Er=/(\[([^\]]+)\]\(([^)]+)\))$/;function ft(e){return new dt.InputRule({find:Er,handler:({state:t,range:r,match:n})=>{let[,,o,i]=n,{tr:s}=t,a=r.from,l=r.to,[c]=e.urls.forWrite({kind:"href",href:i});if(!c)return;let p=t.doc.nodeAt(a)?.marks.filter(m=>m.type!==e.type)??[];s.replaceWith(a,l,t.schema.text(o,p)),s.addMark(a,a+o.length,e.type.create({href:c.href}))}})}var Pe=require("@tiptap/pm/state"),yt=require("linkifyjs");function gt(e){return new Pe.Plugin({key:new Pe.PluginKey("hyperlinkPasteHandler"),props:{handlePaste:(t,r,n)=>{let{selection:o}=t.state;if(o.empty)return!1;let i="";n.content.forEach(l=>{i+=l.textContent});let s=(0,yt.find)(i).find(l=>l.isLink&&l.value===i);if(!i||!s)return!1;let[a]=e.urls.forWrite({kind:"match",match:s});return a?e.editor.chain().setHyperlink({href:a.href}).run():!1}}})}var ht=require("@tiptap/core"),kt=require("linkifyjs");function vt(e){return(0,ht.markPasteRule)({find:t=>(0,kt.find)(t).filter(r=>r.isLink).flatMap(r=>{let[n]=e.urls.forWrite({kind:"match",match:r});return n?[{text:r.value,index:r.start,data:{href:n.href}}]:[]}),type:e.type,getAttributes:t=>({href:t.data.href})})}function Lr(e){return be({defaultProtocol:e.defaultProtocol,gate:ot({isAllowedUri:e.isAllowedUri,protocols:e.protocols,defaultProtocol:e.defaultProtocol}),validate:e.validate,shouldAutoLink:e.shouldAutoLink})}function Be({editor:e,type:t,options:r}){return{type:t,editor:e,urls:Lr(r),options:r,validate:r.validate,previewPopover:r.popovers.previewHyperlink??null}}function Te(e){let t=[];return e.options.autolink&&t.push(pt(e)),e.options.openOnClick&&t.push(mt(e)),e.options.linkOnPaste&&t.push(gt(e)),{inputRules:[ft(e)],pasteRules:[vt(e)],plugins:t}}var Et=new Set;function Lt(e,t){Et.has(e)||(Et.add(e),(0,xt.registerCustomProtocol)(e,t))}var $e=Me.Mark.create({name:M,priority:1e3,keepOnSplit:!1,markdownTokenName:"link",parseMarkdown:(e,t)=>{let r=z(e.href||"");return t.applyMark(M,t.parseInline(e.tokens??[]),{href:b(r)?r:""})},renderMarkdown:(e,t,r)=>{let n=t.renderChildren(e),o=e.attrs?.href||"",i=(b(o)?o:"").replace(/\)/g,"%29").replace(/\s/g,"%20");return`[${n}](${i})`},addStorage(){return{context:null}},onCreate(){this.options.protocols.forEach(e=>{typeof e=="string"?Lt(e):Lt(e.scheme,e.optionalSlashes)})},onDestroy(){tt(this.editor)},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],HTMLAttributes:{target:null,rel:"noopener noreferrer nofollow",class:null},popovers:{previewHyperlink:null,editHyperlink:null,createHyperlink:null},validate:void 0,defaultProtocol:K,isAllowedUri:void 0,shouldAutoLink:void 0,enableClickSelection:!1,exitable:!1}},addAttributes(){return{href:{default:null},target:{default:this.options.HTMLAttributes.target,rendered:!1},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class},title:{default:null},image:{default:null,rendered:!1}}},parseHTML(){return[{tag:"a[href]",getAttrs:e=>{if(typeof e=="string")return!1;let t=e.getAttribute("href")??"";return b(t)?null:!1}}]},renderHTML({HTMLAttributes:e}){let t=b(e.href)?e:{...e,href:""};return["a",(0,Me.mergeAttributes)(this.options.HTMLAttributes,t),0]},addCommands(){return lt({markName:this.name,options:this.options,urls:Re(this).urls})},addKeyboardShortcuts(){let e={"Mod-k":()=>this.editor.commands.openCreateHyperlinkPopover()};return this.options.exitable&&(e.ArrowRight=()=>xr(this.editor,this.type)),e},addInputRules(){return Te(Re(this)).inputRules},addPasteRules(){return Te(Re(this)).pasteRules},addProseMirrorPlugins(){return Te(Re(this)).plugins}});function Re(e){if(e.storage.context)return e.storage.context;let t=Be({editor:e.editor,type:e.type,options:e.options});return e.storage.context=t,t}function xr(e,t){let{state:r}=e,{selection:n,tr:o}=r;if(!n.empty)return!1;let i=n.$from,s=i.nodeAfter;return(i.nodeBefore?.marks.some(p=>p.type===t)??!1)&&(!s||!s.marks.some(p=>p.type===t))&&(o.setStoredMarks((r.storedMarks??i.marks()).filter(p=>p.type!==t)),e.view.dispatch(o)),!1}var Ht=require("linkifyjs"),Hr=$e;0&&(module.exports={Copy,DANGEROUS_SCHEME_RE,DEFAULT_OFFSET,Hyperlink,LinkOff,Pencil,SAFE_WINDOW_FEATURES,attachTooltip,buildPreviewOptionsFromAnchor,copyToClipboard,createHTMLElement,createHyperlinkPopover,createPopover,editHyperlinkPopover,getDefaultController,getSpecialUrlInfo,hideTooltip,isSafeHref,normalizeHref,openCreateHyperlink,openEditHyperlink,openPreviewHyperlink,previewHyperlinkPopover,registerCustomProtocol,validateURL});
|
|
21
|
+
`;var Qe=require("linkifyjs");var qt=/^\+\d[\d\s.\-()]{4,18}\d$/,Kt=/\D/g,Z=e=>{if(!qt.test(e))return{ok:!1};let t=e.replace(Kt,"");return t.length<8||t.length>15?{ok:!1}:{ok:!0,href:`tel:+${t}`}};var zt=/^([a-z][a-z0-9+.-]*):/i,Vt=/^([#?/]|\.\.?\/)/,Zt=e=>{if(e.startsWith("//"))return!0;let t=e.match(zt);if(!t)return!1;if(e.includes("://"))return!0;let r=t[1].toLowerCase();return!(r==="localhost"||r.includes("."))},Gt=e=>{if(!e.includes("@"))return{ok:!1};let t=(0,Qe.find)(e);if(t.length!==1)return{ok:!1};let r=t[0];return r.type!=="email"||r.value!==e?{ok:!1}:{ok:!0,href:r.href}},K="https",z=(e,t=K)=>{let r=e.trim();if(!r)return"";let n=Z(r);if(n.ok)return n.href;let o=Gt(r);return o.ok?o.href:Zt(r)||Vt.test(r)?r:`${t}://${r}`},Ne=(e,t=K)=>e.type==="url"?z(e.value,t):e.href;var Yt={"mailto:":{type:"email",title:"Email",category:"communication"},"tel:":{type:"phone",title:"Phone",category:"communication"},"telprompt:":{type:"phone",title:"Phone",category:"communication"},"sms:":{type:"sms",title:"SMS",category:"communication"},"facetime:":{type:"facetime",title:"FaceTime",category:"communication"},"facetime-audio:":{type:"facetime-audio",title:"FaceTime Audio",category:"communication"}},Xt={"whatsapp:":{type:"whatsapp",title:"WhatsApp",category:"social"},"tg:":{type:"telegram",title:"Telegram",category:"social"},"discord:":{type:"discord",title:"Discord",category:"social"},"skype:":{type:"skype",title:"Skype",category:"social"},"slack:":{type:"slack",title:"Slack",category:"social"},"twitter:":{type:"twitter",title:"Twitter",category:"social"},"fb:":{type:"facebook",title:"Facebook",category:"social"},"instagram:":{type:"instagram",title:"Instagram",category:"social"},"linkedin:":{type:"linkedin",title:"LinkedIn",category:"social"},"snapchat:":{type:"snapchat",title:"Snapchat",category:"social"},"reddit:":{type:"reddit",title:"Reddit",category:"social"},"tiktok:":{type:"tiktok",title:"TikTok",category:"social"}},jt={"zoommtg:":{type:"zoom",title:"Zoom Meeting",category:"communication"},"zoomus:":{type:"zoom",title:"Zoom",category:"communication"},"msteams:":{type:"teams",title:"Microsoft Teams",category:"communication"},"webex:":{type:"webex",title:"Cisco Webex",category:"communication"}},Jt={"calshow:":{type:"calendar",title:"Calendar",category:"apple"},"x-apple-calevent:":{type:"calendar",title:"Calendar Event",category:"apple"},"x-apple-reminder:":{type:"reminders",title:"Reminders",category:"apple"},"contacts:":{type:"contacts",title:"Contacts",category:"apple"},"maps:":{type:"maps",title:"Maps",category:"apple"},"map:":{type:"maps",title:"Maps",category:"apple"},"music:":{type:"music",title:"Apple Music",category:"apple"},"videos:":{type:"apple-tv",title:"Apple TV",category:"apple"},"mobilenotes:":{type:"notes",title:"Notes",category:"apple"},"photos-redirect:":{type:"photos",title:"Photos",category:"apple"},"shortcuts:":{type:"shortcuts",title:"Shortcuts",category:"apple"},"itms-apps:":{type:"app-store",title:"App Store",category:"apple"}},Qt={"github:":{type:"github",title:"GitHub",category:"development"},"gitlab:":{type:"gitlab",title:"GitLab",category:"development"},"vscode:":{type:"vscode",title:"VS Code",category:"development"},"notion:":{type:"notion",title:"Notion",category:"productivity"},"obsidian:":{type:"obsidian",title:"Obsidian",category:"productivity"},"figma:":{type:"figma",title:"Figma",category:"development"}},er={"youtube:":{type:"youtube",title:"YouTube",category:"entertainment"},"spotify:":{type:"spotify",title:"Spotify",category:"entertainment"},"netflix:":{type:"netflix",title:"Netflix",category:"entertainment"},"twitch:":{type:"twitch",title:"Twitch",category:"entertainment"}},tr={"amazon:":{type:"amazon",title:"Amazon",category:"shopping"},"uber:":{type:"uber",title:"Uber",category:"other"},"lyft:":{type:"lyft",title:"Lyft",category:"other"}},rr={...Yt,...Xt,...jt,...Jt,...Qt,...er,...tr},or={"wa.me":{type:"whatsapp",title:"WhatsApp",category:"social"},"t.me":{type:"telegram",title:"Telegram",category:"social"},"discord.gg":{type:"discord",title:"Discord Invite",category:"social"},"zoom.us":{type:"zoom",title:"Zoom Meeting",category:"communication"},"meet.google.com":{type:"meet",title:"Google Meet",category:"communication"},"teams.microsoft.com":{type:"teams",title:"Microsoft Teams",category:"communication"},"github.com":{type:"github",title:"GitHub",category:"development"},"gitlab.com":{type:"gitlab",title:"GitLab",category:"development"},"figma.com":{type:"figma",title:"Figma",category:"development"},"notion.so":{type:"notion",title:"Notion",category:"productivity"},"twitter.com":{type:"twitter",title:"Twitter",category:"social"},"x.com":{type:"twitter",title:"X (Twitter)",category:"social"},"instagram.com":{type:"instagram",title:"Instagram",category:"social"},"linkedin.com":{type:"linkedin",title:"LinkedIn",category:"social"},"youtube.com":{type:"youtube",title:"YouTube",category:"entertainment"},"spotify.com":{type:"spotify",title:"Spotify",category:"entertainment"}},He=e=>{let t=e.toLowerCase();for(let[r,n]of Object.entries(rr))if(t.startsWith(r))return n;try{let n=new URL(e).hostname.toLowerCase(),o=n.startsWith("www.")?n.slice(4):n;for(let[i,s]of Object.entries(or))if(o===i||o.endsWith(`.${i}`))return s}catch{}return null};var et=require("linkifyjs");var _e=/^\s*(javascript|data|vbscript|file|blob):/i,b=e=>typeof e!="string"||e.length===0?!1:!_e.test(e.replace(/[\u0000-\u0020]+/g,"")),nr=new Set(["http","https","ftp","ftps"]),ir=/^\d{1,3}(\.\d{1,3}){3}$/,sr=e=>He(e)!==null,ar=e=>{let t;try{t=new URL(e)}catch{return!1}let r=t.hostname;return r?r==="localhost"||ir.test(r)||r.includes(":")?!0:r.includes("."):!1},I=(e,t)=>{let r=e.trim();if(!r||!b(r))return!1;try{if(Z(r).ok||sr(e))return t?.customValidator?t.customValidator(e):!0;let n=(0,et.find)(e).find(o=>o.isLink&&(t?.customValidator?t.customValidator(o.value):!0));return n?.href?pr(n.href)?ar(n.href):!0:!1}catch(n){return q.error("validateURL threw",n),!1}},lr=e=>{if(!e.trim())return null;let t=e.indexOf(":");return t===-1?null:e.substring(0,t).toLowerCase()},pr=e=>{let t=lr(e);return t!==null&&nr.has(t)};var cr=e=>{let t=d("div",{className:"hyperlink-create-popover"}),r=d("div",{className:"buttons-wrapper"}),n=d("div",{className:"inputs-wrapper"}),o=d("form",{}),i=d("input",{type:"text",inputMode:"url",name:"hyperlink-url",placeholder:"https://example.com",autocomplete:"new-password",spellcheck:!1,value:e}),s=d("button",{type:"submit",textContent:"Apply",disabled:e.trim().length===0}),a=d("div",{className:"error-message",textContent:"Please enter a valid URL"}),l=d("div",{className:"search-icon",innerHTML:Ee({size:24})});return n.append(l,i,a),r.append(s),o.append(n,r),t.append(o),{root:t,form:o,input:i,button:s,inputsWrapper:n,errorMessage:a}},ur=(e,t)=>{let{form:r,input:n,button:o,inputsWrapper:i,errorMessage:s}=e,{editor:a}=t,l=()=>{i.classList.add("error"),s.classList.add("show")},c=()=>{i.classList.remove("error"),s.classList.remove("show")},p=()=>{let m=n.value.trim().length>0;o.disabled=!m,m&&c()};n.addEventListener("input",p),n.addEventListener("paste",()=>setTimeout(p,0)),i.addEventListener("click",()=>n.focus()),n.addEventListener("keydown",m=>{m.key==="Escape"&&(m.preventDefault(),g().close(),a.commands.focus())}),r.addEventListener("submit",m=>{if(m.preventDefault(),o.disabled)return;let v=n.value.trim();if(!I(v,{customValidator:t.validate})){l();return}if(!a.can().setHyperlink({href:v})){l();return}let f=a.chain().setHyperlink({href:v});if(a.state.selection.empty&&f.insertContent({type:"text",text:v}),!f.run()){l();return}g().close(),a.commands.focus()})};function G(e){let t=cr(e.attributes?.href??"");return ur(t,e),t.root}function Y(e,t){let r=e.extensionManager.extensions.find(n=>n.name===R);if(!r)throw new Error(`${t}: Hyperlink extension not registered on editor`);return r.options}var D=null,X=null;function j(e,t){D={editor:e,popover:t},mr()}function mr(){X||(X=g().subscribe(e=>{D&&e.kind==="mounted"&&e.element===D.popover.element||(D=null,X?.(),X=null)}))}function tt(e){if(!D||D.editor!==e)return;let{popover:t}=D;D=null,X?.(),X=null;let r=g(),n=r.getState();n.kind==="mounted"&&n.element===t.element&&r.close()}var dr=100;function le(e,t={}){let r=Y(e,"openCreateHyperlink"),n=r.popovers.createHyperlink??G,o={editor:e,validate:r.validate,extensionName:R,attributes:t},i=n(o);if(!i)return!1;let{from:s,to:a}=e.state.selection,l=null,c=_({coordinates:{getBoundingClientRect:()=>{try{let p=e.view.coordsAtPos(s),m=e.view.coordsAtPos(a);return{x:Math.min(p.left,m.left),y:p.top,width:Math.abs(m.left-p.left),height:m.bottom-p.top}}catch{return queueMicrotask(()=>c.hide()),{x:-9999,y:-9999,width:0,height:0}}},contextElement:e.view.dom},content:i,placement:"bottom",showArrow:!0,role:"dialog",ariaLabel:"Add link",onShow:()=>{let p=i.querySelector("input");p&&(l=setTimeout(()=>p.focus(),dr))},onHide:()=>{l!=null&&(clearTimeout(l),l=null),H()}});return g().adopt(c,"create",{element:c.element,referenceElement:null}),j(e,c),c.show(),!0}var nt=require("@tiptap/core");var rt=require("linkifyjs");var fr=/\b[a-zA-Z][a-zA-Z0-9+.-]*:[^\s]+/g,yr=/[.,;:!?)\]}]+$/,gr=e=>{let t=e.value.match(yr);if(!t)return e;let r=t[0].length;return{...e,value:e.value.slice(0,-r),href:e.href.endsWith(t[0])?e.href.slice(0,-r):e.href,end:e.end-r}},De=e=>{let t=[],r=(0,rt.find)(e).filter(o=>o.isLink);if(t.push(...r),e.includes(":"))for(let o of e.matchAll(fr)){let i=o[0],s=o.index,a=s+i.length;!r.some(c=>s>=c.start&&a<=c.end)&&I(i)&&t.push({type:"url",href:i,value:i,start:s,end:a,isLink:!0})}let n=Z(e);return n.ok&&t.push({type:"phone",href:n.href,value:e,start:0,end:e.length,isLink:!0}),t.map(gr)};function ot(e={}){let t=e.defaultProtocol??K,r=e.protocols??[],n=e.isAllowedUri;return o=>b(o)?n?n(o,{defaultValidate:b,protocols:r,defaultProtocol:t}):!0:!1}function be(e={}){let t=e.defaultProtocol??K,r=e.gate??b,n=(o,i)=>{if(!r(o))return!1;let s=i?.validate??e.validate;if(s&&!s(o))return!1;let a=e.shouldAutoLink;return!(a&&!a(o))};return{forWrite(o,i){if(o.kind==="href"){let s=o.href.trim();if(!s)return[];let a=z(s,t);if(!r(a))return[];let l=i?.validate??e.validate;return l&&!l(a)?[]:[{href:a,start:0,end:o.href.length}]}if(o.kind==="match"){let s=Ne(o.match,t);return n(s,i)?[{href:s,start:0,end:o.match.value.length}]:[]}return De(o.text).filter(s=>s.isLink).map(s=>({href:Ne(s,t),start:s.start,end:s.end})).filter(s=>n(s.href,i))},forRead(o){let i=typeof o=="string"?o:"";return{navigable:b(i)&&r(i)}},detect(o){return De(o).some(i=>i.isLink)}}}var we=(e={})=>({tr:t,dispatch:r})=>{let{newURL:n,newText:o,title:i,image:s,validate:a,markName:l=R,urls:c=be()}=e;if(n&&!I(n,{customValidator:a}))return!1;let p=t.doc.type.schema.marks[l];if(!p)return!1;let{from:m}=t.selection,v=t.doc.resolve(m),f=(0,nt.getMarkRange)(v,p);if(!f)return!1;let x;try{x=t.doc.nodeAt(f.from)?.marks.find(k=>k.type===p)}catch(k){return q.warn("editHyperlink: failed to read mark at position",k),!1}if(!x)return!1;let O=x.attrs.href;if(n){let[k]=c.forWrite({kind:"href",href:n},{validate:a});if(!k)return!1;O=k.href}if(!r)return!0;let L=t.doc.textBetween(f.from,f.to),C=o||L,P=p.create({...x.attrs,href:O,...i!==void 0&&{title:i},...s!==void 0&&{image:s}});if(C===L)return t.removeMark(f.from,f.to,p),t.addMark(f.from,f.to,P),!0;let h=t.doc.nodeAt(f.from)?.marks.filter(k=>k.type!==p)??[];return t.replaceWith(f.from,f.to,t.doc.type.schema.text(C,[...h,P])),!0};function it(e){return{setHyperlink:e.set,unsetHyperlink:e.unset,toggleHyperlink:e.toggle,setLink:e.set,unsetLink:e.unset,toggleLink:e.toggle}}function st(e){let t={markName:e.markName,urls:e.urls,validate:e.validate};return{editHyperlink:r=>we({...r,...t}),editHyperlinkText:r=>we({newText:r,...t}),editHyperlinkHref:r=>we({newURL:r,...t})}}function at(){return{openCreateHyperlinkPopover:e=>({editor:t,dispatch:r})=>r?le(t,e??{}):!0}}function lt(e){let t=Ve({markName:e.markName,urls:e.urls});return{...it(t),...st({markName:e.markName,urls:e.urls,validate:e.options.validate}),...at()}}var S=require("@tiptap/core"),Ae=require("@tiptap/pm/state");var hr=/\s$/,kr=15,vr=e=>e.split(/\s+/).filter(t=>t!=="");function pt(e){let{urls:t,type:r}=e;return new Ae.Plugin({key:new Ae.PluginKey("hyperlinkAutolink"),appendTransaction:(n,o,i)=>{let s=n.some(f=>f.docChanged)&&!o.doc.eq(i.doc),a=n.some(f=>f.getMeta(se));if(!s||a)return;let{tr:l}=i,c=(0,S.combineTransactionSteps)(o.doc,[...n]),{mapping:p}=c,m=(0,S.getChangedRanges)(c),v=i.schema.marks.code??null;for(let{oldRange:f,newRange:x}of m){for(let y of(0,S.getMarksBetween)(f.from,f.to,o.doc).filter(w=>w.mark.type===r)){let w=p.map(y.from),u=p.map(y.to),T=(0,S.getMarksBetween)(w,u,i.doc).filter(re=>re.mark.type===r);if(!T.length)continue;let U=T[0],ee=o.doc.textBetween(y.from,y.to,void 0," "),me=i.doc.textBetween(U.from,U.to,void 0," "),de=t.detect(ee),te=t.detect(me);de&&!te&&l.removeMark(U.from,U.to,r)}let O=(0,S.findChildrenInRange)(i.doc,x,y=>y.isTextblock),L,C;if(O.length>1?(L=O[0],C=i.doc.textBetween(L.pos,L.pos+L.node.nodeSize,void 0," ")):O.length&&hr.test(i.doc.textBetween(x.from,x.to," "," "))&&(L=O[0],C=i.doc.textBetween(L.pos,x.to,void 0," ")),!L||!C)continue;let P=vr(C);if(!P.length)continue;let h=P[P.length-1],k=L.pos+C.lastIndexOf(h);t.forWrite({kind:"text",text:h}).map(y=>({href:y.href,from:k+y.start+1,to:k+y.end+1})).filter(({from:y})=>{let w=Math.max(0,y-kr),u=i.doc.textBetween(w,y," "," ");return!(u.includes(")}).filter(({from:y})=>v?!i.doc.nodeAt(y)?.marks.some(u=>u.type===v):!0).forEach(({from:y,to:w,href:u})=>{l.addMark(y,w,r.create({href:u}))})}if(l.steps.length)return l}})}var We=require("@tiptap/core"),Ce=require("@tiptap/pm/state");function pe(e,t,r){if(t.isConnected)return t;if(typeof r=="number")try{let{node:s}=e.view.domAtPos(r),l=("closest"in s?s:s.parentElement)?.closest("a");if(l&&e.view.dom.contains(l))return l}catch{}let n=t.getAttribute("href"),o=t.textContent;return Array.from(e.view.dom.querySelectorAll("a")).find(s=>s.getAttribute("href")===n&&s.textContent===o)??null}function F({editor:e,link:t,nodePos:r,validate:n,isAllowedUri:o,markName:i=R}){let s=e.view,a=pe(e,t,r)??t,l=r??-1,c=null;try{l=s.posAtDOM(a,0),l>=0&&(c=s.state.doc.nodeAt(l))}catch{c=null}let m=c?.marks.find(v=>v.type.name===i)?.attrs??{href:a.getAttribute("href"),target:null,rel:null,class:null,title:null,image:null};return{editor:e,link:a,nodePos:l,attrs:m,validate:n,isAllowedUri:o}}function J(e){let{editor:t,link:r,validate:n}=e,o=d("form",{className:"hyperlink-edit-popover"}),i=d("div",{className:"inputs-wrapper"}),s=d("div",{className:"buttons-wrapper"}),a=d("div",{className:"text-wrapper"}),l=d("div",{className:"search-icon",innerHTML:Je({size:24})}),c=d("input",{type:"text",value:r.innerText||"",placeholder:"Enter link text"}),p=d("div",{className:"error-message",textContent:"Please enter link text"}),m=d("div",{className:"href-wrapper"}),v=d("div",{className:"search-icon",innerHTML:Ee({size:24})}),f=d("input",{type:"text",inputMode:"url",value:r.getAttribute("href")??"",placeholder:"Enter URL",autocomplete:"new-password",spellcheck:!1}),x=d("div",{className:"error-message",textContent:"Please enter a valid URL"}),O=d("button",{type:"button",textContent:"Back",className:"back-button"}),L=d("button",{type:"submit",textContent:"Apply",className:"apply-button"}),C=(h,k)=>{h.classList.add("error"),k.classList.add("show")},P=(h,k)=>{h.classList.remove("error"),k.classList.remove("show")};return c.addEventListener("input",()=>P(a,p)),f.addEventListener("input",()=>P(m,x)),o.addEventListener("keydown",h=>{h.key==="Escape"&&(h.preventDefault(),g().close(),t.commands.focus())}),O.addEventListener("click",()=>{if(e.onBack){e.onBack();return}V(F({editor:t,link:r,validate:n,isAllowedUri:e.isAllowedUri,nodePos:e.nodePos,markName:e.markName}))}),o.addEventListener("submit",h=>{h.preventDefault();let k=c.value.trim(),y=f.value.trim(),w=!1;if(k||(C(a,p),w=!0),I(y,{customValidator:n})||(C(m,x),w=!0),w)return;let u=e.markName??R;if(!t.chain().focus().extendMarkRange(u).editHyperlink({newURL:y,newText:k}).run()){if(!t.isActive(u)){g().close();return}C(m,x);return}g().close()}),a.append(l,c,p),m.append(v,f,x),i.append(a,m),s.append(O,L),o.append(i,s),queueMicrotask(()=>c.focus()),o}function ce(e){let{editor:t}=e,{popovers:r}=Y(t,"openEditHyperlink"),o=(r.editHyperlink??J)(e);if(!o)return;let i=pe(t,e.link,e.nodePos),s=!1,a=_({coordinates:{getBoundingClientRect:()=>{if(i=i?pe(t,i,e.nodePos):null,!i)return s||(s=!0,queueMicrotask(()=>a.hide())),{x:-9999,y:-9999,width:0,height:0};let l=i.getBoundingClientRect();return{x:l.left,y:l.top,width:l.width,height:l.height}},contextElement:t.view.dom},content:o,placement:"bottom",showArrow:!0,role:"dialog",ariaLabel:"Edit link",onHide:H});g().adopt(a,"edit",{element:a.element,referenceElement:null}),j(t,a),a.show()}var Fe=(e,t,r)=>{let n=d("button",{type:"button",className:e,innerHTML:r});return n.setAttribute("aria-label",t),ge(n,t),n};function Q(e){let{link:t,editor:r}=e,n=e.attrs.href??"",o=b(n)?n:"",i=e.isAllowedUri??b,s=d("div",{className:"hyperlink-preview-popover"}),a=Fe("remove","Remove link",ve()),l=Fe("copy","Copy link",ke()),c=Fe("edit","Edit link",Le()),p=d("a",{target:"_blank",rel:"noopener noreferrer",href:o,innerText:n});return p.addEventListener("click",m=>{m.preventDefault(),o&&i(o)&&window.open(o,"_blank",B)}),a.addEventListener("click",()=>{g().close(),r.chain().focus().unsetHyperlink().run()}),c.addEventListener("click",()=>{ce({editor:r,link:t,nodePos:e.nodePos,validate:e.validate,isAllowedUri:e.isAllowedUri})}),l.addEventListener("click",()=>{he(n,m=>{m&&g().close()})}),s.append(p,l,c,a),s}function V(e){let{editor:t}=e,{popovers:r}=Y(t,"openPreviewHyperlink"),o=(r.previewHyperlink??Q)(e);if(!o)return!1;let i=_({referenceElement:e.link,content:o,placement:"bottom",showArrow:!0,role:"toolbar",onHide:H});return g().adopt(i,"preview",{element:i.element,referenceElement:e.link}),j(t,i),i.show(),!0}function ue(e,t){let r=e.target;if(!r)return null;let n=r.closest("a");return!n||!t.contains(n)?null:n}function ut(e,t){return t.urls.forRead(e).navigable}function ct(e,t,r,n){let o=F({editor:r.editor,link:t,validate:r.validate,isAllowedUri:l=>r.urls.forRead(l).navigable}),i=o.attrs.href??t.getAttribute("href"),s=t.target||o.attrs.target||"_blank";if(!r.previewPopover)return!e.editable&&ut(i,r)&&window.open(i,s,B),!e.editable;if(!i)return g().close(),!0;if(!V(o))return!0;if(n!==void 0){let{from:l,to:c}=e.state.selection;if(r.options.enableClickSelection&&e.editable&&l===c){let p=(0,We.getMarkRange)(e.state.doc.resolve(n),r.type);p?r.editor.chain().focus(n).setTextSelection(p).run():r.editor.chain().focus(n===0?"start":n).run()}else{let p=(0,We.getMarkRange)(e.state.doc.resolve(n),r.type),m=!!p&&l<p.to&&c>p.from,v=l===c||!m?n:{from:l,to:c};r.editor.chain().focus(n===0?"start":n).setTextSelection(v).run()}}return!0}function mt(e){return new Ce.Plugin({key:new Ce.PluginKey("hyperlinkClickHandler"),view(t){let r=i=>{i.button!==0||!ue(i,t.dom)||(i.preventDefault(),i.stopPropagation())},n=i=>{if(i.button!==0)return;ue(i,t.dom)&&i.preventDefault()},o=i=>{if(i.button!==1)return;let s=ue(i,t.dom);if(!s)return;i.preventDefault(),i.stopPropagation();let{attrs:a}=F({editor:e.editor,link:s}),l=a.href??s.getAttribute("href");ut(l,e)&&window.open(l,"_blank",B)};return t.dom.addEventListener("mousedown",r,!0),t.dom.addEventListener("click",n,!0),t.dom.addEventListener("auxclick",o,!0),{destroy(){t.dom.removeEventListener("mousedown",r,!0),t.dom.removeEventListener("click",n,!0),t.dom.removeEventListener("auxclick",o,!0)}}},props:{handleDOMEvents:{touchend:(t,r)=>{let n=ue(r,t.dom);if(!n)return!1;r.preventDefault();let{clientX:o,clientY:i}=r.changedTouches[0],s=t.posAtCoords({left:o,top:i});return ct(t,n,e,s?.pos)},click:(t,r)=>{if(r.button!==0)return!1;let n=ue(r,t.dom);if(!n)return!1;r.preventDefault();let o=t.posAtCoords({left:r.clientX,top:r.clientY});return ct(t,n,e,o?.pos)}}}})}var dt=require("@tiptap/core"),Er=/(\[([^\]]+)\]\(([^)]+)\))$/;function ft(e){return new dt.InputRule({find:Er,handler:({state:t,range:r,match:n})=>{let[,,o,i]=n,{tr:s}=t,a=r.from,l=r.to,[c]=e.urls.forWrite({kind:"href",href:i});if(!c)return;let p=t.doc.nodeAt(a)?.marks.filter(m=>m.type!==e.type)??[];s.replaceWith(a,l,t.schema.text(o,p)),s.addMark(a,a+o.length,e.type.create({href:c.href}))}})}var Pe=require("@tiptap/pm/state"),yt=require("linkifyjs");function gt(e){return new Pe.Plugin({key:new Pe.PluginKey("hyperlinkPasteHandler"),props:{handlePaste:(t,r,n)=>{let{selection:o}=t.state;if(o.empty)return!1;let i="";n.content.forEach(l=>{i+=l.textContent});let s=(0,yt.find)(i).find(l=>l.isLink&&l.value===i);if(!i||!s)return!1;let[a]=e.urls.forWrite({kind:"match",match:s});return a?e.editor.chain().setHyperlink({href:a.href}).run():!1}}})}var ht=require("@tiptap/core"),kt=require("linkifyjs");function vt(e){return(0,ht.markPasteRule)({find:t=>(0,kt.find)(t).filter(r=>r.isLink).flatMap(r=>{let[n]=e.urls.forWrite({kind:"match",match:r});return n?[{text:r.value,index:r.start,data:{href:n.href}}]:[]}),type:e.type,getAttributes:t=>({href:t.data.href})})}function Lr(e){return be({defaultProtocol:e.defaultProtocol,gate:ot({isAllowedUri:e.isAllowedUri,protocols:e.protocols,defaultProtocol:e.defaultProtocol}),validate:e.validate,shouldAutoLink:e.shouldAutoLink})}function Be({editor:e,type:t,options:r}){return{type:t,editor:e,urls:Lr(r),options:r,validate:r.validate,previewPopover:r.popovers.previewHyperlink??null}}function Te(e){let t=[];return e.options.autolink&&t.push(pt(e)),e.options.openOnClick&&t.push(mt(e)),e.options.linkOnPaste&&t.push(gt(e)),{inputRules:[ft(e)],pasteRules:[vt(e)],plugins:t}}var Et=new Set;function Lt(e,t){Et.has(e)||(Et.add(e),(0,Ht.registerCustomProtocol)(e,t))}var $e=Re.Mark.create({name:R,priority:1e3,keepOnSplit:!1,inclusive:!1,markdownTokenName:"link",parseMarkdown:(e,t)=>{let r=z(e.href||"");return t.applyMark(R,t.parseInline(e.tokens??[]),{href:b(r)?r:""})},renderMarkdown:(e,t,r)=>{let n=t.renderChildren(e),o=e.attrs?.href||"",i=(b(o)?o:"").replace(/\)/g,"%29").replace(/\s/g,"%20");return`[${n}](${i})`},addStorage(){return{context:null}},onCreate(){this.options.protocols.forEach(e=>{typeof e=="string"?Lt(e):Lt(e.scheme,e.optionalSlashes)})},onDestroy(){tt(this.editor)},addOptions(){return{openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],HTMLAttributes:{target:null,rel:"noopener noreferrer nofollow",class:null},popovers:{previewHyperlink:null,editHyperlink:null,createHyperlink:null},validate:void 0,defaultProtocol:K,isAllowedUri:void 0,shouldAutoLink:void 0,enableClickSelection:!1,exitable:!1}},addAttributes(){return{href:{default:null},target:{default:this.options.HTMLAttributes.target,rendered:!1},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class,parseHTML:()=>null,rendered:!1},title:{default:null},image:{default:null,rendered:!1}}},parseHTML(){return[{tag:"a[href]",getAttrs:e=>{if(typeof e=="string")return!1;let t=e.getAttribute("href")??"";return b(t)?null:!1}}]},renderHTML({HTMLAttributes:e}){let t=b(e.href)?e:{...e,href:""};return["a",(0,Re.mergeAttributes)(this.options.HTMLAttributes,t),0]},addCommands(){return lt({markName:this.name,options:this.options,urls:Me(this).urls})},addKeyboardShortcuts(){let e={"Mod-k":()=>this.editor.commands.openCreateHyperlinkPopover()};return this.options.exitable&&(e.ArrowRight=()=>Hr(this.editor,this.type)),e},addInputRules(){return Te(Me(this)).inputRules},addPasteRules(){return Te(Me(this)).pasteRules},addProseMirrorPlugins(){return Te(Me(this)).plugins}});function Me(e){if(e.storage.context)return e.storage.context;let t=Be({editor:e.editor,type:e.type,options:e.options});return e.storage.context=t,t}function Hr(e,t){let{state:r}=e,{selection:n,tr:o}=r;if(!n.empty)return!1;let i=n.$from,s=i.nodeAfter;return(i.nodeBefore?.marks.some(p=>p.type===t)??!1)&&(!s||!s.marks.some(p=>p.type===t))&&(o.setStoredMarks((r.storedMarks??i.marks()).filter(p=>p.type!==t)),e.view.dispatch(o)),!1}var xt=require("linkifyjs"),xr=$e;0&&(module.exports={Copy,DANGEROUS_SCHEME_RE,DEFAULT_OFFSET,Hyperlink,LinkOff,Pencil,SAFE_WINDOW_FEATURES,attachTooltip,buildPreviewOptionsFromAnchor,copyToClipboard,createHTMLElement,createHyperlinkPopover,createPopover,editHyperlinkPopover,getDefaultController,getSpecialUrlInfo,hideTooltip,isSafeHref,normalizeHref,openCreateHyperlink,openEditHyperlink,openPreviewHyperlink,previewHyperlinkPopover,registerCustomProtocol,validateURL});
|
|
22
22
|
//# sourceMappingURL=index.cjs.map
|