@kedataindo/docflow-vue 0.0.16 → 0.0.17
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentsSidebar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/sidebars/CommentsSidebar.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CommentsSidebar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/sidebars/CommentsSidebar.vue"],"names":[],"mappings":"AAgPA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGjD,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAC;;;;;;;;;;AAypBF,wBAOG"}
|
package/dist/index.cjs
CHANGED
|
@@ -15053,7 +15053,7 @@
|
|
|
15053
15053
|
`," ")!==a.originalText?null:{...a,from:l,to:c}}return a}},props:{decorations(r){const a=Ze.getState(r);if(!a)return t=null,De.empty;const o=[];if(a.mode==="transform"&&a.to>a.from&&o.push(it.inline(a.from,a.to,{class:"docs-ai-selection"})),a.status==="prompt"){const l=i();o.push(it.widget(a.to,l.dom,{key:"docs-ai-prompt",side:1,stopEvent:l.stopEvent}))}else{t=null;const l=n(a);o.push(it.widget(a.to,l.dom,{key:`docs-ai-ghost-${a.status}-${a.text.length}-${(a.error??"").length}`,side:1,stopEvent:l.stopEvent}))}return De.create(r.doc,o)},handleKeyDown(r,a){const o=Ze.getState(e.state);return o?a.key==="Escape"?(e.commands.aiReject(),!0):o.status==="prompt"?!1:(a.key==="Enter"||a.key==="Tab")&&o.status!=="error"?(a.preventDefault(),e.commands.aiAccept(),!0):!1:!1}}})]},onTransaction(){const e=this.editor.storage.ai;e.preview=Ze.getState(this.editor.state)??null},onDestroy(){var t;const e=this.editor.storage.ai;(t=e.abort)==null||t.abort(),e.abort=null,e.preview=null}});Ee.definePlugin({id:"ai",tiptapExtensions:[jk],slashCommands:[{name:"AI",description:"Generate text with AI",command:"aiGenerate"}]});hi.create({name:"comment",inclusive:!0,addAttributes(){return{threadId:{default:null,parseHTML:e=>e.getAttribute("data-comment-thread"),renderHTML:e=>e.threadId?{"data-comment-thread":e.threadId,class:"docs-comment"}:{}},pos:{default:null,renderHTML:()=>({})}}},parseHTML(){return[{tag:"span[data-comment-thread]"}]},renderHTML({HTMLAttributes:e}){return["span",e,0]}});var ct={open:!1,query:"",position:{top:0,left:0},commands:[],selectedIndex:0},qk=[];function ga(){qk.forEach(e=>e())}function Za(){ct={...ct,open:!1,query:""},ga()}function gr(e,t){const{selection:i}=e.state,n=i.head,r=e.coordsAtPos(n),a=Wk(),o=t?a.filter(l=>l.name.toLowerCase().includes(t.toLowerCase())):a;ct={open:!0,query:t,position:{top:r.bottom+4,left:r.left},commands:o.map(l=>({...l,action:null})),selectedIndex:0},ga()}var Do=new Map;function $k(e,t){const i=Do.get(e)||[];Do.set(e,[...i,...t])}function Wk(){const e=[];Do.forEach(i=>{e.push(...i)});const t=new Set;return e.filter(i=>t.has(i.name)?!1:(t.add(i.name),!0))}var Gk=Ge.create({name:"slashMenu",addProseMirrorPlugins(){return[new ft({key:new st("slashMenu"),props:{handleTextInput(e,t,i,n){if(n==="/"){const r=e.state.doc.resolve(t),a=r.parent.textContent.slice(0,r.parentOffset);if(a===""||a.endsWith(" "))return setTimeout(()=>gr(e,""),10),!1}if(ct.open&&n.length===1&&/[a-zA-Z]/.test(n)){const r=ct.query+n;return gr(e,r),!1}return!1},handleKeyDown(e,t){if(!ct.open)return!1;if(t.key==="ArrowDown")return t.preventDefault(),ct.selectedIndex=Math.min(ct.selectedIndex+1,ct.commands.length-1),ga(),!0;if(t.key==="ArrowUp")return t.preventDefault(),ct.selectedIndex=Math.max(ct.selectedIndex-1,0),ga(),!0;if(t.key==="Enter"){t.preventDefault();const i=ct.commands[ct.selectedIndex];if(i){const n=e.state.doc.resolve(e.state.selection.head),r=n.start(),a=r+n.parent.textContent.lastIndexOf("/");if(a>=r){const l=e.state.tr.delete(a,e.state.selection.head);e.dispatch(l)}const o=e._tiptapEditor;if(o){const l=o;typeof l[i.command]=="function"&&l[i.command]()}}return Za(),!0}if(t.key==="Escape")return Za(),!0;if(t.key==="Backspace")if(ct.query.length>0){const i=ct.query.slice(0,-1);return i?gr(e,i):gr(e,""),!1}else{const i=e.state.doc.resolve(e.state.selection.head),n=i.start(),r=i.parent.textContent.lastIndexOf("/");if(r>=0){const a=e.state.tr.delete(n+r,e.state.selection.head);e.dispatch(a)}return Za(),!0}return!1}}})]}});Ee.definePlugin({id:"slash-menu",tiptapExtensions:[Gk],hooks:{onInit(e){$k("default",[])}}});const Ro=/\[(\d{1,3})\]/g;function Kk(e){return e.replace(Ro,"")}function Xk(e,t,i){const n=[];let r=0;Ro.lastIndex=0;let a;for(;(a=Ro.exec(e))!==null;){const l=Number(a[1]),c=t.get(l),f=e.slice(r,a.index);if(f&&n.push(f),!c){r=a.index+a[0].length;continue}n.push(rf(i,{sourceId:c.sourceId})),r=a.index+a[0].length}const o=e.slice(r);return o&&n.push(o),n}const Jk={class:"ai-sidebar flex h-full w-80 flex-shrink-0 flex-col border-l border-slate-200 bg-white/80 text-slate-800 backdrop-blur-xl transition-all dark:border-white/5 dark:bg-[#0a0f1e]/85 dark:text-slate-100"},Zk={class:"flex items-start justify-between border-b border-slate-200 p-4 dark:border-white/5"},Qk={class:"flex items-center gap-1.5 font-mono text-xs font-bold uppercase tracking-widest text-slate-500 dark:text-slate-400"},Yk={class:"mt-1.5 text-[10px] leading-relaxed text-slate-400 dark:text-slate-500"},ew=["aria-label"],tw={key:0,class:"flex flex-1 flex-col items-center justify-center p-6 text-center text-slate-400 dark:text-slate-500"},iw={class:"text-xs"},nw={class:"space-y-2 border-b border-slate-200 p-4 dark:border-white/5"},rw={class:"block font-mono text-[10px] font-bold uppercase tracking-widest text-slate-400 dark:text-slate-500"},aw={class:"grid grid-cols-2 gap-2"},ow=["disabled","title","onClick"],sw={key:0,class:"flex h-full flex-col items-center justify-center p-4 text-center text-slate-400 dark:text-slate-500"},lw={class:"text-[10px]"},cw={class:"flex items-center gap-1 font-mono text-[9px] font-bold uppercase tracking-widest text-slate-400 dark:text-slate-500"},uw={key:0,class:"animate-pulse text-cyan-500"},fw={key:0,class:"flex flex-wrap gap-1 pl-1"},pw={key:1,class:"flex gap-1.5"},dw=["onClick"],mw=["onClick"],hw={class:"border-t border-slate-200 bg-slate-50 p-4 dark:border-white/5 dark:bg-[#0a0f1e]/80"},bw=["disabled","placeholder","onKeydown"],gw={class:"flex justify-end"},vw=["disabled"],Nf=s.defineComponent({__name:"AISidebar",props:{editor:{},aiStream:{type:Function},aiDraft:{type:Function}},emits:["close"],setup(e,{emit:t}){const i=e,n=t,{t:r}=at();function a(){return i.editor?s.toRaw(i.editor):null}const o=s.ref([]),l=s.ref(""),c=s.ref(!1),f=s.ref(null),p=s.ref(null),m=s.ref(null);let d=null;const h=s.computed(()=>{var B,$,R;return i.aiStream?i.aiStream:(R=($=(B=a())==null?void 0:B.storage)==null?void 0:$.editorContext)==null?void 0:R.aiStream}),v=s.computed(()=>{var B,$,R;return i.aiDraft?i.aiDraft:(R=($=(B=a())==null?void 0:B.storage)==null?void 0:$.editorContext)==null?void 0:R.aiDraft}),b=s.ref(!1),y=s.ref(0);function g(){y.value++}s.watch(()=>i.editor,(B,$)=>{$&&s.toRaw($).off("transaction",g),B&&s.toRaw(B).on("transaction",g)},{immediate:!0});const k=s.computed(()=>{var Z;y.value;const B=(Z=a())==null?void 0:Z.state;if(!B||B.selection.empty)return null;const{from:$,to:R}=B.selection;return{from:$,to:R,text:B.doc.textBetween($,R,`
|
|
15054
15054
|
`," ")}});function x(){var K;const B=(K=a())==null?void 0:K.state;if(!B)return;const{from:$,to:R}=B.selection,Z=1500;return{before:B.doc.textBetween(Math.max(0,$-Z),$,`
|
|
15055
15055
|
`," "),after:B.doc.textBetween(R,Math.min(B.doc.content.size,R+Z),`
|
|
15056
|
-
`," ")}}async function w(){await s.nextTick(),m.value&&(m.value.scrollTop=m.value.scrollHeight)}async function C(B,$){const R=h.value;if(!R||c.value)return;d==null||d.abort(),d=new AbortController,c.value=!0,o.value.push({role:"user",text:$}),o.value.push({role:"assistant",text:"",streaming:!0});const Z=o.value.length-1;await w();try{for await(const K of R(B,d.signal))o.value[Z].text+=K,w();o.value[Z].text||(o.value[Z].text=r("sidebars.ai.emptyResponse"),o.value[Z].error=!0)}catch(K){d.signal.aborted||(o.value[Z].text=`${r("sidebars.ai.aiError")}: ${K instanceof Error?K.message:String(K)}`,o.value[Z].error=!0)}finally{o.value[Z].streaming=!1,c.value=!1,d=null,w()}}function E(){const B=l.value.trim();if(!B||c.value)return;if(l.value="",b.value){P({prompt:B,context:x()},B);return}const $=k.value;C({action:"chat",prompt:B,...$?{selection:$.text}:{},context:x()},B)}async function P(B,$){const R=v.value;if(!R||c.value)return;d==null||d.abort(),d=new AbortController,c.value=!0,o.value.push({role:"user",text:$}),o.value.push({role:"assistant",text:"",streaming:!0});const Z=o.value.length-1;await w();try{for await(const K of R(B,d.signal))K.type==="delta"?(o.value[Z].text+=K.text,w()):K.type==="done"?o.value[Z].citations=K.citations:K.type==="error"&&(o.value[Z].text=`${r("sidebars.ai.aiError")}: ${K.message}`,o.value[Z].error=!0,o.value[Z].citations=void 0);!o.value[Z].text&&!o.value[Z].error&&(o.value[Z].text=r("sidebars.ai.emptyResponse"),o.value[Z].error=!0)}catch(K){d.signal.aborted||(o.value[Z].text=`${r("sidebars.ai.aiError")}: ${K instanceof Error?K.message:String(K)}`,o.value[Z].error=!0,o.value[Z].citations=void 0)}finally{o.value[Z].streaming=!1,c.value=!1,d=null,w()}}function _(){b.value=!b.value,s.nextTick(()=>{const B=document.querySelector(".ai-sidebar textarea");B==null||B.focus()})}function S(B){if(c.value||!B.action)return;const $=k.value;B.needsSelection&&!$||C({action:B.action,...$?{selection:$.text}:{},...B.prompt?{prompt:B.prompt}:{},context:x()},B.prompt??B.label)}function M(){var B,$,R;k.value&&((R=($=(B=a())==null?void 0:B.commands)==null?void 0:$.aiTransform)==null||R.call($,{action:"rewrite"}))}const z=s.computed(()=>[{label:r("sidebars.ai.summarize"),icon:to,color:"text-cyan-500",action:"summarize",needsSelection:!0},{label:r("sidebars.ai.fixGrammar"),icon:yp,color:"text-emerald-500",action:"grammar",needsSelection:!0},{label:r("sidebars.ai.continue"),icon:ld,color:"text-amber-500",action:"generate",prompt:"Continue writing naturally from where the text ends, matching the existing style."},{label:r("sidebars.ai.toSpanish"),icon:dc,color:"text-cyan-500",action:"translate",prompt:"translate to Spanish",needsSelection:!0},{label:r("sidebars.ai.improveSelection"),icon:Gp,color:"text-violet-500",improve:!0,needsSelection:!0},{label:r("sidebars.ai.draft"),icon:Ar,color:"text-cyan-500",draft:!0,disabled:!v.value}]);function F(B,$){B.text&&(navigator.clipboard.writeText(B.text),f.value=$,setTimeout(()=>f.value=null,2e3))}function I(B){p.value=B,setTimeout(()=>{p.value===B&&(p.value=null)},2e3)}function T(B,$){const R=a();if(!B.text||!R)return;const{state:Z,view:K}=R,{from:D,to:U}=Z.selection;if(!B.citations||B.citations.length===0){K.dispatch(Z.tr.insertText(B.text,D,U)),K.focus(),I($);return}const j=Yi(R);if(!j){K.dispatch(Z.tr.insertText(Kk(B.text),D,U)),K.focus(),I($);return}const re=new Map(B.citations.map(O=>[O.ref,O])),ae=Xk(B.text,re,j),Y=Z.schema,te=ae.map(O=>typeof O=="string"?Y.text(O):Y.nodeFromJSON(O)).filter(O=>!!O),G=new ne(J.from(te),0,0);K.dispatch(Z.tr.replace(D,U,G)),K.focus(),I($)}function H(){d==null||d.abort(),c.value=!1,n("close")}return s.onUnmounted(()=>{var B;d==null||d.abort(),(B=a())==null||B.off("transaction",g)}),(B,$)=>(s.openBlock(),s.createElementBlock("div",Jk,[s.createElementVNode("div",Zk,[s.createElementVNode("div",null,[s.createElementVNode("h3",Qk,[s.createVNode(s.unref(Ki),{class:"h-4 w-4 animate-pulse text-cyan-400"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.ai.title")),1)]),s.createElementVNode("p",Yk,s.toDisplayString(s.unref(r)("sidebars.ai.description")),1)]),s.createElementVNode("button",{type:"button",class:"rounded-md p-1 text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-white/5 dark:hover:text-slate-200","aria-label":s.unref(r)("sidebars.ai.close"),onClick:H},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})],8,ew)]),h.value?(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[s.createElementVNode("div",nw,[s.createElementVNode("span",rw,s.toDisplayString(s.unref(r)("sidebars.ai.quickMacros")),1),s.createElementVNode("div",aw,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(z.value,R=>(s.openBlock(),s.createElementBlock("button",{key:R.label,type:"button",disabled:c.value||R.needsSelection&&!k.value||"disabled"in R&&R.disabled,title:R.needsSelection&&!k.value?s.unref(r)("sidebars.ai.selectTextFirst"):R.label,class:s.normalizeClass(["flex items-center gap-1.5 rounded-lg border px-2.5 py-1.5 text-left text-[11px] font-bold transition-colors disabled:opacity-40","draft"in R&&R.draft&&b.value?"border-cyan-500 bg-cyan-500/10 text-cyan-700 dark:border-cyan-400/50 dark:bg-cyan-500/15 dark:text-cyan-300":"border-slate-200 bg-slate-50 text-slate-700 hover:border-cyan-500/50 dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-300 dark:hover:border-cyan-500/30"]),onClick:Z=>R.improve?M():"draft"in R&&R.draft?_():S(R)},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(R.icon),{class:s.normalizeClass(["h-3 w-3",R.color])},null,8,["class"])),s.createElementVNode("span",null,s.toDisplayString(R.label),1)],10,ow))),128))])]),s.createElementVNode("div",{ref_key:"turnsEl",ref:m,class:"flex-1 space-y-3 overflow-y-auto p-4"},[o.value.length===0?(s.openBlock(),s.createElementBlock("div",sw,[s.createVNode(s.unref(Ki),{class:"mb-2 h-6 w-6 text-cyan-500 opacity-30"}),s.createElementVNode("p",lw,s.toDisplayString(s.unref(r)("sidebars.ai.noDraft")),1)])):s.createCommentVNode("",!0),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.value,(R,Z)=>(s.openBlock(),s.createElementBlock("div",{key:Z,class:s.normalizeClass(["flex flex-col gap-1",R.role==="user"?"items-end":"items-start"])},[s.createElementVNode("span",cw,[R.role==="user"?(s.openBlock(),s.createBlock(s.unref(Po),{key:0,class:"h-2.5 w-2.5"})):(s.openBlock(),s.createBlock(s.unref(Ki),{key:1,class:"h-2.5 w-2.5 text-cyan-400"})),s.createTextVNode(" "+s.toDisplayString(R.role==="user"?s.unref(r)("sidebars.ai.you"):s.unref(r)("sidebars.ai.assistant")),1)]),s.createElementVNode("div",{class:s.normalizeClass(["max-w-full whitespace-pre-wrap rounded-xl px-3 py-2 text-xs leading-relaxed",[R.role==="user"?"bg-cyan-500/10 text-slate-700 dark:bg-cyan-500/15 dark:text-slate-200":R.error?"bg-red-50 text-red-700 dark:bg-red-500/10 dark:text-red-300":"bg-slate-100 text-slate-700 dark:bg-white/[0.04] dark:text-slate-300"]])},[s.createTextVNode(s.toDisplayString(R.text),1),R.streaming?(s.openBlock(),s.createElementBlock("span",uw,"▌")):s.createCommentVNode("",!0)],2),R.role==="assistant"&&R.citations&&R.citations.length>0?(s.openBlock(),s.createElementBlock("div",fw,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(R.citations,K=>(s.openBlock(),s.createElementBlock("span",{key:K.ref,class:"inline-flex items-center gap-1 rounded-full border border-cyan-500/30 bg-cyan-500/5 px-2 py-0.5 text-[10px] font-semibold text-cyan-700 dark:border-cyan-400/30 dark:bg-cyan-500/10 dark:text-cyan-300"},[s.createVNode(s.unref(Ar),{class:"h-2.5 w-2.5"}),s.createTextVNode(s.toDisplayString(K.label),1)]))),128))])):s.createCommentVNode("",!0),R.role==="assistant"&&!R.streaming&&!R.error&&R.text?(s.openBlock(),s.createElementBlock("div",pw,[s.createElementVNode("button",{type:"button",class:"flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-2 py-1 text-[10px] font-semibold text-slate-600 transition-all hover:bg-slate-50 dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-300 dark:hover:bg-white/5",onClick:K=>F(R,Z)},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(f.value===Z?s.unref(Nr):s.unref(Np)),{class:s.normalizeClass(["h-3 w-3",f.value===Z?"text-emerald-500":""])},null,8,["class"])),s.createElementVNode("span",null,s.toDisplayString(f.value===Z?s.unref(r)("sidebars.ai.copied"):s.unref(r)("sidebars.ai.copy")),1)],8,dw),s.createElementVNode("button",{type:"button",class:"flex items-center gap-1 rounded-lg bg-cyan-500 px-2 py-1 text-[10px] font-bold text-black shadow-cyan transition-all hover:bg-cyan-400",onClick:K=>T(R,Z)},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(p.value===Z?s.unref(Nr):s.unref(gp)),{class:"h-3 w-3"})),s.createElementVNode("span",null,s.toDisplayString(p.value===Z?s.unref(r)("sidebars.ai.inserted"):s.unref(r)("sidebars.ai.insert")),1)],8,mw)])):s.createCommentVNode("",!0)],2))),128))],512),s.createElementVNode("div",hw,[s.createElementVNode("form",{class:"space-y-2",onSubmit:s.withModifiers(E,["prevent"])},[s.withDirectives(s.createElementVNode("textarea",{"onUpdate:modelValue":$[0]||($[0]=R=>l.value=R),rows:"2",disabled:c.value,placeholder:b.value?s.unref(r)("sidebars.ai.draftPlaceholder"):s.unref(r)("sidebars.ai.promptPlaceholder"),class:"w-full min-h-[55px] resize-none rounded-xl border border-slate-200 bg-white p-2.5 text-xs text-slate-800 transition-all focus:border-cyan-500/50 focus:shadow-cyan focus:outline-none disabled:opacity-60 dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-100 dark:focus:border-cyan-500/30",onKeydown:s.withKeys(s.withModifiers(E,["exact","prevent"]),["enter"])},null,40,bw),[[s.vModelText,l.value]]),s.createElementVNode("div",gw,[s.createElementVNode("button",{type:"submit",disabled:c.value||!l.value.trim(),class:"flex items-center gap-1 rounded-lg bg-cyan-500 px-3.5 py-2 text-xs font-bold text-black shadow-cyan transition-all hover:bg-cyan-400 disabled:opacity-40"},[s.createVNode(s.unref(eo),{class:"h-3.5 w-3.5"}),s.createTextVNode(" "+s.toDisplayString(b.value?s.unref(r)("sidebars.ai.promptDraft"):s.unref(r)("sidebars.ai.promptAI")),1)],8,vw)])],32)])],64)):(s.openBlock(),s.createElementBlock("div",tw,[s.createVNode(s.unref(Ki),{class:"mb-2 h-6 w-6 text-cyan-500 opacity-30"}),s.createElementVNode("p",iw,s.toDisplayString(s.unref(r)("sidebars.ai.notConfigured")),1)]))]))}}),yw={class:"comments-sidebar flex h-full w-80 flex-shrink-0 flex-col border-l border-slate-200 bg-white/80 text-slate-800 backdrop-blur-xl transition-all dark:border-white/5 dark:bg-[#0a0f1e]/85 dark:text-slate-100"},xw={class:"border-b border-slate-200 p-4 dark:border-white/5"},kw={class:"mb-3 flex items-center justify-between"},ww={class:"flex items-center gap-1.5 font-mono text-xs font-bold uppercase tracking-widest text-slate-500 dark:text-slate-400"},_w={class:"flex rounded-xl border border-slate-200 bg-slate-50 p-1 text-[11px] font-semibold dark:border-white/10 dark:bg-white/[0.02]"},Sw={key:0,class:"mb-1 rounded-xl border border-cyan-500/25 bg-cyan-500/5 p-2.5 text-xs text-cyan-700 animate-fadeIn dark:border-cyan-500/15 dark:bg-cyan-500/10 dark:text-cyan-400"},Cw={class:"mb-1 font-mono text-[9px] font-bold uppercase tracking-wider"},Ew={class:"line-clamp-1 border-l-2 border-cyan-400 bg-cyan-500/10 py-0.5 pl-2.5 italic dark:bg-cyan-500/5"},Nw={class:"flex-1 space-y-4 overflow-y-auto p-4"},Ow={class:"flex items-start justify-between"},Aw={class:"flex items-center gap-2"},Tw={class:"text-xs font-bold text-slate-800 dark:text-slate-200"},Mw={class:"font-mono text-[9px] text-slate-400 dark:text-slate-500"},zw=["title","onClick"],Iw={key:0,class:"max-w-full truncate rounded-r-lg border-l-2 border-cyan-500/50 bg-slate-100 py-1 pl-2.5 text-[10px] italic text-slate-500 dark:border-cyan-500/40 dark:bg-white/5 dark:text-slate-400"},Dw={class:"whitespace-pre-wrap break-words text-xs leading-relaxed text-slate-700 dark:text-slate-300"},Rw={key:1,class:"space-y-2.5 border-l border-slate-200 pl-4 pt-1 dark:border-white/10"},Lw={class:"flex items-center gap-1.5"},Bw={class:"text-[10px] font-bold text-slate-600 dark:text-slate-300"},Pw={class:"font-mono text-[8px] text-slate-400 dark:text-slate-500"},Vw={class:"break-words pl-1 text-xs text-slate-600 dark:text-slate-400"},Fw={key:2,class:"flex items-center justify-between border-t border-slate-100 pt-2 dark:border-white/5"},Uw={key:0,class:"flex w-full items-center gap-1.5"},Hw=["onUpdate:modelValue","placeholder","onKeydown"],jw=["onClick"],qw=["onClick"],$w={key:3,class:"rounded-lg border border-green-100/40 bg-green-50/55 p-2 text-[10px] text-green-700 dark:border-green-500/10 dark:bg-green-950/10 dark:text-green-400"},Ww={key:0},Gw={key:0,class:"py-12 text-center text-slate-400 dark:text-slate-500"},Kw={class:"text-xs"},Xw={key:0,class:"border-t border-slate-200 bg-slate-50 p-4 dark:border-white/5 dark:bg-[#0a0f1e]/80"},Jw=["placeholder"],Zw={class:"flex items-center justify-between"},Qw={class:"font-mono text-[9px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},Yw=["disabled"],Of=s.defineComponent({__name:"CommentsSidebar",props:{comments:{},selectedTextSnippet:{},selectedTextIndex:{}},emits:["add-comment","add-reply","resolve-comment"],setup(e,{emit:t}){const i=e,n=t,{t:r}=at(),a=s.ref(""),o=s.ref({}),l=s.ref(null),c=s.ref("active"),f=s.computed(()=>(i.comments??[]).filter(h=>c.value==="resolved"?h.resolved:!h.resolved));function p(){a.value.trim()&&(n("add-comment",a.value.trim(),i.selectedTextSnippet,i.selectedTextIndex),a.value="")}function m(h){const v=o.value[h]||"";v.trim()&&(n("add-reply",h,v.trim()),o.value={...o.value,[h]:""},l.value=null)}function d(h){return h.split(" ").map(v=>v[0]).join("").slice(0,2).toUpperCase()}return(h,v)=>(s.openBlock(),s.createElementBlock("div",yw,[s.createElementVNode("div",xw,[s.createElementVNode("div",kw,[s.createElementVNode("h3",ww,[s.createVNode(s.unref(yc),{class:"h-4 w-4 text-cyan-400"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.comments.title")),1)]),s.createElementVNode("div",_w,[s.createElementVNode("button",{type:"button",class:s.normalizeClass([c.value==="active"?"bg-cyan-500/15 text-cyan-600 dark:text-cyan-400 font-bold":"text-slate-400 hover:text-slate-600","rounded-lg px-2.5 py-1 transition-all"]),onClick:v[0]||(v[0]=b=>c.value="active")},s.toDisplayString(s.unref(r)("sidebars.comments.active")),3),s.createElementVNode("button",{type:"button",class:s.normalizeClass([c.value==="resolved"?"bg-cyan-500/15 text-cyan-600 dark:text-cyan-400 font-bold":"text-slate-400 hover:text-slate-600","rounded-lg px-2.5 py-1 transition-all"]),onClick:v[1]||(v[1]=b=>c.value="resolved")},s.toDisplayString(s.unref(r)("sidebars.comments.resolved")),3)])]),e.selectedTextSnippet?(s.openBlock(),s.createElementBlock("div",Sw,[s.createElementVNode("p",Cw,s.toDisplayString(s.unref(r)("sidebars.comments.creatingAnchored")),1),s.createElementVNode("p",Ew,' "'+s.toDisplayString(e.selectedTextSnippet)+'" ',1)])):s.createCommentVNode("",!0)]),s.createElementVNode("div",Nw,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(f.value,b=>(s.openBlock(),s.createElementBlock("div",{key:b.id,class:"relative space-y-3 rounded-2xl border border-slate-200/60 bg-slate-50/60 p-4 transition-all hover:border-cyan-500/30 hover:shadow-cyan dark:border-white/5 dark:bg-[#02040a]/40"},[s.createElementVNode("div",Ow,[s.createElementVNode("div",Aw,[s.createElementVNode("div",{class:"flex h-6 w-6 items-center justify-center rounded-full text-[10px] font-bold text-white shadow-sm",style:s.normalizeStyle({backgroundColor:b.authorColor})},s.toDisplayString(d(b.authorName)),5),s.createElementVNode("div",null,[s.createElementVNode("h4",Tw,s.toDisplayString(b.authorName),1),s.createElementVNode("p",Mw,s.toDisplayString(new Date(b.createdAt).toLocaleTimeString()),1)])]),b.resolved?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"rounded-lg p-1.5 text-slate-400 transition-colors hover:bg-green-500/10 hover:text-green-500",title:s.unref(r)("sidebars.comments.resolve"),onClick:y=>n("resolve-comment",b.id)},[s.createVNode(s.unref(Sp),{class:"h-4 w-4"})],8,zw))]),b.anchorText?(s.openBlock(),s.createElementBlock("div",Iw,s.toDisplayString(s.unref(r)("sidebars.comments.quote"))+' "'+s.toDisplayString(b.anchorText)+'" ',1)):s.createCommentVNode("",!0),s.createElementVNode("p",Dw,s.toDisplayString(b.content),1),b.replies.length>0?(s.openBlock(),s.createElementBlock("div",Rw,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(b.replies,y=>(s.openBlock(),s.createElementBlock("div",{key:y.id,class:"space-y-1"},[s.createElementVNode("div",Lw,[s.createElementVNode("div",{class:"flex h-4.5 w-4.5 items-center justify-center rounded-full text-[8px] font-bold text-white shadow-sm",style:s.normalizeStyle({backgroundColor:y.authorColor})},s.toDisplayString(d(y.authorName)),5),s.createElementVNode("span",Bw,s.toDisplayString(y.authorName),1),s.createElementVNode("span",Pw,s.toDisplayString(new Date(y.createdAt).toLocaleTimeString()),1)]),s.createElementVNode("p",Vw,s.toDisplayString(y.content),1)]))),128))])):s.createCommentVNode("",!0),b.resolved?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",Fw,[l.value===b.id?(s.openBlock(),s.createElementBlock("div",Uw,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":y=>o.value[b.id]=y,type:"text",placeholder:s.unref(r)("sidebars.comments.reply"),class:"flex-1 rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-xs text-slate-800 focus:border-cyan-500/50 focus:outline-none dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-100 dark:focus:border-cyan-500/30",onKeydown:s.withKeys(y=>m(b.id),["enter"])},null,40,Hw),[[s.vModelText,o.value[b.id]]]),s.createElementVNode("button",{type:"button",class:"rounded-lg bg-cyan-500 p-1.5 font-bold text-black shadow-cyan hover:bg-cyan-400",onClick:y=>m(b.id)},[s.createVNode(s.unref(eo),{class:"h-3.5 w-3.5"})],8,jw)])):(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:"flex items-center gap-1 text-[10px] font-bold text-cyan-600 transition-all hover:text-cyan-500",onClick:y=>l.value=b.id},[s.createVNode(s.unref(Zp),{class:"h-3 w-3"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.comments.replyInThread")),1)],8,qw))])),b.resolved?(s.openBlock(),s.createElementBlock("div",$w,[s.createTextVNode(s.toDisplayString(s.unref(r)("sidebars.comments.resolvedBy").replace("{user}",b.resolvedByName||b.resolvedBy||"You"))+" ",1),b.resolvedAt?(s.openBlock(),s.createElementBlock("span",Ww,"at "+s.toDisplayString(new Date(b.resolvedAt).toLocaleTimeString()),1)):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0)]))),128)),f.value.length===0?(s.openBlock(),s.createElementBlock("div",Gw,[s.createVNode(s.unref(Hp),{class:"mx-auto mb-2 h-8 w-8 text-cyan-500 opacity-50"}),s.createElementVNode("p",Kw,s.toDisplayString(s.unref(r)("sidebars.comments.noComments").replace("{mode}",c.value)),1)])):s.createCommentVNode("",!0)]),c.value==="active"?(s.openBlock(),s.createElementBlock("div",Xw,[s.createElementVNode("form",{class:"space-y-2",onSubmit:s.withModifiers(p,["prevent"])},[s.withDirectives(s.createElementVNode("textarea",{"onUpdate:modelValue":v[2]||(v[2]=b=>a.value=b),rows:"2",placeholder:e.selectedTextSnippet?s.unref(r)("sidebars.comments.commentOnSelection"):s.unref(r)("sidebars.comments.generalComment"),class:"w-full min-h-[60px] resize-none rounded-xl border border-slate-200 bg-white p-2.5 text-xs text-slate-800 transition-all focus:border-cyan-500/50 focus:shadow-cyan focus:outline-none dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-100 dark:focus:border-cyan-500/30"},null,8,Jw),[[s.vModelText,a.value]]),s.createElementVNode("div",Zw,[s.createElementVNode("span",Qw,s.toDisplayString(e.selectedTextSnippet?s.unref(r)("sidebars.comments.anchoredComment"):s.unref(r)("sidebars.comments.general")),1),s.createElementVNode("button",{type:"submit",disabled:!a.value.trim(),class:"flex items-center gap-1 rounded-lg bg-cyan-500 px-3.5 py-2 text-xs font-bold text-black shadow-cyan transition-all hover:bg-cyan-400 disabled:opacity-50"},[s.createVNode(s.unref(eo),{class:"h-3.5 w-3.5"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.comments.post")),1)],8,Yw)])],32)])):s.createCommentVNode("",!0)]))}}),e_={class:"history-sidebar flex h-full w-80 flex-shrink-0 flex-col border-l border-slate-200 bg-white/80 text-slate-800 backdrop-blur-xl transition-all dark:border-white/5 dark:bg-[#0a0f1e]/85 dark:text-slate-100"},t_={class:"border-b border-slate-200 p-4 dark:border-white/5"},i_={class:"flex items-center gap-1.5 font-mono text-xs font-bold uppercase tracking-widest text-slate-500 dark:text-slate-400"},n_={class:"mt-1.5 text-[10px] leading-relaxed text-slate-400 dark:text-slate-500"},r_={class:"flex-1 space-y-3 overflow-y-auto p-4"},a_={key:0,class:"space-y-2 rounded-2xl border border-amber-500/30 bg-amber-500/10 p-3.5 text-xs animate-fadeIn dark:border-amber-500/20"},o_={class:"flex items-start gap-1.5 text-amber-700 dark:text-amber-400"},s_={class:"font-bold"},l_={class:"mt-0.5 text-[10px] leading-relaxed text-amber-600 dark:text-amber-500"},c_={class:"flex justify-end gap-2 pt-1"},u_={class:"space-y-2.5"},f_={class:"mb-1 flex items-center justify-between"},p_={class:"rounded-md bg-slate-200 px-1.5 py-0.5 font-mono text-[9px] font-bold text-slate-500 dark:bg-cyan-500/10 dark:text-cyan-400"},d_={class:"flex items-center gap-0.5 font-mono text-[9px] text-slate-400 dark:text-slate-500"},m_={class:"text-xs font-bold leading-snug text-slate-800 dark:text-slate-200"},h_={class:"flex items-center gap-1.5 text-[10px] text-slate-500"},b_={class:"font-semibold text-slate-600 dark:text-slate-300"},g_={class:"flex justify-end gap-2 border-t border-slate-200/50 pt-2 dark:border-white/5"},v_=["onClick"],y_=["onClick"],x_={key:0,class:"py-6 text-center text-xs text-slate-400 dark:text-slate-500"},k_={class:"border-t border-slate-200 bg-slate-50 p-4 dark:border-white/5 dark:bg-[#0a0f1e]/85"},w_=["placeholder"],__={class:"flex justify-end gap-2"},S_={type:"submit",class:"rounded-lg bg-cyan-500 px-3.5 py-1.5 text-xs font-bold text-black shadow-cyan hover:bg-cyan-400"},Af=s.defineComponent({__name:"HistorySidebar",props:{snapshots:{},activePreviewIndex:{}},emits:["save-snapshot","restore-snapshot","preview-snapshot"],setup(e,{emit:t}){const i=e,n=t,{t:r}=at(),a=s.ref(""),o=s.ref(!1);function l(){a.value.trim()&&(n("save-snapshot",a.value.trim()),a.value="",o.value=!1)}const c=s.computed(()=>i.snapshots??[]);return(f,p)=>(s.openBlock(),s.createElementBlock("div",e_,[s.createElementVNode("div",t_,[s.createElementVNode("h3",i_,[s.createVNode(s.unref(hc),{class:"h-4 w-4 text-cyan-400"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.title")),1)]),s.createElementVNode("p",n_,s.toDisplayString(s.unref(r)("sidebars.history.empty")),1)]),s.createElementVNode("div",r_,[e.activePreviewIndex!==null?(s.openBlock(),s.createElementBlock("div",a_,[s.createElementVNode("div",o_,[s.createVNode(s.unref(ed),{class:"mt-0.5 h-4 w-4 flex-shrink-0 text-amber-500"}),s.createElementVNode("div",null,[s.createElementVNode("p",s_,s.toDisplayString(s.unref(r)("sidebars.history.viewingPreview")),1),s.createElementVNode("p",l_,s.toDisplayString(s.unref(r)("sidebars.history.readOnlyPreview").replace("{index}",String(e.activePreviewIndex))),1)])]),s.createElementVNode("div",c_,[s.createElementVNode("button",{type:"button",class:"rounded-lg px-2.5 py-1 text-[10px] font-semibold text-slate-500 hover:bg-white/5 hover:text-slate-700 dark:text-slate-400",onClick:p[0]||(p[0]=m=>n("preview-snapshot",null))},s.toDisplayString(s.unref(r)("sidebars.history.closePreview")),1),s.createElementVNode("button",{type:"button",class:"flex items-center gap-1 rounded-lg bg-cyan-500 px-3 py-1 text-[10px] font-bold text-black shadow-cyan transition-all hover:bg-cyan-400",onClick:p[1]||(p[1]=()=>{n("restore-snapshot",e.activePreviewIndex),n("preview-snapshot",null)})},[s.createVNode(s.unref(Is),{class:"h-3 w-3"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.restoreThis")),1)])])])):s.createCommentVNode("",!0),s.createElementVNode("div",u_,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(c.value,m=>(s.openBlock(),s.createElementBlock("div",{key:m.versionIndex,class:s.normalizeClass(["space-y-2.5 rounded-2xl border p-4 transition-all",e.activePreviewIndex===m.versionIndex?"border-cyan-500/40 bg-cyan-500/5 shadow-cyan dark:border-cyan-500/30":"border-slate-200/60 bg-slate-50/60 hover:border-cyan-500/30 dark:border-white/5 dark:bg-[#02040a]/40 dark:hover:border-white/10"])},[s.createElementVNode("div",null,[s.createElementVNode("div",f_,[s.createElementVNode("span",p_,s.toDisplayString(s.unref(r)("sidebars.history.version"))+" #"+s.toDisplayString(m.versionIndex),1),s.createElementVNode("span",d_,[s.createVNode(s.unref(fc),{class:"h-2.5 w-2.5"}),s.createTextVNode(" "+s.toDisplayString(new Date(m.timestamp).toLocaleDateString())+" "+s.toDisplayString(new Date(m.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})),1)])]),s.createElementVNode("h4",m_,s.toDisplayString(m.title),1)]),s.createElementVNode("div",h_,[s.createVNode(s.unref(Po),{class:"h-3.5 w-3.5"}),s.createElementVNode("span",null,[s.createTextVNode(s.toDisplayString(s.unref(r)("sidebars.history.modifiedBy"))+" ",1),s.createElementVNode("strong",b_,s.toDisplayString(m.modifiedBy),1)])]),s.createElementVNode("div",g_,[e.activePreviewIndex!==m.versionIndex?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"flex items-center gap-1 text-[10px] font-bold text-slate-500 transition-colors hover:text-cyan-600 dark:text-slate-400 dark:hover:text-cyan-400",onClick:d=>n("preview-snapshot",m)},[s.createVNode(s.unref(Op),{class:"h-3 w-3"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.preview")),1)],8,v_)):s.createCommentVNode("",!0),s.createElementVNode("button",{type:"button",class:"flex items-center gap-1 text-[10px] font-bold text-cyan-600 transition-colors hover:text-cyan-500 dark:text-cyan-400 dark:hover:text-cyan-300",onClick:d=>n("restore-snapshot",m.versionIndex)},[s.createVNode(s.unref(Is),{class:"h-3 w-3"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.restore")),1)],8,y_)])],2))),128)),c.value.length===0?(s.openBlock(),s.createElementBlock("p",x_,s.toDisplayString(s.unref(r)("sidebars.history.noSnapshots")),1)):s.createCommentVNode("",!0)])]),s.createElementVNode("div",k_,[o.value?(s.openBlock(),s.createElementBlock("form",{key:0,class:"space-y-2 animate-fadeIn",onSubmit:s.withModifiers(l,["prevent"])},[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":p[2]||(p[2]=m=>a.value=m),type:"text",required:"",placeholder:s.unref(r)("sidebars.history.snapshotPlaceholder"),class:"w-full rounded-xl border border-slate-200 bg-white px-2.5 py-1.5 text-xs text-slate-800 transition-all focus:border-cyan-500/50 focus:shadow-cyan focus:outline-none dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-100 dark:focus:border-cyan-500/30"},null,8,w_),[[s.vModelText,a.value]]),s.createElementVNode("div",__,[s.createElementVNode("button",{type:"button",class:"rounded-lg px-2.5 py-1 text-[10px] text-slate-500 hover:bg-white/5 dark:text-slate-400",onClick:p[3]||(p[3]=m=>o.value=!1)},s.toDisplayString(s.unref(r)("sidebars.history.cancel")),1),s.createElementVNode("button",S_,s.toDisplayString(s.unref(r)("sidebars.history.save")),1)])],32)):(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:"flex w-full items-center justify-center gap-1.5 rounded-xl border border-dashed border-slate-300 py-2.5 text-xs font-bold text-slate-500 transition-all hover:border-cyan-500 hover:bg-cyan-500/5 hover:text-cyan-500 dark:border-white/10 dark:text-slate-400 dark:hover:border-cyan-400/50 dark:hover:text-cyan-400",onClick:p[4]||(p[4]=m=>o.value=!0)},[s.createVNode(s.unref(Qp),{class:"h-3.5 w-3.5 animate-pulse"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.saveNamedSnapshot")),1)]))])]))}}),C_={class:"w-full max-w-md rounded-xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525]"},E_={class:"mb-4 flex items-center justify-between"},N_={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},O_={key:0,class:"space-y-4"},A_={class:"flex items-start gap-3"},T_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-cyan-500/10 text-cyan-600 dark:text-cyan-400"},M_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},z_={class:"text-sm font-medium text-slate-800 dark:text-slate-200"},I_={class:"flex items-start gap-3"},D_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-blue-500/10 text-blue-600 dark:text-blue-400"},R_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},L_={class:"text-sm font-medium text-slate-800 dark:text-slate-200"},B_={class:"text-xs text-slate-500 dark:text-slate-400"},P_={class:"flex items-start gap-3"},V_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-amber-500/10 text-amber-600 dark:text-amber-400"},F_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},U_={class:"text-sm font-medium text-slate-800 dark:text-slate-200"},H_={class:"grid grid-cols-2 gap-3"},j_={class:"flex items-start gap-3"},q_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-emerald-500/10 text-emerald-600 dark:text-emerald-400"},$_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},W_={class:"text-xs font-medium text-slate-800 dark:text-slate-200"},G_={class:"flex items-start gap-3"},K_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-purple-500/10 text-purple-600 dark:text-purple-400"},X_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},J_={class:"text-xs font-medium text-slate-800 dark:text-slate-200"},Z_={class:"rounded-lg border border-slate-200 bg-slate-50 p-4 dark:border-slate-700/50 dark:bg-white/5"},Q_={class:"mb-2 flex items-center gap-2 text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},Y_={class:"grid grid-cols-3 gap-3 text-center"},eS={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},tS={class:"text-[10px] uppercase tracking-wide text-slate-500 dark:text-slate-400"},iS={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},nS={class:"text-[10px] uppercase tracking-wide text-slate-500 dark:text-slate-400"},rS={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},aS={class:"text-[10px] uppercase tracking-wide text-slate-500 dark:text-slate-400"},oS={key:1,class:"py-8 text-center text-sm text-slate-500 dark:text-slate-400"},Tf=s.defineComponent({__name:"DetailsDialog",props:{isOpen:{type:Boolean},meta:{}},emits:["close"],setup(e,{emit:t}){const{t:i}=at(),n=t;function r(a){return a?new Date(a).toLocaleString():"-"}return(a,o)=>e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/50 p-4 backdrop-blur-sm",onClick:o[1]||(o[1]=s.withModifiers(l=>n("close"),["self"]))},[s.createElementVNode("div",C_,[s.createElementVNode("div",E_,[s.createElementVNode("h2",N_,s.toDisplayString(s.unref(i)("editor.details.title")),1),s.createElementVNode("button",{type:"button",class:"rounded p-1 text-slate-400 transition hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-white/5 dark:hover:text-slate-300",onClick:o[0]||(o[0]=l=>n("close"))},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})])]),e.meta?(s.openBlock(),s.createElementBlock("div",O_,[s.createElementVNode("div",A_,[s.createElementVNode("div",T_,[s.createVNode(s.unref(Xi),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",M_,s.toDisplayString(s.unref(i)("editor.details.titleLabel")),1),s.createElementVNode("p",z_,s.toDisplayString(e.meta.title),1)])]),s.createElementVNode("div",I_,[s.createElementVNode("div",D_,[s.createVNode(s.unref(Po),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",R_,s.toDisplayString(s.unref(i)("editor.details.owner")),1),s.createElementVNode("p",L_,s.toDisplayString(e.meta.owner.name),1),s.createElementVNode("p",B_,s.toDisplayString(e.meta.owner.email),1)])]),s.createElementVNode("div",P_,[s.createElementVNode("div",V_,[s.createVNode(s.unref(Tp),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",F_,s.toDisplayString(s.unref(i)("editor.details.location")),1),s.createElementVNode("p",U_,s.toDisplayString(e.meta.folderName||s.unref(i)("editor.details.noFolder")),1)])]),s.createElementVNode("div",H_,[s.createElementVNode("div",j_,[s.createElementVNode("div",q_,[s.createVNode(s.unref(fc),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",$_,s.toDisplayString(s.unref(i)("editor.details.created")),1),s.createElementVNode("p",W_,s.toDisplayString(r(e.meta.createdAt)),1)])]),s.createElementVNode("div",G_,[s.createElementVNode("div",K_,[s.createVNode(s.unref(Cp),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",X_,s.toDisplayString(s.unref(i)("editor.details.modified")),1),s.createElementVNode("p",J_,s.toDisplayString(r(e.meta.updatedAt)),1)])])]),s.createElementVNode("div",Z_,[s.createElementVNode("div",Q_,[s.createVNode(s.unref(mc),{class:"h-3.5 w-3.5"}),s.createTextVNode(" "+s.toDisplayString(s.unref(i)("editor.details.statistics")),1)]),s.createElementVNode("div",Y_,[s.createElementVNode("div",null,[s.createElementVNode("p",eS,s.toDisplayString(e.meta.wordCount),1),s.createElementVNode("p",tS,s.toDisplayString(s.unref(i)("editor.details.words")),1)]),s.createElementVNode("div",null,[s.createElementVNode("p",iS,s.toDisplayString(e.meta.charCount),1),s.createElementVNode("p",nS,s.toDisplayString(s.unref(i)("editor.details.characters")),1)]),s.createElementVNode("div",null,[s.createElementVNode("p",rS,s.toDisplayString(e.meta.pageCount),1),s.createElementVNode("p",aS,s.toDisplayString(s.unref(i)("editor.details.pages")),1)])])])])):(s.openBlock(),s.createElementBlock("div",oS,s.toDisplayString(s.unref(i)("editor.details.loading")),1))])])):s.createCommentVNode("",!0)}}),sS={class:"w-full max-w-md rounded-xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525]"},lS={class:"mb-4 flex items-center justify-between"},cS={class:"flex items-center gap-2"},uS={class:"flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10 text-cyan-600 dark:text-cyan-400"},fS={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},pS={class:"mb-4 rounded-md border border-slate-200 bg-slate-50 p-3 dark:border-slate-700/50 dark:bg-white/5"},dS={class:"mb-1 block text-[11px] font-bold uppercase tracking-wide text-slate-500 dark:text-slate-400"},mS={class:"flex items-center gap-2"},hS=["value"],bS=["title"],gS={class:"space-y-3"},vS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},yS=["placeholder"],xS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},kS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},wS={class:"mt-5 flex justify-end gap-2"},_S=["href"],Mf=s.defineComponent({__name:"EmailDialog",props:{isOpen:{type:Boolean},documentTitle:{},shareUrl:{},defaultRecipient:{}},emits:["close","copy-link"],setup(e,{emit:t}){const{t:i}=at(),n=e,r=t,a=s.ref(n.defaultRecipient||""),o=s.ref(""),l=s.ref("");s.watch(()=>n.documentTitle,m=>{o.value=i("editor.email.defaultSubject",{title:m})},{immediate:!0}),s.watch(()=>n.shareUrl,m=>{l.value=i("editor.email.defaultBody",{url:m})},{immediate:!0});const c=s.computed(()=>{const m=new URLSearchParams;o.value.trim()&&m.set("subject",o.value.trim()),l.value.trim()&&m.set("body",l.value.trim());const d=m.toString();let h=`mailto:${a.value.trim()}`;return d&&(h+=`?${d}`),h});function f(){r("copy-link")}function p(){a.value=n.defaultRecipient||"",o.value=i("editor.email.defaultSubject",{title:n.documentTitle}),l.value=i("editor.email.defaultBody",{url:n.shareUrl})}return s.watch(()=>n.isOpen,m=>{m&&p()}),(m,d)=>e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/50 p-4 backdrop-blur-sm",onClick:d[6]||(d[6]=s.withModifiers(h=>r("close"),["self"]))},[s.createElementVNode("div",sS,[s.createElementVNode("div",lS,[s.createElementVNode("div",cS,[s.createElementVNode("div",uS,[s.createVNode(s.unref(Fp),{class:"h-4 w-4"})]),s.createElementVNode("h2",fS,s.toDisplayString(s.unref(i)("editor.email.title")),1)]),s.createElementVNode("button",{type:"button",class:"rounded p-1 text-slate-400 transition hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-white/5 dark:hover:text-slate-300",onClick:d[0]||(d[0]=h=>r("close"))},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})])]),s.createElementVNode("div",pS,[s.createElementVNode("label",dS,s.toDisplayString(s.unref(i)("editor.email.shareableLink")),1),s.createElementVNode("div",mS,[s.createElementVNode("input",{type:"text",value:e.shareUrl,readonly:"",class:"flex-1 rounded-md border border-slate-300 bg-white px-2 py-1.5 text-xs text-slate-700 dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300"},null,8,hS),s.createElementVNode("button",{type:"button",class:"flex h-7 w-7 items-center justify-center rounded-md border border-slate-300 text-slate-500 transition hover:bg-slate-100 dark:border-slate-600 dark:text-slate-400 dark:hover:bg-slate-700",title:s.unref(i)("editor.email.copyLink"),onClick:f},[s.createVNode(s.unref(gc),{class:"h-3.5 w-3.5"})],8,bS)])]),s.createElementVNode("div",gS,[s.createElementVNode("div",null,[s.createElementVNode("label",vS,s.toDisplayString(s.unref(i)("editor.email.to")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=h=>a.value=h),type:"email",class:"w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300",placeholder:s.unref(i)("editor.email.toPlaceholder")},null,8,yS),[[s.vModelText,a.value]])]),s.createElementVNode("div",null,[s.createElementVNode("label",xS,s.toDisplayString(s.unref(i)("editor.email.subject")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":d[2]||(d[2]=h=>o.value=h),type:"text",class:"w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300"},null,512),[[s.vModelText,o.value]])]),s.createElementVNode("div",null,[s.createElementVNode("label",kS,s.toDisplayString(s.unref(i)("editor.email.body")),1),s.withDirectives(s.createElementVNode("textarea",{"onUpdate:modelValue":d[3]||(d[3]=h=>l.value=h),rows:"4",class:"w-full resize-none rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300"},null,512),[[s.vModelText,l.value]])])]),s.createElementVNode("div",wS,[s.createElementVNode("button",{type:"button",class:"rounded-md px-3 py-1.5 text-xs font-semibold text-slate-700 transition hover:bg-slate-100 dark:text-slate-300",onClick:d[4]||(d[4]=h=>r("close"))},s.toDisplayString(s.unref(i)("common.cancel")),1),s.createElementVNode("a",{href:c.value,class:"inline-flex rounded-md bg-cyan-600 px-3 py-1.5 text-xs font-semibold text-white transition hover:bg-cyan-700",onClick:d[5]||(d[5]=h=>r("close"))},s.toDisplayString(s.unref(i)("editor.email.send")),9,_S)])])])):s.createCommentVNode("",!0)}}),SS=["aria-label"],CS={class:"flex items-center gap-1.5"},ES=["placeholder"],NS={class:"w-16 flex-shrink-0 text-center text-[11px] text-slate-400 dark:text-slate-500"},OS=["disabled","title"],AS=["disabled","title"],TS=["title"],MS={class:"mt-2 flex items-center gap-1.5"},zS=["placeholder","onKeydown"],IS=["disabled"],DS=["disabled"],RS=s.defineComponent({__name:"FindReplaceDialog",props:{isOpen:{type:Boolean},editor:{}},emits:["close"],setup(e,{emit:t}){const{t:i}=at(),n=e,r=t,a=s.ref(null),o=s.ref(""),l=s.ref(""),c=s.ref({query:"",matches:[],activeIndex:0}),f=s.computed(()=>{if(!o.value)return"";const{matches:k,activeIndex:x}=c.value;return k.length===0?i("editor.findReplace.noMatches"):i("editor.findReplace.matchCount",{current:x+1,total:k.length})}),p=()=>{n.editor&&(c.value=Ee.getSearchState(n.editor))};s.watch(()=>n.editor,(k,x)=>{x==null||x.off("transaction",p),k==null||k.on("transaction",p)}),s.watch(()=>n.isOpen,async k=>{var x,w;if(n.editor)if(k){const{from:C,to:E}=n.editor.state.selection;C!==E&&(o.value=n.editor.state.doc.textBetween(C,E," ")),m(),n.editor.on("transaction",p),await s.nextTick(),(x=a.value)==null||x.focus(),(w=a.value)==null||w.select()}else g()});function m(){n.editor&&(Ee.setSearchQuery(n.editor,o.value),p())}s.watch(o,m);function d(){n.editor&&Ee.searchNext(n.editor)}function h(){n.editor&&Ee.searchPrev(n.editor)}function v(){n.editor&&Ee.replaceCurrent(n.editor,l.value)}function b(){n.editor&&Ee.replaceAll(n.editor,l.value)}function y(k){k.key==="Enter"&&k.shiftKey?(k.preventDefault(),h()):k.key==="Enter"?(k.preventDefault(),d()):k.key==="Escape"&&(k.preventDefault(),g())}function g(){var k;n.editor&&Ee.clearSearch(n.editor),(k=n.editor)==null||k.off("transaction",p),o.value="",l.value="",c.value={query:"",matches:[],activeIndex:0},r("close")}return s.onUnmounted(()=>{var k;(k=n.editor)==null||k.off("transaction",p)}),(k,x)=>e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,class:"absolute right-4 top-16 z-40 w-[340px] rounded-xl border border-slate-200 bg-white p-3 shadow-2xl dark:border-slate-700 dark:bg-[#0e1525]",role:"dialog","aria-label":s.unref(i)("editor.findReplace.title")},[s.createElementVNode("div",CS,[s.withDirectives(s.createElementVNode("input",{ref_key:"findInput",ref:a,"onUpdate:modelValue":x[0]||(x[0]=w=>o.value=w),type:"text",placeholder:s.unref(i)("editor.findReplace.findPlaceholder"),class:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-2.5 py-1.5 text-sm text-slate-800 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:text-slate-100",onKeydown:y},null,40,ES),[[s.vModelText,o.value]]),s.createElementVNode("span",NS,s.toDisplayString(f.value),1),s.createElementVNode("button",{type:"button",class:"flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 disabled:opacity-30 dark:text-slate-400 dark:hover:bg-slate-800",disabled:c.value.matches.length===0,title:s.unref(i)("editor.findReplace.previous"),onClick:h},[s.createVNode(s.unref(wp),{class:"h-4 w-4"})],8,OS),s.createElementVNode("button",{type:"button",class:"flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 disabled:opacity-30 dark:text-slate-400 dark:hover:bg-slate-800",disabled:c.value.matches.length===0,title:s.unref(i)("editor.findReplace.next"),onClick:d},[s.createVNode(s.unref(ti),{class:"h-4 w-4"})],8,AS),s.createElementVNode("button",{type:"button",class:"flex h-7 w-7 items-center justify-center rounded-md text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-slate-800",title:s.unref(i)("editor.findReplace.close"),onClick:g},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})],8,TS)]),s.createElementVNode("div",MS,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":x[1]||(x[1]=w=>l.value=w),type:"text",placeholder:s.unref(i)("editor.findReplace.replacePlaceholder"),class:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-2.5 py-1.5 text-sm text-slate-800 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:text-slate-100",onKeydown:s.withKeys(s.withModifiers(v,["prevent"]),["enter"])},null,40,zS),[[s.vModelText,l.value]]),s.createElementVNode("button",{type:"button",class:"flex-shrink-0 rounded-lg border border-slate-200 px-2.5 py-1.5 text-xs font-semibold text-slate-600 transition-colors hover:bg-slate-50 disabled:opacity-30 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-white/5",disabled:c.value.matches.length===0,onClick:v},s.toDisplayString(s.unref(i)("editor.findReplace.replace")),9,IS),s.createElementVNode("button",{type:"button",class:"flex-shrink-0 rounded-lg border border-slate-200 px-2.5 py-1.5 text-xs font-semibold text-slate-600 transition-colors hover:bg-slate-50 disabled:opacity-30 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-white/5",disabled:c.value.matches.length===0,onClick:b},s.toDisplayString(s.unref(i)("editor.findReplace.replaceAll")),9,DS)])],8,SS)):s.createCommentVNode("",!0)}}),LS={class:"w-full max-w-md rounded-lg border border-slate-200 bg-white p-6 shadow-xl dark:border-slate-700 dark:bg-slate-800"},BS={class:"mb-4 flex items-center justify-between"},PS={class:"flex items-center gap-2 text-base font-semibold text-slate-900 dark:text-slate-100"},VS={class:"mb-4"},FS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},US=["placeholder"],HS={class:"mb-2"},jS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},qS=["placeholder"],$S={key:0,class:"mt-1 text-[11px] text-red-600 dark:text-red-400"},WS={class:"flex items-center justify-end gap-2 pt-2"},GS=s.defineComponent({__name:"LinkDialog",props:{isOpen:{type:Boolean},initialText:{},initialUrl:{},isEditing:{type:Boolean}},emits:["apply","remove","close"],setup(e,{emit:t}){const{t:i}=at(),n=e,r=t,a=s.ref(""),o=s.ref(""),l=s.ref("");s.watch(()=>n.isOpen,v=>{v&&(a.value=n.initialText??"",o.value=n.initialUrl??"https://",l.value="")});function c(){const v=o.value.trim();if(!v)return l.value=i("editor.linkDialog.urlRequired"),!1;if(/^(\/|#|mailto:|tel:)/.test(v))return l.value="",!0;try{return new URL(v),l.value="",!0}catch{return l.value=i("editor.linkDialog.urlInvalid"),!1}}function f(v){const b=v.trim();return/^(\/|#|mailto:|tel:)/.test(b)||/^https?:\/\//i.test(b)?b:`https://${b}`}function p(){c()&&r("apply",{text:a.value.trim(),url:f(o.value)})}function m(){r("remove")}function d(){r("close")}function h(v){v.key==="Escape"&&d()}return(v,b)=>e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:s.withModifiers(d,["self"]),onKeydown:h},[s.createElementVNode("div",LS,[s.createElementVNode("div",BS,[s.createElementVNode("h3",PS,[s.createVNode(s.unref(gc),{class:"h-5 w-5 text-slate-500 dark:text-slate-400"}),s.createTextVNode(" "+s.toDisplayString(e.isEditing?s.unref(i)("editor.linkDialog.editTitle"):s.unref(i)("editor.linkDialog.insertTitle")),1)]),s.createElementVNode("button",{type:"button",class:"rounded-md p-1 text-sm text-slate-400 transition-all hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-slate-700 dark:hover:text-slate-300",onClick:d},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})])]),s.createElementVNode("div",VS,[s.createElementVNode("label",FS,s.toDisplayString(s.unref(i)("editor.linkDialog.text")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":b[0]||(b[0]=y=>a.value=y),type:"text",placeholder:s.unref(i)("editor.linkDialog.textPlaceholder"),class:"w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300",onKeydown:s.withKeys(p,["enter"])},null,40,US),[[s.vModelText,a.value]])]),s.createElementVNode("div",HS,[s.createElementVNode("label",jS,s.toDisplayString(s.unref(i)("editor.linkDialog.url")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":b[1]||(b[1]=y=>o.value=y),type:"text",placeholder:s.unref(i)("editor.linkDialog.urlPlaceholder"),class:"w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300",onKeydown:s.withKeys(p,["enter"])},null,40,qS),[[s.vModelText,o.value]]),l.value?(s.openBlock(),s.createElementBlock("p",$S,s.toDisplayString(l.value),1)):s.createCommentVNode("",!0)]),s.createElementVNode("div",WS,[e.isEditing?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"mr-auto flex items-center gap-1 rounded-md px-3 py-1.5 text-xs font-semibold text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/40",onClick:m},[s.createVNode(s.unref(kc),{class:"h-3.5 w-3.5"}),s.createTextVNode(" "+s.toDisplayString(s.unref(i)("editor.linkDialog.remove")),1)])):s.createCommentVNode("",!0),s.createElementVNode("button",{type:"button",class:"rounded-md px-3 py-1.5 text-xs font-semibold hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-slate-700",onClick:d},s.toDisplayString(s.unref(i)("editor.linkDialog.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-md bg-cyan-600 px-3 py-1.5 text-xs font-semibold text-white transition-all hover:bg-cyan-700",onClick:p},s.toDisplayString(e.isEditing?s.unref(i)("editor.linkDialog.update"):s.unref(i)("editor.linkDialog.insert")),1)])])],32)):s.createCommentVNode("",!0)}});async function Ql(e,t){var i,n;if(typeof document>"u")return!1;try{if(t&&typeof ClipboardItem<"u"&&((i=navigator.clipboard)!=null&&i.write)){const r=new ClipboardItem({"text/plain":new Blob([e],{type:"text/plain"}),"text/html":new Blob([t],{type:"text/html"})});return await navigator.clipboard.write([r]),!0}if((n=navigator.clipboard)!=null&&n.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{const r=document.createElement("textarea");r.value=e,r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();const a=document.execCommand("copy");return r.remove(),a}catch{return!1}}async function KS(){var e;if(typeof navigator>"u"||!((e=navigator.clipboard)!=null&&e.read))return null;try{const t=await navigator.clipboard.read();for(const i of t)if(i.types.includes("text/html"))return await(await i.getType("text/html")).text();for(const i of t)if(i.types.includes("text/plain"))return await(await i.getType("text/plain")).text();return null}catch{return null}}async function Qa(){var e;if(typeof navigator>"u"||!((e=navigator.clipboard)!=null&&e.readText))return null;try{return await navigator.clipboard.readText()}catch{return null}}const XS={class:"docs-editor flex h-screen w-full flex-col overflow-hidden bg-slate-50 transition-colors dark:bg-[#02040a]"},JS=["title","aria-label"],ZS={class:"docs-editor__body relative flex flex-1 overflow-hidden"},QS=["title"],YS={class:"flex flex-1 flex-col items-center gap-4 w-full relative"},eC={class:"relative w-full max-w-[794px]"},tC=["aria-label"],iC={key:5,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/50 backdrop-blur-sm px-4"},nC={class:"w-full max-w-lg rounded-xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525] text-slate-800 dark:text-slate-200"},rC={class:"text-lg font-bold mb-4"},aC={class:"mb-6"},oC={class:"flex justify-between items-center mb-2"},sC={class:"text-sm font-semibold text-slate-500 dark:text-slate-400"},lC={class:"grid grid-cols-2 gap-3"},cC={class:"text-[11px] font-medium block mb-1"},uC=["placeholder"],fC={class:"text-[11px] font-medium block mb-1"},pC=["placeholder"],dC={class:"rounded-lg bg-slate-50 p-3 text-[11px] text-slate-500 dark:bg-white/5 dark:text-slate-400 mb-6"},mC={class:"flex justify-end gap-2"},hC={key:6,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/40 backdrop-blur-sm px-4 select-none"},bC={class:"w-full max-w-sm rounded-3xl border border-slate-100 bg-white p-7 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525] text-slate-800 dark:text-slate-200"},gC={class:"text-xl font-medium mb-6 text-slate-900 dark:text-white"},vC={class:"mb-6"},yC={class:"text-xs font-semibold text-slate-700 dark:text-slate-300 mb-3"},xC={class:"space-y-4"},kC={class:"text-xs font-medium text-slate-600 dark:text-slate-400 block mb-1.5"},wC={class:"text-xs font-medium text-slate-600 dark:text-slate-400 block mb-1.5"},_C={class:"mb-8"},SC={class:"text-xs font-semibold text-slate-700 dark:text-slate-300 mb-3"},CC={class:"space-y-3"},EC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},NC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},OC={class:"flex justify-end items-center gap-3"},AC={key:7,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/40 backdrop-blur-sm px-4 select-none"},TC={class:"w-full max-w-sm rounded-3xl border border-slate-100 bg-white p-7 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525] text-slate-800 dark:text-slate-200"},MC={class:"text-xl font-medium mb-6 text-slate-900 dark:text-white"},zC={class:"mb-6"},IC={class:"text-xs font-semibold text-slate-700 dark:text-slate-300 mb-3"},DC={class:"space-y-3"},RC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},LC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},BC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none pt-1"},PC={class:"mb-8"},VC={class:"text-xs font-semibold text-slate-700 dark:text-slate-300 mb-3"},FC={class:"space-y-3"},UC={class:"flex items-center gap-3"},HC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},jC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},qC={class:"flex justify-end items-center gap-3"},$C={key:8,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/50 backdrop-blur-sm px-4"},WC={class:"w-full max-w-md rounded-xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525] text-slate-800 dark:text-slate-200"},GC={class:"text-lg font-bold mb-4"},KC={class:"mb-4"},XC={class:"block text-xs font-semibold text-slate-600 dark:text-slate-400 mb-1.5"},JC=["value"],ZC={class:"mb-4"},QC={class:"block text-xs font-semibold text-slate-600 dark:text-slate-400 mb-1.5"},YC={class:"flex gap-2"},e2={class:"mb-6"},t2={class:"block text-xs font-semibold text-slate-600 dark:text-slate-400 mb-1.5"},i2={class:"grid grid-cols-2 gap-3"},n2={class:"text-[11px] text-slate-500 dark:text-slate-400 block mb-1"},r2={class:"text-[11px] text-slate-500 dark:text-slate-400 block mb-1"},a2={class:"text-[11px] text-slate-500 dark:text-slate-400 block mb-1"},o2={class:"text-[11px] text-slate-500 dark:text-slate-400 block mb-1"},s2={class:"flex justify-end gap-2"},l2=s.defineComponent({__name:"DocsEditor",props:{modelValue:{default:void 0},plugins:{default:()=>[]},editable:{type:Boolean,default:!0},collaboration:{default:void 0},pageSize:{default:"a4"},pageless:{type:Boolean,default:!1},virtualPages:{type:Boolean,default:!1},title:{default:"Untitled Document"},collaborators:{default:()=>[]},starred:{type:Boolean,default:!1},connectionState:{default:"connected"},userName:{default:""},userAvatar:{default:""},locale:{default:void 0},documentMeta:{default:void 0},shareUrl:{default:""},onImageUpload:{type:Function,default:void 0},citation:{default:void 0},aiStream:{type:Function,default:void 0},aiDraft:{type:Function,default:void 0},debug:{type:Boolean,default:!1},comments:{default:()=>[]},selectedTextSnippet:{default:""},selectedTextIndex:{default:void 0},snapshots:{default:()=>[]},activePreviewIndex:{default:null}},emits:["update:modelValue","update:title","update:pageSize","update:pageless","update:pageCount","update:locale","citation-sources-change","update:citation-style","toggle-star","back","share","menu-click","export","ready","add-comment","add-reply","resolve-comment","save-snapshot","restore-snapshot","preview-snapshot"],setup(e,{emit:t}){var Ns;const i=e,n=t,{locale:r,setLocale:a,t:o}=oc(i.locale);s.watch(()=>i.locale,N=>{N&&N!==r.value&&a(N)}),s.watch(r,N=>{n("update:locale",N)});const l=s.ref({top:72,bottom:72,left:90,right:90}),c=s.ref("portrait"),f=s.ref(i.pageSize??"a4"),p=s.ref(i.pageless??!1),m=s.computed(()=>{const N=cn.getPageSize(f.value)??cn.PAGE_SIZES[0];let A=N.pageWidth,V=N.pageHeight;return c.value==="landscape"&&([A,V]=[V,A]),{pageHeight:V,pageWidth:A,margins:{...l.value}}}),{isDark:d}=va(),h=s.computed(()=>i.virtualPages===!0),v=s.computed(()=>({enabled:!p.value&&!h.value,pageHeight:m.value.pageHeight,pageWidth:m.value.pageWidth,marginTop:m.value.margins.top,marginBottom:m.value.margins.bottom,marginLeft:m.value.margins.left,marginRight:m.value.margins.right,contentMarginTop:10,contentMarginBottom:10,pageGap:40,pageBreakBackground:d.value?"#02040a":"#f1f5f9",headerLeft:"",headerRight:"",footerLeft:"",footerRight:"",onHeaderClick:N=>{Yn(N==null?void 0:N.event)},onFooterClick:N=>{N!=null&&N.event&&N.event.detail!==2||er()}})),y=(N=>{const A=N;return A&&typeof A=="object"&&A.type==="tabbed-doc"&&Array.isArray(A.tabs)?A:{type:"tabbed-doc",activeTabId:"tab-1",tabs:[{id:"tab-1",label:"Tab 1",content:N||{type:"doc",content:[{type:"paragraph"}]}}]}})(i.modelValue),g=s.ref(y.headerLeft||""),k=s.ref(y.headerRight||""),x=s.ref(y.footerLeft||""),w=s.ref(y.footerRight||""),C=s.ref(y.tabs.map(N=>({id:N.id,label:N.label,active:N.id===y.activeTabId}))),E=s.ref({});y.tabs.forEach(N=>{E.value[N.id]=N.content});const P=s.ref(y.activeTabId),_=s.computed(()=>E.value[P.value]),S=s.ref(!1),M=s.ref(null),z=s.ref(null),F=s.ref(localStorage.getItem("docflow:view:showRuler")!=="false"),I=s.ref(!1);s.watch(F,N=>{localStorage.setItem("docflow:view:showRuler",N?"true":"false")});const T=s.ref(0),H=s.ref(0),B=s.ref("saved"),$=s.ref(Date.now()),R=s.ref(null),Z=s.computed(()=>{const N=[];for(const A of i.plugins)for(const V of A.slashCommands||[])N.push({name:V.name,command:V.command});return N}),K=()=>{const N={type:"tabbed-doc",activeTabId:P.value,tabs:C.value.map(A=>({id:A.id,label:A.label,content:E.value[A.id]})),headerLeft:g.value,headerRight:k.value,footerLeft:x.value,footerRight:w.value};n("update:modelValue",N),B.value="saving",R.value&&clearTimeout(R.value),R.value=setTimeout(()=>{B.value="saved",$.value=Date.now()},800)},D=s.ref((()=>{var A;const N=(A=i.citation)==null?void 0:A.sources;return Array.isArray(N)?[...N]:typeof N=="function"?[...N()]:[]})()),U=s.ref(((Ns=i.citation)==null?void 0:Ns.style)||"chicago-notes-bibliography");let j=null;const re=s.ref(!1),ae=N=>{j==null||j(N),j=null,re.value=!1},Y=()=>new Promise(N=>{ae(null),j=N,re.value=!0,z.value="references"}),te=s.computed(()=>{const N=i.citation;if(N)return{...N,sources:()=>D.value,onSourceRequest:N.onSourceRequest??Y}}),{editorRef:G,editor:O,pluginActions:q,isReady:ee,docsEditor:le}=Yl({content:_,plugins:i.plugins,editable:i.editable,collaboration:i.collaboration,onImageUpload:i.onImageUpload,citation:te.value,aiStream:i.aiStream,aiDraft:i.aiDraft,debug:i.debug,getPageMap:()=>new Map,paginationOptions:v.value,onUpdate:N=>{E.value[P.value]=N,K()}}),Ne=()=>{var N,A,V;return((V=(A=(N=O.value)==null?void 0:N.storage)==null?void 0:A.citation)==null?void 0:V.engine)??null},Se=()=>{var N;(N=Ne())==null||N.updateSources(D.value),n("citation-sources-change",D.value)},fe=N=>{D.value=[...D.value,N],Se()},Ce=N=>{D.value=D.value.map(A=>A.id===N.id?N:A),Se()},pt=N=>{D.value=D.value.filter(A=>A.id!==N),Se()},Rt=N=>{var A;U.value=N,(A=Ne())==null||A.setStyle(N),n("update:citation-style",N)},Ae=N=>{var A,V;j?(ae(N),z.value=null):(V=(A=q.value).insertCitation)==null||V.call(A,{sourceId:N})};s.watch(z,(N,A)=>{A==="references"&&N!=="references"&&ae(null)});const tt=s.ref(!1),W=s.ref(""),L=s.computed(()=>{var N,A;return!!((N=i.citation)!=null&&N.onImportDoi||(A=i.citation)!=null&&A.onImportBibliography)}),X=async N=>{const A=i.citation;if(!(!(A!=null&&A.onImportDoi)||tt.value)){tt.value=!0,W.value="";try{const V=await A.onImportDoi(N);if(!V){W.value=o("sidebars.references.import.doiFailed");return}const oe=D.value.some(se=>se.id===V.id);D.value=oe?D.value.map(se=>se.id===V.id?V:se):[...D.value,V],Se(),W.value=o("sidebars.references.import.doiSuccess")}catch{W.value=o("sidebars.references.import.doiFailed")}finally{tt.value=!1}}},Te=async N=>{const A=i.citation;if(!(!(A!=null&&A.onImportBibliography)||tt.value)){tt.value=!0,W.value="";try{const{imported:V,failed:oe}=await A.onImportBibliography(N);if(V.length>0){const se=new Map(D.value.map(ke=>[ke.id,ke]));for(const ke of V)se.set(ke.id,ke);D.value=[...se.values()],Se()}W.value=oe>0?o("sidebars.references.import.partial").replace("{ok}",String(V.length)).replace("{failed}",String(oe)):o("sidebars.references.import.batchSuccess").replace("{count}",String(V.length))}catch{W.value=o("sidebars.references.import.failed")}finally{tt.value=!1}}},Ve=()=>{var A;const N=((A=O.value)==null?void 0:A.getText())??"";H.value=N.length,T.value=N.trim()?N.trim().split(/\s+/).length:0},je=()=>{if(!O.value)return null;const{from:N,to:A}=O.value.state.selection;if(N===A)return null;const V=O.value.view.coordsAtPos(N);return V?{top:V.top-48,left:V.left+(V.right-V.left)/2}:null},Lt=()=>{if(!O.value){S.value=!1,M.value=null;return}const{from:N,to:A}=O.value.state.selection;S.value=N!==A,M.value=N!==A?je():null},jt=s.ref(null);let Ot=null;const At=()=>{O.value&&(Ot&&clearTimeout(Ot),Ot=setTimeout(()=>{O.value&&O.value.view.dispatch(O.value.state.tr)},150))},dt=s.ref(1),Re=s.ref(1),Bi=s.computed(()=>{const N=m.value;return{pageSize:{id:f.value,name:f.value.toUpperCase(),pageWidth:N.pageWidth,pageHeight:N.pageHeight},margins:{top:N.margins.top,bottom:N.margins.bottom,left:N.margins.left,right:N.margins.right},pageGap:40,headerLeft:g.value,headerRight:k.value,footerLeft:x.value,footerRight:w.value}}),{data:tn,totalPages:nn,isReady:Pi,refreshData:Bn}=tp({editorRef:s.computed(()=>O.value),scrollRef:jt,config:Bi.value,bufferPages:2});s.watch([nn,Pi],()=>{h.value&&Pi.value&&(dt.value=nn.value)}),s.watch(h,N=>{N&&Bn()});const yi=()=>{if(!O.value||!ee.value){dt.value=1,Re.value=1;return}const N=O.value.view.dom,A=N.querySelector("[data-rm-pagination]");A?dt.value=A.children.length||1:dt.value=1;try{const{selection:V}=O.value.state,oe=O.value.view.coordsAtPos(V.head);if(oe&&A){const se=Array.from(A.querySelectorAll(".rm-page-break")),ke=N.getBoundingClientRect(),Oe=oe.top-ke.top+N.scrollTop;let ge=1,ue=!1;for(let be=0;be<se.length;be++){const ce=se[be].querySelector(".breaker");if(ce instanceof HTMLElement&&Oe<ce.offsetTop){Re.value=ge,ue=!0;break}ge++}ue||(Re.value=ge)}else Re.value=1}catch{Re.value=1}};s.watch(m,N=>{O.value&&(O.value.commands.updatePageHeight(N.pageHeight),O.value.commands.updatePageWidth(N.pageWidth),O.value.commands.updateMargins({top:N.margins.top,bottom:N.margins.bottom,left:N.margins.left,right:N.margins.right}),yi())});const Pn=N=>{N!==p.value&&(p.value=N,n("update:pageless",N),O.value&&(N?O.value.commands.disablePagination():O.value.commands.enablePagination(),setTimeout(()=>{yi(),xi()},60)))};s.watch(()=>i.pageless,N=>Pn(N??!1));const Ke=s.ref(!1),Xe=s.ref(!1),qt=s.ref(""),_t=s.ref(""),ai=s.ref(""),Vn=s.ref(""),$t=s.ref(1.27),Tt=s.ref(1.27),Wt=s.ref(!1),Vi=s.ref(1.27),lt=s.ref(1.27),Je=s.ref(!1),Gt=s.ref(!1),Kt=s.ref(!1),Fn=s.ref("header"),Un=s.ref(!0),Hn=s.ref("startAt"),jn=s.ref(1),Fi=s.ref("header"),qn=s.ref(!0),Ui=s.ref("startAt"),$n=s.ref(1),Na=N=>{if(!Un.value&&N===0)return"";let A=N+1;return Hn.value==="startAt"&&(A=N+jn.value),String(A)},St=()=>{if(!O.value||!ee.value)return;const N=String(dt.value),A=g.value.replace(/{total}/g,N),V=k.value.replace(/{total}/g,N),oe=x.value.replace(/{total}/g,N),se=w.value.replace(/{total}/g,N);O.value.commands.updateHeaderContent(A,V),O.value.commands.updateFooterContent(oe,se),O.value.view.dispatch(O.value.state.tr),setTimeout(()=>{requestAnimationFrame(()=>{if(!O.value)return;const ke=`${$t.value*37.795}px`,Oe=`${Tt.value*37.795}px`;document.documentElement.style.setProperty("--rm-header-margin-top",ke),document.documentElement.style.setProperty("--rm-footer-margin-bottom",Oe);const ge=document.querySelector(".rm-with-pagination");ge&&(ge.style.setProperty("--rm-header-margin-top",ke),ge.style.setProperty("--rm-footer-margin-bottom",Oe));const ue=Array.from(document.querySelectorAll(".rm-with-pagination .page, .rm-with-pagination .rm-page, .rm-page-break"));if(ue.length>0)ue.forEach((be,ce)=>{const me=be.querySelector(".rm-page-header"),ve=be.querySelector(".rm-page-footer"),we=ce===0,pe=(ce+1)%2===0,_e=Na(ce);if(me){me.style.marginTop=ke;const Le=me.querySelector(".rm-page-header-left"),qe=me.querySelector(".rm-page-header-right");let vt=A,Mt=V;Ke.value&&we?(vt=qt.value.replace(/{total}/g,N),Mt=_t.value.replace(/{total}/g,N)):Xe.value&&pe&&(vt=ai.value.replace(/{total}/g,N),Mt=Vn.value.replace(/{total}/g,N)),Le&&(Le.innerHTML=vt.replace(/{page}/g,_e)),qe&&(qe.innerHTML=Mt.replace(/{page}/g,_e))}if(ve){ve.style.marginBottom=Oe;const Le=ve.querySelector(".rm-page-footer-left"),qe=ve.querySelector(".rm-page-footer-right");Le&&(Le.innerHTML=oe.replace(/{page}/g,_e)),qe&&(qe.innerHTML=se.replace(/{page}/g,_e))}});else{const be=document.querySelectorAll(".rm-page-header"),ce=document.querySelectorAll(".rm-page-footer");be.forEach((me,ve)=>{me.style.marginTop=ke;const we=ve===0,pe=(ve+1)%2===0,_e=Na(ve),Le=me.querySelector(".rm-page-header-left"),qe=me.querySelector(".rm-page-header-right");let vt=A,Mt=V;Ke.value&&we?(vt=qt.value.replace(/{total}/g,N),Mt=_t.value.replace(/{total}/g,N)):Xe.value&&pe&&(vt=ai.value.replace(/{total}/g,N),Mt=Vn.value.replace(/{total}/g,N)),Le&&(Le.innerHTML=vt.replace(/{page}/g,_e)),qe&&(qe.innerHTML=Mt.replace(/{page}/g,_e))}),ce.forEach((me,ve)=>{me.style.marginBottom=Oe;const we=Na(ve),pe=me.querySelector(".rm-page-footer-left"),_e=me.querySelector(".rm-page-footer-right");pe&&(pe.innerHTML=oe.replace(/{page}/g,we)),_e&&(_e.innerHTML=se.replace(/{page}/g,we))})}})},50)};s.watch(Ke,()=>{St()}),s.watch([Xe,$t,Tt,Fn,Un,Hn,jn],()=>{St()}),s.watch(dt,N=>{St(),n("update:pageCount",N)}),s.watch(d,N=>{O.value&&(O.value.commands.updatePageBreakBackground(N?"#02040a":"#f1f5f9"),O.value.view.dispatch(O.value.state.tr))}),s.watch(v,N=>{if(!O.value||!ee.value)return;const A=O.value.storage.PaginationPlus;!A||!(A.pageHeight!==N.pageHeight||A.pageWidth!==N.pageWidth||A.marginTop!==N.marginTop||A.marginBottom!==N.marginBottom||A.marginLeft!==N.marginLeft||A.marginRight!==N.marginRight||A.pageGap!==N.pageGap||A.contentMarginTop!==N.contentMarginTop||A.contentMarginBottom!==N.contentMarginBottom||A.pageBreakBackground!==N.pageBreakBackground||A.enabled!==N.enabled)||(A.pageHeight=N.pageHeight,A.pageWidth=N.pageWidth,A.marginTop=N.marginTop,A.marginBottom=N.marginBottom,A.marginLeft=N.marginLeft,A.marginRight=N.marginRight,A.pageGap=N.pageGap,A.contentMarginTop=N.contentMarginTop,A.contentMarginBottom=N.contentMarginBottom,A.pageBreakBackground=N.pageBreakBackground,A.enabled=N.enabled,O.value.view.dispatch(O.value.state.tr))},{deep:!0}),s.watch(ee,N=>{var A,V,oe,se,ke,Oe,ge,ue;N&&O.value&&(!g.value&&!k.value&&!x.value&&!w.value&&(g.value=((V=(A=O.value.storage.PaginationPlus)==null?void 0:A.appliedConfig)==null?void 0:V.headerLeft)||"",k.value=((se=(oe=O.value.storage.PaginationPlus)==null?void 0:oe.appliedConfig)==null?void 0:se.headerRight)||"",x.value=((Oe=(ke=O.value.storage.PaginationPlus)==null?void 0:ke.appliedConfig)==null?void 0:Oe.footerLeft)||"",w.value=((ue=(ge=O.value.storage.PaginationPlus)==null?void 0:ge.appliedConfig)==null?void 0:ue.footerRight)||""),St(),le.value&&n("ready",le.value),O.value.on("selectionUpdate",()=>{Lt(),yi()}),O.value.on("transaction",()=>{yi(),Ve()}),Lt(),Ve(),yi(),setTimeout(()=>{var ce;return(ce=O.value)==null?void 0:ce.commands.focus("start")},50),[100,300,600,1200,2500].forEach(ce=>{setTimeout(()=>{O.value&&O.value.view.dispatch(O.value.state.tr)},ce)}),O.value.view.dom.addEventListener("keydown",ce=>{(ce.metaKey||ce.ctrlKey)&&ce.key.toLowerCase()==="k"&&(ce.preventDefault(),xs())}),O.value.view.dom.addEventListener("click",ce=>{const me=ce.target;if(!me||me.closest('.rm-google-docs-header-bar, .rm-options-dropdown, [contenteditable="true"]'))return;if(me.closest(".rm-page-header, .rm-first-page-header")){Yn(ce);return}const we=me.closest(".rm-with-pagination, .rm-page-break, .page, .docs-editor-page");if(we){const pe=we.getBoundingClientRect(),_e=ce.clientY-pe.top,Le=$t.value*37.795;if(_e>=0&&_e<=Math.max(Le,40)+15){let qe=null;we.classList.contains("rm-page-break")&&(qe=we.querySelector(".rm-page-header")),qe||(qe=document.querySelector(".rm-page-header, .rm-first-page-header")),qe&&Yn(ce)}}}),O.value.view.dom.addEventListener("dblclick",ce=>{const me=ce.target;if(!me)return;if(me.closest(".rm-page-footer")){er();return}const we=me.closest(".rm-with-pagination, .rm-page-break, .page, .docs-editor-page");if(we){const _e=we.getBoundingClientRect().bottom-ce.clientY,Le=Tt.value*37.795;_e>=0&&_e<=Math.max(Le,40)+15&&er()}}))}),s.watch(()=>i.collaboration,()=>{},{deep:!0}),s.onUnmounted(()=>{R.value&&clearTimeout(R.value),Ot&&clearTimeout(Ot)});const Wn=s.ref(!1),rn=s.ref(""),an=s.ref(""),Gn=s.ref(!1),Oa=s.ref(!1),Aa=s.ref(!1),Kn=s.ref(!1),on=s.ref(!1),Xn=s.ref(""),Ta=s.ref(""),Jn=s.ref(!1);function xs(){if(!O.value)return;const{state:N}=O.value,{from:A,to:V,empty:oe}=N.selection,se=O.value.getAttributes("link");se.href?(Jn.value=!0,Ta.value=se.href,oe?Xn.value="":Xn.value=N.doc.textBetween(A,V," ")):(Jn.value=!1,Ta.value="https://",Xn.value=oe?"":N.doc.textBetween(A,V," ")),on.value=!0}function zf(N){if(!O.value)return;const{state:A}=O.value,{from:V,to:oe,empty:se}=A.selection,ke=N.text.trim(),Oe=O.value.chain().focus();Jn.value||O.value.isActive("link")?(Oe.setLink({href:N.url,target:"_blank"}).run(),ke&&!se&&Oe.insertContentAt({from:V,to:oe},ke).run()):ke?Oe.insertContentAt({from:V,to:oe},{type:"text",text:ke,marks:[{type:"link",attrs:{href:N.url,target:"_blank"}}]}).run():se?Oe.insertContent({type:"text",text:N.url,marks:[{type:"link",attrs:{href:N.url,target:"_blank"}}]}).run():Oe.setLink({href:N.url,target:"_blank"}).run(),on.value=!1}function If(){if(!O.value)return;O.value.chain().focus().unsetLink().run(),on.value=!1}const Zn=s.ref(f.value),Hi=s.ref(c.value),Bt=s.ref({...l.value}),Df=()=>{Zn.value=f.value,Hi.value=c.value,Bt.value={...l.value},Gn.value=!0},Rf=()=>{f.value=Zn.value,c.value=Hi.value,l.value={...Bt.value},n("update:pageSize",f.value),Gn.value=!1},Qn=s.ref(!1),Lf=()=>{Vi.value=$t.value,lt.value=Tt.value,Je.value=Ke.value,Gt.value=Xe.value,Wt.value=!0},Bf=()=>{$t.value=Vi.value,Tt.value=lt.value,Ke.value=Je.value,Xe.value=Gt.value,Wt.value=!1,St(),K()},Pf=()=>{Fi.value=Fn.value,qn.value=Un.value,Ui.value=Hn.value,$n.value=jn.value,Kt.value=!0},Vf=()=>{Fn.value=Fi.value,Un.value=qn.value,Hn.value=Ui.value,jn.value=$n.value,Kt.value=!1;const N="{page}";Fn.value==="footer"?(k.value.includes(N)&&(k.value=k.value.replace(/{page}/g,"").trim()),w.value=N):(w.value.includes(N)&&(w.value=w.value.replace(/{page}/g,"").trim()),k.value=N),St(),K()},Ff=()=>{g.value="",k.value="",St(),K(),Qn.value=!1},Yn=N=>{let A=null;if(N){const ge=N.target;A=ge==null?void 0:ge.closest(".rm-page-header, .rm-first-page-header")}if(A||(A=document.querySelector(".rm-page-header, .rm-first-page-header")),!A)return;const V=A;Qn.value=!0,V.classList.add("rm-header-active");let oe=V.querySelector(".rm-page-header-left");oe||(oe=document.createElement("div"),oe.className="rm-page-header-left",V.prepend(oe)),oe.contentEditable="true",oe.setAttribute("tabindex","0"),oe.dataset.placeholder=o("editor.headerFooter.headerPlaceholder")||"Header",oe.addEventListener("keydown",ge=>{ge.stopPropagation()}),oe.focus(),setTimeout(()=>{if(oe){const ge=document.createRange(),ue=window.getSelection();ge.selectNodeContents(oe),ge.collapse(!1),ue==null||ue.removeAllRanges(),ue==null||ue.addRange(ge)}},10);let se=V.querySelector(".rm-google-docs-header-bar");if(!se){se=document.createElement("div"),se.className="rm-google-docs-header-bar",se.innerHTML=`
|
|
15056
|
+
`," ")}}async function w(){await s.nextTick(),m.value&&(m.value.scrollTop=m.value.scrollHeight)}async function C(B,$){const R=h.value;if(!R||c.value)return;d==null||d.abort(),d=new AbortController,c.value=!0,o.value.push({role:"user",text:$}),o.value.push({role:"assistant",text:"",streaming:!0});const Z=o.value.length-1;await w();try{for await(const K of R(B,d.signal))o.value[Z].text+=K,w();o.value[Z].text||(o.value[Z].text=r("sidebars.ai.emptyResponse"),o.value[Z].error=!0)}catch(K){d.signal.aborted||(o.value[Z].text=`${r("sidebars.ai.aiError")}: ${K instanceof Error?K.message:String(K)}`,o.value[Z].error=!0)}finally{o.value[Z].streaming=!1,c.value=!1,d=null,w()}}function E(){const B=l.value.trim();if(!B||c.value)return;if(l.value="",b.value){P({prompt:B,context:x()},B);return}const $=k.value;C({action:"chat",prompt:B,...$?{selection:$.text}:{},context:x()},B)}async function P(B,$){const R=v.value;if(!R||c.value)return;d==null||d.abort(),d=new AbortController,c.value=!0,o.value.push({role:"user",text:$}),o.value.push({role:"assistant",text:"",streaming:!0});const Z=o.value.length-1;await w();try{for await(const K of R(B,d.signal))K.type==="delta"?(o.value[Z].text+=K.text,w()):K.type==="done"?o.value[Z].citations=K.citations:K.type==="error"&&(o.value[Z].text=`${r("sidebars.ai.aiError")}: ${K.message}`,o.value[Z].error=!0,o.value[Z].citations=void 0);!o.value[Z].text&&!o.value[Z].error&&(o.value[Z].text=r("sidebars.ai.emptyResponse"),o.value[Z].error=!0)}catch(K){d.signal.aborted||(o.value[Z].text=`${r("sidebars.ai.aiError")}: ${K instanceof Error?K.message:String(K)}`,o.value[Z].error=!0,o.value[Z].citations=void 0)}finally{o.value[Z].streaming=!1,c.value=!1,d=null,w()}}function _(){b.value=!b.value,s.nextTick(()=>{const B=document.querySelector(".ai-sidebar textarea");B==null||B.focus()})}function S(B){if(c.value||!B.action)return;const $=k.value;B.needsSelection&&!$||C({action:B.action,...$?{selection:$.text}:{},...B.prompt?{prompt:B.prompt}:{},context:x()},B.prompt??B.label)}function M(){var B,$,R;k.value&&((R=($=(B=a())==null?void 0:B.commands)==null?void 0:$.aiTransform)==null||R.call($,{action:"rewrite"}))}const z=s.computed(()=>[{label:r("sidebars.ai.summarize"),icon:to,color:"text-cyan-500",action:"summarize",needsSelection:!0},{label:r("sidebars.ai.fixGrammar"),icon:yp,color:"text-emerald-500",action:"grammar",needsSelection:!0},{label:r("sidebars.ai.continue"),icon:ld,color:"text-amber-500",action:"generate",prompt:"Continue writing naturally from where the text ends, matching the existing style."},{label:r("sidebars.ai.toSpanish"),icon:dc,color:"text-cyan-500",action:"translate",prompt:"translate to Spanish",needsSelection:!0},{label:r("sidebars.ai.improveSelection"),icon:Gp,color:"text-violet-500",improve:!0,needsSelection:!0},{label:r("sidebars.ai.draft"),icon:Ar,color:"text-cyan-500",draft:!0,disabled:!v.value}]);function F(B,$){B.text&&(navigator.clipboard.writeText(B.text),f.value=$,setTimeout(()=>f.value=null,2e3))}function I(B){p.value=B,setTimeout(()=>{p.value===B&&(p.value=null)},2e3)}function T(B,$){const R=a();if(!B.text||!R)return;const{state:Z,view:K}=R,{from:D,to:U}=Z.selection;if(!B.citations||B.citations.length===0){K.dispatch(Z.tr.insertText(B.text,D,U)),K.focus(),I($);return}const j=Yi(R);if(!j){K.dispatch(Z.tr.insertText(Kk(B.text),D,U)),K.focus(),I($);return}const re=new Map(B.citations.map(O=>[O.ref,O])),ae=Xk(B.text,re,j),Y=Z.schema,te=ae.map(O=>typeof O=="string"?Y.text(O):Y.nodeFromJSON(O)).filter(O=>!!O),G=new ne(J.from(te),0,0);K.dispatch(Z.tr.replace(D,U,G)),K.focus(),I($)}function H(){d==null||d.abort(),c.value=!1,n("close")}return s.onUnmounted(()=>{var B;d==null||d.abort(),(B=a())==null||B.off("transaction",g)}),(B,$)=>(s.openBlock(),s.createElementBlock("div",Jk,[s.createElementVNode("div",Zk,[s.createElementVNode("div",null,[s.createElementVNode("h3",Qk,[s.createVNode(s.unref(Ki),{class:"h-4 w-4 animate-pulse text-cyan-400"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.ai.title")),1)]),s.createElementVNode("p",Yk,s.toDisplayString(s.unref(r)("sidebars.ai.description")),1)]),s.createElementVNode("button",{type:"button",class:"rounded-md p-1 text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-white/5 dark:hover:text-slate-200","aria-label":s.unref(r)("sidebars.ai.close"),onClick:H},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})],8,ew)]),h.value?(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[s.createElementVNode("div",nw,[s.createElementVNode("span",rw,s.toDisplayString(s.unref(r)("sidebars.ai.quickMacros")),1),s.createElementVNode("div",aw,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(z.value,R=>(s.openBlock(),s.createElementBlock("button",{key:R.label,type:"button",disabled:c.value||R.needsSelection&&!k.value||"disabled"in R&&R.disabled,title:R.needsSelection&&!k.value?s.unref(r)("sidebars.ai.selectTextFirst"):R.label,class:s.normalizeClass(["flex items-center gap-1.5 rounded-lg border px-2.5 py-1.5 text-left text-[11px] font-bold transition-colors disabled:opacity-40","draft"in R&&R.draft&&b.value?"border-cyan-500 bg-cyan-500/10 text-cyan-700 dark:border-cyan-400/50 dark:bg-cyan-500/15 dark:text-cyan-300":"border-slate-200 bg-slate-50 text-slate-700 hover:border-cyan-500/50 dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-300 dark:hover:border-cyan-500/30"]),onClick:Z=>R.improve?M():"draft"in R&&R.draft?_():S(R)},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(R.icon),{class:s.normalizeClass(["h-3 w-3",R.color])},null,8,["class"])),s.createElementVNode("span",null,s.toDisplayString(R.label),1)],10,ow))),128))])]),s.createElementVNode("div",{ref_key:"turnsEl",ref:m,class:"flex-1 space-y-3 overflow-y-auto p-4"},[o.value.length===0?(s.openBlock(),s.createElementBlock("div",sw,[s.createVNode(s.unref(Ki),{class:"mb-2 h-6 w-6 text-cyan-500 opacity-30"}),s.createElementVNode("p",lw,s.toDisplayString(s.unref(r)("sidebars.ai.noDraft")),1)])):s.createCommentVNode("",!0),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.value,(R,Z)=>(s.openBlock(),s.createElementBlock("div",{key:Z,class:s.normalizeClass(["flex flex-col gap-1",R.role==="user"?"items-end":"items-start"])},[s.createElementVNode("span",cw,[R.role==="user"?(s.openBlock(),s.createBlock(s.unref(Po),{key:0,class:"h-2.5 w-2.5"})):(s.openBlock(),s.createBlock(s.unref(Ki),{key:1,class:"h-2.5 w-2.5 text-cyan-400"})),s.createTextVNode(" "+s.toDisplayString(R.role==="user"?s.unref(r)("sidebars.ai.you"):s.unref(r)("sidebars.ai.assistant")),1)]),s.createElementVNode("div",{class:s.normalizeClass(["max-w-full whitespace-pre-wrap rounded-xl px-3 py-2 text-xs leading-relaxed",[R.role==="user"?"bg-cyan-500/10 text-slate-700 dark:bg-cyan-500/15 dark:text-slate-200":R.error?"bg-red-50 text-red-700 dark:bg-red-500/10 dark:text-red-300":"bg-slate-100 text-slate-700 dark:bg-white/[0.04] dark:text-slate-300"]])},[s.createTextVNode(s.toDisplayString(R.text),1),R.streaming?(s.openBlock(),s.createElementBlock("span",uw,"▌")):s.createCommentVNode("",!0)],2),R.role==="assistant"&&R.citations&&R.citations.length>0?(s.openBlock(),s.createElementBlock("div",fw,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(R.citations,K=>(s.openBlock(),s.createElementBlock("span",{key:K.ref,class:"inline-flex items-center gap-1 rounded-full border border-cyan-500/30 bg-cyan-500/5 px-2 py-0.5 text-[10px] font-semibold text-cyan-700 dark:border-cyan-400/30 dark:bg-cyan-500/10 dark:text-cyan-300"},[s.createVNode(s.unref(Ar),{class:"h-2.5 w-2.5"}),s.createTextVNode(s.toDisplayString(K.label),1)]))),128))])):s.createCommentVNode("",!0),R.role==="assistant"&&!R.streaming&&!R.error&&R.text?(s.openBlock(),s.createElementBlock("div",pw,[s.createElementVNode("button",{type:"button",class:"flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-2 py-1 text-[10px] font-semibold text-slate-600 transition-all hover:bg-slate-50 dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-300 dark:hover:bg-white/5",onClick:K=>F(R,Z)},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(f.value===Z?s.unref(Nr):s.unref(Np)),{class:s.normalizeClass(["h-3 w-3",f.value===Z?"text-emerald-500":""])},null,8,["class"])),s.createElementVNode("span",null,s.toDisplayString(f.value===Z?s.unref(r)("sidebars.ai.copied"):s.unref(r)("sidebars.ai.copy")),1)],8,dw),s.createElementVNode("button",{type:"button",class:"flex items-center gap-1 rounded-lg bg-cyan-500 px-2 py-1 text-[10px] font-bold text-black shadow-cyan transition-all hover:bg-cyan-400",onClick:K=>T(R,Z)},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(p.value===Z?s.unref(Nr):s.unref(gp)),{class:"h-3 w-3"})),s.createElementVNode("span",null,s.toDisplayString(p.value===Z?s.unref(r)("sidebars.ai.inserted"):s.unref(r)("sidebars.ai.insert")),1)],8,mw)])):s.createCommentVNode("",!0)],2))),128))],512),s.createElementVNode("div",hw,[s.createElementVNode("form",{class:"space-y-2",onSubmit:s.withModifiers(E,["prevent"])},[s.withDirectives(s.createElementVNode("textarea",{"onUpdate:modelValue":$[0]||($[0]=R=>l.value=R),rows:"2",disabled:c.value,placeholder:b.value?s.unref(r)("sidebars.ai.draftPlaceholder"):s.unref(r)("sidebars.ai.promptPlaceholder"),class:"w-full min-h-[55px] resize-none rounded-xl border border-slate-200 bg-white p-2.5 text-xs text-slate-800 transition-all focus:border-cyan-500/50 focus:shadow-cyan focus:outline-none disabled:opacity-60 dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-100 dark:focus:border-cyan-500/30",onKeydown:s.withKeys(s.withModifiers(E,["exact","prevent"]),["enter"])},null,40,bw),[[s.vModelText,l.value]]),s.createElementVNode("div",gw,[s.createElementVNode("button",{type:"submit",disabled:c.value||!l.value.trim(),class:"flex items-center gap-1 rounded-lg bg-cyan-500 px-3.5 py-2 text-xs font-bold text-black shadow-cyan transition-all hover:bg-cyan-400 disabled:opacity-40"},[s.createVNode(s.unref(eo),{class:"h-3.5 w-3.5"}),s.createTextVNode(" "+s.toDisplayString(b.value?s.unref(r)("sidebars.ai.promptDraft"):s.unref(r)("sidebars.ai.promptAI")),1)],8,vw)])],32)])],64)):(s.openBlock(),s.createElementBlock("div",tw,[s.createVNode(s.unref(Ki),{class:"mb-2 h-6 w-6 text-cyan-500 opacity-30"}),s.createElementVNode("p",iw,s.toDisplayString(s.unref(r)("sidebars.ai.notConfigured")),1)]))]))}}),yw={class:"comments-sidebar flex h-full w-80 flex-shrink-0 flex-col border-l border-slate-200 bg-white/80 text-slate-800 backdrop-blur-xl transition-all dark:border-white/5 dark:bg-[#0a0f1e]/85 dark:text-slate-100"},xw={class:"border-b border-slate-200 p-4 dark:border-white/5"},kw={class:"mb-3 flex items-center justify-between"},ww={class:"flex items-center gap-1.5 font-mono text-xs font-bold uppercase tracking-widest text-slate-500 dark:text-slate-400"},_w={class:"flex rounded-xl border border-slate-200 bg-slate-50 p-1 text-[11px] font-semibold dark:border-white/10 dark:bg-white/[0.02]"},Sw={key:0,class:"mb-1 rounded-xl border border-cyan-500/25 bg-cyan-500/5 p-2.5 text-xs text-cyan-700 animate-fadeIn dark:border-cyan-500/15 dark:bg-cyan-500/10 dark:text-cyan-400"},Cw={class:"mb-1 font-mono text-[9px] font-bold uppercase tracking-wider"},Ew={class:"line-clamp-1 border-l-2 border-cyan-400 bg-cyan-500/10 py-0.5 pl-2.5 italic dark:bg-cyan-500/5"},Nw={class:"flex-1 space-y-4 overflow-y-auto p-4"},Ow={class:"flex items-start justify-between"},Aw={class:"flex items-center gap-2"},Tw={class:"text-xs font-bold text-slate-800 dark:text-slate-200"},Mw={class:"font-mono text-[9px] text-slate-400 dark:text-slate-500"},zw=["title","onClick"],Iw={key:0,class:"max-w-full truncate rounded-r-lg border-l-2 border-cyan-500/50 bg-slate-100 py-1 pl-2.5 text-[10px] italic text-slate-500 dark:border-cyan-500/40 dark:bg-white/5 dark:text-slate-400"},Dw={class:"whitespace-pre-wrap break-words text-xs leading-relaxed text-slate-700 dark:text-slate-300"},Rw={key:1,class:"space-y-2.5 border-l border-slate-200 pl-4 pt-1 dark:border-white/10"},Lw={class:"flex items-center gap-1.5"},Bw={class:"text-[10px] font-bold text-slate-600 dark:text-slate-300"},Pw={class:"font-mono text-[8px] text-slate-400 dark:text-slate-500"},Vw={class:"break-words pl-1 text-xs text-slate-600 dark:text-slate-400"},Fw={key:2,class:"flex items-center justify-between border-t border-slate-100 pt-2 dark:border-white/5"},Uw={key:0,class:"flex w-full items-center gap-1.5"},Hw=["onUpdate:modelValue","placeholder","onKeydown"],jw=["onClick"],qw=["onClick"],$w={key:3,class:"rounded-lg border border-green-100/40 bg-green-50/55 p-2 text-[10px] text-green-700 dark:border-green-500/10 dark:bg-green-950/10 dark:text-green-400"},Ww={key:0},Gw={key:0,class:"py-12 text-center text-slate-400 dark:text-slate-500"},Kw={class:"text-xs"},Xw={key:0,class:"border-t border-slate-200 bg-slate-50 p-4 dark:border-white/5 dark:bg-[#0a0f1e]/80"},Jw=["placeholder"],Zw={class:"flex items-center justify-between"},Qw={class:"font-mono text-[9px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},Yw=["disabled"],Of=s.defineComponent({__name:"CommentsSidebar",props:{comments:{},selectedTextSnippet:{},selectedTextIndex:{}},emits:["add-comment","add-reply","resolve-comment"],setup(e,{emit:t}){const i=e,n=t,{t:r}=at(),a=s.ref(""),o=s.ref({}),l=s.ref(null),c=s.ref("active"),f=s.computed(()=>(i.comments??[]).filter(h=>c.value==="resolved"?h.resolved:!h.resolved));function p(){a.value.trim()&&n("add-comment",a.value.trim(),i.selectedTextSnippet,i.selectedTextIndex)}function m(h){const v=o.value[h]||"";v.trim()&&(n("add-reply",h,v.trim()),o.value={...o.value,[h]:""},l.value=null)}function d(h){return h.split(" ").map(v=>v[0]).join("").slice(0,2).toUpperCase()}return(h,v)=>(s.openBlock(),s.createElementBlock("div",yw,[s.createElementVNode("div",xw,[s.createElementVNode("div",kw,[s.createElementVNode("h3",ww,[s.createVNode(s.unref(yc),{class:"h-4 w-4 text-cyan-400"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.comments.title")),1)]),s.createElementVNode("div",_w,[s.createElementVNode("button",{type:"button",class:s.normalizeClass([c.value==="active"?"bg-cyan-500/15 text-cyan-600 dark:text-cyan-400 font-bold":"text-slate-400 hover:text-slate-600","rounded-lg px-2.5 py-1 transition-all"]),onClick:v[0]||(v[0]=b=>c.value="active")},s.toDisplayString(s.unref(r)("sidebars.comments.active")),3),s.createElementVNode("button",{type:"button",class:s.normalizeClass([c.value==="resolved"?"bg-cyan-500/15 text-cyan-600 dark:text-cyan-400 font-bold":"text-slate-400 hover:text-slate-600","rounded-lg px-2.5 py-1 transition-all"]),onClick:v[1]||(v[1]=b=>c.value="resolved")},s.toDisplayString(s.unref(r)("sidebars.comments.resolved")),3)])]),e.selectedTextSnippet?(s.openBlock(),s.createElementBlock("div",Sw,[s.createElementVNode("p",Cw,s.toDisplayString(s.unref(r)("sidebars.comments.creatingAnchored")),1),s.createElementVNode("p",Ew,' "'+s.toDisplayString(e.selectedTextSnippet)+'" ',1)])):s.createCommentVNode("",!0)]),s.createElementVNode("div",Nw,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(f.value,b=>(s.openBlock(),s.createElementBlock("div",{key:b.id,class:"relative space-y-3 rounded-2xl border border-slate-200/60 bg-slate-50/60 p-4 transition-all hover:border-cyan-500/30 hover:shadow-cyan dark:border-white/5 dark:bg-[#02040a]/40"},[s.createElementVNode("div",Ow,[s.createElementVNode("div",Aw,[s.createElementVNode("div",{class:"flex h-6 w-6 items-center justify-center rounded-full text-[10px] font-bold text-white shadow-sm",style:s.normalizeStyle({backgroundColor:b.authorColor})},s.toDisplayString(d(b.authorName)),5),s.createElementVNode("div",null,[s.createElementVNode("h4",Tw,s.toDisplayString(b.authorName),1),s.createElementVNode("p",Mw,s.toDisplayString(new Date(b.createdAt).toLocaleTimeString()),1)])]),b.resolved?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"rounded-lg p-1.5 text-slate-400 transition-colors hover:bg-green-500/10 hover:text-green-500",title:s.unref(r)("sidebars.comments.resolve"),onClick:y=>n("resolve-comment",b.id)},[s.createVNode(s.unref(Sp),{class:"h-4 w-4"})],8,zw))]),b.anchorText?(s.openBlock(),s.createElementBlock("div",Iw,s.toDisplayString(s.unref(r)("sidebars.comments.quote"))+' "'+s.toDisplayString(b.anchorText)+'" ',1)):s.createCommentVNode("",!0),s.createElementVNode("p",Dw,s.toDisplayString(b.content),1),b.replies.length>0?(s.openBlock(),s.createElementBlock("div",Rw,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(b.replies,y=>(s.openBlock(),s.createElementBlock("div",{key:y.id,class:"space-y-1"},[s.createElementVNode("div",Lw,[s.createElementVNode("div",{class:"flex h-4.5 w-4.5 items-center justify-center rounded-full text-[8px] font-bold text-white shadow-sm",style:s.normalizeStyle({backgroundColor:y.authorColor})},s.toDisplayString(d(y.authorName)),5),s.createElementVNode("span",Bw,s.toDisplayString(y.authorName),1),s.createElementVNode("span",Pw,s.toDisplayString(new Date(y.createdAt).toLocaleTimeString()),1)]),s.createElementVNode("p",Vw,s.toDisplayString(y.content),1)]))),128))])):s.createCommentVNode("",!0),b.resolved?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",Fw,[l.value===b.id?(s.openBlock(),s.createElementBlock("div",Uw,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":y=>o.value[b.id]=y,type:"text",placeholder:s.unref(r)("sidebars.comments.reply"),class:"flex-1 rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-xs text-slate-800 focus:border-cyan-500/50 focus:outline-none dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-100 dark:focus:border-cyan-500/30",onKeydown:s.withKeys(y=>m(b.id),["enter"])},null,40,Hw),[[s.vModelText,o.value[b.id]]]),s.createElementVNode("button",{type:"button",class:"rounded-lg bg-cyan-500 p-1.5 font-bold text-black shadow-cyan hover:bg-cyan-400",onClick:y=>m(b.id)},[s.createVNode(s.unref(eo),{class:"h-3.5 w-3.5"})],8,jw)])):(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:"flex items-center gap-1 text-[10px] font-bold text-cyan-600 transition-all hover:text-cyan-500",onClick:y=>l.value=b.id},[s.createVNode(s.unref(Zp),{class:"h-3 w-3"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.comments.replyInThread")),1)],8,qw))])),b.resolved?(s.openBlock(),s.createElementBlock("div",$w,[s.createTextVNode(s.toDisplayString(s.unref(r)("sidebars.comments.resolvedBy").replace("{user}",b.resolvedByName||b.resolvedBy||"You"))+" ",1),b.resolvedAt?(s.openBlock(),s.createElementBlock("span",Ww,"at "+s.toDisplayString(new Date(b.resolvedAt).toLocaleTimeString()),1)):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0)]))),128)),f.value.length===0?(s.openBlock(),s.createElementBlock("div",Gw,[s.createVNode(s.unref(Hp),{class:"mx-auto mb-2 h-8 w-8 text-cyan-500 opacity-50"}),s.createElementVNode("p",Kw,s.toDisplayString(s.unref(r)("sidebars.comments.noComments").replace("{mode}",c.value)),1)])):s.createCommentVNode("",!0)]),c.value==="active"?(s.openBlock(),s.createElementBlock("div",Xw,[s.createElementVNode("form",{class:"space-y-2",onSubmit:s.withModifiers(p,["prevent"])},[s.withDirectives(s.createElementVNode("textarea",{"onUpdate:modelValue":v[2]||(v[2]=b=>a.value=b),rows:"2",placeholder:e.selectedTextSnippet?s.unref(r)("sidebars.comments.commentOnSelection"):s.unref(r)("sidebars.comments.generalComment"),class:"w-full min-h-[60px] resize-none rounded-xl border border-slate-200 bg-white p-2.5 text-xs text-slate-800 transition-all focus:border-cyan-500/50 focus:shadow-cyan focus:outline-none dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-100 dark:focus:border-cyan-500/30"},null,8,Jw),[[s.vModelText,a.value]]),s.createElementVNode("div",Zw,[s.createElementVNode("span",Qw,s.toDisplayString(e.selectedTextSnippet?s.unref(r)("sidebars.comments.anchoredComment"):s.unref(r)("sidebars.comments.general")),1),s.createElementVNode("button",{type:"submit",disabled:!a.value.trim(),class:"flex items-center gap-1 rounded-lg bg-cyan-500 px-3.5 py-2 text-xs font-bold text-black shadow-cyan transition-all hover:bg-cyan-400 disabled:opacity-50"},[s.createVNode(s.unref(eo),{class:"h-3.5 w-3.5"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.comments.post")),1)],8,Yw)])],32)])):s.createCommentVNode("",!0)]))}}),e_={class:"history-sidebar flex h-full w-80 flex-shrink-0 flex-col border-l border-slate-200 bg-white/80 text-slate-800 backdrop-blur-xl transition-all dark:border-white/5 dark:bg-[#0a0f1e]/85 dark:text-slate-100"},t_={class:"border-b border-slate-200 p-4 dark:border-white/5"},i_={class:"flex items-center gap-1.5 font-mono text-xs font-bold uppercase tracking-widest text-slate-500 dark:text-slate-400"},n_={class:"mt-1.5 text-[10px] leading-relaxed text-slate-400 dark:text-slate-500"},r_={class:"flex-1 space-y-3 overflow-y-auto p-4"},a_={key:0,class:"space-y-2 rounded-2xl border border-amber-500/30 bg-amber-500/10 p-3.5 text-xs animate-fadeIn dark:border-amber-500/20"},o_={class:"flex items-start gap-1.5 text-amber-700 dark:text-amber-400"},s_={class:"font-bold"},l_={class:"mt-0.5 text-[10px] leading-relaxed text-amber-600 dark:text-amber-500"},c_={class:"flex justify-end gap-2 pt-1"},u_={class:"space-y-2.5"},f_={class:"mb-1 flex items-center justify-between"},p_={class:"rounded-md bg-slate-200 px-1.5 py-0.5 font-mono text-[9px] font-bold text-slate-500 dark:bg-cyan-500/10 dark:text-cyan-400"},d_={class:"flex items-center gap-0.5 font-mono text-[9px] text-slate-400 dark:text-slate-500"},m_={class:"text-xs font-bold leading-snug text-slate-800 dark:text-slate-200"},h_={class:"flex items-center gap-1.5 text-[10px] text-slate-500"},b_={class:"font-semibold text-slate-600 dark:text-slate-300"},g_={class:"flex justify-end gap-2 border-t border-slate-200/50 pt-2 dark:border-white/5"},v_=["onClick"],y_=["onClick"],x_={key:0,class:"py-6 text-center text-xs text-slate-400 dark:text-slate-500"},k_={class:"border-t border-slate-200 bg-slate-50 p-4 dark:border-white/5 dark:bg-[#0a0f1e]/85"},w_=["placeholder"],__={class:"flex justify-end gap-2"},S_={type:"submit",class:"rounded-lg bg-cyan-500 px-3.5 py-1.5 text-xs font-bold text-black shadow-cyan hover:bg-cyan-400"},Af=s.defineComponent({__name:"HistorySidebar",props:{snapshots:{},activePreviewIndex:{}},emits:["save-snapshot","restore-snapshot","preview-snapshot"],setup(e,{emit:t}){const i=e,n=t,{t:r}=at(),a=s.ref(""),o=s.ref(!1);function l(){a.value.trim()&&(n("save-snapshot",a.value.trim()),a.value="",o.value=!1)}const c=s.computed(()=>i.snapshots??[]);return(f,p)=>(s.openBlock(),s.createElementBlock("div",e_,[s.createElementVNode("div",t_,[s.createElementVNode("h3",i_,[s.createVNode(s.unref(hc),{class:"h-4 w-4 text-cyan-400"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.title")),1)]),s.createElementVNode("p",n_,s.toDisplayString(s.unref(r)("sidebars.history.empty")),1)]),s.createElementVNode("div",r_,[e.activePreviewIndex!==null?(s.openBlock(),s.createElementBlock("div",a_,[s.createElementVNode("div",o_,[s.createVNode(s.unref(ed),{class:"mt-0.5 h-4 w-4 flex-shrink-0 text-amber-500"}),s.createElementVNode("div",null,[s.createElementVNode("p",s_,s.toDisplayString(s.unref(r)("sidebars.history.viewingPreview")),1),s.createElementVNode("p",l_,s.toDisplayString(s.unref(r)("sidebars.history.readOnlyPreview").replace("{index}",String(e.activePreviewIndex))),1)])]),s.createElementVNode("div",c_,[s.createElementVNode("button",{type:"button",class:"rounded-lg px-2.5 py-1 text-[10px] font-semibold text-slate-500 hover:bg-white/5 hover:text-slate-700 dark:text-slate-400",onClick:p[0]||(p[0]=m=>n("preview-snapshot",null))},s.toDisplayString(s.unref(r)("sidebars.history.closePreview")),1),s.createElementVNode("button",{type:"button",class:"flex items-center gap-1 rounded-lg bg-cyan-500 px-3 py-1 text-[10px] font-bold text-black shadow-cyan transition-all hover:bg-cyan-400",onClick:p[1]||(p[1]=()=>{n("restore-snapshot",e.activePreviewIndex),n("preview-snapshot",null)})},[s.createVNode(s.unref(Is),{class:"h-3 w-3"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.restoreThis")),1)])])])):s.createCommentVNode("",!0),s.createElementVNode("div",u_,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(c.value,m=>(s.openBlock(),s.createElementBlock("div",{key:m.versionIndex,class:s.normalizeClass(["space-y-2.5 rounded-2xl border p-4 transition-all",e.activePreviewIndex===m.versionIndex?"border-cyan-500/40 bg-cyan-500/5 shadow-cyan dark:border-cyan-500/30":"border-slate-200/60 bg-slate-50/60 hover:border-cyan-500/30 dark:border-white/5 dark:bg-[#02040a]/40 dark:hover:border-white/10"])},[s.createElementVNode("div",null,[s.createElementVNode("div",f_,[s.createElementVNode("span",p_,s.toDisplayString(s.unref(r)("sidebars.history.version"))+" #"+s.toDisplayString(m.versionIndex),1),s.createElementVNode("span",d_,[s.createVNode(s.unref(fc),{class:"h-2.5 w-2.5"}),s.createTextVNode(" "+s.toDisplayString(new Date(m.timestamp).toLocaleDateString())+" "+s.toDisplayString(new Date(m.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})),1)])]),s.createElementVNode("h4",m_,s.toDisplayString(m.title),1)]),s.createElementVNode("div",h_,[s.createVNode(s.unref(Po),{class:"h-3.5 w-3.5"}),s.createElementVNode("span",null,[s.createTextVNode(s.toDisplayString(s.unref(r)("sidebars.history.modifiedBy"))+" ",1),s.createElementVNode("strong",b_,s.toDisplayString(m.modifiedBy),1)])]),s.createElementVNode("div",g_,[e.activePreviewIndex!==m.versionIndex?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"flex items-center gap-1 text-[10px] font-bold text-slate-500 transition-colors hover:text-cyan-600 dark:text-slate-400 dark:hover:text-cyan-400",onClick:d=>n("preview-snapshot",m)},[s.createVNode(s.unref(Op),{class:"h-3 w-3"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.preview")),1)],8,v_)):s.createCommentVNode("",!0),s.createElementVNode("button",{type:"button",class:"flex items-center gap-1 text-[10px] font-bold text-cyan-600 transition-colors hover:text-cyan-500 dark:text-cyan-400 dark:hover:text-cyan-300",onClick:d=>n("restore-snapshot",m.versionIndex)},[s.createVNode(s.unref(Is),{class:"h-3 w-3"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.restore")),1)],8,y_)])],2))),128)),c.value.length===0?(s.openBlock(),s.createElementBlock("p",x_,s.toDisplayString(s.unref(r)("sidebars.history.noSnapshots")),1)):s.createCommentVNode("",!0)])]),s.createElementVNode("div",k_,[o.value?(s.openBlock(),s.createElementBlock("form",{key:0,class:"space-y-2 animate-fadeIn",onSubmit:s.withModifiers(l,["prevent"])},[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":p[2]||(p[2]=m=>a.value=m),type:"text",required:"",placeholder:s.unref(r)("sidebars.history.snapshotPlaceholder"),class:"w-full rounded-xl border border-slate-200 bg-white px-2.5 py-1.5 text-xs text-slate-800 transition-all focus:border-cyan-500/50 focus:shadow-cyan focus:outline-none dark:border-white/10 dark:bg-white/[0.02] dark:text-slate-100 dark:focus:border-cyan-500/30"},null,8,w_),[[s.vModelText,a.value]]),s.createElementVNode("div",__,[s.createElementVNode("button",{type:"button",class:"rounded-lg px-2.5 py-1 text-[10px] text-slate-500 hover:bg-white/5 dark:text-slate-400",onClick:p[3]||(p[3]=m=>o.value=!1)},s.toDisplayString(s.unref(r)("sidebars.history.cancel")),1),s.createElementVNode("button",S_,s.toDisplayString(s.unref(r)("sidebars.history.save")),1)])],32)):(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:"flex w-full items-center justify-center gap-1.5 rounded-xl border border-dashed border-slate-300 py-2.5 text-xs font-bold text-slate-500 transition-all hover:border-cyan-500 hover:bg-cyan-500/5 hover:text-cyan-500 dark:border-white/10 dark:text-slate-400 dark:hover:border-cyan-400/50 dark:hover:text-cyan-400",onClick:p[4]||(p[4]=m=>o.value=!0)},[s.createVNode(s.unref(Qp),{class:"h-3.5 w-3.5 animate-pulse"}),s.createTextVNode(" "+s.toDisplayString(s.unref(r)("sidebars.history.saveNamedSnapshot")),1)]))])]))}}),C_={class:"w-full max-w-md rounded-xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525]"},E_={class:"mb-4 flex items-center justify-between"},N_={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},O_={key:0,class:"space-y-4"},A_={class:"flex items-start gap-3"},T_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-cyan-500/10 text-cyan-600 dark:text-cyan-400"},M_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},z_={class:"text-sm font-medium text-slate-800 dark:text-slate-200"},I_={class:"flex items-start gap-3"},D_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-blue-500/10 text-blue-600 dark:text-blue-400"},R_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},L_={class:"text-sm font-medium text-slate-800 dark:text-slate-200"},B_={class:"text-xs text-slate-500 dark:text-slate-400"},P_={class:"flex items-start gap-3"},V_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-amber-500/10 text-amber-600 dark:text-amber-400"},F_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},U_={class:"text-sm font-medium text-slate-800 dark:text-slate-200"},H_={class:"grid grid-cols-2 gap-3"},j_={class:"flex items-start gap-3"},q_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-emerald-500/10 text-emerald-600 dark:text-emerald-400"},$_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},W_={class:"text-xs font-medium text-slate-800 dark:text-slate-200"},G_={class:"flex items-start gap-3"},K_={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-purple-500/10 text-purple-600 dark:text-purple-400"},X_={class:"text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},J_={class:"text-xs font-medium text-slate-800 dark:text-slate-200"},Z_={class:"rounded-lg border border-slate-200 bg-slate-50 p-4 dark:border-slate-700/50 dark:bg-white/5"},Q_={class:"mb-2 flex items-center gap-2 text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500"},Y_={class:"grid grid-cols-3 gap-3 text-center"},eS={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},tS={class:"text-[10px] uppercase tracking-wide text-slate-500 dark:text-slate-400"},iS={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},nS={class:"text-[10px] uppercase tracking-wide text-slate-500 dark:text-slate-400"},rS={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},aS={class:"text-[10px] uppercase tracking-wide text-slate-500 dark:text-slate-400"},oS={key:1,class:"py-8 text-center text-sm text-slate-500 dark:text-slate-400"},Tf=s.defineComponent({__name:"DetailsDialog",props:{isOpen:{type:Boolean},meta:{}},emits:["close"],setup(e,{emit:t}){const{t:i}=at(),n=t;function r(a){return a?new Date(a).toLocaleString():"-"}return(a,o)=>e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/50 p-4 backdrop-blur-sm",onClick:o[1]||(o[1]=s.withModifiers(l=>n("close"),["self"]))},[s.createElementVNode("div",C_,[s.createElementVNode("div",E_,[s.createElementVNode("h2",N_,s.toDisplayString(s.unref(i)("editor.details.title")),1),s.createElementVNode("button",{type:"button",class:"rounded p-1 text-slate-400 transition hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-white/5 dark:hover:text-slate-300",onClick:o[0]||(o[0]=l=>n("close"))},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})])]),e.meta?(s.openBlock(),s.createElementBlock("div",O_,[s.createElementVNode("div",A_,[s.createElementVNode("div",T_,[s.createVNode(s.unref(Xi),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",M_,s.toDisplayString(s.unref(i)("editor.details.titleLabel")),1),s.createElementVNode("p",z_,s.toDisplayString(e.meta.title),1)])]),s.createElementVNode("div",I_,[s.createElementVNode("div",D_,[s.createVNode(s.unref(Po),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",R_,s.toDisplayString(s.unref(i)("editor.details.owner")),1),s.createElementVNode("p",L_,s.toDisplayString(e.meta.owner.name),1),s.createElementVNode("p",B_,s.toDisplayString(e.meta.owner.email),1)])]),s.createElementVNode("div",P_,[s.createElementVNode("div",V_,[s.createVNode(s.unref(Tp),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",F_,s.toDisplayString(s.unref(i)("editor.details.location")),1),s.createElementVNode("p",U_,s.toDisplayString(e.meta.folderName||s.unref(i)("editor.details.noFolder")),1)])]),s.createElementVNode("div",H_,[s.createElementVNode("div",j_,[s.createElementVNode("div",q_,[s.createVNode(s.unref(fc),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",$_,s.toDisplayString(s.unref(i)("editor.details.created")),1),s.createElementVNode("p",W_,s.toDisplayString(r(e.meta.createdAt)),1)])]),s.createElementVNode("div",G_,[s.createElementVNode("div",K_,[s.createVNode(s.unref(Cp),{class:"h-4 w-4"})]),s.createElementVNode("div",null,[s.createElementVNode("label",X_,s.toDisplayString(s.unref(i)("editor.details.modified")),1),s.createElementVNode("p",J_,s.toDisplayString(r(e.meta.updatedAt)),1)])])]),s.createElementVNode("div",Z_,[s.createElementVNode("div",Q_,[s.createVNode(s.unref(mc),{class:"h-3.5 w-3.5"}),s.createTextVNode(" "+s.toDisplayString(s.unref(i)("editor.details.statistics")),1)]),s.createElementVNode("div",Y_,[s.createElementVNode("div",null,[s.createElementVNode("p",eS,s.toDisplayString(e.meta.wordCount),1),s.createElementVNode("p",tS,s.toDisplayString(s.unref(i)("editor.details.words")),1)]),s.createElementVNode("div",null,[s.createElementVNode("p",iS,s.toDisplayString(e.meta.charCount),1),s.createElementVNode("p",nS,s.toDisplayString(s.unref(i)("editor.details.characters")),1)]),s.createElementVNode("div",null,[s.createElementVNode("p",rS,s.toDisplayString(e.meta.pageCount),1),s.createElementVNode("p",aS,s.toDisplayString(s.unref(i)("editor.details.pages")),1)])])])])):(s.openBlock(),s.createElementBlock("div",oS,s.toDisplayString(s.unref(i)("editor.details.loading")),1))])])):s.createCommentVNode("",!0)}}),sS={class:"w-full max-w-md rounded-xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525]"},lS={class:"mb-4 flex items-center justify-between"},cS={class:"flex items-center gap-2"},uS={class:"flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10 text-cyan-600 dark:text-cyan-400"},fS={class:"text-lg font-bold text-slate-800 dark:text-slate-100"},pS={class:"mb-4 rounded-md border border-slate-200 bg-slate-50 p-3 dark:border-slate-700/50 dark:bg-white/5"},dS={class:"mb-1 block text-[11px] font-bold uppercase tracking-wide text-slate-500 dark:text-slate-400"},mS={class:"flex items-center gap-2"},hS=["value"],bS=["title"],gS={class:"space-y-3"},vS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},yS=["placeholder"],xS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},kS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},wS={class:"mt-5 flex justify-end gap-2"},_S=["href"],Mf=s.defineComponent({__name:"EmailDialog",props:{isOpen:{type:Boolean},documentTitle:{},shareUrl:{},defaultRecipient:{}},emits:["close","copy-link"],setup(e,{emit:t}){const{t:i}=at(),n=e,r=t,a=s.ref(n.defaultRecipient||""),o=s.ref(""),l=s.ref("");s.watch(()=>n.documentTitle,m=>{o.value=i("editor.email.defaultSubject",{title:m})},{immediate:!0}),s.watch(()=>n.shareUrl,m=>{l.value=i("editor.email.defaultBody",{url:m})},{immediate:!0});const c=s.computed(()=>{const m=new URLSearchParams;o.value.trim()&&m.set("subject",o.value.trim()),l.value.trim()&&m.set("body",l.value.trim());const d=m.toString();let h=`mailto:${a.value.trim()}`;return d&&(h+=`?${d}`),h});function f(){r("copy-link")}function p(){a.value=n.defaultRecipient||"",o.value=i("editor.email.defaultSubject",{title:n.documentTitle}),l.value=i("editor.email.defaultBody",{url:n.shareUrl})}return s.watch(()=>n.isOpen,m=>{m&&p()}),(m,d)=>e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/50 p-4 backdrop-blur-sm",onClick:d[6]||(d[6]=s.withModifiers(h=>r("close"),["self"]))},[s.createElementVNode("div",sS,[s.createElementVNode("div",lS,[s.createElementVNode("div",cS,[s.createElementVNode("div",uS,[s.createVNode(s.unref(Fp),{class:"h-4 w-4"})]),s.createElementVNode("h2",fS,s.toDisplayString(s.unref(i)("editor.email.title")),1)]),s.createElementVNode("button",{type:"button",class:"rounded p-1 text-slate-400 transition hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-white/5 dark:hover:text-slate-300",onClick:d[0]||(d[0]=h=>r("close"))},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})])]),s.createElementVNode("div",pS,[s.createElementVNode("label",dS,s.toDisplayString(s.unref(i)("editor.email.shareableLink")),1),s.createElementVNode("div",mS,[s.createElementVNode("input",{type:"text",value:e.shareUrl,readonly:"",class:"flex-1 rounded-md border border-slate-300 bg-white px-2 py-1.5 text-xs text-slate-700 dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300"},null,8,hS),s.createElementVNode("button",{type:"button",class:"flex h-7 w-7 items-center justify-center rounded-md border border-slate-300 text-slate-500 transition hover:bg-slate-100 dark:border-slate-600 dark:text-slate-400 dark:hover:bg-slate-700",title:s.unref(i)("editor.email.copyLink"),onClick:f},[s.createVNode(s.unref(gc),{class:"h-3.5 w-3.5"})],8,bS)])]),s.createElementVNode("div",gS,[s.createElementVNode("div",null,[s.createElementVNode("label",vS,s.toDisplayString(s.unref(i)("editor.email.to")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=h=>a.value=h),type:"email",class:"w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300",placeholder:s.unref(i)("editor.email.toPlaceholder")},null,8,yS),[[s.vModelText,a.value]])]),s.createElementVNode("div",null,[s.createElementVNode("label",xS,s.toDisplayString(s.unref(i)("editor.email.subject")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":d[2]||(d[2]=h=>o.value=h),type:"text",class:"w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300"},null,512),[[s.vModelText,o.value]])]),s.createElementVNode("div",null,[s.createElementVNode("label",kS,s.toDisplayString(s.unref(i)("editor.email.body")),1),s.withDirectives(s.createElementVNode("textarea",{"onUpdate:modelValue":d[3]||(d[3]=h=>l.value=h),rows:"4",class:"w-full resize-none rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300"},null,512),[[s.vModelText,l.value]])])]),s.createElementVNode("div",wS,[s.createElementVNode("button",{type:"button",class:"rounded-md px-3 py-1.5 text-xs font-semibold text-slate-700 transition hover:bg-slate-100 dark:text-slate-300",onClick:d[4]||(d[4]=h=>r("close"))},s.toDisplayString(s.unref(i)("common.cancel")),1),s.createElementVNode("a",{href:c.value,class:"inline-flex rounded-md bg-cyan-600 px-3 py-1.5 text-xs font-semibold text-white transition hover:bg-cyan-700",onClick:d[5]||(d[5]=h=>r("close"))},s.toDisplayString(s.unref(i)("editor.email.send")),9,_S)])])])):s.createCommentVNode("",!0)}}),SS=["aria-label"],CS={class:"flex items-center gap-1.5"},ES=["placeholder"],NS={class:"w-16 flex-shrink-0 text-center text-[11px] text-slate-400 dark:text-slate-500"},OS=["disabled","title"],AS=["disabled","title"],TS=["title"],MS={class:"mt-2 flex items-center gap-1.5"},zS=["placeholder","onKeydown"],IS=["disabled"],DS=["disabled"],RS=s.defineComponent({__name:"FindReplaceDialog",props:{isOpen:{type:Boolean},editor:{}},emits:["close"],setup(e,{emit:t}){const{t:i}=at(),n=e,r=t,a=s.ref(null),o=s.ref(""),l=s.ref(""),c=s.ref({query:"",matches:[],activeIndex:0}),f=s.computed(()=>{if(!o.value)return"";const{matches:k,activeIndex:x}=c.value;return k.length===0?i("editor.findReplace.noMatches"):i("editor.findReplace.matchCount",{current:x+1,total:k.length})}),p=()=>{n.editor&&(c.value=Ee.getSearchState(n.editor))};s.watch(()=>n.editor,(k,x)=>{x==null||x.off("transaction",p),k==null||k.on("transaction",p)}),s.watch(()=>n.isOpen,async k=>{var x,w;if(n.editor)if(k){const{from:C,to:E}=n.editor.state.selection;C!==E&&(o.value=n.editor.state.doc.textBetween(C,E," ")),m(),n.editor.on("transaction",p),await s.nextTick(),(x=a.value)==null||x.focus(),(w=a.value)==null||w.select()}else g()});function m(){n.editor&&(Ee.setSearchQuery(n.editor,o.value),p())}s.watch(o,m);function d(){n.editor&&Ee.searchNext(n.editor)}function h(){n.editor&&Ee.searchPrev(n.editor)}function v(){n.editor&&Ee.replaceCurrent(n.editor,l.value)}function b(){n.editor&&Ee.replaceAll(n.editor,l.value)}function y(k){k.key==="Enter"&&k.shiftKey?(k.preventDefault(),h()):k.key==="Enter"?(k.preventDefault(),d()):k.key==="Escape"&&(k.preventDefault(),g())}function g(){var k;n.editor&&Ee.clearSearch(n.editor),(k=n.editor)==null||k.off("transaction",p),o.value="",l.value="",c.value={query:"",matches:[],activeIndex:0},r("close")}return s.onUnmounted(()=>{var k;(k=n.editor)==null||k.off("transaction",p)}),(k,x)=>e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,class:"absolute right-4 top-16 z-40 w-[340px] rounded-xl border border-slate-200 bg-white p-3 shadow-2xl dark:border-slate-700 dark:bg-[#0e1525]",role:"dialog","aria-label":s.unref(i)("editor.findReplace.title")},[s.createElementVNode("div",CS,[s.withDirectives(s.createElementVNode("input",{ref_key:"findInput",ref:a,"onUpdate:modelValue":x[0]||(x[0]=w=>o.value=w),type:"text",placeholder:s.unref(i)("editor.findReplace.findPlaceholder"),class:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-2.5 py-1.5 text-sm text-slate-800 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:text-slate-100",onKeydown:y},null,40,ES),[[s.vModelText,o.value]]),s.createElementVNode("span",NS,s.toDisplayString(f.value),1),s.createElementVNode("button",{type:"button",class:"flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 disabled:opacity-30 dark:text-slate-400 dark:hover:bg-slate-800",disabled:c.value.matches.length===0,title:s.unref(i)("editor.findReplace.previous"),onClick:h},[s.createVNode(s.unref(wp),{class:"h-4 w-4"})],8,OS),s.createElementVNode("button",{type:"button",class:"flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 disabled:opacity-30 dark:text-slate-400 dark:hover:bg-slate-800",disabled:c.value.matches.length===0,title:s.unref(i)("editor.findReplace.next"),onClick:d},[s.createVNode(s.unref(ti),{class:"h-4 w-4"})],8,AS),s.createElementVNode("button",{type:"button",class:"flex h-7 w-7 items-center justify-center rounded-md text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-slate-800",title:s.unref(i)("editor.findReplace.close"),onClick:g},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})],8,TS)]),s.createElementVNode("div",MS,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":x[1]||(x[1]=w=>l.value=w),type:"text",placeholder:s.unref(i)("editor.findReplace.replacePlaceholder"),class:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-2.5 py-1.5 text-sm text-slate-800 focus:border-cyan-500 focus:outline-none dark:border-slate-600 dark:text-slate-100",onKeydown:s.withKeys(s.withModifiers(v,["prevent"]),["enter"])},null,40,zS),[[s.vModelText,l.value]]),s.createElementVNode("button",{type:"button",class:"flex-shrink-0 rounded-lg border border-slate-200 px-2.5 py-1.5 text-xs font-semibold text-slate-600 transition-colors hover:bg-slate-50 disabled:opacity-30 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-white/5",disabled:c.value.matches.length===0,onClick:v},s.toDisplayString(s.unref(i)("editor.findReplace.replace")),9,IS),s.createElementVNode("button",{type:"button",class:"flex-shrink-0 rounded-lg border border-slate-200 px-2.5 py-1.5 text-xs font-semibold text-slate-600 transition-colors hover:bg-slate-50 disabled:opacity-30 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-white/5",disabled:c.value.matches.length===0,onClick:b},s.toDisplayString(s.unref(i)("editor.findReplace.replaceAll")),9,DS)])],8,SS)):s.createCommentVNode("",!0)}}),LS={class:"w-full max-w-md rounded-lg border border-slate-200 bg-white p-6 shadow-xl dark:border-slate-700 dark:bg-slate-800"},BS={class:"mb-4 flex items-center justify-between"},PS={class:"flex items-center gap-2 text-base font-semibold text-slate-900 dark:text-slate-100"},VS={class:"mb-4"},FS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},US=["placeholder"],HS={class:"mb-2"},jS={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-400"},qS=["placeholder"],$S={key:0,class:"mt-1 text-[11px] text-red-600 dark:text-red-400"},WS={class:"flex items-center justify-end gap-2 pt-2"},GS=s.defineComponent({__name:"LinkDialog",props:{isOpen:{type:Boolean},initialText:{},initialUrl:{},isEditing:{type:Boolean}},emits:["apply","remove","close"],setup(e,{emit:t}){const{t:i}=at(),n=e,r=t,a=s.ref(""),o=s.ref(""),l=s.ref("");s.watch(()=>n.isOpen,v=>{v&&(a.value=n.initialText??"",o.value=n.initialUrl??"https://",l.value="")});function c(){const v=o.value.trim();if(!v)return l.value=i("editor.linkDialog.urlRequired"),!1;if(/^(\/|#|mailto:|tel:)/.test(v))return l.value="",!0;try{return new URL(v),l.value="",!0}catch{return l.value=i("editor.linkDialog.urlInvalid"),!1}}function f(v){const b=v.trim();return/^(\/|#|mailto:|tel:)/.test(b)||/^https?:\/\//i.test(b)?b:`https://${b}`}function p(){c()&&r("apply",{text:a.value.trim(),url:f(o.value)})}function m(){r("remove")}function d(){r("close")}function h(v){v.key==="Escape"&&d()}return(v,b)=>e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:s.withModifiers(d,["self"]),onKeydown:h},[s.createElementVNode("div",LS,[s.createElementVNode("div",BS,[s.createElementVNode("h3",PS,[s.createVNode(s.unref(gc),{class:"h-5 w-5 text-slate-500 dark:text-slate-400"}),s.createTextVNode(" "+s.toDisplayString(e.isEditing?s.unref(i)("editor.linkDialog.editTitle"):s.unref(i)("editor.linkDialog.insertTitle")),1)]),s.createElementVNode("button",{type:"button",class:"rounded-md p-1 text-sm text-slate-400 transition-all hover:bg-slate-100 hover:text-slate-600 dark:hover:bg-slate-700 dark:hover:text-slate-300",onClick:d},[s.createVNode(s.unref(zt),{class:"h-4 w-4"})])]),s.createElementVNode("div",VS,[s.createElementVNode("label",FS,s.toDisplayString(s.unref(i)("editor.linkDialog.text")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":b[0]||(b[0]=y=>a.value=y),type:"text",placeholder:s.unref(i)("editor.linkDialog.textPlaceholder"),class:"w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300",onKeydown:s.withKeys(p,["enter"])},null,40,US),[[s.vModelText,a.value]])]),s.createElementVNode("div",HS,[s.createElementVNode("label",jS,s.toDisplayString(s.unref(i)("editor.linkDialog.url")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":b[1]||(b[1]=y=>o.value=y),type:"text",placeholder:s.unref(i)("editor.linkDialog.urlPlaceholder"),class:"w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-xs text-slate-700 dark:border-slate-600 dark:bg-slate-900 dark:text-slate-300",onKeydown:s.withKeys(p,["enter"])},null,40,qS),[[s.vModelText,o.value]]),l.value?(s.openBlock(),s.createElementBlock("p",$S,s.toDisplayString(l.value),1)):s.createCommentVNode("",!0)]),s.createElementVNode("div",WS,[e.isEditing?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"mr-auto flex items-center gap-1 rounded-md px-3 py-1.5 text-xs font-semibold text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/40",onClick:m},[s.createVNode(s.unref(kc),{class:"h-3.5 w-3.5"}),s.createTextVNode(" "+s.toDisplayString(s.unref(i)("editor.linkDialog.remove")),1)])):s.createCommentVNode("",!0),s.createElementVNode("button",{type:"button",class:"rounded-md px-3 py-1.5 text-xs font-semibold hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-slate-700",onClick:d},s.toDisplayString(s.unref(i)("editor.linkDialog.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-md bg-cyan-600 px-3 py-1.5 text-xs font-semibold text-white transition-all hover:bg-cyan-700",onClick:p},s.toDisplayString(e.isEditing?s.unref(i)("editor.linkDialog.update"):s.unref(i)("editor.linkDialog.insert")),1)])])],32)):s.createCommentVNode("",!0)}});async function Ql(e,t){var i,n;if(typeof document>"u")return!1;try{if(t&&typeof ClipboardItem<"u"&&((i=navigator.clipboard)!=null&&i.write)){const r=new ClipboardItem({"text/plain":new Blob([e],{type:"text/plain"}),"text/html":new Blob([t],{type:"text/html"})});return await navigator.clipboard.write([r]),!0}if((n=navigator.clipboard)!=null&&n.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{const r=document.createElement("textarea");r.value=e,r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();const a=document.execCommand("copy");return r.remove(),a}catch{return!1}}async function KS(){var e;if(typeof navigator>"u"||!((e=navigator.clipboard)!=null&&e.read))return null;try{const t=await navigator.clipboard.read();for(const i of t)if(i.types.includes("text/html"))return await(await i.getType("text/html")).text();for(const i of t)if(i.types.includes("text/plain"))return await(await i.getType("text/plain")).text();return null}catch{return null}}async function Qa(){var e;if(typeof navigator>"u"||!((e=navigator.clipboard)!=null&&e.readText))return null;try{return await navigator.clipboard.readText()}catch{return null}}const XS={class:"docs-editor flex h-screen w-full flex-col overflow-hidden bg-slate-50 transition-colors dark:bg-[#02040a]"},JS=["title","aria-label"],ZS={class:"docs-editor__body relative flex flex-1 overflow-hidden"},QS=["title"],YS={class:"flex flex-1 flex-col items-center gap-4 w-full relative"},eC={class:"relative w-full max-w-[794px]"},tC=["aria-label"],iC={key:5,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/50 backdrop-blur-sm px-4"},nC={class:"w-full max-w-lg rounded-xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525] text-slate-800 dark:text-slate-200"},rC={class:"text-lg font-bold mb-4"},aC={class:"mb-6"},oC={class:"flex justify-between items-center mb-2"},sC={class:"text-sm font-semibold text-slate-500 dark:text-slate-400"},lC={class:"grid grid-cols-2 gap-3"},cC={class:"text-[11px] font-medium block mb-1"},uC=["placeholder"],fC={class:"text-[11px] font-medium block mb-1"},pC=["placeholder"],dC={class:"rounded-lg bg-slate-50 p-3 text-[11px] text-slate-500 dark:bg-white/5 dark:text-slate-400 mb-6"},mC={class:"flex justify-end gap-2"},hC={key:6,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/40 backdrop-blur-sm px-4 select-none"},bC={class:"w-full max-w-sm rounded-3xl border border-slate-100 bg-white p-7 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525] text-slate-800 dark:text-slate-200"},gC={class:"text-xl font-medium mb-6 text-slate-900 dark:text-white"},vC={class:"mb-6"},yC={class:"text-xs font-semibold text-slate-700 dark:text-slate-300 mb-3"},xC={class:"space-y-4"},kC={class:"text-xs font-medium text-slate-600 dark:text-slate-400 block mb-1.5"},wC={class:"text-xs font-medium text-slate-600 dark:text-slate-400 block mb-1.5"},_C={class:"mb-8"},SC={class:"text-xs font-semibold text-slate-700 dark:text-slate-300 mb-3"},CC={class:"space-y-3"},EC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},NC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},OC={class:"flex justify-end items-center gap-3"},AC={key:7,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/40 backdrop-blur-sm px-4 select-none"},TC={class:"w-full max-w-sm rounded-3xl border border-slate-100 bg-white p-7 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525] text-slate-800 dark:text-slate-200"},MC={class:"text-xl font-medium mb-6 text-slate-900 dark:text-white"},zC={class:"mb-6"},IC={class:"text-xs font-semibold text-slate-700 dark:text-slate-300 mb-3"},DC={class:"space-y-3"},RC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},LC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},BC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none pt-1"},PC={class:"mb-8"},VC={class:"text-xs font-semibold text-slate-700 dark:text-slate-300 mb-3"},FC={class:"space-y-3"},UC={class:"flex items-center gap-3"},HC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},jC={class:"flex items-center gap-3 cursor-pointer text-xs font-medium text-slate-700 dark:text-slate-300 select-none"},qC={class:"flex justify-end items-center gap-3"},$C={key:8,class:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/50 backdrop-blur-sm px-4"},WC={class:"w-full max-w-md rounded-xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-slate-800 dark:bg-[#0e1525] text-slate-800 dark:text-slate-200"},GC={class:"text-lg font-bold mb-4"},KC={class:"mb-4"},XC={class:"block text-xs font-semibold text-slate-600 dark:text-slate-400 mb-1.5"},JC=["value"],ZC={class:"mb-4"},QC={class:"block text-xs font-semibold text-slate-600 dark:text-slate-400 mb-1.5"},YC={class:"flex gap-2"},e2={class:"mb-6"},t2={class:"block text-xs font-semibold text-slate-600 dark:text-slate-400 mb-1.5"},i2={class:"grid grid-cols-2 gap-3"},n2={class:"text-[11px] text-slate-500 dark:text-slate-400 block mb-1"},r2={class:"text-[11px] text-slate-500 dark:text-slate-400 block mb-1"},a2={class:"text-[11px] text-slate-500 dark:text-slate-400 block mb-1"},o2={class:"text-[11px] text-slate-500 dark:text-slate-400 block mb-1"},s2={class:"flex justify-end gap-2"},l2=s.defineComponent({__name:"DocsEditor",props:{modelValue:{default:void 0},plugins:{default:()=>[]},editable:{type:Boolean,default:!0},collaboration:{default:void 0},pageSize:{default:"a4"},pageless:{type:Boolean,default:!1},virtualPages:{type:Boolean,default:!1},title:{default:"Untitled Document"},collaborators:{default:()=>[]},starred:{type:Boolean,default:!1},connectionState:{default:"connected"},userName:{default:""},userAvatar:{default:""},locale:{default:void 0},documentMeta:{default:void 0},shareUrl:{default:""},onImageUpload:{type:Function,default:void 0},citation:{default:void 0},aiStream:{type:Function,default:void 0},aiDraft:{type:Function,default:void 0},debug:{type:Boolean,default:!1},comments:{default:()=>[]},selectedTextSnippet:{default:""},selectedTextIndex:{default:void 0},snapshots:{default:()=>[]},activePreviewIndex:{default:null}},emits:["update:modelValue","update:title","update:pageSize","update:pageless","update:pageCount","update:locale","citation-sources-change","update:citation-style","toggle-star","back","share","menu-click","export","ready","add-comment","add-reply","resolve-comment","save-snapshot","restore-snapshot","preview-snapshot"],setup(e,{emit:t}){var Ns;const i=e,n=t,{locale:r,setLocale:a,t:o}=oc(i.locale);s.watch(()=>i.locale,N=>{N&&N!==r.value&&a(N)}),s.watch(r,N=>{n("update:locale",N)});const l=s.ref({top:72,bottom:72,left:90,right:90}),c=s.ref("portrait"),f=s.ref(i.pageSize??"a4"),p=s.ref(i.pageless??!1),m=s.computed(()=>{const N=cn.getPageSize(f.value)??cn.PAGE_SIZES[0];let A=N.pageWidth,V=N.pageHeight;return c.value==="landscape"&&([A,V]=[V,A]),{pageHeight:V,pageWidth:A,margins:{...l.value}}}),{isDark:d}=va(),h=s.computed(()=>i.virtualPages===!0),v=s.computed(()=>({enabled:!p.value&&!h.value,pageHeight:m.value.pageHeight,pageWidth:m.value.pageWidth,marginTop:m.value.margins.top,marginBottom:m.value.margins.bottom,marginLeft:m.value.margins.left,marginRight:m.value.margins.right,contentMarginTop:10,contentMarginBottom:10,pageGap:40,pageBreakBackground:d.value?"#02040a":"#f1f5f9",headerLeft:"",headerRight:"",footerLeft:"",footerRight:"",onHeaderClick:N=>{Yn(N==null?void 0:N.event)},onFooterClick:N=>{N!=null&&N.event&&N.event.detail!==2||er()}})),y=(N=>{const A=N;return A&&typeof A=="object"&&A.type==="tabbed-doc"&&Array.isArray(A.tabs)?A:{type:"tabbed-doc",activeTabId:"tab-1",tabs:[{id:"tab-1",label:"Tab 1",content:N||{type:"doc",content:[{type:"paragraph"}]}}]}})(i.modelValue),g=s.ref(y.headerLeft||""),k=s.ref(y.headerRight||""),x=s.ref(y.footerLeft||""),w=s.ref(y.footerRight||""),C=s.ref(y.tabs.map(N=>({id:N.id,label:N.label,active:N.id===y.activeTabId}))),E=s.ref({});y.tabs.forEach(N=>{E.value[N.id]=N.content});const P=s.ref(y.activeTabId),_=s.computed(()=>E.value[P.value]),S=s.ref(!1),M=s.ref(null),z=s.ref(null),F=s.ref(localStorage.getItem("docflow:view:showRuler")!=="false"),I=s.ref(!1);s.watch(F,N=>{localStorage.setItem("docflow:view:showRuler",N?"true":"false")});const T=s.ref(0),H=s.ref(0),B=s.ref("saved"),$=s.ref(Date.now()),R=s.ref(null),Z=s.computed(()=>{const N=[];for(const A of i.plugins)for(const V of A.slashCommands||[])N.push({name:V.name,command:V.command});return N}),K=()=>{const N={type:"tabbed-doc",activeTabId:P.value,tabs:C.value.map(A=>({id:A.id,label:A.label,content:E.value[A.id]})),headerLeft:g.value,headerRight:k.value,footerLeft:x.value,footerRight:w.value};n("update:modelValue",N),B.value="saving",R.value&&clearTimeout(R.value),R.value=setTimeout(()=>{B.value="saved",$.value=Date.now()},800)},D=s.ref((()=>{var A;const N=(A=i.citation)==null?void 0:A.sources;return Array.isArray(N)?[...N]:typeof N=="function"?[...N()]:[]})()),U=s.ref(((Ns=i.citation)==null?void 0:Ns.style)||"chicago-notes-bibliography");let j=null;const re=s.ref(!1),ae=N=>{j==null||j(N),j=null,re.value=!1},Y=()=>new Promise(N=>{ae(null),j=N,re.value=!0,z.value="references"}),te=s.computed(()=>{const N=i.citation;if(N)return{...N,sources:()=>D.value,onSourceRequest:N.onSourceRequest??Y}}),{editorRef:G,editor:O,pluginActions:q,isReady:ee,docsEditor:le}=Yl({content:_,plugins:i.plugins,editable:i.editable,collaboration:i.collaboration,onImageUpload:i.onImageUpload,citation:te.value,aiStream:i.aiStream,aiDraft:i.aiDraft,debug:i.debug,getPageMap:()=>new Map,paginationOptions:v.value,onUpdate:N=>{E.value[P.value]=N,K()}}),Ne=()=>{var N,A,V;return((V=(A=(N=O.value)==null?void 0:N.storage)==null?void 0:A.citation)==null?void 0:V.engine)??null},Se=()=>{var N;(N=Ne())==null||N.updateSources(D.value),n("citation-sources-change",D.value)},fe=N=>{D.value=[...D.value,N],Se()},Ce=N=>{D.value=D.value.map(A=>A.id===N.id?N:A),Se()},pt=N=>{D.value=D.value.filter(A=>A.id!==N),Se()},Rt=N=>{var A;U.value=N,(A=Ne())==null||A.setStyle(N),n("update:citation-style",N)},Ae=N=>{var A,V;j?(ae(N),z.value=null):(V=(A=q.value).insertCitation)==null||V.call(A,{sourceId:N})};s.watch(z,(N,A)=>{A==="references"&&N!=="references"&&ae(null)});const tt=s.ref(!1),W=s.ref(""),L=s.computed(()=>{var N,A;return!!((N=i.citation)!=null&&N.onImportDoi||(A=i.citation)!=null&&A.onImportBibliography)}),X=async N=>{const A=i.citation;if(!(!(A!=null&&A.onImportDoi)||tt.value)){tt.value=!0,W.value="";try{const V=await A.onImportDoi(N);if(!V){W.value=o("sidebars.references.import.doiFailed");return}const oe=D.value.some(se=>se.id===V.id);D.value=oe?D.value.map(se=>se.id===V.id?V:se):[...D.value,V],Se(),W.value=o("sidebars.references.import.doiSuccess")}catch{W.value=o("sidebars.references.import.doiFailed")}finally{tt.value=!1}}},Te=async N=>{const A=i.citation;if(!(!(A!=null&&A.onImportBibliography)||tt.value)){tt.value=!0,W.value="";try{const{imported:V,failed:oe}=await A.onImportBibliography(N);if(V.length>0){const se=new Map(D.value.map(ke=>[ke.id,ke]));for(const ke of V)se.set(ke.id,ke);D.value=[...se.values()],Se()}W.value=oe>0?o("sidebars.references.import.partial").replace("{ok}",String(V.length)).replace("{failed}",String(oe)):o("sidebars.references.import.batchSuccess").replace("{count}",String(V.length))}catch{W.value=o("sidebars.references.import.failed")}finally{tt.value=!1}}},Ve=()=>{var A;const N=((A=O.value)==null?void 0:A.getText())??"";H.value=N.length,T.value=N.trim()?N.trim().split(/\s+/).length:0},je=()=>{if(!O.value)return null;const{from:N,to:A}=O.value.state.selection;if(N===A)return null;const V=O.value.view.coordsAtPos(N);return V?{top:V.top-48,left:V.left+(V.right-V.left)/2}:null},Lt=()=>{if(!O.value){S.value=!1,M.value=null;return}const{from:N,to:A}=O.value.state.selection;S.value=N!==A,M.value=N!==A?je():null},jt=s.ref(null);let Ot=null;const At=()=>{O.value&&(Ot&&clearTimeout(Ot),Ot=setTimeout(()=>{O.value&&O.value.view.dispatch(O.value.state.tr)},150))},dt=s.ref(1),Re=s.ref(1),Bi=s.computed(()=>{const N=m.value;return{pageSize:{id:f.value,name:f.value.toUpperCase(),pageWidth:N.pageWidth,pageHeight:N.pageHeight},margins:{top:N.margins.top,bottom:N.margins.bottom,left:N.margins.left,right:N.margins.right},pageGap:40,headerLeft:g.value,headerRight:k.value,footerLeft:x.value,footerRight:w.value}}),{data:tn,totalPages:nn,isReady:Pi,refreshData:Bn}=tp({editorRef:s.computed(()=>O.value),scrollRef:jt,config:Bi.value,bufferPages:2});s.watch([nn,Pi],()=>{h.value&&Pi.value&&(dt.value=nn.value)}),s.watch(h,N=>{N&&Bn()});const yi=()=>{if(!O.value||!ee.value){dt.value=1,Re.value=1;return}const N=O.value.view.dom,A=N.querySelector("[data-rm-pagination]");A?dt.value=A.children.length||1:dt.value=1;try{const{selection:V}=O.value.state,oe=O.value.view.coordsAtPos(V.head);if(oe&&A){const se=Array.from(A.querySelectorAll(".rm-page-break")),ke=N.getBoundingClientRect(),Oe=oe.top-ke.top+N.scrollTop;let ge=1,ue=!1;for(let be=0;be<se.length;be++){const ce=se[be].querySelector(".breaker");if(ce instanceof HTMLElement&&Oe<ce.offsetTop){Re.value=ge,ue=!0;break}ge++}ue||(Re.value=ge)}else Re.value=1}catch{Re.value=1}};s.watch(m,N=>{O.value&&(O.value.commands.updatePageHeight(N.pageHeight),O.value.commands.updatePageWidth(N.pageWidth),O.value.commands.updateMargins({top:N.margins.top,bottom:N.margins.bottom,left:N.margins.left,right:N.margins.right}),yi())});const Pn=N=>{N!==p.value&&(p.value=N,n("update:pageless",N),O.value&&(N?O.value.commands.disablePagination():O.value.commands.enablePagination(),setTimeout(()=>{yi(),xi()},60)))};s.watch(()=>i.pageless,N=>Pn(N??!1));const Ke=s.ref(!1),Xe=s.ref(!1),qt=s.ref(""),_t=s.ref(""),ai=s.ref(""),Vn=s.ref(""),$t=s.ref(1.27),Tt=s.ref(1.27),Wt=s.ref(!1),Vi=s.ref(1.27),lt=s.ref(1.27),Je=s.ref(!1),Gt=s.ref(!1),Kt=s.ref(!1),Fn=s.ref("header"),Un=s.ref(!0),Hn=s.ref("startAt"),jn=s.ref(1),Fi=s.ref("header"),qn=s.ref(!0),Ui=s.ref("startAt"),$n=s.ref(1),Na=N=>{if(!Un.value&&N===0)return"";let A=N+1;return Hn.value==="startAt"&&(A=N+jn.value),String(A)},St=()=>{if(!O.value||!ee.value)return;const N=String(dt.value),A=g.value.replace(/{total}/g,N),V=k.value.replace(/{total}/g,N),oe=x.value.replace(/{total}/g,N),se=w.value.replace(/{total}/g,N);O.value.commands.updateHeaderContent(A,V),O.value.commands.updateFooterContent(oe,se),O.value.view.dispatch(O.value.state.tr),setTimeout(()=>{requestAnimationFrame(()=>{if(!O.value)return;const ke=`${$t.value*37.795}px`,Oe=`${Tt.value*37.795}px`;document.documentElement.style.setProperty("--rm-header-margin-top",ke),document.documentElement.style.setProperty("--rm-footer-margin-bottom",Oe);const ge=document.querySelector(".rm-with-pagination");ge&&(ge.style.setProperty("--rm-header-margin-top",ke),ge.style.setProperty("--rm-footer-margin-bottom",Oe));const ue=Array.from(document.querySelectorAll(".rm-with-pagination .page, .rm-with-pagination .rm-page, .rm-page-break"));if(ue.length>0)ue.forEach((be,ce)=>{const me=be.querySelector(".rm-page-header"),ve=be.querySelector(".rm-page-footer"),we=ce===0,pe=(ce+1)%2===0,_e=Na(ce);if(me){me.style.marginTop=ke;const Le=me.querySelector(".rm-page-header-left"),qe=me.querySelector(".rm-page-header-right");let vt=A,Mt=V;Ke.value&&we?(vt=qt.value.replace(/{total}/g,N),Mt=_t.value.replace(/{total}/g,N)):Xe.value&&pe&&(vt=ai.value.replace(/{total}/g,N),Mt=Vn.value.replace(/{total}/g,N)),Le&&(Le.innerHTML=vt.replace(/{page}/g,_e)),qe&&(qe.innerHTML=Mt.replace(/{page}/g,_e))}if(ve){ve.style.marginBottom=Oe;const Le=ve.querySelector(".rm-page-footer-left"),qe=ve.querySelector(".rm-page-footer-right");Le&&(Le.innerHTML=oe.replace(/{page}/g,_e)),qe&&(qe.innerHTML=se.replace(/{page}/g,_e))}});else{const be=document.querySelectorAll(".rm-page-header"),ce=document.querySelectorAll(".rm-page-footer");be.forEach((me,ve)=>{me.style.marginTop=ke;const we=ve===0,pe=(ve+1)%2===0,_e=Na(ve),Le=me.querySelector(".rm-page-header-left"),qe=me.querySelector(".rm-page-header-right");let vt=A,Mt=V;Ke.value&&we?(vt=qt.value.replace(/{total}/g,N),Mt=_t.value.replace(/{total}/g,N)):Xe.value&&pe&&(vt=ai.value.replace(/{total}/g,N),Mt=Vn.value.replace(/{total}/g,N)),Le&&(Le.innerHTML=vt.replace(/{page}/g,_e)),qe&&(qe.innerHTML=Mt.replace(/{page}/g,_e))}),ce.forEach((me,ve)=>{me.style.marginBottom=Oe;const we=Na(ve),pe=me.querySelector(".rm-page-footer-left"),_e=me.querySelector(".rm-page-footer-right");pe&&(pe.innerHTML=oe.replace(/{page}/g,we)),_e&&(_e.innerHTML=se.replace(/{page}/g,we))})}})},50)};s.watch(Ke,()=>{St()}),s.watch([Xe,$t,Tt,Fn,Un,Hn,jn],()=>{St()}),s.watch(dt,N=>{St(),n("update:pageCount",N)}),s.watch(d,N=>{O.value&&(O.value.commands.updatePageBreakBackground(N?"#02040a":"#f1f5f9"),O.value.view.dispatch(O.value.state.tr))}),s.watch(v,N=>{if(!O.value||!ee.value)return;const A=O.value.storage.PaginationPlus;!A||!(A.pageHeight!==N.pageHeight||A.pageWidth!==N.pageWidth||A.marginTop!==N.marginTop||A.marginBottom!==N.marginBottom||A.marginLeft!==N.marginLeft||A.marginRight!==N.marginRight||A.pageGap!==N.pageGap||A.contentMarginTop!==N.contentMarginTop||A.contentMarginBottom!==N.contentMarginBottom||A.pageBreakBackground!==N.pageBreakBackground||A.enabled!==N.enabled)||(A.pageHeight=N.pageHeight,A.pageWidth=N.pageWidth,A.marginTop=N.marginTop,A.marginBottom=N.marginBottom,A.marginLeft=N.marginLeft,A.marginRight=N.marginRight,A.pageGap=N.pageGap,A.contentMarginTop=N.contentMarginTop,A.contentMarginBottom=N.contentMarginBottom,A.pageBreakBackground=N.pageBreakBackground,A.enabled=N.enabled,O.value.view.dispatch(O.value.state.tr))},{deep:!0}),s.watch(ee,N=>{var A,V,oe,se,ke,Oe,ge,ue;N&&O.value&&(!g.value&&!k.value&&!x.value&&!w.value&&(g.value=((V=(A=O.value.storage.PaginationPlus)==null?void 0:A.appliedConfig)==null?void 0:V.headerLeft)||"",k.value=((se=(oe=O.value.storage.PaginationPlus)==null?void 0:oe.appliedConfig)==null?void 0:se.headerRight)||"",x.value=((Oe=(ke=O.value.storage.PaginationPlus)==null?void 0:ke.appliedConfig)==null?void 0:Oe.footerLeft)||"",w.value=((ue=(ge=O.value.storage.PaginationPlus)==null?void 0:ge.appliedConfig)==null?void 0:ue.footerRight)||""),St(),le.value&&n("ready",le.value),O.value.on("selectionUpdate",()=>{Lt(),yi()}),O.value.on("transaction",()=>{yi(),Ve()}),Lt(),Ve(),yi(),setTimeout(()=>{var ce;return(ce=O.value)==null?void 0:ce.commands.focus("start")},50),[100,300,600,1200,2500].forEach(ce=>{setTimeout(()=>{O.value&&O.value.view.dispatch(O.value.state.tr)},ce)}),O.value.view.dom.addEventListener("keydown",ce=>{(ce.metaKey||ce.ctrlKey)&&ce.key.toLowerCase()==="k"&&(ce.preventDefault(),xs())}),O.value.view.dom.addEventListener("click",ce=>{const me=ce.target;if(!me||me.closest('.rm-google-docs-header-bar, .rm-options-dropdown, [contenteditable="true"]'))return;if(me.closest(".rm-page-header, .rm-first-page-header")){Yn(ce);return}const we=me.closest(".rm-with-pagination, .rm-page-break, .page, .docs-editor-page");if(we){const pe=we.getBoundingClientRect(),_e=ce.clientY-pe.top,Le=$t.value*37.795;if(_e>=0&&_e<=Math.max(Le,40)+15){let qe=null;we.classList.contains("rm-page-break")&&(qe=we.querySelector(".rm-page-header")),qe||(qe=document.querySelector(".rm-page-header, .rm-first-page-header")),qe&&Yn(ce)}}}),O.value.view.dom.addEventListener("dblclick",ce=>{const me=ce.target;if(!me)return;if(me.closest(".rm-page-footer")){er();return}const we=me.closest(".rm-with-pagination, .rm-page-break, .page, .docs-editor-page");if(we){const _e=we.getBoundingClientRect().bottom-ce.clientY,Le=Tt.value*37.795;_e>=0&&_e<=Math.max(Le,40)+15&&er()}}))}),s.watch(()=>i.collaboration,()=>{},{deep:!0}),s.onUnmounted(()=>{R.value&&clearTimeout(R.value),Ot&&clearTimeout(Ot)});const Wn=s.ref(!1),rn=s.ref(""),an=s.ref(""),Gn=s.ref(!1),Oa=s.ref(!1),Aa=s.ref(!1),Kn=s.ref(!1),on=s.ref(!1),Xn=s.ref(""),Ta=s.ref(""),Jn=s.ref(!1);function xs(){if(!O.value)return;const{state:N}=O.value,{from:A,to:V,empty:oe}=N.selection,se=O.value.getAttributes("link");se.href?(Jn.value=!0,Ta.value=se.href,oe?Xn.value="":Xn.value=N.doc.textBetween(A,V," ")):(Jn.value=!1,Ta.value="https://",Xn.value=oe?"":N.doc.textBetween(A,V," ")),on.value=!0}function zf(N){if(!O.value)return;const{state:A}=O.value,{from:V,to:oe,empty:se}=A.selection,ke=N.text.trim(),Oe=O.value.chain().focus();Jn.value||O.value.isActive("link")?(Oe.setLink({href:N.url,target:"_blank"}).run(),ke&&!se&&Oe.insertContentAt({from:V,to:oe},ke).run()):ke?Oe.insertContentAt({from:V,to:oe},{type:"text",text:ke,marks:[{type:"link",attrs:{href:N.url,target:"_blank"}}]}).run():se?Oe.insertContent({type:"text",text:N.url,marks:[{type:"link",attrs:{href:N.url,target:"_blank"}}]}).run():Oe.setLink({href:N.url,target:"_blank"}).run(),on.value=!1}function If(){if(!O.value)return;O.value.chain().focus().unsetLink().run(),on.value=!1}const Zn=s.ref(f.value),Hi=s.ref(c.value),Bt=s.ref({...l.value}),Df=()=>{Zn.value=f.value,Hi.value=c.value,Bt.value={...l.value},Gn.value=!0},Rf=()=>{f.value=Zn.value,c.value=Hi.value,l.value={...Bt.value},n("update:pageSize",f.value),Gn.value=!1},Qn=s.ref(!1),Lf=()=>{Vi.value=$t.value,lt.value=Tt.value,Je.value=Ke.value,Gt.value=Xe.value,Wt.value=!0},Bf=()=>{$t.value=Vi.value,Tt.value=lt.value,Ke.value=Je.value,Xe.value=Gt.value,Wt.value=!1,St(),K()},Pf=()=>{Fi.value=Fn.value,qn.value=Un.value,Ui.value=Hn.value,$n.value=jn.value,Kt.value=!0},Vf=()=>{Fn.value=Fi.value,Un.value=qn.value,Hn.value=Ui.value,jn.value=$n.value,Kt.value=!1;const N="{page}";Fn.value==="footer"?(k.value.includes(N)&&(k.value=k.value.replace(/{page}/g,"").trim()),w.value=N):(w.value.includes(N)&&(w.value=w.value.replace(/{page}/g,"").trim()),k.value=N),St(),K()},Ff=()=>{g.value="",k.value="",St(),K(),Qn.value=!1},Yn=N=>{let A=null;if(N){const ge=N.target;A=ge==null?void 0:ge.closest(".rm-page-header, .rm-first-page-header")}if(A||(A=document.querySelector(".rm-page-header, .rm-first-page-header")),!A)return;const V=A;Qn.value=!0,V.classList.add("rm-header-active");let oe=V.querySelector(".rm-page-header-left");oe||(oe=document.createElement("div"),oe.className="rm-page-header-left",V.prepend(oe)),oe.contentEditable="true",oe.setAttribute("tabindex","0"),oe.dataset.placeholder=o("editor.headerFooter.headerPlaceholder")||"Header",oe.addEventListener("keydown",ge=>{ge.stopPropagation()}),oe.focus(),setTimeout(()=>{if(oe){const ge=document.createRange(),ue=window.getSelection();ge.selectNodeContents(oe),ge.collapse(!1),ue==null||ue.removeAllRanges(),ue==null||ue.addRange(ge)}},10);let se=V.querySelector(".rm-google-docs-header-bar");if(!se){se=document.createElement("div"),se.className="rm-google-docs-header-bar",se.innerHTML=`
|
|
15057
15057
|
<span class="rm-header-label">Header</span>
|
|
15058
15058
|
<div class="rm-header-right-tools">
|
|
15059
15059
|
<label class="rm-diff-label">
|
package/dist/index.js
CHANGED
|
@@ -41961,12 +41961,12 @@ const Uk = { class: "ai-sidebar flex h-full w-80 flex-shrink-0 flex-col border-l
|
|
|
41961
41961
|
)
|
|
41962
41962
|
);
|
|
41963
41963
|
function f() {
|
|
41964
|
-
a.value.trim() &&
|
|
41964
|
+
a.value.trim() && n(
|
|
41965
41965
|
"add-comment",
|
|
41966
41966
|
a.value.trim(),
|
|
41967
41967
|
i.selectedTextSnippet,
|
|
41968
41968
|
i.selectedTextIndex
|
|
41969
|
-
)
|
|
41969
|
+
);
|
|
41970
41970
|
}
|
|
41971
41971
|
function d(m) {
|
|
41972
41972
|
const g = s.value[m] || "";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kedataindo/docflow-vue",
|
|
3
3
|
"license": "UNLICENSED",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.17",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"lucide-vue-next": "^1.0.0",
|
|
26
26
|
"prosemirror-model": "^1.25.11",
|
|
27
|
-
"@kedataindo/docflow-core": "0.0.
|
|
28
|
-
"@kedataindo/docflow-layout-engine": "0.0.
|
|
29
|
-
"@kedataindo/docflow-plugins": "0.0.
|
|
27
|
+
"@kedataindo/docflow-core": "0.0.14",
|
|
28
|
+
"@kedataindo/docflow-layout-engine": "0.0.13",
|
|
29
|
+
"@kedataindo/docflow-plugins": "0.0.16"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"vue": "^3.5.0"
|