mr-chat-bird 1.0.22 → 1.0.24

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/dist/index.css CHANGED
@@ -1 +1 @@
1
- .mrchat-richTextEditorContainer{position:relative;border-radius:16px}.mrchat-richTextEditorContainer .mantine-RichTextEditor-toolbar{border:none;background-color:transparent;padding:0;margin-bottom:4px;margin-left:3px;gap:.5rem}.mrchat-richTextEditorContainer .emoji-big{font-size:18px;line-height:1;vertical-align:middle;display:inline-block}.mrchat-richTextEditorContainer .mantine-RichTextEditor-Typography{font-size:15px}.mrchat-richTextEditorContainer .mantine-RichTextEditor-Typography,.mrchat-richTextEditorContainer .mantine-RichTextEditor-content{border-radius:16px;min-height:41px;max-height:200px;overflow:scroll}.mrchat-richTextEditorContainer .ProseMirror{padding:12px 16px 4px;overflow-wrap:anywhere;word-break:break-word}.mrchat-mainActionContainer{height:24px;margin-bottom:4px}.mrchat-mainActionAddIcon{margin-left:3px}.mrchat-mainActionEmojiIcon{margin:0 4px 0 3px}.mrchat-mainActionEmojiIcon svg{padding:2px;color:var(--mantine-color-text)}.mrchat-mainActionAddIcon svg{color:var(--mantine-color-text)}.mrchat-mainTextFormatIcon svg{position:relative;top:1.2px;padding:.7px;color:var(--mantine-color-text)}.mrchat-mainSendMsgIcon{position:absolute;right:6px}.mrchat-sm-mainSendMsgIcon{display:none;position:absolute;right:4px;bottom:1.5px}.mrchat-customToolActionItem{background-color:var(--mantine-color-body);border-color:var(--mantine-color-default-border);color:var(--mantine-color-text);border-radius:0;height:26px;min-height:26px;border-right:none}.mrchat-mainAddLabels{font-size:15px}.mrchat-mainAddLabels svg{width:19px;height:19px}@media(max-width:950px){.mrchat-secondRichTextEditorToolBar{display:none}}@media(max-width:475px){.mrchat-mainActionContainer{display:none}.mrchat-richTextEditorContainer .mantine-RichTextEditor-Typography,.mrchat-richTextEditorContainer .mantine-RichTextEditor-content{min-height:30px;border-radius:12px}.mrchat-richTextEditorContainer{border-radius:12px}.mrchat-richTextEditorContainer .ProseMirror{padding:8px 12px 4px}.mrchat-sm-mainSendMsgIcon{display:block}}:where([data-mantine-color-scheme=dark]) .mantine-RichTextEditor-control{background-color:var(--mantine-color-body)}.mrchat-overlay{position:absolute;inset:0;background:#0000004d;z-index:50}.mrchat-drawer{position:absolute;top:0;right:0;width:100%;max-width:400px;height:100%;background:var(--mantine-color-body);color:var(--mantine-color-text);display:flex;flex-direction:column}.mrchat-open{animation:slideIn .25s ease forwards}.mrchat-close{animation:slideOut .25s ease forwards}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOut{0%{transform:translate(0)}to{transform:translate(100%)}}.mrchat-header{height:60px;display:flex;align-items:center;gap:15px;padding:0 16px;border-bottom:1px solid var(--mantine-color-default-border)}.mrchat-backBtn{cursor:pointer;display:flex;align-items:center;color:var(--mantine-color-text)}.mrchat-profileSection{padding:30px 20px;border-bottom:1px solid var(--mantine-color-default-border);display:flex;flex-direction:column;align-items:center;text-align:center}.mrchat-actions{padding:10px}.mrchat-item{display:flex;align-items:center;gap:12px;padding:14px;border-radius:10px;cursor:pointer;color:var(--mantine-color-text)}.mrchat-item:hover{background:var(--mantine-color-default-hover)}.mrchat-itemDanger{color:var(--mantine-color-red-filled)}.mrchat-itemDanger:hover{background-color:color-mix(in srgb,var(--mantine-color-red-filled) 12%,transparent)}.mrchat-imagePreview{position:fixed;inset:0;background:#000;z-index:100;display:flex;justify-content:center;align-items:center}.mrchat-imagePreview img{max-width:90%;max-height:90%;border-radius:12px}.mrchat-chatWrapper{display:flex;flex-direction:column;align-items:center;min-height:500px;height:100%;flex:1;background-color:var(--mantine-color-body);color:var(--mantine-color-text);position:relative}.mrchat-loadingOverlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;backdrop-filter:blur(.5px)}[data-mantine-color-scheme=dark] .mrchat-loadingOverlay{background-color:#00000073}.mrchat-chatContainer{display:flex;width:100%;max-width:1260px;min-height:500px;height:100%;flex:1;overflow:hidden;border-radius:8px;background-color:var(--mantine-color-body);border:1px solid color-mix(in srgb,var(--mantine-color-text) 12%,transparent)}.mrchat-sidebar{width:280px;display:flex;flex-direction:column;min-height:0;height:100%;flex-shrink:0;border-right:1px solid color-mix(in srgb,var(--mantine-color-text) 12%,transparent);padding-top:12px;background-color:var(--mantine-color-body)}.mrchat-sidebarTop{padding:0 12px}.mrchat-topBar{display:flex;justify-content:space-between;align-items:center}.mrchat-topActions{display:flex;align-items:center;gap:10px}.mrchat-scrollWrapper{flex:1;min-height:0;height:100%;overflow-y:auto}.mrchat-mainAreaWrapper{flex:1;display:flex;min-height:0}.mrchat-hiddenOnMobile{display:none!important}.mrchat-scrollArea{flex:1;min-height:0;overflow-y:auto}.mrchat-scrollArea .mantine-ScrollArea-content{padding-bottom:60px}.mrchat-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover}.mrchat-mainArea{flex:1;display:flex;flex-direction:column;min-height:0}.mrchat-messageArea{flex:1;padding:16px 16px 10px;overflow-y:auto;min-height:0}.mrchat-messageBubble{max-width:fit-content;padding:8px 45px 8px 16px;margin-bottom:8px;position:relative}.mrchat-outgoing{color:var(--mantine-color-white);background-color:var(--mantine-primary-color-filled);margin-left:auto}.mrchat-incoming{background-color:var(--mantine-color-default-hover);color:var(--mantine-color-text);margin-right:auto}.mrchat-inputBar{display:flex;align-items:end;gap:8px;padding:0 12px 12px}@media(max-width:599px){.mrchat-chatContainer{flex-direction:column;min-height:100%}.mrchat-sidebar{width:100%;height:100%;border-right:none;border-bottom:1px solid color-mix(in srgb,var(--mantine-color-text) 12%,transparent);border-radius:0}.mrchat-chatItem{margin:2px 0}.mrchat-messageArea{padding:12px}.mrchat-mainArea{min-height:calc(100vh - 74px)}}.mrchat-chatItem{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;transition:background .2s;margin:2px 4px;border-radius:6px;color:var(--mantine-color-text)}.mrchat-chatItem:hover{background-color:var(--mantine-color-default-hover)}.mrchat-chatLabelItem{font-size:15px}.mrchat-chatHeader{display:flex;justify-content:flex-start;align-items:center;padding:12px 16px;border-bottom:1px solid color-mix(in srgb,var(--mantine-color-text) 12%,transparent);position:sticky;top:0;z-index:2;min-height:63px;gap:10px}.mrchat-backButton{padding:4px}.mrchat-receiverInfo{display:flex;align-items:center;gap:12px;cursor:pointer}.mrchat-emptyState{height:100%;display:flex;align-items:center;justify-content:center}.mrchat-encryptionMinimal{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;background:var(--mantine-color-default-hover);color:var(--mantine-color-dimmed);font-size:12px}.mrchat-encryptionText{font-size:16px;margin-left:3px}.mrchat-messageContent{max-width:370px;word-wrap:break-word;font-size:14px}.mrchat-messagePreviewContent p,.mrchat-messageContent p{margin:0;padding:0}.mrchat-activeChatItem,.mrchat-chatItem:hover{background-color:var(--mantine-color-default-hover)}.mrchat-messageTime{font-size:11px;opacity:.6;text-align:right;margin-top:4px;position:absolute;bottom:4px;right:8px;z-index:1}.mrchat-dateSeparator{text-align:center;font-size:13px;margin:12px 0;color:#888}.mrchat-chatInfo{width:100%;position:relative}.mrchat-messagePreview{display:flex;justify-content:space-between;align-items:end;margin-top:1px}.mrchat-messagePreviewTime{position:relative;top:1px;right:0}.mrchat-unreadBadge{background:var(--mantine-primary-color-filled);color:var(--mantine-color-white);font-size:10px;border-radius:50%;padding:3px 5px;min-width:18px;text-align:center;position:absolute;top:1px;right:0}.mrchat-messagePreviewContent{font-size:14px}
1
+ .mrchat-richTextEditorContainer{position:relative;border-radius:16px}.mrchat-richTextEditorContainer .mantine-RichTextEditor-toolbar{border:none;background-color:transparent;padding:0;margin-bottom:4px;margin-left:3px;gap:.5rem}.mrchat-richTextEditorContainer .emoji-big{font-size:18px;line-height:1;vertical-align:middle;display:inline-block}.mrchat-richTextEditorContainer .mantine-RichTextEditor-Typography{font-size:15px}.mrchat-richTextEditorContainer .mantine-RichTextEditor-Typography,.mrchat-richTextEditorContainer .mantine-RichTextEditor-content{border-radius:16px;min-height:41px;max-height:200px;overflow:scroll}.mrchat-richTextEditorContainer .ProseMirror{padding:12px 16px 4px;overflow-wrap:anywhere;word-break:break-word}.mrchat-mainActionContainer{height:24px;margin-bottom:4px}.mrchat-mainActionAddIcon{margin-left:3px}.mrchat-mainActionEmojiIcon{margin:0 4px 0 3px}.mrchat-mainActionEmojiIcon svg{padding:2px;color:var(--mantine-color-text)}.mrchat-mainActionAddIcon svg{color:var(--mantine-color-text)}.mrchat-mainTextFormatIcon svg{position:relative;top:1.2px;padding:.7px;color:var(--mantine-color-text)}.mrchat-mainSendMsgIcon{position:absolute;right:6px}.mrchat-sm-mainSendMsgIcon{display:none;position:absolute;right:4px;bottom:1.5px}.mrchat-customToolActionItem{background-color:var(--mantine-color-body);border-color:var(--mantine-color-default-border);color:var(--mantine-color-text);border-radius:0;height:26px;min-height:26px;border-right:none}.mrchat-mainAddLabels{font-size:15px}.mrchat-mainAddLabels svg{width:19px;height:19px}@media(max-width:950px){.mrchat-secondRichTextEditorToolBar{display:none}}@media(max-width:475px){.mrchat-mainActionContainer{display:none}.mrchat-richTextEditorContainer .mantine-RichTextEditor-Typography,.mrchat-richTextEditorContainer .mantine-RichTextEditor-content{min-height:30px;border-radius:12px}.mrchat-richTextEditorContainer{border-radius:12px}.mrchat-richTextEditorContainer .ProseMirror{padding:8px 12px 4px}.mrchat-sm-mainSendMsgIcon{display:block}}:where([data-mantine-color-scheme=dark]) .mantine-RichTextEditor-control{background-color:var(--mantine-color-body)}.mrchat-messageScroll{height:100%;overflow-y:auto}.mrchat-messageScrollContent{padding:16px 16px 10px}@media(max-width:599px){.mrchat-messageScrollContent{padding:4px 4px 10px}}.mrchat-overlay{position:absolute;inset:0;background:#0000004d;z-index:50}.mrchat-drawer{position:absolute;top:0;right:0;width:100%;max-width:400px;height:100%;background:var(--mantine-color-body);color:var(--mantine-color-text);display:flex;flex-direction:column}.mrchat-open{animation:slideIn .25s ease forwards}.mrchat-close{animation:slideOut .25s ease forwards}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOut{0%{transform:translate(0)}to{transform:translate(100%)}}.mrchat-header{height:60px;display:flex;align-items:center;gap:15px;padding:0 16px;border-bottom:1px solid var(--mantine-color-default-border)}.mrchat-backBtn{cursor:pointer;display:flex;align-items:center;color:var(--mantine-color-text)}.mrchat-profileSection{padding:30px 20px;border-bottom:1px solid var(--mantine-color-default-border);display:flex;flex-direction:column;align-items:center;text-align:center}.mrchat-actions{padding:10px}.mrchat-item{display:flex;align-items:center;gap:12px;padding:14px;border-radius:10px;cursor:pointer;color:var(--mantine-color-text)}.mrchat-item:hover{background:var(--mantine-color-default-hover)}.mrchat-itemDanger{color:var(--mantine-color-red-filled)}.mrchat-itemDanger:hover{background-color:color-mix(in srgb,var(--mantine-color-red-filled) 12%,transparent)}.mrchat-imagePreview{position:fixed;inset:0;background:#000;z-index:100;display:flex;justify-content:center;align-items:center}.mrchat-imagePreview img{max-width:90%;max-height:90%;border-radius:12px}.mrchat-chatWrapper{display:flex;flex-direction:column;align-items:stretch;width:100%;height:100%;flex:1;min-height:0;background-color:var(--mantine-color-body);color:var(--mantine-color-text);position:relative;overflow:hidden}.mrchat-loadingOverlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;backdrop-filter:blur(.5px)}[data-mantine-color-scheme=dark] .mrchat-loadingOverlay{background-color:#00000073}.mrchat-chatContainer{display:flex;width:100%;max-width:1260px;height:100%;flex:1;min-height:0;overflow:hidden;border-radius:8px;background-color:var(--mantine-color-body);border:1px solid color-mix(in srgb,var(--mantine-color-text) 12%,transparent)}.mrchat-sidebar{width:280px;display:flex;flex-direction:column;flex-shrink:0;height:100%;min-height:0;border-right:1px solid color-mix(in srgb,var(--mantine-color-text) 12%,transparent);padding-top:12px;background-color:var(--mantine-color-body);overflow:hidden}.mrchat-sidebarTop{padding:0 12px}.mrchat-topBar{display:flex;justify-content:space-between;align-items:center}.mrchat-topActions{display:flex;align-items:center;gap:10px}.mrchat-scrollWrapper{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.mrchat-mainAreaWrapper{display:flex;flex:1;min-height:0;overflow:hidden}.mrchat-hiddenOnMobile{display:none!important}.mrchat-scrollArea{flex:1;min-height:0;overflow-y:auto}.mrchat-scrollArea .mantine-ScrollArea-content{padding-bottom:60px}.mrchat-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover}.mrchat-mainArea{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;overflow:hidden}.mrchat-messageArea{flex:1;min-height:0;overflow:hidden;padding:0;display:flex;flex-direction:column}.mrchat-messageContentWrapper{padding:16px 16px 10px}.mrchat-messageBubble{width:fit-content;max-width:90%;min-width:0;padding:6px 45px 6px 12px;margin-bottom:4px;position:relative}.mrchat-outgoing{color:var(--mantine-color-white);background-color:var(--mantine-primary-color-filled);margin-left:auto}.mrchat-incoming{background-color:var(--mantine-color-default-hover);color:var(--mantine-color-text);margin-right:auto}.mrchat-inputBar{display:flex;align-items:end;gap:8px;padding:8px}.mrchat-chatItem{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;transition:background .2s;margin:2px 4px;border-radius:6px;color:var(--mantine-color-text)}.mrchat-chatItem:hover{background-color:var(--mantine-color-default-hover)}.mrchat-chatLabelItem{font-size:15px}.mrchat-chatHeader{display:flex;justify-content:flex-start;align-items:center;padding:12px 16px;border-bottom:1px solid color-mix(in srgb,var(--mantine-color-text) 12%,transparent);position:sticky;top:0;z-index:2;min-height:63px;gap:10px}.mrchat-backButton{padding:4px}.mrchat-receiverInfo{display:flex;align-items:center;gap:12px;cursor:pointer}.mrchat-emptyState{height:100%;display:flex;align-items:center;justify-content:center}.mrchat-encryptionMinimal{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;background:var(--mantine-color-default-hover);color:var(--mantine-color-dimmed);font-size:12px}.mrchat-encryptionText{font-size:16px;margin-left:3px}.mrchat-messageContent{max-width:370px;word-wrap:break-word;font-size:14px}.mrchat-messagePreviewContent p,.mrchat-messageContent p{margin:0;padding:0}.mrchat-activeChatItem,.mrchat-chatItem:hover{background-color:var(--mantine-color-default-hover)}.mrchat-messageTime{font-size:11px;opacity:.6;text-align:right;margin-top:4px;position:absolute;bottom:4px;right:8px;z-index:1}.mrchat-dateSeparator{text-align:center;font-size:13px;margin:12px 0;color:#888}.mrchat-chatInfo{width:100%;position:relative}.mrchat-messagePreview{display:flex;justify-content:space-between;align-items:end;margin-top:1px}.mrchat-messagePreviewTime{position:relative;top:1px;right:0}.mrchat-unreadBadge{background:var(--mantine-primary-color-filled);color:var(--mantine-color-white);font-size:10px;border-radius:50%;padding:3px 5px;min-width:18px;text-align:center;position:absolute;top:1px;right:0}.mrchat-messagePreviewContent{font-size:14px}@media(max-width:599px){.mrchat-chatHeader{min-height:50px;padding:6px}.mrchat-chatContainer{flex-direction:column;height:100%;min-height:0}.mrchat-sidebar{width:100%;height:100%;min-height:0;border-right:none;border-bottom:1px solid color-mix(in srgb,var(--mantine-color-text) 12%,transparent)}.mrchat-mainAreaWrapper{flex:1;min-height:0}.mrchat-mainArea{flex:1;min-height:0;height:100%}.mrchat-messageArea{flex:1;min-height:0;padding:0}.mrchat-chatItem{margin:2px}}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var Or=Object.create;var Ee=Object.defineProperty;var Br=Object.getOwnPropertyDescriptor;var $r=Object.getOwnPropertyNames;var Hr=Object.getPrototypeOf,_r=Object.prototype.hasOwnProperty;var jr=(e,t)=>{for(var n in t)Ee(e,n,{get:t[n],enumerable:!0})},kt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $r(t))!_r.call(e,o)&&o!==n&&Ee(e,o,{get:()=>t[o],enumerable:!(r=Br(t,o))||r.enumerable});return e};var H=(e,t,n)=>(n=e!=null?Or(Hr(e)):{},kt(t||!e||!e.__esModule?Ee(n,"default",{value:e,enumerable:!0}):n,e)),Ur=e=>kt(Ee({},"__esModule",{value:!0}),e);var vi={};jr(vi,{MrChat:()=>wt});module.exports=Ur(vi);var _a=require("@mantine/core/styles.css"),ja=require("@mantine/tiptap/styles.css"),Ua=require("@mantine/notifications/styles.css"),q=H(require("react")),Cr=require("@mantine/core"),Ir=require("@mantine/notifications");var Tt=require("@mantine/core"),Rr=["#e6f9ff","#b3ecff","#80dfff","#4dd2ff","#1ac5ff","#00b8e6","#0091b3","#006a80","#00434d","#001c1a"],Fr=["#e6f9f2","#c0f0de","#88e4c3","#4dd6a4","#26cb90","#00bf7d","#00a36c","#008d5d","#00764d","#005f3e"],Vr=["#ffe6e9","#fbbdc4","#f38b98","#ea576b","#e12c48","#d80a2d","#b30625","#8f041d","#6b0215","#47010e"],Wr=["#fff1e6","#ffd7b3","#ffb380","#ff8f4d","#ff6b1a","#e65c00","#b34700","#803300","#4d1f00","#1a0a00"],Kr=["#e6f9ff","#b3ecff","#80dfff","#4dd2ff","#1ac5ff","#00b8e6","#0091b3","#006a80","#00434d","#001c1a"],Mt={customBrand:Rr,emerald:Fr,ruby:Vr,sunset:Wr,ocean:Kr},St=e=>/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.test(e),Jr=e=>{let t=e.replace("#",""),n=t.length===3?t.split("").map(r=>r+r).join(""):t;return{r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16)}},qr=({r:e,g:t,b:n})=>`#${[e,t,n].map(r=>r.toString(16).padStart(2,"0")).join("")}`,Qe=e=>Math.min(255,Math.max(0,Math.round(e))),Xr=e=>{let{r:t,g:n,b:r}=Jr(e);return[.08,.18,.3,.42,.54,.66,.76,.86,.92,.98].map(i=>qr({r:Qe(t*i+255*(1-i)),g:Qe(n*i+255*(1-i)),b:Qe(r*i+255*(1-i))}))},Et=e=>{let t={...Mt},n=St(e)||!(e in Mt)?"customBrand":e;return St(e)&&(t.customBrand=Xr(e)),(0,Tt.createTheme)({primaryColor:n,colors:t})};var Ht=H(require("react")),_t=require("react-redux");var Bt=require("@reduxjs/toolkit");var Nt=require("@reduxjs/toolkit");var ie={BASE_URL:"",SOCKET_URL:""},Ct="",It=({baseUrl:e,socketUrl:t,apiKey:n})=>{e&&(ie.BASE_URL=e),t&&(ie.SOCKET_URL=t),Ct=n||""};var ae=()=>Ct;var At=H(require("axios")),Pt=At.default.create({headers:{"Content-Type":"application/json",Authorization:ae(),"Cache-Control":"no-cache",Pragma:"no-cache"}});Pt.interceptors.request.use(e=>(ie.BASE_URL?.trim()&&(e.baseURL=ie.BASE_URL),e.headers?.set?.("Authorization",ae()),e.headers?.set?.("Cache-Control","no-cache"),e.headers?.set?.("Pragma","no-cache"),e.headers?.set?.("Expires","0"),e));var Ce=Pt;var he=require("@mantine/notifications"),Yr={messagedUserList:null,messageList:[]},Lt=(0,Nt.createSlice)({name:"messages",initialState:Yr,reducers:{setMessagedUserList:(e,t)=>{let n=t.payload;if(n===null){e.messagedUserList=null;return}let r=n?.page??0;if(!e.messagedUserList||r===0){e.messagedUserList=n;return}let o=e.messagedUserList?.rows?.data??[],s=n?.rows?.data??[],i=[...o,...s],l=new Map;i.forEach(c=>{c?.chatId&&l.set(c.chatId,c)});let a=Array.from(l.values());e.messagedUserList={...n,rows:{...n.rows,data:a}}},setMessageList:(e,t)=>{let n=t.payload;if(n===null){e.messageList=[];return}let r=n?.page??0;if(!e.messageList?.rows?.data||r===0){e.messageList=n;return}e.messageList={...n,rows:{...n.rows,data:[...n.rows.data,...e.messageList.rows.data]}}},addNewMessage:(e,t)=>{e.messageList?.rows?.data&&e.messageList.rows.data.push(t.payload)},addUserToChatList:(e,t)=>{let n=t.payload;if(!e.messagedUserList){e.messagedUserList={hasMore:!1,rows:{success:!0,status:!0,message:"",data:[n]}};return}let r=e.messagedUserList.rows.data;e.messagedUserList.rows.data=r=r.filter(s=>s?.chatId);let o=r.findIndex(s=>s.chatId===n.chatId);if(o!==-1){let i={...r.splice(o,1)[0],...n};r.unshift(i)}else r.unshift(n)},resetMessageList:e=>{e.messageList=[]},updateUnreadCount:(e,t)=>{let{chatId:n,isActive:r}=t.payload,o=e.messagedUserList?.rows?.data;if(!o)return;let s=o.find(i=>i.chatId===n);s&&(r?s.unreadCount=0:s.unreadCount=(s.unreadCount||0)+1)},resetUnreadCount:(e,t)=>{let n=t.payload,r=e.messagedUserList?.rows?.data;if(!r)return;let o=r.find(s=>s.chatId===n);o&&(o.unreadCount=0)}}}),Ze=e=>async t=>Ce.get(`/api/messages/userList/${e?.userId}?page=${e?.page||0}`).then(n=>(console.log("Fetched messages for userId:",n.data),t(ge({...n.data,page:e?.page||0})),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to fetch messages";return he.notifications.show({title:"Message Fetch Failed",message:r,color:"red"}),n}),et=e=>async t=>Ce.get(`/api/messages/${e?.chatId}?page=${e?.page||0}&userId=${e?.userId}`).then(n=>(t(Gr({...n.data,page:e?.page||0})),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to fetch messages";return he.notifications.show({title:"Message Fetch Failed",message:r,color:"red"}),n});var Dt=e=>async t=>Ce.delete("/api/messages",{data:{chatId:e?.chatId,userId:e?.userId}}).then(n=>(t(ye()),he.notifications.show({title:"Messages Deleted",message:"All messages in this chat have been deleted.",color:"green"}),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to delete messages";return he.notifications.show({title:"Message Deletion Failed",message:r,color:"red"}),n}),zt=()=>async e=>{e(ge(null)),e(ye())},{setMessagedUserList:ge,setMessageList:Gr,addNewMessage:tt,addUserToChatList:ve,resetMessageList:ye,updateUnreadCount:Ti,resetUnreadCount:Ei}=Lt.actions,Ot=Lt.reducer;var $t=(0,Bt.configureStore)({reducer:{chat:Ot}});function jt({children:e}){return Ht.default.createElement(_t.Provider,{store:$t},e)}var xe=H(require("react"));var Rt=require("socket.io-client");var le=null,Ut,Q=e=>e?((!le||Ut!==e)&&(le&&(le.disconnect(),le=null),le=(0,Rt.io)(ie.SOCKET_URL,{autoConnect:!1,transports:["websocket"],auth:{apiKey:ae(),userId:e}}),Ut=e),le):null;function Ft({children:e,userId:t}){return(0,xe.useEffect)(()=>{if(!t)return;let n=Q(t);if(n)return n.connected||(n.connect(),console.log("\u2705 Socket connected for:",t)),()=>{n.connected&&(n.disconnect(),console.log("Socket disconnected for:",t))}},[t]),xe.default.createElement(xe.default.Fragment,null,e)}var O=require("@mantine/core"),br=require("@tabler/icons-react"),wr=require("@mantine/hooks");var se=require("@mantine/core"),qe=require("@tabler/icons-react");var M=H(require("react")),K=require("@tabler/icons-react"),ir=H(require("@tiptap/extension-highlight")),ar=H(require("@tiptap/extension-subscript")),cr=H(require("@tiptap/extension-superscript")),lr=H(require("@tiptap/extension-text-align"));var tn=require("@tiptap/pm/transform"),nn=require("@tiptap/pm/commands"),rn=require("@tiptap/pm/state"),on=require("@tiptap/pm/commands"),sn=require("@tiptap/pm/state"),ln=require("@tiptap/pm/state"),ue=require("@tiptap/pm/state"),un=require("@tiptap/pm/model"),Y=require("@tiptap/pm/model"),pn=require("@tiptap/pm/state"),_e=require("@tiptap/pm/transform"),oe=require("@tiptap/pm/commands"),fn=require("@tiptap/pm/transform"),hn=require("@tiptap/pm/transform"),gn=require("@tiptap/pm/commands"),vn=require("@tiptap/pm/commands"),xn=require("@tiptap/pm/commands"),bn=require("@tiptap/pm/commands"),wn=require("@tiptap/pm/schema-list"),kn=require("@tiptap/pm/commands"),Sn=require("@tiptap/pm/state"),Tn=require("@tiptap/pm/commands"),En=require("@tiptap/pm/commands"),Cn=require("@tiptap/pm/commands"),In=require("@tiptap/pm/commands"),An=require("@tiptap/pm/commands"),Pn=require("@tiptap/pm/transform"),Qo=require("@tiptap/pm/model"),Nn=require("@tiptap/pm/model"),Dn=require("@tiptap/pm/model"),ss=require("@tiptap/pm/model"),is=require("@tiptap/pm/model"),fs=require("@tiptap/pm/state"),st=require("@tiptap/pm/commands"),$n=require("@tiptap/pm/state"),De=require("@tiptap/pm/state"),Hn=require("@tiptap/pm/schema-list"),je=require("@tiptap/pm/state"),ze=require("@tiptap/pm/transform"),de=require("@tiptap/pm/model"),_n=require("@tiptap/pm/state"),jn=require("@tiptap/pm/transform"),Un=require("@tiptap/pm/state"),mt=require("@tiptap/pm/transform"),Rn=require("@tiptap/pm/commands"),Fn=require("@tiptap/pm/schema-list"),$s=require("@tiptap/pm/state"),Hs=require("@tiptap/pm/view"),Vn=require("@tiptap/pm/keymap"),Wn=require("@tiptap/pm/model"),Kn=require("@tiptap/pm/state"),Xn=require("@tiptap/pm/model"),Yn=require("@tiptap/pm/state"),Ue=require("@tiptap/pm/state"),Qn=require("@tiptap/pm/transform"),Re=require("@tiptap/pm/state"),Fe=require("@tiptap/pm/state"),Ve=require("@tiptap/pm/state"),re=require("@tiptap/pm/state"),We=require("@tiptap/pm/state"),Ke=require("@tiptap/pm/state"),Je=require("@tiptap/pm/state"),er=require("@tiptap/pm/transform"),oi=require("@tiptap/pm/state"),fi=require("@tiptap/pm/state"),Qr=Object.defineProperty,it=(e,t)=>{for(var n in t)Qr(e,n,{get:t[n],enumerable:!0})};function He(e){let{state:t,transaction:n}=e,{selection:r}=n,{doc:o}=n,{storedMarks:s}=n;return{...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return s},get selection(){return r},get doc(){return o},get tr(){return r=n.selection,o=n.doc,s=n.storedMarks,n}}}var at=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:t,state:n}=this,{view:r}=t,{tr:o}=n,s=this.buildProps(o);return Object.fromEntries(Object.entries(e).map(([i,l])=>[i,(...c)=>{let m=l(...c)(s);return!o.getMeta("preventDispatch")&&!this.hasCustomState&&r.dispatch(o),m}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:n,editor:r,state:o}=this,{view:s}=r,i=[],l=!!e,a=e||o.tr,c=()=>(!l&&t&&!a.getMeta("preventDispatch")&&!this.hasCustomState&&s.dispatch(a),i.every(d=>d===!0)),m={...Object.fromEntries(Object.entries(n).map(([d,p])=>[d,(...h)=>{let f=this.buildProps(a,t),g=p(...h)(f);return i.push(g),m}])),run:c};return m}createCan(e){let{rawCommands:t,state:n}=this,r=!1,o=e||n.tr,s=this.buildProps(o,r);return{...Object.fromEntries(Object.entries(t).map(([l,a])=>[l,(...c)=>a(...c)({...s,dispatch:void 0})])),chain:()=>this.createChain(o,r)}}buildProps(e,t=!0){let{rawCommands:n,editor:r,state:o}=this,{view:s}=r,i={tr:e,editor:r,view:s,state:He({state:o,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map(([l,a])=>[l,(...c)=>a(...c)(i)]))}};return i}},en={};it(en,{blur:()=>Zr,clearContent:()=>eo,clearNodes:()=>to,command:()=>no,createParagraphNear:()=>ro,cut:()=>oo,deleteCurrentNode:()=>so,deleteNode:()=>io,deleteRange:()=>ao,deleteSelection:()=>uo,enter:()=>mo,exitCode:()=>po,extendMarkRange:()=>fo,first:()=>ho,focus:()=>yo,forEach:()=>xo,insertContent:()=>bo,insertContentAt:()=>Mo,joinBackward:()=>Eo,joinDown:()=>To,joinForward:()=>Co,joinItemBackward:()=>Io,joinItemForward:()=>Ao,joinTextblockBackward:()=>Po,joinTextblockForward:()=>No,joinUp:()=>So,keyboardShortcut:()=>Do,lift:()=>zo,liftEmptyBlock:()=>Oo,liftListItem:()=>Bo,newlineInCode:()=>$o,resetAttributes:()=>Ho,scrollIntoView:()=>_o,selectAll:()=>jo,selectNodeBackward:()=>Uo,selectNodeForward:()=>Ro,selectParentNode:()=>Fo,selectTextblockEnd:()=>Vo,selectTextblockStart:()=>Wo,setContent:()=>Jo,setMark:()=>gs,setMeta:()=>vs,setNode:()=>ys,setNodeSelection:()=>xs,setTextDirection:()=>bs,setTextSelection:()=>ws,sinkListItem:()=>ks,splitBlock:()=>Ms,splitListItem:()=>Ss,toggleList:()=>Es,toggleMark:()=>Cs,toggleNode:()=>Is,toggleWrap:()=>As,undoInputRule:()=>Ps,unsetAllMarks:()=>Ns,unsetMark:()=>Ls,unsetTextDirection:()=>Ds,updateAttributes:()=>zs,wrapIn:()=>Os,wrapInList:()=>Bs});var Zr=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var n;e.isDestroyed||(t.dom.blur(),(n=window?.getSelection())==null||n.removeAllRanges())}),!0),eo=(e=!0)=>({commands:t})=>t.setContent("",{emitUpdate:e}),to=()=>({state:e,tr:t,dispatch:n})=>{let{selection:r}=t,{ranges:o}=r;return n&&o.forEach(({$from:s,$to:i})=>{e.doc.nodesBetween(s.pos,i.pos,(l,a)=>{if(l.type.isText)return;let{doc:c,mapping:m}=t,d=c.resolve(m.map(a)),p=c.resolve(m.map(a+l.nodeSize)),u=d.blockRange(p);if(!u)return;let h=(0,tn.liftTarget)(u);if(l.type.isTextblock){let{defaultType:f}=d.parent.contentMatchAt(d.index());t.setNodeMarkup(u.start,f)}(h||h===0)&&t.lift(u,h)})}),!0},no=e=>t=>e(t),ro=()=>({state:e,dispatch:t})=>(0,nn.createParagraphNear)(e,t),oo=(e,t)=>({editor:n,tr:r})=>{let{state:o}=n,s=o.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);let i=r.mapping.map(t);return r.insert(i,s.content),r.setSelection(new rn.TextSelection(r.doc.resolve(Math.max(i-1,0)))),!0},so=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;let o=e.selection.$anchor;for(let s=o.depth;s>0;s-=1)if(o.node(s).type===r.type){if(t){let l=o.before(s),a=o.after(s);e.delete(l,a).scrollIntoView()}return!0}return!1};function F(e,t){if(typeof e=="string"){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}var io=e=>({tr:t,state:n,dispatch:r})=>{let o=F(e,n.schema),s=t.selection.$anchor;for(let i=s.depth;i>0;i-=1)if(s.node(i).type===o){if(r){let a=s.before(i),c=s.after(i);t.delete(a,c).scrollIntoView()}return!0}return!1},ao=e=>({tr:t,dispatch:n})=>{let{from:r,to:o}=e;return n&&t.delete(r,o),!0},co=e=>e.content?/^text(\*|\+)/.test(e.content):!1,Vt=(e,t,n)=>{if(!e.parent.isInline||n==="left"&&e.pos>e.start()||n==="right"&&e.pos<e.end())return e.pos;let r=t.nodes[e.parent.type.name].spec;return co(r)?n==="left"?e.start()-1:e.end()+1:e.pos},lo=(e,t,n)=>{let r=Vt(e,n,"left"),o=Vt(t,n,"right");return{from:r,to:o}},uo=()=>({state:e,dispatch:t})=>{let{$from:n,$to:r}=e.selection;if(e.selection.empty)return!1;let{from:o,to:s}=lo(n,r,e.schema);return t&&(e.tr.deleteRange(o,s).scrollIntoView(),t(e.tr)),!0},mo=()=>({commands:e})=>e.keyboardShortcut("Enter"),po=()=>({state:e,dispatch:t})=>(0,on.exitCode)(e,t);function ct(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Oe(e,t,n={strict:!0}){let r=Object.keys(t);return r.length?r.every(o=>n.strict?t[o]===e[o]:ct(t[o])?t[o].test(e[o]):t[o]===e[o]):!0}function an(e,t,n={}){return e.find(r=>r.type===t&&Oe(Object.fromEntries(Object.keys(n).map(o=>[o,r.attrs[o]])),n))}function Wt(e,t,n={}){return!!an(e,t,n)}function cn(e,t,n){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if((!r.node||!r.node.marks.some(c=>c.type===t))&&(r=e.parent.childBefore(e.parentOffset)),!r.node||!r.node.marks.some(c=>c.type===t))return;if(!n){let c=r.node.marks.find(m=>m.type===t);c&&(n=c.attrs)}if(!an([...r.node.marks],t,n))return;let s=r.index,i=e.start()+r.offset,l=s+1,a=i+r.node.nodeSize;for(;s>0&&Wt([...e.parent.child(s-1).marks],t,n);)s-=1,i-=e.parent.child(s).nodeSize;for(;l<e.parent.childCount&&Wt([...e.parent.child(l).marks],t,n);)a+=e.parent.child(l).nodeSize,l+=1;return{from:i,to:a}}function te(e,t){if(typeof e=="string"){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}var fo=(e,t)=>({tr:n,state:r,dispatch:o})=>{let s=te(e,r.schema),{doc:i,selection:l}=n,{$from:a,from:c,to:m}=l;if(o){let d=cn(a,s,t);if(d&&d.from<=c&&d.to>=m){let p=sn.TextSelection.create(i,d.from,d.to);n.setSelection(p)}}return!0},ho=e=>t=>{let n=typeof e=="function"?e(t):e;for(let r=0;r<n.length;r+=1)if(n[r](t))return!0;return!1};function dn(e){return e instanceof ln.TextSelection}function ce(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function go(e,t=null){if(!t)return null;let n=ue.Selection.atStart(e),r=ue.Selection.atEnd(e);if(t==="start"||t===!0)return n;if(t==="end")return r;let o=n.from,s=r.to;return t==="all"?ue.TextSelection.create(e,ce(0,o,s),ce(e.content.size,o,s)):ue.TextSelection.create(e,ce(t,o,s),ce(t,o,s))}function Kt(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}function Be(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}function vo(){return typeof navigator<"u"?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1}var yo=(e=null,t={})=>({editor:n,view:r,tr:o,dispatch:s})=>{t={scrollIntoView:!0,...t};let i=()=>{(Be()||Kt())&&r.dom.focus(),vo()&&!Be()&&!Kt()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t?.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&e===null||e===!1)return!0}catch{return!1}if(s&&e===null&&!dn(n.state.selection))return i(),!0;let l=go(o.doc,e)||n.state.selection,a=n.state.selection.eq(l);return s&&(a||o.setSelection(l),a&&o.storedMarks&&o.setStoredMarks(o.storedMarks),i()),!0},xo=(e,t)=>n=>e.every((r,o)=>t(r,{...n,index:o})),bo=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),mn=e=>{let t=e.childNodes;for(let n=t.length-1;n>=0;n-=1){let r=t[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):r.nodeType===1&&mn(r)}return e};function Ie(e){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");let t=`<body>${e}</body>`,n=new window.DOMParser().parseFromString(t,"text/html").body;return mn(n)}function ke(e,t,n){if(e instanceof Y.Node||e instanceof Y.Fragment)return e;n={slice:!0,parseOptions:{},...n};let r=typeof e=="object"&&e!==null,o=typeof e=="string";if(r)try{if(Array.isArray(e)&&e.length>0)return Y.Fragment.fromArray(e.map(l=>t.nodeFromJSON(l)));let i=t.nodeFromJSON(e);return n.errorOnInvalidContent&&i.check(),i}catch(s){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:s});return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",s),ke("",t,n)}if(o){if(n.errorOnInvalidContent){let i=!1,l="",a=new Y.Schema({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:c=>(i=!0,l=typeof c=="string"?c:c.outerHTML,null)}]}})});if(n.slice?Y.DOMParser.fromSchema(a).parseSlice(Ie(e),n.parseOptions):Y.DOMParser.fromSchema(a).parse(Ie(e),n.parseOptions),n.errorOnInvalidContent&&i)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${l}`)})}let s=Y.DOMParser.fromSchema(t);return n.slice?s.parseSlice(Ie(e),n.parseOptions).content:s.parse(Ie(e),n.parseOptions)}return ke("",t,n)}function wo(e,t,n){let r=e.steps.length-1;if(r<t)return;let o=e.steps[r];if(!(o instanceof _e.ReplaceStep||o instanceof _e.ReplaceAroundStep))return;let s=e.mapping.maps[r],i=0;s.forEach((l,a,c,m)=>{i===0&&(i=m)}),e.setSelection(pn.Selection.near(e.doc.resolve(i),n))}var ko=e=>!("type"in e),Mo=(e,t,n)=>({tr:r,dispatch:o,editor:s})=>{var i;if(o){n={parseOptions:s.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let l,a=g=>{s.emit("contentError",{editor:s,error:g,disableCollaboration:()=>{"collaboration"in s.storage&&typeof s.storage.collaboration=="object"&&s.storage.collaboration&&(s.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!s.options.enableContentCheck&&s.options.emitContentError)try{ke(t,s.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(g){a(g)}try{l=ke(t,s.schema,{parseOptions:c,errorOnInvalidContent:(i=n.errorOnInvalidContent)!=null?i:s.options.enableContentCheck})}catch(g){return a(g),!1}let{from:m,to:d}=typeof e=="number"?{from:e,to:e}:{from:e.from,to:e.to},p=!0,u=!0;if((ko(l)?l:[l]).forEach(g=>{g.check(),p=p?g.isText&&g.marks.length===0:!1,u=u?g.isBlock:!1}),m===d&&u){let{parent:g}=r.doc.resolve(m);g.isTextblock&&!g.type.spec.code&&!g.childCount&&(m-=1,d+=1)}let f;if(p){if(Array.isArray(t))f=t.map(g=>g.text||"").join("");else if(t instanceof un.Fragment){let g="";t.forEach(v=>{v.text&&(g+=v.text)}),f=g}else typeof t=="object"&&t&&t.text?f=t.text:f=t;r.insertText(f,m,d)}else{f=l;let g=r.doc.resolve(m),v=g.node(),y=g.parentOffset===0,S=v.isText||v.isTextblock,C=v.content.size>0;y&&S&&C&&u&&(m=Math.max(0,m-1)),r.replaceWith(m,d,f)}n.updateSelection&&wo(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:m,text:f}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:m,text:f})}return!0},So=()=>({state:e,dispatch:t})=>(0,oe.joinUp)(e,t),To=()=>({state:e,dispatch:t})=>(0,oe.joinDown)(e,t),Eo=()=>({state:e,dispatch:t})=>(0,oe.joinBackward)(e,t),Co=()=>({state:e,dispatch:t})=>(0,oe.joinForward)(e,t),Io=()=>({state:e,dispatch:t,tr:n})=>{try{let r=(0,fn.joinPoint)(e.doc,e.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Ao=()=>({state:e,dispatch:t,tr:n})=>{try{let r=(0,hn.joinPoint)(e.doc,e.selection.$from.pos,1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Po=()=>({state:e,dispatch:t})=>(0,gn.joinTextblockBackward)(e,t),No=()=>({state:e,dispatch:t})=>(0,vn.joinTextblockForward)(e,t);function yn(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function Lo(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n==="Space"&&(n=" ");let r,o,s,i;for(let l=0;l<t.length-1;l+=1){let a=t[l];if(/^(cmd|meta|m)$/i.test(a))i=!0;else if(/^a(lt)?$/i.test(a))r=!0;else if(/^(c|ctrl|control)$/i.test(a))o=!0;else if(/^s(hift)?$/i.test(a))s=!0;else if(/^mod$/i.test(a))Be()||yn()?i=!0:o=!0;else throw new Error(`Unrecognized modifier name: ${a}`)}return r&&(n=`Alt-${n}`),o&&(n=`Ctrl-${n}`),i&&(n=`Meta-${n}`),s&&(n=`Shift-${n}`),n}var Do=e=>({editor:t,view:n,tr:r,dispatch:o})=>{let s=Lo(e).split(/-(?!$)/),i=s.find(c=>!["Alt","Ctrl","Meta","Shift"].includes(c)),l=new KeyboardEvent("keydown",{key:i==="Space"?" ":i,altKey:s.includes("Alt"),ctrlKey:s.includes("Ctrl"),metaKey:s.includes("Meta"),shiftKey:s.includes("Shift"),bubbles:!0,cancelable:!0}),a=t.captureTransaction(()=>{n.someProp("handleKeyDown",c=>c(n,l))});return a?.steps.forEach(c=>{let m=c.map(r.mapping);m&&o&&r.maybeStep(m)}),!0};function lt(e,t,n={}){let{from:r,to:o,empty:s}=e.selection,i=t?F(t,e.schema):null,l=[];e.doc.nodesBetween(r,o,(d,p)=>{if(d.isText)return;let u=Math.max(r,p),h=Math.min(o,p+d.nodeSize);l.push({node:d,from:u,to:h})});let a=o-r,c=l.filter(d=>i?i.name===d.node.type.name:!0).filter(d=>Oe(d.node.attrs,n,{strict:!1}));return s?!!c.length:c.reduce((d,p)=>d+p.to-p.from,0)>=a}var zo=(e,t={})=>({state:n,dispatch:r})=>{let o=F(e,n.schema);return lt(n,o,t)?(0,xn.lift)(n,r):!1},Oo=()=>({state:e,dispatch:t})=>(0,bn.liftEmptyBlock)(e,t),Bo=e=>({state:t,dispatch:n})=>{let r=F(e,t.schema);return(0,wn.liftListItem)(r)(t,n)},$o=()=>({state:e,dispatch:t})=>(0,kn.newlineInCode)(e,t);function Mn(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function Jt(e,t){let n=typeof t=="string"?[t]:t;return Object.keys(e).reduce((r,o)=>(n.includes(o)||(r[o]=e[o]),r),{})}var Ho=(e,t)=>({tr:n,state:r,dispatch:o})=>{let s=null,i=null,l=Mn(typeof e=="string"?e:e.name,r.schema);if(!l)return!1;l==="node"&&(s=F(e,r.schema)),l==="mark"&&(i=te(e,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{r.doc.nodesBetween(c.$from.pos,c.$to.pos,(m,d)=>{s&&s===m.type&&(a=!0,o&&n.setNodeMarkup(d,void 0,Jt(m.attrs,t))),i&&m.marks.length&&m.marks.forEach(p=>{i===p.type&&(a=!0,o&&n.addMark(d,d+m.nodeSize,i.create(Jt(p.attrs,t))))})})}),a},_o=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),jo=()=>({tr:e,dispatch:t})=>{if(t){let n=new Sn.AllSelection(e.doc);e.setSelection(n)}return!0},Uo=()=>({state:e,dispatch:t})=>(0,Tn.selectNodeBackward)(e,t),Ro=()=>({state:e,dispatch:t})=>(0,En.selectNodeForward)(e,t),Fo=()=>({state:e,dispatch:t})=>(0,Cn.selectParentNode)(e,t),Vo=()=>({state:e,dispatch:t})=>(0,In.selectTextblockEnd)(e,t),Wo=()=>({state:e,dispatch:t})=>(0,An.selectTextblockStart)(e,t);function Ko(e,t,n={},r={}){return ke(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var Jo=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:o,tr:s,dispatch:i,commands:l})=>{let{doc:a}=s;if(r.preserveWhitespace!=="full"){let c=Ko(e,o.schema,r,{errorOnInvalidContent:t??o.options.enableContentCheck});return i&&s.replaceWith(0,a.content.size,c).setMeta("preventUpdate",!n),!0}return i&&s.setMeta("preventUpdate",!n),l.insertContentAt({from:0,to:a.content.size},e,{parseOptions:r,errorOnInvalidContent:t??o.options.enableContentCheck})};function qo(e,t){let n=te(t,e.schema),{from:r,to:o,empty:s}=e.selection,i=[];s?(e.storedMarks&&i.push(...e.storedMarks),i.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,o,a=>{i.push(...a.marks)});let l=i.find(a=>a.type.name===n.name);return l?{...l.attrs}:{}}function Xo(e,t){let n=new Pn.Transform(e);return t.forEach(r=>{r.steps.forEach(o=>{n.step(o)})}),n}function Yo(e){for(let t=0;t<e.edgeCount;t+=1){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}function Go(e,t){for(let n=e.depth;n>0;n-=1){let r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function dt(e){return t=>Go(t.$from,e)}function x(e,t,n){return e.config[t]===void 0&&e.parent?x(e.parent,t,n):typeof e.config[t]=="function"?e.config[t].bind({...n,parent:e.parent?x(e.parent,t,n):null}):e.config[t]}function ut(e){return e.map(t=>{let n={name:t.name,options:t.options,storage:t.storage},r=x(t,"addExtensions",n);return r?[t,...ut(r())]:t}).flat(10)}function Ln(e,t){let n=Nn.DOMSerializer.fromSchema(t).serializeFragment(e),o=document.implementation.createHTMLDocument().createElement("div");return o.appendChild(n),o.innerHTML}function Zo(e){return typeof e=="function"}function B(e,t=void 0,...n){return Zo(e)?t?e.bind(t)(...n):e(...n):e}function es(e={}){return Object.keys(e).length===0&&e.constructor===Object}function me(e){let t=e.filter(o=>o.type==="extension"),n=e.filter(o=>o.type==="node"),r=e.filter(o=>o.type==="mark");return{baseExtensions:t,nodeExtensions:n,markExtensions:r}}function zn(e){let t=[],{nodeExtensions:n,markExtensions:r}=me(e),o=[...n,...r],s={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},i=n.filter(c=>c.name!=="text").map(c=>c.name),l=r.map(c=>c.name),a=[...i,...l];return e.forEach(c=>{let m={name:c.name,options:c.options,storage:c.storage,extensions:o},d=x(c,"addGlobalAttributes",m);if(!d)return;d().forEach(u=>{let h;Array.isArray(u.types)?h=u.types:u.types==="*"?h=a:u.types==="nodes"?h=i:u.types==="marks"?h=l:h=[],h.forEach(f=>{Object.entries(u.attributes).forEach(([g,v])=>{t.push({type:f,name:g,attribute:{...s,...v}})})})})}),o.forEach(c=>{let m={name:c.name,options:c.options,storage:c.storage},d=x(c,"addAttributes",m);if(!d)return;let p=d();Object.entries(p).forEach(([u,h])=>{let f={...s,...h};typeof f?.default=="function"&&(f.default=f.default()),f?.isRequired&&f?.default===void 0&&delete f.default,t.push({type:c.name,name:u,attribute:f})})}),t}function ts(e){let t=[],n="",r=!1,o=!1,s=0,i=e.length;for(let l=0;l<i;l+=1){let a=e[l];if(a==="'"&&!o){r=!r,n+=a;continue}if(a==='"'&&!r){o=!o,n+=a;continue}if(!r&&!o){if(a==="("){s+=1,n+=a;continue}if(a===")"&&s>0){s-=1,n+=a;continue}if(a===";"&&s===0){t.push(n),n="";continue}}n+=a}return n&&t.push(n),t}function qt(e){let t=[],n=ts(e||""),r=n.length;for(let o=0;o<r;o+=1){let s=n[o],i=s.indexOf(":");if(i===-1)continue;let l=s.slice(0,i).trim(),a=s.slice(i+1).trim();l&&a&&t.push([l,a])}return t}function Me(...e){return e.filter(t=>!!t).reduce((t,n)=>{let r={...t};return Object.entries(n).forEach(([o,s])=>{if(!r[o]){r[o]=s;return}if(o==="class"){let l=s?String(s).split(" "):[],a=r[o]?r[o].split(" "):[],c=l.filter(m=>!a.includes(m));r[o]=[...a,...c].join(" ")}else if(o==="style"){let l=new Map([...qt(r[o]),...qt(s)]);r[o]=Array.from(l.entries()).map(([a,c])=>`${a}: ${c}`).join("; ")}else r[o]=s}),r},{})}function $e(e,t){return t.filter(n=>n.type===e.type.name).filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(e.attrs)||{}:{[n.name]:e.attrs[n.name]}).reduce((n,r)=>Me(n,r),{})}function ns(e){return typeof e!="string"?e:e.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(e):e==="true"?!0:e==="false"?!1:e}function Xt(e,t){return"style"in e?e:{...e,getAttrs:n=>{let r=e.getAttrs?e.getAttrs(n):e.attrs;if(r===!1)return!1;let o=t.reduce((s,i)=>{let l=i.attribute.parseHTML?i.attribute.parseHTML(n):ns(n.getAttribute(i.name));return l==null?s:{...s,[i.name]:l}},{});return{...r,...o}}}}function Yt(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>t==="attrs"&&es(n)?!1:n!=null))}function Gt(e){var t,n;let r={};return!((t=e?.attribute)!=null&&t.isRequired)&&"default"in(e?.attribute||{})&&(r.default=e.attribute.default),((n=e?.attribute)==null?void 0:n.validate)!==void 0&&(r.validate=e.attribute.validate),[e.name,r]}function rs(e,t){var n;let r=zn(e),{nodeExtensions:o,markExtensions:s}=me(e),i=(n=o.find(c=>x(c,"topNode")))==null?void 0:n.name,l=Object.fromEntries(o.map(c=>{let m=r.filter(v=>v.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:t},p=e.reduce((v,y)=>{let S=x(y,"extendNodeSchema",d);return{...v,...S?S(c):{}}},{}),u=Yt({...p,content:B(x(c,"content",d)),marks:B(x(c,"marks",d)),group:B(x(c,"group",d)),inline:B(x(c,"inline",d)),atom:B(x(c,"atom",d)),selectable:B(x(c,"selectable",d)),draggable:B(x(c,"draggable",d)),code:B(x(c,"code",d)),whitespace:B(x(c,"whitespace",d)),linebreakReplacement:B(x(c,"linebreakReplacement",d)),defining:B(x(c,"defining",d)),isolating:B(x(c,"isolating",d)),attrs:Object.fromEntries(m.map(Gt))}),h=B(x(c,"parseHTML",d));h&&(u.parseDOM=h.map(v=>Xt(v,m)));let f=x(c,"renderHTML",d);f&&(u.toDOM=v=>f({node:v,HTMLAttributes:$e(v,m)}));let g=x(c,"renderText",d);return g&&(u.toText=g),[c.name,u]})),a=Object.fromEntries(s.map(c=>{let m=r.filter(g=>g.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:t},p=e.reduce((g,v)=>{let y=x(v,"extendMarkSchema",d);return{...g,...y?y(c):{}}},{}),u=Yt({...p,inclusive:B(x(c,"inclusive",d)),excludes:B(x(c,"excludes",d)),group:B(x(c,"group",d)),spanning:B(x(c,"spanning",d)),code:B(x(c,"code",d)),attrs:Object.fromEntries(m.map(Gt))}),h=B(x(c,"parseHTML",d));h&&(u.parseDOM=h.map(g=>Xt(g,m)));let f=x(c,"renderHTML",d);return f&&(u.toDOM=g=>f({mark:g,HTMLAttributes:$e(g,m)})),[c.name,u]}));return new Dn.Schema({topNode:i,nodes:l,marks:a})}function os(e){let t=e.filter((n,r)=>e.indexOf(n)!==r);return Array.from(new Set(t))}function we(e){return e.sort((n,r)=>{let o=x(n,"priority")||100,s=x(r,"priority")||100;return o>s?-1:o<s?1:0})}function On(e){let t=we(ut(e)),n=os(t.map(r=>r.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(r=>`'${r}'`).join(", ")}]. This can lead to issues.`),t}function as(e,t,n){let{from:r,to:o}=t,{blockSeparator:s=`
1
+ "use strict";var Or=Object.create;var Ee=Object.defineProperty;var Br=Object.getOwnPropertyDescriptor;var $r=Object.getOwnPropertyNames;var Hr=Object.getPrototypeOf,_r=Object.prototype.hasOwnProperty;var jr=(e,t)=>{for(var n in t)Ee(e,n,{get:t[n],enumerable:!0})},kt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $r(t))!_r.call(e,o)&&o!==n&&Ee(e,o,{get:()=>t[o],enumerable:!(r=Br(t,o))||r.enumerable});return e};var H=(e,t,n)=>(n=e!=null?Or(Hr(e)):{},kt(t||!e||!e.__esModule?Ee(n,"default",{value:e,enumerable:!0}):n,e)),Ur=e=>kt(Ee({},"__esModule",{value:!0}),e);var vi={};jr(vi,{MrChat:()=>wt});module.exports=Ur(vi);var Ra=require("@mantine/core/styles.css"),Fa=require("@mantine/tiptap/styles.css"),Wa=require("@mantine/notifications/styles.css"),q=H(require("react")),Cr=require("@mantine/core"),Ir=require("@mantine/notifications");var Tt=require("@mantine/core"),Rr=["#e6f9ff","#b3ecff","#80dfff","#4dd2ff","#1ac5ff","#00b8e6","#0091b3","#006a80","#00434d","#001c1a"],Fr=["#e6f9f2","#c0f0de","#88e4c3","#4dd6a4","#26cb90","#00bf7d","#00a36c","#008d5d","#00764d","#005f3e"],Wr=["#ffe6e9","#fbbdc4","#f38b98","#ea576b","#e12c48","#d80a2d","#b30625","#8f041d","#6b0215","#47010e"],Vr=["#fff1e6","#ffd7b3","#ffb380","#ff8f4d","#ff6b1a","#e65c00","#b34700","#803300","#4d1f00","#1a0a00"],Kr=["#e6f9ff","#b3ecff","#80dfff","#4dd2ff","#1ac5ff","#00b8e6","#0091b3","#006a80","#00434d","#001c1a"],Mt={customBrand:Rr,emerald:Fr,ruby:Wr,sunset:Vr,ocean:Kr},St=e=>/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.test(e),Jr=e=>{let t=e.replace("#",""),n=t.length===3?t.split("").map(r=>r+r).join(""):t;return{r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16)}},qr=({r:e,g:t,b:n})=>`#${[e,t,n].map(r=>r.toString(16).padStart(2,"0")).join("")}`,Qe=e=>Math.min(255,Math.max(0,Math.round(e))),Xr=e=>{let{r:t,g:n,b:r}=Jr(e);return[.08,.18,.3,.42,.54,.66,.76,.86,.92,.98].map(i=>qr({r:Qe(t*i+255*(1-i)),g:Qe(n*i+255*(1-i)),b:Qe(r*i+255*(1-i))}))},Et=e=>{let t={...Mt},n=St(e)||!(e in Mt)?"customBrand":e;return St(e)&&(t.customBrand=Xr(e)),(0,Tt.createTheme)({primaryColor:n,colors:t})};var Ht=H(require("react")),_t=require("react-redux");var Bt=require("@reduxjs/toolkit");var Nt=require("@reduxjs/toolkit");var ie={BASE_URL:"",SOCKET_URL:""},Ct="",It=({baseUrl:e,socketUrl:t,apiKey:n})=>{e&&(ie.BASE_URL=e),t&&(ie.SOCKET_URL=t),Ct=n||""};var ae=()=>Ct;var At=H(require("axios")),Pt=At.default.create({headers:{"Content-Type":"application/json",Authorization:ae(),"Cache-Control":"no-cache",Pragma:"no-cache"}});Pt.interceptors.request.use(e=>(ie.BASE_URL?.trim()&&(e.baseURL=ie.BASE_URL),e.headers?.set?.("Authorization",ae()),e.headers?.set?.("Cache-Control","no-cache"),e.headers?.set?.("Pragma","no-cache"),e.headers?.set?.("Expires","0"),e));var Ce=Pt;var he=require("@mantine/notifications"),Yr={messagedUserList:null,messageList:[]},Lt=(0,Nt.createSlice)({name:"messages",initialState:Yr,reducers:{setMessagedUserList:(e,t)=>{let n=t.payload;if(n===null){e.messagedUserList=null;return}let r=n?.page??0;if(!e.messagedUserList||r===0){e.messagedUserList=n;return}let o=e.messagedUserList?.rows?.data??[],s=n?.rows?.data??[],i=[...o,...s],l=new Map;i.forEach(c=>{c?.chatId&&l.set(c.chatId,c)});let a=Array.from(l.values());e.messagedUserList={...n,rows:{...n.rows,data:a}}},setMessageList:(e,t)=>{let n=t.payload;if(n===null){e.messageList=[];return}let r=n?.page??0;if(!e.messageList?.rows?.data||r===0){e.messageList=n;return}e.messageList={...n,rows:{...n.rows,data:[...n.rows.data,...e.messageList.rows.data]}}},addNewMessage:(e,t)=>{e.messageList?.rows?.data&&e.messageList.rows.data.push(t.payload)},addUserToChatList:(e,t)=>{let n=t.payload;if(!e.messagedUserList){e.messagedUserList={hasMore:!1,rows:{success:!0,status:!0,message:"",data:[n]}};return}let r=e.messagedUserList.rows.data;e.messagedUserList.rows.data=r=r.filter(s=>s?.chatId);let o=r.findIndex(s=>s.chatId===n.chatId);if(o!==-1){let i={...r.splice(o,1)[0],...n};r.unshift(i)}else r.unshift(n)},resetMessageList:e=>{e.messageList=[]},updateUnreadCount:(e,t)=>{let{chatId:n,isActive:r}=t.payload,o=e.messagedUserList?.rows?.data;if(!o)return;let s=o.find(i=>i.chatId===n);s&&(r?s.unreadCount=0:s.unreadCount=(s.unreadCount||0)+1)},resetUnreadCount:(e,t)=>{let n=t.payload,r=e.messagedUserList?.rows?.data;if(!r)return;let o=r.find(s=>s.chatId===n);o&&(o.unreadCount=0)}}}),Ze=e=>async t=>Ce.get(`/api/messages/userList/${e?.userId}?page=${e?.page||0}`).then(n=>(console.log("Fetched messages for userId:",n.data),t(ge({...n.data,page:e?.page||0})),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to fetch messages";return he.notifications.show({title:"Message Fetch Failed",message:r,color:"red"}),n}),et=e=>async t=>Ce.get(`/api/messages/${e?.chatId}?page=${e?.page||0}&userId=${e?.userId}`).then(n=>(t(Gr({...n.data,page:e?.page||0})),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to fetch messages";return he.notifications.show({title:"Message Fetch Failed",message:r,color:"red"}),n});var Dt=e=>async t=>Ce.delete("/api/messages",{data:{chatId:e?.chatId,userId:e?.userId}}).then(n=>(t(ye()),he.notifications.show({title:"Messages Deleted",message:"All messages in this chat have been deleted.",color:"green"}),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to delete messages";return he.notifications.show({title:"Message Deletion Failed",message:r,color:"red"}),n}),zt=()=>async e=>{e(ge(null)),e(ye())},{setMessagedUserList:ge,setMessageList:Gr,addNewMessage:tt,addUserToChatList:ve,resetMessageList:ye,updateUnreadCount:Ti,resetUnreadCount:Ei}=Lt.actions,Ot=Lt.reducer;var $t=(0,Bt.configureStore)({reducer:{chat:Ot}});function jt({children:e}){return Ht.default.createElement(_t.Provider,{store:$t},e)}var xe=H(require("react"));var Rt=require("socket.io-client");var le=null,Ut,Z=e=>e?((!le||Ut!==e)&&(le&&(le.disconnect(),le=null),le=(0,Rt.io)(ie.SOCKET_URL,{autoConnect:!1,transports:["websocket"],auth:{apiKey:ae(),userId:e}}),Ut=e),le):null;function Ft({children:e,userId:t}){return(0,xe.useEffect)(()=>{if(!t)return;let n=Z(t);if(n)return n.connected||(n.connect(),console.log("\u2705 Socket connected for:",t)),()=>{n.connected&&(n.disconnect(),console.log("Socket disconnected for:",t))}},[t]),xe.default.createElement(xe.default.Fragment,null,e)}var O=require("@mantine/core"),br=require("@tabler/icons-react"),wr=require("@mantine/hooks");var se=require("@mantine/core"),qe=require("@tabler/icons-react");var M=H(require("react")),K=require("@tabler/icons-react"),ir=H(require("@tiptap/extension-highlight")),ar=H(require("@tiptap/extension-subscript")),cr=H(require("@tiptap/extension-superscript")),lr=H(require("@tiptap/extension-text-align"));var tn=require("@tiptap/pm/transform"),nn=require("@tiptap/pm/commands"),rn=require("@tiptap/pm/state"),on=require("@tiptap/pm/commands"),sn=require("@tiptap/pm/state"),ln=require("@tiptap/pm/state"),ue=require("@tiptap/pm/state"),un=require("@tiptap/pm/model"),G=require("@tiptap/pm/model"),pn=require("@tiptap/pm/state"),_e=require("@tiptap/pm/transform"),oe=require("@tiptap/pm/commands"),fn=require("@tiptap/pm/transform"),hn=require("@tiptap/pm/transform"),gn=require("@tiptap/pm/commands"),vn=require("@tiptap/pm/commands"),xn=require("@tiptap/pm/commands"),bn=require("@tiptap/pm/commands"),wn=require("@tiptap/pm/schema-list"),kn=require("@tiptap/pm/commands"),Sn=require("@tiptap/pm/state"),Tn=require("@tiptap/pm/commands"),En=require("@tiptap/pm/commands"),Cn=require("@tiptap/pm/commands"),In=require("@tiptap/pm/commands"),An=require("@tiptap/pm/commands"),Pn=require("@tiptap/pm/transform"),Qo=require("@tiptap/pm/model"),Nn=require("@tiptap/pm/model"),Dn=require("@tiptap/pm/model"),ss=require("@tiptap/pm/model"),is=require("@tiptap/pm/model"),fs=require("@tiptap/pm/state"),st=require("@tiptap/pm/commands"),$n=require("@tiptap/pm/state"),De=require("@tiptap/pm/state"),Hn=require("@tiptap/pm/schema-list"),je=require("@tiptap/pm/state"),ze=require("@tiptap/pm/transform"),de=require("@tiptap/pm/model"),_n=require("@tiptap/pm/state"),jn=require("@tiptap/pm/transform"),Un=require("@tiptap/pm/state"),mt=require("@tiptap/pm/transform"),Rn=require("@tiptap/pm/commands"),Fn=require("@tiptap/pm/schema-list"),$s=require("@tiptap/pm/state"),Hs=require("@tiptap/pm/view"),Wn=require("@tiptap/pm/keymap"),Vn=require("@tiptap/pm/model"),Kn=require("@tiptap/pm/state"),Xn=require("@tiptap/pm/model"),Yn=require("@tiptap/pm/state"),Ue=require("@tiptap/pm/state"),Qn=require("@tiptap/pm/transform"),Re=require("@tiptap/pm/state"),Fe=require("@tiptap/pm/state"),We=require("@tiptap/pm/state"),re=require("@tiptap/pm/state"),Ve=require("@tiptap/pm/state"),Ke=require("@tiptap/pm/state"),Je=require("@tiptap/pm/state"),er=require("@tiptap/pm/transform"),oi=require("@tiptap/pm/state"),fi=require("@tiptap/pm/state"),Qr=Object.defineProperty,it=(e,t)=>{for(var n in t)Qr(e,n,{get:t[n],enumerable:!0})};function He(e){let{state:t,transaction:n}=e,{selection:r}=n,{doc:o}=n,{storedMarks:s}=n;return{...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return s},get selection(){return r},get doc(){return o},get tr(){return r=n.selection,o=n.doc,s=n.storedMarks,n}}}var at=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:t,state:n}=this,{view:r}=t,{tr:o}=n,s=this.buildProps(o);return Object.fromEntries(Object.entries(e).map(([i,l])=>[i,(...c)=>{let m=l(...c)(s);return!o.getMeta("preventDispatch")&&!this.hasCustomState&&r.dispatch(o),m}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:n,editor:r,state:o}=this,{view:s}=r,i=[],l=!!e,a=e||o.tr,c=()=>(!l&&t&&!a.getMeta("preventDispatch")&&!this.hasCustomState&&s.dispatch(a),i.every(d=>d===!0)),m={...Object.fromEntries(Object.entries(n).map(([d,p])=>[d,(...h)=>{let f=this.buildProps(a,t),g=p(...h)(f);return i.push(g),m}])),run:c};return m}createCan(e){let{rawCommands:t,state:n}=this,r=!1,o=e||n.tr,s=this.buildProps(o,r);return{...Object.fromEntries(Object.entries(t).map(([l,a])=>[l,(...c)=>a(...c)({...s,dispatch:void 0})])),chain:()=>this.createChain(o,r)}}buildProps(e,t=!0){let{rawCommands:n,editor:r,state:o}=this,{view:s}=r,i={tr:e,editor:r,view:s,state:He({state:o,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map(([l,a])=>[l,(...c)=>a(...c)(i)]))}};return i}},en={};it(en,{blur:()=>Zr,clearContent:()=>eo,clearNodes:()=>to,command:()=>no,createParagraphNear:()=>ro,cut:()=>oo,deleteCurrentNode:()=>so,deleteNode:()=>io,deleteRange:()=>ao,deleteSelection:()=>uo,enter:()=>mo,exitCode:()=>po,extendMarkRange:()=>fo,first:()=>ho,focus:()=>yo,forEach:()=>xo,insertContent:()=>bo,insertContentAt:()=>Mo,joinBackward:()=>Eo,joinDown:()=>To,joinForward:()=>Co,joinItemBackward:()=>Io,joinItemForward:()=>Ao,joinTextblockBackward:()=>Po,joinTextblockForward:()=>No,joinUp:()=>So,keyboardShortcut:()=>Do,lift:()=>zo,liftEmptyBlock:()=>Oo,liftListItem:()=>Bo,newlineInCode:()=>$o,resetAttributes:()=>Ho,scrollIntoView:()=>_o,selectAll:()=>jo,selectNodeBackward:()=>Uo,selectNodeForward:()=>Ro,selectParentNode:()=>Fo,selectTextblockEnd:()=>Wo,selectTextblockStart:()=>Vo,setContent:()=>Jo,setMark:()=>gs,setMeta:()=>vs,setNode:()=>ys,setNodeSelection:()=>xs,setTextDirection:()=>bs,setTextSelection:()=>ws,sinkListItem:()=>ks,splitBlock:()=>Ms,splitListItem:()=>Ss,toggleList:()=>Es,toggleMark:()=>Cs,toggleNode:()=>Is,toggleWrap:()=>As,undoInputRule:()=>Ps,unsetAllMarks:()=>Ns,unsetMark:()=>Ls,unsetTextDirection:()=>Ds,updateAttributes:()=>zs,wrapIn:()=>Os,wrapInList:()=>Bs});var Zr=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var n;e.isDestroyed||(t.dom.blur(),(n=window?.getSelection())==null||n.removeAllRanges())}),!0),eo=(e=!0)=>({commands:t})=>t.setContent("",{emitUpdate:e}),to=()=>({state:e,tr:t,dispatch:n})=>{let{selection:r}=t,{ranges:o}=r;return n&&o.forEach(({$from:s,$to:i})=>{e.doc.nodesBetween(s.pos,i.pos,(l,a)=>{if(l.type.isText)return;let{doc:c,mapping:m}=t,d=c.resolve(m.map(a)),p=c.resolve(m.map(a+l.nodeSize)),u=d.blockRange(p);if(!u)return;let h=(0,tn.liftTarget)(u);if(l.type.isTextblock){let{defaultType:f}=d.parent.contentMatchAt(d.index());t.setNodeMarkup(u.start,f)}(h||h===0)&&t.lift(u,h)})}),!0},no=e=>t=>e(t),ro=()=>({state:e,dispatch:t})=>(0,nn.createParagraphNear)(e,t),oo=(e,t)=>({editor:n,tr:r})=>{let{state:o}=n,s=o.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);let i=r.mapping.map(t);return r.insert(i,s.content),r.setSelection(new rn.TextSelection(r.doc.resolve(Math.max(i-1,0)))),!0},so=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;let o=e.selection.$anchor;for(let s=o.depth;s>0;s-=1)if(o.node(s).type===r.type){if(t){let l=o.before(s),a=o.after(s);e.delete(l,a).scrollIntoView()}return!0}return!1};function F(e,t){if(typeof e=="string"){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}var io=e=>({tr:t,state:n,dispatch:r})=>{let o=F(e,n.schema),s=t.selection.$anchor;for(let i=s.depth;i>0;i-=1)if(s.node(i).type===o){if(r){let a=s.before(i),c=s.after(i);t.delete(a,c).scrollIntoView()}return!0}return!1},ao=e=>({tr:t,dispatch:n})=>{let{from:r,to:o}=e;return n&&t.delete(r,o),!0},co=e=>e.content?/^text(\*|\+)/.test(e.content):!1,Wt=(e,t,n)=>{if(!e.parent.isInline||n==="left"&&e.pos>e.start()||n==="right"&&e.pos<e.end())return e.pos;let r=t.nodes[e.parent.type.name].spec;return co(r)?n==="left"?e.start()-1:e.end()+1:e.pos},lo=(e,t,n)=>{let r=Wt(e,n,"left"),o=Wt(t,n,"right");return{from:r,to:o}},uo=()=>({state:e,dispatch:t})=>{let{$from:n,$to:r}=e.selection;if(e.selection.empty)return!1;let{from:o,to:s}=lo(n,r,e.schema);return t&&(e.tr.deleteRange(o,s).scrollIntoView(),t(e.tr)),!0},mo=()=>({commands:e})=>e.keyboardShortcut("Enter"),po=()=>({state:e,dispatch:t})=>(0,on.exitCode)(e,t);function ct(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Oe(e,t,n={strict:!0}){let r=Object.keys(t);return r.length?r.every(o=>n.strict?t[o]===e[o]:ct(t[o])?t[o].test(e[o]):t[o]===e[o]):!0}function an(e,t,n={}){return e.find(r=>r.type===t&&Oe(Object.fromEntries(Object.keys(n).map(o=>[o,r.attrs[o]])),n))}function Vt(e,t,n={}){return!!an(e,t,n)}function cn(e,t,n){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if((!r.node||!r.node.marks.some(c=>c.type===t))&&(r=e.parent.childBefore(e.parentOffset)),!r.node||!r.node.marks.some(c=>c.type===t))return;if(!n){let c=r.node.marks.find(m=>m.type===t);c&&(n=c.attrs)}if(!an([...r.node.marks],t,n))return;let s=r.index,i=e.start()+r.offset,l=s+1,a=i+r.node.nodeSize;for(;s>0&&Vt([...e.parent.child(s-1).marks],t,n);)s-=1,i-=e.parent.child(s).nodeSize;for(;l<e.parent.childCount&&Vt([...e.parent.child(l).marks],t,n);)a+=e.parent.child(l).nodeSize,l+=1;return{from:i,to:a}}function te(e,t){if(typeof e=="string"){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}var fo=(e,t)=>({tr:n,state:r,dispatch:o})=>{let s=te(e,r.schema),{doc:i,selection:l}=n,{$from:a,from:c,to:m}=l;if(o){let d=cn(a,s,t);if(d&&d.from<=c&&d.to>=m){let p=sn.TextSelection.create(i,d.from,d.to);n.setSelection(p)}}return!0},ho=e=>t=>{let n=typeof e=="function"?e(t):e;for(let r=0;r<n.length;r+=1)if(n[r](t))return!0;return!1};function dn(e){return e instanceof ln.TextSelection}function ce(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function go(e,t=null){if(!t)return null;let n=ue.Selection.atStart(e),r=ue.Selection.atEnd(e);if(t==="start"||t===!0)return n;if(t==="end")return r;let o=n.from,s=r.to;return t==="all"?ue.TextSelection.create(e,ce(0,o,s),ce(e.content.size,o,s)):ue.TextSelection.create(e,ce(t,o,s),ce(t,o,s))}function Kt(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}function Be(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}function vo(){return typeof navigator<"u"?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1}var yo=(e=null,t={})=>({editor:n,view:r,tr:o,dispatch:s})=>{t={scrollIntoView:!0,...t};let i=()=>{(Be()||Kt())&&r.dom.focus(),vo()&&!Be()&&!Kt()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t?.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&e===null||e===!1)return!0}catch{return!1}if(s&&e===null&&!dn(n.state.selection))return i(),!0;let l=go(o.doc,e)||n.state.selection,a=n.state.selection.eq(l);return s&&(a||o.setSelection(l),a&&o.storedMarks&&o.setStoredMarks(o.storedMarks),i()),!0},xo=(e,t)=>n=>e.every((r,o)=>t(r,{...n,index:o})),bo=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),mn=e=>{let t=e.childNodes;for(let n=t.length-1;n>=0;n-=1){let r=t[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):r.nodeType===1&&mn(r)}return e};function Ie(e){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");let t=`<body>${e}</body>`,n=new window.DOMParser().parseFromString(t,"text/html").body;return mn(n)}function ke(e,t,n){if(e instanceof G.Node||e instanceof G.Fragment)return e;n={slice:!0,parseOptions:{},...n};let r=typeof e=="object"&&e!==null,o=typeof e=="string";if(r)try{if(Array.isArray(e)&&e.length>0)return G.Fragment.fromArray(e.map(l=>t.nodeFromJSON(l)));let i=t.nodeFromJSON(e);return n.errorOnInvalidContent&&i.check(),i}catch(s){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:s});return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",s),ke("",t,n)}if(o){if(n.errorOnInvalidContent){let i=!1,l="",a=new G.Schema({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:c=>(i=!0,l=typeof c=="string"?c:c.outerHTML,null)}]}})});if(n.slice?G.DOMParser.fromSchema(a).parseSlice(Ie(e),n.parseOptions):G.DOMParser.fromSchema(a).parse(Ie(e),n.parseOptions),n.errorOnInvalidContent&&i)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${l}`)})}let s=G.DOMParser.fromSchema(t);return n.slice?s.parseSlice(Ie(e),n.parseOptions).content:s.parse(Ie(e),n.parseOptions)}return ke("",t,n)}function wo(e,t,n){let r=e.steps.length-1;if(r<t)return;let o=e.steps[r];if(!(o instanceof _e.ReplaceStep||o instanceof _e.ReplaceAroundStep))return;let s=e.mapping.maps[r],i=0;s.forEach((l,a,c,m)=>{i===0&&(i=m)}),e.setSelection(pn.Selection.near(e.doc.resolve(i),n))}var ko=e=>!("type"in e),Mo=(e,t,n)=>({tr:r,dispatch:o,editor:s})=>{var i;if(o){n={parseOptions:s.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let l,a=g=>{s.emit("contentError",{editor:s,error:g,disableCollaboration:()=>{"collaboration"in s.storage&&typeof s.storage.collaboration=="object"&&s.storage.collaboration&&(s.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!s.options.enableContentCheck&&s.options.emitContentError)try{ke(t,s.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(g){a(g)}try{l=ke(t,s.schema,{parseOptions:c,errorOnInvalidContent:(i=n.errorOnInvalidContent)!=null?i:s.options.enableContentCheck})}catch(g){return a(g),!1}let{from:m,to:d}=typeof e=="number"?{from:e,to:e}:{from:e.from,to:e.to},p=!0,u=!0;if((ko(l)?l:[l]).forEach(g=>{g.check(),p=p?g.isText&&g.marks.length===0:!1,u=u?g.isBlock:!1}),m===d&&u){let{parent:g}=r.doc.resolve(m);g.isTextblock&&!g.type.spec.code&&!g.childCount&&(m-=1,d+=1)}let f;if(p){if(Array.isArray(t))f=t.map(g=>g.text||"").join("");else if(t instanceof un.Fragment){let g="";t.forEach(v=>{v.text&&(g+=v.text)}),f=g}else typeof t=="object"&&t&&t.text?f=t.text:f=t;r.insertText(f,m,d)}else{f=l;let g=r.doc.resolve(m),v=g.node(),y=g.parentOffset===0,S=v.isText||v.isTextblock,C=v.content.size>0;y&&S&&C&&u&&(m=Math.max(0,m-1)),r.replaceWith(m,d,f)}n.updateSelection&&wo(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:m,text:f}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:m,text:f})}return!0},So=()=>({state:e,dispatch:t})=>(0,oe.joinUp)(e,t),To=()=>({state:e,dispatch:t})=>(0,oe.joinDown)(e,t),Eo=()=>({state:e,dispatch:t})=>(0,oe.joinBackward)(e,t),Co=()=>({state:e,dispatch:t})=>(0,oe.joinForward)(e,t),Io=()=>({state:e,dispatch:t,tr:n})=>{try{let r=(0,fn.joinPoint)(e.doc,e.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Ao=()=>({state:e,dispatch:t,tr:n})=>{try{let r=(0,hn.joinPoint)(e.doc,e.selection.$from.pos,1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Po=()=>({state:e,dispatch:t})=>(0,gn.joinTextblockBackward)(e,t),No=()=>({state:e,dispatch:t})=>(0,vn.joinTextblockForward)(e,t);function yn(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function Lo(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n==="Space"&&(n=" ");let r,o,s,i;for(let l=0;l<t.length-1;l+=1){let a=t[l];if(/^(cmd|meta|m)$/i.test(a))i=!0;else if(/^a(lt)?$/i.test(a))r=!0;else if(/^(c|ctrl|control)$/i.test(a))o=!0;else if(/^s(hift)?$/i.test(a))s=!0;else if(/^mod$/i.test(a))Be()||yn()?i=!0:o=!0;else throw new Error(`Unrecognized modifier name: ${a}`)}return r&&(n=`Alt-${n}`),o&&(n=`Ctrl-${n}`),i&&(n=`Meta-${n}`),s&&(n=`Shift-${n}`),n}var Do=e=>({editor:t,view:n,tr:r,dispatch:o})=>{let s=Lo(e).split(/-(?!$)/),i=s.find(c=>!["Alt","Ctrl","Meta","Shift"].includes(c)),l=new KeyboardEvent("keydown",{key:i==="Space"?" ":i,altKey:s.includes("Alt"),ctrlKey:s.includes("Ctrl"),metaKey:s.includes("Meta"),shiftKey:s.includes("Shift"),bubbles:!0,cancelable:!0}),a=t.captureTransaction(()=>{n.someProp("handleKeyDown",c=>c(n,l))});return a?.steps.forEach(c=>{let m=c.map(r.mapping);m&&o&&r.maybeStep(m)}),!0};function lt(e,t,n={}){let{from:r,to:o,empty:s}=e.selection,i=t?F(t,e.schema):null,l=[];e.doc.nodesBetween(r,o,(d,p)=>{if(d.isText)return;let u=Math.max(r,p),h=Math.min(o,p+d.nodeSize);l.push({node:d,from:u,to:h})});let a=o-r,c=l.filter(d=>i?i.name===d.node.type.name:!0).filter(d=>Oe(d.node.attrs,n,{strict:!1}));return s?!!c.length:c.reduce((d,p)=>d+p.to-p.from,0)>=a}var zo=(e,t={})=>({state:n,dispatch:r})=>{let o=F(e,n.schema);return lt(n,o,t)?(0,xn.lift)(n,r):!1},Oo=()=>({state:e,dispatch:t})=>(0,bn.liftEmptyBlock)(e,t),Bo=e=>({state:t,dispatch:n})=>{let r=F(e,t.schema);return(0,wn.liftListItem)(r)(t,n)},$o=()=>({state:e,dispatch:t})=>(0,kn.newlineInCode)(e,t);function Mn(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function Jt(e,t){let n=typeof t=="string"?[t]:t;return Object.keys(e).reduce((r,o)=>(n.includes(o)||(r[o]=e[o]),r),{})}var Ho=(e,t)=>({tr:n,state:r,dispatch:o})=>{let s=null,i=null,l=Mn(typeof e=="string"?e:e.name,r.schema);if(!l)return!1;l==="node"&&(s=F(e,r.schema)),l==="mark"&&(i=te(e,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{r.doc.nodesBetween(c.$from.pos,c.$to.pos,(m,d)=>{s&&s===m.type&&(a=!0,o&&n.setNodeMarkup(d,void 0,Jt(m.attrs,t))),i&&m.marks.length&&m.marks.forEach(p=>{i===p.type&&(a=!0,o&&n.addMark(d,d+m.nodeSize,i.create(Jt(p.attrs,t))))})})}),a},_o=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),jo=()=>({tr:e,dispatch:t})=>{if(t){let n=new Sn.AllSelection(e.doc);e.setSelection(n)}return!0},Uo=()=>({state:e,dispatch:t})=>(0,Tn.selectNodeBackward)(e,t),Ro=()=>({state:e,dispatch:t})=>(0,En.selectNodeForward)(e,t),Fo=()=>({state:e,dispatch:t})=>(0,Cn.selectParentNode)(e,t),Wo=()=>({state:e,dispatch:t})=>(0,In.selectTextblockEnd)(e,t),Vo=()=>({state:e,dispatch:t})=>(0,An.selectTextblockStart)(e,t);function Ko(e,t,n={},r={}){return ke(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var Jo=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:o,tr:s,dispatch:i,commands:l})=>{let{doc:a}=s;if(r.preserveWhitespace!=="full"){let c=Ko(e,o.schema,r,{errorOnInvalidContent:t??o.options.enableContentCheck});return i&&s.replaceWith(0,a.content.size,c).setMeta("preventUpdate",!n),!0}return i&&s.setMeta("preventUpdate",!n),l.insertContentAt({from:0,to:a.content.size},e,{parseOptions:r,errorOnInvalidContent:t??o.options.enableContentCheck})};function qo(e,t){let n=te(t,e.schema),{from:r,to:o,empty:s}=e.selection,i=[];s?(e.storedMarks&&i.push(...e.storedMarks),i.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,o,a=>{i.push(...a.marks)});let l=i.find(a=>a.type.name===n.name);return l?{...l.attrs}:{}}function Xo(e,t){let n=new Pn.Transform(e);return t.forEach(r=>{r.steps.forEach(o=>{n.step(o)})}),n}function Yo(e){for(let t=0;t<e.edgeCount;t+=1){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}function Go(e,t){for(let n=e.depth;n>0;n-=1){let r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function dt(e){return t=>Go(t.$from,e)}function x(e,t,n){return e.config[t]===void 0&&e.parent?x(e.parent,t,n):typeof e.config[t]=="function"?e.config[t].bind({...n,parent:e.parent?x(e.parent,t,n):null}):e.config[t]}function ut(e){return e.map(t=>{let n={name:t.name,options:t.options,storage:t.storage},r=x(t,"addExtensions",n);return r?[t,...ut(r())]:t}).flat(10)}function Ln(e,t){let n=Nn.DOMSerializer.fromSchema(t).serializeFragment(e),o=document.implementation.createHTMLDocument().createElement("div");return o.appendChild(n),o.innerHTML}function Zo(e){return typeof e=="function"}function B(e,t=void 0,...n){return Zo(e)?t?e.bind(t)(...n):e(...n):e}function es(e={}){return Object.keys(e).length===0&&e.constructor===Object}function me(e){let t=e.filter(o=>o.type==="extension"),n=e.filter(o=>o.type==="node"),r=e.filter(o=>o.type==="mark");return{baseExtensions:t,nodeExtensions:n,markExtensions:r}}function zn(e){let t=[],{nodeExtensions:n,markExtensions:r}=me(e),o=[...n,...r],s={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},i=n.filter(c=>c.name!=="text").map(c=>c.name),l=r.map(c=>c.name),a=[...i,...l];return e.forEach(c=>{let m={name:c.name,options:c.options,storage:c.storage,extensions:o},d=x(c,"addGlobalAttributes",m);if(!d)return;d().forEach(u=>{let h;Array.isArray(u.types)?h=u.types:u.types==="*"?h=a:u.types==="nodes"?h=i:u.types==="marks"?h=l:h=[],h.forEach(f=>{Object.entries(u.attributes).forEach(([g,v])=>{t.push({type:f,name:g,attribute:{...s,...v}})})})})}),o.forEach(c=>{let m={name:c.name,options:c.options,storage:c.storage},d=x(c,"addAttributes",m);if(!d)return;let p=d();Object.entries(p).forEach(([u,h])=>{let f={...s,...h};typeof f?.default=="function"&&(f.default=f.default()),f?.isRequired&&f?.default===void 0&&delete f.default,t.push({type:c.name,name:u,attribute:f})})}),t}function ts(e){let t=[],n="",r=!1,o=!1,s=0,i=e.length;for(let l=0;l<i;l+=1){let a=e[l];if(a==="'"&&!o){r=!r,n+=a;continue}if(a==='"'&&!r){o=!o,n+=a;continue}if(!r&&!o){if(a==="("){s+=1,n+=a;continue}if(a===")"&&s>0){s-=1,n+=a;continue}if(a===";"&&s===0){t.push(n),n="";continue}}n+=a}return n&&t.push(n),t}function qt(e){let t=[],n=ts(e||""),r=n.length;for(let o=0;o<r;o+=1){let s=n[o],i=s.indexOf(":");if(i===-1)continue;let l=s.slice(0,i).trim(),a=s.slice(i+1).trim();l&&a&&t.push([l,a])}return t}function Me(...e){return e.filter(t=>!!t).reduce((t,n)=>{let r={...t};return Object.entries(n).forEach(([o,s])=>{if(!r[o]){r[o]=s;return}if(o==="class"){let l=s?String(s).split(" "):[],a=r[o]?r[o].split(" "):[],c=l.filter(m=>!a.includes(m));r[o]=[...a,...c].join(" ")}else if(o==="style"){let l=new Map([...qt(r[o]),...qt(s)]);r[o]=Array.from(l.entries()).map(([a,c])=>`${a}: ${c}`).join("; ")}else r[o]=s}),r},{})}function $e(e,t){return t.filter(n=>n.type===e.type.name).filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(e.attrs)||{}:{[n.name]:e.attrs[n.name]}).reduce((n,r)=>Me(n,r),{})}function ns(e){return typeof e!="string"?e:e.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(e):e==="true"?!0:e==="false"?!1:e}function Xt(e,t){return"style"in e?e:{...e,getAttrs:n=>{let r=e.getAttrs?e.getAttrs(n):e.attrs;if(r===!1)return!1;let o=t.reduce((s,i)=>{let l=i.attribute.parseHTML?i.attribute.parseHTML(n):ns(n.getAttribute(i.name));return l==null?s:{...s,[i.name]:l}},{});return{...r,...o}}}}function Yt(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>t==="attrs"&&es(n)?!1:n!=null))}function Gt(e){var t,n;let r={};return!((t=e?.attribute)!=null&&t.isRequired)&&"default"in(e?.attribute||{})&&(r.default=e.attribute.default),((n=e?.attribute)==null?void 0:n.validate)!==void 0&&(r.validate=e.attribute.validate),[e.name,r]}function rs(e,t){var n;let r=zn(e),{nodeExtensions:o,markExtensions:s}=me(e),i=(n=o.find(c=>x(c,"topNode")))==null?void 0:n.name,l=Object.fromEntries(o.map(c=>{let m=r.filter(v=>v.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:t},p=e.reduce((v,y)=>{let S=x(y,"extendNodeSchema",d);return{...v,...S?S(c):{}}},{}),u=Yt({...p,content:B(x(c,"content",d)),marks:B(x(c,"marks",d)),group:B(x(c,"group",d)),inline:B(x(c,"inline",d)),atom:B(x(c,"atom",d)),selectable:B(x(c,"selectable",d)),draggable:B(x(c,"draggable",d)),code:B(x(c,"code",d)),whitespace:B(x(c,"whitespace",d)),linebreakReplacement:B(x(c,"linebreakReplacement",d)),defining:B(x(c,"defining",d)),isolating:B(x(c,"isolating",d)),attrs:Object.fromEntries(m.map(Gt))}),h=B(x(c,"parseHTML",d));h&&(u.parseDOM=h.map(v=>Xt(v,m)));let f=x(c,"renderHTML",d);f&&(u.toDOM=v=>f({node:v,HTMLAttributes:$e(v,m)}));let g=x(c,"renderText",d);return g&&(u.toText=g),[c.name,u]})),a=Object.fromEntries(s.map(c=>{let m=r.filter(g=>g.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:t},p=e.reduce((g,v)=>{let y=x(v,"extendMarkSchema",d);return{...g,...y?y(c):{}}},{}),u=Yt({...p,inclusive:B(x(c,"inclusive",d)),excludes:B(x(c,"excludes",d)),group:B(x(c,"group",d)),spanning:B(x(c,"spanning",d)),code:B(x(c,"code",d)),attrs:Object.fromEntries(m.map(Gt))}),h=B(x(c,"parseHTML",d));h&&(u.parseDOM=h.map(g=>Xt(g,m)));let f=x(c,"renderHTML",d);return f&&(u.toDOM=g=>f({mark:g,HTMLAttributes:$e(g,m)})),[c.name,u]}));return new Dn.Schema({topNode:i,nodes:l,marks:a})}function os(e){let t=e.filter((n,r)=>e.indexOf(n)!==r);return Array.from(new Set(t))}function we(e){return e.sort((n,r)=>{let o=x(n,"priority")||100,s=x(r,"priority")||100;return o>s?-1:o<s?1:0})}function On(e){let t=we(ut(e)),n=os(t.map(r=>r.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(r=>`'${r}'`).join(", ")}]. This can lead to issues.`),t}function as(e,t,n){let{from:r,to:o}=t,{blockSeparator:s=`
2
2
 
3
- `,textSerializers:i={}}=n||{},l="";return e.nodesBetween(r,o,(a,c,m,d)=>{var p;a.isBlock&&c>r&&(l+=s);let u=i?.[a.type.name];if(u)return m&&(l+=u({node:a,pos:c,parent:m,index:d,range:t})),!1;a.isText&&(l+=(p=a?.text)==null?void 0:p.slice(Math.max(r,c)-c,o-c))}),l}function cs(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,t])=>t.spec.toText).map(([t,n])=>[t,n.spec.toText]))}function ls(e,t=JSON.stringify){let n={};return e.filter(r=>{let o=t(r);return Object.prototype.hasOwnProperty.call(n,o)?!1:n[o]=!0})}function ds(e){let t=ls(e);return t.length===1?t:t.filter((n,r)=>!t.filter((s,i)=>i!==r).some(s=>n.oldRange.from>=s.oldRange.from&&n.oldRange.to<=s.oldRange.to&&n.newRange.from>=s.newRange.from&&n.newRange.to<=s.newRange.to))}function us(e){let{mapping:t,steps:n}=e,r=[];return t.maps.forEach((o,s)=>{let i=[];if(o.ranges.length)o.forEach((l,a)=>{i.push({from:l,to:a})});else{let{from:l,to:a}=n[s];if(l===void 0||a===void 0)return;i.push({from:l,to:a})}i.forEach(({from:l,to:a})=>{let c=t.slice(s).map(l,-1),m=t.slice(s).map(a),d=t.invert().map(c,-1),p=t.invert().map(m);r.push({oldRange:{from:d,to:p},newRange:{from:c,to:m}})})}),ds(r)}function be(e,t){return t.nodes[e]||t.marks[e]||null}function Le(e,t,n){return Object.fromEntries(Object.entries(n).filter(([r])=>{let o=e.find(s=>s.type===t&&s.name===r);return o?o.attribute.keepOnSplit:!1}))}var ms=(e,t=500)=>{let n="",r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(o,s,i,l)=>{var a,c;let m=((c=(a=o.type.spec).toText)==null?void 0:c.call(a,{node:o,pos:s,parent:i,index:l}))||o.textContent||"%leaf%";n+=o.isAtom&&!o.isText?m:m.slice(0,Math.max(0,r-s))}),n};function ps(e,t,n={}){let{empty:r,ranges:o}=e.selection,s=t?te(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(d=>s?s.name===d.type.name:!0).find(d=>Oe(d.attrs,n,{strict:!1}));let i=0,l=[];if(o.forEach(({$from:d,$to:p})=>{let u=d.pos,h=p.pos;e.doc.nodesBetween(u,h,(f,g)=>{if(s&&f.inlineContent&&!f.type.allowsMarkType(s))return!1;if(!f.isText&&!f.marks.length)return;let v=Math.max(u,g),y=Math.min(h,g+f.nodeSize),S=y-v;i+=S,l.push(...f.marks.map(C=>({mark:C,from:v,to:y})))})}),i===0)return!1;let a=l.filter(d=>s?s.name===d.mark.type.name:!0).filter(d=>Oe(d.mark.attrs,n,{strict:!1})).reduce((d,p)=>d+p.to-p.from,0),c=l.filter(d=>s?d.mark.type!==s&&d.mark.type.excludes(s):!0).reduce((d,p)=>d+p.to-p.from,0);return(a>0?a+c:a)>=i}function Qt(e,t){return Array.isArray(t)?t.some(n=>(typeof n=="string"?n:n.name)===e.name):t}function nt(e,t){let{nodeExtensions:n}=me(t),r=n.find(i=>i.name===e);if(!r)return!1;let o={name:r.name,options:r.options,storage:r.storage},s=B(x(r,"group",o));return typeof s!="string"?!1:s.split(" ").includes("list")}function Bn(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){var r;if(n){if(e.type.name==="hardBreak")return!0;if(e.isText)return!/\S/.test((r=e.text)!=null?r:"")}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(e.content.childCount===0)return!0;if(t){let o=!0;return e.content.forEach(s=>{o!==!1&&(Bn(s,{ignoreWhitespace:n,checkChildren:t})||(o=!1))}),o}return!1}function hs(e,t,n){var r;let{selection:o}=t,s=null;if(dn(o)&&(s=o.$cursor),s){let l=(r=e.storedMarks)!=null?r:s.marks();return s.parent.type.allowsMarkType(n)&&(!!n.isInSet(l)||!l.some(c=>c.type.excludes(n)))}let{ranges:i}=o;return i.some(({$from:l,$to:a})=>{let c=l.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(n):!1;return e.doc.nodesBetween(l.pos,a.pos,(m,d,p)=>{if(c)return!1;if(m.isInline){let u=!p||p.type.allowsMarkType(n),h=!!n.isInSet(m.marks)||!m.marks.some(f=>f.type.excludes(n));c=u&&h}return!c}),c})}var gs=(e,t={})=>({tr:n,state:r,dispatch:o})=>{let{selection:s}=n,{empty:i,ranges:l}=s,a=te(e,r.schema);if(o)if(i){let c=qo(r,a);n.addStoredMark(a.create({...c,...t}))}else l.forEach(c=>{let m=c.$from.pos,d=c.$to.pos;r.doc.nodesBetween(m,d,(p,u)=>{let h=Math.max(u,m),f=Math.min(u+p.nodeSize,d);p.marks.find(v=>v.type===a)?p.marks.forEach(v=>{a===v.type&&n.addMark(h,f,a.create({...v.attrs,...t}))}):n.addMark(h,f,a.create(t))})});return hs(r,n,a)},vs=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),ys=(e,t={})=>({state:n,dispatch:r,chain:o})=>{let s=F(e,n.schema),i;return n.selection.$anchor.sameParent(n.selection.$head)&&(i=n.selection.$anchor.parent.attrs),s.isTextblock?o().command(({commands:l})=>(0,st.setBlockType)(s,{...i,...t})(n)?!0:l.clearNodes()).command(({state:l})=>(0,st.setBlockType)(s,{...i,...t})(l,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},xs=e=>({tr:t,dispatch:n})=>{if(n){let{doc:r}=t,o=ce(e,0,r.content.size),s=$n.NodeSelection.create(r,o);t.setSelection(s)}return!0},bs=(e,t)=>({tr:n,state:r,dispatch:o})=>{let{selection:s}=r,i,l;return typeof t=="number"?(i=t,l=t):t&&"from"in t&&"to"in t?(i=t.from,l=t.to):(i=s.from,l=s.to),o&&n.doc.nodesBetween(i,l,(a,c)=>{a.isText||n.setNodeMarkup(c,void 0,{...a.attrs,dir:e})}),!0},ws=e=>({tr:t,dispatch:n})=>{if(n){let{doc:r}=t,{from:o,to:s}=typeof e=="number"?{from:e,to:e}:e,i=De.TextSelection.atStart(r).from,l=De.TextSelection.atEnd(r).to,a=ce(o,i,l),c=ce(s,i,l),m=De.TextSelection.create(r,a,c);t.setSelection(m)}return!0},ks=e=>({state:t,dispatch:n})=>{let r=F(e,t.schema);return(0,Hn.sinkListItem)(r)(t,n)};function Zt(e,t){let n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){let r=n.filter(o=>t?.includes(o.type.name));e.tr.ensureMarks(r)}}var Ms=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:o})=>{let{selection:s,doc:i}=t,{$from:l,$to:a}=s,c=o.extensionManager.attributes,m=Le(c,l.node().type.name,l.node().attrs);if(s instanceof je.NodeSelection&&s.node.isBlock)return!l.parentOffset||!(0,ze.canSplit)(i,l.pos)?!1:(r&&(e&&Zt(n,o.extensionManager.splittableMarks),t.split(l.pos).scrollIntoView()),!0);if(!l.parent.isBlock)return!1;let d=a.parentOffset===a.parent.content.size,p=l.depth===0?void 0:Yo(l.node(-1).contentMatchAt(l.indexAfter(-1))),u=d&&p?[{type:p,attrs:m}]:void 0,h=(0,ze.canSplit)(t.doc,t.mapping.map(l.pos),1,u);if(!u&&!h&&(0,ze.canSplit)(t.doc,t.mapping.map(l.pos),1,p?[{type:p}]:void 0)&&(h=!0,u=p?[{type:p,attrs:m}]:void 0),r){if(h&&(s instanceof je.TextSelection&&t.deleteSelection(),t.split(t.mapping.map(l.pos),1,u),p&&!d&&!l.parentOffset&&l.parent.type!==p)){let f=t.mapping.map(l.before()),g=t.doc.resolve(f);l.node(-1).canReplaceWith(g.index(),g.index()+1,p)&&t.setNodeMarkup(t.mapping.map(l.before()),p)}e&&Zt(n,o.extensionManager.splittableMarks),t.scrollIntoView()}return h},Ss=(e,t={})=>({tr:n,state:r,dispatch:o,editor:s})=>{var i;let l=F(e,r.schema),{$from:a,$to:c}=r.selection,m=r.selection.node;if(m&&m.isBlock||a.depth<2||!a.sameParent(c))return!1;let d=a.node(-1);if(d.type!==l)return!1;let p=s.extensionManager.attributes;if(a.parent.content.size===0&&a.node(-1).childCount===a.indexAfter(-1)){if(a.depth===2||a.node(-3).type!==l||a.index(-2)!==a.node(-2).childCount-1)return!1;if(o){let v=de.Fragment.empty,y=a.index(-1)?1:a.index(-2)?2:3;for(let I=a.depth-y;I>=a.depth-3;I-=1)v=de.Fragment.from(a.node(I).copy(v));let S=a.indexAfter(-1)<a.node(-2).childCount?1:a.indexAfter(-2)<a.node(-3).childCount?2:3,C={...Le(p,a.node().type.name,a.node().attrs),...t},T=((i=l.contentMatch.defaultType)==null?void 0:i.createAndFill(C))||void 0;v=v.append(de.Fragment.from(l.createAndFill(null,T)||void 0));let E=a.before(a.depth-(y-1));n.replace(E,a.after(-S),new de.Slice(v,4-y,0));let A=-1;n.doc.nodesBetween(E,n.doc.content.size,(I,z)=>{if(A>-1)return!1;I.isTextblock&&I.content.size===0&&(A=z+1)}),A>-1&&n.setSelection(_n.TextSelection.near(n.doc.resolve(A))),n.scrollIntoView()}return!0}let u=c.pos===a.end()?d.contentMatchAt(0).defaultType:null,h={...Le(p,d.type.name,d.attrs),...t},f={...Le(p,a.node().type.name,a.node().attrs),...t};n.delete(a.pos,c.pos);let g=u?[{type:l,attrs:h},{type:u,attrs:f}]:[{type:l,attrs:h}];if(!(0,jn.canSplit)(n.doc,a.pos,2))return!1;if(o){let{selection:v,storedMarks:y}=r,{splittableMarks:S}=s.extensionManager,C=y||v.$to.parentOffset&&v.$from.marks();if(n.split(a.pos,2,g).scrollIntoView(),!C||!o)return!0;let T=C.filter(E=>S.includes(E.type.name));n.ensureMarks(T)}return!0},rt=(e,t)=>{let n=dt(i=>i.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;let o=e.doc.nodeAt(r);return n.node.type===o?.type&&(0,mt.canJoin)(e.doc,n.pos)&&e.join(n.pos),!0},ot=(e,t)=>{let n=dt(i=>i.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;let o=e.doc.nodeAt(r);return n.node.type===o?.type&&(0,mt.canJoin)(e.doc,r)&&e.join(r),!0};function Ts(e){let t=e.doc,n=t.firstChild;if(!n)return null;let r=t.resolve(1),o=t.resolve(n.nodeSize-1);return Un.TextSelection.between(r,o)}var Es=(e,t,n,r={})=>({editor:o,tr:s,state:i,dispatch:l,chain:a,commands:c,can:m})=>{let{extensions:d,splittableMarks:p}=o.extensionManager,u=F(e,i.schema),h=F(t,i.schema),{selection:f,storedMarks:g}=i,{$from:v,$to:y}=f,S=v.blockRange(y),C=g||f.$to.parentOffset&&f.$from.marks();if(!S)return!1;let T=dt($=>nt($.type.name,d))(f),E=f.from===0&&f.to===i.doc.content.size,A=i.doc.content.content,I=A.length===1?A[0]:null,z=E&&I&&nt(I.type.name,d)?{node:I,pos:0,depth:0}:null,D=T??z,P=!!T&&S.depth>=1&&S.depth-T.depth<=1,X=!!z;if((P||X)&&D){if(D.node.type===u)return E&&X?a().command(({tr:$,dispatch:R})=>{let j=Ts($);return j?($.setSelection(j),R&&R($),!0):!1}).liftListItem(h).run():c.liftListItem(h);if(nt(D.node.type.name,d)&&u.validContent(D.node.content))return a().command(()=>(s.setNodeMarkup(D.pos,u),!0)).command(()=>rt(s,u)).command(()=>ot(s,u)).run()}return!n||!C||!l?a().command(()=>m().wrapInList(u,r)?!0:c.clearNodes()).wrapInList(u,r).command(()=>rt(s,u)).command(()=>ot(s,u)).run():a().command(()=>{let $=m().wrapInList(u,r),R=C.filter(j=>p.includes(j.type.name));return s.ensureMarks(R),$?!0:c.clearNodes()}).wrapInList(u,r).command(()=>rt(s,u)).command(()=>ot(s,u)).run()},Cs=(e,t={},n={})=>({state:r,commands:o})=>{let{extendEmptyMarkRange:s=!1}=n,i=te(e,r.schema);return ps(r,i,t)?o.unsetMark(i,{extendEmptyMarkRange:s}):o.setMark(i,t)},Is=(e,t,n={})=>({state:r,commands:o})=>{let s=F(e,r.schema),i=F(t,r.schema),l=lt(r,s,n),a;return r.selection.$anchor.sameParent(r.selection.$head)&&(a=r.selection.$anchor.parent.attrs),l?o.setNode(i,a):o.setNode(s,{...a,...n})},As=(e,t={})=>({state:n,commands:r})=>{let o=F(e,n.schema);return lt(n,o,t)?r.lift(o):r.wrapIn(o,t)},Ps=()=>({state:e,dispatch:t})=>{let n=e.plugins;for(let r=0;r<n.length;r+=1){let o=n[r],s;if(o.spec.isInputRules&&(s=o.getState(e))){if(t){let i=e.tr,l=s.transform;for(let a=l.steps.length-1;a>=0;a-=1)i.step(l.steps[a].invert(l.docs[a]));if(s.text){let a=i.doc.resolve(s.from).marks();i.replaceWith(s.from,s.to,e.schema.text(s.text,a))}else i.delete(s.from,s.to)}return!0}}return!1},Ns=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,{empty:r,ranges:o}=n;return r||t&&o.forEach(s=>{e.removeMark(s.$from.pos,s.$to.pos)}),!0},Ls=(e,t={})=>({tr:n,state:r,dispatch:o})=>{var s;let{extendEmptyMarkRange:i=!1}=t,{selection:l}=n,a=te(e,r.schema),{$from:c,empty:m,ranges:d}=l;if(!o)return!0;if(m&&i){let{from:p,to:u}=l,h=(s=c.marks().find(g=>g.type===a))==null?void 0:s.attrs,f=cn(c,a,h);f&&(p=f.from,u=f.to),n.removeMark(p,u,a)}else d.forEach(p=>{n.removeMark(p.$from.pos,p.$to.pos,a)});return n.removeStoredMark(a),!0},Ds=e=>({tr:t,state:n,dispatch:r})=>{let{selection:o}=n,s,i;return typeof e=="number"?(s=e,i=e):e&&"from"in e&&"to"in e?(s=e.from,i=e.to):(s=o.from,i=o.to),r&&t.doc.nodesBetween(s,i,(l,a)=>{if(l.isText)return;let c={...l.attrs};delete c.dir,t.setNodeMarkup(a,void 0,c)}),!0},zs=(e,t={})=>({tr:n,state:r,dispatch:o})=>{let s=null,i=null,l=Mn(typeof e=="string"?e:e.name,r.schema);if(!l)return!1;l==="node"&&(s=F(e,r.schema)),l==="mark"&&(i=te(e,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{let m=c.$from.pos,d=c.$to.pos,p,u,h,f;n.selection.empty?r.doc.nodesBetween(m,d,(g,v)=>{s&&s===g.type&&(a=!0,h=Math.max(v,m),f=Math.min(v+g.nodeSize,d),p=v,u=g)}):r.doc.nodesBetween(m,d,(g,v)=>{v<m&&s&&s===g.type&&(a=!0,h=Math.max(v,m),f=Math.min(v+g.nodeSize,d),p=v,u=g),v>=m&&v<=d&&(s&&s===g.type&&(a=!0,o&&n.setNodeMarkup(v,void 0,{...g.attrs,...t})),i&&g.marks.length&&g.marks.forEach(y=>{if(i===y.type&&(a=!0,o)){let S=Math.max(v,m),C=Math.min(v+g.nodeSize,d);n.addMark(S,C,i.create({...y.attrs,...t}))}}))}),u&&(p!==void 0&&o&&n.setNodeMarkup(p,void 0,{...u.attrs,...t}),i&&u.marks.length&&u.marks.forEach(g=>{i===g.type&&o&&n.addMark(h,f,i.create({...g.attrs,...t}))}))}),a},Os=(e,t={})=>({state:n,dispatch:r})=>{let o=F(e,n.schema);return(0,Rn.wrapIn)(o,t)(n,r)},Bs=(e,t={})=>({state:n,dispatch:r})=>{let o=F(e,n.schema);return(0,Fn.wrapInList)(o,t)(n,r)};var _s=(e,t)=>{if(ct(t))return t.exec(e);let n=t(e);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function Ae(e){var t;let{editor:n,from:r,to:o,text:s,rules:i,plugin:l}=e,{view:a}=n;if(a.composing)return!1;let c=a.state.doc.resolve(r);if(c.parent.type.spec.code||(t=c.nodeBefore||c.nodeAfter)!=null&&t.marks.find(p=>p.type.spec.code))return!1;let m=!1,d=ms(c)+s;return i.forEach(p=>{if(m)return;let u=_s(d,p.find);if(!u)return;let h=a.state.tr,f=He({state:a.state,transaction:h}),g={from:r-(u[0].length-s.length),to:o},{commands:v,chain:y,can:S}=new at({editor:n,state:f});p.handler({state:f,range:g,match:u,commands:v,chain:y,can:S})===null||!h.steps.length||(p.undoable&&h.setMeta(l,{transform:h,from:r,to:o,text:s}),a.dispatch(h),m=!0)}),m}function js(e){let{editor:t,rules:n}=e,r=new Kn.Plugin({state:{init(){return null},apply(o,s,i){let l=o.getMeta(r);if(l)return l;let a=o.getMeta("applyInputRules");return a&&setTimeout(()=>{let{text:m}=a;typeof m=="string"?m=m:m=Ln(Wn.Fragment.from(m),i.schema);let{from:d}=a,p=d+m.length;Ae({editor:t,from:d,to:p,text:m,rules:n,plugin:r})}),o.selectionSet||o.docChanged?null:s}},props:{handleTextInput(o,s,i,l){return Ae({editor:t,from:s,to:i,text:l,rules:n,plugin:r})},handleDOMEvents:{compositionend:o=>(setTimeout(()=>{let{$cursor:s}=o.state.selection;s&&Ae({editor:t,from:s.pos,to:s.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(o,s){if(s.key!=="Enter")return!1;let{$cursor:i}=o.state.selection;return i?Ae({editor:t,from:i.pos,to:i.pos,text:`
4
- `,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function Us(e){return Object.prototype.toString.call(e).slice(8,-1)}function Pe(e){return Us(e)!=="Object"?!1:e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function Jn(e,t){let n={...e};return Pe(e)&&Pe(t)&&Object.keys(t).forEach(r=>{Pe(t[r])&&Pe(e[r])?n[r]=Jn(e[r],t[r]):n[r]=t[r]}),n}var pt=class{constructor(e={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...B(x(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...B(x(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>Jn(this.options,e)});return t.name=this.name,t.parent=this.parent,this.child=null,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name="name"in e?e.name:t.parent.name,t}},ft=class qn extends pt{constructor(){super(...arguments),this.type="mark"}static create(t={}){let n=typeof t=="function"?t():t;return new qn(n)}static handleExit({editor:t,mark:n}){let{tr:r}=t.state,o=t.state.selection.$from;if(o.pos===o.end()){let i=o.marks();if(!!!i.find(c=>c?.type.name===n.name))return!1;let a=i.find(c=>c?.type.name===n.name);return a&&r.removeStoredMark(a),r.insertText(" ",o.pos),t.view.dispatch(r),!0}return!1}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}};function Rs(e){return typeof e=="number"}var Fs=(e,t,n)=>{if(ct(t))return[...e.matchAll(t)];let r=t(e,n);return r?r.map(o=>{let s=[o.text];return s.index=o.index,s.input=e,s.data=o.data,o.replaceWith&&(o.text.includes(o.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),s.push(o.replaceWith)),s}):[]};function Vs(e){let{editor:t,state:n,from:r,to:o,rule:s,pasteEvent:i,dropEvent:l}=e,{commands:a,chain:c,can:m}=new at({editor:t,state:n}),d=[];return n.doc.nodesBetween(r,o,(u,h)=>{var f,g,v,y,S;if((g=(f=u.type)==null?void 0:f.spec)!=null&&g.code||!(u.isText||u.isTextblock||u.isInline))return;let C=(S=(y=(v=u.content)==null?void 0:v.size)!=null?y:u.nodeSize)!=null?S:0,T=Math.max(r,h),E=Math.min(o,h+C);if(T>=E)return;let A=u.isText?u.text||"":u.textBetween(T-h,E-h,void 0,"\uFFFC");Fs(A,s.find,i).forEach(z=>{if(z.index===void 0)return;let D=T+z.index+1,P=D+z[0].length,X={from:n.tr.mapping.map(D),to:n.tr.mapping.map(P)},$=s.handler({state:n,range:X,match:z,commands:a,chain:c,can:m,pasteEvent:i,dropEvent:l});d.push($)})}),d.every(u=>u!==null)}var Ne=null,Ws=e=>{var t;let n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(t=n.clipboardData)==null||t.setData("text/html",e),n};function Ks(e){let{editor:t,rules:n}=e,r=null,o=!1,s=!1,i=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,l;try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}let a=({state:m,from:d,to:p,rule:u,pasteEvt:h})=>{let f=m.tr,g=He({state:m,transaction:f});if(!(!Vs({editor:t,state:g,from:Math.max(d-1,0),to:p.b-1,rule:u,pasteEvent:h,dropEvent:l})||!f.steps.length)){try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}return i=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,f}};return n.map(m=>new Yn.Plugin({view(d){let p=h=>{var f;r=(f=d.dom.parentElement)!=null&&f.contains(h.target)?d.dom.parentElement:null,r&&(Ne=t)},u=()=>{Ne&&(Ne=null)};return window.addEventListener("dragstart",p),window.addEventListener("dragend",u),{destroy(){window.removeEventListener("dragstart",p),window.removeEventListener("dragend",u)}}},props:{handleDOMEvents:{drop:(d,p)=>{if(s=r===d.dom.parentElement,l=p,!s){let u=Ne;u?.isEditable&&setTimeout(()=>{let h=u.state.selection;h&&u.commands.deleteRange({from:h.from,to:h.to})},10)}return!1},paste:(d,p)=>{var u;let h=(u=p.clipboardData)==null?void 0:u.getData("text/html");return i=p,o=!!h?.includes("data-pm-slice"),!1}}},appendTransaction:(d,p,u)=>{let h=d[0],f=h.getMeta("uiEvent")==="paste"&&!o,g=h.getMeta("uiEvent")==="drop"&&!s,v=h.getMeta("applyPasteRules"),y=!!v;if(!f&&!g&&!y)return;if(y){let{text:T}=v;typeof T=="string"?T=T:T=Ln(Xn.Fragment.from(T),u.schema);let{from:E}=v,A=E+T.length,I=Ws(T);return a({rule:m,state:u,from:E,to:{b:A},pasteEvt:I})}let S=p.doc.content.findDiffStart(u.doc.content),C=p.doc.content.findDiffEnd(u.doc.content);if(!(!Rs(S)||!C||S===C.b))return a({rule:m,state:u,from:S,to:C,pasteEvt:i})}}))}var ht=class{constructor(e,t){this.splittableMarks=[],this.editor=t,this.baseExtensions=e,this.extensions=On(e),this.schema=rs(this.extensions,t),this.setupExtensions()}get commands(){return this.extensions.reduce((e,t)=>{let n={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:be(t.name,this.schema)},r=x(t,"addCommands",n);return r?{...e,...r()}:e},{})}get plugins(){let{editor:e}=this;return we([...this.extensions].reverse()).flatMap(r=>{let o={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:e,type:be(r.name,this.schema)},s=[],i=x(r,"addKeyboardShortcuts",o),l={};if(r.type==="mark"&&x(r,"exitable",o)&&(l.ArrowRight=()=>ft.handleExit({editor:e,mark:r})),i){let p=Object.fromEntries(Object.entries(i()).map(([u,h])=>[u,()=>h({editor:e})]));l={...l,...p}}let a=(0,Vn.keymap)(l);s.push(a);let c=x(r,"addInputRules",o);if(Qt(r,e.options.enableInputRules)&&c){let p=c();if(p&&p.length){let u=js({editor:e,rules:p}),h=Array.isArray(u)?u:[u];s.push(...h)}}let m=x(r,"addPasteRules",o);if(Qt(r,e.options.enablePasteRules)&&m){let p=m();if(p&&p.length){let u=Ks({editor:e,rules:p});s.push(...u)}}let d=x(r,"addProseMirrorPlugins",o);if(d){let p=d();s.push(...p)}return s})}get attributes(){return zn(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:t}=me(this.extensions);return Object.fromEntries(t.filter(n=>!!x(n,"addNodeView")).map(n=>{let r=this.attributes.filter(a=>a.type===n.name),o={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:e,type:F(n.name,this.schema)},s=x(n,"addNodeView",o);if(!s)return[];let i=s();if(!i)return[];let l=(a,c,m,d,p)=>{let u=$e(a,r);return i({node:a,view:c,getPos:m,decorations:d,innerDecorations:p,editor:e,extension:n,HTMLAttributes:u})};return[n.name,l]}))}dispatchTransaction(e){let{editor:t}=this;return we([...this.extensions].reverse()).reduceRight((r,o)=>{let s={name:o.name,options:o.options,storage:this.editor.extensionStorage[o.name],editor:t,type:be(o.name,this.schema)},i=x(o,"dispatchTransaction",s);return i?l=>{i.call(s,{transaction:l,next:r})}:r},e)}transformPastedHTML(e){let{editor:t}=this;return we([...this.extensions]).reduce((r,o)=>{let s={name:o.name,options:o.options,storage:this.editor.extensionStorage[o.name],editor:t,type:be(o.name,this.schema)},i=x(o,"transformPastedHTML",s);return i?(l,a)=>{let c=r(l,a);return i.call(s,c)}:r},e||(r=>r))}get markViews(){let{editor:e}=this,{markExtensions:t}=me(this.extensions);return Object.fromEntries(t.filter(n=>!!x(n,"addMarkView")).map(n=>{let r=this.attributes.filter(l=>l.type===n.name),o={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:e,type:te(n.name,this.schema)},s=x(n,"addMarkView",o);if(!s)return[];let i=(l,a,c)=>{let m=$e(l,r);return s()({mark:l,view:a,inline:c,editor:e,extension:n,HTMLAttributes:m,updateAttributes:d=>{pi(l,e,d)}})};return[n.name,i]}))}destroy(){this.extensions.forEach(e=>{let t=e;for(;t.parent;){let n=t.parent;n.child===t&&(n.child=null),t=n}}),this.extensions=[],this.baseExtensions=[],this.schema=null,this.editor=null}setupExtensions(){let e=this.extensions;this.editor.extensionStorage=Object.fromEntries(e.map(t=>[t.name,t.storage])),e.forEach(t=>{var n;let r={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:be(t.name,this.schema)};t.type==="mark"&&((n=B(x(t,"keepOnSplit",r)))==null||n)&&this.splittableMarks.push(t.name);let o=x(t,"onBeforeCreate",r),s=x(t,"onCreate",r),i=x(t,"onUpdate",r),l=x(t,"onSelectionUpdate",r),a=x(t,"onTransaction",r),c=x(t,"onFocus",r),m=x(t,"onBlur",r),d=x(t,"onDestroy",r);o&&this.editor.on("beforeCreate",o),s&&this.editor.on("create",s),i&&this.editor.on("update",i),l&&this.editor.on("selectionUpdate",l),a&&this.editor.on("transaction",a),c&&this.editor.on("focus",c),m&&this.editor.on("blur",m),d&&this.editor.on("destroy",d)})}};ht.resolve=On;ht.sort=we;ht.flatten=ut;var Js={};it(Js,{ClipboardTextSerializer:()=>qs,Commands:()=>Xs,Delete:()=>Ys,Drop:()=>Gs,Editable:()=>Qs,FocusEvents:()=>Zs,Keymap:()=>ei,Paste:()=>ti,Tabindex:()=>ni,TextDirection:()=>ri,focusEventsPluginKey:()=>Zn});var Z=class Gn extends pt{constructor(){super(...arguments),this.type="extension"}static create(t={}){let n=typeof t=="function"?t():t;return new Gn(n)}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}},qs=Z.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new Ue.Plugin({key:new Ue.PluginKey("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:o}=t,{ranges:s}=o,i=Math.min(...s.map(m=>m.$from.pos)),l=Math.max(...s.map(m=>m.$to.pos)),a=cs(n);return as(r,{from:i,to:l},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:a})}}})]}}),Xs=Z.create({name:"commands",addCommands(){return{...en}}}),Ys=Z.create({name:"delete",onUpdate({transaction:e,appendedTransactions:t}){var n,r,o;let s=()=>{var i,l,a,c;if((c=(a=(l=(i=this.editor.options.coreExtensionOptions)==null?void 0:i.delete)==null?void 0:l.filterTransaction)==null?void 0:a.call(l,e))!=null?c:e.getMeta("y-sync$"))return;let m=Xo(e.before,[e,...t]);us(m).forEach(u=>{m.mapping.mapResult(u.oldRange.from).deletedAfter&&m.mapping.mapResult(u.oldRange.to).deletedBefore&&m.before.nodesBetween(u.oldRange.from,u.oldRange.to,(h,f)=>{let g=f+h.nodeSize-2,v=u.oldRange.from<=f&&g<=u.oldRange.to;this.editor.emit("delete",{type:"node",node:h,from:f,to:g,newFrom:m.mapping.map(f),newTo:m.mapping.map(g),deletedRange:u.oldRange,newRange:u.newRange,partial:!v,editor:this.editor,transaction:e,combinedTransform:m})})});let p=m.mapping;m.steps.forEach((u,h)=>{var f,g;if(u instanceof Qn.RemoveMarkStep){let v=p.slice(h).map(u.from,-1),y=p.slice(h).map(u.to),S=p.invert().map(v,-1),C=p.invert().map(y),T=v>0?(f=m.doc.nodeAt(v-1))==null?void 0:f.marks.some(A=>A.eq(u.mark)):!1,E=(g=m.doc.nodeAt(y))==null?void 0:g.marks.some(A=>A.eq(u.mark));this.editor.emit("delete",{type:"mark",mark:u.mark,from:u.from,to:u.to,deletedRange:{from:S,to:C},newRange:{from:v,to:y},partial:!!(E||T),editor:this.editor,transaction:e,combinedTransform:m})}})};(o=(r=(n=this.editor.options.coreExtensionOptions)==null?void 0:n.delete)==null?void 0:r.async)==null||o?setTimeout(s,0):s()}}),Gs=Z.create({name:"drop",addProseMirrorPlugins(){return[new Re.Plugin({key:new Re.PluginKey("tiptapDrop"),props:{handleDrop:(e,t,n,r)=>{this.editor.emit("drop",{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),Qs=Z.create({name:"editable",addProseMirrorPlugins(){return[new Fe.Plugin({key:new Fe.PluginKey("editable"),props:{editable:()=>this.editor.options.editable}})]}}),Zn=new Ve.PluginKey("focusEvents"),Zs=Z.create({name:"focusEvents",addProseMirrorPlugins(){let{editor:e}=this;return[new Ve.Plugin({key:Zn,props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;let r=e.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;let r=e.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1}}}})]}}),ei=Z.create({name:"keymap",addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:i})=>[()=>i.undoInputRule(),()=>i.command(({tr:l})=>{let{selection:a,doc:c}=l,{empty:m,$anchor:d}=a,{pos:p,parent:u}=d,h=d.parent.isTextblock&&p>0?l.doc.resolve(p-1):d,f=h.parent.type.spec.isolating,g=d.pos-d.parentOffset,v=f&&h.parent.childCount===1?g===d.pos:re.Selection.atStart(c).from===p;return!m||!u.type.isTextblock||u.textContent.length||!v||v&&d.parent.type.name==="paragraph"?!1:i.clearNodes()}),()=>i.deleteSelection(),()=>i.joinBackward(),()=>i.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:i})=>[()=>i.deleteSelection(),()=>i.deleteCurrentNode(),()=>i.joinForward(),()=>i.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:i})=>[()=>i.newlineInCode(),()=>i.createParagraphNear(),()=>i.liftEmptyBlock(),()=>i.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},o={...r},s={...r,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return Be()||yn()?s:o},addProseMirrorPlugins(){return[new re.Plugin({key:new re.PluginKey("clearDocument"),appendTransaction:(e,t,n)=>{if(e.some(f=>f.getMeta("composition")))return;let r=e.some(f=>f.docChanged)&&!t.doc.eq(n.doc),o=e.some(f=>f.getMeta("preventClearDocument"));if(!r||o)return;let{empty:s,from:i,to:l}=t.selection,a=re.Selection.atStart(t.doc).from,c=re.Selection.atEnd(t.doc).to;if(s||!(i===a&&l===c)||!Bn(n.doc))return;let p=n.tr,u=He({state:n,transaction:p}),{commands:h}=new at({editor:this.editor,state:u});if(h.clearNodes(),!!p.steps.length)return p}})]}}),ti=Z.create({name:"paste",addProseMirrorPlugins(){return[new We.Plugin({key:new We.PluginKey("tiptapPaste"),props:{handlePaste:(e,t,n)=>{this.editor.emit("paste",{editor:this.editor,event:t,slice:n})}}})]}}),ni=Z.create({name:"tabindex",addOptions(){return{value:void 0}},addProseMirrorPlugins(){return[new Ke.Plugin({key:new Ke.PluginKey("tabindex"),props:{attributes:()=>{var e;return!this.editor.isEditable&&this.options.value===void 0?{}:{tabindex:(e=this.options.value)!=null?e:"0"}}}})]}}),ri=Z.create({name:"textDirection",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:e}=me(this.extensions);return[{types:e.filter(t=>t.name!=="text").map(t=>t.name),attributes:{dir:{default:this.options.direction,parseHTML:t=>{let n=t.getAttribute("dir");return n&&(n==="ltr"||n==="rtl"||n==="auto")?n:this.options.direction},renderHTML:t=>t.dir?{dir:t.dir}:{}}}}]},addProseMirrorPlugins(){return[new Je.Plugin({key:new Je.PluginKey("textDirection"),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}});var si={};it(si,{createAtomBlockMarkdownSpec:()=>ii,createBlockMarkdownSpec:()=>ai,createInlineMarkdownSpec:()=>di,parseAttributes:()=>gt,parseIndentedBlocks:()=>ui,renderNestedMarkdownContent:()=>mi,serializeAttributes:()=>vt});function gt(e){if(!e?.trim())return{};let t={},n=[],r=e.replace(/["']([^"']*)["']/g,c=>(n.push(c),`__QUOTED_${n.length-1}__`)),o=r.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(o){let c=o.map(m=>m.trim().slice(1));t.class=c.join(" ")}let s=r.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);s&&(t.id=s[1]);let i=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(r.matchAll(i)).forEach(([,c,m])=>{var d;let p=parseInt(((d=m.match(/__QUOTED_(\d+)__/))==null?void 0:d[1])||"0",10),u=n[p];u&&(t[c]=u.slice(1,-1))});let a=r.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return a&&a.split(/\s+/).filter(Boolean).forEach(m=>{m.match(/^[a-zA-Z][\w-]*$/)&&(t[m]=!0)}),t}function vt(e){if(!e||Object.keys(e).length===0)return"";let t=[];return e.class&&String(e.class).split(/\s+/).filter(Boolean).forEach(r=>t.push(`.${r}`)),e.id&&t.push(`#${e.id}`),Object.entries(e).forEach(([n,r])=>{n==="class"||n==="id"||(r===!0?t.push(n):r!==!1&&r!=null&&t.push(`${n}="${String(r)}"`))}),t.join(" ")}function ii(e){let{nodeName:t,name:n,parseAttributes:r=gt,serializeAttributes:o=vt,defaultAttributes:s={},requiredAttributes:i=[],allowedAttributes:l}=e,a=n||t,c=m=>{if(!l)return m;let d={};return l.forEach(p=>{p in m&&(d[p]=m[p])}),d};return{parseMarkdown:(m,d)=>{let p={...s,...m.attributes};return d.createNode(t,p,[])},markdownTokenizer:{name:t,level:"block",start(m){var d;let p=new RegExp(`^:::${a}(?:\\s|$)`,"m"),u=(d=m.match(p))==null?void 0:d.index;return u!==void 0?u:-1},tokenize(m,d,p){let u=new RegExp(`^:::${a}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),h=m.match(u);if(!h)return;let f=h[1]||"",g=r(f);if(!i.find(y=>!(y in g)))return{type:t,raw:h[0],attributes:g}}},renderMarkdown:m=>{let d=c(m.attrs||{}),p=o(d),u=p?` {${p}}`:"";return`:::${a}${u} :::`}}}function ai(e){let{nodeName:t,name:n,getContent:r,parseAttributes:o=gt,serializeAttributes:s=vt,defaultAttributes:i={},content:l="block",allowedAttributes:a}=e,c=n||t,m=d=>{if(!a)return d;let p={};return a.forEach(u=>{u in d&&(p[u]=d[u])}),p};return{parseMarkdown:(d,p)=>{let u;if(r){let f=r(d);u=typeof f=="string"?[{type:"text",text:f}]:f}else l==="block"?u=p.parseChildren(d.tokens||[]):u=p.parseInline(d.tokens||[]);let h={...i,...d.attributes};return p.createNode(t,h,u)},markdownTokenizer:{name:t,level:"block",start(d){var p;let u=new RegExp(`^:::${c}`,"m"),h=(p=d.match(u))==null?void 0:p.index;return h!==void 0?h:-1},tokenize(d,p,u){var h;let f=new RegExp(`^:::${c}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),g=d.match(f);if(!g)return;let[v,y=""]=g,S=o(y),C=1,T=v.length,E="",A=/^:::([\w-]*)(\s.*)?/gm,I=d.slice(T);for(A.lastIndex=0;;){let z=A.exec(I);if(z===null)break;let D=z.index,P=z[1];if(!((h=z[2])!=null&&h.endsWith(":::"))){if(P)C+=1;else if(C-=1,C===0){let X=I.slice(0,D);E=X.trim();let $=d.slice(0,T+D+z[0].length),R=[];if(E)if(l==="block")for(R=u.blockTokens(X),R.forEach(j=>{j.text&&(!j.tokens||j.tokens.length===0)&&(j.tokens=u.inlineTokens(j.text))});R.length>0;){let j=R[R.length-1];if(j.type==="paragraph"&&(!j.text||j.text.trim()===""))R.pop();else break}else R=u.inlineTokens(E);return{type:t,raw:$,attributes:S,content:E,tokens:R}}}}}},renderMarkdown:(d,p)=>{let u=m(d.attrs||{}),h=s(u),f=h?` {${h}}`:"",g=p.renderChildren(d.content||[],`
3
+ `,textSerializers:i={}}=n||{},l="";return e.nodesBetween(r,o,(a,c,m,d)=>{var p;a.isBlock&&c>r&&(l+=s);let u=i?.[a.type.name];if(u)return m&&(l+=u({node:a,pos:c,parent:m,index:d,range:t})),!1;a.isText&&(l+=(p=a?.text)==null?void 0:p.slice(Math.max(r,c)-c,o-c))}),l}function cs(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,t])=>t.spec.toText).map(([t,n])=>[t,n.spec.toText]))}function ls(e,t=JSON.stringify){let n={};return e.filter(r=>{let o=t(r);return Object.prototype.hasOwnProperty.call(n,o)?!1:n[o]=!0})}function ds(e){let t=ls(e);return t.length===1?t:t.filter((n,r)=>!t.filter((s,i)=>i!==r).some(s=>n.oldRange.from>=s.oldRange.from&&n.oldRange.to<=s.oldRange.to&&n.newRange.from>=s.newRange.from&&n.newRange.to<=s.newRange.to))}function us(e){let{mapping:t,steps:n}=e,r=[];return t.maps.forEach((o,s)=>{let i=[];if(o.ranges.length)o.forEach((l,a)=>{i.push({from:l,to:a})});else{let{from:l,to:a}=n[s];if(l===void 0||a===void 0)return;i.push({from:l,to:a})}i.forEach(({from:l,to:a})=>{let c=t.slice(s).map(l,-1),m=t.slice(s).map(a),d=t.invert().map(c,-1),p=t.invert().map(m);r.push({oldRange:{from:d,to:p},newRange:{from:c,to:m}})})}),ds(r)}function be(e,t){return t.nodes[e]||t.marks[e]||null}function Le(e,t,n){return Object.fromEntries(Object.entries(n).filter(([r])=>{let o=e.find(s=>s.type===t&&s.name===r);return o?o.attribute.keepOnSplit:!1}))}var ms=(e,t=500)=>{let n="",r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(o,s,i,l)=>{var a,c;let m=((c=(a=o.type.spec).toText)==null?void 0:c.call(a,{node:o,pos:s,parent:i,index:l}))||o.textContent||"%leaf%";n+=o.isAtom&&!o.isText?m:m.slice(0,Math.max(0,r-s))}),n};function ps(e,t,n={}){let{empty:r,ranges:o}=e.selection,s=t?te(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(d=>s?s.name===d.type.name:!0).find(d=>Oe(d.attrs,n,{strict:!1}));let i=0,l=[];if(o.forEach(({$from:d,$to:p})=>{let u=d.pos,h=p.pos;e.doc.nodesBetween(u,h,(f,g)=>{if(s&&f.inlineContent&&!f.type.allowsMarkType(s))return!1;if(!f.isText&&!f.marks.length)return;let v=Math.max(u,g),y=Math.min(h,g+f.nodeSize),S=y-v;i+=S,l.push(...f.marks.map(C=>({mark:C,from:v,to:y})))})}),i===0)return!1;let a=l.filter(d=>s?s.name===d.mark.type.name:!0).filter(d=>Oe(d.mark.attrs,n,{strict:!1})).reduce((d,p)=>d+p.to-p.from,0),c=l.filter(d=>s?d.mark.type!==s&&d.mark.type.excludes(s):!0).reduce((d,p)=>d+p.to-p.from,0);return(a>0?a+c:a)>=i}function Qt(e,t){return Array.isArray(t)?t.some(n=>(typeof n=="string"?n:n.name)===e.name):t}function nt(e,t){let{nodeExtensions:n}=me(t),r=n.find(i=>i.name===e);if(!r)return!1;let o={name:r.name,options:r.options,storage:r.storage},s=B(x(r,"group",o));return typeof s!="string"?!1:s.split(" ").includes("list")}function Bn(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){var r;if(n){if(e.type.name==="hardBreak")return!0;if(e.isText)return!/\S/.test((r=e.text)!=null?r:"")}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(e.content.childCount===0)return!0;if(t){let o=!0;return e.content.forEach(s=>{o!==!1&&(Bn(s,{ignoreWhitespace:n,checkChildren:t})||(o=!1))}),o}return!1}function hs(e,t,n){var r;let{selection:o}=t,s=null;if(dn(o)&&(s=o.$cursor),s){let l=(r=e.storedMarks)!=null?r:s.marks();return s.parent.type.allowsMarkType(n)&&(!!n.isInSet(l)||!l.some(c=>c.type.excludes(n)))}let{ranges:i}=o;return i.some(({$from:l,$to:a})=>{let c=l.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(n):!1;return e.doc.nodesBetween(l.pos,a.pos,(m,d,p)=>{if(c)return!1;if(m.isInline){let u=!p||p.type.allowsMarkType(n),h=!!n.isInSet(m.marks)||!m.marks.some(f=>f.type.excludes(n));c=u&&h}return!c}),c})}var gs=(e,t={})=>({tr:n,state:r,dispatch:o})=>{let{selection:s}=n,{empty:i,ranges:l}=s,a=te(e,r.schema);if(o)if(i){let c=qo(r,a);n.addStoredMark(a.create({...c,...t}))}else l.forEach(c=>{let m=c.$from.pos,d=c.$to.pos;r.doc.nodesBetween(m,d,(p,u)=>{let h=Math.max(u,m),f=Math.min(u+p.nodeSize,d);p.marks.find(v=>v.type===a)?p.marks.forEach(v=>{a===v.type&&n.addMark(h,f,a.create({...v.attrs,...t}))}):n.addMark(h,f,a.create(t))})});return hs(r,n,a)},vs=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),ys=(e,t={})=>({state:n,dispatch:r,chain:o})=>{let s=F(e,n.schema),i;return n.selection.$anchor.sameParent(n.selection.$head)&&(i=n.selection.$anchor.parent.attrs),s.isTextblock?o().command(({commands:l})=>(0,st.setBlockType)(s,{...i,...t})(n)?!0:l.clearNodes()).command(({state:l})=>(0,st.setBlockType)(s,{...i,...t})(l,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},xs=e=>({tr:t,dispatch:n})=>{if(n){let{doc:r}=t,o=ce(e,0,r.content.size),s=$n.NodeSelection.create(r,o);t.setSelection(s)}return!0},bs=(e,t)=>({tr:n,state:r,dispatch:o})=>{let{selection:s}=r,i,l;return typeof t=="number"?(i=t,l=t):t&&"from"in t&&"to"in t?(i=t.from,l=t.to):(i=s.from,l=s.to),o&&n.doc.nodesBetween(i,l,(a,c)=>{a.isText||n.setNodeMarkup(c,void 0,{...a.attrs,dir:e})}),!0},ws=e=>({tr:t,dispatch:n})=>{if(n){let{doc:r}=t,{from:o,to:s}=typeof e=="number"?{from:e,to:e}:e,i=De.TextSelection.atStart(r).from,l=De.TextSelection.atEnd(r).to,a=ce(o,i,l),c=ce(s,i,l),m=De.TextSelection.create(r,a,c);t.setSelection(m)}return!0},ks=e=>({state:t,dispatch:n})=>{let r=F(e,t.schema);return(0,Hn.sinkListItem)(r)(t,n)};function Zt(e,t){let n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){let r=n.filter(o=>t?.includes(o.type.name));e.tr.ensureMarks(r)}}var Ms=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:o})=>{let{selection:s,doc:i}=t,{$from:l,$to:a}=s,c=o.extensionManager.attributes,m=Le(c,l.node().type.name,l.node().attrs);if(s instanceof je.NodeSelection&&s.node.isBlock)return!l.parentOffset||!(0,ze.canSplit)(i,l.pos)?!1:(r&&(e&&Zt(n,o.extensionManager.splittableMarks),t.split(l.pos).scrollIntoView()),!0);if(!l.parent.isBlock)return!1;let d=a.parentOffset===a.parent.content.size,p=l.depth===0?void 0:Yo(l.node(-1).contentMatchAt(l.indexAfter(-1))),u=d&&p?[{type:p,attrs:m}]:void 0,h=(0,ze.canSplit)(t.doc,t.mapping.map(l.pos),1,u);if(!u&&!h&&(0,ze.canSplit)(t.doc,t.mapping.map(l.pos),1,p?[{type:p}]:void 0)&&(h=!0,u=p?[{type:p,attrs:m}]:void 0),r){if(h&&(s instanceof je.TextSelection&&t.deleteSelection(),t.split(t.mapping.map(l.pos),1,u),p&&!d&&!l.parentOffset&&l.parent.type!==p)){let f=t.mapping.map(l.before()),g=t.doc.resolve(f);l.node(-1).canReplaceWith(g.index(),g.index()+1,p)&&t.setNodeMarkup(t.mapping.map(l.before()),p)}e&&Zt(n,o.extensionManager.splittableMarks),t.scrollIntoView()}return h},Ss=(e,t={})=>({tr:n,state:r,dispatch:o,editor:s})=>{var i;let l=F(e,r.schema),{$from:a,$to:c}=r.selection,m=r.selection.node;if(m&&m.isBlock||a.depth<2||!a.sameParent(c))return!1;let d=a.node(-1);if(d.type!==l)return!1;let p=s.extensionManager.attributes;if(a.parent.content.size===0&&a.node(-1).childCount===a.indexAfter(-1)){if(a.depth===2||a.node(-3).type!==l||a.index(-2)!==a.node(-2).childCount-1)return!1;if(o){let v=de.Fragment.empty,y=a.index(-1)?1:a.index(-2)?2:3;for(let I=a.depth-y;I>=a.depth-3;I-=1)v=de.Fragment.from(a.node(I).copy(v));let S=a.indexAfter(-1)<a.node(-2).childCount?1:a.indexAfter(-2)<a.node(-3).childCount?2:3,C={...Le(p,a.node().type.name,a.node().attrs),...t},T=((i=l.contentMatch.defaultType)==null?void 0:i.createAndFill(C))||void 0;v=v.append(de.Fragment.from(l.createAndFill(null,T)||void 0));let E=a.before(a.depth-(y-1));n.replace(E,a.after(-S),new de.Slice(v,4-y,0));let A=-1;n.doc.nodesBetween(E,n.doc.content.size,(I,z)=>{if(A>-1)return!1;I.isTextblock&&I.content.size===0&&(A=z+1)}),A>-1&&n.setSelection(_n.TextSelection.near(n.doc.resolve(A))),n.scrollIntoView()}return!0}let u=c.pos===a.end()?d.contentMatchAt(0).defaultType:null,h={...Le(p,d.type.name,d.attrs),...t},f={...Le(p,a.node().type.name,a.node().attrs),...t};n.delete(a.pos,c.pos);let g=u?[{type:l,attrs:h},{type:u,attrs:f}]:[{type:l,attrs:h}];if(!(0,jn.canSplit)(n.doc,a.pos,2))return!1;if(o){let{selection:v,storedMarks:y}=r,{splittableMarks:S}=s.extensionManager,C=y||v.$to.parentOffset&&v.$from.marks();if(n.split(a.pos,2,g).scrollIntoView(),!C||!o)return!0;let T=C.filter(E=>S.includes(E.type.name));n.ensureMarks(T)}return!0},rt=(e,t)=>{let n=dt(i=>i.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;let o=e.doc.nodeAt(r);return n.node.type===o?.type&&(0,mt.canJoin)(e.doc,n.pos)&&e.join(n.pos),!0},ot=(e,t)=>{let n=dt(i=>i.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;let o=e.doc.nodeAt(r);return n.node.type===o?.type&&(0,mt.canJoin)(e.doc,r)&&e.join(r),!0};function Ts(e){let t=e.doc,n=t.firstChild;if(!n)return null;let r=t.resolve(1),o=t.resolve(n.nodeSize-1);return Un.TextSelection.between(r,o)}var Es=(e,t,n,r={})=>({editor:o,tr:s,state:i,dispatch:l,chain:a,commands:c,can:m})=>{let{extensions:d,splittableMarks:p}=o.extensionManager,u=F(e,i.schema),h=F(t,i.schema),{selection:f,storedMarks:g}=i,{$from:v,$to:y}=f,S=v.blockRange(y),C=g||f.$to.parentOffset&&f.$from.marks();if(!S)return!1;let T=dt($=>nt($.type.name,d))(f),E=f.from===0&&f.to===i.doc.content.size,A=i.doc.content.content,I=A.length===1?A[0]:null,z=E&&I&&nt(I.type.name,d)?{node:I,pos:0,depth:0}:null,D=T??z,P=!!T&&S.depth>=1&&S.depth-T.depth<=1,X=!!z;if((P||X)&&D){if(D.node.type===u)return E&&X?a().command(({tr:$,dispatch:R})=>{let j=Ts($);return j?($.setSelection(j),R&&R($),!0):!1}).liftListItem(h).run():c.liftListItem(h);if(nt(D.node.type.name,d)&&u.validContent(D.node.content))return a().command(()=>(s.setNodeMarkup(D.pos,u),!0)).command(()=>rt(s,u)).command(()=>ot(s,u)).run()}return!n||!C||!l?a().command(()=>m().wrapInList(u,r)?!0:c.clearNodes()).wrapInList(u,r).command(()=>rt(s,u)).command(()=>ot(s,u)).run():a().command(()=>{let $=m().wrapInList(u,r),R=C.filter(j=>p.includes(j.type.name));return s.ensureMarks(R),$?!0:c.clearNodes()}).wrapInList(u,r).command(()=>rt(s,u)).command(()=>ot(s,u)).run()},Cs=(e,t={},n={})=>({state:r,commands:o})=>{let{extendEmptyMarkRange:s=!1}=n,i=te(e,r.schema);return ps(r,i,t)?o.unsetMark(i,{extendEmptyMarkRange:s}):o.setMark(i,t)},Is=(e,t,n={})=>({state:r,commands:o})=>{let s=F(e,r.schema),i=F(t,r.schema),l=lt(r,s,n),a;return r.selection.$anchor.sameParent(r.selection.$head)&&(a=r.selection.$anchor.parent.attrs),l?o.setNode(i,a):o.setNode(s,{...a,...n})},As=(e,t={})=>({state:n,commands:r})=>{let o=F(e,n.schema);return lt(n,o,t)?r.lift(o):r.wrapIn(o,t)},Ps=()=>({state:e,dispatch:t})=>{let n=e.plugins;for(let r=0;r<n.length;r+=1){let o=n[r],s;if(o.spec.isInputRules&&(s=o.getState(e))){if(t){let i=e.tr,l=s.transform;for(let a=l.steps.length-1;a>=0;a-=1)i.step(l.steps[a].invert(l.docs[a]));if(s.text){let a=i.doc.resolve(s.from).marks();i.replaceWith(s.from,s.to,e.schema.text(s.text,a))}else i.delete(s.from,s.to)}return!0}}return!1},Ns=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,{empty:r,ranges:o}=n;return r||t&&o.forEach(s=>{e.removeMark(s.$from.pos,s.$to.pos)}),!0},Ls=(e,t={})=>({tr:n,state:r,dispatch:o})=>{var s;let{extendEmptyMarkRange:i=!1}=t,{selection:l}=n,a=te(e,r.schema),{$from:c,empty:m,ranges:d}=l;if(!o)return!0;if(m&&i){let{from:p,to:u}=l,h=(s=c.marks().find(g=>g.type===a))==null?void 0:s.attrs,f=cn(c,a,h);f&&(p=f.from,u=f.to),n.removeMark(p,u,a)}else d.forEach(p=>{n.removeMark(p.$from.pos,p.$to.pos,a)});return n.removeStoredMark(a),!0},Ds=e=>({tr:t,state:n,dispatch:r})=>{let{selection:o}=n,s,i;return typeof e=="number"?(s=e,i=e):e&&"from"in e&&"to"in e?(s=e.from,i=e.to):(s=o.from,i=o.to),r&&t.doc.nodesBetween(s,i,(l,a)=>{if(l.isText)return;let c={...l.attrs};delete c.dir,t.setNodeMarkup(a,void 0,c)}),!0},zs=(e,t={})=>({tr:n,state:r,dispatch:o})=>{let s=null,i=null,l=Mn(typeof e=="string"?e:e.name,r.schema);if(!l)return!1;l==="node"&&(s=F(e,r.schema)),l==="mark"&&(i=te(e,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{let m=c.$from.pos,d=c.$to.pos,p,u,h,f;n.selection.empty?r.doc.nodesBetween(m,d,(g,v)=>{s&&s===g.type&&(a=!0,h=Math.max(v,m),f=Math.min(v+g.nodeSize,d),p=v,u=g)}):r.doc.nodesBetween(m,d,(g,v)=>{v<m&&s&&s===g.type&&(a=!0,h=Math.max(v,m),f=Math.min(v+g.nodeSize,d),p=v,u=g),v>=m&&v<=d&&(s&&s===g.type&&(a=!0,o&&n.setNodeMarkup(v,void 0,{...g.attrs,...t})),i&&g.marks.length&&g.marks.forEach(y=>{if(i===y.type&&(a=!0,o)){let S=Math.max(v,m),C=Math.min(v+g.nodeSize,d);n.addMark(S,C,i.create({...y.attrs,...t}))}}))}),u&&(p!==void 0&&o&&n.setNodeMarkup(p,void 0,{...u.attrs,...t}),i&&u.marks.length&&u.marks.forEach(g=>{i===g.type&&o&&n.addMark(h,f,i.create({...g.attrs,...t}))}))}),a},Os=(e,t={})=>({state:n,dispatch:r})=>{let o=F(e,n.schema);return(0,Rn.wrapIn)(o,t)(n,r)},Bs=(e,t={})=>({state:n,dispatch:r})=>{let o=F(e,n.schema);return(0,Fn.wrapInList)(o,t)(n,r)};var _s=(e,t)=>{if(ct(t))return t.exec(e);let n=t(e);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function Ae(e){var t;let{editor:n,from:r,to:o,text:s,rules:i,plugin:l}=e,{view:a}=n;if(a.composing)return!1;let c=a.state.doc.resolve(r);if(c.parent.type.spec.code||(t=c.nodeBefore||c.nodeAfter)!=null&&t.marks.find(p=>p.type.spec.code))return!1;let m=!1,d=ms(c)+s;return i.forEach(p=>{if(m)return;let u=_s(d,p.find);if(!u)return;let h=a.state.tr,f=He({state:a.state,transaction:h}),g={from:r-(u[0].length-s.length),to:o},{commands:v,chain:y,can:S}=new at({editor:n,state:f});p.handler({state:f,range:g,match:u,commands:v,chain:y,can:S})===null||!h.steps.length||(p.undoable&&h.setMeta(l,{transform:h,from:r,to:o,text:s}),a.dispatch(h),m=!0)}),m}function js(e){let{editor:t,rules:n}=e,r=new Kn.Plugin({state:{init(){return null},apply(o,s,i){let l=o.getMeta(r);if(l)return l;let a=o.getMeta("applyInputRules");return a&&setTimeout(()=>{let{text:m}=a;typeof m=="string"?m=m:m=Ln(Vn.Fragment.from(m),i.schema);let{from:d}=a,p=d+m.length;Ae({editor:t,from:d,to:p,text:m,rules:n,plugin:r})}),o.selectionSet||o.docChanged?null:s}},props:{handleTextInput(o,s,i,l){return Ae({editor:t,from:s,to:i,text:l,rules:n,plugin:r})},handleDOMEvents:{compositionend:o=>(setTimeout(()=>{let{$cursor:s}=o.state.selection;s&&Ae({editor:t,from:s.pos,to:s.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(o,s){if(s.key!=="Enter")return!1;let{$cursor:i}=o.state.selection;return i?Ae({editor:t,from:i.pos,to:i.pos,text:`
4
+ `,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function Us(e){return Object.prototype.toString.call(e).slice(8,-1)}function Pe(e){return Us(e)!=="Object"?!1:e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function Jn(e,t){let n={...e};return Pe(e)&&Pe(t)&&Object.keys(t).forEach(r=>{Pe(t[r])&&Pe(e[r])?n[r]=Jn(e[r],t[r]):n[r]=t[r]}),n}var pt=class{constructor(e={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...B(x(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...B(x(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>Jn(this.options,e)});return t.name=this.name,t.parent=this.parent,this.child=null,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name="name"in e?e.name:t.parent.name,t}},ft=class qn extends pt{constructor(){super(...arguments),this.type="mark"}static create(t={}){let n=typeof t=="function"?t():t;return new qn(n)}static handleExit({editor:t,mark:n}){let{tr:r}=t.state,o=t.state.selection.$from;if(o.pos===o.end()){let i=o.marks();if(!!!i.find(c=>c?.type.name===n.name))return!1;let a=i.find(c=>c?.type.name===n.name);return a&&r.removeStoredMark(a),r.insertText(" ",o.pos),t.view.dispatch(r),!0}return!1}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}};function Rs(e){return typeof e=="number"}var Fs=(e,t,n)=>{if(ct(t))return[...e.matchAll(t)];let r=t(e,n);return r?r.map(o=>{let s=[o.text];return s.index=o.index,s.input=e,s.data=o.data,o.replaceWith&&(o.text.includes(o.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),s.push(o.replaceWith)),s}):[]};function Ws(e){let{editor:t,state:n,from:r,to:o,rule:s,pasteEvent:i,dropEvent:l}=e,{commands:a,chain:c,can:m}=new at({editor:t,state:n}),d=[];return n.doc.nodesBetween(r,o,(u,h)=>{var f,g,v,y,S;if((g=(f=u.type)==null?void 0:f.spec)!=null&&g.code||!(u.isText||u.isTextblock||u.isInline))return;let C=(S=(y=(v=u.content)==null?void 0:v.size)!=null?y:u.nodeSize)!=null?S:0,T=Math.max(r,h),E=Math.min(o,h+C);if(T>=E)return;let A=u.isText?u.text||"":u.textBetween(T-h,E-h,void 0,"\uFFFC");Fs(A,s.find,i).forEach(z=>{if(z.index===void 0)return;let D=T+z.index+1,P=D+z[0].length,X={from:n.tr.mapping.map(D),to:n.tr.mapping.map(P)},$=s.handler({state:n,range:X,match:z,commands:a,chain:c,can:m,pasteEvent:i,dropEvent:l});d.push($)})}),d.every(u=>u!==null)}var Ne=null,Vs=e=>{var t;let n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(t=n.clipboardData)==null||t.setData("text/html",e),n};function Ks(e){let{editor:t,rules:n}=e,r=null,o=!1,s=!1,i=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,l;try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}let a=({state:m,from:d,to:p,rule:u,pasteEvt:h})=>{let f=m.tr,g=He({state:m,transaction:f});if(!(!Ws({editor:t,state:g,from:Math.max(d-1,0),to:p.b-1,rule:u,pasteEvent:h,dropEvent:l})||!f.steps.length)){try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}return i=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,f}};return n.map(m=>new Yn.Plugin({view(d){let p=h=>{var f;r=(f=d.dom.parentElement)!=null&&f.contains(h.target)?d.dom.parentElement:null,r&&(Ne=t)},u=()=>{Ne&&(Ne=null)};return window.addEventListener("dragstart",p),window.addEventListener("dragend",u),{destroy(){window.removeEventListener("dragstart",p),window.removeEventListener("dragend",u)}}},props:{handleDOMEvents:{drop:(d,p)=>{if(s=r===d.dom.parentElement,l=p,!s){let u=Ne;u?.isEditable&&setTimeout(()=>{let h=u.state.selection;h&&u.commands.deleteRange({from:h.from,to:h.to})},10)}return!1},paste:(d,p)=>{var u;let h=(u=p.clipboardData)==null?void 0:u.getData("text/html");return i=p,o=!!h?.includes("data-pm-slice"),!1}}},appendTransaction:(d,p,u)=>{let h=d[0],f=h.getMeta("uiEvent")==="paste"&&!o,g=h.getMeta("uiEvent")==="drop"&&!s,v=h.getMeta("applyPasteRules"),y=!!v;if(!f&&!g&&!y)return;if(y){let{text:T}=v;typeof T=="string"?T=T:T=Ln(Xn.Fragment.from(T),u.schema);let{from:E}=v,A=E+T.length,I=Vs(T);return a({rule:m,state:u,from:E,to:{b:A},pasteEvt:I})}let S=p.doc.content.findDiffStart(u.doc.content),C=p.doc.content.findDiffEnd(u.doc.content);if(!(!Rs(S)||!C||S===C.b))return a({rule:m,state:u,from:S,to:C,pasteEvt:i})}}))}var ht=class{constructor(e,t){this.splittableMarks=[],this.editor=t,this.baseExtensions=e,this.extensions=On(e),this.schema=rs(this.extensions,t),this.setupExtensions()}get commands(){return this.extensions.reduce((e,t)=>{let n={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:be(t.name,this.schema)},r=x(t,"addCommands",n);return r?{...e,...r()}:e},{})}get plugins(){let{editor:e}=this;return we([...this.extensions].reverse()).flatMap(r=>{let o={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:e,type:be(r.name,this.schema)},s=[],i=x(r,"addKeyboardShortcuts",o),l={};if(r.type==="mark"&&x(r,"exitable",o)&&(l.ArrowRight=()=>ft.handleExit({editor:e,mark:r})),i){let p=Object.fromEntries(Object.entries(i()).map(([u,h])=>[u,()=>h({editor:e})]));l={...l,...p}}let a=(0,Wn.keymap)(l);s.push(a);let c=x(r,"addInputRules",o);if(Qt(r,e.options.enableInputRules)&&c){let p=c();if(p&&p.length){let u=js({editor:e,rules:p}),h=Array.isArray(u)?u:[u];s.push(...h)}}let m=x(r,"addPasteRules",o);if(Qt(r,e.options.enablePasteRules)&&m){let p=m();if(p&&p.length){let u=Ks({editor:e,rules:p});s.push(...u)}}let d=x(r,"addProseMirrorPlugins",o);if(d){let p=d();s.push(...p)}return s})}get attributes(){return zn(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:t}=me(this.extensions);return Object.fromEntries(t.filter(n=>!!x(n,"addNodeView")).map(n=>{let r=this.attributes.filter(a=>a.type===n.name),o={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:e,type:F(n.name,this.schema)},s=x(n,"addNodeView",o);if(!s)return[];let i=s();if(!i)return[];let l=(a,c,m,d,p)=>{let u=$e(a,r);return i({node:a,view:c,getPos:m,decorations:d,innerDecorations:p,editor:e,extension:n,HTMLAttributes:u})};return[n.name,l]}))}dispatchTransaction(e){let{editor:t}=this;return we([...this.extensions].reverse()).reduceRight((r,o)=>{let s={name:o.name,options:o.options,storage:this.editor.extensionStorage[o.name],editor:t,type:be(o.name,this.schema)},i=x(o,"dispatchTransaction",s);return i?l=>{i.call(s,{transaction:l,next:r})}:r},e)}transformPastedHTML(e){let{editor:t}=this;return we([...this.extensions]).reduce((r,o)=>{let s={name:o.name,options:o.options,storage:this.editor.extensionStorage[o.name],editor:t,type:be(o.name,this.schema)},i=x(o,"transformPastedHTML",s);return i?(l,a)=>{let c=r(l,a);return i.call(s,c)}:r},e||(r=>r))}get markViews(){let{editor:e}=this,{markExtensions:t}=me(this.extensions);return Object.fromEntries(t.filter(n=>!!x(n,"addMarkView")).map(n=>{let r=this.attributes.filter(l=>l.type===n.name),o={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:e,type:te(n.name,this.schema)},s=x(n,"addMarkView",o);if(!s)return[];let i=(l,a,c)=>{let m=$e(l,r);return s()({mark:l,view:a,inline:c,editor:e,extension:n,HTMLAttributes:m,updateAttributes:d=>{pi(l,e,d)}})};return[n.name,i]}))}destroy(){this.extensions.forEach(e=>{let t=e;for(;t.parent;){let n=t.parent;n.child===t&&(n.child=null),t=n}}),this.extensions=[],this.baseExtensions=[],this.schema=null,this.editor=null}setupExtensions(){let e=this.extensions;this.editor.extensionStorage=Object.fromEntries(e.map(t=>[t.name,t.storage])),e.forEach(t=>{var n;let r={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:be(t.name,this.schema)};t.type==="mark"&&((n=B(x(t,"keepOnSplit",r)))==null||n)&&this.splittableMarks.push(t.name);let o=x(t,"onBeforeCreate",r),s=x(t,"onCreate",r),i=x(t,"onUpdate",r),l=x(t,"onSelectionUpdate",r),a=x(t,"onTransaction",r),c=x(t,"onFocus",r),m=x(t,"onBlur",r),d=x(t,"onDestroy",r);o&&this.editor.on("beforeCreate",o),s&&this.editor.on("create",s),i&&this.editor.on("update",i),l&&this.editor.on("selectionUpdate",l),a&&this.editor.on("transaction",a),c&&this.editor.on("focus",c),m&&this.editor.on("blur",m),d&&this.editor.on("destroy",d)})}};ht.resolve=On;ht.sort=we;ht.flatten=ut;var Js={};it(Js,{ClipboardTextSerializer:()=>qs,Commands:()=>Xs,Delete:()=>Ys,Drop:()=>Gs,Editable:()=>Qs,FocusEvents:()=>Zs,Keymap:()=>ei,Paste:()=>ti,Tabindex:()=>ni,TextDirection:()=>ri,focusEventsPluginKey:()=>Zn});var ee=class Gn extends pt{constructor(){super(...arguments),this.type="extension"}static create(t={}){let n=typeof t=="function"?t():t;return new Gn(n)}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}},qs=ee.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new Ue.Plugin({key:new Ue.PluginKey("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:o}=t,{ranges:s}=o,i=Math.min(...s.map(m=>m.$from.pos)),l=Math.max(...s.map(m=>m.$to.pos)),a=cs(n);return as(r,{from:i,to:l},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:a})}}})]}}),Xs=ee.create({name:"commands",addCommands(){return{...en}}}),Ys=ee.create({name:"delete",onUpdate({transaction:e,appendedTransactions:t}){var n,r,o;let s=()=>{var i,l,a,c;if((c=(a=(l=(i=this.editor.options.coreExtensionOptions)==null?void 0:i.delete)==null?void 0:l.filterTransaction)==null?void 0:a.call(l,e))!=null?c:e.getMeta("y-sync$"))return;let m=Xo(e.before,[e,...t]);us(m).forEach(u=>{m.mapping.mapResult(u.oldRange.from).deletedAfter&&m.mapping.mapResult(u.oldRange.to).deletedBefore&&m.before.nodesBetween(u.oldRange.from,u.oldRange.to,(h,f)=>{let g=f+h.nodeSize-2,v=u.oldRange.from<=f&&g<=u.oldRange.to;this.editor.emit("delete",{type:"node",node:h,from:f,to:g,newFrom:m.mapping.map(f),newTo:m.mapping.map(g),deletedRange:u.oldRange,newRange:u.newRange,partial:!v,editor:this.editor,transaction:e,combinedTransform:m})})});let p=m.mapping;m.steps.forEach((u,h)=>{var f,g;if(u instanceof Qn.RemoveMarkStep){let v=p.slice(h).map(u.from,-1),y=p.slice(h).map(u.to),S=p.invert().map(v,-1),C=p.invert().map(y),T=v>0?(f=m.doc.nodeAt(v-1))==null?void 0:f.marks.some(A=>A.eq(u.mark)):!1,E=(g=m.doc.nodeAt(y))==null?void 0:g.marks.some(A=>A.eq(u.mark));this.editor.emit("delete",{type:"mark",mark:u.mark,from:u.from,to:u.to,deletedRange:{from:S,to:C},newRange:{from:v,to:y},partial:!!(E||T),editor:this.editor,transaction:e,combinedTransform:m})}})};(o=(r=(n=this.editor.options.coreExtensionOptions)==null?void 0:n.delete)==null?void 0:r.async)==null||o?setTimeout(s,0):s()}}),Gs=ee.create({name:"drop",addProseMirrorPlugins(){return[new Re.Plugin({key:new Re.PluginKey("tiptapDrop"),props:{handleDrop:(e,t,n,r)=>{this.editor.emit("drop",{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),Qs=ee.create({name:"editable",addProseMirrorPlugins(){return[new Fe.Plugin({key:new Fe.PluginKey("editable"),props:{editable:()=>this.editor.options.editable}})]}}),Zn=new We.PluginKey("focusEvents"),Zs=ee.create({name:"focusEvents",addProseMirrorPlugins(){let{editor:e}=this;return[new We.Plugin({key:Zn,props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;let r=e.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;let r=e.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1}}}})]}}),ei=ee.create({name:"keymap",addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:i})=>[()=>i.undoInputRule(),()=>i.command(({tr:l})=>{let{selection:a,doc:c}=l,{empty:m,$anchor:d}=a,{pos:p,parent:u}=d,h=d.parent.isTextblock&&p>0?l.doc.resolve(p-1):d,f=h.parent.type.spec.isolating,g=d.pos-d.parentOffset,v=f&&h.parent.childCount===1?g===d.pos:re.Selection.atStart(c).from===p;return!m||!u.type.isTextblock||u.textContent.length||!v||v&&d.parent.type.name==="paragraph"?!1:i.clearNodes()}),()=>i.deleteSelection(),()=>i.joinBackward(),()=>i.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:i})=>[()=>i.deleteSelection(),()=>i.deleteCurrentNode(),()=>i.joinForward(),()=>i.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:i})=>[()=>i.newlineInCode(),()=>i.createParagraphNear(),()=>i.liftEmptyBlock(),()=>i.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},o={...r},s={...r,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return Be()||yn()?s:o},addProseMirrorPlugins(){return[new re.Plugin({key:new re.PluginKey("clearDocument"),appendTransaction:(e,t,n)=>{if(e.some(f=>f.getMeta("composition")))return;let r=e.some(f=>f.docChanged)&&!t.doc.eq(n.doc),o=e.some(f=>f.getMeta("preventClearDocument"));if(!r||o)return;let{empty:s,from:i,to:l}=t.selection,a=re.Selection.atStart(t.doc).from,c=re.Selection.atEnd(t.doc).to;if(s||!(i===a&&l===c)||!Bn(n.doc))return;let p=n.tr,u=He({state:n,transaction:p}),{commands:h}=new at({editor:this.editor,state:u});if(h.clearNodes(),!!p.steps.length)return p}})]}}),ti=ee.create({name:"paste",addProseMirrorPlugins(){return[new Ve.Plugin({key:new Ve.PluginKey("tiptapPaste"),props:{handlePaste:(e,t,n)=>{this.editor.emit("paste",{editor:this.editor,event:t,slice:n})}}})]}}),ni=ee.create({name:"tabindex",addOptions(){return{value:void 0}},addProseMirrorPlugins(){return[new Ke.Plugin({key:new Ke.PluginKey("tabindex"),props:{attributes:()=>{var e;return!this.editor.isEditable&&this.options.value===void 0?{}:{tabindex:(e=this.options.value)!=null?e:"0"}}}})]}}),ri=ee.create({name:"textDirection",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:e}=me(this.extensions);return[{types:e.filter(t=>t.name!=="text").map(t=>t.name),attributes:{dir:{default:this.options.direction,parseHTML:t=>{let n=t.getAttribute("dir");return n&&(n==="ltr"||n==="rtl"||n==="auto")?n:this.options.direction},renderHTML:t=>t.dir?{dir:t.dir}:{}}}}]},addProseMirrorPlugins(){return[new Je.Plugin({key:new Je.PluginKey("textDirection"),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}});var si={};it(si,{createAtomBlockMarkdownSpec:()=>ii,createBlockMarkdownSpec:()=>ai,createInlineMarkdownSpec:()=>di,parseAttributes:()=>gt,parseIndentedBlocks:()=>ui,renderNestedMarkdownContent:()=>mi,serializeAttributes:()=>vt});function gt(e){if(!e?.trim())return{};let t={},n=[],r=e.replace(/["']([^"']*)["']/g,c=>(n.push(c),`__QUOTED_${n.length-1}__`)),o=r.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(o){let c=o.map(m=>m.trim().slice(1));t.class=c.join(" ")}let s=r.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);s&&(t.id=s[1]);let i=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(r.matchAll(i)).forEach(([,c,m])=>{var d;let p=parseInt(((d=m.match(/__QUOTED_(\d+)__/))==null?void 0:d[1])||"0",10),u=n[p];u&&(t[c]=u.slice(1,-1))});let a=r.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return a&&a.split(/\s+/).filter(Boolean).forEach(m=>{m.match(/^[a-zA-Z][\w-]*$/)&&(t[m]=!0)}),t}function vt(e){if(!e||Object.keys(e).length===0)return"";let t=[];return e.class&&String(e.class).split(/\s+/).filter(Boolean).forEach(r=>t.push(`.${r}`)),e.id&&t.push(`#${e.id}`),Object.entries(e).forEach(([n,r])=>{n==="class"||n==="id"||(r===!0?t.push(n):r!==!1&&r!=null&&t.push(`${n}="${String(r)}"`))}),t.join(" ")}function ii(e){let{nodeName:t,name:n,parseAttributes:r=gt,serializeAttributes:o=vt,defaultAttributes:s={},requiredAttributes:i=[],allowedAttributes:l}=e,a=n||t,c=m=>{if(!l)return m;let d={};return l.forEach(p=>{p in m&&(d[p]=m[p])}),d};return{parseMarkdown:(m,d)=>{let p={...s,...m.attributes};return d.createNode(t,p,[])},markdownTokenizer:{name:t,level:"block",start(m){var d;let p=new RegExp(`^:::${a}(?:\\s|$)`,"m"),u=(d=m.match(p))==null?void 0:d.index;return u!==void 0?u:-1},tokenize(m,d,p){let u=new RegExp(`^:::${a}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),h=m.match(u);if(!h)return;let f=h[1]||"",g=r(f);if(!i.find(y=>!(y in g)))return{type:t,raw:h[0],attributes:g}}},renderMarkdown:m=>{let d=c(m.attrs||{}),p=o(d),u=p?` {${p}}`:"";return`:::${a}${u} :::`}}}function ai(e){let{nodeName:t,name:n,getContent:r,parseAttributes:o=gt,serializeAttributes:s=vt,defaultAttributes:i={},content:l="block",allowedAttributes:a}=e,c=n||t,m=d=>{if(!a)return d;let p={};return a.forEach(u=>{u in d&&(p[u]=d[u])}),p};return{parseMarkdown:(d,p)=>{let u;if(r){let f=r(d);u=typeof f=="string"?[{type:"text",text:f}]:f}else l==="block"?u=p.parseChildren(d.tokens||[]):u=p.parseInline(d.tokens||[]);let h={...i,...d.attributes};return p.createNode(t,h,u)},markdownTokenizer:{name:t,level:"block",start(d){var p;let u=new RegExp(`^:::${c}`,"m"),h=(p=d.match(u))==null?void 0:p.index;return h!==void 0?h:-1},tokenize(d,p,u){var h;let f=new RegExp(`^:::${c}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),g=d.match(f);if(!g)return;let[v,y=""]=g,S=o(y),C=1,T=v.length,E="",A=/^:::([\w-]*)(\s.*)?/gm,I=d.slice(T);for(A.lastIndex=0;;){let z=A.exec(I);if(z===null)break;let D=z.index,P=z[1];if(!((h=z[2])!=null&&h.endsWith(":::"))){if(P)C+=1;else if(C-=1,C===0){let X=I.slice(0,D);E=X.trim();let $=d.slice(0,T+D+z[0].length),R=[];if(E)if(l==="block")for(R=u.blockTokens(X),R.forEach(j=>{j.text&&(!j.tokens||j.tokens.length===0)&&(j.tokens=u.inlineTokens(j.text))});R.length>0;){let j=R[R.length-1];if(j.type==="paragraph"&&(!j.text||j.text.trim()===""))R.pop();else break}else R=u.inlineTokens(E);return{type:t,raw:$,attributes:S,content:E,tokens:R}}}}}},renderMarkdown:(d,p)=>{let u=m(d.attrs||{}),h=s(u),f=h?` {${h}}`:"",g=p.renderChildren(d.content||[],`
5
5
 
6
6
  `);return`:::${c}${f}
7
7
 
@@ -18,4 +18,4 @@ ${g}
18
18
  `);a+=c.type==="paragraph"?`
19
19
 
20
20
  ${h}`:`
21
- ${h}`}}),a}function pi(e,t,n={}){let{state:r}=t,{doc:o,tr:s}=r,i=e;o.descendants((l,a)=>{let c=s.mapping.map(a),m=s.mapping.map(a)+l.nodeSize,d=null;if(l.marks.forEach(u=>{if(u!==i)return!1;d=u}),!d)return;let p=!1;if(Object.keys(n).forEach(u=>{n[u]!==d.attrs[u]&&(p=!0)}),p){let u=e.type.create({...e.attrs,...n});s.removeMark(c,m,e.type),s.addMark(c,m,u)}}),s.docChanged&&t.view.dispatch(s)}var tr=class nr extends pt{constructor(){super(...arguments),this.type="node"}static create(t={}){let n=typeof t=="function"?t():t;return new nr(n)}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}};var hi=ft.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["u",Me(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||"underline",t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:"underline",level:"inline",start(e){return e.indexOf("++")},tokenize(e,t,n){let o=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!o)return;let s=o[2].trim();return{type:"underline",raw:o[0],text:s,tokens:n.inlineTokens(s)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),rr=hi;var dr=require("@tiptap/react"),ur=H(require("@tiptap/starter-kit")),U=require("@mantine/tiptap"),J=require("@mantine/core");var V=H(require("react")),pe=require("@mantine/core"),or=H(require("@emoji-mart/data")),gi=(0,V.lazy)(()=>import("@emoji-mart/react"));function yt({onSelect:e,action:t,size:n=320,offset:r=8,position:o="bottom-start",colorScheme:s="light"}){let[i,l]=(0,V.useState)(!1);return V.default.createElement(pe.Popover,{opened:i,onChange:l,width:n,position:o,offset:r,withArrow:!0,shadow:"md",trapFocus:!1,closeOnEscape:!0},V.default.createElement(pe.Popover.Target,null,(0,V.cloneElement)(t,{onClick:a=>{t.props?.onClick?.(a),l(c=>!c)}})),V.default.createElement(pe.Popover.Dropdown,{p:0},V.default.createElement(V.Suspense,{fallback:V.default.createElement("div",{style:{padding:12,width:320}},V.default.createElement(pe.Skeleton,{height:280,radius:"md"}))},V.default.createElement(gi,{previewPosition:"none",theme:s,data:or.default,onEmojiSelect:a=>{e(a.native),l(!1)}}))))}var sr=tr.create({name:"emoji",inline:!0,group:"inline",selectable:!1,atom:!0,addAttributes(){return{emoji:{default:"\u{1F600}"}}},parseHTML(){return[{tag:"span[data-emoji]"}]},renderHTML({HTMLAttributes:e}){return["span",Me(e,{class:"emoji-big","data-emoji":e.emoji}),e.emoji]}});function xt({content:e="",maxLength:t=3e3,onChange:n,onSubmit:r,colorScheme:o="light"}){let[s,i]=(0,M.useState)(0),[l,a]=(0,M.useState)(!1),[c,m]=(0,M.useState)(!1),[d,p]=(0,M.useState)(!1),u=()=>{if(!f)return;let g=f.getHTML();f.getText().trim()&&(r?.(g),f.commands.clearContent(),f.commands.focus(),i(0),a(!1))},h=(g,v)=>v.key==="Enter"&&!v.shiftKey?(v.preventDefault(),u(),!0):v.key==="Enter"&&v.shiftKey?(v.preventDefault(),f?.commands.setHardBreak(),!0):!1,f=(0,dr.useEditor)({extensions:[ur.default,sr,rr,U.Link,cr.default,ar.default,ir.default,lr.default.configure({types:["heading","paragraph"]})],content:e,editorProps:{handleKeyDown:h},onUpdate:({editor:g})=>{let v=g.getHTML(),y=v.replace(/(<br\s*\/?>\s*){3,}/g,"<br><br>");if(y!==v){let{from:T,to:E}=g.state.selection;g.commands.setContent(y),g.commands.setTextSelection({from:Math.min(T,g.state.doc.content.size),to:Math.min(E,g.state.doc.content.size)});return}let S=g.getText(),C=S.trim().length>0;i(S.length),a(C),m(t?S.length>=t:!1),n?.(g.getHTML())},immediatelyRender:!1});return M.default.createElement(M.default.Fragment,null,M.default.createElement(U.RichTextEditor,{editor:f,w:"100%",className:"mrchat-richTextEditorContainer"},M.default.createElement(U.RichTextEditor.Content,null),M.default.createElement(U.RichTextEditor.Toolbar,{sticky:!0,stickyOffset:"var(--docs-header-height)"},M.default.createElement("div",{className:"mrchat-mainActionContainer"},M.default.createElement(yt,{colorScheme:o,onSelect:g=>{f?.chain().focus().insertContent({type:"emoji",attrs:{emoji:g}}).run()},action:M.default.createElement(J.ActionIcon,{radius:"lg",variant:"subtle","aria-label":"add",className:"mrchat-mainActionEmojiIcon"},M.default.createElement(K.IconMoodPlus,null))}),M.default.createElement(J.ActionIcon,{radius:"lg",variant:"subtle","aria-label":"text_format",className:"mrchat-mainTextFormatIcon",onClick:()=>p(g=>!g)},M.default.createElement(K.IconTextColor,{stroke:1.7})),M.default.createElement(J.ActionIcon,{radius:"lg",variant:"filled","aria-label":"send",className:"mrchat-mainSendMsgIcon",onClick:u,disabled:!l},M.default.createElement(K.IconSend,{size:18}))),M.default.createElement(J.ActionIcon,{radius:"lg",variant:"filled","aria-label":"send",className:"mrchat-sm-mainSendMsgIcon",onClick:u,disabled:!l},M.default.createElement(K.IconSend,{size:18})),d&&M.default.createElement(M.default.Fragment,null,M.default.createElement(U.RichTextEditor.ControlsGroup,null,M.default.createElement(U.RichTextEditor.Bold,null),M.default.createElement(U.RichTextEditor.Italic,null),M.default.createElement(U.RichTextEditor.Underline,null),M.default.createElement(U.RichTextEditor.Strikethrough,null),M.default.createElement(U.RichTextEditor.Code,null),M.default.createElement(U.RichTextEditor.Highlight,null)),M.default.createElement(U.RichTextEditor.ControlsGroup,{className:"mrchat-secondRichTextEditorToolBar"},M.default.createElement(U.RichTextEditor.BulletList,null),M.default.createElement(U.RichTextEditor.OrderedList,null),M.default.createElement(J.Menu,{trigger:"hover",openDelay:200},M.default.createElement(J.Menu.Target,null,M.default.createElement(J.ActionIcon,{variant:"outline",size:"md",className:"mrchat-customToolActionItem"},M.default.createElement(K.IconAlignLeft,{size:16,stroke:1.5}))),M.default.createElement(J.Menu.Dropdown,null,M.default.createElement(J.Menu.Item,{onClick:()=>f?.chain().focus().setTextAlign("left").run()},M.default.createElement(K.IconAlignLeft,{size:14})),M.default.createElement(J.Menu.Item,{onClick:()=>f?.chain().focus().setTextAlign("center").run()},M.default.createElement(K.IconAlignCenter,{size:14})),M.default.createElement(J.Menu.Item,{onClick:()=>f?.chain().focus().setTextAlign("right").run()},M.default.createElement(K.IconAlignRight,{size:14})))),M.default.createElement(U.RichTextEditor.Link,null)),M.default.createElement(U.RichTextEditor.ControlsGroup,{className:"mrchat-secondRichTextEditorToolBar"},M.default.createElement(U.RichTextEditor.ClearFormatting,null)))),c&&M.default.createElement("div",{style:{textAlign:"right",color:"red",fontSize:12,marginTop:4}},"Character limit reached (",s,"/",t,")")))}var Xe=require("react-redux"),L=H(require("react"));var fr=H(require("dompurify"));var G=H(require("react"));function mr({data:e,renderItem:t,loadMore:n,hasMore:r,scrollToBottomTrigger:o}){let s=(0,G.useRef)(null),i=(0,G.useRef)(!1),l=(0,G.useRef)(!0),a=(0,G.useRef)(0);(0,G.useEffect)(()=>{let d=s.current;d&&setTimeout(()=>{d.scrollTop=d.scrollHeight},100)},[o]),(0,G.useEffect)(()=>{let d=s.current;!d||!e.length||(l.current&&(d.scrollTop=d.scrollHeight,l.current=!1),a.current=e.length)},[e]);let c=()=>{let d=s.current;d&&d.scrollTop<50&&r&&!i.current&&m()},m=async()=>{let d=s.current;if(!d||i.current||!r)return;i.current=!0;let p=d.scrollHeight,u=d.scrollTop;await n(),setTimeout(()=>{let f=d.scrollHeight-p;d.scrollTop=u+f,i.current=!1},50)};return G.default.createElement("div",{ref:s,onScroll:c,style:{overflowY:"auto",height:"100%",display:"flex",flexDirection:"column"}},e.map((d,p)=>G.default.createElement("div",{key:d?.id||p},t(d,p))))}var _=H(require("react")),fe=require("@mantine/core"),pr=require("@tabler/icons-react");function bt({opened:e,onClose:t,user:n,onDeleteMessages:r,onBlock:o}){let[s,i]=(0,_.useState)(e),[l,a]=(0,_.useState)(!1);(0,_.useEffect)(()=>{e&&i(!0)},[e]);let c=()=>{i(!1),setTimeout(t,250)};return!e&&!s?null:_.default.createElement(_.default.Fragment,null,_.default.createElement("div",{className:"mrchat-overlay",onClick:c},_.default.createElement("div",{className:`mrchat-drawer ${s?"mrchat-open":"mrchat-close"}`,onClick:m=>m.stopPropagation()},_.default.createElement("div",{className:"mrchat-header"},_.default.createElement("div",{className:"mrchat-backBtn",onClick:c},_.default.createElement(pr.IconArrowLeft,{size:20})),_.default.createElement(fe.Text,{fw:600},"Contact info")),_.default.createElement("div",{className:"mrchat-profileSection"},_.default.createElement(fe.Avatar,{src:n?.avatar,size:150,radius:"xl",style:{cursor:"pointer"},onClick:()=>n?.avatar?a(!0):{}}),_.default.createElement(fe.Text,{fw:700,size:"lg",mt:"sm"},n?.displayName),_.default.createElement(fe.Text,{size:"sm",c:"dimmed"},"@",n?.username)))),l&&_.default.createElement("div",{className:"mrchat-imagePreview",onClick:()=>a(!1)},_.default.createElement("img",{src:n?.avatar,alt:"profile"})))}function hr({chatId:e,enableChat:t,senderDetails:n,receiverDetails:r,onChatInitialized:o,onBack:s,showBackButton:i,colorScheme:l}){let a=(0,Xe.useDispatch)(),c=(0,Xe.useSelector)(E=>E.chat.messageList),[m,d]=(0,L.useState)(0),[p,u]=(0,L.useState)(0),[h,f]=(0,L.useState)(!1),g=c?.rows?.data||[],v=g.length===0,y=()=>{let E=c?.hasMore;if(!e||!E)return;let A=m+1;a(et({chatId:e,page:A,userId:n?.userId})),d(A)};(0,L.useEffect)(()=>{e&&(d(0),a(et({chatId:e,page:0,userId:n?.userId})))},[e]),(0,L.useEffect)(()=>{if(!n?.userId||!ae())return;let E=Q(n?.userId||"");if(!E)return;let A=I=>{I.chatId===e&&a(tt({id:Date.now(),chatId:I.chatId,message:I.message,sender:I.sender,recipient:I.recipient,type:I.type,status:I.status,createdAt:I.time}))};return E.on("newmessage",A),()=>{E.off("newmessage",A)}},[e,n?.userId]);let S=E=>{let A=Q(n?.userId||""),I={message:E,sender:n?.userId,receiver:r?.userId,type:"text",username:n?.username};if(!c?.rows?.data?.length){A?.emit("initializeNewChat",{...I,senderUserDetails:{userId:n?.userId,username:n?.username,displayName:n?.displayName,avatar:n?.avatar},receiverUserDetails:{userId:r?.userId,username:r?.username,displayName:r?.displayName,avatar:r?.avatar}},D=>{if(D?.status==="success"){let{data:P}=D;a(ve({id:Date.now(),chatId:P.chatId,message:P.message,sender:P.sender,recipient:P.recipient,type:P.type,status:P.status,createdAt:new Date(P.time).getTime(),updatedAt:new Date(P.time).getTime(),userId:r?.userId,username:r?.username,displayName:r?.displayName,avatar:r?.avatar})),a(tt({id:Date.now(),chatId:P.chatId,message:P.message,sender:P.sender,recipient:P.recipient,type:P.type,status:P.status,createdAt:Date.now()})),o?.(P)}else console.log("Failed to initialize chat",D?.error)});return}A?.emit("privatemessage",{...I,chatId:e}),u(D=>D+1)},C=()=>{c.hasMore&&y()},T=()=>{!e||!n?.userId||a(Dt({chatId:e,userId:n?.userId}))};return L.default.createElement("div",{className:"mrchat-mainArea"},L.default.createElement("div",{className:"mrchat-chatHeader"},i&&s&&L.default.createElement(se.ActionIcon,{variant:"subtle",className:"mrchat-backButton",onClick:s},L.default.createElement(qe.IconArrowLeft,{size:20})),r&&L.default.createElement(L.default.Fragment,null,L.default.createElement("div",{className:"mrchat-receiverInfo",onClick:()=>f(!0)},r?.avatar?L.default.createElement(se.Avatar,{src:r.avatar,size:36,radius:"xl"}):L.default.createElement(se.Avatar,{key:r?.displayName||r?.username,name:r?.displayName||r?.username,color:"initials"}),L.default.createElement(se.Text,{fw:600,size:"md"},r?.displayName||r?.username)))),L.default.createElement("div",{className:"mrchat-messageArea"},v?L.default.createElement("div",{className:"mrchat-emptyState"},L.default.createElement("div",{className:"mrchat-encryptionMinimal"},L.default.createElement(qe.IconLock,{size:20,stroke:1.8}),L.default.createElement(se.Text,{className:"mrchat-encryptionText",size:"md"},"End-to-end encrypted"))):L.default.createElement(mr,{data:g,hasMore:c?.hasMore,loadMore:C,scrollToBottomTrigger:p,renderItem:(E,A)=>{let I=E?.sender===n?.userId,z=new Date(E?.createdAt),D=g[A-1],P=A===0||new Date(D?.createdAt).toDateString()!==z.toDateString(),X=new Date,$=new Date;$.setDate(X.getDate()-1);let R=z.toDateString()===X.toDateString(),j=z.toDateString()===$.toDateString(),ee="";R?ee="Today":j?ee="Yesterday":ee=z.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"});let Se=z.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1});return L.default.createElement("div",{key:E?.id+"_"+A},P&&L.default.createElement("div",{className:"mrchat-dateSeparator"},ee),L.default.createElement("div",{style:{borderRadius:E.sender===n?.userId?"16px 16px 1px 16px":"16px 16px 16px 1px"},className:`mrchat-messageBubble ${I?"mrchat-outgoing":"mrchat-incoming"}`},L.default.createElement("div",{className:"mrchat-messageContent",dangerouslySetInnerHTML:{__html:fr.default.sanitize(E?.message)}}),L.default.createElement("div",{className:"mrchat-messageTime"},Se)))}})),(e||t)&&L.default.createElement("div",{className:"mrchat-inputBar"},L.default.createElement(xt,{onSubmit:S,colorScheme:l})),L.default.createElement(bt,{opened:h,onClose:()=>f(!1),user:{avatar:r?.avatar,username:r?.username,displayName:r?.displayName},onDeleteMessages:()=>{T()},onBlock:()=>{console.log("block user")}}))}var Ye=require("react-redux"),w=H(require("react"));var gr=H(require("react")),vr=require("react-virtuoso");function yr({data:e,itemContent:t,height:n="100%",startReached:r,endReached:o,...s}){return gr.default.createElement(vr.Virtuoso,{style:{height:n},data:e,startReached:r,endReached:o,itemContent:(i,l)=>t(i,l),...s})}var kr=H(require("dompurify"));var xr=e=>{if(!e)return"";let t=new Date(e),n=new Date,r=new Date;r.setDate(n.getDate()-1);let o=t.toDateString()===n.toDateString(),s=t.toDateString()===r.toDateString(),i=t.toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",hour12:!1});return o?i:s?"Yesterday":t.toLocaleDateString(void 0,{day:"numeric",month:"short"})};function Mr({currentUser:e,onSearchUsers:t,colorScheme:n,openChatByUserDetails:r,handleCallAfterOpenChat:o,isLoading:s=!1}){let[i,{open:l,close:a}]=(0,wr.useDisclosure)(!1),c=(0,Ye.useDispatch)(),m=(0,Ye.useSelector)(b=>b.chat.messagedUserList),[d,p]=(0,w.useState)(0),[u,h]=(0,w.useState)(""),[f,g]=(0,w.useState)(!1),[v,y]=(0,w.useState)(""),[S,C]=(0,w.useState)(),[T,E]=(0,w.useState)(),[A,I]=(0,w.useState)([]),[z,D]=(0,w.useState)(!1),[P,X]=(0,w.useState)(e),[$,R]=(0,w.useState)(!1),[j,ee]=(0,w.useState)(!1);(0,w.useEffect)(()=>{e?.userId&&X(e)},[e?.userId]),(0,w.useEffect)(()=>{e?.userId&&c(Ze({userId:e.userId,page:0}))},[e?.userId,c]),(0,w.useEffect)(()=>{if(typeof window>"u")return;let b=window.matchMedia("(max-width: 599px)"),k=N=>{let W="matches"in N?N.matches:b.matches;R(W),W||ee(!1)};return k(b),b.addEventListener?b.addEventListener("change",k):b.addListener(k),()=>{b.removeEventListener?b.removeEventListener("change",k):b.removeListener(k)}},[]);let Se=(b,k)=>{let N=b;if(!N?.userId)return;let W=m?.rows?.data?.find(Te=>Te.userId===N.userId);if(W){Ge(W),a(),y(""),k&&k();return}c(ve({userId:N?.userId,username:N?.username,displayName:N?.displayName,avatar:N?.avatar})),C(N),a(),y(""),c(ye()),h(""),g(!0),$&&ee(!0),k&&k()};(0,w.useEffect)(()=>{if(!P?.userId)return;let b=Q(P.userId);b&&(b.connected||b.connect())},[P?.userId]),(0,w.useEffect)(()=>{if(!P?.userId)return;let b=Q(P.userId);if(!b)return;let k=N=>{N.sender!==P.userId&&c(ve({message:N.message,chatId:N.chatId,userId:N.sender,username:N.userDetails.username,displayName:N.userDetails.displayName,avatar:N.userDetails.avatar}))};return b.on("newChat",k),()=>{b.off("newChat",k)}},[c,P?.userId]),(0,w.useEffect)(()=>{if(!P?.userId)return;let b=Q(P?.userId||"");if(!b)return;let k=N=>{if(!m?.rows?.data)return;let W=m.rows.data.map(ne=>{if(ne.chatId===N.chatId){let zr=N.chatId===u;return{...ne,message:N.message,updatedAt:new Date().toISOString(),unreadCount:zr?0:(ne.unreadCount||0)+1}}return ne}),Te=W.findIndex(ne=>ne.chatId===N.chatId);if(Te!==-1){let ne=W.splice(Te,1)[0];W.unshift(ne)}console.log("Updated",W,N),c(ge({...m,rows:{...m.rows,data:W}}))};return b.on("newMessageNotification",k),()=>{b.off("newMessageNotification",k)}},[m,P?.userId]);let Ar=()=>{if(!m?.hasMore||!e?.userId)return;let b=d+1;p(b),c(Ze({userId:e.userId,page:b}))},Ge=b=>{if(!P?.userId)return;let k=Q(P.userId);if(!k)return;C({userId:b.userId,username:b.username,displayName:b.displayName,avatar:b.avatar}),k.emit("joinChat",{chatId:b.chatId}),h(b?.chatId||""),c(ye());let N=m.rows.data.map(W=>W.chatId===b.chatId?{...W,unreadCount:0}:W);$&&ee(!0),c(ge({...m,rows:{...m.rows,data:N}}))};(0,w.useEffect)(()=>{r&&Se(r,o)},[r?.userId]);let Pr=b=>{y(b)},Nr=()=>{ee(!1)};(0,w.useEffect)(()=>{if(!v.trim()){I([]),D(!1);return}if(!t){I([]),D(!1);return}let b=!1,k=setTimeout(async()=>{try{D(!0),I([]);let N=await Promise.resolve(t(v));if(b)return;I(N)}finally{b||D(!1)}},400);return()=>{b=!0,clearTimeout(k)}},[v,t]);let Lr=b=>{let k=document.createElement("div");return k.innerHTML=b,k.textContent||""},Dr=A.map(b=>({value:b.username,label:b.displayName||b.username,user:b}));return w.default.createElement("div",{className:"mrchat-chatWrapper"},s&&w.default.createElement("div",{className:"mrchat-loadingOverlay"},w.default.createElement(O.Loader,{size:"md"})),w.default.createElement(O.Modal,{opened:i,onClose:()=>{a(),y(""),I([]),D(!1)},title:"Search User",centered:!0,withCloseButton:!0},w.default.createElement(O.Autocomplete,{mb:12,label:"Search User to Chat",placeholder:"Type username to search...",limit:20,data:Dr,value:v,onChange:Pr,rightSection:z?w.default.createElement(O.Loader,{size:"xs"}):void 0,rightSectionWidth:28,onOptionSubmit:b=>{let k=A.find(N=>N.username===b);k&&(y(""),E(k),I([]),D(!1))},renderOption:({option:b})=>{let k=b.user;return w.default.createElement(O.Group,{gap:"sm"},w.default.createElement(O.Avatar,{src:k.avatar,size:36,radius:"xl"}),w.default.createElement("div",null,w.default.createElement(O.Text,{size:"sm"},k.displayName||k.username),k.displayName&&w.default.createElement(O.Text,{size:"xs",opacity:.5},"@",k.username)))}}),w.default.createElement(O.Button,{fullWidth:!0,onClick:()=>Se(T),disabled:!T?.username},"Start Chat")),w.default.createElement("div",{className:"mrchat-chatContainer"},w.default.createElement("div",{className:"mrchat-sidebar "+($&&j?"mrchat-hiddenOnMobile":"")},w.default.createElement("div",{className:"mrchat-sidebarTop"},w.default.createElement("div",{className:"mrchat-topBar"},w.default.createElement(O.Text,{size:"xs",c:"dimmed",mt:"sm",mb:"xs",ml:12},"All Messages"),w.default.createElement("div",{className:"mrchat-topActions"},w.default.createElement(O.ActionIcon,{variant:"subtle",onClick:()=>{E(null),y(""),I([]),l()},radius:"lg"},w.default.createElement(br.IconPlus,{size:20,stroke:3}))))),w.default.createElement("div",{className:"mrchat-scrollWrapper"},w.default.createElement(yr,{data:m?.rows?.data||[],endReached:Ar,itemContent:(b,k)=>{let N=k.chatId===u;return w.default.createElement("div",{className:`mrchat-chatItem ${N?"mrchat-activeChatItem":""}`,onClick:()=>{N||Ge(k)}},k.avatar?w.default.createElement(O.Avatar,{src:k.avatar,size:36,radius:"xl"}):w.default.createElement(O.Avatar,{key:k.displayName||k.username,name:k.displayName||k.username,color:"initials"}),w.default.createElement("div",{className:"mrchat-chatInfo"},w.default.createElement(O.Text,{className:"mrchat-chatLabelItem",truncate:!0},k.displayName||k.username),k.unreadCount>0&&w.default.createElement("div",{className:"mrchat-unreadBadge"},k.unreadCount||10),w.default.createElement("div",{className:"mrchat-messagePreview"},w.default.createElement(O.Text,{truncate:!0,size:"xs",c:"dimmed",style:{maxWidth:150},className:"mrchat-messagePreviewContent"},Lr(kr.default.sanitize(k.message))),w.default.createElement(O.Text,{size:"xs",c:"dimmed",className:"mrchat-messagePreviewTime"},xr(k.updatedAt||k.createdAt)))))}}))),w.default.createElement("div",{className:"mrchat-mainAreaWrapper "+($&&!j?"mrchat-hiddenOnMobile":"")},w.default.createElement(hr,{chatId:u,enableChat:f,senderDetails:P,receiverDetails:S,onBack:Nr,showBackButton:$,onChatInitialized:b=>{Ge({chatId:b.chatId,userId:S?.userId,username:S?.username,displayName:S?.displayName,avatar:S?.avatar})},colorScheme:n}))))}var Sr=require("react"),Tr=require("react-redux");function Er(){let e=(0,Tr.useDispatch)();return(0,Sr.useEffect)(()=>()=>{e(zt())},[e]),null}function wt({colorScheme:e,primaryColor:t="customBrand",darkColor:n,apiKey:r,baseUrl:o,socketUrl:s,openChatByUserDetails:i,handleCallAfterOpenChat:l,isLoading:a=!1,...c}){let m=Et(t),d=[r?.trim()?null:"apiKey",o?.trim()?null:"baseUrl",s?.trim()?null:"socketUrl"].filter(Boolean),p=d.length===0;return(0,q.useLayoutEffect)(()=>{typeof window>"u"||!p||It({baseUrl:o,socketUrl:s,apiKey:r})},[r,o,s,p]),(0,q.useEffect)(()=>{if(typeof document>"u"||!n)return;let u=document.body.style.backgroundColor;return document.body.style.backgroundColor=e==="dark"?n:"",document.documentElement.style.setProperty("--mantine-color-body",e==="dark"?n:""),()=>{document.body.style.backgroundColor=u,document.documentElement.style.removeProperty("--mantine-color-body")}},[e,n]),p?q.default.createElement(jt,null,q.default.createElement(Ft,null,q.default.createElement(Er,null),q.default.createElement(Cr.MantineProvider,{defaultColorScheme:e??"light",forceColorScheme:e,theme:m},q.default.createElement(Ir.Notifications,null),q.default.createElement(Mr,{handleCallAfterOpenChat:l,colorScheme:e,openChatByUserDetails:i,isLoading:a,...c})))):q.default.createElement("div",{role:"alert",style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:16}},q.default.createElement("div",{style:{padding:16,borderRadius:8,backgroundColor:"#fef3f2",color:"#b42318",fontWeight:600,textAlign:"center"}},"Missing required configuration: ",d.join(", ")))}0&&(module.exports={MrChat});
21
+ ${h}`}}),a}function pi(e,t,n={}){let{state:r}=t,{doc:o,tr:s}=r,i=e;o.descendants((l,a)=>{let c=s.mapping.map(a),m=s.mapping.map(a)+l.nodeSize,d=null;if(l.marks.forEach(u=>{if(u!==i)return!1;d=u}),!d)return;let p=!1;if(Object.keys(n).forEach(u=>{n[u]!==d.attrs[u]&&(p=!0)}),p){let u=e.type.create({...e.attrs,...n});s.removeMark(c,m,e.type),s.addMark(c,m,u)}}),s.docChanged&&t.view.dispatch(s)}var tr=class nr extends pt{constructor(){super(...arguments),this.type="node"}static create(t={}){let n=typeof t=="function"?t():t;return new nr(n)}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}};var hi=ft.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["u",Me(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||"underline",t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:"underline",level:"inline",start(e){return e.indexOf("++")},tokenize(e,t,n){let o=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!o)return;let s=o[2].trim();return{type:"underline",raw:o[0],text:s,tokens:n.inlineTokens(s)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),rr=hi;var dr=require("@tiptap/react"),ur=H(require("@tiptap/starter-kit")),U=require("@mantine/tiptap"),J=require("@mantine/core");var W=H(require("react")),pe=require("@mantine/core"),or=H(require("@emoji-mart/data")),gi=(0,W.lazy)(()=>import("@emoji-mart/react"));function yt({onSelect:e,action:t,size:n=320,offset:r=8,position:o="bottom-start",colorScheme:s="light"}){let[i,l]=(0,W.useState)(!1);return W.default.createElement(pe.Popover,{opened:i,onChange:l,width:n,position:o,offset:r,withArrow:!0,shadow:"md",trapFocus:!1,closeOnEscape:!0},W.default.createElement(pe.Popover.Target,null,(0,W.cloneElement)(t,{onClick:a=>{t.props?.onClick?.(a),l(c=>!c)}})),W.default.createElement(pe.Popover.Dropdown,{p:0},W.default.createElement(W.Suspense,{fallback:W.default.createElement("div",{style:{padding:12,width:320}},W.default.createElement(pe.Skeleton,{height:280,radius:"md"}))},W.default.createElement(gi,{previewPosition:"none",theme:s,data:or.default,onEmojiSelect:a=>{e(a.native),l(!1)}}))))}var sr=tr.create({name:"emoji",inline:!0,group:"inline",selectable:!1,atom:!0,addAttributes(){return{emoji:{default:"\u{1F600}"}}},parseHTML(){return[{tag:"span[data-emoji]"}]},renderHTML({HTMLAttributes:e}){return["span",Me(e,{class:"emoji-big","data-emoji":e.emoji}),e.emoji]}});function xt({content:e="",maxLength:t=3e3,onChange:n,onSubmit:r,colorScheme:o="light"}){let[s,i]=(0,M.useState)(0),[l,a]=(0,M.useState)(!1),[c,m]=(0,M.useState)(!1),[d,p]=(0,M.useState)(!1),u=()=>{if(!f)return;let g=f.getHTML();f.getText().trim()&&(r?.(g),f.commands.clearContent(),f.commands.focus(),i(0),a(!1))},h=(g,v)=>v.key==="Enter"&&!v.shiftKey?(v.preventDefault(),u(),!0):v.key==="Enter"&&v.shiftKey?(v.preventDefault(),f?.commands.setHardBreak(),!0):!1,f=(0,dr.useEditor)({extensions:[ur.default,sr,rr,U.Link,cr.default,ar.default,ir.default,lr.default.configure({types:["heading","paragraph"]})],content:e,editorProps:{handleKeyDown:h},onUpdate:({editor:g})=>{let v=g.getHTML(),y=v.replace(/(<br\s*\/?>\s*){3,}/g,"<br><br>");if(y!==v){let{from:T,to:E}=g.state.selection;g.commands.setContent(y),g.commands.setTextSelection({from:Math.min(T,g.state.doc.content.size),to:Math.min(E,g.state.doc.content.size)});return}let S=g.getText(),C=S.trim().length>0;i(S.length),a(C),m(t?S.length>=t:!1),n?.(g.getHTML())},immediatelyRender:!1});return M.default.createElement(M.default.Fragment,null,M.default.createElement(U.RichTextEditor,{editor:f,w:"100%",className:"mrchat-richTextEditorContainer"},M.default.createElement(U.RichTextEditor.Content,null),M.default.createElement(U.RichTextEditor.Toolbar,{sticky:!0,stickyOffset:"var(--docs-header-height)"},M.default.createElement("div",{className:"mrchat-mainActionContainer"},M.default.createElement(yt,{colorScheme:o,onSelect:g=>{f?.chain().focus().insertContent({type:"emoji",attrs:{emoji:g}}).run()},action:M.default.createElement(J.ActionIcon,{radius:"lg",variant:"subtle","aria-label":"add",className:"mrchat-mainActionEmojiIcon"},M.default.createElement(K.IconMoodPlus,null))}),M.default.createElement(J.ActionIcon,{radius:"lg",variant:"subtle","aria-label":"text_format",className:"mrchat-mainTextFormatIcon",onClick:()=>p(g=>!g)},M.default.createElement(K.IconTextColor,{stroke:1.7})),M.default.createElement(J.ActionIcon,{radius:"lg",variant:"filled","aria-label":"send",className:"mrchat-mainSendMsgIcon",onClick:u,disabled:!l},M.default.createElement(K.IconSend,{size:18}))),M.default.createElement(J.ActionIcon,{radius:"lg",variant:"filled","aria-label":"send",className:"mrchat-sm-mainSendMsgIcon",onClick:u,disabled:!l},M.default.createElement(K.IconSend,{size:18})),d&&M.default.createElement(M.default.Fragment,null,M.default.createElement(U.RichTextEditor.ControlsGroup,null,M.default.createElement(U.RichTextEditor.Bold,null),M.default.createElement(U.RichTextEditor.Italic,null),M.default.createElement(U.RichTextEditor.Underline,null),M.default.createElement(U.RichTextEditor.Strikethrough,null),M.default.createElement(U.RichTextEditor.Code,null),M.default.createElement(U.RichTextEditor.Highlight,null)),M.default.createElement(U.RichTextEditor.ControlsGroup,{className:"mrchat-secondRichTextEditorToolBar"},M.default.createElement(U.RichTextEditor.BulletList,null),M.default.createElement(U.RichTextEditor.OrderedList,null),M.default.createElement(J.Menu,{trigger:"hover",openDelay:200},M.default.createElement(J.Menu.Target,null,M.default.createElement(J.ActionIcon,{variant:"outline",size:"md",className:"mrchat-customToolActionItem"},M.default.createElement(K.IconAlignLeft,{size:16,stroke:1.5}))),M.default.createElement(J.Menu.Dropdown,null,M.default.createElement(J.Menu.Item,{onClick:()=>f?.chain().focus().setTextAlign("left").run()},M.default.createElement(K.IconAlignLeft,{size:14})),M.default.createElement(J.Menu.Item,{onClick:()=>f?.chain().focus().setTextAlign("center").run()},M.default.createElement(K.IconAlignCenter,{size:14})),M.default.createElement(J.Menu.Item,{onClick:()=>f?.chain().focus().setTextAlign("right").run()},M.default.createElement(K.IconAlignRight,{size:14})))),M.default.createElement(U.RichTextEditor.Link,null)),M.default.createElement(U.RichTextEditor.ControlsGroup,{className:"mrchat-secondRichTextEditorToolBar"},M.default.createElement(U.RichTextEditor.ClearFormatting,null)))),c&&M.default.createElement("div",{style:{textAlign:"right",color:"red",fontSize:12,marginTop:4}},"Character limit reached (",s,"/",t,")")))}var Xe=require("react-redux"),L=H(require("react"));var fr=H(require("dompurify"));var Y=H(require("react"));function mr({data:e,renderItem:t,loadMore:n,hasMore:r,scrollToBottomTrigger:o}){let s=(0,Y.useRef)(null),i=(0,Y.useRef)(!1),l=(0,Y.useRef)(!0),a=(0,Y.useRef)(0);(0,Y.useEffect)(()=>{let d=s.current;d&&setTimeout(()=>{d.scrollTop=d.scrollHeight},100)},[o]),(0,Y.useEffect)(()=>{let d=s.current;!d||!e.length||(l.current&&(d.scrollTop=d.scrollHeight,l.current=!1),a.current=e.length)},[e]);let c=()=>{let d=s.current;d&&d.scrollTop<50&&r&&!i.current&&m()},m=async()=>{let d=s.current;if(!d||i.current||!r)return;i.current=!0;let p=d.scrollHeight,u=d.scrollTop;await n(),setTimeout(()=>{let f=d.scrollHeight-p;d.scrollTop=u+f,i.current=!1},50)};return Y.default.createElement("div",{ref:s,onScroll:c,className:"mrchat-messageScroll"},Y.default.createElement("div",{className:"mrchat-messageScrollContent"},e.map((d,p)=>Y.default.createElement("div",{key:d?.id||p},t(d,p)))))}var _=H(require("react")),fe=require("@mantine/core"),pr=require("@tabler/icons-react");function bt({opened:e,onClose:t,user:n,onDeleteMessages:r,onBlock:o}){let[s,i]=(0,_.useState)(e),[l,a]=(0,_.useState)(!1);(0,_.useEffect)(()=>{e&&i(!0)},[e]);let c=()=>{i(!1),setTimeout(t,250)};return!e&&!s?null:_.default.createElement(_.default.Fragment,null,_.default.createElement("div",{className:"mrchat-overlay",onClick:c},_.default.createElement("div",{className:`mrchat-drawer ${s?"mrchat-open":"mrchat-close"}`,onClick:m=>m.stopPropagation()},_.default.createElement("div",{className:"mrchat-header"},_.default.createElement("div",{className:"mrchat-backBtn",onClick:c},_.default.createElement(pr.IconArrowLeft,{size:20})),_.default.createElement(fe.Text,{fw:600},"Contact info")),_.default.createElement("div",{className:"mrchat-profileSection"},_.default.createElement(fe.Avatar,{src:n?.avatar,size:150,radius:"xl",style:{cursor:"pointer"},onClick:()=>n?.avatar?a(!0):{}}),_.default.createElement(fe.Text,{fw:700,size:"lg",mt:"sm"},n?.displayName),_.default.createElement(fe.Text,{size:"sm",c:"dimmed"},"@",n?.username)))),l&&_.default.createElement("div",{className:"mrchat-imagePreview",onClick:()=>a(!1)},_.default.createElement("img",{src:n?.avatar,alt:"profile"})))}function hr({chatId:e,enableChat:t,senderDetails:n,receiverDetails:r,onChatInitialized:o,onBack:s,showBackButton:i,colorScheme:l}){let a=(0,Xe.useDispatch)(),c=(0,Xe.useSelector)(E=>E.chat.messageList),[m,d]=(0,L.useState)(0),[p,u]=(0,L.useState)(0),[h,f]=(0,L.useState)(!1),g=c?.rows?.data||[],v=g.length===0,y=()=>{let E=c?.hasMore;if(!e||!E)return;let A=m+1;a(et({chatId:e,page:A,userId:n?.userId})),d(A)};(0,L.useEffect)(()=>{e&&(d(0),a(et({chatId:e,page:0,userId:n?.userId})))},[e]),(0,L.useEffect)(()=>{if(!n?.userId||!ae())return;let E=Z(n?.userId||"");if(!E)return;let A=I=>{I.chatId===e&&a(tt({id:Date.now(),chatId:I.chatId,message:I.message,sender:I.sender,recipient:I.recipient,type:I.type,status:I.status,createdAt:I.time}))};return E.on("newmessage",A),()=>{E.off("newmessage",A)}},[e,n?.userId]);let S=E=>{let A=Z(n?.userId||""),I={message:E,sender:n?.userId,receiver:r?.userId,type:"text",username:n?.username};if(!c?.rows?.data?.length){A?.emit("initializeNewChat",{...I,senderUserDetails:{userId:n?.userId,username:n?.username,displayName:n?.displayName,avatar:n?.avatar},receiverUserDetails:{userId:r?.userId,username:r?.username,displayName:r?.displayName,avatar:r?.avatar}},D=>{if(D?.status==="success"){let{data:P}=D;a(ve({id:Date.now(),chatId:P.chatId,message:P.message,sender:P.sender,recipient:P.recipient,type:P.type,status:P.status,createdAt:new Date(P.time).getTime(),updatedAt:new Date(P.time).getTime(),userId:r?.userId,username:r?.username,displayName:r?.displayName,avatar:r?.avatar})),a(tt({id:Date.now(),chatId:P.chatId,message:P.message,sender:P.sender,recipient:P.recipient,type:P.type,status:P.status,createdAt:Date.now()})),o?.(P)}else console.log("Failed to initialize chat",D?.error)});return}A?.emit("privatemessage",{...I,chatId:e}),u(D=>D+1)},C=()=>{c.hasMore&&y()},T=()=>{!e||!n?.userId||a(Dt({chatId:e,userId:n?.userId}))};return L.default.createElement("div",{className:"mrchat-mainArea"},L.default.createElement("div",{className:"mrchat-chatHeader"},i&&s&&L.default.createElement(se.ActionIcon,{variant:"subtle",className:"mrchat-backButton",onClick:s},L.default.createElement(qe.IconArrowLeft,{size:20})),r&&L.default.createElement(L.default.Fragment,null,L.default.createElement("div",{className:"mrchat-receiverInfo",onClick:()=>f(!0)},r?.avatar?L.default.createElement(se.Avatar,{src:r.avatar,size:36,radius:"xl"}):L.default.createElement(se.Avatar,{key:r?.displayName||r?.username,name:r?.displayName||r?.username,color:"initials"}),L.default.createElement(se.Text,{fw:600,size:"md"},r?.displayName||r?.username)))),L.default.createElement("div",{className:"mrchat-messageArea"},v?L.default.createElement("div",{className:"mrchat-emptyState"},L.default.createElement("div",{className:"mrchat-encryptionMinimal"},L.default.createElement(qe.IconLock,{size:20,stroke:1.8}),L.default.createElement(se.Text,{className:"mrchat-encryptionText",size:"md"},"End-to-end encrypted"))):L.default.createElement(mr,{data:g,hasMore:c?.hasMore,loadMore:C,scrollToBottomTrigger:p,renderItem:(E,A)=>{let I=E?.sender===n?.userId,z=new Date(E?.createdAt),D=g[A-1],P=A===0||new Date(D?.createdAt).toDateString()!==z.toDateString(),X=new Date,$=new Date;$.setDate(X.getDate()-1);let R=z.toDateString()===X.toDateString(),j=z.toDateString()===$.toDateString(),Q="";R?Q="Today":j?Q="Yesterday":Q=z.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"});let Se=z.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1});return L.default.createElement("div",{key:E?.id+"_"+A},P&&L.default.createElement("div",{className:"mrchat-dateSeparator"},Q),L.default.createElement("div",{style:{borderRadius:8},className:`mrchat-messageBubble ${I?"mrchat-outgoing":"mrchat-incoming"}`},L.default.createElement("div",{className:"mrchat-messageContent",dangerouslySetInnerHTML:{__html:fr.default.sanitize(E?.message)}}),L.default.createElement("div",{className:"mrchat-messageTime"},Se)))}})),(e||t)&&L.default.createElement("div",{className:"mrchat-inputBar"},L.default.createElement(xt,{onSubmit:S,colorScheme:l})),L.default.createElement(bt,{opened:h,onClose:()=>f(!1),user:{avatar:r?.avatar,username:r?.username,displayName:r?.displayName},onDeleteMessages:()=>{T()},onBlock:()=>{console.log("block user")}}))}var Ye=require("react-redux"),w=H(require("react"));var gr=H(require("react")),vr=require("react-virtuoso");function yr({data:e,itemContent:t,height:n="100%",startReached:r,endReached:o,...s}){return gr.default.createElement(vr.Virtuoso,{style:{height:n},data:e,startReached:r,endReached:o,itemContent:(i,l)=>t(i,l),...s})}var kr=H(require("dompurify"));var xr=e=>{if(!e)return"";let t=new Date(e),n=new Date,r=new Date;r.setDate(n.getDate()-1);let o=t.toDateString()===n.toDateString(),s=t.toDateString()===r.toDateString(),i=t.toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",hour12:!1});return o?i:s?"Yesterday":t.toLocaleDateString(void 0,{day:"numeric",month:"short"})};function Mr({currentUser:e,onSearchUsers:t,colorScheme:n,openChatByUserDetails:r,handleCallAfterOpenChat:o,isLoading:s=!1}){let[i,{open:l,close:a}]=(0,wr.useDisclosure)(!1),c=(0,Ye.useDispatch)(),m=(0,Ye.useSelector)(b=>b.chat.messagedUserList),[d,p]=(0,w.useState)(0),[u,h]=(0,w.useState)(""),[f,g]=(0,w.useState)(!1),[v,y]=(0,w.useState)(""),[S,C]=(0,w.useState)(),[T,E]=(0,w.useState)(),[A,I]=(0,w.useState)([]),[z,D]=(0,w.useState)(!1),[P,X]=(0,w.useState)(e),[$,R]=(0,w.useState)(!1),[j,Q]=(0,w.useState)(!1);(0,w.useEffect)(()=>{e?.userId&&X(e)},[e?.userId]),(0,w.useEffect)(()=>{e?.userId&&c(Ze({userId:e.userId,page:0}))},[e?.userId,c]),(0,w.useEffect)(()=>{if(typeof window>"u")return;let b=window.matchMedia("(max-width: 599px)"),k=N=>{let V="matches"in N?N.matches:b.matches;R(V),V||Q(!1)};return k(b),b.addEventListener?b.addEventListener("change",k):b.addListener(k),()=>{b.removeEventListener?b.removeEventListener("change",k):b.removeListener(k)}},[]);let Se=(b,k)=>{let N=b;if(!N?.userId)return;let V=m?.rows?.data?.find(Te=>Te.userId===N.userId);if(V){Ge(V),a(),y(""),k&&k();return}c(ve({userId:N?.userId,username:N?.username,displayName:N?.displayName,avatar:N?.avatar})),C(N),a(),y(""),c(ye()),h(""),g(!0),$&&Q(!0),k&&k()};(0,w.useEffect)(()=>{if(!P?.userId)return;let b=Z(P.userId);b&&(b.connected||b.connect())},[P?.userId]),(0,w.useEffect)(()=>{if(!P?.userId)return;let b=Z(P.userId);if(!b)return;let k=N=>{N.sender!==P.userId&&c(ve({message:N.message,chatId:N.chatId,userId:N.sender,username:N.userDetails.username,displayName:N.userDetails.displayName,avatar:N.userDetails.avatar}))};return b.on("newChat",k),()=>{b.off("newChat",k)}},[c,P?.userId]),(0,w.useEffect)(()=>{if(!P?.userId)return;let b=Z(P?.userId||"");if(!b)return;let k=N=>{if(!m?.rows?.data)return;let V=m.rows.data.map(ne=>{if(ne.chatId===N.chatId){let zr=N.chatId===u;return{...ne,message:N.message,updatedAt:new Date().toISOString(),unreadCount:zr?0:(ne.unreadCount||0)+1}}return ne}),Te=V.findIndex(ne=>ne.chatId===N.chatId);if(Te!==-1){let ne=V.splice(Te,1)[0];V.unshift(ne)}console.log("Updated",V,N),c(ge({...m,rows:{...m.rows,data:V}}))};return b.on("newMessageNotification",k),()=>{b.off("newMessageNotification",k)}},[m,P?.userId]);let Ar=()=>{if(!m?.hasMore||!e?.userId)return;let b=d+1;p(b),c(Ze({userId:e.userId,page:b}))},Ge=b=>{if(!P?.userId)return;let k=Z(P.userId);if(!k)return;C({userId:b.userId,username:b.username,displayName:b.displayName,avatar:b.avatar}),k.emit("joinChat",{chatId:b.chatId}),h(b?.chatId||""),c(ye());let N=m.rows.data.map(V=>V.chatId===b.chatId?{...V,unreadCount:0}:V);$&&Q(!0),c(ge({...m,rows:{...m.rows,data:N}}))};(0,w.useEffect)(()=>{r&&Se(r,o)},[r?.userId]);let Pr=b=>{y(b)},Nr=()=>{Q(!1)};(0,w.useEffect)(()=>{if(!v.trim()){I([]),D(!1);return}if(!t){I([]),D(!1);return}let b=!1,k=setTimeout(async()=>{try{D(!0),I([]);let N=await Promise.resolve(t(v));if(b)return;I(N)}finally{b||D(!1)}},400);return()=>{b=!0,clearTimeout(k)}},[v,t]);let Lr=b=>{let k=document.createElement("div");return k.innerHTML=b,k.textContent||""},Dr=A.map(b=>({value:b.username,label:b.displayName||b.username,user:b}));return w.default.createElement("div",{className:"mrchat-chatWrapper"},s&&w.default.createElement("div",{className:"mrchat-loadingOverlay"},w.default.createElement(O.Loader,{size:"md"})),w.default.createElement(O.Modal,{opened:i,onClose:()=>{a(),y(""),I([]),D(!1)},title:"Search User",centered:!0,withCloseButton:!0},w.default.createElement(O.Autocomplete,{mb:12,label:"Search User to Chat",placeholder:"Type username to search...",limit:20,data:Dr,value:v,onChange:Pr,rightSection:z?w.default.createElement(O.Loader,{size:"xs"}):void 0,rightSectionWidth:28,onOptionSubmit:b=>{let k=A.find(N=>N.username===b);k&&(y(""),E(k),I([]),D(!1))},renderOption:({option:b})=>{let k=b.user;return w.default.createElement(O.Group,{gap:"sm"},w.default.createElement(O.Avatar,{src:k.avatar,size:36,radius:"xl"}),w.default.createElement("div",null,w.default.createElement(O.Text,{size:"sm"},k.displayName||k.username),k.displayName&&w.default.createElement(O.Text,{size:"xs",opacity:.5},"@",k.username)))}}),w.default.createElement(O.Button,{fullWidth:!0,onClick:()=>Se(T),disabled:!T?.username},"Start Chat")),w.default.createElement("div",{className:"mrchat-chatContainer"},w.default.createElement("div",{className:"mrchat-sidebar "+($&&j?"mrchat-hiddenOnMobile":"")},w.default.createElement("div",{className:"mrchat-sidebarTop"},w.default.createElement("div",{className:"mrchat-topBar"},w.default.createElement(O.Text,{size:"xs",c:"dimmed",mt:"sm",mb:"xs",fw:600,ml:8},"All Messages"),w.default.createElement("div",{className:"mrchat-topActions"},w.default.createElement(O.ActionIcon,{variant:"subtle",onClick:()=>{E(null),y(""),I([]),l()},radius:"lg"},w.default.createElement(br.IconPlus,{size:20,stroke:3}))))),w.default.createElement("div",{className:"mrchat-scrollWrapper"},w.default.createElement(yr,{data:m?.rows?.data||[],endReached:Ar,itemContent:(b,k)=>{let N=k.chatId===u;return w.default.createElement("div",{className:`mrchat-chatItem ${N?"mrchat-activeChatItem":""}`,onClick:()=>{if(N&&$){Q(!0);return}N||Ge(k)}},k.avatar?w.default.createElement(O.Avatar,{src:k.avatar,size:36,radius:"xl"}):w.default.createElement(O.Avatar,{key:k.displayName||k.username,name:k.displayName||k.username,color:"initials"}),w.default.createElement("div",{className:"mrchat-chatInfo"},w.default.createElement(O.Text,{className:"mrchat-chatLabelItem",truncate:!0},k.displayName||k.username),k.unreadCount>0&&w.default.createElement("div",{className:"mrchat-unreadBadge"},k.unreadCount||10),w.default.createElement("div",{className:"mrchat-messagePreview"},w.default.createElement(O.Text,{truncate:!0,size:"xs",c:"dimmed",style:{maxWidth:150},className:"mrchat-messagePreviewContent"},Lr(kr.default.sanitize(k.message))),w.default.createElement(O.Text,{size:"xs",c:"dimmed",className:"mrchat-messagePreviewTime"},xr(k.updatedAt||k.createdAt)))))}}))),w.default.createElement("div",{className:"mrchat-mainAreaWrapper "+($&&!j?"mrchat-hiddenOnMobile":"")},w.default.createElement(hr,{chatId:u,enableChat:f,senderDetails:P,receiverDetails:S,onBack:Nr,showBackButton:$,onChatInitialized:b=>{Ge({chatId:b.chatId,userId:S?.userId,username:S?.username,displayName:S?.displayName,avatar:S?.avatar})},colorScheme:n}))))}var Sr=require("react"),Tr=require("react-redux");function Er(){let e=(0,Tr.useDispatch)();return(0,Sr.useEffect)(()=>()=>{e(zt())},[e]),null}function wt({colorScheme:e,primaryColor:t="customBrand",darkColor:n,apiKey:r,baseUrl:o,socketUrl:s,openChatByUserDetails:i,handleCallAfterOpenChat:l,isLoading:a=!1,...c}){let m=Et(t),d=[r?.trim()?null:"apiKey",o?.trim()?null:"baseUrl",s?.trim()?null:"socketUrl"].filter(Boolean),p=d.length===0;return(0,q.useLayoutEffect)(()=>{typeof window>"u"||!p||It({baseUrl:o,socketUrl:s,apiKey:r})},[r,o,s,p]),(0,q.useEffect)(()=>{if(typeof document>"u"||!n)return;let u=document.body.style.backgroundColor;return document.body.style.backgroundColor=e==="dark"?n:"",document.documentElement.style.setProperty("--mantine-color-body",e==="dark"?n:""),()=>{document.body.style.backgroundColor=u,document.documentElement.style.removeProperty("--mantine-color-body")}},[e,n]),p?q.default.createElement(jt,null,q.default.createElement(Ft,null,q.default.createElement(Er,null),q.default.createElement(Cr.MantineProvider,{defaultColorScheme:e??"light",forceColorScheme:e,theme:m},q.default.createElement(Ir.Notifications,null),q.default.createElement(Mr,{handleCallAfterOpenChat:l,colorScheme:e,openChatByUserDetails:i,isLoading:a,...c})))):q.default.createElement("div",{role:"alert",style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:16}},q.default.createElement("div",{style:{padding:16,borderRadius:8,backgroundColor:"#fef3f2",color:"#b42318",fontWeight:600,textAlign:"center"}},"Missing required configuration: ",d.join(", ")))}0&&(module.exports={MrChat});
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import"@mantine/core/styles.css";import"@mantine/tiptap/styles.css";import"@mantine/notifications/styles.css";import G,{useEffect as Yi,useLayoutEffect as Gi}from"react";import{MantineProvider as Qi}from"@mantine/core";import{Notifications as Zi}from"@mantine/notifications";import{createTheme as Sn}from"@mantine/core";var Tn=["#e6f9ff","#b3ecff","#80dfff","#4dd2ff","#1ac5ff","#00b8e6","#0091b3","#006a80","#00434d","#001c1a"],En=["#e6f9f2","#c0f0de","#88e4c3","#4dd6a4","#26cb90","#00bf7d","#00a36c","#008d5d","#00764d","#005f3e"],Cn=["#ffe6e9","#fbbdc4","#f38b98","#ea576b","#e12c48","#d80a2d","#b30625","#8f041d","#6b0215","#47010e"],In=["#fff1e6","#ffd7b3","#ffb380","#ff8f4d","#ff6b1a","#e65c00","#b34700","#803300","#4d1f00","#1a0a00"],An=["#e6f9ff","#b3ecff","#80dfff","#4dd2ff","#1ac5ff","#00b8e6","#0091b3","#006a80","#00434d","#001c1a"],it={customBrand:Tn,emerald:En,ruby:Cn,sunset:In,ocean:An},at=e=>/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.test(e),Pn=e=>{let t=e.replace("#",""),n=t.length===3?t.split("").map(r=>r+r).join(""):t;return{r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16)}},Nn=({r:e,g:t,b:n})=>`#${[e,t,n].map(r=>r.toString(16).padStart(2,"0")).join("")}`,Pe=e=>Math.min(255,Math.max(0,Math.round(e))),Ln=e=>{let{r:t,g:n,b:r}=Pn(e);return[.08,.18,.3,.42,.54,.66,.76,.86,.92,.98].map(i=>Nn({r:Pe(t*i+255*(1-i)),g:Pe(n*i+255*(1-i)),b:Pe(r*i+255*(1-i))}))},ct=e=>{let t={...it},n=at(e)||!(e in it)?"customBrand":e;return at(e)&&(t.customBrand=Ln(e)),Sn({primaryColor:n,colors:t})};import Hn from"react";import{Provider as _n}from"react-redux";import{configureStore as $n}from"@reduxjs/toolkit";import{createSlice as zn}from"@reduxjs/toolkit";var Q={BASE_URL:"",SOCKET_URL:""},lt="",dt=({baseUrl:e,socketUrl:t,apiKey:n})=>{e&&(Q.BASE_URL=e),t&&(Q.SOCKET_URL=t),lt=n||""};var Z=()=>lt;import Dn from"axios";var ut=Dn.create({headers:{"Content-Type":"application/json",Authorization:Z(),"Cache-Control":"no-cache",Pragma:"no-cache"}});ut.interceptors.request.use(e=>(Q.BASE_URL?.trim()&&(e.baseURL=Q.BASE_URL),e.headers?.set?.("Authorization",Z()),e.headers?.set?.("Cache-Control","no-cache"),e.headers?.set?.("Pragma","no-cache"),e.headers?.set?.("Expires","0"),e));var ge=ut;import{notifications as ve}from"@mantine/notifications";var On={messagedUserList:null,messageList:[]},mt=zn({name:"messages",initialState:On,reducers:{setMessagedUserList:(e,t)=>{let n=t.payload;if(n===null){e.messagedUserList=null;return}let r=n?.page??0;if(!e.messagedUserList||r===0){e.messagedUserList=n;return}let s=e.messagedUserList?.rows?.data??[],o=n?.rows?.data??[],i=[...s,...o],l=new Map;i.forEach(c=>{c?.chatId&&l.set(c.chatId,c)});let a=Array.from(l.values());e.messagedUserList={...n,rows:{...n.rows,data:a}}},setMessageList:(e,t)=>{let n=t.payload;if(n===null){e.messageList=[];return}let r=n?.page??0;if(!e.messageList?.rows?.data||r===0){e.messageList=n;return}e.messageList={...n,rows:{...n.rows,data:[...n.rows.data,...e.messageList.rows.data]}}},addNewMessage:(e,t)=>{e.messageList?.rows?.data&&e.messageList.rows.data.push(t.payload)},addUserToChatList:(e,t)=>{let n=t.payload;if(!e.messagedUserList){e.messagedUserList={hasMore:!1,rows:{success:!0,status:!0,message:"",data:[n]}};return}let r=e.messagedUserList.rows.data;e.messagedUserList.rows.data=r=r.filter(o=>o?.chatId);let s=r.findIndex(o=>o.chatId===n.chatId);if(s!==-1){let i={...r.splice(s,1)[0],...n};r.unshift(i)}else r.unshift(n)},resetMessageList:e=>{e.messageList=[]},updateUnreadCount:(e,t)=>{let{chatId:n,isActive:r}=t.payload,s=e.messagedUserList?.rows?.data;if(!s)return;let o=s.find(i=>i.chatId===n);o&&(r?o.unreadCount=0:o.unreadCount=(o.unreadCount||0)+1)},resetUnreadCount:(e,t)=>{let n=t.payload,r=e.messagedUserList?.rows?.data;if(!r)return;let s=r.find(o=>o.chatId===n);s&&(s.unreadCount=0)}}}),Ne=e=>async t=>ge.get(`/api/messages/userList/${e?.userId}?page=${e?.page||0}`).then(n=>(console.log("Fetched messages for userId:",n.data),t(ie({...n.data,page:e?.page||0})),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to fetch messages";return ve.show({title:"Message Fetch Failed",message:r,color:"red"}),n}),Le=e=>async t=>ge.get(`/api/messages/${e?.chatId}?page=${e?.page||0}&userId=${e?.userId}`).then(n=>(t(Bn({...n.data,page:e?.page||0})),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to fetch messages";return ve.show({title:"Message Fetch Failed",message:r,color:"red"}),n});var pt=e=>async t=>ge.delete("/api/messages",{data:{chatId:e?.chatId,userId:e?.userId}}).then(n=>(t(ce()),ve.show({title:"Messages Deleted",message:"All messages in this chat have been deleted.",color:"green"}),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to delete messages";return ve.show({title:"Message Deletion Failed",message:r,color:"red"}),n}),ft=()=>async e=>{e(ie(null)),e(ce())},{setMessagedUserList:ie,setMessageList:Bn,addNewMessage:De,addUserToChatList:ae,resetMessageList:ce,updateUnreadCount:da,resetUnreadCount:ua}=mt.actions,ht=mt.reducer;var gt=$n({reducer:{chat:ht}});function vt({children:e}){return Hn.createElement(_n,{store:gt},e)}import xt,{useEffect as Un}from"react";import{io as jn}from"socket.io-client";var ne=null,yt,W=e=>e?((!ne||yt!==e)&&(ne&&(ne.disconnect(),ne=null),ne=jn(Q.SOCKET_URL,{autoConnect:!1,transports:["websocket"],auth:{apiKey:Z(),userId:e}}),yt=e),ne):null;function bt({children:e,userId:t}){return Un(()=>{if(!t)return;let n=W(t);if(n)return n.connected||(n.connect(),console.log("\u2705 Socket connected for:",t)),()=>{n.connected&&(n.disconnect(),console.log("Socket disconnected for:",t))}},[t]),xt.createElement(xt.Fragment,null,e)}import{Text as se,Modal as Hi,Button as _i,ActionIcon as ji,Autocomplete as Ui,Group as Ri,Avatar as st,Loader as fn}from"@mantine/core";import{IconPlus as Fi}from"@tabler/icons-react";import{useDisclosure as Vi}from"@mantine/hooks";import{Text as cn,Avatar as ln,ActionIcon as Pi}from"@mantine/core";import{IconArrowLeft as Ni,IconLock as Li}from"@tabler/icons-react";import T,{useState as Ce}from"react";import{IconSend as tn,IconAlignLeft as nn,IconAlignCenter as gi,IconAlignRight as vi,IconMoodPlus as yi,IconTextColor as xi}from"@tabler/icons-react";import bi from"@tiptap/extension-highlight";import wi from"@tiptap/extension-subscript";import ki from"@tiptap/extension-superscript";import Mi from"@tiptap/extension-text-align";import{liftTarget as Wn}from"@tiptap/pm/transform";import{createParagraphNear as qn}from"@tiptap/pm/commands";import{TextSelection as Yn}from"@tiptap/pm/state";import{exitCode as sr}from"@tiptap/pm/commands";import{TextSelection as ar}from"@tiptap/pm/state";import{TextSelection as dr}from"@tiptap/pm/state";import{Selection as Mt,TextSelection as St}from"@tiptap/pm/state";import{Fragment as gr}from"@tiptap/pm/model";import{DOMParser as ze,Fragment as Et,Node as vr,Schema as yr}from"@tiptap/pm/model";import{Selection as xr}from"@tiptap/pm/state";import{ReplaceAroundStep as br,ReplaceStep as wr}from"@tiptap/pm/transform";import{joinBackward as Tr,joinDown as Er,joinForward as Cr,joinUp as Ir}from"@tiptap/pm/commands";import{joinPoint as Dr}from"@tiptap/pm/transform";import{joinPoint as Or}from"@tiptap/pm/transform";import{joinTextblockBackward as $r}from"@tiptap/pm/commands";import{joinTextblockForward as _r}from"@tiptap/pm/commands";import{lift as Fr}from"@tiptap/pm/commands";import{liftEmptyBlock as Wr}from"@tiptap/pm/commands";import{liftListItem as Jr}from"@tiptap/pm/schema-list";import{newlineInCode as Xr}from"@tiptap/pm/commands";import{AllSelection as Zr}from"@tiptap/pm/state";import{selectNodeBackward as to}from"@tiptap/pm/commands";import{selectNodeForward as ro}from"@tiptap/pm/commands";import{selectParentNode as so}from"@tiptap/pm/commands";import{selectTextblockEnd as ao}from"@tiptap/pm/commands";import{selectTextblockStart as lo}from"@tiptap/pm/commands";import{Transform as ho}from"@tiptap/pm/transform";import{Node as tc}from"@tiptap/pm/model";import{DOMSerializer as xo}from"@tiptap/pm/model";import{Schema as bo}from"@tiptap/pm/model";import{DOMParser as sc}from"@tiptap/pm/model";import{Node as ac}from"@tiptap/pm/model";import{NodeSelection as lc}from"@tiptap/pm/state";import{setBlockType as Dt}from"@tiptap/pm/commands";import{NodeSelection as Ho}from"@tiptap/pm/state";import{TextSelection as Be}from"@tiptap/pm/state";import{sinkListItem as Ro}from"@tiptap/pm/schema-list";import{NodeSelection as Vo,TextSelection as Wo}from"@tiptap/pm/state";import{canSplit as $e}from"@tiptap/pm/transform";import{Fragment as He,Slice as Jo}from"@tiptap/pm/model";import{TextSelection as qo}from"@tiptap/pm/state";import{canSplit as Xo}from"@tiptap/pm/transform";import{TextSelection as Go}from"@tiptap/pm/state";import{canJoin as Kt}from"@tiptap/pm/transform";import{wrapIn as cs}from"@tiptap/pm/commands";import{wrapInList as ds}from"@tiptap/pm/schema-list";import{EditorState as Sc}from"@tiptap/pm/state";import{EditorView as Ec}from"@tiptap/pm/view";import{keymap as ms}from"@tiptap/pm/keymap";import{Fragment as ps}from"@tiptap/pm/model";import{Plugin as fs}from"@tiptap/pm/state";import{Fragment as ys}from"@tiptap/pm/model";import{Plugin as xs}from"@tiptap/pm/state";import{Plugin as Es,PluginKey as Cs}from"@tiptap/pm/state";import{RemoveMarkStep as Ps}from"@tiptap/pm/transform";import{Plugin as Ls,PluginKey as Ds}from"@tiptap/pm/state";import{Plugin as Os,PluginKey as Bs}from"@tiptap/pm/state";import{Plugin as Hs,PluginKey as _s}from"@tiptap/pm/state";import{Plugin as Us,PluginKey as Rs,Selection as Ue}from"@tiptap/pm/state";import{Plugin as Vs,PluginKey as Ws}from"@tiptap/pm/state";import{Plugin as Js,PluginKey as qs}from"@tiptap/pm/state";import{Plugin as Ys,PluginKey as Gs}from"@tiptap/pm/state";import{canJoin as Rc,findWrapping as Fc}from"@tiptap/pm/transform";import{NodeSelection as Wc}from"@tiptap/pm/state";import{NodeSelection as Jc}from"@tiptap/pm/state";var Rn=Object.defineProperty,Re=(e,t)=>{for(var n in t)Rn(e,n,{get:t[n],enumerable:!0})};function Ee(e){let{state:t,transaction:n}=e,{selection:r}=n,{doc:s}=n,{storedMarks:o}=n;return{...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return o},get selection(){return r},get doc(){return s},get tr(){return r=n.selection,s=n.doc,o=n.storedMarks,n}}}var Fe=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:t,state:n}=this,{view:r}=t,{tr:s}=n,o=this.buildProps(s);return Object.fromEntries(Object.entries(e).map(([i,l])=>[i,(...c)=>{let m=l(...c)(o);return!s.getMeta("preventDispatch")&&!this.hasCustomState&&r.dispatch(s),m}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:n,editor:r,state:s}=this,{view:o}=r,i=[],l=!!e,a=e||s.tr,c=()=>(!l&&t&&!a.getMeta("preventDispatch")&&!this.hasCustomState&&o.dispatch(a),i.every(d=>d===!0)),m={...Object.fromEntries(Object.entries(n).map(([d,p])=>[d,(...h)=>{let f=this.buildProps(a,t),g=p(...h)(f);return i.push(g),m}])),run:c};return m}createCan(e){let{rawCommands:t,state:n}=this,r=!1,s=e||n.tr,o=this.buildProps(s,r);return{...Object.fromEntries(Object.entries(t).map(([l,a])=>[l,(...c)=>a(...c)({...o,dispatch:void 0})])),chain:()=>this.createChain(s,r)}}buildProps(e,t=!0){let{rawCommands:n,editor:r,state:s}=this,{view:o}=r,i={tr:e,editor:r,view:o,state:Ee({state:s,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map(([l,a])=>[l,(...c)=>a(...c)(i)]))}};return i}},Ot={};Re(Ot,{blur:()=>Fn,clearContent:()=>Vn,clearNodes:()=>Kn,command:()=>Jn,createParagraphNear:()=>Xn,cut:()=>Gn,deleteCurrentNode:()=>Qn,deleteNode:()=>Zn,deleteRange:()=>er,deleteSelection:()=>rr,enter:()=>or,exitCode:()=>ir,extendMarkRange:()=>cr,first:()=>lr,focus:()=>pr,forEach:()=>fr,insertContent:()=>hr,insertContentAt:()=>Sr,joinBackward:()=>Nr,joinDown:()=>Pr,joinForward:()=>Lr,joinItemBackward:()=>zr,joinItemForward:()=>Br,joinTextblockBackward:()=>Hr,joinTextblockForward:()=>jr,joinUp:()=>Ar,keyboardShortcut:()=>Rr,lift:()=>Vr,liftEmptyBlock:()=>Kr,liftListItem:()=>qr,newlineInCode:()=>Yr,resetAttributes:()=>Gr,scrollIntoView:()=>Qr,selectAll:()=>eo,selectNodeBackward:()=>no,selectNodeForward:()=>oo,selectParentNode:()=>io,selectTextblockEnd:()=>co,selectTextblockStart:()=>uo,setContent:()=>po,setMark:()=>Oo,setMeta:()=>Bo,setNode:()=>$o,setNodeSelection:()=>_o,setTextDirection:()=>jo,setTextSelection:()=>Uo,sinkListItem:()=>Fo,splitBlock:()=>Ko,splitListItem:()=>Yo,toggleList:()=>Zo,toggleMark:()=>es,toggleNode:()=>ts,toggleWrap:()=>ns,undoInputRule:()=>rs,unsetAllMarks:()=>os,unsetMark:()=>ss,unsetTextDirection:()=>is,updateAttributes:()=>as,wrapIn:()=>ls,wrapInList:()=>us});var Fn=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var n;e.isDestroyed||(t.dom.blur(),(n=window?.getSelection())==null||n.removeAllRanges())}),!0),Vn=(e=!0)=>({commands:t})=>t.setContent("",{emitUpdate:e}),Kn=()=>({state:e,tr:t,dispatch:n})=>{let{selection:r}=t,{ranges:s}=r;return n&&s.forEach(({$from:o,$to:i})=>{e.doc.nodesBetween(o.pos,i.pos,(l,a)=>{if(l.type.isText)return;let{doc:c,mapping:m}=t,d=c.resolve(m.map(a)),p=c.resolve(m.map(a+l.nodeSize)),u=d.blockRange(p);if(!u)return;let h=Wn(u);if(l.type.isTextblock){let{defaultType:f}=d.parent.contentMatchAt(d.index());t.setNodeMarkup(u.start,f)}(h||h===0)&&t.lift(u,h)})}),!0},Jn=e=>t=>e(t),Xn=()=>({state:e,dispatch:t})=>qn(e,t),Gn=(e,t)=>({editor:n,tr:r})=>{let{state:s}=n,o=s.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);let i=r.mapping.map(t);return r.insert(i,o.content),r.setSelection(new Yn(r.doc.resolve(Math.max(i-1,0)))),!0},Qn=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;let s=e.selection.$anchor;for(let o=s.depth;o>0;o-=1)if(s.node(o).type===r.type){if(t){let l=s.before(o),a=s.after(o);e.delete(l,a).scrollIntoView()}return!0}return!1};function _(e,t){if(typeof e=="string"){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}var Zn=e=>({tr:t,state:n,dispatch:r})=>{let s=_(e,n.schema),o=t.selection.$anchor;for(let i=o.depth;i>0;i-=1)if(o.node(i).type===s){if(r){let a=o.before(i),c=o.after(i);t.delete(a,c).scrollIntoView()}return!0}return!1},er=e=>({tr:t,dispatch:n})=>{let{from:r,to:s}=e;return n&&t.delete(r,s),!0},tr=e=>e.content?/^text(\*|\+)/.test(e.content):!1,wt=(e,t,n)=>{if(!e.parent.isInline||n==="left"&&e.pos>e.start()||n==="right"&&e.pos<e.end())return e.pos;let r=t.nodes[e.parent.type.name].spec;return tr(r)?n==="left"?e.start()-1:e.end()+1:e.pos},nr=(e,t,n)=>{let r=wt(e,n,"left"),s=wt(t,n,"right");return{from:r,to:s}},rr=()=>({state:e,dispatch:t})=>{let{$from:n,$to:r}=e.selection;if(e.selection.empty)return!1;let{from:s,to:o}=nr(n,r,e.schema);return t&&(e.tr.deleteRange(s,o).scrollIntoView(),t(e.tr)),!0},or=()=>({commands:e})=>e.keyboardShortcut("Enter"),ir=()=>({state:e,dispatch:t})=>sr(e,t);function Ve(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Me(e,t,n={strict:!0}){let r=Object.keys(t);return r.length?r.every(s=>n.strict?t[s]===e[s]:Ve(t[s])?t[s].test(e[s]):t[s]===e[s]):!0}function Bt(e,t,n={}){return e.find(r=>r.type===t&&Me(Object.fromEntries(Object.keys(n).map(s=>[s,r.attrs[s]])),n))}function kt(e,t,n={}){return!!Bt(e,t,n)}function $t(e,t,n){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if((!r.node||!r.node.marks.some(c=>c.type===t))&&(r=e.parent.childBefore(e.parentOffset)),!r.node||!r.node.marks.some(c=>c.type===t))return;if(!n){let c=r.node.marks.find(m=>m.type===t);c&&(n=c.attrs)}if(!Bt([...r.node.marks],t,n))return;let o=r.index,i=e.start()+r.offset,l=o+1,a=i+r.node.nodeSize;for(;o>0&&kt([...e.parent.child(o-1).marks],t,n);)o-=1,i-=e.parent.child(o).nodeSize;for(;l<e.parent.childCount&&kt([...e.parent.child(l).marks],t,n);)a+=e.parent.child(l).nodeSize,l+=1;return{from:i,to:a}}function q(e,t){if(typeof e=="string"){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}var cr=(e,t)=>({tr:n,state:r,dispatch:s})=>{let o=q(e,r.schema),{doc:i,selection:l}=n,{$from:a,from:c,to:m}=l;if(s){let d=$t(a,o,t);if(d&&d.from<=c&&d.to>=m){let p=ar.create(i,d.from,d.to);n.setSelection(p)}}return!0},lr=e=>t=>{let n=typeof e=="function"?e(t):e;for(let r=0;r<n.length;r+=1)if(n[r](t))return!0;return!1};function Ht(e){return e instanceof dr}function ee(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function ur(e,t=null){if(!t)return null;let n=Mt.atStart(e),r=Mt.atEnd(e);if(t==="start"||t===!0)return n;if(t==="end")return r;let s=n.from,o=r.to;return t==="all"?St.create(e,ee(0,s,o),ee(e.content.size,s,o)):St.create(e,ee(t,s,o),ee(t,s,o))}function Tt(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}function Se(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}function mr(){return typeof navigator<"u"?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1}var pr=(e=null,t={})=>({editor:n,view:r,tr:s,dispatch:o})=>{t={scrollIntoView:!0,...t};let i=()=>{(Se()||Tt())&&r.dom.focus(),mr()&&!Se()&&!Tt()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t?.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&e===null||e===!1)return!0}catch{return!1}if(o&&e===null&&!Ht(n.state.selection))return i(),!0;let l=ur(s.doc,e)||n.state.selection,a=n.state.selection.eq(l);return o&&(a||s.setSelection(l),a&&s.storedMarks&&s.setStoredMarks(s.storedMarks),i()),!0},fr=(e,t)=>n=>e.every((r,s)=>t(r,{...n,index:s})),hr=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),_t=e=>{let t=e.childNodes;for(let n=t.length-1;n>=0;n-=1){let r=t[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):r.nodeType===1&&_t(r)}return e};function ye(e){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");let t=`<body>${e}</body>`,n=new window.DOMParser().parseFromString(t,"text/html").body;return _t(n)}function ue(e,t,n){if(e instanceof vr||e instanceof Et)return e;n={slice:!0,parseOptions:{},...n};let r=typeof e=="object"&&e!==null,s=typeof e=="string";if(r)try{if(Array.isArray(e)&&e.length>0)return Et.fromArray(e.map(l=>t.nodeFromJSON(l)));let i=t.nodeFromJSON(e);return n.errorOnInvalidContent&&i.check(),i}catch(o){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:o});return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",o),ue("",t,n)}if(s){if(n.errorOnInvalidContent){let i=!1,l="",a=new yr({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:c=>(i=!0,l=typeof c=="string"?c:c.outerHTML,null)}]}})});if(n.slice?ze.fromSchema(a).parseSlice(ye(e),n.parseOptions):ze.fromSchema(a).parse(ye(e),n.parseOptions),n.errorOnInvalidContent&&i)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${l}`)})}let o=ze.fromSchema(t);return n.slice?o.parseSlice(ye(e),n.parseOptions).content:o.parse(ye(e),n.parseOptions)}return ue("",t,n)}function kr(e,t,n){let r=e.steps.length-1;if(r<t)return;let s=e.steps[r];if(!(s instanceof wr||s instanceof br))return;let o=e.mapping.maps[r],i=0;o.forEach((l,a,c,m)=>{i===0&&(i=m)}),e.setSelection(xr.near(e.doc.resolve(i),n))}var Mr=e=>!("type"in e),Sr=(e,t,n)=>({tr:r,dispatch:s,editor:o})=>{var i;if(s){n={parseOptions:o.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let l,a=g=>{o.emit("contentError",{editor:o,error:g,disableCollaboration:()=>{"collaboration"in o.storage&&typeof o.storage.collaboration=="object"&&o.storage.collaboration&&(o.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!o.options.enableContentCheck&&o.options.emitContentError)try{ue(t,o.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(g){a(g)}try{l=ue(t,o.schema,{parseOptions:c,errorOnInvalidContent:(i=n.errorOnInvalidContent)!=null?i:o.options.enableContentCheck})}catch(g){return a(g),!1}let{from:m,to:d}=typeof e=="number"?{from:e,to:e}:{from:e.from,to:e.to},p=!0,u=!0;if((Mr(l)?l:[l]).forEach(g=>{g.check(),p=p?g.isText&&g.marks.length===0:!1,u=u?g.isBlock:!1}),m===d&&u){let{parent:g}=r.doc.resolve(m);g.isTextblock&&!g.type.spec.code&&!g.childCount&&(m-=1,d+=1)}let f;if(p){if(Array.isArray(t))f=t.map(g=>g.text||"").join("");else if(t instanceof gr){let g="";t.forEach(v=>{v.text&&(g+=v.text)}),f=g}else typeof t=="object"&&t&&t.text?f=t.text:f=t;r.insertText(f,m,d)}else{f=l;let g=r.doc.resolve(m),v=g.node(),y=g.parentOffset===0,k=v.isText||v.isTextblock,E=v.content.size>0;y&&k&&E&&u&&(m=Math.max(0,m-1)),r.replaceWith(m,d,f)}n.updateSelection&&kr(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:m,text:f}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:m,text:f})}return!0},Ar=()=>({state:e,dispatch:t})=>Ir(e,t),Pr=()=>({state:e,dispatch:t})=>Er(e,t),Nr=()=>({state:e,dispatch:t})=>Tr(e,t),Lr=()=>({state:e,dispatch:t})=>Cr(e,t),zr=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Dr(e.doc,e.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Br=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Or(e.doc,e.selection.$from.pos,1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Hr=()=>({state:e,dispatch:t})=>$r(e,t),jr=()=>({state:e,dispatch:t})=>_r(e,t);function jt(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function Ur(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n==="Space"&&(n=" ");let r,s,o,i;for(let l=0;l<t.length-1;l+=1){let a=t[l];if(/^(cmd|meta|m)$/i.test(a))i=!0;else if(/^a(lt)?$/i.test(a))r=!0;else if(/^(c|ctrl|control)$/i.test(a))s=!0;else if(/^s(hift)?$/i.test(a))o=!0;else if(/^mod$/i.test(a))Se()||jt()?i=!0:s=!0;else throw new Error(`Unrecognized modifier name: ${a}`)}return r&&(n=`Alt-${n}`),s&&(n=`Ctrl-${n}`),i&&(n=`Meta-${n}`),o&&(n=`Shift-${n}`),n}var Rr=e=>({editor:t,view:n,tr:r,dispatch:s})=>{let o=Ur(e).split(/-(?!$)/),i=o.find(c=>!["Alt","Ctrl","Meta","Shift"].includes(c)),l=new KeyboardEvent("keydown",{key:i==="Space"?" ":i,altKey:o.includes("Alt"),ctrlKey:o.includes("Ctrl"),metaKey:o.includes("Meta"),shiftKey:o.includes("Shift"),bubbles:!0,cancelable:!0}),a=t.captureTransaction(()=>{n.someProp("handleKeyDown",c=>c(n,l))});return a?.steps.forEach(c=>{let m=c.map(r.mapping);m&&s&&r.maybeStep(m)}),!0};function We(e,t,n={}){let{from:r,to:s,empty:o}=e.selection,i=t?_(t,e.schema):null,l=[];e.doc.nodesBetween(r,s,(d,p)=>{if(d.isText)return;let u=Math.max(r,p),h=Math.min(s,p+d.nodeSize);l.push({node:d,from:u,to:h})});let a=s-r,c=l.filter(d=>i?i.name===d.node.type.name:!0).filter(d=>Me(d.node.attrs,n,{strict:!1}));return o?!!c.length:c.reduce((d,p)=>d+p.to-p.from,0)>=a}var Vr=(e,t={})=>({state:n,dispatch:r})=>{let s=_(e,n.schema);return We(n,s,t)?Fr(n,r):!1},Kr=()=>({state:e,dispatch:t})=>Wr(e,t),qr=e=>({state:t,dispatch:n})=>{let r=_(e,t.schema);return Jr(r)(t,n)},Yr=()=>({state:e,dispatch:t})=>Xr(e,t);function Ut(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function Ct(e,t){let n=typeof t=="string"?[t]:t;return Object.keys(e).reduce((r,s)=>(n.includes(s)||(r[s]=e[s]),r),{})}var Gr=(e,t)=>({tr:n,state:r,dispatch:s})=>{let o=null,i=null,l=Ut(typeof e=="string"?e:e.name,r.schema);if(!l)return!1;l==="node"&&(o=_(e,r.schema)),l==="mark"&&(i=q(e,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{r.doc.nodesBetween(c.$from.pos,c.$to.pos,(m,d)=>{o&&o===m.type&&(a=!0,s&&n.setNodeMarkup(d,void 0,Ct(m.attrs,t))),i&&m.marks.length&&m.marks.forEach(p=>{i===p.type&&(a=!0,s&&n.addMark(d,d+m.nodeSize,i.create(Ct(p.attrs,t))))})})}),a},Qr=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),eo=()=>({tr:e,dispatch:t})=>{if(t){let n=new Zr(e.doc);e.setSelection(n)}return!0},no=()=>({state:e,dispatch:t})=>to(e,t),oo=()=>({state:e,dispatch:t})=>ro(e,t),io=()=>({state:e,dispatch:t})=>so(e,t),co=()=>({state:e,dispatch:t})=>ao(e,t),uo=()=>({state:e,dispatch:t})=>lo(e,t);function mo(e,t,n={},r={}){return ue(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var po=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:s,tr:o,dispatch:i,commands:l})=>{let{doc:a}=o;if(r.preserveWhitespace!=="full"){let c=mo(e,s.schema,r,{errorOnInvalidContent:t??s.options.enableContentCheck});return i&&o.replaceWith(0,a.content.size,c).setMeta("preventUpdate",!n),!0}return i&&o.setMeta("preventUpdate",!n),l.insertContentAt({from:0,to:a.content.size},e,{parseOptions:r,errorOnInvalidContent:t??s.options.enableContentCheck})};function fo(e,t){let n=q(t,e.schema),{from:r,to:s,empty:o}=e.selection,i=[];o?(e.storedMarks&&i.push(...e.storedMarks),i.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,s,a=>{i.push(...a.marks)});let l=i.find(a=>a.type.name===n.name);return l?{...l.attrs}:{}}function go(e,t){let n=new ho(e);return t.forEach(r=>{r.steps.forEach(s=>{n.step(s)})}),n}function vo(e){for(let t=0;t<e.edgeCount;t+=1){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}function yo(e,t){for(let n=e.depth;n>0;n-=1){let r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function Ke(e){return t=>yo(t.$from,e)}function x(e,t,n){return e.config[t]===void 0&&e.parent?x(e.parent,t,n):typeof e.config[t]=="function"?e.config[t].bind({...n,parent:e.parent?x(e.parent,t,n):null}):e.config[t]}function Je(e){return e.map(t=>{let n={name:t.name,options:t.options,storage:t.storage},r=x(t,"addExtensions",n);return r?[t,...Je(r())]:t}).flat(10)}function Rt(e,t){let n=xo.fromSchema(t).serializeFragment(e),s=document.implementation.createHTMLDocument().createElement("div");return s.appendChild(n),s.innerHTML}function wo(e){return typeof e=="function"}function O(e,t=void 0,...n){return wo(e)?t?e.bind(t)(...n):e(...n):e}function ko(e={}){return Object.keys(e).length===0&&e.constructor===Object}function re(e){let t=e.filter(s=>s.type==="extension"),n=e.filter(s=>s.type==="node"),r=e.filter(s=>s.type==="mark");return{baseExtensions:t,nodeExtensions:n,markExtensions:r}}function Ft(e){let t=[],{nodeExtensions:n,markExtensions:r}=re(e),s=[...n,...r],o={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},i=n.filter(c=>c.name!=="text").map(c=>c.name),l=r.map(c=>c.name),a=[...i,...l];return e.forEach(c=>{let m={name:c.name,options:c.options,storage:c.storage,extensions:s},d=x(c,"addGlobalAttributes",m);if(!d)return;d().forEach(u=>{let h;Array.isArray(u.types)?h=u.types:u.types==="*"?h=a:u.types==="nodes"?h=i:u.types==="marks"?h=l:h=[],h.forEach(f=>{Object.entries(u.attributes).forEach(([g,v])=>{t.push({type:f,name:g,attribute:{...o,...v}})})})})}),s.forEach(c=>{let m={name:c.name,options:c.options,storage:c.storage},d=x(c,"addAttributes",m);if(!d)return;let p=d();Object.entries(p).forEach(([u,h])=>{let f={...o,...h};typeof f?.default=="function"&&(f.default=f.default()),f?.isRequired&&f?.default===void 0&&delete f.default,t.push({type:c.name,name:u,attribute:f})})}),t}function Mo(e){let t=[],n="",r=!1,s=!1,o=0,i=e.length;for(let l=0;l<i;l+=1){let a=e[l];if(a==="'"&&!s){r=!r,n+=a;continue}if(a==='"'&&!r){s=!s,n+=a;continue}if(!r&&!s){if(a==="("){o+=1,n+=a;continue}if(a===")"&&o>0){o-=1,n+=a;continue}if(a===";"&&o===0){t.push(n),n="";continue}}n+=a}return n&&t.push(n),t}function It(e){let t=[],n=Mo(e||""),r=n.length;for(let s=0;s<r;s+=1){let o=n[s],i=o.indexOf(":");if(i===-1)continue;let l=o.slice(0,i).trim(),a=o.slice(i+1).trim();l&&a&&t.push([l,a])}return t}function me(...e){return e.filter(t=>!!t).reduce((t,n)=>{let r={...t};return Object.entries(n).forEach(([s,o])=>{if(!r[s]){r[s]=o;return}if(s==="class"){let l=o?String(o).split(" "):[],a=r[s]?r[s].split(" "):[],c=l.filter(m=>!a.includes(m));r[s]=[...a,...c].join(" ")}else if(s==="style"){let l=new Map([...It(r[s]),...It(o)]);r[s]=Array.from(l.entries()).map(([a,c])=>`${a}: ${c}`).join("; ")}else r[s]=o}),r},{})}function Te(e,t){return t.filter(n=>n.type===e.type.name).filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(e.attrs)||{}:{[n.name]:e.attrs[n.name]}).reduce((n,r)=>me(n,r),{})}function So(e){return typeof e!="string"?e:e.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(e):e==="true"?!0:e==="false"?!1:e}function At(e,t){return"style"in e?e:{...e,getAttrs:n=>{let r=e.getAttrs?e.getAttrs(n):e.attrs;if(r===!1)return!1;let s=t.reduce((o,i)=>{let l=i.attribute.parseHTML?i.attribute.parseHTML(n):So(n.getAttribute(i.name));return l==null?o:{...o,[i.name]:l}},{});return{...r,...s}}}}function Pt(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>t==="attrs"&&ko(n)?!1:n!=null))}function Nt(e){var t,n;let r={};return!((t=e?.attribute)!=null&&t.isRequired)&&"default"in(e?.attribute||{})&&(r.default=e.attribute.default),((n=e?.attribute)==null?void 0:n.validate)!==void 0&&(r.validate=e.attribute.validate),[e.name,r]}function To(e,t){var n;let r=Ft(e),{nodeExtensions:s,markExtensions:o}=re(e),i=(n=s.find(c=>x(c,"topNode")))==null?void 0:n.name,l=Object.fromEntries(s.map(c=>{let m=r.filter(v=>v.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:t},p=e.reduce((v,y)=>{let k=x(y,"extendNodeSchema",d);return{...v,...k?k(c):{}}},{}),u=Pt({...p,content:O(x(c,"content",d)),marks:O(x(c,"marks",d)),group:O(x(c,"group",d)),inline:O(x(c,"inline",d)),atom:O(x(c,"atom",d)),selectable:O(x(c,"selectable",d)),draggable:O(x(c,"draggable",d)),code:O(x(c,"code",d)),whitespace:O(x(c,"whitespace",d)),linebreakReplacement:O(x(c,"linebreakReplacement",d)),defining:O(x(c,"defining",d)),isolating:O(x(c,"isolating",d)),attrs:Object.fromEntries(m.map(Nt))}),h=O(x(c,"parseHTML",d));h&&(u.parseDOM=h.map(v=>At(v,m)));let f=x(c,"renderHTML",d);f&&(u.toDOM=v=>f({node:v,HTMLAttributes:Te(v,m)}));let g=x(c,"renderText",d);return g&&(u.toText=g),[c.name,u]})),a=Object.fromEntries(o.map(c=>{let m=r.filter(g=>g.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:t},p=e.reduce((g,v)=>{let y=x(v,"extendMarkSchema",d);return{...g,...y?y(c):{}}},{}),u=Pt({...p,inclusive:O(x(c,"inclusive",d)),excludes:O(x(c,"excludes",d)),group:O(x(c,"group",d)),spanning:O(x(c,"spanning",d)),code:O(x(c,"code",d)),attrs:Object.fromEntries(m.map(Nt))}),h=O(x(c,"parseHTML",d));h&&(u.parseDOM=h.map(g=>At(g,m)));let f=x(c,"renderHTML",d);return f&&(u.toDOM=g=>f({mark:g,HTMLAttributes:Te(g,m)})),[c.name,u]}));return new bo({topNode:i,nodes:l,marks:a})}function Eo(e){let t=e.filter((n,r)=>e.indexOf(n)!==r);return Array.from(new Set(t))}function de(e){return e.sort((n,r)=>{let s=x(n,"priority")||100,o=x(r,"priority")||100;return s>o?-1:s<o?1:0})}function Vt(e){let t=de(Je(e)),n=Eo(t.map(r=>r.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(r=>`'${r}'`).join(", ")}]. This can lead to issues.`),t}function Co(e,t,n){let{from:r,to:s}=t,{blockSeparator:o=`
1
+ import"@mantine/core/styles.css";import"@mantine/tiptap/styles.css";import"@mantine/notifications/styles.css";import G,{useEffect as Yi,useLayoutEffect as Gi}from"react";import{MantineProvider as Qi}from"@mantine/core";import{Notifications as Zi}from"@mantine/notifications";import{createTheme as Sn}from"@mantine/core";var Tn=["#e6f9ff","#b3ecff","#80dfff","#4dd2ff","#1ac5ff","#00b8e6","#0091b3","#006a80","#00434d","#001c1a"],En=["#e6f9f2","#c0f0de","#88e4c3","#4dd6a4","#26cb90","#00bf7d","#00a36c","#008d5d","#00764d","#005f3e"],Cn=["#ffe6e9","#fbbdc4","#f38b98","#ea576b","#e12c48","#d80a2d","#b30625","#8f041d","#6b0215","#47010e"],In=["#fff1e6","#ffd7b3","#ffb380","#ff8f4d","#ff6b1a","#e65c00","#b34700","#803300","#4d1f00","#1a0a00"],An=["#e6f9ff","#b3ecff","#80dfff","#4dd2ff","#1ac5ff","#00b8e6","#0091b3","#006a80","#00434d","#001c1a"],at={customBrand:Tn,emerald:En,ruby:Cn,sunset:In,ocean:An},ct=e=>/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.test(e),Pn=e=>{let t=e.replace("#",""),n=t.length===3?t.split("").map(r=>r+r).join(""):t;return{r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16)}},Nn=({r:e,g:t,b:n})=>`#${[e,t,n].map(r=>r.toString(16).padStart(2,"0")).join("")}`,Pe=e=>Math.min(255,Math.max(0,Math.round(e))),Ln=e=>{let{r:t,g:n,b:r}=Pn(e);return[.08,.18,.3,.42,.54,.66,.76,.86,.92,.98].map(i=>Nn({r:Pe(t*i+255*(1-i)),g:Pe(n*i+255*(1-i)),b:Pe(r*i+255*(1-i))}))},lt=e=>{let t={...at},n=ct(e)||!(e in at)?"customBrand":e;return ct(e)&&(t.customBrand=Ln(e)),Sn({primaryColor:n,colors:t})};import Hn from"react";import{Provider as _n}from"react-redux";import{configureStore as $n}from"@reduxjs/toolkit";import{createSlice as zn}from"@reduxjs/toolkit";var Q={BASE_URL:"",SOCKET_URL:""},dt="",ut=({baseUrl:e,socketUrl:t,apiKey:n})=>{e&&(Q.BASE_URL=e),t&&(Q.SOCKET_URL=t),dt=n||""};var Z=()=>dt;import Dn from"axios";var mt=Dn.create({headers:{"Content-Type":"application/json",Authorization:Z(),"Cache-Control":"no-cache",Pragma:"no-cache"}});mt.interceptors.request.use(e=>(Q.BASE_URL?.trim()&&(e.baseURL=Q.BASE_URL),e.headers?.set?.("Authorization",Z()),e.headers?.set?.("Cache-Control","no-cache"),e.headers?.set?.("Pragma","no-cache"),e.headers?.set?.("Expires","0"),e));var ge=mt;import{notifications as ve}from"@mantine/notifications";var On={messagedUserList:null,messageList:[]},pt=zn({name:"messages",initialState:On,reducers:{setMessagedUserList:(e,t)=>{let n=t.payload;if(n===null){e.messagedUserList=null;return}let r=n?.page??0;if(!e.messagedUserList||r===0){e.messagedUserList=n;return}let s=e.messagedUserList?.rows?.data??[],o=n?.rows?.data??[],i=[...s,...o],l=new Map;i.forEach(c=>{c?.chatId&&l.set(c.chatId,c)});let a=Array.from(l.values());e.messagedUserList={...n,rows:{...n.rows,data:a}}},setMessageList:(e,t)=>{let n=t.payload;if(n===null){e.messageList=[];return}let r=n?.page??0;if(!e.messageList?.rows?.data||r===0){e.messageList=n;return}e.messageList={...n,rows:{...n.rows,data:[...n.rows.data,...e.messageList.rows.data]}}},addNewMessage:(e,t)=>{e.messageList?.rows?.data&&e.messageList.rows.data.push(t.payload)},addUserToChatList:(e,t)=>{let n=t.payload;if(!e.messagedUserList){e.messagedUserList={hasMore:!1,rows:{success:!0,status:!0,message:"",data:[n]}};return}let r=e.messagedUserList.rows.data;e.messagedUserList.rows.data=r=r.filter(o=>o?.chatId);let s=r.findIndex(o=>o.chatId===n.chatId);if(s!==-1){let i={...r.splice(s,1)[0],...n};r.unshift(i)}else r.unshift(n)},resetMessageList:e=>{e.messageList=[]},updateUnreadCount:(e,t)=>{let{chatId:n,isActive:r}=t.payload,s=e.messagedUserList?.rows?.data;if(!s)return;let o=s.find(i=>i.chatId===n);o&&(r?o.unreadCount=0:o.unreadCount=(o.unreadCount||0)+1)},resetUnreadCount:(e,t)=>{let n=t.payload,r=e.messagedUserList?.rows?.data;if(!r)return;let s=r.find(o=>o.chatId===n);s&&(s.unreadCount=0)}}}),Ne=e=>async t=>ge.get(`/api/messages/userList/${e?.userId}?page=${e?.page||0}`).then(n=>(console.log("Fetched messages for userId:",n.data),t(ie({...n.data,page:e?.page||0})),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to fetch messages";return ve.show({title:"Message Fetch Failed",message:r,color:"red"}),n}),Le=e=>async t=>ge.get(`/api/messages/${e?.chatId}?page=${e?.page||0}&userId=${e?.userId}`).then(n=>(t(Bn({...n.data,page:e?.page||0})),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to fetch messages";return ve.show({title:"Message Fetch Failed",message:r,color:"red"}),n});var ft=e=>async t=>ge.delete("/api/messages",{data:{chatId:e?.chatId,userId:e?.userId}}).then(n=>(t(ce()),ve.show({title:"Messages Deleted",message:"All messages in this chat have been deleted.",color:"green"}),n.data)).catch(n=>{let r=n?.response?.data?.message||"Failed to delete messages";return ve.show({title:"Message Deletion Failed",message:r,color:"red"}),n}),ht=()=>async e=>{e(ie(null)),e(ce())},{setMessagedUserList:ie,setMessageList:Bn,addNewMessage:De,addUserToChatList:ae,resetMessageList:ce,updateUnreadCount:da,resetUnreadCount:ua}=pt.actions,gt=pt.reducer;var vt=$n({reducer:{chat:gt}});function yt({children:e}){return Hn.createElement(_n,{store:vt},e)}import bt,{useEffect as Un}from"react";import{io as jn}from"socket.io-client";var ne=null,xt,K=e=>e?((!ne||xt!==e)&&(ne&&(ne.disconnect(),ne=null),ne=jn(Q.SOCKET_URL,{autoConnect:!1,transports:["websocket"],auth:{apiKey:Z(),userId:e}}),xt=e),ne):null;function wt({children:e,userId:t}){return Un(()=>{if(!t)return;let n=K(t);if(n)return n.connected||(n.connect(),console.log("\u2705 Socket connected for:",t)),()=>{n.connected&&(n.disconnect(),console.log("Socket disconnected for:",t))}},[t]),bt.createElement(bt.Fragment,null,e)}import{Text as se,Modal as Hi,Button as _i,ActionIcon as ji,Autocomplete as Ui,Group as Ri,Avatar as it,Loader as fn}from"@mantine/core";import{IconPlus as Fi}from"@tabler/icons-react";import{useDisclosure as Wi}from"@mantine/hooks";import{Text as cn,Avatar as ln,ActionIcon as Pi}from"@mantine/core";import{IconArrowLeft as Ni,IconLock as Li}from"@tabler/icons-react";import T,{useState as Ce}from"react";import{IconSend as nn,IconAlignLeft as rn,IconAlignCenter as gi,IconAlignRight as vi,IconMoodPlus as yi,IconTextColor as xi}from"@tabler/icons-react";import bi from"@tiptap/extension-highlight";import wi from"@tiptap/extension-subscript";import ki from"@tiptap/extension-superscript";import Mi from"@tiptap/extension-text-align";import{liftTarget as Vn}from"@tiptap/pm/transform";import{createParagraphNear as qn}from"@tiptap/pm/commands";import{TextSelection as Yn}from"@tiptap/pm/state";import{exitCode as sr}from"@tiptap/pm/commands";import{TextSelection as ar}from"@tiptap/pm/state";import{TextSelection as dr}from"@tiptap/pm/state";import{Selection as St,TextSelection as Tt}from"@tiptap/pm/state";import{Fragment as gr}from"@tiptap/pm/model";import{DOMParser as ze,Fragment as Ct,Node as vr,Schema as yr}from"@tiptap/pm/model";import{Selection as xr}from"@tiptap/pm/state";import{ReplaceAroundStep as br,ReplaceStep as wr}from"@tiptap/pm/transform";import{joinBackward as Tr,joinDown as Er,joinForward as Cr,joinUp as Ir}from"@tiptap/pm/commands";import{joinPoint as Dr}from"@tiptap/pm/transform";import{joinPoint as Or}from"@tiptap/pm/transform";import{joinTextblockBackward as $r}from"@tiptap/pm/commands";import{joinTextblockForward as _r}from"@tiptap/pm/commands";import{lift as Fr}from"@tiptap/pm/commands";import{liftEmptyBlock as Vr}from"@tiptap/pm/commands";import{liftListItem as Jr}from"@tiptap/pm/schema-list";import{newlineInCode as Xr}from"@tiptap/pm/commands";import{AllSelection as Zr}from"@tiptap/pm/state";import{selectNodeBackward as to}from"@tiptap/pm/commands";import{selectNodeForward as ro}from"@tiptap/pm/commands";import{selectParentNode as so}from"@tiptap/pm/commands";import{selectTextblockEnd as ao}from"@tiptap/pm/commands";import{selectTextblockStart as lo}from"@tiptap/pm/commands";import{Transform as ho}from"@tiptap/pm/transform";import{Node as tc}from"@tiptap/pm/model";import{DOMSerializer as xo}from"@tiptap/pm/model";import{Schema as bo}from"@tiptap/pm/model";import{DOMParser as sc}from"@tiptap/pm/model";import{Node as ac}from"@tiptap/pm/model";import{NodeSelection as lc}from"@tiptap/pm/state";import{setBlockType as zt}from"@tiptap/pm/commands";import{NodeSelection as Ho}from"@tiptap/pm/state";import{TextSelection as Be}from"@tiptap/pm/state";import{sinkListItem as Ro}from"@tiptap/pm/schema-list";import{NodeSelection as Wo,TextSelection as Vo}from"@tiptap/pm/state";import{canSplit as $e}from"@tiptap/pm/transform";import{Fragment as He,Slice as Jo}from"@tiptap/pm/model";import{TextSelection as qo}from"@tiptap/pm/state";import{canSplit as Xo}from"@tiptap/pm/transform";import{TextSelection as Go}from"@tiptap/pm/state";import{canJoin as Jt}from"@tiptap/pm/transform";import{wrapIn as cs}from"@tiptap/pm/commands";import{wrapInList as ds}from"@tiptap/pm/schema-list";import{EditorState as Sc}from"@tiptap/pm/state";import{EditorView as Ec}from"@tiptap/pm/view";import{keymap as ms}from"@tiptap/pm/keymap";import{Fragment as ps}from"@tiptap/pm/model";import{Plugin as fs}from"@tiptap/pm/state";import{Fragment as ys}from"@tiptap/pm/model";import{Plugin as xs}from"@tiptap/pm/state";import{Plugin as Es,PluginKey as Cs}from"@tiptap/pm/state";import{RemoveMarkStep as Ps}from"@tiptap/pm/transform";import{Plugin as Ls,PluginKey as Ds}from"@tiptap/pm/state";import{Plugin as Os,PluginKey as Bs}from"@tiptap/pm/state";import{Plugin as Hs,PluginKey as _s}from"@tiptap/pm/state";import{Plugin as Us,PluginKey as Rs,Selection as Ue}from"@tiptap/pm/state";import{Plugin as Ws,PluginKey as Vs}from"@tiptap/pm/state";import{Plugin as Js,PluginKey as qs}from"@tiptap/pm/state";import{Plugin as Ys,PluginKey as Gs}from"@tiptap/pm/state";import{canJoin as Rc,findWrapping as Fc}from"@tiptap/pm/transform";import{NodeSelection as Vc}from"@tiptap/pm/state";import{NodeSelection as Jc}from"@tiptap/pm/state";var Rn=Object.defineProperty,Re=(e,t)=>{for(var n in t)Rn(e,n,{get:t[n],enumerable:!0})};function Ee(e){let{state:t,transaction:n}=e,{selection:r}=n,{doc:s}=n,{storedMarks:o}=n;return{...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return o},get selection(){return r},get doc(){return s},get tr(){return r=n.selection,s=n.doc,o=n.storedMarks,n}}}var Fe=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:t,state:n}=this,{view:r}=t,{tr:s}=n,o=this.buildProps(s);return Object.fromEntries(Object.entries(e).map(([i,l])=>[i,(...c)=>{let m=l(...c)(o);return!s.getMeta("preventDispatch")&&!this.hasCustomState&&r.dispatch(s),m}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:n,editor:r,state:s}=this,{view:o}=r,i=[],l=!!e,a=e||s.tr,c=()=>(!l&&t&&!a.getMeta("preventDispatch")&&!this.hasCustomState&&o.dispatch(a),i.every(d=>d===!0)),m={...Object.fromEntries(Object.entries(n).map(([d,p])=>[d,(...h)=>{let f=this.buildProps(a,t),g=p(...h)(f);return i.push(g),m}])),run:c};return m}createCan(e){let{rawCommands:t,state:n}=this,r=!1,s=e||n.tr,o=this.buildProps(s,r);return{...Object.fromEntries(Object.entries(t).map(([l,a])=>[l,(...c)=>a(...c)({...o,dispatch:void 0})])),chain:()=>this.createChain(s,r)}}buildProps(e,t=!0){let{rawCommands:n,editor:r,state:s}=this,{view:o}=r,i={tr:e,editor:r,view:o,state:Ee({state:s,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map(([l,a])=>[l,(...c)=>a(...c)(i)]))}};return i}},Bt={};Re(Bt,{blur:()=>Fn,clearContent:()=>Wn,clearNodes:()=>Kn,command:()=>Jn,createParagraphNear:()=>Xn,cut:()=>Gn,deleteCurrentNode:()=>Qn,deleteNode:()=>Zn,deleteRange:()=>er,deleteSelection:()=>rr,enter:()=>or,exitCode:()=>ir,extendMarkRange:()=>cr,first:()=>lr,focus:()=>pr,forEach:()=>fr,insertContent:()=>hr,insertContentAt:()=>Sr,joinBackward:()=>Nr,joinDown:()=>Pr,joinForward:()=>Lr,joinItemBackward:()=>zr,joinItemForward:()=>Br,joinTextblockBackward:()=>Hr,joinTextblockForward:()=>jr,joinUp:()=>Ar,keyboardShortcut:()=>Rr,lift:()=>Wr,liftEmptyBlock:()=>Kr,liftListItem:()=>qr,newlineInCode:()=>Yr,resetAttributes:()=>Gr,scrollIntoView:()=>Qr,selectAll:()=>eo,selectNodeBackward:()=>no,selectNodeForward:()=>oo,selectParentNode:()=>io,selectTextblockEnd:()=>co,selectTextblockStart:()=>uo,setContent:()=>po,setMark:()=>Oo,setMeta:()=>Bo,setNode:()=>$o,setNodeSelection:()=>_o,setTextDirection:()=>jo,setTextSelection:()=>Uo,sinkListItem:()=>Fo,splitBlock:()=>Ko,splitListItem:()=>Yo,toggleList:()=>Zo,toggleMark:()=>es,toggleNode:()=>ts,toggleWrap:()=>ns,undoInputRule:()=>rs,unsetAllMarks:()=>os,unsetMark:()=>ss,unsetTextDirection:()=>is,updateAttributes:()=>as,wrapIn:()=>ls,wrapInList:()=>us});var Fn=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var n;e.isDestroyed||(t.dom.blur(),(n=window?.getSelection())==null||n.removeAllRanges())}),!0),Wn=(e=!0)=>({commands:t})=>t.setContent("",{emitUpdate:e}),Kn=()=>({state:e,tr:t,dispatch:n})=>{let{selection:r}=t,{ranges:s}=r;return n&&s.forEach(({$from:o,$to:i})=>{e.doc.nodesBetween(o.pos,i.pos,(l,a)=>{if(l.type.isText)return;let{doc:c,mapping:m}=t,d=c.resolve(m.map(a)),p=c.resolve(m.map(a+l.nodeSize)),u=d.blockRange(p);if(!u)return;let h=Vn(u);if(l.type.isTextblock){let{defaultType:f}=d.parent.contentMatchAt(d.index());t.setNodeMarkup(u.start,f)}(h||h===0)&&t.lift(u,h)})}),!0},Jn=e=>t=>e(t),Xn=()=>({state:e,dispatch:t})=>qn(e,t),Gn=(e,t)=>({editor:n,tr:r})=>{let{state:s}=n,o=s.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);let i=r.mapping.map(t);return r.insert(i,o.content),r.setSelection(new Yn(r.doc.resolve(Math.max(i-1,0)))),!0},Qn=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;let s=e.selection.$anchor;for(let o=s.depth;o>0;o-=1)if(s.node(o).type===r.type){if(t){let l=s.before(o),a=s.after(o);e.delete(l,a).scrollIntoView()}return!0}return!1};function _(e,t){if(typeof e=="string"){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}var Zn=e=>({tr:t,state:n,dispatch:r})=>{let s=_(e,n.schema),o=t.selection.$anchor;for(let i=o.depth;i>0;i-=1)if(o.node(i).type===s){if(r){let a=o.before(i),c=o.after(i);t.delete(a,c).scrollIntoView()}return!0}return!1},er=e=>({tr:t,dispatch:n})=>{let{from:r,to:s}=e;return n&&t.delete(r,s),!0},tr=e=>e.content?/^text(\*|\+)/.test(e.content):!1,kt=(e,t,n)=>{if(!e.parent.isInline||n==="left"&&e.pos>e.start()||n==="right"&&e.pos<e.end())return e.pos;let r=t.nodes[e.parent.type.name].spec;return tr(r)?n==="left"?e.start()-1:e.end()+1:e.pos},nr=(e,t,n)=>{let r=kt(e,n,"left"),s=kt(t,n,"right");return{from:r,to:s}},rr=()=>({state:e,dispatch:t})=>{let{$from:n,$to:r}=e.selection;if(e.selection.empty)return!1;let{from:s,to:o}=nr(n,r,e.schema);return t&&(e.tr.deleteRange(s,o).scrollIntoView(),t(e.tr)),!0},or=()=>({commands:e})=>e.keyboardShortcut("Enter"),ir=()=>({state:e,dispatch:t})=>sr(e,t);function We(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Me(e,t,n={strict:!0}){let r=Object.keys(t);return r.length?r.every(s=>n.strict?t[s]===e[s]:We(t[s])?t[s].test(e[s]):t[s]===e[s]):!0}function $t(e,t,n={}){return e.find(r=>r.type===t&&Me(Object.fromEntries(Object.keys(n).map(s=>[s,r.attrs[s]])),n))}function Mt(e,t,n={}){return!!$t(e,t,n)}function Ht(e,t,n){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if((!r.node||!r.node.marks.some(c=>c.type===t))&&(r=e.parent.childBefore(e.parentOffset)),!r.node||!r.node.marks.some(c=>c.type===t))return;if(!n){let c=r.node.marks.find(m=>m.type===t);c&&(n=c.attrs)}if(!$t([...r.node.marks],t,n))return;let o=r.index,i=e.start()+r.offset,l=o+1,a=i+r.node.nodeSize;for(;o>0&&Mt([...e.parent.child(o-1).marks],t,n);)o-=1,i-=e.parent.child(o).nodeSize;for(;l<e.parent.childCount&&Mt([...e.parent.child(l).marks],t,n);)a+=e.parent.child(l).nodeSize,l+=1;return{from:i,to:a}}function q(e,t){if(typeof e=="string"){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}var cr=(e,t)=>({tr:n,state:r,dispatch:s})=>{let o=q(e,r.schema),{doc:i,selection:l}=n,{$from:a,from:c,to:m}=l;if(s){let d=Ht(a,o,t);if(d&&d.from<=c&&d.to>=m){let p=ar.create(i,d.from,d.to);n.setSelection(p)}}return!0},lr=e=>t=>{let n=typeof e=="function"?e(t):e;for(let r=0;r<n.length;r+=1)if(n[r](t))return!0;return!1};function _t(e){return e instanceof dr}function ee(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function ur(e,t=null){if(!t)return null;let n=St.atStart(e),r=St.atEnd(e);if(t==="start"||t===!0)return n;if(t==="end")return r;let s=n.from,o=r.to;return t==="all"?Tt.create(e,ee(0,s,o),ee(e.content.size,s,o)):Tt.create(e,ee(t,s,o),ee(t,s,o))}function Et(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}function Se(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}function mr(){return typeof navigator<"u"?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1}var pr=(e=null,t={})=>({editor:n,view:r,tr:s,dispatch:o})=>{t={scrollIntoView:!0,...t};let i=()=>{(Se()||Et())&&r.dom.focus(),mr()&&!Se()&&!Et()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t?.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&e===null||e===!1)return!0}catch{return!1}if(o&&e===null&&!_t(n.state.selection))return i(),!0;let l=ur(s.doc,e)||n.state.selection,a=n.state.selection.eq(l);return o&&(a||s.setSelection(l),a&&s.storedMarks&&s.setStoredMarks(s.storedMarks),i()),!0},fr=(e,t)=>n=>e.every((r,s)=>t(r,{...n,index:s})),hr=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),jt=e=>{let t=e.childNodes;for(let n=t.length-1;n>=0;n-=1){let r=t[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):r.nodeType===1&&jt(r)}return e};function ye(e){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");let t=`<body>${e}</body>`,n=new window.DOMParser().parseFromString(t,"text/html").body;return jt(n)}function ue(e,t,n){if(e instanceof vr||e instanceof Ct)return e;n={slice:!0,parseOptions:{},...n};let r=typeof e=="object"&&e!==null,s=typeof e=="string";if(r)try{if(Array.isArray(e)&&e.length>0)return Ct.fromArray(e.map(l=>t.nodeFromJSON(l)));let i=t.nodeFromJSON(e);return n.errorOnInvalidContent&&i.check(),i}catch(o){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:o});return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",o),ue("",t,n)}if(s){if(n.errorOnInvalidContent){let i=!1,l="",a=new yr({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:c=>(i=!0,l=typeof c=="string"?c:c.outerHTML,null)}]}})});if(n.slice?ze.fromSchema(a).parseSlice(ye(e),n.parseOptions):ze.fromSchema(a).parse(ye(e),n.parseOptions),n.errorOnInvalidContent&&i)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${l}`)})}let o=ze.fromSchema(t);return n.slice?o.parseSlice(ye(e),n.parseOptions).content:o.parse(ye(e),n.parseOptions)}return ue("",t,n)}function kr(e,t,n){let r=e.steps.length-1;if(r<t)return;let s=e.steps[r];if(!(s instanceof wr||s instanceof br))return;let o=e.mapping.maps[r],i=0;o.forEach((l,a,c,m)=>{i===0&&(i=m)}),e.setSelection(xr.near(e.doc.resolve(i),n))}var Mr=e=>!("type"in e),Sr=(e,t,n)=>({tr:r,dispatch:s,editor:o})=>{var i;if(s){n={parseOptions:o.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let l,a=g=>{o.emit("contentError",{editor:o,error:g,disableCollaboration:()=>{"collaboration"in o.storage&&typeof o.storage.collaboration=="object"&&o.storage.collaboration&&(o.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!o.options.enableContentCheck&&o.options.emitContentError)try{ue(t,o.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(g){a(g)}try{l=ue(t,o.schema,{parseOptions:c,errorOnInvalidContent:(i=n.errorOnInvalidContent)!=null?i:o.options.enableContentCheck})}catch(g){return a(g),!1}let{from:m,to:d}=typeof e=="number"?{from:e,to:e}:{from:e.from,to:e.to},p=!0,u=!0;if((Mr(l)?l:[l]).forEach(g=>{g.check(),p=p?g.isText&&g.marks.length===0:!1,u=u?g.isBlock:!1}),m===d&&u){let{parent:g}=r.doc.resolve(m);g.isTextblock&&!g.type.spec.code&&!g.childCount&&(m-=1,d+=1)}let f;if(p){if(Array.isArray(t))f=t.map(g=>g.text||"").join("");else if(t instanceof gr){let g="";t.forEach(v=>{v.text&&(g+=v.text)}),f=g}else typeof t=="object"&&t&&t.text?f=t.text:f=t;r.insertText(f,m,d)}else{f=l;let g=r.doc.resolve(m),v=g.node(),y=g.parentOffset===0,k=v.isText||v.isTextblock,E=v.content.size>0;y&&k&&E&&u&&(m=Math.max(0,m-1)),r.replaceWith(m,d,f)}n.updateSelection&&kr(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:m,text:f}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:m,text:f})}return!0},Ar=()=>({state:e,dispatch:t})=>Ir(e,t),Pr=()=>({state:e,dispatch:t})=>Er(e,t),Nr=()=>({state:e,dispatch:t})=>Tr(e,t),Lr=()=>({state:e,dispatch:t})=>Cr(e,t),zr=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Dr(e.doc,e.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Br=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Or(e.doc,e.selection.$from.pos,1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Hr=()=>({state:e,dispatch:t})=>$r(e,t),jr=()=>({state:e,dispatch:t})=>_r(e,t);function Ut(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function Ur(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n==="Space"&&(n=" ");let r,s,o,i;for(let l=0;l<t.length-1;l+=1){let a=t[l];if(/^(cmd|meta|m)$/i.test(a))i=!0;else if(/^a(lt)?$/i.test(a))r=!0;else if(/^(c|ctrl|control)$/i.test(a))s=!0;else if(/^s(hift)?$/i.test(a))o=!0;else if(/^mod$/i.test(a))Se()||Ut()?i=!0:s=!0;else throw new Error(`Unrecognized modifier name: ${a}`)}return r&&(n=`Alt-${n}`),s&&(n=`Ctrl-${n}`),i&&(n=`Meta-${n}`),o&&(n=`Shift-${n}`),n}var Rr=e=>({editor:t,view:n,tr:r,dispatch:s})=>{let o=Ur(e).split(/-(?!$)/),i=o.find(c=>!["Alt","Ctrl","Meta","Shift"].includes(c)),l=new KeyboardEvent("keydown",{key:i==="Space"?" ":i,altKey:o.includes("Alt"),ctrlKey:o.includes("Ctrl"),metaKey:o.includes("Meta"),shiftKey:o.includes("Shift"),bubbles:!0,cancelable:!0}),a=t.captureTransaction(()=>{n.someProp("handleKeyDown",c=>c(n,l))});return a?.steps.forEach(c=>{let m=c.map(r.mapping);m&&s&&r.maybeStep(m)}),!0};function Ve(e,t,n={}){let{from:r,to:s,empty:o}=e.selection,i=t?_(t,e.schema):null,l=[];e.doc.nodesBetween(r,s,(d,p)=>{if(d.isText)return;let u=Math.max(r,p),h=Math.min(s,p+d.nodeSize);l.push({node:d,from:u,to:h})});let a=s-r,c=l.filter(d=>i?i.name===d.node.type.name:!0).filter(d=>Me(d.node.attrs,n,{strict:!1}));return o?!!c.length:c.reduce((d,p)=>d+p.to-p.from,0)>=a}var Wr=(e,t={})=>({state:n,dispatch:r})=>{let s=_(e,n.schema);return Ve(n,s,t)?Fr(n,r):!1},Kr=()=>({state:e,dispatch:t})=>Vr(e,t),qr=e=>({state:t,dispatch:n})=>{let r=_(e,t.schema);return Jr(r)(t,n)},Yr=()=>({state:e,dispatch:t})=>Xr(e,t);function Rt(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function It(e,t){let n=typeof t=="string"?[t]:t;return Object.keys(e).reduce((r,s)=>(n.includes(s)||(r[s]=e[s]),r),{})}var Gr=(e,t)=>({tr:n,state:r,dispatch:s})=>{let o=null,i=null,l=Rt(typeof e=="string"?e:e.name,r.schema);if(!l)return!1;l==="node"&&(o=_(e,r.schema)),l==="mark"&&(i=q(e,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{r.doc.nodesBetween(c.$from.pos,c.$to.pos,(m,d)=>{o&&o===m.type&&(a=!0,s&&n.setNodeMarkup(d,void 0,It(m.attrs,t))),i&&m.marks.length&&m.marks.forEach(p=>{i===p.type&&(a=!0,s&&n.addMark(d,d+m.nodeSize,i.create(It(p.attrs,t))))})})}),a},Qr=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),eo=()=>({tr:e,dispatch:t})=>{if(t){let n=new Zr(e.doc);e.setSelection(n)}return!0},no=()=>({state:e,dispatch:t})=>to(e,t),oo=()=>({state:e,dispatch:t})=>ro(e,t),io=()=>({state:e,dispatch:t})=>so(e,t),co=()=>({state:e,dispatch:t})=>ao(e,t),uo=()=>({state:e,dispatch:t})=>lo(e,t);function mo(e,t,n={},r={}){return ue(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var po=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:s,tr:o,dispatch:i,commands:l})=>{let{doc:a}=o;if(r.preserveWhitespace!=="full"){let c=mo(e,s.schema,r,{errorOnInvalidContent:t??s.options.enableContentCheck});return i&&o.replaceWith(0,a.content.size,c).setMeta("preventUpdate",!n),!0}return i&&o.setMeta("preventUpdate",!n),l.insertContentAt({from:0,to:a.content.size},e,{parseOptions:r,errorOnInvalidContent:t??s.options.enableContentCheck})};function fo(e,t){let n=q(t,e.schema),{from:r,to:s,empty:o}=e.selection,i=[];o?(e.storedMarks&&i.push(...e.storedMarks),i.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,s,a=>{i.push(...a.marks)});let l=i.find(a=>a.type.name===n.name);return l?{...l.attrs}:{}}function go(e,t){let n=new ho(e);return t.forEach(r=>{r.steps.forEach(s=>{n.step(s)})}),n}function vo(e){for(let t=0;t<e.edgeCount;t+=1){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}function yo(e,t){for(let n=e.depth;n>0;n-=1){let r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function Ke(e){return t=>yo(t.$from,e)}function x(e,t,n){return e.config[t]===void 0&&e.parent?x(e.parent,t,n):typeof e.config[t]=="function"?e.config[t].bind({...n,parent:e.parent?x(e.parent,t,n):null}):e.config[t]}function Je(e){return e.map(t=>{let n={name:t.name,options:t.options,storage:t.storage},r=x(t,"addExtensions",n);return r?[t,...Je(r())]:t}).flat(10)}function Ft(e,t){let n=xo.fromSchema(t).serializeFragment(e),s=document.implementation.createHTMLDocument().createElement("div");return s.appendChild(n),s.innerHTML}function wo(e){return typeof e=="function"}function O(e,t=void 0,...n){return wo(e)?t?e.bind(t)(...n):e(...n):e}function ko(e={}){return Object.keys(e).length===0&&e.constructor===Object}function re(e){let t=e.filter(s=>s.type==="extension"),n=e.filter(s=>s.type==="node"),r=e.filter(s=>s.type==="mark");return{baseExtensions:t,nodeExtensions:n,markExtensions:r}}function Wt(e){let t=[],{nodeExtensions:n,markExtensions:r}=re(e),s=[...n,...r],o={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},i=n.filter(c=>c.name!=="text").map(c=>c.name),l=r.map(c=>c.name),a=[...i,...l];return e.forEach(c=>{let m={name:c.name,options:c.options,storage:c.storage,extensions:s},d=x(c,"addGlobalAttributes",m);if(!d)return;d().forEach(u=>{let h;Array.isArray(u.types)?h=u.types:u.types==="*"?h=a:u.types==="nodes"?h=i:u.types==="marks"?h=l:h=[],h.forEach(f=>{Object.entries(u.attributes).forEach(([g,v])=>{t.push({type:f,name:g,attribute:{...o,...v}})})})})}),s.forEach(c=>{let m={name:c.name,options:c.options,storage:c.storage},d=x(c,"addAttributes",m);if(!d)return;let p=d();Object.entries(p).forEach(([u,h])=>{let f={...o,...h};typeof f?.default=="function"&&(f.default=f.default()),f?.isRequired&&f?.default===void 0&&delete f.default,t.push({type:c.name,name:u,attribute:f})})}),t}function Mo(e){let t=[],n="",r=!1,s=!1,o=0,i=e.length;for(let l=0;l<i;l+=1){let a=e[l];if(a==="'"&&!s){r=!r,n+=a;continue}if(a==='"'&&!r){s=!s,n+=a;continue}if(!r&&!s){if(a==="("){o+=1,n+=a;continue}if(a===")"&&o>0){o-=1,n+=a;continue}if(a===";"&&o===0){t.push(n),n="";continue}}n+=a}return n&&t.push(n),t}function At(e){let t=[],n=Mo(e||""),r=n.length;for(let s=0;s<r;s+=1){let o=n[s],i=o.indexOf(":");if(i===-1)continue;let l=o.slice(0,i).trim(),a=o.slice(i+1).trim();l&&a&&t.push([l,a])}return t}function me(...e){return e.filter(t=>!!t).reduce((t,n)=>{let r={...t};return Object.entries(n).forEach(([s,o])=>{if(!r[s]){r[s]=o;return}if(s==="class"){let l=o?String(o).split(" "):[],a=r[s]?r[s].split(" "):[],c=l.filter(m=>!a.includes(m));r[s]=[...a,...c].join(" ")}else if(s==="style"){let l=new Map([...At(r[s]),...At(o)]);r[s]=Array.from(l.entries()).map(([a,c])=>`${a}: ${c}`).join("; ")}else r[s]=o}),r},{})}function Te(e,t){return t.filter(n=>n.type===e.type.name).filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(e.attrs)||{}:{[n.name]:e.attrs[n.name]}).reduce((n,r)=>me(n,r),{})}function So(e){return typeof e!="string"?e:e.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(e):e==="true"?!0:e==="false"?!1:e}function Pt(e,t){return"style"in e?e:{...e,getAttrs:n=>{let r=e.getAttrs?e.getAttrs(n):e.attrs;if(r===!1)return!1;let s=t.reduce((o,i)=>{let l=i.attribute.parseHTML?i.attribute.parseHTML(n):So(n.getAttribute(i.name));return l==null?o:{...o,[i.name]:l}},{});return{...r,...s}}}}function Nt(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>t==="attrs"&&ko(n)?!1:n!=null))}function Lt(e){var t,n;let r={};return!((t=e?.attribute)!=null&&t.isRequired)&&"default"in(e?.attribute||{})&&(r.default=e.attribute.default),((n=e?.attribute)==null?void 0:n.validate)!==void 0&&(r.validate=e.attribute.validate),[e.name,r]}function To(e,t){var n;let r=Wt(e),{nodeExtensions:s,markExtensions:o}=re(e),i=(n=s.find(c=>x(c,"topNode")))==null?void 0:n.name,l=Object.fromEntries(s.map(c=>{let m=r.filter(v=>v.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:t},p=e.reduce((v,y)=>{let k=x(y,"extendNodeSchema",d);return{...v,...k?k(c):{}}},{}),u=Nt({...p,content:O(x(c,"content",d)),marks:O(x(c,"marks",d)),group:O(x(c,"group",d)),inline:O(x(c,"inline",d)),atom:O(x(c,"atom",d)),selectable:O(x(c,"selectable",d)),draggable:O(x(c,"draggable",d)),code:O(x(c,"code",d)),whitespace:O(x(c,"whitespace",d)),linebreakReplacement:O(x(c,"linebreakReplacement",d)),defining:O(x(c,"defining",d)),isolating:O(x(c,"isolating",d)),attrs:Object.fromEntries(m.map(Lt))}),h=O(x(c,"parseHTML",d));h&&(u.parseDOM=h.map(v=>Pt(v,m)));let f=x(c,"renderHTML",d);f&&(u.toDOM=v=>f({node:v,HTMLAttributes:Te(v,m)}));let g=x(c,"renderText",d);return g&&(u.toText=g),[c.name,u]})),a=Object.fromEntries(o.map(c=>{let m=r.filter(g=>g.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:t},p=e.reduce((g,v)=>{let y=x(v,"extendMarkSchema",d);return{...g,...y?y(c):{}}},{}),u=Nt({...p,inclusive:O(x(c,"inclusive",d)),excludes:O(x(c,"excludes",d)),group:O(x(c,"group",d)),spanning:O(x(c,"spanning",d)),code:O(x(c,"code",d)),attrs:Object.fromEntries(m.map(Lt))}),h=O(x(c,"parseHTML",d));h&&(u.parseDOM=h.map(g=>Pt(g,m)));let f=x(c,"renderHTML",d);return f&&(u.toDOM=g=>f({mark:g,HTMLAttributes:Te(g,m)})),[c.name,u]}));return new bo({topNode:i,nodes:l,marks:a})}function Eo(e){let t=e.filter((n,r)=>e.indexOf(n)!==r);return Array.from(new Set(t))}function de(e){return e.sort((n,r)=>{let s=x(n,"priority")||100,o=x(r,"priority")||100;return s>o?-1:s<o?1:0})}function Vt(e){let t=de(Je(e)),n=Eo(t.map(r=>r.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(r=>`'${r}'`).join(", ")}]. This can lead to issues.`),t}function Co(e,t,n){let{from:r,to:s}=t,{blockSeparator:o=`
2
2
 
3
- `,textSerializers:i={}}=n||{},l="";return e.nodesBetween(r,s,(a,c,m,d)=>{var p;a.isBlock&&c>r&&(l+=o);let u=i?.[a.type.name];if(u)return m&&(l+=u({node:a,pos:c,parent:m,index:d,range:t})),!1;a.isText&&(l+=(p=a?.text)==null?void 0:p.slice(Math.max(r,c)-c,s-c))}),l}function Io(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,t])=>t.spec.toText).map(([t,n])=>[t,n.spec.toText]))}function Ao(e,t=JSON.stringify){let n={};return e.filter(r=>{let s=t(r);return Object.prototype.hasOwnProperty.call(n,s)?!1:n[s]=!0})}function Po(e){let t=Ao(e);return t.length===1?t:t.filter((n,r)=>!t.filter((o,i)=>i!==r).some(o=>n.oldRange.from>=o.oldRange.from&&n.oldRange.to<=o.oldRange.to&&n.newRange.from>=o.newRange.from&&n.newRange.to<=o.newRange.to))}function No(e){let{mapping:t,steps:n}=e,r=[];return t.maps.forEach((s,o)=>{let i=[];if(s.ranges.length)s.forEach((l,a)=>{i.push({from:l,to:a})});else{let{from:l,to:a}=n[o];if(l===void 0||a===void 0)return;i.push({from:l,to:a})}i.forEach(({from:l,to:a})=>{let c=t.slice(o).map(l,-1),m=t.slice(o).map(a),d=t.invert().map(c,-1),p=t.invert().map(m);r.push({oldRange:{from:d,to:p},newRange:{from:c,to:m}})})}),Po(r)}function le(e,t){return t.nodes[e]||t.marks[e]||null}function ke(e,t,n){return Object.fromEntries(Object.entries(n).filter(([r])=>{let s=e.find(o=>o.type===t&&o.name===r);return s?s.attribute.keepOnSplit:!1}))}var Lo=(e,t=500)=>{let n="",r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(s,o,i,l)=>{var a,c;let m=((c=(a=s.type.spec).toText)==null?void 0:c.call(a,{node:s,pos:o,parent:i,index:l}))||s.textContent||"%leaf%";n+=s.isAtom&&!s.isText?m:m.slice(0,Math.max(0,r-o))}),n};function Do(e,t,n={}){let{empty:r,ranges:s}=e.selection,o=t?q(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(d=>o?o.name===d.type.name:!0).find(d=>Me(d.attrs,n,{strict:!1}));let i=0,l=[];if(s.forEach(({$from:d,$to:p})=>{let u=d.pos,h=p.pos;e.doc.nodesBetween(u,h,(f,g)=>{if(o&&f.inlineContent&&!f.type.allowsMarkType(o))return!1;if(!f.isText&&!f.marks.length)return;let v=Math.max(u,g),y=Math.min(h,g+f.nodeSize),k=y-v;i+=k,l.push(...f.marks.map(E=>({mark:E,from:v,to:y})))})}),i===0)return!1;let a=l.filter(d=>o?o.name===d.mark.type.name:!0).filter(d=>Me(d.mark.attrs,n,{strict:!1})).reduce((d,p)=>d+p.to-p.from,0),c=l.filter(d=>o?d.mark.type!==o&&d.mark.type.excludes(o):!0).reduce((d,p)=>d+p.to-p.from,0);return(a>0?a+c:a)>=i}function Lt(e,t){return Array.isArray(t)?t.some(n=>(typeof n=="string"?n:n.name)===e.name):t}function Oe(e,t){let{nodeExtensions:n}=re(t),r=n.find(i=>i.name===e);if(!r)return!1;let s={name:r.name,options:r.options,storage:r.storage},o=O(x(r,"group",s));return typeof o!="string"?!1:o.split(" ").includes("list")}function Wt(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){var r;if(n){if(e.type.name==="hardBreak")return!0;if(e.isText)return!/\S/.test((r=e.text)!=null?r:"")}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(e.content.childCount===0)return!0;if(t){let s=!0;return e.content.forEach(o=>{s!==!1&&(Wt(o,{ignoreWhitespace:n,checkChildren:t})||(s=!1))}),s}return!1}function zo(e,t,n){var r;let{selection:s}=t,o=null;if(Ht(s)&&(o=s.$cursor),o){let l=(r=e.storedMarks)!=null?r:o.marks();return o.parent.type.allowsMarkType(n)&&(!!n.isInSet(l)||!l.some(c=>c.type.excludes(n)))}let{ranges:i}=s;return i.some(({$from:l,$to:a})=>{let c=l.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(n):!1;return e.doc.nodesBetween(l.pos,a.pos,(m,d,p)=>{if(c)return!1;if(m.isInline){let u=!p||p.type.allowsMarkType(n),h=!!n.isInSet(m.marks)||!m.marks.some(f=>f.type.excludes(n));c=u&&h}return!c}),c})}var Oo=(e,t={})=>({tr:n,state:r,dispatch:s})=>{let{selection:o}=n,{empty:i,ranges:l}=o,a=q(e,r.schema);if(s)if(i){let c=fo(r,a);n.addStoredMark(a.create({...c,...t}))}else l.forEach(c=>{let m=c.$from.pos,d=c.$to.pos;r.doc.nodesBetween(m,d,(p,u)=>{let h=Math.max(u,m),f=Math.min(u+p.nodeSize,d);p.marks.find(v=>v.type===a)?p.marks.forEach(v=>{a===v.type&&n.addMark(h,f,a.create({...v.attrs,...t}))}):n.addMark(h,f,a.create(t))})});return zo(r,n,a)},Bo=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),$o=(e,t={})=>({state:n,dispatch:r,chain:s})=>{let o=_(e,n.schema),i;return n.selection.$anchor.sameParent(n.selection.$head)&&(i=n.selection.$anchor.parent.attrs),o.isTextblock?s().command(({commands:l})=>Dt(o,{...i,...t})(n)?!0:l.clearNodes()).command(({state:l})=>Dt(o,{...i,...t})(l,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},_o=e=>({tr:t,dispatch:n})=>{if(n){let{doc:r}=t,s=ee(e,0,r.content.size),o=Ho.create(r,s);t.setSelection(o)}return!0},jo=(e,t)=>({tr:n,state:r,dispatch:s})=>{let{selection:o}=r,i,l;return typeof t=="number"?(i=t,l=t):t&&"from"in t&&"to"in t?(i=t.from,l=t.to):(i=o.from,l=o.to),s&&n.doc.nodesBetween(i,l,(a,c)=>{a.isText||n.setNodeMarkup(c,void 0,{...a.attrs,dir:e})}),!0},Uo=e=>({tr:t,dispatch:n})=>{if(n){let{doc:r}=t,{from:s,to:o}=typeof e=="number"?{from:e,to:e}:e,i=Be.atStart(r).from,l=Be.atEnd(r).to,a=ee(s,i,l),c=ee(o,i,l),m=Be.create(r,a,c);t.setSelection(m)}return!0},Fo=e=>({state:t,dispatch:n})=>{let r=_(e,t.schema);return Ro(r)(t,n)};function zt(e,t){let n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){let r=n.filter(s=>t?.includes(s.type.name));e.tr.ensureMarks(r)}}var Ko=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:s})=>{let{selection:o,doc:i}=t,{$from:l,$to:a}=o,c=s.extensionManager.attributes,m=ke(c,l.node().type.name,l.node().attrs);if(o instanceof Vo&&o.node.isBlock)return!l.parentOffset||!$e(i,l.pos)?!1:(r&&(e&&zt(n,s.extensionManager.splittableMarks),t.split(l.pos).scrollIntoView()),!0);if(!l.parent.isBlock)return!1;let d=a.parentOffset===a.parent.content.size,p=l.depth===0?void 0:vo(l.node(-1).contentMatchAt(l.indexAfter(-1))),u=d&&p?[{type:p,attrs:m}]:void 0,h=$e(t.doc,t.mapping.map(l.pos),1,u);if(!u&&!h&&$e(t.doc,t.mapping.map(l.pos),1,p?[{type:p}]:void 0)&&(h=!0,u=p?[{type:p,attrs:m}]:void 0),r){if(h&&(o instanceof Wo&&t.deleteSelection(),t.split(t.mapping.map(l.pos),1,u),p&&!d&&!l.parentOffset&&l.parent.type!==p)){let f=t.mapping.map(l.before()),g=t.doc.resolve(f);l.node(-1).canReplaceWith(g.index(),g.index()+1,p)&&t.setNodeMarkup(t.mapping.map(l.before()),p)}e&&zt(n,s.extensionManager.splittableMarks),t.scrollIntoView()}return h},Yo=(e,t={})=>({tr:n,state:r,dispatch:s,editor:o})=>{var i;let l=_(e,r.schema),{$from:a,$to:c}=r.selection,m=r.selection.node;if(m&&m.isBlock||a.depth<2||!a.sameParent(c))return!1;let d=a.node(-1);if(d.type!==l)return!1;let p=o.extensionManager.attributes;if(a.parent.content.size===0&&a.node(-1).childCount===a.indexAfter(-1)){if(a.depth===2||a.node(-3).type!==l||a.index(-2)!==a.node(-2).childCount-1)return!1;if(s){let v=He.empty,y=a.index(-1)?1:a.index(-2)?2:3;for(let C=a.depth-y;C>=a.depth-3;C-=1)v=He.from(a.node(C).copy(v));let k=a.indexAfter(-1)<a.node(-2).childCount?1:a.indexAfter(-2)<a.node(-3).childCount?2:3,E={...ke(p,a.node().type.name,a.node().attrs),...t},M=((i=l.contentMatch.defaultType)==null?void 0:i.createAndFill(E))||void 0;v=v.append(He.from(l.createAndFill(null,M)||void 0));let S=a.before(a.depth-(y-1));n.replace(S,a.after(-k),new Jo(v,4-y,0));let I=-1;n.doc.nodesBetween(S,n.doc.content.size,(C,D)=>{if(I>-1)return!1;C.isTextblock&&C.content.size===0&&(I=D+1)}),I>-1&&n.setSelection(qo.near(n.doc.resolve(I))),n.scrollIntoView()}return!0}let u=c.pos===a.end()?d.contentMatchAt(0).defaultType:null,h={...ke(p,d.type.name,d.attrs),...t},f={...ke(p,a.node().type.name,a.node().attrs),...t};n.delete(a.pos,c.pos);let g=u?[{type:l,attrs:h},{type:u,attrs:f}]:[{type:l,attrs:h}];if(!Xo(n.doc,a.pos,2))return!1;if(s){let{selection:v,storedMarks:y}=r,{splittableMarks:k}=o.extensionManager,E=y||v.$to.parentOffset&&v.$from.marks();if(n.split(a.pos,2,g).scrollIntoView(),!E||!s)return!0;let M=E.filter(S=>k.includes(S.type.name));n.ensureMarks(M)}return!0},_e=(e,t)=>{let n=Ke(i=>i.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;let s=e.doc.nodeAt(r);return n.node.type===s?.type&&Kt(e.doc,n.pos)&&e.join(n.pos),!0},je=(e,t)=>{let n=Ke(i=>i.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;let s=e.doc.nodeAt(r);return n.node.type===s?.type&&Kt(e.doc,r)&&e.join(r),!0};function Qo(e){let t=e.doc,n=t.firstChild;if(!n)return null;let r=t.resolve(1),s=t.resolve(n.nodeSize-1);return Go.between(r,s)}var Zo=(e,t,n,r={})=>({editor:s,tr:o,state:i,dispatch:l,chain:a,commands:c,can:m})=>{let{extensions:d,splittableMarks:p}=s.extensionManager,u=_(e,i.schema),h=_(t,i.schema),{selection:f,storedMarks:g}=i,{$from:v,$to:y}=f,k=v.blockRange(y),E=g||f.$to.parentOffset&&f.$from.marks();if(!k)return!1;let M=Ke(B=>Oe(B.type.name,d))(f),S=f.from===0&&f.to===i.doc.content.size,I=i.doc.content.content,C=I.length===1?I[0]:null,D=S&&C&&Oe(C.type.name,d)?{node:C,pos:0,depth:0}:null,L=M??D,A=!!M&&k.depth>=1&&k.depth-M.depth<=1,F=!!D;if((A||F)&&L){if(L.node.type===u)return S&&F?a().command(({tr:B,dispatch:H})=>{let $=Qo(B);return $?(B.setSelection($),H&&H(B),!0):!1}).liftListItem(h).run():c.liftListItem(h);if(Oe(L.node.type.name,d)&&u.validContent(L.node.content))return a().command(()=>(o.setNodeMarkup(L.pos,u),!0)).command(()=>_e(o,u)).command(()=>je(o,u)).run()}return!n||!E||!l?a().command(()=>m().wrapInList(u,r)?!0:c.clearNodes()).wrapInList(u,r).command(()=>_e(o,u)).command(()=>je(o,u)).run():a().command(()=>{let B=m().wrapInList(u,r),H=E.filter($=>p.includes($.type.name));return o.ensureMarks(H),B?!0:c.clearNodes()}).wrapInList(u,r).command(()=>_e(o,u)).command(()=>je(o,u)).run()},es=(e,t={},n={})=>({state:r,commands:s})=>{let{extendEmptyMarkRange:o=!1}=n,i=q(e,r.schema);return Do(r,i,t)?s.unsetMark(i,{extendEmptyMarkRange:o}):s.setMark(i,t)},ts=(e,t,n={})=>({state:r,commands:s})=>{let o=_(e,r.schema),i=_(t,r.schema),l=We(r,o,n),a;return r.selection.$anchor.sameParent(r.selection.$head)&&(a=r.selection.$anchor.parent.attrs),l?s.setNode(i,a):s.setNode(o,{...a,...n})},ns=(e,t={})=>({state:n,commands:r})=>{let s=_(e,n.schema);return We(n,s,t)?r.lift(s):r.wrapIn(s,t)},rs=()=>({state:e,dispatch:t})=>{let n=e.plugins;for(let r=0;r<n.length;r+=1){let s=n[r],o;if(s.spec.isInputRules&&(o=s.getState(e))){if(t){let i=e.tr,l=o.transform;for(let a=l.steps.length-1;a>=0;a-=1)i.step(l.steps[a].invert(l.docs[a]));if(o.text){let a=i.doc.resolve(o.from).marks();i.replaceWith(o.from,o.to,e.schema.text(o.text,a))}else i.delete(o.from,o.to)}return!0}}return!1},os=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,{empty:r,ranges:s}=n;return r||t&&s.forEach(o=>{e.removeMark(o.$from.pos,o.$to.pos)}),!0},ss=(e,t={})=>({tr:n,state:r,dispatch:s})=>{var o;let{extendEmptyMarkRange:i=!1}=t,{selection:l}=n,a=q(e,r.schema),{$from:c,empty:m,ranges:d}=l;if(!s)return!0;if(m&&i){let{from:p,to:u}=l,h=(o=c.marks().find(g=>g.type===a))==null?void 0:o.attrs,f=$t(c,a,h);f&&(p=f.from,u=f.to),n.removeMark(p,u,a)}else d.forEach(p=>{n.removeMark(p.$from.pos,p.$to.pos,a)});return n.removeStoredMark(a),!0},is=e=>({tr:t,state:n,dispatch:r})=>{let{selection:s}=n,o,i;return typeof e=="number"?(o=e,i=e):e&&"from"in e&&"to"in e?(o=e.from,i=e.to):(o=s.from,i=s.to),r&&t.doc.nodesBetween(o,i,(l,a)=>{if(l.isText)return;let c={...l.attrs};delete c.dir,t.setNodeMarkup(a,void 0,c)}),!0},as=(e,t={})=>({tr:n,state:r,dispatch:s})=>{let o=null,i=null,l=Ut(typeof e=="string"?e:e.name,r.schema);if(!l)return!1;l==="node"&&(o=_(e,r.schema)),l==="mark"&&(i=q(e,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{let m=c.$from.pos,d=c.$to.pos,p,u,h,f;n.selection.empty?r.doc.nodesBetween(m,d,(g,v)=>{o&&o===g.type&&(a=!0,h=Math.max(v,m),f=Math.min(v+g.nodeSize,d),p=v,u=g)}):r.doc.nodesBetween(m,d,(g,v)=>{v<m&&o&&o===g.type&&(a=!0,h=Math.max(v,m),f=Math.min(v+g.nodeSize,d),p=v,u=g),v>=m&&v<=d&&(o&&o===g.type&&(a=!0,s&&n.setNodeMarkup(v,void 0,{...g.attrs,...t})),i&&g.marks.length&&g.marks.forEach(y=>{if(i===y.type&&(a=!0,s)){let k=Math.max(v,m),E=Math.min(v+g.nodeSize,d);n.addMark(k,E,i.create({...y.attrs,...t}))}}))}),u&&(p!==void 0&&s&&n.setNodeMarkup(p,void 0,{...u.attrs,...t}),i&&u.marks.length&&u.marks.forEach(g=>{i===g.type&&s&&n.addMark(h,f,i.create({...g.attrs,...t}))}))}),a},ls=(e,t={})=>({state:n,dispatch:r})=>{let s=_(e,n.schema);return cs(s,t)(n,r)},us=(e,t={})=>({state:n,dispatch:r})=>{let s=_(e,n.schema);return ds(s,t)(n,r)};var hs=(e,t)=>{if(Ve(t))return t.exec(e);let n=t(e);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function xe(e){var t;let{editor:n,from:r,to:s,text:o,rules:i,plugin:l}=e,{view:a}=n;if(a.composing)return!1;let c=a.state.doc.resolve(r);if(c.parent.type.spec.code||(t=c.nodeBefore||c.nodeAfter)!=null&&t.marks.find(p=>p.type.spec.code))return!1;let m=!1,d=Lo(c)+o;return i.forEach(p=>{if(m)return;let u=hs(d,p.find);if(!u)return;let h=a.state.tr,f=Ee({state:a.state,transaction:h}),g={from:r-(u[0].length-o.length),to:s},{commands:v,chain:y,can:k}=new Fe({editor:n,state:f});p.handler({state:f,range:g,match:u,commands:v,chain:y,can:k})===null||!h.steps.length||(p.undoable&&h.setMeta(l,{transform:h,from:r,to:s,text:o}),a.dispatch(h),m=!0)}),m}function gs(e){let{editor:t,rules:n}=e,r=new fs({state:{init(){return null},apply(s,o,i){let l=s.getMeta(r);if(l)return l;let a=s.getMeta("applyInputRules");return a&&setTimeout(()=>{let{text:m}=a;typeof m=="string"?m=m:m=Rt(ps.from(m),i.schema);let{from:d}=a,p=d+m.length;xe({editor:t,from:d,to:p,text:m,rules:n,plugin:r})}),s.selectionSet||s.docChanged?null:o}},props:{handleTextInput(s,o,i,l){return xe({editor:t,from:o,to:i,text:l,rules:n,plugin:r})},handleDOMEvents:{compositionend:s=>(setTimeout(()=>{let{$cursor:o}=s.state.selection;o&&xe({editor:t,from:o.pos,to:o.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(s,o){if(o.key!=="Enter")return!1;let{$cursor:i}=s.state.selection;return i?xe({editor:t,from:i.pos,to:i.pos,text:`
4
- `,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function vs(e){return Object.prototype.toString.call(e).slice(8,-1)}function be(e){return vs(e)!=="Object"?!1:e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function Jt(e,t){let n={...e};return be(e)&&be(t)&&Object.keys(t).forEach(r=>{be(t[r])&&be(e[r])?n[r]=Jt(e[r],t[r]):n[r]=t[r]}),n}var qe=class{constructor(e={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...O(x(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...O(x(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>Jt(this.options,e)});return t.name=this.name,t.parent=this.parent,this.child=null,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name="name"in e?e.name:t.parent.name,t}},Xe=class qt extends qe{constructor(){super(...arguments),this.type="mark"}static create(t={}){let n=typeof t=="function"?t():t;return new qt(n)}static handleExit({editor:t,mark:n}){let{tr:r}=t.state,s=t.state.selection.$from;if(s.pos===s.end()){let i=s.marks();if(!!!i.find(c=>c?.type.name===n.name))return!1;let a=i.find(c=>c?.type.name===n.name);return a&&r.removeStoredMark(a),r.insertText(" ",s.pos),t.view.dispatch(r),!0}return!1}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}};function bs(e){return typeof e=="number"}var ws=(e,t,n)=>{if(Ve(t))return[...e.matchAll(t)];let r=t(e,n);return r?r.map(s=>{let o=[s.text];return o.index=s.index,o.input=e,o.data=s.data,s.replaceWith&&(s.text.includes(s.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),o.push(s.replaceWith)),o}):[]};function ks(e){let{editor:t,state:n,from:r,to:s,rule:o,pasteEvent:i,dropEvent:l}=e,{commands:a,chain:c,can:m}=new Fe({editor:t,state:n}),d=[];return n.doc.nodesBetween(r,s,(u,h)=>{var f,g,v,y,k;if((g=(f=u.type)==null?void 0:f.spec)!=null&&g.code||!(u.isText||u.isTextblock||u.isInline))return;let E=(k=(y=(v=u.content)==null?void 0:v.size)!=null?y:u.nodeSize)!=null?k:0,M=Math.max(r,h),S=Math.min(s,h+E);if(M>=S)return;let I=u.isText?u.text||"":u.textBetween(M-h,S-h,void 0,"\uFFFC");ws(I,o.find,i).forEach(D=>{if(D.index===void 0)return;let L=M+D.index+1,A=L+D[0].length,F={from:n.tr.mapping.map(L),to:n.tr.mapping.map(A)},B=o.handler({state:n,range:F,match:D,commands:a,chain:c,can:m,pasteEvent:i,dropEvent:l});d.push(B)})}),d.every(u=>u!==null)}var we=null,Ms=e=>{var t;let n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(t=n.clipboardData)==null||t.setData("text/html",e),n};function Ss(e){let{editor:t,rules:n}=e,r=null,s=!1,o=!1,i=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,l;try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}let a=({state:m,from:d,to:p,rule:u,pasteEvt:h})=>{let f=m.tr,g=Ee({state:m,transaction:f});if(!(!ks({editor:t,state:g,from:Math.max(d-1,0),to:p.b-1,rule:u,pasteEvent:h,dropEvent:l})||!f.steps.length)){try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}return i=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,f}};return n.map(m=>new xs({view(d){let p=h=>{var f;r=(f=d.dom.parentElement)!=null&&f.contains(h.target)?d.dom.parentElement:null,r&&(we=t)},u=()=>{we&&(we=null)};return window.addEventListener("dragstart",p),window.addEventListener("dragend",u),{destroy(){window.removeEventListener("dragstart",p),window.removeEventListener("dragend",u)}}},props:{handleDOMEvents:{drop:(d,p)=>{if(o=r===d.dom.parentElement,l=p,!o){let u=we;u?.isEditable&&setTimeout(()=>{let h=u.state.selection;h&&u.commands.deleteRange({from:h.from,to:h.to})},10)}return!1},paste:(d,p)=>{var u;let h=(u=p.clipboardData)==null?void 0:u.getData("text/html");return i=p,s=!!h?.includes("data-pm-slice"),!1}}},appendTransaction:(d,p,u)=>{let h=d[0],f=h.getMeta("uiEvent")==="paste"&&!s,g=h.getMeta("uiEvent")==="drop"&&!o,v=h.getMeta("applyPasteRules"),y=!!v;if(!f&&!g&&!y)return;if(y){let{text:M}=v;typeof M=="string"?M=M:M=Rt(ys.from(M),u.schema);let{from:S}=v,I=S+M.length,C=Ms(M);return a({rule:m,state:u,from:S,to:{b:I},pasteEvt:C})}let k=p.doc.content.findDiffStart(u.doc.content),E=p.doc.content.findDiffEnd(u.doc.content);if(!(!bs(k)||!E||k===E.b))return a({rule:m,state:u,from:k,to:E,pasteEvt:i})}}))}var Ye=class{constructor(e,t){this.splittableMarks=[],this.editor=t,this.baseExtensions=e,this.extensions=Vt(e),this.schema=To(this.extensions,t),this.setupExtensions()}get commands(){return this.extensions.reduce((e,t)=>{let n={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:le(t.name,this.schema)},r=x(t,"addCommands",n);return r?{...e,...r()}:e},{})}get plugins(){let{editor:e}=this;return de([...this.extensions].reverse()).flatMap(r=>{let s={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:e,type:le(r.name,this.schema)},o=[],i=x(r,"addKeyboardShortcuts",s),l={};if(r.type==="mark"&&x(r,"exitable",s)&&(l.ArrowRight=()=>Xe.handleExit({editor:e,mark:r})),i){let p=Object.fromEntries(Object.entries(i()).map(([u,h])=>[u,()=>h({editor:e})]));l={...l,...p}}let a=ms(l);o.push(a);let c=x(r,"addInputRules",s);if(Lt(r,e.options.enableInputRules)&&c){let p=c();if(p&&p.length){let u=gs({editor:e,rules:p}),h=Array.isArray(u)?u:[u];o.push(...h)}}let m=x(r,"addPasteRules",s);if(Lt(r,e.options.enablePasteRules)&&m){let p=m();if(p&&p.length){let u=Ss({editor:e,rules:p});o.push(...u)}}let d=x(r,"addProseMirrorPlugins",s);if(d){let p=d();o.push(...p)}return o})}get attributes(){return Ft(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:t}=re(this.extensions);return Object.fromEntries(t.filter(n=>!!x(n,"addNodeView")).map(n=>{let r=this.attributes.filter(a=>a.type===n.name),s={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:e,type:_(n.name,this.schema)},o=x(n,"addNodeView",s);if(!o)return[];let i=o();if(!i)return[];let l=(a,c,m,d,p)=>{let u=Te(a,r);return i({node:a,view:c,getPos:m,decorations:d,innerDecorations:p,editor:e,extension:n,HTMLAttributes:u})};return[n.name,l]}))}dispatchTransaction(e){let{editor:t}=this;return de([...this.extensions].reverse()).reduceRight((r,s)=>{let o={name:s.name,options:s.options,storage:this.editor.extensionStorage[s.name],editor:t,type:le(s.name,this.schema)},i=x(s,"dispatchTransaction",o);return i?l=>{i.call(o,{transaction:l,next:r})}:r},e)}transformPastedHTML(e){let{editor:t}=this;return de([...this.extensions]).reduce((r,s)=>{let o={name:s.name,options:s.options,storage:this.editor.extensionStorage[s.name],editor:t,type:le(s.name,this.schema)},i=x(s,"transformPastedHTML",o);return i?(l,a)=>{let c=r(l,a);return i.call(o,c)}:r},e||(r=>r))}get markViews(){let{editor:e}=this,{markExtensions:t}=re(this.extensions);return Object.fromEntries(t.filter(n=>!!x(n,"addMarkView")).map(n=>{let r=this.attributes.filter(l=>l.type===n.name),s={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:e,type:q(n.name,this.schema)},o=x(n,"addMarkView",s);if(!o)return[];let i=(l,a,c)=>{let m=Te(l,r);return o()({mark:l,view:a,inline:c,editor:e,extension:n,HTMLAttributes:m,updateAttributes:d=>{ai(l,e,d)}})};return[n.name,i]}))}destroy(){this.extensions.forEach(e=>{let t=e;for(;t.parent;){let n=t.parent;n.child===t&&(n.child=null),t=n}}),this.extensions=[],this.baseExtensions=[],this.schema=null,this.editor=null}setupExtensions(){let e=this.extensions;this.editor.extensionStorage=Object.fromEntries(e.map(t=>[t.name,t.storage])),e.forEach(t=>{var n;let r={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:le(t.name,this.schema)};t.type==="mark"&&((n=O(x(t,"keepOnSplit",r)))==null||n)&&this.splittableMarks.push(t.name);let s=x(t,"onBeforeCreate",r),o=x(t,"onCreate",r),i=x(t,"onUpdate",r),l=x(t,"onSelectionUpdate",r),a=x(t,"onTransaction",r),c=x(t,"onFocus",r),m=x(t,"onBlur",r),d=x(t,"onDestroy",r);s&&this.editor.on("beforeCreate",s),o&&this.editor.on("create",o),i&&this.editor.on("update",i),l&&this.editor.on("selectionUpdate",l),a&&this.editor.on("transaction",a),c&&this.editor.on("focus",c),m&&this.editor.on("blur",m),d&&this.editor.on("destroy",d)})}};Ye.resolve=Vt;Ye.sort=de;Ye.flatten=Je;var Ts={};Re(Ts,{ClipboardTextSerializer:()=>Is,Commands:()=>As,Delete:()=>Ns,Drop:()=>zs,Editable:()=>$s,FocusEvents:()=>js,Keymap:()=>Fs,Paste:()=>Ks,Tabindex:()=>Xs,TextDirection:()=>Qs,focusEventsPluginKey:()=>Yt});var K=class Xt extends qe{constructor(){super(...arguments),this.type="extension"}static create(t={}){let n=typeof t=="function"?t():t;return new Xt(n)}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}},Is=K.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new Es({key:new Cs("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:s}=t,{ranges:o}=s,i=Math.min(...o.map(m=>m.$from.pos)),l=Math.max(...o.map(m=>m.$to.pos)),a=Io(n);return Co(r,{from:i,to:l},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:a})}}})]}}),As=K.create({name:"commands",addCommands(){return{...Ot}}}),Ns=K.create({name:"delete",onUpdate({transaction:e,appendedTransactions:t}){var n,r,s;let o=()=>{var i,l,a,c;if((c=(a=(l=(i=this.editor.options.coreExtensionOptions)==null?void 0:i.delete)==null?void 0:l.filterTransaction)==null?void 0:a.call(l,e))!=null?c:e.getMeta("y-sync$"))return;let m=go(e.before,[e,...t]);No(m).forEach(u=>{m.mapping.mapResult(u.oldRange.from).deletedAfter&&m.mapping.mapResult(u.oldRange.to).deletedBefore&&m.before.nodesBetween(u.oldRange.from,u.oldRange.to,(h,f)=>{let g=f+h.nodeSize-2,v=u.oldRange.from<=f&&g<=u.oldRange.to;this.editor.emit("delete",{type:"node",node:h,from:f,to:g,newFrom:m.mapping.map(f),newTo:m.mapping.map(g),deletedRange:u.oldRange,newRange:u.newRange,partial:!v,editor:this.editor,transaction:e,combinedTransform:m})})});let p=m.mapping;m.steps.forEach((u,h)=>{var f,g;if(u instanceof Ps){let v=p.slice(h).map(u.from,-1),y=p.slice(h).map(u.to),k=p.invert().map(v,-1),E=p.invert().map(y),M=v>0?(f=m.doc.nodeAt(v-1))==null?void 0:f.marks.some(I=>I.eq(u.mark)):!1,S=(g=m.doc.nodeAt(y))==null?void 0:g.marks.some(I=>I.eq(u.mark));this.editor.emit("delete",{type:"mark",mark:u.mark,from:u.from,to:u.to,deletedRange:{from:k,to:E},newRange:{from:v,to:y},partial:!!(S||M),editor:this.editor,transaction:e,combinedTransform:m})}})};(s=(r=(n=this.editor.options.coreExtensionOptions)==null?void 0:n.delete)==null?void 0:r.async)==null||s?setTimeout(o,0):o()}}),zs=K.create({name:"drop",addProseMirrorPlugins(){return[new Ls({key:new Ds("tiptapDrop"),props:{handleDrop:(e,t,n,r)=>{this.editor.emit("drop",{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),$s=K.create({name:"editable",addProseMirrorPlugins(){return[new Os({key:new Bs("editable"),props:{editable:()=>this.editor.options.editable}})]}}),Yt=new _s("focusEvents"),js=K.create({name:"focusEvents",addProseMirrorPlugins(){let{editor:e}=this;return[new Hs({key:Yt,props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;let r=e.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;let r=e.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1}}}})]}}),Fs=K.create({name:"keymap",addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:i})=>[()=>i.undoInputRule(),()=>i.command(({tr:l})=>{let{selection:a,doc:c}=l,{empty:m,$anchor:d}=a,{pos:p,parent:u}=d,h=d.parent.isTextblock&&p>0?l.doc.resolve(p-1):d,f=h.parent.type.spec.isolating,g=d.pos-d.parentOffset,v=f&&h.parent.childCount===1?g===d.pos:Ue.atStart(c).from===p;return!m||!u.type.isTextblock||u.textContent.length||!v||v&&d.parent.type.name==="paragraph"?!1:i.clearNodes()}),()=>i.deleteSelection(),()=>i.joinBackward(),()=>i.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:i})=>[()=>i.deleteSelection(),()=>i.deleteCurrentNode(),()=>i.joinForward(),()=>i.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:i})=>[()=>i.newlineInCode(),()=>i.createParagraphNear(),()=>i.liftEmptyBlock(),()=>i.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},s={...r},o={...r,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return Se()||jt()?o:s},addProseMirrorPlugins(){return[new Us({key:new Rs("clearDocument"),appendTransaction:(e,t,n)=>{if(e.some(f=>f.getMeta("composition")))return;let r=e.some(f=>f.docChanged)&&!t.doc.eq(n.doc),s=e.some(f=>f.getMeta("preventClearDocument"));if(!r||s)return;let{empty:o,from:i,to:l}=t.selection,a=Ue.atStart(t.doc).from,c=Ue.atEnd(t.doc).to;if(o||!(i===a&&l===c)||!Wt(n.doc))return;let p=n.tr,u=Ee({state:n,transaction:p}),{commands:h}=new Fe({editor:this.editor,state:u});if(h.clearNodes(),!!p.steps.length)return p}})]}}),Ks=K.create({name:"paste",addProseMirrorPlugins(){return[new Vs({key:new Ws("tiptapPaste"),props:{handlePaste:(e,t,n)=>{this.editor.emit("paste",{editor:this.editor,event:t,slice:n})}}})]}}),Xs=K.create({name:"tabindex",addOptions(){return{value:void 0}},addProseMirrorPlugins(){return[new Js({key:new qs("tabindex"),props:{attributes:()=>{var e;return!this.editor.isEditable&&this.options.value===void 0?{}:{tabindex:(e=this.options.value)!=null?e:"0"}}}})]}}),Qs=K.create({name:"textDirection",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:e}=re(this.extensions);return[{types:e.filter(t=>t.name!=="text").map(t=>t.name),attributes:{dir:{default:this.options.direction,parseHTML:t=>{let n=t.getAttribute("dir");return n&&(n==="ltr"||n==="rtl"||n==="auto")?n:this.options.direction},renderHTML:t=>t.dir?{dir:t.dir}:{}}}}]},addProseMirrorPlugins(){return[new Ys({key:new Gs("textDirection"),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}});var Zs={};Re(Zs,{createAtomBlockMarkdownSpec:()=>ei,createBlockMarkdownSpec:()=>ti,createInlineMarkdownSpec:()=>oi,parseAttributes:()=>Ge,parseIndentedBlocks:()=>si,renderNestedMarkdownContent:()=>ii,serializeAttributes:()=>Qe});function Ge(e){if(!e?.trim())return{};let t={},n=[],r=e.replace(/["']([^"']*)["']/g,c=>(n.push(c),`__QUOTED_${n.length-1}__`)),s=r.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(s){let c=s.map(m=>m.trim().slice(1));t.class=c.join(" ")}let o=r.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);o&&(t.id=o[1]);let i=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(r.matchAll(i)).forEach(([,c,m])=>{var d;let p=parseInt(((d=m.match(/__QUOTED_(\d+)__/))==null?void 0:d[1])||"0",10),u=n[p];u&&(t[c]=u.slice(1,-1))});let a=r.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return a&&a.split(/\s+/).filter(Boolean).forEach(m=>{m.match(/^[a-zA-Z][\w-]*$/)&&(t[m]=!0)}),t}function Qe(e){if(!e||Object.keys(e).length===0)return"";let t=[];return e.class&&String(e.class).split(/\s+/).filter(Boolean).forEach(r=>t.push(`.${r}`)),e.id&&t.push(`#${e.id}`),Object.entries(e).forEach(([n,r])=>{n==="class"||n==="id"||(r===!0?t.push(n):r!==!1&&r!=null&&t.push(`${n}="${String(r)}"`))}),t.join(" ")}function ei(e){let{nodeName:t,name:n,parseAttributes:r=Ge,serializeAttributes:s=Qe,defaultAttributes:o={},requiredAttributes:i=[],allowedAttributes:l}=e,a=n||t,c=m=>{if(!l)return m;let d={};return l.forEach(p=>{p in m&&(d[p]=m[p])}),d};return{parseMarkdown:(m,d)=>{let p={...o,...m.attributes};return d.createNode(t,p,[])},markdownTokenizer:{name:t,level:"block",start(m){var d;let p=new RegExp(`^:::${a}(?:\\s|$)`,"m"),u=(d=m.match(p))==null?void 0:d.index;return u!==void 0?u:-1},tokenize(m,d,p){let u=new RegExp(`^:::${a}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),h=m.match(u);if(!h)return;let f=h[1]||"",g=r(f);if(!i.find(y=>!(y in g)))return{type:t,raw:h[0],attributes:g}}},renderMarkdown:m=>{let d=c(m.attrs||{}),p=s(d),u=p?` {${p}}`:"";return`:::${a}${u} :::`}}}function ti(e){let{nodeName:t,name:n,getContent:r,parseAttributes:s=Ge,serializeAttributes:o=Qe,defaultAttributes:i={},content:l="block",allowedAttributes:a}=e,c=n||t,m=d=>{if(!a)return d;let p={};return a.forEach(u=>{u in d&&(p[u]=d[u])}),p};return{parseMarkdown:(d,p)=>{let u;if(r){let f=r(d);u=typeof f=="string"?[{type:"text",text:f}]:f}else l==="block"?u=p.parseChildren(d.tokens||[]):u=p.parseInline(d.tokens||[]);let h={...i,...d.attributes};return p.createNode(t,h,u)},markdownTokenizer:{name:t,level:"block",start(d){var p;let u=new RegExp(`^:::${c}`,"m"),h=(p=d.match(u))==null?void 0:p.index;return h!==void 0?h:-1},tokenize(d,p,u){var h;let f=new RegExp(`^:::${c}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),g=d.match(f);if(!g)return;let[v,y=""]=g,k=s(y),E=1,M=v.length,S="",I=/^:::([\w-]*)(\s.*)?/gm,C=d.slice(M);for(I.lastIndex=0;;){let D=I.exec(C);if(D===null)break;let L=D.index,A=D[1];if(!((h=D[2])!=null&&h.endsWith(":::"))){if(A)E+=1;else if(E-=1,E===0){let F=C.slice(0,L);S=F.trim();let B=d.slice(0,M+L+D[0].length),H=[];if(S)if(l==="block")for(H=u.blockTokens(F),H.forEach($=>{$.text&&(!$.tokens||$.tokens.length===0)&&($.tokens=u.inlineTokens($.text))});H.length>0;){let $=H[H.length-1];if($.type==="paragraph"&&(!$.text||$.text.trim()===""))H.pop();else break}else H=u.inlineTokens(S);return{type:t,raw:B,attributes:k,content:S,tokens:H}}}}}},renderMarkdown:(d,p)=>{let u=m(d.attrs||{}),h=o(u),f=h?` {${h}}`:"",g=p.renderChildren(d.content||[],`
3
+ `,textSerializers:i={}}=n||{},l="";return e.nodesBetween(r,s,(a,c,m,d)=>{var p;a.isBlock&&c>r&&(l+=o);let u=i?.[a.type.name];if(u)return m&&(l+=u({node:a,pos:c,parent:m,index:d,range:t})),!1;a.isText&&(l+=(p=a?.text)==null?void 0:p.slice(Math.max(r,c)-c,s-c))}),l}function Io(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,t])=>t.spec.toText).map(([t,n])=>[t,n.spec.toText]))}function Ao(e,t=JSON.stringify){let n={};return e.filter(r=>{let s=t(r);return Object.prototype.hasOwnProperty.call(n,s)?!1:n[s]=!0})}function Po(e){let t=Ao(e);return t.length===1?t:t.filter((n,r)=>!t.filter((o,i)=>i!==r).some(o=>n.oldRange.from>=o.oldRange.from&&n.oldRange.to<=o.oldRange.to&&n.newRange.from>=o.newRange.from&&n.newRange.to<=o.newRange.to))}function No(e){let{mapping:t,steps:n}=e,r=[];return t.maps.forEach((s,o)=>{let i=[];if(s.ranges.length)s.forEach((l,a)=>{i.push({from:l,to:a})});else{let{from:l,to:a}=n[o];if(l===void 0||a===void 0)return;i.push({from:l,to:a})}i.forEach(({from:l,to:a})=>{let c=t.slice(o).map(l,-1),m=t.slice(o).map(a),d=t.invert().map(c,-1),p=t.invert().map(m);r.push({oldRange:{from:d,to:p},newRange:{from:c,to:m}})})}),Po(r)}function le(e,t){return t.nodes[e]||t.marks[e]||null}function ke(e,t,n){return Object.fromEntries(Object.entries(n).filter(([r])=>{let s=e.find(o=>o.type===t&&o.name===r);return s?s.attribute.keepOnSplit:!1}))}var Lo=(e,t=500)=>{let n="",r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(s,o,i,l)=>{var a,c;let m=((c=(a=s.type.spec).toText)==null?void 0:c.call(a,{node:s,pos:o,parent:i,index:l}))||s.textContent||"%leaf%";n+=s.isAtom&&!s.isText?m:m.slice(0,Math.max(0,r-o))}),n};function Do(e,t,n={}){let{empty:r,ranges:s}=e.selection,o=t?q(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(d=>o?o.name===d.type.name:!0).find(d=>Me(d.attrs,n,{strict:!1}));let i=0,l=[];if(s.forEach(({$from:d,$to:p})=>{let u=d.pos,h=p.pos;e.doc.nodesBetween(u,h,(f,g)=>{if(o&&f.inlineContent&&!f.type.allowsMarkType(o))return!1;if(!f.isText&&!f.marks.length)return;let v=Math.max(u,g),y=Math.min(h,g+f.nodeSize),k=y-v;i+=k,l.push(...f.marks.map(E=>({mark:E,from:v,to:y})))})}),i===0)return!1;let a=l.filter(d=>o?o.name===d.mark.type.name:!0).filter(d=>Me(d.mark.attrs,n,{strict:!1})).reduce((d,p)=>d+p.to-p.from,0),c=l.filter(d=>o?d.mark.type!==o&&d.mark.type.excludes(o):!0).reduce((d,p)=>d+p.to-p.from,0);return(a>0?a+c:a)>=i}function Dt(e,t){return Array.isArray(t)?t.some(n=>(typeof n=="string"?n:n.name)===e.name):t}function Oe(e,t){let{nodeExtensions:n}=re(t),r=n.find(i=>i.name===e);if(!r)return!1;let s={name:r.name,options:r.options,storage:r.storage},o=O(x(r,"group",s));return typeof o!="string"?!1:o.split(" ").includes("list")}function Kt(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){var r;if(n){if(e.type.name==="hardBreak")return!0;if(e.isText)return!/\S/.test((r=e.text)!=null?r:"")}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(e.content.childCount===0)return!0;if(t){let s=!0;return e.content.forEach(o=>{s!==!1&&(Kt(o,{ignoreWhitespace:n,checkChildren:t})||(s=!1))}),s}return!1}function zo(e,t,n){var r;let{selection:s}=t,o=null;if(_t(s)&&(o=s.$cursor),o){let l=(r=e.storedMarks)!=null?r:o.marks();return o.parent.type.allowsMarkType(n)&&(!!n.isInSet(l)||!l.some(c=>c.type.excludes(n)))}let{ranges:i}=s;return i.some(({$from:l,$to:a})=>{let c=l.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(n):!1;return e.doc.nodesBetween(l.pos,a.pos,(m,d,p)=>{if(c)return!1;if(m.isInline){let u=!p||p.type.allowsMarkType(n),h=!!n.isInSet(m.marks)||!m.marks.some(f=>f.type.excludes(n));c=u&&h}return!c}),c})}var Oo=(e,t={})=>({tr:n,state:r,dispatch:s})=>{let{selection:o}=n,{empty:i,ranges:l}=o,a=q(e,r.schema);if(s)if(i){let c=fo(r,a);n.addStoredMark(a.create({...c,...t}))}else l.forEach(c=>{let m=c.$from.pos,d=c.$to.pos;r.doc.nodesBetween(m,d,(p,u)=>{let h=Math.max(u,m),f=Math.min(u+p.nodeSize,d);p.marks.find(v=>v.type===a)?p.marks.forEach(v=>{a===v.type&&n.addMark(h,f,a.create({...v.attrs,...t}))}):n.addMark(h,f,a.create(t))})});return zo(r,n,a)},Bo=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),$o=(e,t={})=>({state:n,dispatch:r,chain:s})=>{let o=_(e,n.schema),i;return n.selection.$anchor.sameParent(n.selection.$head)&&(i=n.selection.$anchor.parent.attrs),o.isTextblock?s().command(({commands:l})=>zt(o,{...i,...t})(n)?!0:l.clearNodes()).command(({state:l})=>zt(o,{...i,...t})(l,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},_o=e=>({tr:t,dispatch:n})=>{if(n){let{doc:r}=t,s=ee(e,0,r.content.size),o=Ho.create(r,s);t.setSelection(o)}return!0},jo=(e,t)=>({tr:n,state:r,dispatch:s})=>{let{selection:o}=r,i,l;return typeof t=="number"?(i=t,l=t):t&&"from"in t&&"to"in t?(i=t.from,l=t.to):(i=o.from,l=o.to),s&&n.doc.nodesBetween(i,l,(a,c)=>{a.isText||n.setNodeMarkup(c,void 0,{...a.attrs,dir:e})}),!0},Uo=e=>({tr:t,dispatch:n})=>{if(n){let{doc:r}=t,{from:s,to:o}=typeof e=="number"?{from:e,to:e}:e,i=Be.atStart(r).from,l=Be.atEnd(r).to,a=ee(s,i,l),c=ee(o,i,l),m=Be.create(r,a,c);t.setSelection(m)}return!0},Fo=e=>({state:t,dispatch:n})=>{let r=_(e,t.schema);return Ro(r)(t,n)};function Ot(e,t){let n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){let r=n.filter(s=>t?.includes(s.type.name));e.tr.ensureMarks(r)}}var Ko=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:s})=>{let{selection:o,doc:i}=t,{$from:l,$to:a}=o,c=s.extensionManager.attributes,m=ke(c,l.node().type.name,l.node().attrs);if(o instanceof Wo&&o.node.isBlock)return!l.parentOffset||!$e(i,l.pos)?!1:(r&&(e&&Ot(n,s.extensionManager.splittableMarks),t.split(l.pos).scrollIntoView()),!0);if(!l.parent.isBlock)return!1;let d=a.parentOffset===a.parent.content.size,p=l.depth===0?void 0:vo(l.node(-1).contentMatchAt(l.indexAfter(-1))),u=d&&p?[{type:p,attrs:m}]:void 0,h=$e(t.doc,t.mapping.map(l.pos),1,u);if(!u&&!h&&$e(t.doc,t.mapping.map(l.pos),1,p?[{type:p}]:void 0)&&(h=!0,u=p?[{type:p,attrs:m}]:void 0),r){if(h&&(o instanceof Vo&&t.deleteSelection(),t.split(t.mapping.map(l.pos),1,u),p&&!d&&!l.parentOffset&&l.parent.type!==p)){let f=t.mapping.map(l.before()),g=t.doc.resolve(f);l.node(-1).canReplaceWith(g.index(),g.index()+1,p)&&t.setNodeMarkup(t.mapping.map(l.before()),p)}e&&Ot(n,s.extensionManager.splittableMarks),t.scrollIntoView()}return h},Yo=(e,t={})=>({tr:n,state:r,dispatch:s,editor:o})=>{var i;let l=_(e,r.schema),{$from:a,$to:c}=r.selection,m=r.selection.node;if(m&&m.isBlock||a.depth<2||!a.sameParent(c))return!1;let d=a.node(-1);if(d.type!==l)return!1;let p=o.extensionManager.attributes;if(a.parent.content.size===0&&a.node(-1).childCount===a.indexAfter(-1)){if(a.depth===2||a.node(-3).type!==l||a.index(-2)!==a.node(-2).childCount-1)return!1;if(s){let v=He.empty,y=a.index(-1)?1:a.index(-2)?2:3;for(let C=a.depth-y;C>=a.depth-3;C-=1)v=He.from(a.node(C).copy(v));let k=a.indexAfter(-1)<a.node(-2).childCount?1:a.indexAfter(-2)<a.node(-3).childCount?2:3,E={...ke(p,a.node().type.name,a.node().attrs),...t},M=((i=l.contentMatch.defaultType)==null?void 0:i.createAndFill(E))||void 0;v=v.append(He.from(l.createAndFill(null,M)||void 0));let S=a.before(a.depth-(y-1));n.replace(S,a.after(-k),new Jo(v,4-y,0));let I=-1;n.doc.nodesBetween(S,n.doc.content.size,(C,D)=>{if(I>-1)return!1;C.isTextblock&&C.content.size===0&&(I=D+1)}),I>-1&&n.setSelection(qo.near(n.doc.resolve(I))),n.scrollIntoView()}return!0}let u=c.pos===a.end()?d.contentMatchAt(0).defaultType:null,h={...ke(p,d.type.name,d.attrs),...t},f={...ke(p,a.node().type.name,a.node().attrs),...t};n.delete(a.pos,c.pos);let g=u?[{type:l,attrs:h},{type:u,attrs:f}]:[{type:l,attrs:h}];if(!Xo(n.doc,a.pos,2))return!1;if(s){let{selection:v,storedMarks:y}=r,{splittableMarks:k}=o.extensionManager,E=y||v.$to.parentOffset&&v.$from.marks();if(n.split(a.pos,2,g).scrollIntoView(),!E||!s)return!0;let M=E.filter(S=>k.includes(S.type.name));n.ensureMarks(M)}return!0},_e=(e,t)=>{let n=Ke(i=>i.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;let s=e.doc.nodeAt(r);return n.node.type===s?.type&&Jt(e.doc,n.pos)&&e.join(n.pos),!0},je=(e,t)=>{let n=Ke(i=>i.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;let s=e.doc.nodeAt(r);return n.node.type===s?.type&&Jt(e.doc,r)&&e.join(r),!0};function Qo(e){let t=e.doc,n=t.firstChild;if(!n)return null;let r=t.resolve(1),s=t.resolve(n.nodeSize-1);return Go.between(r,s)}var Zo=(e,t,n,r={})=>({editor:s,tr:o,state:i,dispatch:l,chain:a,commands:c,can:m})=>{let{extensions:d,splittableMarks:p}=s.extensionManager,u=_(e,i.schema),h=_(t,i.schema),{selection:f,storedMarks:g}=i,{$from:v,$to:y}=f,k=v.blockRange(y),E=g||f.$to.parentOffset&&f.$from.marks();if(!k)return!1;let M=Ke(B=>Oe(B.type.name,d))(f),S=f.from===0&&f.to===i.doc.content.size,I=i.doc.content.content,C=I.length===1?I[0]:null,D=S&&C&&Oe(C.type.name,d)?{node:C,pos:0,depth:0}:null,L=M??D,A=!!M&&k.depth>=1&&k.depth-M.depth<=1,F=!!D;if((A||F)&&L){if(L.node.type===u)return S&&F?a().command(({tr:B,dispatch:H})=>{let $=Qo(B);return $?(B.setSelection($),H&&H(B),!0):!1}).liftListItem(h).run():c.liftListItem(h);if(Oe(L.node.type.name,d)&&u.validContent(L.node.content))return a().command(()=>(o.setNodeMarkup(L.pos,u),!0)).command(()=>_e(o,u)).command(()=>je(o,u)).run()}return!n||!E||!l?a().command(()=>m().wrapInList(u,r)?!0:c.clearNodes()).wrapInList(u,r).command(()=>_e(o,u)).command(()=>je(o,u)).run():a().command(()=>{let B=m().wrapInList(u,r),H=E.filter($=>p.includes($.type.name));return o.ensureMarks(H),B?!0:c.clearNodes()}).wrapInList(u,r).command(()=>_e(o,u)).command(()=>je(o,u)).run()},es=(e,t={},n={})=>({state:r,commands:s})=>{let{extendEmptyMarkRange:o=!1}=n,i=q(e,r.schema);return Do(r,i,t)?s.unsetMark(i,{extendEmptyMarkRange:o}):s.setMark(i,t)},ts=(e,t,n={})=>({state:r,commands:s})=>{let o=_(e,r.schema),i=_(t,r.schema),l=Ve(r,o,n),a;return r.selection.$anchor.sameParent(r.selection.$head)&&(a=r.selection.$anchor.parent.attrs),l?s.setNode(i,a):s.setNode(o,{...a,...n})},ns=(e,t={})=>({state:n,commands:r})=>{let s=_(e,n.schema);return Ve(n,s,t)?r.lift(s):r.wrapIn(s,t)},rs=()=>({state:e,dispatch:t})=>{let n=e.plugins;for(let r=0;r<n.length;r+=1){let s=n[r],o;if(s.spec.isInputRules&&(o=s.getState(e))){if(t){let i=e.tr,l=o.transform;for(let a=l.steps.length-1;a>=0;a-=1)i.step(l.steps[a].invert(l.docs[a]));if(o.text){let a=i.doc.resolve(o.from).marks();i.replaceWith(o.from,o.to,e.schema.text(o.text,a))}else i.delete(o.from,o.to)}return!0}}return!1},os=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,{empty:r,ranges:s}=n;return r||t&&s.forEach(o=>{e.removeMark(o.$from.pos,o.$to.pos)}),!0},ss=(e,t={})=>({tr:n,state:r,dispatch:s})=>{var o;let{extendEmptyMarkRange:i=!1}=t,{selection:l}=n,a=q(e,r.schema),{$from:c,empty:m,ranges:d}=l;if(!s)return!0;if(m&&i){let{from:p,to:u}=l,h=(o=c.marks().find(g=>g.type===a))==null?void 0:o.attrs,f=Ht(c,a,h);f&&(p=f.from,u=f.to),n.removeMark(p,u,a)}else d.forEach(p=>{n.removeMark(p.$from.pos,p.$to.pos,a)});return n.removeStoredMark(a),!0},is=e=>({tr:t,state:n,dispatch:r})=>{let{selection:s}=n,o,i;return typeof e=="number"?(o=e,i=e):e&&"from"in e&&"to"in e?(o=e.from,i=e.to):(o=s.from,i=s.to),r&&t.doc.nodesBetween(o,i,(l,a)=>{if(l.isText)return;let c={...l.attrs};delete c.dir,t.setNodeMarkup(a,void 0,c)}),!0},as=(e,t={})=>({tr:n,state:r,dispatch:s})=>{let o=null,i=null,l=Rt(typeof e=="string"?e:e.name,r.schema);if(!l)return!1;l==="node"&&(o=_(e,r.schema)),l==="mark"&&(i=q(e,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{let m=c.$from.pos,d=c.$to.pos,p,u,h,f;n.selection.empty?r.doc.nodesBetween(m,d,(g,v)=>{o&&o===g.type&&(a=!0,h=Math.max(v,m),f=Math.min(v+g.nodeSize,d),p=v,u=g)}):r.doc.nodesBetween(m,d,(g,v)=>{v<m&&o&&o===g.type&&(a=!0,h=Math.max(v,m),f=Math.min(v+g.nodeSize,d),p=v,u=g),v>=m&&v<=d&&(o&&o===g.type&&(a=!0,s&&n.setNodeMarkup(v,void 0,{...g.attrs,...t})),i&&g.marks.length&&g.marks.forEach(y=>{if(i===y.type&&(a=!0,s)){let k=Math.max(v,m),E=Math.min(v+g.nodeSize,d);n.addMark(k,E,i.create({...y.attrs,...t}))}}))}),u&&(p!==void 0&&s&&n.setNodeMarkup(p,void 0,{...u.attrs,...t}),i&&u.marks.length&&u.marks.forEach(g=>{i===g.type&&s&&n.addMark(h,f,i.create({...g.attrs,...t}))}))}),a},ls=(e,t={})=>({state:n,dispatch:r})=>{let s=_(e,n.schema);return cs(s,t)(n,r)},us=(e,t={})=>({state:n,dispatch:r})=>{let s=_(e,n.schema);return ds(s,t)(n,r)};var hs=(e,t)=>{if(We(t))return t.exec(e);let n=t(e);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function xe(e){var t;let{editor:n,from:r,to:s,text:o,rules:i,plugin:l}=e,{view:a}=n;if(a.composing)return!1;let c=a.state.doc.resolve(r);if(c.parent.type.spec.code||(t=c.nodeBefore||c.nodeAfter)!=null&&t.marks.find(p=>p.type.spec.code))return!1;let m=!1,d=Lo(c)+o;return i.forEach(p=>{if(m)return;let u=hs(d,p.find);if(!u)return;let h=a.state.tr,f=Ee({state:a.state,transaction:h}),g={from:r-(u[0].length-o.length),to:s},{commands:v,chain:y,can:k}=new Fe({editor:n,state:f});p.handler({state:f,range:g,match:u,commands:v,chain:y,can:k})===null||!h.steps.length||(p.undoable&&h.setMeta(l,{transform:h,from:r,to:s,text:o}),a.dispatch(h),m=!0)}),m}function gs(e){let{editor:t,rules:n}=e,r=new fs({state:{init(){return null},apply(s,o,i){let l=s.getMeta(r);if(l)return l;let a=s.getMeta("applyInputRules");return a&&setTimeout(()=>{let{text:m}=a;typeof m=="string"?m=m:m=Ft(ps.from(m),i.schema);let{from:d}=a,p=d+m.length;xe({editor:t,from:d,to:p,text:m,rules:n,plugin:r})}),s.selectionSet||s.docChanged?null:o}},props:{handleTextInput(s,o,i,l){return xe({editor:t,from:o,to:i,text:l,rules:n,plugin:r})},handleDOMEvents:{compositionend:s=>(setTimeout(()=>{let{$cursor:o}=s.state.selection;o&&xe({editor:t,from:o.pos,to:o.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(s,o){if(o.key!=="Enter")return!1;let{$cursor:i}=s.state.selection;return i?xe({editor:t,from:i.pos,to:i.pos,text:`
4
+ `,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function vs(e){return Object.prototype.toString.call(e).slice(8,-1)}function be(e){return vs(e)!=="Object"?!1:e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function qt(e,t){let n={...e};return be(e)&&be(t)&&Object.keys(t).forEach(r=>{be(t[r])&&be(e[r])?n[r]=qt(e[r],t[r]):n[r]=t[r]}),n}var qe=class{constructor(e={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...O(x(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...O(x(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>qt(this.options,e)});return t.name=this.name,t.parent=this.parent,this.child=null,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name="name"in e?e.name:t.parent.name,t}},Xe=class Xt extends qe{constructor(){super(...arguments),this.type="mark"}static create(t={}){let n=typeof t=="function"?t():t;return new Xt(n)}static handleExit({editor:t,mark:n}){let{tr:r}=t.state,s=t.state.selection.$from;if(s.pos===s.end()){let i=s.marks();if(!!!i.find(c=>c?.type.name===n.name))return!1;let a=i.find(c=>c?.type.name===n.name);return a&&r.removeStoredMark(a),r.insertText(" ",s.pos),t.view.dispatch(r),!0}return!1}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}};function bs(e){return typeof e=="number"}var ws=(e,t,n)=>{if(We(t))return[...e.matchAll(t)];let r=t(e,n);return r?r.map(s=>{let o=[s.text];return o.index=s.index,o.input=e,o.data=s.data,s.replaceWith&&(s.text.includes(s.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),o.push(s.replaceWith)),o}):[]};function ks(e){let{editor:t,state:n,from:r,to:s,rule:o,pasteEvent:i,dropEvent:l}=e,{commands:a,chain:c,can:m}=new Fe({editor:t,state:n}),d=[];return n.doc.nodesBetween(r,s,(u,h)=>{var f,g,v,y,k;if((g=(f=u.type)==null?void 0:f.spec)!=null&&g.code||!(u.isText||u.isTextblock||u.isInline))return;let E=(k=(y=(v=u.content)==null?void 0:v.size)!=null?y:u.nodeSize)!=null?k:0,M=Math.max(r,h),S=Math.min(s,h+E);if(M>=S)return;let I=u.isText?u.text||"":u.textBetween(M-h,S-h,void 0,"\uFFFC");ws(I,o.find,i).forEach(D=>{if(D.index===void 0)return;let L=M+D.index+1,A=L+D[0].length,F={from:n.tr.mapping.map(L),to:n.tr.mapping.map(A)},B=o.handler({state:n,range:F,match:D,commands:a,chain:c,can:m,pasteEvent:i,dropEvent:l});d.push(B)})}),d.every(u=>u!==null)}var we=null,Ms=e=>{var t;let n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(t=n.clipboardData)==null||t.setData("text/html",e),n};function Ss(e){let{editor:t,rules:n}=e,r=null,s=!1,o=!1,i=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,l;try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}let a=({state:m,from:d,to:p,rule:u,pasteEvt:h})=>{let f=m.tr,g=Ee({state:m,transaction:f});if(!(!ks({editor:t,state:g,from:Math.max(d-1,0),to:p.b-1,rule:u,pasteEvent:h,dropEvent:l})||!f.steps.length)){try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}return i=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,f}};return n.map(m=>new xs({view(d){let p=h=>{var f;r=(f=d.dom.parentElement)!=null&&f.contains(h.target)?d.dom.parentElement:null,r&&(we=t)},u=()=>{we&&(we=null)};return window.addEventListener("dragstart",p),window.addEventListener("dragend",u),{destroy(){window.removeEventListener("dragstart",p),window.removeEventListener("dragend",u)}}},props:{handleDOMEvents:{drop:(d,p)=>{if(o=r===d.dom.parentElement,l=p,!o){let u=we;u?.isEditable&&setTimeout(()=>{let h=u.state.selection;h&&u.commands.deleteRange({from:h.from,to:h.to})},10)}return!1},paste:(d,p)=>{var u;let h=(u=p.clipboardData)==null?void 0:u.getData("text/html");return i=p,s=!!h?.includes("data-pm-slice"),!1}}},appendTransaction:(d,p,u)=>{let h=d[0],f=h.getMeta("uiEvent")==="paste"&&!s,g=h.getMeta("uiEvent")==="drop"&&!o,v=h.getMeta("applyPasteRules"),y=!!v;if(!f&&!g&&!y)return;if(y){let{text:M}=v;typeof M=="string"?M=M:M=Ft(ys.from(M),u.schema);let{from:S}=v,I=S+M.length,C=Ms(M);return a({rule:m,state:u,from:S,to:{b:I},pasteEvt:C})}let k=p.doc.content.findDiffStart(u.doc.content),E=p.doc.content.findDiffEnd(u.doc.content);if(!(!bs(k)||!E||k===E.b))return a({rule:m,state:u,from:k,to:E,pasteEvt:i})}}))}var Ye=class{constructor(e,t){this.splittableMarks=[],this.editor=t,this.baseExtensions=e,this.extensions=Vt(e),this.schema=To(this.extensions,t),this.setupExtensions()}get commands(){return this.extensions.reduce((e,t)=>{let n={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:le(t.name,this.schema)},r=x(t,"addCommands",n);return r?{...e,...r()}:e},{})}get plugins(){let{editor:e}=this;return de([...this.extensions].reverse()).flatMap(r=>{let s={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:e,type:le(r.name,this.schema)},o=[],i=x(r,"addKeyboardShortcuts",s),l={};if(r.type==="mark"&&x(r,"exitable",s)&&(l.ArrowRight=()=>Xe.handleExit({editor:e,mark:r})),i){let p=Object.fromEntries(Object.entries(i()).map(([u,h])=>[u,()=>h({editor:e})]));l={...l,...p}}let a=ms(l);o.push(a);let c=x(r,"addInputRules",s);if(Dt(r,e.options.enableInputRules)&&c){let p=c();if(p&&p.length){let u=gs({editor:e,rules:p}),h=Array.isArray(u)?u:[u];o.push(...h)}}let m=x(r,"addPasteRules",s);if(Dt(r,e.options.enablePasteRules)&&m){let p=m();if(p&&p.length){let u=Ss({editor:e,rules:p});o.push(...u)}}let d=x(r,"addProseMirrorPlugins",s);if(d){let p=d();o.push(...p)}return o})}get attributes(){return Wt(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:t}=re(this.extensions);return Object.fromEntries(t.filter(n=>!!x(n,"addNodeView")).map(n=>{let r=this.attributes.filter(a=>a.type===n.name),s={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:e,type:_(n.name,this.schema)},o=x(n,"addNodeView",s);if(!o)return[];let i=o();if(!i)return[];let l=(a,c,m,d,p)=>{let u=Te(a,r);return i({node:a,view:c,getPos:m,decorations:d,innerDecorations:p,editor:e,extension:n,HTMLAttributes:u})};return[n.name,l]}))}dispatchTransaction(e){let{editor:t}=this;return de([...this.extensions].reverse()).reduceRight((r,s)=>{let o={name:s.name,options:s.options,storage:this.editor.extensionStorage[s.name],editor:t,type:le(s.name,this.schema)},i=x(s,"dispatchTransaction",o);return i?l=>{i.call(o,{transaction:l,next:r})}:r},e)}transformPastedHTML(e){let{editor:t}=this;return de([...this.extensions]).reduce((r,s)=>{let o={name:s.name,options:s.options,storage:this.editor.extensionStorage[s.name],editor:t,type:le(s.name,this.schema)},i=x(s,"transformPastedHTML",o);return i?(l,a)=>{let c=r(l,a);return i.call(o,c)}:r},e||(r=>r))}get markViews(){let{editor:e}=this,{markExtensions:t}=re(this.extensions);return Object.fromEntries(t.filter(n=>!!x(n,"addMarkView")).map(n=>{let r=this.attributes.filter(l=>l.type===n.name),s={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:e,type:q(n.name,this.schema)},o=x(n,"addMarkView",s);if(!o)return[];let i=(l,a,c)=>{let m=Te(l,r);return o()({mark:l,view:a,inline:c,editor:e,extension:n,HTMLAttributes:m,updateAttributes:d=>{ai(l,e,d)}})};return[n.name,i]}))}destroy(){this.extensions.forEach(e=>{let t=e;for(;t.parent;){let n=t.parent;n.child===t&&(n.child=null),t=n}}),this.extensions=[],this.baseExtensions=[],this.schema=null,this.editor=null}setupExtensions(){let e=this.extensions;this.editor.extensionStorage=Object.fromEntries(e.map(t=>[t.name,t.storage])),e.forEach(t=>{var n;let r={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:le(t.name,this.schema)};t.type==="mark"&&((n=O(x(t,"keepOnSplit",r)))==null||n)&&this.splittableMarks.push(t.name);let s=x(t,"onBeforeCreate",r),o=x(t,"onCreate",r),i=x(t,"onUpdate",r),l=x(t,"onSelectionUpdate",r),a=x(t,"onTransaction",r),c=x(t,"onFocus",r),m=x(t,"onBlur",r),d=x(t,"onDestroy",r);s&&this.editor.on("beforeCreate",s),o&&this.editor.on("create",o),i&&this.editor.on("update",i),l&&this.editor.on("selectionUpdate",l),a&&this.editor.on("transaction",a),c&&this.editor.on("focus",c),m&&this.editor.on("blur",m),d&&this.editor.on("destroy",d)})}};Ye.resolve=Vt;Ye.sort=de;Ye.flatten=Je;var Ts={};Re(Ts,{ClipboardTextSerializer:()=>Is,Commands:()=>As,Delete:()=>Ns,Drop:()=>zs,Editable:()=>$s,FocusEvents:()=>js,Keymap:()=>Fs,Paste:()=>Ks,Tabindex:()=>Xs,TextDirection:()=>Qs,focusEventsPluginKey:()=>Gt});var J=class Yt extends qe{constructor(){super(...arguments),this.type="extension"}static create(t={}){let n=typeof t=="function"?t():t;return new Yt(n)}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}},Is=J.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new Es({key:new Cs("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:s}=t,{ranges:o}=s,i=Math.min(...o.map(m=>m.$from.pos)),l=Math.max(...o.map(m=>m.$to.pos)),a=Io(n);return Co(r,{from:i,to:l},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:a})}}})]}}),As=J.create({name:"commands",addCommands(){return{...Bt}}}),Ns=J.create({name:"delete",onUpdate({transaction:e,appendedTransactions:t}){var n,r,s;let o=()=>{var i,l,a,c;if((c=(a=(l=(i=this.editor.options.coreExtensionOptions)==null?void 0:i.delete)==null?void 0:l.filterTransaction)==null?void 0:a.call(l,e))!=null?c:e.getMeta("y-sync$"))return;let m=go(e.before,[e,...t]);No(m).forEach(u=>{m.mapping.mapResult(u.oldRange.from).deletedAfter&&m.mapping.mapResult(u.oldRange.to).deletedBefore&&m.before.nodesBetween(u.oldRange.from,u.oldRange.to,(h,f)=>{let g=f+h.nodeSize-2,v=u.oldRange.from<=f&&g<=u.oldRange.to;this.editor.emit("delete",{type:"node",node:h,from:f,to:g,newFrom:m.mapping.map(f),newTo:m.mapping.map(g),deletedRange:u.oldRange,newRange:u.newRange,partial:!v,editor:this.editor,transaction:e,combinedTransform:m})})});let p=m.mapping;m.steps.forEach((u,h)=>{var f,g;if(u instanceof Ps){let v=p.slice(h).map(u.from,-1),y=p.slice(h).map(u.to),k=p.invert().map(v,-1),E=p.invert().map(y),M=v>0?(f=m.doc.nodeAt(v-1))==null?void 0:f.marks.some(I=>I.eq(u.mark)):!1,S=(g=m.doc.nodeAt(y))==null?void 0:g.marks.some(I=>I.eq(u.mark));this.editor.emit("delete",{type:"mark",mark:u.mark,from:u.from,to:u.to,deletedRange:{from:k,to:E},newRange:{from:v,to:y},partial:!!(S||M),editor:this.editor,transaction:e,combinedTransform:m})}})};(s=(r=(n=this.editor.options.coreExtensionOptions)==null?void 0:n.delete)==null?void 0:r.async)==null||s?setTimeout(o,0):o()}}),zs=J.create({name:"drop",addProseMirrorPlugins(){return[new Ls({key:new Ds("tiptapDrop"),props:{handleDrop:(e,t,n,r)=>{this.editor.emit("drop",{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),$s=J.create({name:"editable",addProseMirrorPlugins(){return[new Os({key:new Bs("editable"),props:{editable:()=>this.editor.options.editable}})]}}),Gt=new _s("focusEvents"),js=J.create({name:"focusEvents",addProseMirrorPlugins(){let{editor:e}=this;return[new Hs({key:Gt,props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;let r=e.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;let r=e.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1}}}})]}}),Fs=J.create({name:"keymap",addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:i})=>[()=>i.undoInputRule(),()=>i.command(({tr:l})=>{let{selection:a,doc:c}=l,{empty:m,$anchor:d}=a,{pos:p,parent:u}=d,h=d.parent.isTextblock&&p>0?l.doc.resolve(p-1):d,f=h.parent.type.spec.isolating,g=d.pos-d.parentOffset,v=f&&h.parent.childCount===1?g===d.pos:Ue.atStart(c).from===p;return!m||!u.type.isTextblock||u.textContent.length||!v||v&&d.parent.type.name==="paragraph"?!1:i.clearNodes()}),()=>i.deleteSelection(),()=>i.joinBackward(),()=>i.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:i})=>[()=>i.deleteSelection(),()=>i.deleteCurrentNode(),()=>i.joinForward(),()=>i.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:i})=>[()=>i.newlineInCode(),()=>i.createParagraphNear(),()=>i.liftEmptyBlock(),()=>i.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},s={...r},o={...r,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return Se()||Ut()?o:s},addProseMirrorPlugins(){return[new Us({key:new Rs("clearDocument"),appendTransaction:(e,t,n)=>{if(e.some(f=>f.getMeta("composition")))return;let r=e.some(f=>f.docChanged)&&!t.doc.eq(n.doc),s=e.some(f=>f.getMeta("preventClearDocument"));if(!r||s)return;let{empty:o,from:i,to:l}=t.selection,a=Ue.atStart(t.doc).from,c=Ue.atEnd(t.doc).to;if(o||!(i===a&&l===c)||!Kt(n.doc))return;let p=n.tr,u=Ee({state:n,transaction:p}),{commands:h}=new Fe({editor:this.editor,state:u});if(h.clearNodes(),!!p.steps.length)return p}})]}}),Ks=J.create({name:"paste",addProseMirrorPlugins(){return[new Ws({key:new Vs("tiptapPaste"),props:{handlePaste:(e,t,n)=>{this.editor.emit("paste",{editor:this.editor,event:t,slice:n})}}})]}}),Xs=J.create({name:"tabindex",addOptions(){return{value:void 0}},addProseMirrorPlugins(){return[new Js({key:new qs("tabindex"),props:{attributes:()=>{var e;return!this.editor.isEditable&&this.options.value===void 0?{}:{tabindex:(e=this.options.value)!=null?e:"0"}}}})]}}),Qs=J.create({name:"textDirection",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:e}=re(this.extensions);return[{types:e.filter(t=>t.name!=="text").map(t=>t.name),attributes:{dir:{default:this.options.direction,parseHTML:t=>{let n=t.getAttribute("dir");return n&&(n==="ltr"||n==="rtl"||n==="auto")?n:this.options.direction},renderHTML:t=>t.dir?{dir:t.dir}:{}}}}]},addProseMirrorPlugins(){return[new Ys({key:new Gs("textDirection"),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}});var Zs={};Re(Zs,{createAtomBlockMarkdownSpec:()=>ei,createBlockMarkdownSpec:()=>ti,createInlineMarkdownSpec:()=>oi,parseAttributes:()=>Ge,parseIndentedBlocks:()=>si,renderNestedMarkdownContent:()=>ii,serializeAttributes:()=>Qe});function Ge(e){if(!e?.trim())return{};let t={},n=[],r=e.replace(/["']([^"']*)["']/g,c=>(n.push(c),`__QUOTED_${n.length-1}__`)),s=r.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(s){let c=s.map(m=>m.trim().slice(1));t.class=c.join(" ")}let o=r.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);o&&(t.id=o[1]);let i=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(r.matchAll(i)).forEach(([,c,m])=>{var d;let p=parseInt(((d=m.match(/__QUOTED_(\d+)__/))==null?void 0:d[1])||"0",10),u=n[p];u&&(t[c]=u.slice(1,-1))});let a=r.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return a&&a.split(/\s+/).filter(Boolean).forEach(m=>{m.match(/^[a-zA-Z][\w-]*$/)&&(t[m]=!0)}),t}function Qe(e){if(!e||Object.keys(e).length===0)return"";let t=[];return e.class&&String(e.class).split(/\s+/).filter(Boolean).forEach(r=>t.push(`.${r}`)),e.id&&t.push(`#${e.id}`),Object.entries(e).forEach(([n,r])=>{n==="class"||n==="id"||(r===!0?t.push(n):r!==!1&&r!=null&&t.push(`${n}="${String(r)}"`))}),t.join(" ")}function ei(e){let{nodeName:t,name:n,parseAttributes:r=Ge,serializeAttributes:s=Qe,defaultAttributes:o={},requiredAttributes:i=[],allowedAttributes:l}=e,a=n||t,c=m=>{if(!l)return m;let d={};return l.forEach(p=>{p in m&&(d[p]=m[p])}),d};return{parseMarkdown:(m,d)=>{let p={...o,...m.attributes};return d.createNode(t,p,[])},markdownTokenizer:{name:t,level:"block",start(m){var d;let p=new RegExp(`^:::${a}(?:\\s|$)`,"m"),u=(d=m.match(p))==null?void 0:d.index;return u!==void 0?u:-1},tokenize(m,d,p){let u=new RegExp(`^:::${a}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),h=m.match(u);if(!h)return;let f=h[1]||"",g=r(f);if(!i.find(y=>!(y in g)))return{type:t,raw:h[0],attributes:g}}},renderMarkdown:m=>{let d=c(m.attrs||{}),p=s(d),u=p?` {${p}}`:"";return`:::${a}${u} :::`}}}function ti(e){let{nodeName:t,name:n,getContent:r,parseAttributes:s=Ge,serializeAttributes:o=Qe,defaultAttributes:i={},content:l="block",allowedAttributes:a}=e,c=n||t,m=d=>{if(!a)return d;let p={};return a.forEach(u=>{u in d&&(p[u]=d[u])}),p};return{parseMarkdown:(d,p)=>{let u;if(r){let f=r(d);u=typeof f=="string"?[{type:"text",text:f}]:f}else l==="block"?u=p.parseChildren(d.tokens||[]):u=p.parseInline(d.tokens||[]);let h={...i,...d.attributes};return p.createNode(t,h,u)},markdownTokenizer:{name:t,level:"block",start(d){var p;let u=new RegExp(`^:::${c}`,"m"),h=(p=d.match(u))==null?void 0:p.index;return h!==void 0?h:-1},tokenize(d,p,u){var h;let f=new RegExp(`^:::${c}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),g=d.match(f);if(!g)return;let[v,y=""]=g,k=s(y),E=1,M=v.length,S="",I=/^:::([\w-]*)(\s.*)?/gm,C=d.slice(M);for(I.lastIndex=0;;){let D=I.exec(C);if(D===null)break;let L=D.index,A=D[1];if(!((h=D[2])!=null&&h.endsWith(":::"))){if(A)E+=1;else if(E-=1,E===0){let F=C.slice(0,L);S=F.trim();let B=d.slice(0,M+L+D[0].length),H=[];if(S)if(l==="block")for(H=u.blockTokens(F),H.forEach($=>{$.text&&(!$.tokens||$.tokens.length===0)&&($.tokens=u.inlineTokens($.text))});H.length>0;){let $=H[H.length-1];if($.type==="paragraph"&&(!$.text||$.text.trim()===""))H.pop();else break}else H=u.inlineTokens(S);return{type:t,raw:B,attributes:k,content:S,tokens:H}}}}}},renderMarkdown:(d,p)=>{let u=m(d.attrs||{}),h=o(u),f=h?` {${h}}`:"",g=p.renderChildren(d.content||[],`
5
5
 
6
6
  `);return`:::${c}${f}
7
7
 
@@ -18,4 +18,4 @@ ${g}
18
18
  `);a+=c.type==="paragraph"?`
19
19
 
20
20
  ${h}`:`
21
- ${h}`}}),a}function ai(e,t,n={}){let{state:r}=t,{doc:s,tr:o}=r,i=e;s.descendants((l,a)=>{let c=o.mapping.map(a),m=o.mapping.map(a)+l.nodeSize,d=null;if(l.marks.forEach(u=>{if(u!==i)return!1;d=u}),!d)return;let p=!1;if(Object.keys(n).forEach(u=>{n[u]!==d.attrs[u]&&(p=!0)}),p){let u=e.type.create({...e.attrs,...n});o.removeMark(c,m,e.type),o.addMark(c,m,u)}}),o.docChanged&&t.view.dispatch(o)}var Gt=class Qt extends qe{constructor(){super(...arguments),this.type="node"}static create(t={}){let n=typeof t=="function"?t():t;return new Qt(n)}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}};var ci=Xe.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["u",me(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||"underline",t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:"underline",level:"inline",start(e){return e.indexOf("++")},tokenize(e,t,n){let s=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!s)return;let o=s[2].trim();return{type:"underline",raw:s[0],text:o,tokens:n.inlineTokens(o)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),Zt=ci;import{useEditor as Si}from"@tiptap/react";import Ti from"@tiptap/starter-kit";import{Link as Ei,RichTextEditor as j}from"@mantine/tiptap";import{ActionIcon as pe,Menu as oe}from"@mantine/core";import te,{useState as li,lazy as di,Suspense as ui,cloneElement as mi}from"react";import{Popover as Ze,Skeleton as pi}from"@mantine/core";import fi from"@emoji-mart/data";var hi=di(()=>import("@emoji-mart/react"));function et({onSelect:e,action:t,size:n=320,offset:r=8,position:s="bottom-start",colorScheme:o="light"}){let[i,l]=li(!1);return te.createElement(Ze,{opened:i,onChange:l,width:n,position:s,offset:r,withArrow:!0,shadow:"md",trapFocus:!1,closeOnEscape:!0},te.createElement(Ze.Target,null,mi(t,{onClick:a=>{t.props?.onClick?.(a),l(c=>!c)}})),te.createElement(Ze.Dropdown,{p:0},te.createElement(ui,{fallback:te.createElement("div",{style:{padding:12,width:320}},te.createElement(pi,{height:280,radius:"md"}))},te.createElement(hi,{previewPosition:"none",theme:o,data:fi,onEmojiSelect:a=>{e(a.native),l(!1)}}))))}var en=Gt.create({name:"emoji",inline:!0,group:"inline",selectable:!1,atom:!0,addAttributes(){return{emoji:{default:"\u{1F600}"}}},parseHTML(){return[{tag:"span[data-emoji]"}]},renderHTML({HTMLAttributes:e}){return["span",me(e,{class:"emoji-big","data-emoji":e.emoji}),e.emoji]}});function tt({content:e="",maxLength:t=3e3,onChange:n,onSubmit:r,colorScheme:s="light"}){let[o,i]=Ce(0),[l,a]=Ce(!1),[c,m]=Ce(!1),[d,p]=Ce(!1),u=()=>{if(!f)return;let g=f.getHTML();f.getText().trim()&&(r?.(g),f.commands.clearContent(),f.commands.focus(),i(0),a(!1))},h=(g,v)=>v.key==="Enter"&&!v.shiftKey?(v.preventDefault(),u(),!0):v.key==="Enter"&&v.shiftKey?(v.preventDefault(),f?.commands.setHardBreak(),!0):!1,f=Si({extensions:[Ti,en,Zt,Ei,ki,wi,bi,Mi.configure({types:["heading","paragraph"]})],content:e,editorProps:{handleKeyDown:h},onUpdate:({editor:g})=>{let v=g.getHTML(),y=v.replace(/(<br\s*\/?>\s*){3,}/g,"<br><br>");if(y!==v){let{from:M,to:S}=g.state.selection;g.commands.setContent(y),g.commands.setTextSelection({from:Math.min(M,g.state.doc.content.size),to:Math.min(S,g.state.doc.content.size)});return}let k=g.getText(),E=k.trim().length>0;i(k.length),a(E),m(t?k.length>=t:!1),n?.(g.getHTML())},immediatelyRender:!1});return T.createElement(T.Fragment,null,T.createElement(j,{editor:f,w:"100%",className:"mrchat-richTextEditorContainer"},T.createElement(j.Content,null),T.createElement(j.Toolbar,{sticky:!0,stickyOffset:"var(--docs-header-height)"},T.createElement("div",{className:"mrchat-mainActionContainer"},T.createElement(et,{colorScheme:s,onSelect:g=>{f?.chain().focus().insertContent({type:"emoji",attrs:{emoji:g}}).run()},action:T.createElement(pe,{radius:"lg",variant:"subtle","aria-label":"add",className:"mrchat-mainActionEmojiIcon"},T.createElement(yi,null))}),T.createElement(pe,{radius:"lg",variant:"subtle","aria-label":"text_format",className:"mrchat-mainTextFormatIcon",onClick:()=>p(g=>!g)},T.createElement(xi,{stroke:1.7})),T.createElement(pe,{radius:"lg",variant:"filled","aria-label":"send",className:"mrchat-mainSendMsgIcon",onClick:u,disabled:!l},T.createElement(tn,{size:18}))),T.createElement(pe,{radius:"lg",variant:"filled","aria-label":"send",className:"mrchat-sm-mainSendMsgIcon",onClick:u,disabled:!l},T.createElement(tn,{size:18})),d&&T.createElement(T.Fragment,null,T.createElement(j.ControlsGroup,null,T.createElement(j.Bold,null),T.createElement(j.Italic,null),T.createElement(j.Underline,null),T.createElement(j.Strikethrough,null),T.createElement(j.Code,null),T.createElement(j.Highlight,null)),T.createElement(j.ControlsGroup,{className:"mrchat-secondRichTextEditorToolBar"},T.createElement(j.BulletList,null),T.createElement(j.OrderedList,null),T.createElement(oe,{trigger:"hover",openDelay:200},T.createElement(oe.Target,null,T.createElement(pe,{variant:"outline",size:"md",className:"mrchat-customToolActionItem"},T.createElement(nn,{size:16,stroke:1.5}))),T.createElement(oe.Dropdown,null,T.createElement(oe.Item,{onClick:()=>f?.chain().focus().setTextAlign("left").run()},T.createElement(nn,{size:14})),T.createElement(oe.Item,{onClick:()=>f?.chain().focus().setTextAlign("center").run()},T.createElement(gi,{size:14})),T.createElement(oe.Item,{onClick:()=>f?.chain().focus().setTextAlign("right").run()},T.createElement(vi,{size:14})))),T.createElement(j.Link,null)),T.createElement(j.ControlsGroup,{className:"mrchat-secondRichTextEditorToolBar"},T.createElement(j.ClearFormatting,null)))),c&&T.createElement("div",{style:{textAlign:"right",color:"red",fontSize:12,marginTop:4}},"Character limit reached (",o,"/",t,")")))}import{useDispatch as Di,useSelector as zi}from"react-redux";import z,{useEffect as dn,useState as ot}from"react";import Oi from"dompurify";import rn,{useRef as Ie,useEffect as on}from"react";function sn({data:e,renderItem:t,loadMore:n,hasMore:r,scrollToBottomTrigger:s}){let o=Ie(null),i=Ie(!1),l=Ie(!0),a=Ie(0);on(()=>{let d=o.current;d&&setTimeout(()=>{d.scrollTop=d.scrollHeight},100)},[s]),on(()=>{let d=o.current;!d||!e.length||(l.current&&(d.scrollTop=d.scrollHeight,l.current=!1),a.current=e.length)},[e]);let c=()=>{let d=o.current;d&&d.scrollTop<50&&r&&!i.current&&m()},m=async()=>{let d=o.current;if(!d||i.current||!r)return;i.current=!0;let p=d.scrollHeight,u=d.scrollTop;await n(),setTimeout(()=>{let f=d.scrollHeight-p;d.scrollTop=u+f,i.current=!1},50)};return rn.createElement("div",{ref:o,onScroll:c,style:{overflowY:"auto",height:"100%",display:"flex",flexDirection:"column"}},e.map((d,p)=>rn.createElement("div",{key:d?.id||p},t(d,p))))}import R,{useEffect as Ci,useState as an}from"react";import{Avatar as Ii,Text as nt}from"@mantine/core";import{IconArrowLeft as Ai}from"@tabler/icons-react";function rt({opened:e,onClose:t,user:n,onDeleteMessages:r,onBlock:s}){let[o,i]=an(e),[l,a]=an(!1);Ci(()=>{e&&i(!0)},[e]);let c=()=>{i(!1),setTimeout(t,250)};return!e&&!o?null:R.createElement(R.Fragment,null,R.createElement("div",{className:"mrchat-overlay",onClick:c},R.createElement("div",{className:`mrchat-drawer ${o?"mrchat-open":"mrchat-close"}`,onClick:m=>m.stopPropagation()},R.createElement("div",{className:"mrchat-header"},R.createElement("div",{className:"mrchat-backBtn",onClick:c},R.createElement(Ai,{size:20})),R.createElement(nt,{fw:600},"Contact info")),R.createElement("div",{className:"mrchat-profileSection"},R.createElement(Ii,{src:n?.avatar,size:150,radius:"xl",style:{cursor:"pointer"},onClick:()=>n?.avatar?a(!0):{}}),R.createElement(nt,{fw:700,size:"lg",mt:"sm"},n?.displayName),R.createElement(nt,{size:"sm",c:"dimmed"},"@",n?.username)))),l&&R.createElement("div",{className:"mrchat-imagePreview",onClick:()=>a(!1)},R.createElement("img",{src:n?.avatar,alt:"profile"})))}function un({chatId:e,enableChat:t,senderDetails:n,receiverDetails:r,onChatInitialized:s,onBack:o,showBackButton:i,colorScheme:l}){let a=Di(),c=zi(S=>S.chat.messageList),[m,d]=ot(0),[p,u]=ot(0),[h,f]=ot(!1),g=c?.rows?.data||[],v=g.length===0,y=()=>{let S=c?.hasMore;if(!e||!S)return;let I=m+1;a(Le({chatId:e,page:I,userId:n?.userId})),d(I)};dn(()=>{e&&(d(0),a(Le({chatId:e,page:0,userId:n?.userId})))},[e]),dn(()=>{if(!n?.userId||!Z())return;let S=W(n?.userId||"");if(!S)return;let I=C=>{C.chatId===e&&a(De({id:Date.now(),chatId:C.chatId,message:C.message,sender:C.sender,recipient:C.recipient,type:C.type,status:C.status,createdAt:C.time}))};return S.on("newmessage",I),()=>{S.off("newmessage",I)}},[e,n?.userId]);let k=S=>{let I=W(n?.userId||""),C={message:S,sender:n?.userId,receiver:r?.userId,type:"text",username:n?.username};if(!c?.rows?.data?.length){I?.emit("initializeNewChat",{...C,senderUserDetails:{userId:n?.userId,username:n?.username,displayName:n?.displayName,avatar:n?.avatar},receiverUserDetails:{userId:r?.userId,username:r?.username,displayName:r?.displayName,avatar:r?.avatar}},L=>{if(L?.status==="success"){let{data:A}=L;a(ae({id:Date.now(),chatId:A.chatId,message:A.message,sender:A.sender,recipient:A.recipient,type:A.type,status:A.status,createdAt:new Date(A.time).getTime(),updatedAt:new Date(A.time).getTime(),userId:r?.userId,username:r?.username,displayName:r?.displayName,avatar:r?.avatar})),a(De({id:Date.now(),chatId:A.chatId,message:A.message,sender:A.sender,recipient:A.recipient,type:A.type,status:A.status,createdAt:Date.now()})),s?.(A)}else console.log("Failed to initialize chat",L?.error)});return}I?.emit("privatemessage",{...C,chatId:e}),u(L=>L+1)},E=()=>{c.hasMore&&y()},M=()=>{!e||!n?.userId||a(pt({chatId:e,userId:n?.userId}))};return z.createElement("div",{className:"mrchat-mainArea"},z.createElement("div",{className:"mrchat-chatHeader"},i&&o&&z.createElement(Pi,{variant:"subtle",className:"mrchat-backButton",onClick:o},z.createElement(Ni,{size:20})),r&&z.createElement(z.Fragment,null,z.createElement("div",{className:"mrchat-receiverInfo",onClick:()=>f(!0)},r?.avatar?z.createElement(ln,{src:r.avatar,size:36,radius:"xl"}):z.createElement(ln,{key:r?.displayName||r?.username,name:r?.displayName||r?.username,color:"initials"}),z.createElement(cn,{fw:600,size:"md"},r?.displayName||r?.username)))),z.createElement("div",{className:"mrchat-messageArea"},v?z.createElement("div",{className:"mrchat-emptyState"},z.createElement("div",{className:"mrchat-encryptionMinimal"},z.createElement(Li,{size:20,stroke:1.8}),z.createElement(cn,{className:"mrchat-encryptionText",size:"md"},"End-to-end encrypted"))):z.createElement(sn,{data:g,hasMore:c?.hasMore,loadMore:E,scrollToBottomTrigger:p,renderItem:(S,I)=>{let C=S?.sender===n?.userId,D=new Date(S?.createdAt),L=g[I-1],A=I===0||new Date(L?.createdAt).toDateString()!==D.toDateString(),F=new Date,B=new Date;B.setDate(F.getDate()-1);let H=D.toDateString()===F.toDateString(),$=D.toDateString()===B.toDateString(),J="";H?J="Today":$?J="Yesterday":J=D.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"});let fe=D.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1});return z.createElement("div",{key:S?.id+"_"+I},A&&z.createElement("div",{className:"mrchat-dateSeparator"},J),z.createElement("div",{style:{borderRadius:S.sender===n?.userId?"16px 16px 1px 16px":"16px 16px 16px 1px"},className:`mrchat-messageBubble ${C?"mrchat-outgoing":"mrchat-incoming"}`},z.createElement("div",{className:"mrchat-messageContent",dangerouslySetInnerHTML:{__html:Oi.sanitize(S?.message)}}),z.createElement("div",{className:"mrchat-messageTime"},fe)))}})),(e||t)&&z.createElement("div",{className:"mrchat-inputBar"},z.createElement(tt,{onSubmit:k,colorScheme:l})),z.createElement(rt,{opened:h,onClose:()=>f(!1),user:{avatar:r?.avatar,username:r?.username,displayName:r?.displayName},onDeleteMessages:()=>{M()},onBlock:()=>{console.log("block user")}}))}import{useDispatch as Wi,useSelector as Ki}from"react-redux";import N,{useEffect as Y,useState as V}from"react";import Bi from"react";import{Virtuoso as $i}from"react-virtuoso";function mn({data:e,itemContent:t,height:n="100%",startReached:r,endReached:s,...o}){return Bi.createElement($i,{style:{height:n},data:e,startReached:r,endReached:s,itemContent:(i,l)=>t(i,l),...o})}import Ji from"dompurify";var pn=e=>{if(!e)return"";let t=new Date(e),n=new Date,r=new Date;r.setDate(n.getDate()-1);let s=t.toDateString()===n.toDateString(),o=t.toDateString()===r.toDateString(),i=t.toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",hour12:!1});return s?i:o?"Yesterday":t.toLocaleDateString(void 0,{day:"numeric",month:"short"})};function hn({currentUser:e,onSearchUsers:t,colorScheme:n,openChatByUserDetails:r,handleCallAfterOpenChat:s,isLoading:o=!1}){let[i,{open:l,close:a}]=Vi(!1),c=Wi(),m=Ki(b=>b.chat.messagedUserList),[d,p]=V(0),[u,h]=V(""),[f,g]=V(!1),[v,y]=V(""),[k,E]=V(),[M,S]=V(),[I,C]=V([]),[D,L]=V(!1),[A,F]=V(e),[B,H]=V(!1),[$,J]=V(!1);Y(()=>{e?.userId&&F(e)},[e?.userId]),Y(()=>{e?.userId&&c(Ne({userId:e.userId,page:0}))},[e?.userId,c]),Y(()=>{if(typeof window>"u")return;let b=window.matchMedia("(max-width: 599px)"),w=P=>{let U="matches"in P?P.matches:b.matches;H(U),U||J(!1)};return w(b),b.addEventListener?b.addEventListener("change",w):b.addListener(w),()=>{b.removeEventListener?b.removeEventListener("change",w):b.removeListener(w)}},[]);let fe=(b,w)=>{let P=b;if(!P?.userId)return;let U=m?.rows?.data?.find(he=>he.userId===P.userId);if(U){Ae(U),a(),y(""),w&&w();return}c(ae({userId:P?.userId,username:P?.username,displayName:P?.displayName,avatar:P?.avatar})),E(P),a(),y(""),c(ce()),h(""),g(!0),B&&J(!0),w&&w()};Y(()=>{if(!A?.userId)return;let b=W(A.userId);b&&(b.connected||b.connect())},[A?.userId]),Y(()=>{if(!A?.userId)return;let b=W(A.userId);if(!b)return;let w=P=>{P.sender!==A.userId&&c(ae({message:P.message,chatId:P.chatId,userId:P.sender,username:P.userDetails.username,displayName:P.userDetails.displayName,avatar:P.userDetails.avatar}))};return b.on("newChat",w),()=>{b.off("newChat",w)}},[c,A?.userId]),Y(()=>{if(!A?.userId)return;let b=W(A?.userId||"");if(!b)return;let w=P=>{if(!m?.rows?.data)return;let U=m.rows.data.map(X=>{if(X.chatId===P.chatId){let Mn=P.chatId===u;return{...X,message:P.message,updatedAt:new Date().toISOString(),unreadCount:Mn?0:(X.unreadCount||0)+1}}return X}),he=U.findIndex(X=>X.chatId===P.chatId);if(he!==-1){let X=U.splice(he,1)[0];U.unshift(X)}console.log("Updated",U,P),c(ie({...m,rows:{...m.rows,data:U}}))};return b.on("newMessageNotification",w),()=>{b.off("newMessageNotification",w)}},[m,A?.userId]);let yn=()=>{if(!m?.hasMore||!e?.userId)return;let b=d+1;p(b),c(Ne({userId:e.userId,page:b}))},Ae=b=>{if(!A?.userId)return;let w=W(A.userId);if(!w)return;E({userId:b.userId,username:b.username,displayName:b.displayName,avatar:b.avatar}),w.emit("joinChat",{chatId:b.chatId}),h(b?.chatId||""),c(ce());let P=m.rows.data.map(U=>U.chatId===b.chatId?{...U,unreadCount:0}:U);B&&J(!0),c(ie({...m,rows:{...m.rows,data:P}}))};Y(()=>{r&&fe(r,s)},[r?.userId]);let xn=b=>{y(b)},bn=()=>{J(!1)};Y(()=>{if(!v.trim()){C([]),L(!1);return}if(!t){C([]),L(!1);return}let b=!1,w=setTimeout(async()=>{try{L(!0),C([]);let P=await Promise.resolve(t(v));if(b)return;C(P)}finally{b||L(!1)}},400);return()=>{b=!0,clearTimeout(w)}},[v,t]);let wn=b=>{let w=document.createElement("div");return w.innerHTML=b,w.textContent||""},kn=I.map(b=>({value:b.username,label:b.displayName||b.username,user:b}));return N.createElement("div",{className:"mrchat-chatWrapper"},o&&N.createElement("div",{className:"mrchat-loadingOverlay"},N.createElement(fn,{size:"md"})),N.createElement(Hi,{opened:i,onClose:()=>{a(),y(""),C([]),L(!1)},title:"Search User",centered:!0,withCloseButton:!0},N.createElement(Ui,{mb:12,label:"Search User to Chat",placeholder:"Type username to search...",limit:20,data:kn,value:v,onChange:xn,rightSection:D?N.createElement(fn,{size:"xs"}):void 0,rightSectionWidth:28,onOptionSubmit:b=>{let w=I.find(P=>P.username===b);w&&(y(""),S(w),C([]),L(!1))},renderOption:({option:b})=>{let w=b.user;return N.createElement(Ri,{gap:"sm"},N.createElement(st,{src:w.avatar,size:36,radius:"xl"}),N.createElement("div",null,N.createElement(se,{size:"sm"},w.displayName||w.username),w.displayName&&N.createElement(se,{size:"xs",opacity:.5},"@",w.username)))}}),N.createElement(_i,{fullWidth:!0,onClick:()=>fe(M),disabled:!M?.username},"Start Chat")),N.createElement("div",{className:"mrchat-chatContainer"},N.createElement("div",{className:"mrchat-sidebar "+(B&&$?"mrchat-hiddenOnMobile":"")},N.createElement("div",{className:"mrchat-sidebarTop"},N.createElement("div",{className:"mrchat-topBar"},N.createElement(se,{size:"xs",c:"dimmed",mt:"sm",mb:"xs",ml:12},"All Messages"),N.createElement("div",{className:"mrchat-topActions"},N.createElement(ji,{variant:"subtle",onClick:()=>{S(null),y(""),C([]),l()},radius:"lg"},N.createElement(Fi,{size:20,stroke:3}))))),N.createElement("div",{className:"mrchat-scrollWrapper"},N.createElement(mn,{data:m?.rows?.data||[],endReached:yn,itemContent:(b,w)=>{let P=w.chatId===u;return N.createElement("div",{className:`mrchat-chatItem ${P?"mrchat-activeChatItem":""}`,onClick:()=>{P||Ae(w)}},w.avatar?N.createElement(st,{src:w.avatar,size:36,radius:"xl"}):N.createElement(st,{key:w.displayName||w.username,name:w.displayName||w.username,color:"initials"}),N.createElement("div",{className:"mrchat-chatInfo"},N.createElement(se,{className:"mrchat-chatLabelItem",truncate:!0},w.displayName||w.username),w.unreadCount>0&&N.createElement("div",{className:"mrchat-unreadBadge"},w.unreadCount||10),N.createElement("div",{className:"mrchat-messagePreview"},N.createElement(se,{truncate:!0,size:"xs",c:"dimmed",style:{maxWidth:150},className:"mrchat-messagePreviewContent"},wn(Ji.sanitize(w.message))),N.createElement(se,{size:"xs",c:"dimmed",className:"mrchat-messagePreviewTime"},pn(w.updatedAt||w.createdAt)))))}}))),N.createElement("div",{className:"mrchat-mainAreaWrapper "+(B&&!$?"mrchat-hiddenOnMobile":"")},N.createElement(un,{chatId:u,enableChat:f,senderDetails:A,receiverDetails:k,onBack:bn,showBackButton:B,onChatInitialized:b=>{Ae({chatId:b.chatId,userId:k?.userId,username:k?.username,displayName:k?.displayName,avatar:k?.avatar})},colorScheme:n}))))}import{useEffect as qi}from"react";import{useDispatch as Xi}from"react-redux";function gn(){let e=Xi();return qi(()=>()=>{e(ft())},[e]),null}function vn({colorScheme:e,primaryColor:t="customBrand",darkColor:n,apiKey:r,baseUrl:s,socketUrl:o,openChatByUserDetails:i,handleCallAfterOpenChat:l,isLoading:a=!1,...c}){let m=ct(t),d=[r?.trim()?null:"apiKey",s?.trim()?null:"baseUrl",o?.trim()?null:"socketUrl"].filter(Boolean),p=d.length===0;return Gi(()=>{typeof window>"u"||!p||dt({baseUrl:s,socketUrl:o,apiKey:r})},[r,s,o,p]),Yi(()=>{if(typeof document>"u"||!n)return;let u=document.body.style.backgroundColor;return document.body.style.backgroundColor=e==="dark"?n:"",document.documentElement.style.setProperty("--mantine-color-body",e==="dark"?n:""),()=>{document.body.style.backgroundColor=u,document.documentElement.style.removeProperty("--mantine-color-body")}},[e,n]),p?G.createElement(vt,null,G.createElement(bt,null,G.createElement(gn,null),G.createElement(Qi,{defaultColorScheme:e??"light",forceColorScheme:e,theme:m},G.createElement(Zi,null),G.createElement(hn,{handleCallAfterOpenChat:l,colorScheme:e,openChatByUserDetails:i,isLoading:a,...c})))):G.createElement("div",{role:"alert",style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:16}},G.createElement("div",{style:{padding:16,borderRadius:8,backgroundColor:"#fef3f2",color:"#b42318",fontWeight:600,textAlign:"center"}},"Missing required configuration: ",d.join(", ")))}export{vn as MrChat};
21
+ ${h}`}}),a}function ai(e,t,n={}){let{state:r}=t,{doc:s,tr:o}=r,i=e;s.descendants((l,a)=>{let c=o.mapping.map(a),m=o.mapping.map(a)+l.nodeSize,d=null;if(l.marks.forEach(u=>{if(u!==i)return!1;d=u}),!d)return;let p=!1;if(Object.keys(n).forEach(u=>{n[u]!==d.attrs[u]&&(p=!0)}),p){let u=e.type.create({...e.attrs,...n});o.removeMark(c,m,e.type),o.addMark(c,m,u)}}),o.docChanged&&t.view.dispatch(o)}var Qt=class Zt extends qe{constructor(){super(...arguments),this.type="node"}static create(t={}){let n=typeof t=="function"?t():t;return new Zt(n)}configure(t){return super.configure(t)}extend(t){let n=typeof t=="function"?t():t;return super.extend(n)}};var ci=Xe.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["u",me(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||"underline",t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:"underline",level:"inline",start(e){return e.indexOf("++")},tokenize(e,t,n){let s=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!s)return;let o=s[2].trim();return{type:"underline",raw:s[0],text:o,tokens:n.inlineTokens(o)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),en=ci;import{useEditor as Si}from"@tiptap/react";import Ti from"@tiptap/starter-kit";import{Link as Ei,RichTextEditor as j}from"@mantine/tiptap";import{ActionIcon as pe,Menu as oe}from"@mantine/core";import te,{useState as li,lazy as di,Suspense as ui,cloneElement as mi}from"react";import{Popover as Ze,Skeleton as pi}from"@mantine/core";import fi from"@emoji-mart/data";var hi=di(()=>import("@emoji-mart/react"));function et({onSelect:e,action:t,size:n=320,offset:r=8,position:s="bottom-start",colorScheme:o="light"}){let[i,l]=li(!1);return te.createElement(Ze,{opened:i,onChange:l,width:n,position:s,offset:r,withArrow:!0,shadow:"md",trapFocus:!1,closeOnEscape:!0},te.createElement(Ze.Target,null,mi(t,{onClick:a=>{t.props?.onClick?.(a),l(c=>!c)}})),te.createElement(Ze.Dropdown,{p:0},te.createElement(ui,{fallback:te.createElement("div",{style:{padding:12,width:320}},te.createElement(pi,{height:280,radius:"md"}))},te.createElement(hi,{previewPosition:"none",theme:o,data:fi,onEmojiSelect:a=>{e(a.native),l(!1)}}))))}var tn=Qt.create({name:"emoji",inline:!0,group:"inline",selectable:!1,atom:!0,addAttributes(){return{emoji:{default:"\u{1F600}"}}},parseHTML(){return[{tag:"span[data-emoji]"}]},renderHTML({HTMLAttributes:e}){return["span",me(e,{class:"emoji-big","data-emoji":e.emoji}),e.emoji]}});function tt({content:e="",maxLength:t=3e3,onChange:n,onSubmit:r,colorScheme:s="light"}){let[o,i]=Ce(0),[l,a]=Ce(!1),[c,m]=Ce(!1),[d,p]=Ce(!1),u=()=>{if(!f)return;let g=f.getHTML();f.getText().trim()&&(r?.(g),f.commands.clearContent(),f.commands.focus(),i(0),a(!1))},h=(g,v)=>v.key==="Enter"&&!v.shiftKey?(v.preventDefault(),u(),!0):v.key==="Enter"&&v.shiftKey?(v.preventDefault(),f?.commands.setHardBreak(),!0):!1,f=Si({extensions:[Ti,tn,en,Ei,ki,wi,bi,Mi.configure({types:["heading","paragraph"]})],content:e,editorProps:{handleKeyDown:h},onUpdate:({editor:g})=>{let v=g.getHTML(),y=v.replace(/(<br\s*\/?>\s*){3,}/g,"<br><br>");if(y!==v){let{from:M,to:S}=g.state.selection;g.commands.setContent(y),g.commands.setTextSelection({from:Math.min(M,g.state.doc.content.size),to:Math.min(S,g.state.doc.content.size)});return}let k=g.getText(),E=k.trim().length>0;i(k.length),a(E),m(t?k.length>=t:!1),n?.(g.getHTML())},immediatelyRender:!1});return T.createElement(T.Fragment,null,T.createElement(j,{editor:f,w:"100%",className:"mrchat-richTextEditorContainer"},T.createElement(j.Content,null),T.createElement(j.Toolbar,{sticky:!0,stickyOffset:"var(--docs-header-height)"},T.createElement("div",{className:"mrchat-mainActionContainer"},T.createElement(et,{colorScheme:s,onSelect:g=>{f?.chain().focus().insertContent({type:"emoji",attrs:{emoji:g}}).run()},action:T.createElement(pe,{radius:"lg",variant:"subtle","aria-label":"add",className:"mrchat-mainActionEmojiIcon"},T.createElement(yi,null))}),T.createElement(pe,{radius:"lg",variant:"subtle","aria-label":"text_format",className:"mrchat-mainTextFormatIcon",onClick:()=>p(g=>!g)},T.createElement(xi,{stroke:1.7})),T.createElement(pe,{radius:"lg",variant:"filled","aria-label":"send",className:"mrchat-mainSendMsgIcon",onClick:u,disabled:!l},T.createElement(nn,{size:18}))),T.createElement(pe,{radius:"lg",variant:"filled","aria-label":"send",className:"mrchat-sm-mainSendMsgIcon",onClick:u,disabled:!l},T.createElement(nn,{size:18})),d&&T.createElement(T.Fragment,null,T.createElement(j.ControlsGroup,null,T.createElement(j.Bold,null),T.createElement(j.Italic,null),T.createElement(j.Underline,null),T.createElement(j.Strikethrough,null),T.createElement(j.Code,null),T.createElement(j.Highlight,null)),T.createElement(j.ControlsGroup,{className:"mrchat-secondRichTextEditorToolBar"},T.createElement(j.BulletList,null),T.createElement(j.OrderedList,null),T.createElement(oe,{trigger:"hover",openDelay:200},T.createElement(oe.Target,null,T.createElement(pe,{variant:"outline",size:"md",className:"mrchat-customToolActionItem"},T.createElement(rn,{size:16,stroke:1.5}))),T.createElement(oe.Dropdown,null,T.createElement(oe.Item,{onClick:()=>f?.chain().focus().setTextAlign("left").run()},T.createElement(rn,{size:14})),T.createElement(oe.Item,{onClick:()=>f?.chain().focus().setTextAlign("center").run()},T.createElement(gi,{size:14})),T.createElement(oe.Item,{onClick:()=>f?.chain().focus().setTextAlign("right").run()},T.createElement(vi,{size:14})))),T.createElement(j.Link,null)),T.createElement(j.ControlsGroup,{className:"mrchat-secondRichTextEditorToolBar"},T.createElement(j.ClearFormatting,null)))),c&&T.createElement("div",{style:{textAlign:"right",color:"red",fontSize:12,marginTop:4}},"Character limit reached (",o,"/",t,")")))}import{useDispatch as Di,useSelector as zi}from"react-redux";import z,{useEffect as dn,useState as st}from"react";import Oi from"dompurify";import nt,{useRef as Ie,useEffect as on}from"react";function sn({data:e,renderItem:t,loadMore:n,hasMore:r,scrollToBottomTrigger:s}){let o=Ie(null),i=Ie(!1),l=Ie(!0),a=Ie(0);on(()=>{let d=o.current;d&&setTimeout(()=>{d.scrollTop=d.scrollHeight},100)},[s]),on(()=>{let d=o.current;!d||!e.length||(l.current&&(d.scrollTop=d.scrollHeight,l.current=!1),a.current=e.length)},[e]);let c=()=>{let d=o.current;d&&d.scrollTop<50&&r&&!i.current&&m()},m=async()=>{let d=o.current;if(!d||i.current||!r)return;i.current=!0;let p=d.scrollHeight,u=d.scrollTop;await n(),setTimeout(()=>{let f=d.scrollHeight-p;d.scrollTop=u+f,i.current=!1},50)};return nt.createElement("div",{ref:o,onScroll:c,className:"mrchat-messageScroll"},nt.createElement("div",{className:"mrchat-messageScrollContent"},e.map((d,p)=>nt.createElement("div",{key:d?.id||p},t(d,p)))))}import R,{useEffect as Ci,useState as an}from"react";import{Avatar as Ii,Text as rt}from"@mantine/core";import{IconArrowLeft as Ai}from"@tabler/icons-react";function ot({opened:e,onClose:t,user:n,onDeleteMessages:r,onBlock:s}){let[o,i]=an(e),[l,a]=an(!1);Ci(()=>{e&&i(!0)},[e]);let c=()=>{i(!1),setTimeout(t,250)};return!e&&!o?null:R.createElement(R.Fragment,null,R.createElement("div",{className:"mrchat-overlay",onClick:c},R.createElement("div",{className:`mrchat-drawer ${o?"mrchat-open":"mrchat-close"}`,onClick:m=>m.stopPropagation()},R.createElement("div",{className:"mrchat-header"},R.createElement("div",{className:"mrchat-backBtn",onClick:c},R.createElement(Ai,{size:20})),R.createElement(rt,{fw:600},"Contact info")),R.createElement("div",{className:"mrchat-profileSection"},R.createElement(Ii,{src:n?.avatar,size:150,radius:"xl",style:{cursor:"pointer"},onClick:()=>n?.avatar?a(!0):{}}),R.createElement(rt,{fw:700,size:"lg",mt:"sm"},n?.displayName),R.createElement(rt,{size:"sm",c:"dimmed"},"@",n?.username)))),l&&R.createElement("div",{className:"mrchat-imagePreview",onClick:()=>a(!1)},R.createElement("img",{src:n?.avatar,alt:"profile"})))}function un({chatId:e,enableChat:t,senderDetails:n,receiverDetails:r,onChatInitialized:s,onBack:o,showBackButton:i,colorScheme:l}){let a=Di(),c=zi(S=>S.chat.messageList),[m,d]=st(0),[p,u]=st(0),[h,f]=st(!1),g=c?.rows?.data||[],v=g.length===0,y=()=>{let S=c?.hasMore;if(!e||!S)return;let I=m+1;a(Le({chatId:e,page:I,userId:n?.userId})),d(I)};dn(()=>{e&&(d(0),a(Le({chatId:e,page:0,userId:n?.userId})))},[e]),dn(()=>{if(!n?.userId||!Z())return;let S=K(n?.userId||"");if(!S)return;let I=C=>{C.chatId===e&&a(De({id:Date.now(),chatId:C.chatId,message:C.message,sender:C.sender,recipient:C.recipient,type:C.type,status:C.status,createdAt:C.time}))};return S.on("newmessage",I),()=>{S.off("newmessage",I)}},[e,n?.userId]);let k=S=>{let I=K(n?.userId||""),C={message:S,sender:n?.userId,receiver:r?.userId,type:"text",username:n?.username};if(!c?.rows?.data?.length){I?.emit("initializeNewChat",{...C,senderUserDetails:{userId:n?.userId,username:n?.username,displayName:n?.displayName,avatar:n?.avatar},receiverUserDetails:{userId:r?.userId,username:r?.username,displayName:r?.displayName,avatar:r?.avatar}},L=>{if(L?.status==="success"){let{data:A}=L;a(ae({id:Date.now(),chatId:A.chatId,message:A.message,sender:A.sender,recipient:A.recipient,type:A.type,status:A.status,createdAt:new Date(A.time).getTime(),updatedAt:new Date(A.time).getTime(),userId:r?.userId,username:r?.username,displayName:r?.displayName,avatar:r?.avatar})),a(De({id:Date.now(),chatId:A.chatId,message:A.message,sender:A.sender,recipient:A.recipient,type:A.type,status:A.status,createdAt:Date.now()})),s?.(A)}else console.log("Failed to initialize chat",L?.error)});return}I?.emit("privatemessage",{...C,chatId:e}),u(L=>L+1)},E=()=>{c.hasMore&&y()},M=()=>{!e||!n?.userId||a(ft({chatId:e,userId:n?.userId}))};return z.createElement("div",{className:"mrchat-mainArea"},z.createElement("div",{className:"mrchat-chatHeader"},i&&o&&z.createElement(Pi,{variant:"subtle",className:"mrchat-backButton",onClick:o},z.createElement(Ni,{size:20})),r&&z.createElement(z.Fragment,null,z.createElement("div",{className:"mrchat-receiverInfo",onClick:()=>f(!0)},r?.avatar?z.createElement(ln,{src:r.avatar,size:36,radius:"xl"}):z.createElement(ln,{key:r?.displayName||r?.username,name:r?.displayName||r?.username,color:"initials"}),z.createElement(cn,{fw:600,size:"md"},r?.displayName||r?.username)))),z.createElement("div",{className:"mrchat-messageArea"},v?z.createElement("div",{className:"mrchat-emptyState"},z.createElement("div",{className:"mrchat-encryptionMinimal"},z.createElement(Li,{size:20,stroke:1.8}),z.createElement(cn,{className:"mrchat-encryptionText",size:"md"},"End-to-end encrypted"))):z.createElement(sn,{data:g,hasMore:c?.hasMore,loadMore:E,scrollToBottomTrigger:p,renderItem:(S,I)=>{let C=S?.sender===n?.userId,D=new Date(S?.createdAt),L=g[I-1],A=I===0||new Date(L?.createdAt).toDateString()!==D.toDateString(),F=new Date,B=new Date;B.setDate(F.getDate()-1);let H=D.toDateString()===F.toDateString(),$=D.toDateString()===B.toDateString(),V="";H?V="Today":$?V="Yesterday":V=D.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"});let fe=D.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1});return z.createElement("div",{key:S?.id+"_"+I},A&&z.createElement("div",{className:"mrchat-dateSeparator"},V),z.createElement("div",{style:{borderRadius:8},className:`mrchat-messageBubble ${C?"mrchat-outgoing":"mrchat-incoming"}`},z.createElement("div",{className:"mrchat-messageContent",dangerouslySetInnerHTML:{__html:Oi.sanitize(S?.message)}}),z.createElement("div",{className:"mrchat-messageTime"},fe)))}})),(e||t)&&z.createElement("div",{className:"mrchat-inputBar"},z.createElement(tt,{onSubmit:k,colorScheme:l})),z.createElement(ot,{opened:h,onClose:()=>f(!1),user:{avatar:r?.avatar,username:r?.username,displayName:r?.displayName},onDeleteMessages:()=>{M()},onBlock:()=>{console.log("block user")}}))}import{useDispatch as Vi,useSelector as Ki}from"react-redux";import N,{useEffect as Y,useState as W}from"react";import Bi from"react";import{Virtuoso as $i}from"react-virtuoso";function mn({data:e,itemContent:t,height:n="100%",startReached:r,endReached:s,...o}){return Bi.createElement($i,{style:{height:n},data:e,startReached:r,endReached:s,itemContent:(i,l)=>t(i,l),...o})}import Ji from"dompurify";var pn=e=>{if(!e)return"";let t=new Date(e),n=new Date,r=new Date;r.setDate(n.getDate()-1);let s=t.toDateString()===n.toDateString(),o=t.toDateString()===r.toDateString(),i=t.toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",hour12:!1});return s?i:o?"Yesterday":t.toLocaleDateString(void 0,{day:"numeric",month:"short"})};function hn({currentUser:e,onSearchUsers:t,colorScheme:n,openChatByUserDetails:r,handleCallAfterOpenChat:s,isLoading:o=!1}){let[i,{open:l,close:a}]=Wi(!1),c=Vi(),m=Ki(b=>b.chat.messagedUserList),[d,p]=W(0),[u,h]=W(""),[f,g]=W(!1),[v,y]=W(""),[k,E]=W(),[M,S]=W(),[I,C]=W([]),[D,L]=W(!1),[A,F]=W(e),[B,H]=W(!1),[$,V]=W(!1);Y(()=>{e?.userId&&F(e)},[e?.userId]),Y(()=>{e?.userId&&c(Ne({userId:e.userId,page:0}))},[e?.userId,c]),Y(()=>{if(typeof window>"u")return;let b=window.matchMedia("(max-width: 599px)"),w=P=>{let U="matches"in P?P.matches:b.matches;H(U),U||V(!1)};return w(b),b.addEventListener?b.addEventListener("change",w):b.addListener(w),()=>{b.removeEventListener?b.removeEventListener("change",w):b.removeListener(w)}},[]);let fe=(b,w)=>{let P=b;if(!P?.userId)return;let U=m?.rows?.data?.find(he=>he.userId===P.userId);if(U){Ae(U),a(),y(""),w&&w();return}c(ae({userId:P?.userId,username:P?.username,displayName:P?.displayName,avatar:P?.avatar})),E(P),a(),y(""),c(ce()),h(""),g(!0),B&&V(!0),w&&w()};Y(()=>{if(!A?.userId)return;let b=K(A.userId);b&&(b.connected||b.connect())},[A?.userId]),Y(()=>{if(!A?.userId)return;let b=K(A.userId);if(!b)return;let w=P=>{P.sender!==A.userId&&c(ae({message:P.message,chatId:P.chatId,userId:P.sender,username:P.userDetails.username,displayName:P.userDetails.displayName,avatar:P.userDetails.avatar}))};return b.on("newChat",w),()=>{b.off("newChat",w)}},[c,A?.userId]),Y(()=>{if(!A?.userId)return;let b=K(A?.userId||"");if(!b)return;let w=P=>{if(!m?.rows?.data)return;let U=m.rows.data.map(X=>{if(X.chatId===P.chatId){let Mn=P.chatId===u;return{...X,message:P.message,updatedAt:new Date().toISOString(),unreadCount:Mn?0:(X.unreadCount||0)+1}}return X}),he=U.findIndex(X=>X.chatId===P.chatId);if(he!==-1){let X=U.splice(he,1)[0];U.unshift(X)}console.log("Updated",U,P),c(ie({...m,rows:{...m.rows,data:U}}))};return b.on("newMessageNotification",w),()=>{b.off("newMessageNotification",w)}},[m,A?.userId]);let yn=()=>{if(!m?.hasMore||!e?.userId)return;let b=d+1;p(b),c(Ne({userId:e.userId,page:b}))},Ae=b=>{if(!A?.userId)return;let w=K(A.userId);if(!w)return;E({userId:b.userId,username:b.username,displayName:b.displayName,avatar:b.avatar}),w.emit("joinChat",{chatId:b.chatId}),h(b?.chatId||""),c(ce());let P=m.rows.data.map(U=>U.chatId===b.chatId?{...U,unreadCount:0}:U);B&&V(!0),c(ie({...m,rows:{...m.rows,data:P}}))};Y(()=>{r&&fe(r,s)},[r?.userId]);let xn=b=>{y(b)},bn=()=>{V(!1)};Y(()=>{if(!v.trim()){C([]),L(!1);return}if(!t){C([]),L(!1);return}let b=!1,w=setTimeout(async()=>{try{L(!0),C([]);let P=await Promise.resolve(t(v));if(b)return;C(P)}finally{b||L(!1)}},400);return()=>{b=!0,clearTimeout(w)}},[v,t]);let wn=b=>{let w=document.createElement("div");return w.innerHTML=b,w.textContent||""},kn=I.map(b=>({value:b.username,label:b.displayName||b.username,user:b}));return N.createElement("div",{className:"mrchat-chatWrapper"},o&&N.createElement("div",{className:"mrchat-loadingOverlay"},N.createElement(fn,{size:"md"})),N.createElement(Hi,{opened:i,onClose:()=>{a(),y(""),C([]),L(!1)},title:"Search User",centered:!0,withCloseButton:!0},N.createElement(Ui,{mb:12,label:"Search User to Chat",placeholder:"Type username to search...",limit:20,data:kn,value:v,onChange:xn,rightSection:D?N.createElement(fn,{size:"xs"}):void 0,rightSectionWidth:28,onOptionSubmit:b=>{let w=I.find(P=>P.username===b);w&&(y(""),S(w),C([]),L(!1))},renderOption:({option:b})=>{let w=b.user;return N.createElement(Ri,{gap:"sm"},N.createElement(it,{src:w.avatar,size:36,radius:"xl"}),N.createElement("div",null,N.createElement(se,{size:"sm"},w.displayName||w.username),w.displayName&&N.createElement(se,{size:"xs",opacity:.5},"@",w.username)))}}),N.createElement(_i,{fullWidth:!0,onClick:()=>fe(M),disabled:!M?.username},"Start Chat")),N.createElement("div",{className:"mrchat-chatContainer"},N.createElement("div",{className:"mrchat-sidebar "+(B&&$?"mrchat-hiddenOnMobile":"")},N.createElement("div",{className:"mrchat-sidebarTop"},N.createElement("div",{className:"mrchat-topBar"},N.createElement(se,{size:"xs",c:"dimmed",mt:"sm",mb:"xs",fw:600,ml:8},"All Messages"),N.createElement("div",{className:"mrchat-topActions"},N.createElement(ji,{variant:"subtle",onClick:()=>{S(null),y(""),C([]),l()},radius:"lg"},N.createElement(Fi,{size:20,stroke:3}))))),N.createElement("div",{className:"mrchat-scrollWrapper"},N.createElement(mn,{data:m?.rows?.data||[],endReached:yn,itemContent:(b,w)=>{let P=w.chatId===u;return N.createElement("div",{className:`mrchat-chatItem ${P?"mrchat-activeChatItem":""}`,onClick:()=>{if(P&&B){V(!0);return}P||Ae(w)}},w.avatar?N.createElement(it,{src:w.avatar,size:36,radius:"xl"}):N.createElement(it,{key:w.displayName||w.username,name:w.displayName||w.username,color:"initials"}),N.createElement("div",{className:"mrchat-chatInfo"},N.createElement(se,{className:"mrchat-chatLabelItem",truncate:!0},w.displayName||w.username),w.unreadCount>0&&N.createElement("div",{className:"mrchat-unreadBadge"},w.unreadCount||10),N.createElement("div",{className:"mrchat-messagePreview"},N.createElement(se,{truncate:!0,size:"xs",c:"dimmed",style:{maxWidth:150},className:"mrchat-messagePreviewContent"},wn(Ji.sanitize(w.message))),N.createElement(se,{size:"xs",c:"dimmed",className:"mrchat-messagePreviewTime"},pn(w.updatedAt||w.createdAt)))))}}))),N.createElement("div",{className:"mrchat-mainAreaWrapper "+(B&&!$?"mrchat-hiddenOnMobile":"")},N.createElement(un,{chatId:u,enableChat:f,senderDetails:A,receiverDetails:k,onBack:bn,showBackButton:B,onChatInitialized:b=>{Ae({chatId:b.chatId,userId:k?.userId,username:k?.username,displayName:k?.displayName,avatar:k?.avatar})},colorScheme:n}))))}import{useEffect as qi}from"react";import{useDispatch as Xi}from"react-redux";function gn(){let e=Xi();return qi(()=>()=>{e(ht())},[e]),null}function vn({colorScheme:e,primaryColor:t="customBrand",darkColor:n,apiKey:r,baseUrl:s,socketUrl:o,openChatByUserDetails:i,handleCallAfterOpenChat:l,isLoading:a=!1,...c}){let m=lt(t),d=[r?.trim()?null:"apiKey",s?.trim()?null:"baseUrl",o?.trim()?null:"socketUrl"].filter(Boolean),p=d.length===0;return Gi(()=>{typeof window>"u"||!p||ut({baseUrl:s,socketUrl:o,apiKey:r})},[r,s,o,p]),Yi(()=>{if(typeof document>"u"||!n)return;let u=document.body.style.backgroundColor;return document.body.style.backgroundColor=e==="dark"?n:"",document.documentElement.style.setProperty("--mantine-color-body",e==="dark"?n:""),()=>{document.body.style.backgroundColor=u,document.documentElement.style.removeProperty("--mantine-color-body")}},[e,n]),p?G.createElement(yt,null,G.createElement(wt,null,G.createElement(gn,null),G.createElement(Qi,{defaultColorScheme:e??"light",forceColorScheme:e,theme:m},G.createElement(Zi,null),G.createElement(hn,{handleCallAfterOpenChat:l,colorScheme:e,openChatByUserDetails:i,isLoading:a,...c})))):G.createElement("div",{role:"alert",style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:16}},G.createElement("div",{style:{padding:16,borderRadius:8,backgroundColor:"#fef3f2",color:"#b42318",fontWeight:600,textAlign:"center"}},"Missing required configuration: ",d.join(", ")))}export{vn as MrChat};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mr-chat-bird",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",