@kedataindo/docflow-vue 0.0.15 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Xf=Object.defineProperty;var Jf=(e,t,i)=>t in e?Xf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var Jt=(e,t,i)=>Jf(e,typeof t!="symbol"?t+"":t,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ee=require("@kedataindo/docflow-core"),s=require("vue"),cn=require("@kedataindo/docflow-layout-engine");function Yl(e){const t=s.ref(null),i=s.shallowRef(null),n=s.ref(!1),r=s.computed(()=>{var c;return((c=i.value)==null?void 0:c.editor)??null}),a=s.computed(()=>{var c;return((c=i.value)==null?void 0:c.pluginActions)??{}}),o=()=>{if(!t.value||i.value)return;const c=s.unref(e.collaboration),f=s.unref(e.content),p=Ee.createEditor({target:t.value,content:f,plugins:e.plugins,editable:e.editable??!0,collaboration:c,onUpdate:e.onUpdate,getPageMap:e.getPageMap,paginationOptions:e.paginationOptions,onImageUpload:e.onImageUpload,citation:e.citation,aiStream:e.aiStream,aiDraft:e.aiDraft});i.value=p,s.nextTick(()=>{n.value=!0})},l=()=>{var c;(c=i.value)==null||c.destroy(),i.value=null,n.value=!1};return s.onMounted(()=>{o()}),s.onUnmounted(()=>{l()}),s.watch(()=>e.editable,c=>{r.value&&r.value.setEditable(c??!0)}),s.watch(()=>{const c=s.unref(e.collaboration);return c?{room:c.room,provider:c.provider}:null},async(c,f)=>{JSON.stringify(c)!==JSON.stringify(f)&&(l(),await s.nextTick(),o())},{deep:!0}),{editorRef:t,docsEditor:i,editor:r,pluginActions:a,isReady:n}}function Zf(e){const t=s.computed(()=>{var r,a,o;return(o=(a=(r=e.value)==null?void 0:r.storage)==null?void 0:a.editorContext)==null?void 0:o.aiStream}),i=s.computed(()=>{var r,a,o;return(o=(a=(r=e.value)==null?void 0:r.storage)==null?void 0:a.editorContext)==null?void 0:o.aiDraft}),n=s.computed(()=>!!t.value);return{aiStream:t,aiDraft:i,isAIAvailable:n}}const Os="docs-editor-theme",Ma=s.ref(!1);function va(){const e=i=>{if(Ma.value=i,typeof document<"u"){const n=document.documentElement;i?n.classList.add("dark"):n.classList.remove("dark")}typeof localStorage<"u"&&localStorage.setItem(Os,i?"dark":"light")},t=()=>e(!Ma.value);return s.onMounted(()=>{let i=!1;if(typeof localStorage<"u"){const n=localStorage.getItem(Os);n?i=n==="dark":typeof window<"u"&&(i=window.matchMedia("(prefers-color-scheme: dark)").matches)}e(i)}),{isDark:Ma,toggle:t}}const ec={common:{save:"Save",cancel:"Cancel",create:"Create",delete:"Delete",rename:"Rename",duplicate:"Duplicate",move:"Move",moveToFolder:"Move to folder",moveDocument:"Move Document",noFolder:"(No Folder)",search:"Search",loading:"Loading...",error:"Error",dismiss:"Dismiss",emptyDocument:"(Empty Document)",confirmDelete:"Are you sure you want to delete this document?",undo:"Undo",restore:"Restore",deleteForever:"Delete forever",back:"Back",confirmPermanentDelete:"Permanently delete this document? This cannot be undone."},header:{file:"File",new:"New",newDocument:"New document",open:"Open",makeACopy:"Make a copy",share:"Share",email:"Email",emailDraft:"Email draft",download:"Download",rename:"Rename",move:"Move",moveToFolder:"Move to folder",moveToTrash:"Move to trash",addToStarred:"Add to Starred",versionHistory:"Version history",language:"Language",pageSetup:"Page setup",print:"Print",details:"Details",security:"Security limitations",edit:"Edit",view:"View",insert:"Insert",format:"Format",tools:"Tools",extensions:"Extensions",help:"Help",backToDocuments:"Back to Documents",clickToRename:"Click to rename",starDocument:"Star document",unstarDocument:"Unstar document",sandbox:"Sandbox (toggle simulated collaborators)",theme:"Theme",account:"Account",markdown:"Markdown (.md)",html:"Web page (.html)",htmlZip:"Web page (.html, zipped)",text:"Plain text (.txt)",docx:"Microsoft Word (.docx)",pdf:"PDF Document (.pdf)",odt:"OpenDocument Format (.odt)",rtf:"Rich Text Format (.rtf)",undo:"Undo",redo:"Redo",selectAll:"Select all",cut:"Cut",copy:"Copy",paste:"Paste",pasteWithoutFormatting:"Paste without formatting",delete:"Delete",findAndReplace:"Find and replace",showSidebar:"Show outline",focusMode:"Full focus mode",showRuler:"Show ruler",meetingNotes:"Meeting notes",image:"Image",table:"Table",codeBlock:"Code block",link:"Link",header:"Header",footer:"Footer",footnote:"Footnote",tableOfContents:"Table of contents",bold:"Bold text",italic:"Italic text",underline:"Underline",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",alignIndent:"Align & indent",alignLeft:"Align left",alignCenter:"Align center",alignRight:"Align right",alignJustify:"Justify",bulletsNumbering:"Bullets & numbering",bulletList:"Bulleted list",numberedList:"Numbered list",taskList:"Task list",horizontalLine:"Horizontal line",pageNumbers:"Page numbers",pageNumberInHeader:"Insert in header",pageNumberInFooter:"Insert in footer",pagelessFormat:"Pageless format",clearFormatting:"Clear formatting",spellCheck:"Spell check",wordCount:"Word count",preferences:"Preferences",manageExtensions:"Manage extensions…",keyboardShortcuts:"Keyboard shortcuts",reportIssue:"Report issue",about:"About DocsEditor"},toolbar:{undo:"Undo",redo:"Redo",print:"Print",spelling:"Spelling",zoom:"100%",paragraphStyle:"Paragraph style",normalText:"Normal text",fontFamily:"Font family",decreaseFontSize:"Decrease font size",increaseFontSize:"Increase font size",fontSize:"Font size",lists:"Lists",alignment:"Alignment",insert:"Insert",comments:"Comments",history:"History",ai:"AI",tableOfContents:"Table of contents",references:"References"},statusBar:{liveSyncActive:"Live Sync Active",connecting:"Connecting…",saving:"Saving changes…",offline:"Offline",lastSavedAt:"Last saved at",never:"Never",pageSize:"Page size",page:"Page",of:"of",pageless:"Pageless",words:"words",characters:"characters"},editor:{share:{title:"Share document",close:"Close",shareableLink:"Shareable link",copy:"Copy",copied:"Link copied to clipboard",couldNotCopy:"Could not copy link",collaborators:"Collaborators",addCollaborator:"Add collaborator by email",placeholder:"colleague@example.com",add:"Add",userNotFound:"User not found",failedToAdd:"Failed to add collaborator",visibility:"Visibility",private:"Private",privateDescription:"Only you and people you invite can access this document.",restricted:"Restricted",restrictedDescription:"Anyone with the link can view this document."},print:"Print",logOut:"Log out",rename:{title:"Rename document",label:"Document title",save:"Save",cancel:"Cancel"},pageSetup:{title:"Page setup",paperSize:"Paper size",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",margins:"Margins",top:"Top",bottom:"Bottom",left:"Left",right:"Right",apply:"Apply",cancel:"Cancel"},details:{title:"Document details",titleLabel:"Title",owner:"Owner",location:"Location",noFolder:"(No folder)",created:"Created",modified:"Last modified",statistics:"Statistics",words:"Words",characters:"Characters",pages:"Pages",loading:"Loading document details…"},email:{title:"Email this file",to:"To",toPlaceholder:"recipient@example.com",subject:"Subject",body:"Body",send:"Send",copyLink:"Copy link",shareableLink:"Shareable link",defaultSubject:"Document: {title}",defaultBody:"You can view this document at: {url}"},linkDialog:{insertTitle:"Insert link",editTitle:"Edit link",text:"Text to display",textPlaceholder:"Link text",url:"URL",urlPlaceholder:"https://example.com",insert:"Insert",update:"Update",remove:"Remove link",cancel:"Cancel",urlRequired:"URL is required",urlInvalid:"Please enter a valid URL"},findReplace:{title:"Find and replace",findPlaceholder:"Find in document",replacePlaceholder:"Replace with",next:"Next",previous:"Previous",replace:"Replace",replaceAll:"Replace all",noMatches:"No matches",matchCount:"{current} of {total}",close:"Close"},headerFooter:{title:"Header & Footer Customization",header:"Header",footer:"Footer",left:"Left",right:"Right",clear:"Clear",headerPlaceholder:"e.g. Document Title",footerPlaceholder:"e.g. Page {page} of {total}",headerLeftPlaceholder:"e.g. Document Title",headerRightPlaceholder:"e.g. Page {page}",footerLeftPlaceholder:"e.g. Confidential",footerRightPlaceholder:"e.g. Page {page} of {total}",variableInfo:"Variable Info: You can use {page} for the current page number, and {total} for the total page count.",differentFirstPage:"Different first page",differentOddEven:"Different odd & even pages",options:"Options",formatHeader:"Header format",pageNumber:"Page numbers",removeHeader:"Remove header",headerFooterFormatTitle:"Header & footer",marginSection:"Margin",headerTopMargin:"Header (centimeters from top)",footerBottomMargin:"Footer (centimeters from bottom)",layoutSection:"Layout",pageNumberTitle:"Page numbers",positionSection:"Position",positionHeader:"Header",positionFooter:"Footer",showOnFirstPage:"Show on first page",numberingSection:"Numbering",startAt:"Start at",continueFromPrevious:"Continue from previous section",apply:"Apply",cancel:"Cancel",save:"Save"},showOutline:"Show document outline",loadingDocument:"Loading document"},slashMenu:{title:"Suggested",basicBlocks:"Basic Blocks",noMatch:"No matching commands"},documentTabs:{documentTabs:"Document Tabs",addTab:"Add tab",rename:"Rename",delete:"Delete",outline:"Outline",untitledHeading:"Untitled Heading {level}",placeholder:"Headings you add to the document will appear here."},theme:{lightMode:"Switch to light mode",darkMode:"Switch to dark mode"},sidebars:{ai:{title:"AI Writing Helper",description:"A server-side AI co-writer to draft, summarize, or edit your copy.",quickMacros:"Quick AI Macros",summarize:"Summarize",fixGrammar:"Fix Grammar",continue:"Continue",toSpanish:"To Spanish",generations:"AI Generations",aiDrafting:"AI drafting…",copy:"Copy",copied:"Copied",insert:"Insert",inserted:"Inserted",noDraft:"Ask anything about your document, or run a quick macro above.",promptPlaceholder:"Ask AI to draft outline, write content, rewrite tone…",promptAI:"Prompt AI",close:"Close",you:"You",assistant:"Assistant",notConfigured:"AI is not configured on this deployment.",selectTextFirst:"Select text in the document first",improveSelection:"Improve selection",draft:"Draft with citations",draftPlaceholder:"Ask the AI to draft text grounded on your reference library…",promptDraft:"Draft",citations:"Citations",emptyResponse:"The AI returned an empty response.",aiError:"AI request failed"},comments:{title:"Discussion Panel",placeholder:"Select text to add a comment…",addComment:"Add comment",resolve:"Resolve",reply:"Reply…",replyInThread:"Reply in thread",active:"Active",resolved:"Resolved",creatingAnchored:"Creating anchored comment:",quote:"Quote:",resolvedBy:"Resolved by {user}",noComments:"No {mode} comments yet.",commentOnSelection:"Comment on selection…",generalComment:"Add general comment to document…",anchoredComment:"Anchored comment",general:"General comment",post:"Post"},history:{title:"History",empty:"No history yet.",version:"Version",restore:"Restore",closePreview:"Close Preview",restoreThis:"Restore This",viewingPreview:"Viewing Revision Preview",readOnlyPreview:"You are previewing version #{index}. Your editor is temporarily read-only.",modifiedBy:"Modified by:",saveNamedSnapshot:"Save Named Snapshot",snapshotPlaceholder:"e.g. Approved Final Draft…",noSnapshots:"No snapshots saved yet.",save:"Save",cancel:"Cancel",preview:"Preview"},toc:{title:"Contents",empty:"No headings yet.",untitledHeading:"Untitled Heading {level}",newSection:"New {tag} Section",startWriting:"Start writing here…",closeOutline:"Close outline",searchHeadings:"Search headings…",noHeadings:"No Headings Yet",noHeadingsDescription:"Use headers (H1, H2, or H3) to structure your document. An interactive outline will generate here automatically.",quickInsert:"Quick Insert",headingLevel:"Heading {level}",noMatchingHeaders:"No matching headers found",tryDifferentTerm:"Try searching with a different term.",outlineLayout:"Outline Layout",outlineSync:"Outline syncs automatically. Click any header to instantly jump, focus, and scroll the editor to that section."},references:{title:"References",subtitle:"Manage sources and insert citations.",close:"Close references",citationStyle:"Citation style",searchSources:"Search sources…",addSource:"Add source",editSource:"Edit source",noSources:"No sources yet",noSourcesDescription:"Add your first reference to start citing. Citations and the bibliography follow the active style automatically.",noMatchingSources:"No matching sources found",cite:"Cite",edit:"Edit",delete:"Delete",back:"Back to list",anonymous:"Anonymous",etAl:"et al.",confirmDelete:'Delete source "{title}"? Citations referencing it will stop rendering.',import:{title:"Import",fromDoi:"From DOI (CrossRef)",doiPlaceholder:"Paste a DOI or DOI link…",importDoi:"Import DOI",doiSuccess:"Source imported from CrossRef.",doiFailed:"DOI could not be resolved.",fromFile:"From BibTeX / RIS file",pickFile:"Choose .bib or .ris file",importing:"Importing…",batchSuccess:"{count} source(s) imported.",partial:"{ok} imported, {failed} failed.",failed:"Import failed."},types:{book:"Book","article-journal":"Journal article",chapter:"Book chapter",webpage:"Web page",report:"Report",thesis:"Thesis",document:"Document"},form:{type:"Source type",title:"Title",authors:"Authors",familyName:"Family name",givenName:"Given name",addAuthor:"Add author",year:"Year",journal:"Journal",bookTitle:"Book title",publisher:"Publisher",publisherPlace:"Place",volume:"Volume",issue:"Issue",pages:"Pages",save:"Save changes",create:"Add source",cancel:"Cancel"}}},dashboard:{allDocuments:"All Documents",starred:"Starred",folders:"Folders",createFolder:"Create New Folder",folderNamePlaceholder:"Folder name…",noFolders:"No folders created yet.",startNewDocument:"Start a New Document",blankDocument:"Blank Document",blankDescription:"Fresh slate",meetingNotes:"Meeting Notes",meetingNotesDescription:"Attendees & Action Items",projectProposal:"Project Proposal",projectProposalDescription:"Objectives & Deliverables",officialLetter:"Official Letter",officialLetterDescription:"Pre-formatted header",searchPlaceholder:"Search titles or full-text contents…",modified:"Modified",alphabetical:"Alphabetical",created:"Created",gridView:"Grid View",listView:"List View",activeFilters:"Active Filters:",folder:"Folder",starredOnly:"Starred Only",search:"Search",noDocuments:"No documents found",noDocumentsDescription:"No files match your current filters. Select a template or create a blank file to start drafting!",createBlankDocument:"Create Blank Document",loadingDocuments:"Loading documents...",documentTitle:"Document Title",lastModified:"Last Modified",actions:"Actions",trash:"Trash",trashEmpty:"Trash is empty",trashEmptyDescription:"Deleted documents will appear here.",trashedAt:"Trashed",movedToTrash:"Moved to trash:"},auth:{signInTitle:"Sign in to create and edit documents",signInWithGoogle:"Sign in with Google",signInWithEmail:"Sign in with Email",signInWithGitHub:"Sign in with GitHub",signInWith:"Sign in with {provider}",or:"or",email:"Email",password:"Password",name:"Name",signIn:"Sign In",signUp:"Sign Up",signOut:"Sign out",noAccount:"Don't have an account? Sign up",hasAccount:"Already have an account? Sign in",invalidCredentials:"Invalid email or password",accountCreated:"Account created! You are now signed in.",loadDocumentsError:"Failed to load documents. Is the server running?",retry:"Try again",rateLimited:"Server is rate limiting requests.",retryIn:"Retrying in {seconds}s…",networkError:"Could not reach the server. Check your connection.",noProviders:"No authentication providers configured. Check your server environment variables."},language:{label:"Language",en:"English",id:"Indonesian"}},tc={common:{save:"Simpan",cancel:"Batal",create:"Buat",delete:"Hapus",rename:"Ubah nama",duplicate:"Duplikat",move:"Pindah",moveToFolder:"Pindah ke folder",moveDocument:"Pindahkan Dokumen",noFolder:"(Tanpa Folder)",search:"Cari",loading:"Memuat…",error:"Kesalahan",dismiss:"Tutup",emptyDocument:"(Dokumen Kosong)",confirmDelete:"Apakah Anda yakin ingin menghapus dokumen ini?",undo:"Batalkan",restore:"Pulihkan",deleteForever:"Hapus permanen",back:"Kembali",confirmPermanentDelete:"Hapus dokumen ini secara permanen? Tindakan ini tidak dapat dibatalkan."},header:{file:"Berkas",new:"Baru",newDocument:"Dokumen baru",open:"Buka",makeACopy:"Buat salinan",share:"Bagikan",email:"Email",emailDraft:"Draf Email",download:"Unduh",rename:"Ubah nama",move:"Pindah",moveToFolder:"Pindah ke folder",moveToTrash:"Pindah ke sampah",addToStarred:"Tambahkan ke Bintang",versionHistory:"Riwayat versi",language:"Bahasa",pageSetup:"Penataan halaman",print:"Cetak",details:"Detail",security:"Batasan keamanan",edit:"Sunting",view:"Tampilan",insert:"Sisipkan",format:"Format",tools:"Alat",extensions:"Ekstensi",help:"Bantuan",backToDocuments:"Kembali ke Dokumen",clickToRename:"Klik untuk mengganti nama",starDocument:"Bintangi dokumen",unstarDocument:"Hapus bintang",sandbox:"Sandbox (alihkan kolaborator simulasi)",theme:"Tema",account:"Akun",markdown:"Markdown (.md)",html:"Halaman web (.html)",htmlZip:"Halaman web (.html, ter-zip)",text:"Teks biasa (.txt)",docx:"Microsoft Word (.docx)",pdf:"Dokumen PDF (.pdf)",odt:"OpenDocument Format (.odt)",rtf:"Rich Text Format (.rtf)",undo:"Urungkan",redo:"Ulangi",selectAll:"Pilih semua",cut:"Potong",copy:"Salin",paste:"Tempel",pasteWithoutFormatting:"Tempel tanpa pemformatan",delete:"Hapus",findAndReplace:"Temukan dan ganti",showSidebar:"Tampilkan kerangka",focusMode:"Mode Fokus Penuh",showRuler:"Tampilkan penggaris",meetingNotes:"Catatan Rapat",image:"Gambar",table:"Tabel",codeBlock:"Kode Blok",link:"Tautan",header:"Header",footer:"Footer",footnote:"Catatan Kaki",tableOfContents:"Daftar isi",bold:"Teks Tebal",italic:"Teks Miring",underline:"Garis Bawah",heading1:"Judul 1",heading2:"Judul 2",heading3:"Judul 3",alignIndent:"Perataan & indentasi",alignLeft:"Rata kiri",alignCenter:"Rata tengah",alignRight:"Rata kanan",alignJustify:"Rata kiri-kanan",bulletsNumbering:"Bullet & penomoran",bulletList:"Daftar ber-bullet",numberedList:"Daftar bernomor",taskList:"Daftar tugas",horizontalLine:"Garis horizontal",pageNumbers:"Nomor halaman",pageNumberInHeader:"Sisipkan di header",pageNumberInFooter:"Sisipkan di footer",pagelessFormat:"Format tanpa halaman",clearFormatting:"Hapus pemformatan",spellCheck:"Periksa ejaan",wordCount:"Hitungan kata",preferences:"Preferensi",manageExtensions:"Kelola ekstensi…",keyboardShortcuts:"Pintasan keyboard",reportIssue:"Laporkan masalah",about:"Tentang DocsEditor"},toolbar:{undo:"Urungkan",redo:"Ulangi",print:"Cetak",spelling:"Ejaan",zoom:"100%",paragraphStyle:"Gaya paragraf",normalText:"Teks normal",fontFamily:"Keluarga font",decreaseFontSize:"Kecilkan font",increaseFontSize:"Perbesar font",fontSize:"Ukuran font",lists:"Daftar",alignment:"Perataan",insert:"Sisipkan",comments:"Komentar",history:"Riwayat",ai:"AI",tableOfContents:"Daftar isi",references:"Referensi"},statusBar:{liveSyncActive:"Sinkron Langsung Aktif",connecting:"Menghubungkan…",saving:"Menyimpan perubahan…",offline:"Luring",lastSavedAt:"Terakhir disimpan",never:"Tidak pernah",pageSize:"Ukuran halaman",page:"Halaman",of:"dari",pageless:"Tanpa halaman",words:"kata",characters:"karakter"},editor:{share:{title:"Bagikan dokumen",close:"Tutup",shareableLink:"Tautan dapat dibagikan",copy:"Salin",copied:"Tautan disalin ke papan klip",couldNotCopy:"Tidak dapat menyalin tautan",collaborators:"Kolaborator",addCollaborator:"Tambahkan kolaborator lewat email",placeholder:"rekan@contoh.com",add:"Tambah",userNotFound:"Pengguna tidak ditemukan",failedToAdd:"Gagal menambahkan kolaborator",visibility:"Visibilitas",private:"Pribadi",privateDescription:"Hanya Anda dan orang yang Anda undang yang dapat mengakses dokumen ini.",restricted:"Terbatas",restrictedDescription:"Siapa pun dengan tautan dapat melihat dokumen ini."},print:"Cetak",logOut:"Keluar",rename:{title:"Ubah nama dokumen",label:"Judul dokumen",save:"Simpan",cancel:"Batal"},pageSetup:{title:"Penataan halaman",paperSize:"Ukuran kertas",orientation:"Orientasi",portrait:"Potret",landscape:"Lanskap",margins:"Margin",top:"Atas",bottom:"Bawah",left:"Kiri",right:"Kanan",apply:"Terapkan",cancel:"Batal"},details:{title:"Detail dokumen",titleLabel:"Judul",owner:"Pemilik",location:"Lokasi",noFolder:"(Tanpa folder)",created:"Dibuat",modified:"Terakhir diubah",statistics:"Statistik",words:"Kata",characters:"Karakter",pages:"Halaman",loading:"Memuat detail dokumen…"},email:{title:"Email file ini",to:"Kepada",toPlaceholder:"penerima@contoh.com",subject:"Subjek",body:"Isi",send:"Kirim",copyLink:"Salin tautan",shareableLink:"Tautan dapat dibagikan",defaultSubject:"Dokumen: {title}",defaultBody:"Anda dapat melihat dokumen ini di: {url}"},linkDialog:{insertTitle:"Sisipkan tautan",editTitle:"Edit tautan",text:"Teks yang ditampilkan",textPlaceholder:"Teks tautan",url:"URL",urlPlaceholder:"https://contoh.com",insert:"Sisipkan",update:"Perbarui",remove:"Hapus tautan",cancel:"Batal",urlRequired:"URL wajib diisi",urlInvalid:"Masukkan URL yang valid"},findReplace:{title:"Temukan dan ganti",findPlaceholder:"Temukan di dokumen",replacePlaceholder:"Ganti dengan",next:"Berikutnya",previous:"Sebelumnya",replace:"Ganti",replaceAll:"Ganti semua",noMatches:"Tidak ada hasil",matchCount:"{current} dari {total}",close:"Tutup"},headerFooter:{title:"Penyesuaian Header & Footer",header:"Header",footer:"Footer",left:"Kiri",right:"Kanan",clear:"Kosongkan",headerPlaceholder:"mis. Judul Dokumen",footerPlaceholder:"mis. Halaman {page} dari {total}",headerLeftPlaceholder:"mis. Judul Dokumen",headerRightPlaceholder:"mis. Halaman {page}",footerLeftPlaceholder:"mis. Rahasia",footerRightPlaceholder:"mis. Halaman {page} dari {total}",variableInfo:"Info Variabel: Anda dapat menggunakan {page} untuk nomor halaman aktif, dan {total} untuk jumlah halaman.",differentFirstPage:"Halaman pertama berbeda",differentOddEven:"Halaman ganjil & genap berbeda",options:"Opsi",formatHeader:"Format header",pageNumber:"Nomor halaman",removeHeader:"Hapus header",headerFooterFormatTitle:"Header & footer",marginSection:"Margin",headerTopMargin:"Header (sentimeter dari atas)",footerBottomMargin:"Footer (sentimeter dari bawah)",layoutSection:"Tata letak",pageNumberTitle:"Nomor halaman",positionSection:"Posisi",positionHeader:"Header",positionFooter:"Footer",showOnFirstPage:"Tampilkan di halaman pertama",numberingSection:"Penomoran",startAt:"Dimulai dari",continueFromPrevious:"Lanjutkan dari bagian sebelumnya",apply:"Terapkan",cancel:"Batal",save:"Simpan"},showOutline:"Tampilkan kerangka dokumen",loadingDocument:"Memuat dokumen"},slashMenu:{title:"Saran",basicBlocks:"Blok Dasar",noMatch:"Tidak ada perintah yang cocok"},documentTabs:{documentTabs:"Tab Dokumen",addTab:"Tambah tab",rename:"Ubah nama",delete:"Hapus",outline:"Kerangka",untitledHeading:"Judul Tanpa Nama {level}",placeholder:"Tajuk yang Anda tambahkan ke dokumen akan muncul di sini."},theme:{lightMode:"Beralih ke mode terang",darkMode:"Beralih ke mode gelap"},sidebars:{ai:{title:"AI Writing Helper",description:"Penulis AI sisi-server untuk menyusun, merangkum, atau menyunting tulisan Anda.",quickMacros:"Makro AI Cepat",summarize:"Rangkum",fixGrammar:"Perbaiki Tata Bahasa",continue:"Lanjutkan",toSpanish:"Ke Spanyol",generations:"Hasil AI",aiDrafting:"AI menyusun…",copy:"Salin",copied:"Tersalin",insert:"Sisipkan",inserted:"Tersisip",noDraft:"Tanya apa saja tentang dokumen Anda, atau jalankan makro cepat di atas.",promptPlaceholder:"Minta AI membuat kerangka, menulis konten, menulis ulang nada…",promptAI:"Perintah AI",close:"Tutup",you:"Anda",assistant:"Asisten",notConfigured:"AI belum dikonfigurasi pada deployment ini.",selectTextFirst:"Pilih teks di dokumen terlebih dahulu",improveSelection:"Perbaiki pilihan",draft:"Draf dengan sitasi",draftPlaceholder:"Minta AI menyusun teks berbasis pustaka referensi Anda…",promptDraft:"Susun",citations:"Sitasi",emptyResponse:"AI mengembalikan respons kosong.",aiError:"Permintaan AI gagal"},comments:{title:"Panel Diskusi",placeholder:"Pilih teks untuk menambahkan komentar…",addComment:"Tambah komentar",resolve:"Selesai",reply:"Balas…",replyInThread:"Balas di thread",active:"Aktif",resolved:"Selesai",creatingAnchored:"Membuat komentar terpaut:",quote:"Kutipan:",resolvedBy:"Diselesaikan oleh {user}",noComments:"Belum ada komentar {mode}.",commentOnSelection:"Komentari pilihan…",generalComment:"Tambahkan komentar umum ke dokumen…",anchoredComment:"Komentar terpaut",general:"Komentar umum",post:"Kirim"},history:{title:"Riwayat",empty:"Belum ada riwayat.",version:"Versi",restore:"Pulihkan",closePreview:"Tutup Pratinjau",restoreThis:"Pulihkan Ini",viewingPreview:"Melihat Pratinjau Revisi",readOnlyPreview:"Anda sedang melihat pratinjau versi #{index}. Editor Anda untuk sementara hanya-baca.",modifiedBy:"Diubah oleh:",saveNamedSnapshot:"Simpan Snapshot Bernama",snapshotPlaceholder:"mis. Final Draft Disetujui…",noSnapshots:"Belum ada snapshot yang disimpan.",save:"Simpan",cancel:"Batal",preview:"Pratinjau"},toc:{title:"Daftar Isi",empty:"Belum ada judul.",untitledHeading:"Judul Tanpa Nama {level}",newSection:"Bagian {tag} Baru",startWriting:"Mulai menulis di sini…",closeOutline:"Tutup kerangka",searchHeadings:"Cari judul…",noHeadings:"Belum Ada Judul",noHeadingsDescription:"Gunakan header (H1, H2, atau H3) untuk menyusun dokumen. Kerangka interaktif akan dibuat otomatis di sini.",quickInsert:"Sisipkan Cepat",headingLevel:"Judul {level}",noMatchingHeaders:"Tidak ada header yang cocok",tryDifferentTerm:"Coba cari dengan istilah lain.",outlineLayout:"Tata Letak Kerangka",outlineSync:"Kerangka tersinkronisasi otomatis. Klik header apa pun untuk langsung melompat, fokus, dan menggulir editor ke bagian tersebut."},references:{title:"Referensi",subtitle:"Kelola sumber dan sisipkan sitasi.",close:"Tutup referensi",citationStyle:"Gaya sitasi",searchSources:"Cari sumber…",addSource:"Tambah sumber",editSource:"Ubah sumber",noSources:"Belum ada sumber",noSourcesDescription:"Tambahkan referensi pertama Anda untuk mulai menyitasi. Sitasi dan daftar pustaka mengikuti gaya aktif secara otomatis.",noMatchingSources:"Tidak ada sumber yang cocok",cite:"Sitasi",edit:"Ubah",delete:"Hapus",back:"Kembali ke daftar",anonymous:"Anonim",etAl:"dkk.",confirmDelete:'Hapus sumber "{title}"? Sitasi yang merujuknya akan berhenti ditampilkan.',import:{title:"Impor",fromDoi:"Dari DOI (CrossRef)",doiPlaceholder:"Tempel DOI atau tautan DOI…",importDoi:"Impor DOI",doiSuccess:"Sumber berhasil diimpor dari CrossRef.",doiFailed:"DOI tidak dapat ditemukan.",fromFile:"Dari berkas BibTeX / RIS",pickFile:"Pilih berkas .bib atau .ris",importing:"Mengimpor…",batchSuccess:"{count} sumber berhasil diimpor.",partial:"{ok} berhasil, {failed} gagal.",failed:"Impor gagal."},types:{book:"Buku","article-journal":"Artikel jurnal",chapter:"Bab buku",webpage:"Halaman web",report:"Laporan",thesis:"Tesis",document:"Dokumen"},form:{type:"Jenis sumber",title:"Judul",authors:"Penulis",familyName:"Nama keluarga",givenName:"Nama depan",addAuthor:"Tambah penulis",year:"Tahun",journal:"Jurnal",bookTitle:"Judul buku",publisher:"Penerbit",publisherPlace:"Kota terbit",volume:"Volume",issue:"Edisi",pages:"Halaman",save:"Simpan perubahan",create:"Tambah sumber",cancel:"Batal"}}},dashboard:{allDocuments:"Semua Dokumen",starred:"Berbintang",folders:"Folder",createFolder:"Buat Folder Baru",folderNamePlaceholder:"Nama folder…",noFolders:"Belum ada folder.",startNewDocument:"Mulai Dokumen Baru",blankDocument:"Dokumen Kosong",blankDescription:"Kertas kosong",meetingNotes:"Catatan Rapat",meetingNotesDescription:"Peserta & Tindak Lanjut",projectProposal:"Proposal Proyek",projectProposalDescription:"Tujuan & Hasil",officialLetter:"Surat Resmi",officialLetterDescription:"Header yang sudah diformat",searchPlaceholder:"Cari judul atau isi dokumen…",modified:"Diubah",alphabetical:"Abjad",created:"Dibuat",gridView:"Tampilan Grid",listView:"Tampilan Daftar",activeFilters:"Filter Aktif:",folder:"Folder",starredOnly:"Hanya Berbintang",search:"Cari",noDocuments:"Tidak ada dokumen",noDocumentsDescription:"Tidak ada file yang cocok dengan filter. Pilih template atau buat dokumen kosong untuk mulai menulis!",createBlankDocument:"Buat Dokumen Kosong",loadingDocuments:"Memuat dokumen...",documentTitle:"Judul Dokumen",lastModified:"Terakhir Diubah",actions:"Aksi",trash:"Sampah",trashEmpty:"Sampah kosong",trashEmptyDescription:"Dokumen yang dihapus akan muncul di sini.",trashedAt:"Dihapus",movedToTrash:"Dipindahkan ke sampah:"},auth:{signInTitle:"Masuk untuk membuat dan menyunting dokumen",signInWithGoogle:"Masuk dengan Google",signInWithEmail:"Masuk dengan Email",signInWithGitHub:"Masuk dengan GitHub",signInWith:"Masuk dengan {provider}",or:"atau",email:"Email",password:"Kata sandi",name:"Nama",signIn:"Masuk",signUp:"Daftar",signOut:"Keluar",noAccount:"Belum punya akun? Daftar",hasAccount:"Sudah punya akun? Masuk",invalidCredentials:"Email atau kata sandi salah",accountCreated:"Akun dibuat! Anda sekarang masuk.",loadDocumentsError:"Gagal memuat dokumen. Apakah server berjalan?",retry:"Coba lagi",rateLimited:"Server sedang membatasi permintaan.",retryIn:"Mencoba ulang dalam {seconds} detik…",networkError:"Tidak bisa menghubungi server. Periksa koneksi Anda.",noProviders:"Tidak ada penyedia autentikasi yang dikonfigurasi. Periksa variabel lingkungan server."},language:{label:"Bahasa",en:"English",id:"Indonesia"}},Cr={en:ec,id:tc},Lo="en",Qf={en:ec.language.en,id:tc.language.id};function ic(e){return Cr[e]??Cr[Lo]}function Er(e){return typeof e=="string"&&e in Cr}const nc=Symbol("docflow-locale"),rc="docflow-locale";function Yf(e){if(e&&Er(e))return e;try{const t=localStorage.getItem(rc);if(t&&Er(t))return t}catch{}return Lo}function ep(e,t){const i=t.split(".");let n=e;for(const r of i){if(n===null||typeof n!="object")return;n=n[r]}return n}function ac(e){const t=s.ref(Yf(e));return{locale:t,setLocale:r=>{if(Er(r)){t.value=r;try{localStorage.setItem(rc,r)}catch{}}},t:(r,a)=>{const o=ic(t.value),l=ep(o,r);if(typeof l!="string")return r;let c=l;if(a)for(const[f,p]of Object.entries(a))c=c.replace(new RegExp(`\\{${f}\\}`,"g"),String(p));return c}}}function at(){const e=s.inject(nc,null);return e||ac()}function oc(e){const t=ac(e);return s.provide(nc,t),t}function sc(e){return Qf[e]??e}function lc(){return["en","id"]}function tp(e){const t=s.ref({totalPages:1,visiblePages:[],config:{pageSize:{id:"a4",name:"A4",pageWidth:794,pageHeight:1123},margins:{top:20,bottom:20,left:50,right:50},pageGap:50,headerLeft:"",headerRight:"",footerLeft:"",footerRight:""}}),i=s.computed(()=>t.value.totalPages),n=s.computed(()=>t.value.visiblePages),r=s.ref(!1);let a=null,o=null;const l=async()=>{var h;const m=e.editorRef.value,d=e.scrollRef.value;!((h=m==null?void 0:m.view)!=null&&h.dom)||!d||(a=new cn.VirtualPageOverlay(m.view.dom,e.config,d,e.bufferPages??2),a.observe(),t.value=await a.layout(),r.value=!0,o=new ResizeObserver(async()=>{a&&(t.value=await a.layout())}),o.observe(m.view.dom))},c=async m=>{a&&(t.value=await a.updateConfig(m))},f=()=>{a&&(t.value=a.getData())};let p=null;return s.onMounted(()=>{p=setInterval(f,250)}),s.onUnmounted(()=>{p&&clearInterval(p),a==null||a.disconnect(),o==null||o.disconnect()}),s.watch([()=>{var m,d;return(d=(m=e.editorRef.value)==null?void 0:m.view)==null?void 0:d.dom},e.scrollRef],()=>{r.value||l()},{immediate:!0}),s.watch(()=>e.config,m=>{r.value&&c(m)},{deep:!0}),{data:t,totalPages:i,visiblePages:n,isReady:r,refreshData:f,updateConfig:c}}const ip={key:0,class:"virtual-page-overlay","aria-hidden":"true"},np=["innerHTML"],rp=["innerHTML"],ap=["innerHTML"],op=["innerHTML"],sp=s.defineComponent({__name:"VirtualPageOverlay",props:{data:{},isReady:{type:Boolean}},setup(e){const t=e,i=s.computed(()=>t.data.visiblePages),n=s.computed(()=>t.data.config),r=s.computed(()=>n.value.pageSize),a=s.computed(()=>({height:`${n.value.pageGap}px`})),o=s.computed(()=>({paddingTop:`${n.value.margins.top}px`,paddingLeft:`${n.value.margins.left}px`,paddingRight:`${n.value.margins.right}px`,height:`${n.value.margins.top}px`})),l=s.computed(()=>({paddingBottom:`${n.value.margins.bottom}px`,paddingLeft:`${n.value.margins.left}px`,paddingRight:`${n.value.margins.right}px`}));function c(p){return{top:`${p.top}px`,height:`${r.value.pageHeight+n.value.pageGap}px`,width:`${r.value.pageWidth}px`}}function f(p,m){return p.replace(/\{page\}/g,String(m+1)).replace(/\{total\}/g,String(t.data.totalPages))}return(p,m)=>e.isReady?(s.openBlock(),s.createElementBlock("div",ip,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(i.value,d=>(s.openBlock(),s.createElementBlock("div",{key:d.index,class:"vp-page",style:s.normalizeStyle(c(d))},[s.createElementVNode("div",{class:"vp-gap",style:s.normalizeStyle(a.value)},null,4),s.createElementVNode("div",{class:"vp-header",style:s.normalizeStyle(o.value)},[s.createElementVNode("span",{class:"vp-header-left",innerHTML:n.value.headerLeft},null,8,np),s.createElementVNode("span",{class:"vp-header-right",innerHTML:n.value.headerRight},null,8,rp)],4),s.createElementVNode("div",{class:"vp-footer",style:s.normalizeStyle(l.value)},[s.createElementVNode("span",{class:"vp-footer-left",innerHTML:f(n.value.footerLeft,d.index)},null,8,ap),s.createElementVNode("span",{class:"vp-footer-right",innerHTML:f(n.value.footerRight,d.index)},null,8,op)],4)],4))),128))])):s.createCommentVNode("",!0)}}),Bo=(e,t)=>{const i=e.__vccOpts||e;for(const[n,r]of t)i[n]=r;return i},lp=Bo(sp,[["__scopeId","data-v-a48fe1b6"]]),cp={class:"px-2 py-1.5 text-[10px] font-semibold uppercase text-slate-400"},up=["onClick","onMouseenter"],fp={class:"text-slate-500 dark:text-slate-400"},cc=s.defineComponent({__name:"SlashMenu",props:{editor:{},commands:{}},setup(e){const{t}=at(),i=e,n=s.ref(!1),r=s.ref(""),a=s.ref(0),o=s.ref({top:0,left:0}),l=s.ref([]);function c(){if(!i.editor)return;const{view:h}=i.editor,{selection:v}=h.state,b=h.coordsAtPos(v.head),y=h.dom.getBoundingClientRect();o.value={top:b.bottom-y.top+4,left:b.left-y.left}}function f(h){var E,P,_,S;if(!i.editor)return;const{view:v}=i.editor,{selection:b}=v.state,y=b.head,g=v.state.doc.resolve(y),k=g.start(),w=g.parent.textContent.slice(0,g.parentOffset).lastIndexOf("/");if(w>=0){const M=k+w,z=v.state.tr.delete(M,y);v.dispatch(z)}const C=i.editor;if(typeof((E=C.commands)==null?void 0:E[h.command])=="function")C.commands[h.command]();else if(C.chain)try{(S=(_=(P=C.chain().focus())[h.command])==null?void 0:_.call(P))==null||S.run()}catch{}n.value=!1,r.value=""}function p(){n.value=!1,r.value=""}function m(){if(!i.editor)return;const{view:h}=i.editor,{selection:v}=h.state,b=v.head,y=h.state.doc.resolve(b),g=y.parent.textContent.slice(0,y.parentOffset),k=g.lastIndexOf("/");if(k>=0){const x=g.slice(0,k),w=g.slice(k+1);if((x===""||x.endsWith(" ")||x===`
|
|
1
|
+
"use strict";var Xf=Object.defineProperty;var Jf=(e,t,i)=>t in e?Xf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var Jt=(e,t,i)=>Jf(e,typeof t!="symbol"?t+"":t,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ee=require("@kedataindo/docflow-core"),s=require("vue"),cn=require("@kedataindo/docflow-layout-engine");function Yl(e){const t=s.ref(null),i=s.shallowRef(null),n=s.ref(!1),r=s.computed(()=>{var c;return((c=i.value)==null?void 0:c.editor)??null}),a=s.computed(()=>{var c;return((c=i.value)==null?void 0:c.pluginActions)??{}}),o=()=>{if(!t.value||i.value)return;const c=s.unref(e.collaboration),f=s.unref(e.content),p=Ee.createEditor({target:t.value,content:f,plugins:e.plugins,editable:e.editable??!0,collaboration:c,onUpdate:e.onUpdate,getPageMap:e.getPageMap,paginationOptions:e.paginationOptions,onImageUpload:e.onImageUpload,citation:e.citation,aiStream:e.aiStream,aiDraft:e.aiDraft,debug:e.debug});i.value=p,s.nextTick(()=>{n.value=!0})},l=()=>{var c;(c=i.value)==null||c.destroy(),i.value=null,n.value=!1};return s.onMounted(()=>{o()}),s.onUnmounted(()=>{l()}),s.watch(()=>e.editable,c=>{r.value&&r.value.setEditable(c??!0)}),s.watch(()=>{const c=s.unref(e.collaboration);return c?{room:c.room,provider:c.provider}:null},async(c,f)=>{JSON.stringify(c)!==JSON.stringify(f)&&(l(),await s.nextTick(),o())},{deep:!0}),{editorRef:t,docsEditor:i,editor:r,pluginActions:a,isReady:n}}function Zf(e){const t=s.computed(()=>{var r,a,o;return(o=(a=(r=e.value)==null?void 0:r.storage)==null?void 0:a.editorContext)==null?void 0:o.aiStream}),i=s.computed(()=>{var r,a,o;return(o=(a=(r=e.value)==null?void 0:r.storage)==null?void 0:a.editorContext)==null?void 0:o.aiDraft}),n=s.computed(()=>!!t.value);return{aiStream:t,aiDraft:i,isAIAvailable:n}}const Os="docs-editor-theme",Ma=s.ref(!1);function va(){const e=i=>{if(Ma.value=i,typeof document<"u"){const n=document.documentElement;i?n.classList.add("dark"):n.classList.remove("dark")}typeof localStorage<"u"&&localStorage.setItem(Os,i?"dark":"light")},t=()=>e(!Ma.value);return s.onMounted(()=>{let i=!1;if(typeof localStorage<"u"){const n=localStorage.getItem(Os);n?i=n==="dark":typeof window<"u"&&(i=window.matchMedia("(prefers-color-scheme: dark)").matches)}e(i)}),{isDark:Ma,toggle:t}}const ec={common:{save:"Save",cancel:"Cancel",create:"Create",delete:"Delete",rename:"Rename",duplicate:"Duplicate",move:"Move",moveToFolder:"Move to folder",moveDocument:"Move Document",noFolder:"(No Folder)",search:"Search",loading:"Loading...",error:"Error",dismiss:"Dismiss",emptyDocument:"(Empty Document)",confirmDelete:"Are you sure you want to delete this document?",undo:"Undo",restore:"Restore",deleteForever:"Delete forever",back:"Back",confirmPermanentDelete:"Permanently delete this document? This cannot be undone."},header:{file:"File",new:"New",newDocument:"New document",open:"Open",makeACopy:"Make a copy",share:"Share",email:"Email",emailDraft:"Email draft",download:"Download",rename:"Rename",move:"Move",moveToFolder:"Move to folder",moveToTrash:"Move to trash",addToStarred:"Add to Starred",versionHistory:"Version history",language:"Language",pageSetup:"Page setup",print:"Print",details:"Details",security:"Security limitations",edit:"Edit",view:"View",insert:"Insert",format:"Format",tools:"Tools",extensions:"Extensions",help:"Help",backToDocuments:"Back to Documents",clickToRename:"Click to rename",starDocument:"Star document",unstarDocument:"Unstar document",sandbox:"Sandbox (toggle simulated collaborators)",theme:"Theme",account:"Account",markdown:"Markdown (.md)",html:"Web page (.html)",htmlZip:"Web page (.html, zipped)",text:"Plain text (.txt)",docx:"Microsoft Word (.docx)",pdf:"PDF Document (.pdf)",odt:"OpenDocument Format (.odt)",rtf:"Rich Text Format (.rtf)",undo:"Undo",redo:"Redo",selectAll:"Select all",cut:"Cut",copy:"Copy",paste:"Paste",pasteWithoutFormatting:"Paste without formatting",delete:"Delete",findAndReplace:"Find and replace",showSidebar:"Show outline",focusMode:"Full focus mode",showRuler:"Show ruler",meetingNotes:"Meeting notes",image:"Image",table:"Table",codeBlock:"Code block",link:"Link",header:"Header",footer:"Footer",footnote:"Footnote",tableOfContents:"Table of contents",bold:"Bold text",italic:"Italic text",underline:"Underline",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",alignIndent:"Align & indent",alignLeft:"Align left",alignCenter:"Align center",alignRight:"Align right",alignJustify:"Justify",bulletsNumbering:"Bullets & numbering",bulletList:"Bulleted list",numberedList:"Numbered list",taskList:"Task list",horizontalLine:"Horizontal line",pageNumbers:"Page numbers",pageNumberInHeader:"Insert in header",pageNumberInFooter:"Insert in footer",pagelessFormat:"Pageless format",clearFormatting:"Clear formatting",spellCheck:"Spell check",wordCount:"Word count",preferences:"Preferences",manageExtensions:"Manage extensions…",keyboardShortcuts:"Keyboard shortcuts",reportIssue:"Report issue",about:"About DocsEditor"},toolbar:{undo:"Undo",redo:"Redo",print:"Print",spelling:"Spelling",zoom:"100%",paragraphStyle:"Paragraph style",normalText:"Normal text",fontFamily:"Font family",decreaseFontSize:"Decrease font size",increaseFontSize:"Increase font size",fontSize:"Font size",lists:"Lists",alignment:"Alignment",insert:"Insert",comments:"Comments",history:"History",ai:"AI",tableOfContents:"Table of contents",references:"References"},statusBar:{liveSyncActive:"Live Sync Active",connecting:"Connecting…",saving:"Saving changes…",offline:"Offline",lastSavedAt:"Last saved at",never:"Never",pageSize:"Page size",page:"Page",of:"of",pageless:"Pageless",words:"words",characters:"characters"},editor:{share:{title:"Share document",close:"Close",shareableLink:"Shareable link",copy:"Copy",copied:"Link copied to clipboard",couldNotCopy:"Could not copy link",collaborators:"Collaborators",addCollaborator:"Add collaborator by email",placeholder:"colleague@example.com",add:"Add",userNotFound:"User not found",failedToAdd:"Failed to add collaborator",visibility:"Visibility",private:"Private",privateDescription:"Only you and people you invite can access this document.",restricted:"Restricted",restrictedDescription:"Anyone with the link can view this document."},print:"Print",logOut:"Log out",rename:{title:"Rename document",label:"Document title",save:"Save",cancel:"Cancel"},pageSetup:{title:"Page setup",paperSize:"Paper size",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",margins:"Margins",top:"Top",bottom:"Bottom",left:"Left",right:"Right",apply:"Apply",cancel:"Cancel"},details:{title:"Document details",titleLabel:"Title",owner:"Owner",location:"Location",noFolder:"(No folder)",created:"Created",modified:"Last modified",statistics:"Statistics",words:"Words",characters:"Characters",pages:"Pages",loading:"Loading document details…"},email:{title:"Email this file",to:"To",toPlaceholder:"recipient@example.com",subject:"Subject",body:"Body",send:"Send",copyLink:"Copy link",shareableLink:"Shareable link",defaultSubject:"Document: {title}",defaultBody:"You can view this document at: {url}"},linkDialog:{insertTitle:"Insert link",editTitle:"Edit link",text:"Text to display",textPlaceholder:"Link text",url:"URL",urlPlaceholder:"https://example.com",insert:"Insert",update:"Update",remove:"Remove link",cancel:"Cancel",urlRequired:"URL is required",urlInvalid:"Please enter a valid URL"},findReplace:{title:"Find and replace",findPlaceholder:"Find in document",replacePlaceholder:"Replace with",next:"Next",previous:"Previous",replace:"Replace",replaceAll:"Replace all",noMatches:"No matches",matchCount:"{current} of {total}",close:"Close"},headerFooter:{title:"Header & Footer Customization",header:"Header",footer:"Footer",left:"Left",right:"Right",clear:"Clear",headerPlaceholder:"e.g. Document Title",footerPlaceholder:"e.g. Page {page} of {total}",headerLeftPlaceholder:"e.g. Document Title",headerRightPlaceholder:"e.g. Page {page}",footerLeftPlaceholder:"e.g. Confidential",footerRightPlaceholder:"e.g. Page {page} of {total}",variableInfo:"Variable Info: You can use {page} for the current page number, and {total} for the total page count.",differentFirstPage:"Different first page",differentOddEven:"Different odd & even pages",options:"Options",formatHeader:"Header format",pageNumber:"Page numbers",removeHeader:"Remove header",headerFooterFormatTitle:"Header & footer",marginSection:"Margin",headerTopMargin:"Header (centimeters from top)",footerBottomMargin:"Footer (centimeters from bottom)",layoutSection:"Layout",pageNumberTitle:"Page numbers",positionSection:"Position",positionHeader:"Header",positionFooter:"Footer",showOnFirstPage:"Show on first page",numberingSection:"Numbering",startAt:"Start at",continueFromPrevious:"Continue from previous section",apply:"Apply",cancel:"Cancel",save:"Save"},showOutline:"Show document outline",loadingDocument:"Loading document"},slashMenu:{title:"Suggested",basicBlocks:"Basic Blocks",noMatch:"No matching commands"},documentTabs:{documentTabs:"Document Tabs",addTab:"Add tab",rename:"Rename",delete:"Delete",outline:"Outline",untitledHeading:"Untitled Heading {level}",placeholder:"Headings you add to the document will appear here."},theme:{lightMode:"Switch to light mode",darkMode:"Switch to dark mode"},sidebars:{ai:{title:"AI Writing Helper",description:"A server-side AI co-writer to draft, summarize, or edit your copy.",quickMacros:"Quick AI Macros",summarize:"Summarize",fixGrammar:"Fix Grammar",continue:"Continue",toSpanish:"To Spanish",generations:"AI Generations",aiDrafting:"AI drafting…",copy:"Copy",copied:"Copied",insert:"Insert",inserted:"Inserted",noDraft:"Ask anything about your document, or run a quick macro above.",promptPlaceholder:"Ask AI to draft outline, write content, rewrite tone…",promptAI:"Prompt AI",close:"Close",you:"You",assistant:"Assistant",notConfigured:"AI is not configured on this deployment.",selectTextFirst:"Select text in the document first",improveSelection:"Improve selection",draft:"Draft with citations",draftPlaceholder:"Ask the AI to draft text grounded on your reference library…",promptDraft:"Draft",citations:"Citations",emptyResponse:"The AI returned an empty response.",aiError:"AI request failed"},comments:{title:"Discussion Panel",placeholder:"Select text to add a comment…",addComment:"Add comment",resolve:"Resolve",reply:"Reply…",replyInThread:"Reply in thread",active:"Active",resolved:"Resolved",creatingAnchored:"Creating anchored comment:",quote:"Quote:",resolvedBy:"Resolved by {user}",noComments:"No {mode} comments yet.",commentOnSelection:"Comment on selection…",generalComment:"Add general comment to document…",anchoredComment:"Anchored comment",general:"General comment",post:"Post"},history:{title:"History",empty:"No history yet.",version:"Version",restore:"Restore",closePreview:"Close Preview",restoreThis:"Restore This",viewingPreview:"Viewing Revision Preview",readOnlyPreview:"You are previewing version #{index}. Your editor is temporarily read-only.",modifiedBy:"Modified by:",saveNamedSnapshot:"Save Named Snapshot",snapshotPlaceholder:"e.g. Approved Final Draft…",noSnapshots:"No snapshots saved yet.",save:"Save",cancel:"Cancel",preview:"Preview"},toc:{title:"Contents",empty:"No headings yet.",untitledHeading:"Untitled Heading {level}",newSection:"New {tag} Section",startWriting:"Start writing here…",closeOutline:"Close outline",searchHeadings:"Search headings…",noHeadings:"No Headings Yet",noHeadingsDescription:"Use headers (H1, H2, or H3) to structure your document. An interactive outline will generate here automatically.",quickInsert:"Quick Insert",headingLevel:"Heading {level}",noMatchingHeaders:"No matching headers found",tryDifferentTerm:"Try searching with a different term.",outlineLayout:"Outline Layout",outlineSync:"Outline syncs automatically. Click any header to instantly jump, focus, and scroll the editor to that section."},references:{title:"References",subtitle:"Manage sources and insert citations.",close:"Close references",citationStyle:"Citation style",searchSources:"Search sources…",addSource:"Add source",editSource:"Edit source",noSources:"No sources yet",noSourcesDescription:"Add your first reference to start citing. Citations and the bibliography follow the active style automatically.",noMatchingSources:"No matching sources found",cite:"Cite",edit:"Edit",delete:"Delete",back:"Back to list",anonymous:"Anonymous",etAl:"et al.",confirmDelete:'Delete source "{title}"? Citations referencing it will stop rendering.',import:{title:"Import",fromDoi:"From DOI (CrossRef)",doiPlaceholder:"Paste a DOI or DOI link…",importDoi:"Import DOI",doiSuccess:"Source imported from CrossRef.",doiFailed:"DOI could not be resolved.",fromFile:"From BibTeX / RIS file",pickFile:"Choose .bib or .ris file",importing:"Importing…",batchSuccess:"{count} source(s) imported.",partial:"{ok} imported, {failed} failed.",failed:"Import failed."},types:{book:"Book","article-journal":"Journal article",chapter:"Book chapter",webpage:"Web page",report:"Report",thesis:"Thesis",document:"Document"},form:{type:"Source type",title:"Title",authors:"Authors",familyName:"Family name",givenName:"Given name",addAuthor:"Add author",year:"Year",journal:"Journal",bookTitle:"Book title",publisher:"Publisher",publisherPlace:"Place",volume:"Volume",issue:"Issue",pages:"Pages",save:"Save changes",create:"Add source",cancel:"Cancel"}}},dashboard:{allDocuments:"All Documents",starred:"Starred",folders:"Folders",createFolder:"Create New Folder",folderNamePlaceholder:"Folder name…",noFolders:"No folders created yet.",startNewDocument:"Start a New Document",blankDocument:"Blank Document",blankDescription:"Fresh slate",meetingNotes:"Meeting Notes",meetingNotesDescription:"Attendees & Action Items",projectProposal:"Project Proposal",projectProposalDescription:"Objectives & Deliverables",officialLetter:"Official Letter",officialLetterDescription:"Pre-formatted header",searchPlaceholder:"Search titles or full-text contents…",modified:"Modified",alphabetical:"Alphabetical",created:"Created",gridView:"Grid View",listView:"List View",activeFilters:"Active Filters:",folder:"Folder",starredOnly:"Starred Only",search:"Search",noDocuments:"No documents found",noDocumentsDescription:"No files match your current filters. Select a template or create a blank file to start drafting!",createBlankDocument:"Create Blank Document",loadingDocuments:"Loading documents...",documentTitle:"Document Title",lastModified:"Last Modified",actions:"Actions",trash:"Trash",trashEmpty:"Trash is empty",trashEmptyDescription:"Deleted documents will appear here.",trashedAt:"Trashed",movedToTrash:"Moved to trash:"},auth:{signInTitle:"Sign in to create and edit documents",signInWithGoogle:"Sign in with Google",signInWithEmail:"Sign in with Email",signInWithGitHub:"Sign in with GitHub",signInWith:"Sign in with {provider}",or:"or",email:"Email",password:"Password",name:"Name",signIn:"Sign In",signUp:"Sign Up",signOut:"Sign out",noAccount:"Don't have an account? Sign up",hasAccount:"Already have an account? Sign in",invalidCredentials:"Invalid email or password",accountCreated:"Account created! You are now signed in.",loadDocumentsError:"Failed to load documents. Is the server running?",retry:"Try again",rateLimited:"Server is rate limiting requests.",retryIn:"Retrying in {seconds}s…",networkError:"Could not reach the server. Check your connection.",noProviders:"No authentication providers configured. Check your server environment variables."},language:{label:"Language",en:"English",id:"Indonesian"}},tc={common:{save:"Simpan",cancel:"Batal",create:"Buat",delete:"Hapus",rename:"Ubah nama",duplicate:"Duplikat",move:"Pindah",moveToFolder:"Pindah ke folder",moveDocument:"Pindahkan Dokumen",noFolder:"(Tanpa Folder)",search:"Cari",loading:"Memuat…",error:"Kesalahan",dismiss:"Tutup",emptyDocument:"(Dokumen Kosong)",confirmDelete:"Apakah Anda yakin ingin menghapus dokumen ini?",undo:"Batalkan",restore:"Pulihkan",deleteForever:"Hapus permanen",back:"Kembali",confirmPermanentDelete:"Hapus dokumen ini secara permanen? Tindakan ini tidak dapat dibatalkan."},header:{file:"Berkas",new:"Baru",newDocument:"Dokumen baru",open:"Buka",makeACopy:"Buat salinan",share:"Bagikan",email:"Email",emailDraft:"Draf Email",download:"Unduh",rename:"Ubah nama",move:"Pindah",moveToFolder:"Pindah ke folder",moveToTrash:"Pindah ke sampah",addToStarred:"Tambahkan ke Bintang",versionHistory:"Riwayat versi",language:"Bahasa",pageSetup:"Penataan halaman",print:"Cetak",details:"Detail",security:"Batasan keamanan",edit:"Sunting",view:"Tampilan",insert:"Sisipkan",format:"Format",tools:"Alat",extensions:"Ekstensi",help:"Bantuan",backToDocuments:"Kembali ke Dokumen",clickToRename:"Klik untuk mengganti nama",starDocument:"Bintangi dokumen",unstarDocument:"Hapus bintang",sandbox:"Sandbox (alihkan kolaborator simulasi)",theme:"Tema",account:"Akun",markdown:"Markdown (.md)",html:"Halaman web (.html)",htmlZip:"Halaman web (.html, ter-zip)",text:"Teks biasa (.txt)",docx:"Microsoft Word (.docx)",pdf:"Dokumen PDF (.pdf)",odt:"OpenDocument Format (.odt)",rtf:"Rich Text Format (.rtf)",undo:"Urungkan",redo:"Ulangi",selectAll:"Pilih semua",cut:"Potong",copy:"Salin",paste:"Tempel",pasteWithoutFormatting:"Tempel tanpa pemformatan",delete:"Hapus",findAndReplace:"Temukan dan ganti",showSidebar:"Tampilkan kerangka",focusMode:"Mode Fokus Penuh",showRuler:"Tampilkan penggaris",meetingNotes:"Catatan Rapat",image:"Gambar",table:"Tabel",codeBlock:"Kode Blok",link:"Tautan",header:"Header",footer:"Footer",footnote:"Catatan Kaki",tableOfContents:"Daftar isi",bold:"Teks Tebal",italic:"Teks Miring",underline:"Garis Bawah",heading1:"Judul 1",heading2:"Judul 2",heading3:"Judul 3",alignIndent:"Perataan & indentasi",alignLeft:"Rata kiri",alignCenter:"Rata tengah",alignRight:"Rata kanan",alignJustify:"Rata kiri-kanan",bulletsNumbering:"Bullet & penomoran",bulletList:"Daftar ber-bullet",numberedList:"Daftar bernomor",taskList:"Daftar tugas",horizontalLine:"Garis horizontal",pageNumbers:"Nomor halaman",pageNumberInHeader:"Sisipkan di header",pageNumberInFooter:"Sisipkan di footer",pagelessFormat:"Format tanpa halaman",clearFormatting:"Hapus pemformatan",spellCheck:"Periksa ejaan",wordCount:"Hitungan kata",preferences:"Preferensi",manageExtensions:"Kelola ekstensi…",keyboardShortcuts:"Pintasan keyboard",reportIssue:"Laporkan masalah",about:"Tentang DocsEditor"},toolbar:{undo:"Urungkan",redo:"Ulangi",print:"Cetak",spelling:"Ejaan",zoom:"100%",paragraphStyle:"Gaya paragraf",normalText:"Teks normal",fontFamily:"Keluarga font",decreaseFontSize:"Kecilkan font",increaseFontSize:"Perbesar font",fontSize:"Ukuran font",lists:"Daftar",alignment:"Perataan",insert:"Sisipkan",comments:"Komentar",history:"Riwayat",ai:"AI",tableOfContents:"Daftar isi",references:"Referensi"},statusBar:{liveSyncActive:"Sinkron Langsung Aktif",connecting:"Menghubungkan…",saving:"Menyimpan perubahan…",offline:"Luring",lastSavedAt:"Terakhir disimpan",never:"Tidak pernah",pageSize:"Ukuran halaman",page:"Halaman",of:"dari",pageless:"Tanpa halaman",words:"kata",characters:"karakter"},editor:{share:{title:"Bagikan dokumen",close:"Tutup",shareableLink:"Tautan dapat dibagikan",copy:"Salin",copied:"Tautan disalin ke papan klip",couldNotCopy:"Tidak dapat menyalin tautan",collaborators:"Kolaborator",addCollaborator:"Tambahkan kolaborator lewat email",placeholder:"rekan@contoh.com",add:"Tambah",userNotFound:"Pengguna tidak ditemukan",failedToAdd:"Gagal menambahkan kolaborator",visibility:"Visibilitas",private:"Pribadi",privateDescription:"Hanya Anda dan orang yang Anda undang yang dapat mengakses dokumen ini.",restricted:"Terbatas",restrictedDescription:"Siapa pun dengan tautan dapat melihat dokumen ini."},print:"Cetak",logOut:"Keluar",rename:{title:"Ubah nama dokumen",label:"Judul dokumen",save:"Simpan",cancel:"Batal"},pageSetup:{title:"Penataan halaman",paperSize:"Ukuran kertas",orientation:"Orientasi",portrait:"Potret",landscape:"Lanskap",margins:"Margin",top:"Atas",bottom:"Bawah",left:"Kiri",right:"Kanan",apply:"Terapkan",cancel:"Batal"},details:{title:"Detail dokumen",titleLabel:"Judul",owner:"Pemilik",location:"Lokasi",noFolder:"(Tanpa folder)",created:"Dibuat",modified:"Terakhir diubah",statistics:"Statistik",words:"Kata",characters:"Karakter",pages:"Halaman",loading:"Memuat detail dokumen…"},email:{title:"Email file ini",to:"Kepada",toPlaceholder:"penerima@contoh.com",subject:"Subjek",body:"Isi",send:"Kirim",copyLink:"Salin tautan",shareableLink:"Tautan dapat dibagikan",defaultSubject:"Dokumen: {title}",defaultBody:"Anda dapat melihat dokumen ini di: {url}"},linkDialog:{insertTitle:"Sisipkan tautan",editTitle:"Edit tautan",text:"Teks yang ditampilkan",textPlaceholder:"Teks tautan",url:"URL",urlPlaceholder:"https://contoh.com",insert:"Sisipkan",update:"Perbarui",remove:"Hapus tautan",cancel:"Batal",urlRequired:"URL wajib diisi",urlInvalid:"Masukkan URL yang valid"},findReplace:{title:"Temukan dan ganti",findPlaceholder:"Temukan di dokumen",replacePlaceholder:"Ganti dengan",next:"Berikutnya",previous:"Sebelumnya",replace:"Ganti",replaceAll:"Ganti semua",noMatches:"Tidak ada hasil",matchCount:"{current} dari {total}",close:"Tutup"},headerFooter:{title:"Penyesuaian Header & Footer",header:"Header",footer:"Footer",left:"Kiri",right:"Kanan",clear:"Kosongkan",headerPlaceholder:"mis. Judul Dokumen",footerPlaceholder:"mis. Halaman {page} dari {total}",headerLeftPlaceholder:"mis. Judul Dokumen",headerRightPlaceholder:"mis. Halaman {page}",footerLeftPlaceholder:"mis. Rahasia",footerRightPlaceholder:"mis. Halaman {page} dari {total}",variableInfo:"Info Variabel: Anda dapat menggunakan {page} untuk nomor halaman aktif, dan {total} untuk jumlah halaman.",differentFirstPage:"Halaman pertama berbeda",differentOddEven:"Halaman ganjil & genap berbeda",options:"Opsi",formatHeader:"Format header",pageNumber:"Nomor halaman",removeHeader:"Hapus header",headerFooterFormatTitle:"Header & footer",marginSection:"Margin",headerTopMargin:"Header (sentimeter dari atas)",footerBottomMargin:"Footer (sentimeter dari bawah)",layoutSection:"Tata letak",pageNumberTitle:"Nomor halaman",positionSection:"Posisi",positionHeader:"Header",positionFooter:"Footer",showOnFirstPage:"Tampilkan di halaman pertama",numberingSection:"Penomoran",startAt:"Dimulai dari",continueFromPrevious:"Lanjutkan dari bagian sebelumnya",apply:"Terapkan",cancel:"Batal",save:"Simpan"},showOutline:"Tampilkan kerangka dokumen",loadingDocument:"Memuat dokumen"},slashMenu:{title:"Saran",basicBlocks:"Blok Dasar",noMatch:"Tidak ada perintah yang cocok"},documentTabs:{documentTabs:"Tab Dokumen",addTab:"Tambah tab",rename:"Ubah nama",delete:"Hapus",outline:"Kerangka",untitledHeading:"Judul Tanpa Nama {level}",placeholder:"Tajuk yang Anda tambahkan ke dokumen akan muncul di sini."},theme:{lightMode:"Beralih ke mode terang",darkMode:"Beralih ke mode gelap"},sidebars:{ai:{title:"AI Writing Helper",description:"Penulis AI sisi-server untuk menyusun, merangkum, atau menyunting tulisan Anda.",quickMacros:"Makro AI Cepat",summarize:"Rangkum",fixGrammar:"Perbaiki Tata Bahasa",continue:"Lanjutkan",toSpanish:"Ke Spanyol",generations:"Hasil AI",aiDrafting:"AI menyusun…",copy:"Salin",copied:"Tersalin",insert:"Sisipkan",inserted:"Tersisip",noDraft:"Tanya apa saja tentang dokumen Anda, atau jalankan makro cepat di atas.",promptPlaceholder:"Minta AI membuat kerangka, menulis konten, menulis ulang nada…",promptAI:"Perintah AI",close:"Tutup",you:"Anda",assistant:"Asisten",notConfigured:"AI belum dikonfigurasi pada deployment ini.",selectTextFirst:"Pilih teks di dokumen terlebih dahulu",improveSelection:"Perbaiki pilihan",draft:"Draf dengan sitasi",draftPlaceholder:"Minta AI menyusun teks berbasis pustaka referensi Anda…",promptDraft:"Susun",citations:"Sitasi",emptyResponse:"AI mengembalikan respons kosong.",aiError:"Permintaan AI gagal"},comments:{title:"Panel Diskusi",placeholder:"Pilih teks untuk menambahkan komentar…",addComment:"Tambah komentar",resolve:"Selesai",reply:"Balas…",replyInThread:"Balas di thread",active:"Aktif",resolved:"Selesai",creatingAnchored:"Membuat komentar terpaut:",quote:"Kutipan:",resolvedBy:"Diselesaikan oleh {user}",noComments:"Belum ada komentar {mode}.",commentOnSelection:"Komentari pilihan…",generalComment:"Tambahkan komentar umum ke dokumen…",anchoredComment:"Komentar terpaut",general:"Komentar umum",post:"Kirim"},history:{title:"Riwayat",empty:"Belum ada riwayat.",version:"Versi",restore:"Pulihkan",closePreview:"Tutup Pratinjau",restoreThis:"Pulihkan Ini",viewingPreview:"Melihat Pratinjau Revisi",readOnlyPreview:"Anda sedang melihat pratinjau versi #{index}. Editor Anda untuk sementara hanya-baca.",modifiedBy:"Diubah oleh:",saveNamedSnapshot:"Simpan Snapshot Bernama",snapshotPlaceholder:"mis. Final Draft Disetujui…",noSnapshots:"Belum ada snapshot yang disimpan.",save:"Simpan",cancel:"Batal",preview:"Pratinjau"},toc:{title:"Daftar Isi",empty:"Belum ada judul.",untitledHeading:"Judul Tanpa Nama {level}",newSection:"Bagian {tag} Baru",startWriting:"Mulai menulis di sini…",closeOutline:"Tutup kerangka",searchHeadings:"Cari judul…",noHeadings:"Belum Ada Judul",noHeadingsDescription:"Gunakan header (H1, H2, atau H3) untuk menyusun dokumen. Kerangka interaktif akan dibuat otomatis di sini.",quickInsert:"Sisipkan Cepat",headingLevel:"Judul {level}",noMatchingHeaders:"Tidak ada header yang cocok",tryDifferentTerm:"Coba cari dengan istilah lain.",outlineLayout:"Tata Letak Kerangka",outlineSync:"Kerangka tersinkronisasi otomatis. Klik header apa pun untuk langsung melompat, fokus, dan menggulir editor ke bagian tersebut."},references:{title:"Referensi",subtitle:"Kelola sumber dan sisipkan sitasi.",close:"Tutup referensi",citationStyle:"Gaya sitasi",searchSources:"Cari sumber…",addSource:"Tambah sumber",editSource:"Ubah sumber",noSources:"Belum ada sumber",noSourcesDescription:"Tambahkan referensi pertama Anda untuk mulai menyitasi. Sitasi dan daftar pustaka mengikuti gaya aktif secara otomatis.",noMatchingSources:"Tidak ada sumber yang cocok",cite:"Sitasi",edit:"Ubah",delete:"Hapus",back:"Kembali ke daftar",anonymous:"Anonim",etAl:"dkk.",confirmDelete:'Hapus sumber "{title}"? Sitasi yang merujuknya akan berhenti ditampilkan.',import:{title:"Impor",fromDoi:"Dari DOI (CrossRef)",doiPlaceholder:"Tempel DOI atau tautan DOI…",importDoi:"Impor DOI",doiSuccess:"Sumber berhasil diimpor dari CrossRef.",doiFailed:"DOI tidak dapat ditemukan.",fromFile:"Dari berkas BibTeX / RIS",pickFile:"Pilih berkas .bib atau .ris",importing:"Mengimpor…",batchSuccess:"{count} sumber berhasil diimpor.",partial:"{ok} berhasil, {failed} gagal.",failed:"Impor gagal."},types:{book:"Buku","article-journal":"Artikel jurnal",chapter:"Bab buku",webpage:"Halaman web",report:"Laporan",thesis:"Tesis",document:"Dokumen"},form:{type:"Jenis sumber",title:"Judul",authors:"Penulis",familyName:"Nama keluarga",givenName:"Nama depan",addAuthor:"Tambah penulis",year:"Tahun",journal:"Jurnal",bookTitle:"Judul buku",publisher:"Penerbit",publisherPlace:"Kota terbit",volume:"Volume",issue:"Edisi",pages:"Halaman",save:"Simpan perubahan",create:"Tambah sumber",cancel:"Batal"}}},dashboard:{allDocuments:"Semua Dokumen",starred:"Berbintang",folders:"Folder",createFolder:"Buat Folder Baru",folderNamePlaceholder:"Nama folder…",noFolders:"Belum ada folder.",startNewDocument:"Mulai Dokumen Baru",blankDocument:"Dokumen Kosong",blankDescription:"Kertas kosong",meetingNotes:"Catatan Rapat",meetingNotesDescription:"Peserta & Tindak Lanjut",projectProposal:"Proposal Proyek",projectProposalDescription:"Tujuan & Hasil",officialLetter:"Surat Resmi",officialLetterDescription:"Header yang sudah diformat",searchPlaceholder:"Cari judul atau isi dokumen…",modified:"Diubah",alphabetical:"Abjad",created:"Dibuat",gridView:"Tampilan Grid",listView:"Tampilan Daftar",activeFilters:"Filter Aktif:",folder:"Folder",starredOnly:"Hanya Berbintang",search:"Cari",noDocuments:"Tidak ada dokumen",noDocumentsDescription:"Tidak ada file yang cocok dengan filter. Pilih template atau buat dokumen kosong untuk mulai menulis!",createBlankDocument:"Buat Dokumen Kosong",loadingDocuments:"Memuat dokumen...",documentTitle:"Judul Dokumen",lastModified:"Terakhir Diubah",actions:"Aksi",trash:"Sampah",trashEmpty:"Sampah kosong",trashEmptyDescription:"Dokumen yang dihapus akan muncul di sini.",trashedAt:"Dihapus",movedToTrash:"Dipindahkan ke sampah:"},auth:{signInTitle:"Masuk untuk membuat dan menyunting dokumen",signInWithGoogle:"Masuk dengan Google",signInWithEmail:"Masuk dengan Email",signInWithGitHub:"Masuk dengan GitHub",signInWith:"Masuk dengan {provider}",or:"atau",email:"Email",password:"Kata sandi",name:"Nama",signIn:"Masuk",signUp:"Daftar",signOut:"Keluar",noAccount:"Belum punya akun? Daftar",hasAccount:"Sudah punya akun? Masuk",invalidCredentials:"Email atau kata sandi salah",accountCreated:"Akun dibuat! Anda sekarang masuk.",loadDocumentsError:"Gagal memuat dokumen. Apakah server berjalan?",retry:"Coba lagi",rateLimited:"Server sedang membatasi permintaan.",retryIn:"Mencoba ulang dalam {seconds} detik…",networkError:"Tidak bisa menghubungi server. Periksa koneksi Anda.",noProviders:"Tidak ada penyedia autentikasi yang dikonfigurasi. Periksa variabel lingkungan server."},language:{label:"Bahasa",en:"English",id:"Indonesia"}},Cr={en:ec,id:tc},Lo="en",Qf={en:ec.language.en,id:tc.language.id};function ic(e){return Cr[e]??Cr[Lo]}function Er(e){return typeof e=="string"&&e in Cr}const nc=Symbol("docflow-locale"),rc="docflow-locale";function Yf(e){if(e&&Er(e))return e;try{const t=localStorage.getItem(rc);if(t&&Er(t))return t}catch{}return Lo}function ep(e,t){const i=t.split(".");let n=e;for(const r of i){if(n===null||typeof n!="object")return;n=n[r]}return n}function ac(e){const t=s.ref(Yf(e));return{locale:t,setLocale:r=>{if(Er(r)){t.value=r;try{localStorage.setItem(rc,r)}catch{}}},t:(r,a)=>{const o=ic(t.value),l=ep(o,r);if(typeof l!="string")return r;let c=l;if(a)for(const[f,p]of Object.entries(a))c=c.replace(new RegExp(`\\{${f}\\}`,"g"),String(p));return c}}}function at(){const e=s.inject(nc,null);return e||ac()}function oc(e){const t=ac(e);return s.provide(nc,t),t}function sc(e){return Qf[e]??e}function lc(){return["en","id"]}function tp(e){const t=s.ref({totalPages:1,visiblePages:[],config:{pageSize:{id:"a4",name:"A4",pageWidth:794,pageHeight:1123},margins:{top:20,bottom:20,left:50,right:50},pageGap:50,headerLeft:"",headerRight:"",footerLeft:"",footerRight:""}}),i=s.computed(()=>t.value.totalPages),n=s.computed(()=>t.value.visiblePages),r=s.ref(!1);let a=null,o=null;const l=async()=>{var h;const m=e.editorRef.value,d=e.scrollRef.value;!((h=m==null?void 0:m.view)!=null&&h.dom)||!d||(a=new cn.VirtualPageOverlay(m.view.dom,e.config,d,e.bufferPages??2),a.observe(),t.value=await a.layout(),r.value=!0,o=new ResizeObserver(async()=>{a&&(t.value=await a.layout())}),o.observe(m.view.dom))},c=async m=>{a&&(t.value=await a.updateConfig(m))},f=()=>{a&&(t.value=a.getData())};let p=null;return s.onMounted(()=>{p=setInterval(f,250)}),s.onUnmounted(()=>{p&&clearInterval(p),a==null||a.disconnect(),o==null||o.disconnect()}),s.watch([()=>{var m,d;return(d=(m=e.editorRef.value)==null?void 0:m.view)==null?void 0:d.dom},e.scrollRef],()=>{r.value||l()},{immediate:!0}),s.watch(()=>e.config,m=>{r.value&&c(m)},{deep:!0}),{data:t,totalPages:i,visiblePages:n,isReady:r,refreshData:f,updateConfig:c}}const ip={key:0,class:"virtual-page-overlay","aria-hidden":"true"},np=["innerHTML"],rp=["innerHTML"],ap=["innerHTML"],op=["innerHTML"],sp=s.defineComponent({__name:"VirtualPageOverlay",props:{data:{},isReady:{type:Boolean}},setup(e){const t=e,i=s.computed(()=>t.data.visiblePages),n=s.computed(()=>t.data.config),r=s.computed(()=>n.value.pageSize),a=s.computed(()=>({height:`${n.value.pageGap}px`})),o=s.computed(()=>({paddingTop:`${n.value.margins.top}px`,paddingLeft:`${n.value.margins.left}px`,paddingRight:`${n.value.margins.right}px`,height:`${n.value.margins.top}px`})),l=s.computed(()=>({paddingBottom:`${n.value.margins.bottom}px`,paddingLeft:`${n.value.margins.left}px`,paddingRight:`${n.value.margins.right}px`}));function c(p){return{top:`${p.top}px`,height:`${r.value.pageHeight+n.value.pageGap}px`,width:`${r.value.pageWidth}px`}}function f(p,m){return p.replace(/\{page\}/g,String(m+1)).replace(/\{total\}/g,String(t.data.totalPages))}return(p,m)=>e.isReady?(s.openBlock(),s.createElementBlock("div",ip,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(i.value,d=>(s.openBlock(),s.createElementBlock("div",{key:d.index,class:"vp-page",style:s.normalizeStyle(c(d))},[s.createElementVNode("div",{class:"vp-gap",style:s.normalizeStyle(a.value)},null,4),s.createElementVNode("div",{class:"vp-header",style:s.normalizeStyle(o.value)},[s.createElementVNode("span",{class:"vp-header-left",innerHTML:n.value.headerLeft},null,8,np),s.createElementVNode("span",{class:"vp-header-right",innerHTML:n.value.headerRight},null,8,rp)],4),s.createElementVNode("div",{class:"vp-footer",style:s.normalizeStyle(l.value)},[s.createElementVNode("span",{class:"vp-footer-left",innerHTML:f(n.value.footerLeft,d.index)},null,8,ap),s.createElementVNode("span",{class:"vp-footer-right",innerHTML:f(n.value.footerRight,d.index)},null,8,op)],4)],4))),128))])):s.createCommentVNode("",!0)}}),Bo=(e,t)=>{const i=e.__vccOpts||e;for(const[n,r]of t)i[n]=r;return i},lp=Bo(sp,[["__scopeId","data-v-a48fe1b6"]]),cp={class:"px-2 py-1.5 text-[10px] font-semibold uppercase text-slate-400"},up=["onClick","onMouseenter"],fp={class:"text-slate-500 dark:text-slate-400"},cc=s.defineComponent({__name:"SlashMenu",props:{editor:{},commands:{}},setup(e){const{t}=at(),i=e,n=s.ref(!1),r=s.ref(""),a=s.ref(0),o=s.ref({top:0,left:0}),l=s.ref([]);function c(){if(!i.editor)return;const{view:h}=i.editor,{selection:v}=h.state,b=h.coordsAtPos(v.head),y=h.dom.getBoundingClientRect();o.value={top:b.bottom-y.top+4,left:b.left-y.left}}function f(h){var E,P,_,S;if(!i.editor)return;const{view:v}=i.editor,{selection:b}=v.state,y=b.head,g=v.state.doc.resolve(y),k=g.start(),w=g.parent.textContent.slice(0,g.parentOffset).lastIndexOf("/");if(w>=0){const M=k+w,z=v.state.tr.delete(M,y);v.dispatch(z)}const C=i.editor;if(typeof((E=C.commands)==null?void 0:E[h.command])=="function")C.commands[h.command]();else if(C.chain)try{(S=(_=(P=C.chain().focus())[h.command])==null?void 0:_.call(P))==null||S.run()}catch{}n.value=!1,r.value=""}function p(){n.value=!1,r.value=""}function m(){if(!i.editor)return;const{view:h}=i.editor,{selection:v}=h.state,b=v.head,y=h.state.doc.resolve(b),g=y.parent.textContent.slice(0,y.parentOffset),k=g.lastIndexOf("/");if(k>=0){const x=g.slice(0,k),w=g.slice(k+1);if((x===""||x.endsWith(" ")||x===`
|
|
2
2
|
`)&&!w.includes(" ")){r.value=w,n.value=!0,a.value=0,c();return}}n.value=!1}s.watch(()=>i.editor,h=>{h&&(h.on("update",m),h.on("selectionUpdate",()=>{n.value&&c()}))}),s.watch([r,()=>i.commands],()=>{const h=r.value.toLowerCase();l.value=h?i.commands.filter(v=>v.name.toLowerCase().includes(h)):i.commands});function d(h){if(n.value){if(h.key==="ArrowDown"&&(h.preventDefault(),a.value=Math.min(a.value+1,l.value.length-1)),h.key==="ArrowUp"&&(h.preventDefault(),a.value=Math.max(a.value-1,0)),h.key==="Enter"){h.preventDefault();const v=l.value[a.value];v&&f(v)}h.key==="Escape"&&(h.preventDefault(),p())}}return s.onMounted(()=>{document.addEventListener("keydown",d)}),s.onUnmounted(()=>{document.removeEventListener("keydown",d)}),(h,v)=>(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[n.value&&l.value.length>0?(s.openBlock(),s.createElementBlock("div",{key:0,class:"docs-slash-menu fixed z-[999] w-56 max-h-64 overflow-y-auto rounded-lg border border-slate-200 bg-white p-1 shadow-xl dark:border-slate-700 dark:bg-slate-800",style:s.normalizeStyle({top:o.value.top+"px",left:o.value.left+"px"})},[s.createElementVNode("div",cp,s.toDisplayString(s.unref(t)("slashMenu.basicBlocks")),1),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(l.value,(b,y)=>(s.openBlock(),s.createElementBlock("button",{key:b.command,class:s.normalizeClass(["flex w-full items-center gap-2 rounded-md px-3 py-2 text-left text-sm transition-colors",y===a.value?"bg-slate-100 dark:bg-slate-700":"hover:bg-slate-50 dark:hover:bg-slate-700/50"]),onClick:g=>f(b),onMouseenter:g=>a.value=y},[s.createElementVNode("span",fp,s.toDisplayString(b.name),1)],42,up))),128))],4)):s.createCommentVNode("",!0)]))}});/**
|
|
3
3
|
* @license lucide-vue-next v1.0.0 - ISC
|
|
4
4
|
*
|
|
@@ -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},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,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),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=`
|
|
15057
15057
|
<span class="rm-header-label">Header</span>
|
|
15058
15058
|
<div class="rm-header-right-tools">
|
|
15059
15059
|
<label class="rm-diff-label">
|
|
@@ -15074,4 +15074,4 @@
|
|
|
15074
15074
|
</div>
|
|
15075
15075
|
`,V.appendChild(se),se.addEventListener("mousedown",pe=>{pe.stopPropagation(),pe.preventDefault()});const ge=se.querySelector(".rm-diff-cb");ge==null||ge.addEventListener("change",pe=>{pe.stopPropagation();const _e=pe.target.checked;_e&&(qt.value="",_t.value=""),Ke.value=_e,St()});const ue=se.querySelector(".rm-options-btn"),be=se.querySelector(".rm-options-dropdown"),ce=se.querySelector(".rm-arrow-icon");ue==null||ue.addEventListener("mousedown",pe=>{pe.stopPropagation(),pe.preventDefault()}),ue==null||ue.addEventListener("click",pe=>{pe.stopPropagation(),pe.preventDefault();const _e=be.classList.toggle("is-open");ce&&(ce.textContent=_e?"▲":"▼")});const me=se.querySelector(".rm-opt-format");me==null||me.addEventListener("mousedown",pe=>{pe.stopPropagation(),pe.preventDefault()}),me==null||me.addEventListener("click",pe=>{pe.stopPropagation(),be.classList.remove("is-open"),ce&&(ce.textContent="▼"),Lf()});const ve=se.querySelector(".rm-opt-page-num");ve==null||ve.addEventListener("mousedown",pe=>{pe.stopPropagation(),pe.preventDefault()}),ve==null||ve.addEventListener("click",pe=>{pe.stopPropagation(),be.classList.remove("is-open"),ce&&(ce.textContent="▼"),Pf()});const we=se.querySelector(".rm-opt-remove");we==null||we.addEventListener("mousedown",pe=>{pe.stopPropagation(),pe.preventDefault()}),we==null||we.addEventListener("click",pe=>{pe.stopPropagation(),be.classList.remove("is-open"),ce&&(ce.textContent="▼"),Ff()})}const ke=ge=>{const ue=ge.target;if(!ue||V.contains(ue)||se&&se.contains(ue)||ue.closest(".rm-google-docs-header-bar, .rm-options-dropdown, .fixed.z-50")||Wt.value||Kt.value)return;oe.contentEditable="false",V.classList.remove("rm-header-active"),se&&se.remove(),Qn.value=!1;const ce=Array.from(document.querySelectorAll(".rm-page-header")).indexOf(V),me=ce===0,ve=(ce+1)%2===0;Ke.value&&me?qt.value=oe.innerHTML:Xe.value&&ve?ai.value=oe.innerHTML:g.value=oe.innerHTML,St(),K(),document.removeEventListener("mousedown",ke)};setTimeout(()=>{document.addEventListener("mousedown",ke)},50);const Oe=ge=>{const ue=ge.relatedTarget;if(se&&(se.contains(ue)||ue!=null&&ue.closest(".rm-google-docs-header-bar, .rm-options-dropdown"))||Wt.value||Kt.value)return;oe.contentEditable="false",V.classList.remove("rm-header-active"),se&&se.remove(),Qn.value=!1;const ce=Array.from(document.querySelectorAll(".rm-page-header")).indexOf(V),me=ce===0,ve=(ce+1)%2===0;Ke.value&&me?qt.value=oe.innerHTML:Xe.value&&ve?ai.value=oe.innerHTML:g.value=oe.innerHTML,St(),K(),oe.removeEventListener("blur",Oe),document.removeEventListener("mousedown",ke)};oe.addEventListener("blur",Oe)},er=()=>{var N,A,V,oe;O.value&&(rn.value=x.value||((A=(N=O.value.storage.PaginationPlus)==null?void 0:N.appliedConfig)==null?void 0:A.footerLeft)||"",an.value=w.value||((oe=(V=O.value.storage.PaginationPlus)==null?void 0:V.appliedConfig)==null?void 0:oe.footerRight)||"",Wn.value=!0)},Uf=()=>{O.value&&(x.value=rn.value,w.value=an.value,St(),K(),Wn.value=!1)},mt=(N,...A)=>{if(!O.value)return;const V=O.value.commands[N];typeof V=="function"&&V(...A),O.value.commands.focus()},Xt=(N,...A)=>{if(!O.value)return;const V=q.value[N];if(typeof V=="function")V(...A);else{mt(N,...A);return}O.value.commands.focus()},ks=N=>{const A=N==="header"?k:w;A.value.includes("{page}")||(A.value=A.value?`${A.value} {page}`:"{page}"),St(),K()},ws=()=>{if(!O.value)return null;const{state:N}=O.value;if(N.selection.empty)return null;const A=N.selection.content(),V=document.createElement("div");return V.appendChild(zn.fromSchema(N.schema).serializeFragment(A.content)),{html:V.innerHTML,text:A.content.textBetween(0,A.content.size,`
|
|
15076
15076
|
|
|
15077
|
-
`," ")}},Hf=async()=>{const N=ws();if(!N||!O.value)return;await Ql(N.text,N.html)&&O.value.chain().focus().deleteSelection().run()},jf=async()=>{var A;const N=ws();N&&(await Ql(N.text,N.html),(A=O.value)==null||A.commands.focus())},qf=async()=>{if(!O.value)return;const N=await KS();if(N){const V=Ee.sanitizePastedHTML(N);try{O.value.chain().focus().insertContent(V).run()}catch(oe){console.error("[DocsEditor] paste HTML failed, falling back to plain text:",oe);const se=await Qa();if(se)try{O.value.chain().focus().insertContent(se).run()}catch(ke){console.error("[DocsEditor] paste plain text also failed:",ke)}}return}const A=await Qa();if(A)try{O.value.chain().focus().insertContent(A).run()}catch(V){console.error("[DocsEditor] paste plain text failed:",V)}},_s=async()=>{if(!O.value)return;const N=await Qa();N&&O.value.chain().focus().insertContent(N).run()},$f=()=>{if(!O.value)return;const{state:N}=O.value;if(N.selection.empty){const{from:A,to:V}=N.selection;V<N.doc.content.size&&O.value.chain().focus().deleteRange({from:A,to:V+1}).run()}else O.value.chain().focus().deleteSelection().run()},Ss=N=>{var A;if(N.key==="Escape"&&I.value){I.value=!1;return}!(N.metaKey||N.ctrlKey)||!N.shiftKey||(A=O.value)!=null&&A.view.dom.contains(N.target)&&(N.key.toLowerCase()==="v"?(N.preventDefault(),_s()):N.key.toLowerCase()==="h"&&(N.preventDefault(),Kn.value=!0))};s.onMounted(()=>document.addEventListener("keydown",Ss)),s.onUnmounted(()=>document.removeEventListener("keydown",Ss));const Cs={undo:()=>mt("undo"),redo:()=>mt("redo"),"select-all":()=>mt("selectAll"),cut:()=>{Hf()},copy:()=>{jf()},paste:()=>{qf()},"paste-without-formatting":()=>{_s()},delete:()=>$f(),bold:()=>mt("toggleBold"),italic:()=>mt("toggleItalic"),underline:()=>mt("toggleUnderline"),heading1:()=>mt("toggleHeading",{level:1}),heading2:()=>mt("toggleHeading",{level:2}),heading3:()=>mt("toggleHeading",{level:3}),"align-left":()=>Xt("alignLeft"),"align-center":()=>Xt("alignCenter"),"align-right":()=>Xt("alignRight"),"align-justify":()=>Xt("alignJustify"),"bullet-list":()=>mt("toggleBulletList"),"numbered-list":()=>mt("toggleOrderedList"),"task-list":()=>Xt("toggleTaskList"),"horizontal-line":()=>mt("setHorizontalRule"),"page-numbers-header":()=>ks("header"),"page-numbers-footer":()=>ks("footer"),"clear-formatting":()=>{O.value&&(O.value.chain().unsetAllMarks().clearNodes().run(),mt("setTextAlign","left"))},"insert-image":()=>Xt("insertImage"),"insert-table":()=>Xt("insertTable",{rows:3,cols:3,withHeaderRow:!0}),"insert-code":()=>Xt("toggleCodeBlock"),"insert-toc":()=>Xt("insertToc")};let Wf=N=>{if(N==="page-setup")Df();else if(N==="print")Es();else if(N==="version-history")tr("history");else if(N==="details")Oa.value=!0;else if(N==="email")Aa.value=!0;else if(N==="find-replace")Kn.value=!0;else if(N==="insert-link")xs();else if(N==="security")n("share");else if(N==="insert-header")Yn();else if(N==="insert-footer")er();else if(N==="toggle-pageless")Pn(!p.value);else if(N==="toggle-left-sidebar")tr("toc");else if(N==="toggle-ruler")F.value=!F.value;else if(N==="toggle-focus-mode")I.value=!I.value,I.value&&(z.value=null);else if(N==="insert-footnote"){if(!O.value)return;const{state:A,view:V}=O.value,oe=A.schema.nodes.footnote;if(!oe){console.error("[DocsEditor] footnote node type not registered in schema");return}const se=A.selection.head,ke=oe.create({content:""}),Oe=A.tr.insert(se,ke);V.dispatch(Oe),V.focus(),setTimeout(()=>{xi();const ge=document.querySelectorAll(".docs-footnote-item-text"),ue=ge[ge.length-1];ue&&(ue.scrollIntoView({behavior:"smooth",block:"nearest"}),ue.focus())},160)}else Cs[N]?Cs[N]():n("menu-click",N)},tr=N=>{z.value=z.value===N?null:N},Es=()=>window.print();const Gf=(N,A)=>{if(!O.value)return;const V=O.value.view;V.state.doc.descendants((oe,se)=>{if(oe.type.name==="footnote"&&V.nodeDOM(se)===N)return V.dispatch(V.state.tr.setNodeMarkup(se,void 0,{content:A})),!1})},xi=()=>{var ge;if(!O.value||!ee.value)return;const N=O.value.view.dom,A=N.querySelector("[data-rm-pagination]");if(!A)return;const V=ue=>{var me,ve,we;const be=document.createElement("div");if(be.className="docs-footnote-item-text",ue.hasAttribute("data-footnote-source-id")){const pe=ue.getAttribute("data-citation-id")??"",_e=(ve=(me=O.value)==null?void 0:me.storage)==null?void 0:ve.citation,Le=((we=_e==null?void 0:_e.engine)==null?void 0:we.renderCluster(pe))??"";return be.classList.add("docs-footnote-item-text--citation"),Le?be.innerHTML=Le:be.setAttribute("data-empty","true"),be}const ce=ue.getAttribute("data-footnote-content")??"";return be.contentEditable="true",be.textContent=ce,ce||be.setAttribute("data-empty","true"),be.addEventListener("input",()=>{be.removeAttribute("data-empty"),be.textContent||be.setAttribute("data-empty","true")}),be.addEventListener("blur",()=>{var _e;const pe=((_e=be.textContent)==null?void 0:_e.trim())??"";Gf(ue,pe)}),be},oe=Array.from(A.querySelectorAll(".rm-page-break")),se=Array.from(N.querySelectorAll(".docs-footnote-ref"));if(oe.length===0){se.forEach((ve,we)=>{ve.textContent=String(we+1)});const ue=G.value;if(!ue||((ge=ue.querySelector(".docs-pageless-footnotes"))==null||ge.remove(),se.length===0))return;const be=ue.querySelector(".docs-pageless-footnotes");if(be!=null&&be.querySelector(".docs-footnote-item-text:focus"))return;const ce=document.createElement("div");ce.className="docs-page-footnotes docs-pageless-footnotes";const me=document.createElement("div");me.className="docs-footnotes-sep",ce.appendChild(me),se.forEach((ve,we)=>{const pe=document.createElement("div");pe.className="docs-footnote-item";const _e=document.createElement("sup");_e.className="docs-footnote-item-num",_e.textContent=String(we+1);const Le=V(ve);ve.dataset.footnoteItemId=`fn-pageless-${we}`,pe.id=`fn-pageless-${we}`,pe.appendChild(_e),pe.appendChild(Le),ce.appendChild(pe)}),ue.appendChild(ce);return}const ke=new Map;oe.forEach((ue,be)=>ke.set(be,[])),se.forEach(ue=>{const be=ue.getBoundingClientRect().top;let ce=oe.length-1;for(let me=0;me<oe.length-1;me++){const ve=oe[me].querySelector(".breaker");if(ve&&be<ve.getBoundingClientRect().top){ce=me;break}}ke.get(ce).push(ue)});let Oe=1;oe.forEach((ue,be)=>{const ce=ke.get(be)??[],me=Oe;Oe+=ce.length,ce.forEach((Le,qe)=>{Le.textContent=String(me+qe)});const ve=ue.querySelector(".docs-page-footnotes");if(ve!=null&&ve.querySelector(".docs-footnote-item-text:focus")||(ve==null||ve.remove(),ce.length===0))return;const we=document.createElement("div");we.className="docs-page-footnotes";const pe=document.createElement("div");pe.className="docs-footnotes-sep",we.appendChild(pe),ce.forEach((Le,qe)=>{const vt=document.createElement("div");vt.className="docs-footnote-item";const Mt=document.createElement("sup");Mt.className="docs-footnote-item-num",Mt.textContent=String(me+qe);const Kf=V(Le);Le.dataset.footnoteItemId=`fn-${be}-${qe}`,vt.id=`fn-${be}-${qe}`,vt.appendChild(Mt),vt.appendChild(Kf),we.appendChild(vt)});const _e=ue.querySelector(".breaker");_e?_e.insertBefore(we,_e.firstChild):ue.appendChild(we)})};return s.watch(ee,N=>{!N||!O.value||O.value.view.dom.addEventListener("click",A=>{const V=A.target.closest(".docs-footnote-ref");if(!V)return;A.preventDefault(),A.stopPropagation();const oe=V.dataset.footnoteItemId;if(!oe)return;const se=document.getElementById(oe),ke=se==null?void 0:se.querySelector(".docs-footnote-item-text");if(ke){ke.scrollIntoView({behavior:"smooth",block:"nearest"}),ke.focus();const Oe=document.createRange();Oe.selectNodeContents(ke),Oe.collapse(!1);const ge=window.getSelection();ge==null||ge.removeAllRanges(),ge==null||ge.addRange(Oe)}})}),s.watch(ee,N=>{var V;if(!N||!O.value)return;setTimeout(xi,150),O.value.on("update",()=>{setTimeout(xi,60)}),O.value.on("selectionUpdate",()=>{setTimeout(xi,100)});const A=O.value.storage.citation;(V=A==null?void 0:A.engine)==null||V.onChange(()=>{setTimeout(xi,30)}),window.addEventListener("resize",xi)}),(N,A)=>(s.openBlock(),s.createElementBlock("div",XS,[I.value?s.createCommentVNode("",!0):(s.openBlock(),s.createBlock(_c,{key:0,title:e.title,editable:e.editable,collaborators:e.collaborators,starred:e.starred,"user-name":e.userName,"user-avatar":e.userAvatar,pageless:p.value,"outline-open":z.value==="toc","show-ruler":F.value,"focus-mode":I.value,onMenuClick:s.unref(Wf),onBack:A[0]||(A[0]=V=>N.$emit("back")),"onUpdate:title":A[1]||(A[1]=V=>N.$emit("update:title",V)),onToggleStar:A[2]||(A[2]=V=>N.$emit("toggle-star")),onExport:A[3]||(A[3]=V=>N.$emit("export",V)),onShare:A[4]||(A[4]=V=>N.$emit("share"))},{actions:s.withCtx(()=>[s.renderSlot(N.$slots,"header-actions",{},void 0,!0)]),"overflow-actions":s.withCtx(V=>[s.renderSlot(N.$slots,"overflow-actions",s.normalizeProps(s.guardReactiveProps(V)),void 0,!0)]),"user-menu":s.withCtx(V=>[s.renderSlot(N.$slots,"user-menu",s.normalizeProps(s.guardReactiveProps(V)),void 0,!0)]),_:3},8,["title","editable","collaborators","starred","user-name","user-avatar","pageless","outline-open","show-ruler","focus-mode","onMenuClick"])),I.value?s.createCommentVNode("",!0):(s.openBlock(),s.createBlock(Sc,{key:1,actions:s.unref(q),plugins:e.plugins,editor:s.unref(O),"active-sidebar":z.value,onToggleSidebar:s.unref(tr),onPrint:s.unref(Es)},null,8,["actions","plugins","editor","active-sidebar","onToggleSidebar","onPrint"])),F.value&&!I.value?(s.openBlock(),s.createBlock(Bh,{key:2,"layout-options":m.value},null,8,["layout-options"])):s.createCommentVNode("",!0),I.value?(s.openBlock(),s.createElementBlock("button",{key:3,type:"button",class:"fixed right-4 top-4 z-50 flex h-11 w-11 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 shadow-md transition-colors hover:bg-slate-100 dark:border-white/10 dark:bg-[#0e1525] dark:text-slate-300 dark:hover:bg-white/5",title:s.unref(o)("header.focusMode"),"aria-label":s.unref(o)("header.focusMode"),onClick:A[5]||(A[5]=V=>I.value=!1)},[s.createVNode(s.unref(jp),{class:"h-5 w-5"})],8,JS)):s.createCommentVNode("",!0),s.createVNode(Cc,{visible:S.value,actions:s.unref(q),position:M.value,editor:s.unref(O)},null,8,["visible","actions","position","editor"]),s.createVNode(cc,{editor:s.unref(O),commands:Z.value},null,8,["editor","commands"]),s.createElementVNode("div",ZS,[s.createVNode(RS,{"is-open":Kn.value,editor:s.unref(O),onClose:A[6]||(A[6]=V=>Kn.value=!1)},null,8,["is-open","editor"]),z.value==="toc"?(s.openBlock(),s.createBlock(Nc,{key:0,editor:s.unref(O),onClose:A[7]||(A[7]=V=>z.value=null)},null,8,["editor"])):(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:"absolute left-4 top-4 z-20 flex h-11 w-11 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 shadow-md transition-colors hover:bg-slate-100 dark:border-white/10 dark:bg-[#0e1525] dark:text-slate-300 dark:hover:bg-white/5",title:s.unref(o)("editor.showOutline"),onClick:A[8]||(A[8]=V=>s.unref(tr)("toc"))},[s.createVNode(s.unref(Up),{class:"h-5 w-5"})],8,QS)),s.createElementVNode("div",{ref_key:"scrollContainerRef",ref:jt,class:"docs-editor-scroll relative flex flex-1 overflow-auto px-4 py-6 bg-slate-100 dark:bg-[#02040a]",onScroll:At},[F.value&&!I.value?(s.openBlock(),s.createBlock(Fh,{key:0,"layout-options":m.value},null,8,["layout-options"])):s.createCommentVNode("",!0),s.createElementVNode("div",YS,[s.createElementVNode("div",eC,[h.value?(s.openBlock(),s.createBlock(lp,{key:0,data:s.unref(tn),"is-ready":s.unref(Pi)},null,8,["data","is-ready"])):s.createCommentVNode("",!0),s.unref(ee)?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",{key:1,class:"absolute inset-0 z-10 flex flex-col items-center justify-center bg-white dark:bg-[#0e1525]/60 backdrop-blur-[2px] gap-3 rounded-lg","aria-label":s.unref(o)("editor.loadingDocument")},null,8,tC)),s.createElementVNode("div",{ref_key:"editorRef",ref:G,class:s.normalizeClass(["docs-editor__paper outline-none text-slate-800 dark:text-[#e2e8f0]",{"opacity-40":!s.unref(ee)}])},null,2)])])],544),z.value==="references"?(s.openBlock(),s.createBlock(Og,{key:2,sources:D.value,"active-style":U.value,"picker-mode":re.value,"can-import":L.value,importing:tt.value,"import-message":W.value,onClose:A[9]||(A[9]=V=>z.value=null),onInsert:Ae,onCreate:fe,onUpdate:Ce,onRemove:pt,"onUpdate:style":Rt,onImportDoi:X,onImportBibliography:Te},null,8,["sources","active-style","picker-mode","can-import","importing","import-message"])):s.createCommentVNode("",!0),z.value==="comments"?(s.openBlock(),s.createBlock(Of,{key:3,comments:i.comments,"selected-text-snippet":i.selectedTextSnippet,"selected-text-index":i.selectedTextIndex,onClose:A[10]||(A[10]=V=>z.value=null),onAddComment:A[11]||(A[11]=(V,oe,se)=>N.$emit("add-comment",V,oe,se)),onAddReply:A[12]||(A[12]=(V,oe)=>N.$emit("add-reply",V,oe)),onResolveComment:A[13]||(A[13]=V=>N.$emit("resolve-comment",V))},null,8,["comments","selected-text-snippet","selected-text-index"])):s.createCommentVNode("",!0),z.value==="history"?(s.openBlock(),s.createBlock(Af,{key:4,snapshots:i.snapshots,"active-preview-index":i.activePreviewIndex,onSaveSnapshot:A[14]||(A[14]=V=>N.$emit("save-snapshot",V)),onRestoreSnapshot:A[15]||(A[15]=V=>N.$emit("restore-snapshot",V)),onPreviewSnapshot:A[16]||(A[16]=V=>N.$emit("preview-snapshot",V))},null,8,["snapshots","active-preview-index"])):s.createCommentVNode("",!0),z.value==="ai"?(s.openBlock(),s.createBlock(Nf,{key:5,editor:s.unref(O),"ai-stream":i.aiStream,"ai-draft":i.aiDraft,onClose:A[17]||(A[17]=V=>z.value=null)},null,8,["editor","ai-stream","ai-draft"])):s.createCommentVNode("",!0)]),I.value?s.createCommentVNode("",!0):(s.openBlock(),s.createBlock(Ec,{key:4,"connection-state":e.connectionState,"saving-status":B.value,"last-saved":$.value,"word-count":T.value,"char-count":H.value,"page-count":dt.value,"current-page":Re.value,"page-size":f.value,"page-sizes":s.unref(cn.PAGE_SIZES),pageless:p.value,"onUpdate:pageSize":A[18]||(A[18]=V=>{f.value=V,n("update:pageSize",V)})},null,8,["connection-state","saving-status","last-saved","word-count","char-count","page-count","current-page","page-size","page-sizes","pageless"])),Wn.value?(s.openBlock(),s.createElementBlock("div",iC,[s.createElementVNode("div",nC,[s.createElementVNode("h2",rC,s.toDisplayString(s.unref(o)("editor.headerFooter.footer")),1),s.createElementVNode("div",aC,[s.createElementVNode("div",oC,[s.createElementVNode("h3",sC,s.toDisplayString(s.unref(o)("editor.headerFooter.footer")),1),s.createElementVNode("button",{type:"button",class:"text-[11px] text-red-500 hover:text-red-600 font-medium transition-colors",onClick:A[19]||(A[19]=V=>{rn.value="",an.value=""})},s.toDisplayString(s.unref(o)("editor.headerFooter.clear")),1)]),s.createElementVNode("div",lC,[s.createElementVNode("div",null,[s.createElementVNode("label",cC,s.toDisplayString(s.unref(o)("editor.headerFooter.left")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[20]||(A[20]=V=>rn.value=V),type:"text",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700",placeholder:s.unref(o)("editor.headerFooter.footerLeftPlaceholder")},null,8,uC),[[s.vModelText,rn.value]])]),s.createElementVNode("div",null,[s.createElementVNode("label",fC,s.toDisplayString(s.unref(o)("editor.headerFooter.right")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[21]||(A[21]=V=>an.value=V),type:"text",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700",placeholder:s.unref(o)("editor.headerFooter.footerRightPlaceholder")},null,8,pC),[[s.vModelText,an.value]])])])]),s.createElementVNode("div",dC,s.toDisplayString(s.unref(o)("editor.headerFooter.variableInfo")),1),s.createElementVNode("div",mC,[s.createElementVNode("button",{type:"button",class:"rounded-md px-3 py-1.5 text-xs font-semibold hover:bg-slate-100 dark:hover:bg-white/5",onClick:A[22]||(A[22]=V=>Wn.value=!1)},s.toDisplayString(s.unref(o)("editor.headerFooter.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-md bg-blue-600 px-3 py-1.5 text-xs font-semibold text-white hover:bg-blue-700",onClick:Uf},s.toDisplayString(s.unref(o)("editor.headerFooter.save")),1)])])])):s.createCommentVNode("",!0),Wt.value?(s.openBlock(),s.createElementBlock("div",hC,[s.createElementVNode("div",bC,[s.createElementVNode("h2",gC,s.toDisplayString(s.unref(o)("editor.headerFooter.headerFooterFormatTitle")),1),s.createElementVNode("div",vC,[s.createElementVNode("h3",yC,s.toDisplayString(s.unref(o)("editor.headerFooter.marginSection")),1),s.createElementVNode("div",xC,[s.createElementVNode("div",null,[s.createElementVNode("label",kC,s.toDisplayString(s.unref(o)("editor.headerFooter.headerTopMargin")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[23]||(A[23]=V=>Vi.value=V),type:"number",step:"0.01",class:"w-full rounded-lg border border-slate-300 dark:border-slate-700 bg-white dark:bg-[#1a2332] px-3.5 py-2 text-sm text-slate-800 dark:text-slate-100 focus:border-blue-600 focus:ring-2 focus:ring-blue-500/20 focus:outline-none transition-all"},null,512),[[s.vModelText,Vi.value]])]),s.createElementVNode("div",null,[s.createElementVNode("label",wC,s.toDisplayString(s.unref(o)("editor.headerFooter.footerBottomMargin")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[24]||(A[24]=V=>lt.value=V),type:"number",step:"0.01",class:"w-full rounded-lg border border-slate-300 dark:border-slate-700 bg-white dark:bg-[#1a2332] px-3.5 py-2 text-sm text-slate-800 dark:text-slate-100 focus:border-blue-600 focus:ring-2 focus:ring-blue-500/20 focus:outline-none transition-all"},null,512),[[s.vModelText,lt.value]])])])]),s.createElementVNode("div",_C,[s.createElementVNode("h3",SC,s.toDisplayString(s.unref(o)("editor.headerFooter.layoutSection")),1),s.createElementVNode("div",CC,[s.createElementVNode("label",EC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[25]||(A[25]=V=>Je.value=V),type:"checkbox",class:"w-4 h-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelCheckbox,Je.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.differentFirstPage")),1)]),s.createElementVNode("label",NC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[26]||(A[26]=V=>Gt.value=V),type:"checkbox",class:"w-4 h-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelCheckbox,Gt.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.differentOddEven")),1)])])]),s.createElementVNode("div",OC,[s.createElementVNode("button",{type:"button",class:"rounded-full px-5 py-2 text-xs font-semibold text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/40 transition-colors",onClick:A[27]||(A[27]=V=>Wt.value=!1)},s.toDisplayString(s.unref(o)("editor.headerFooter.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-full bg-blue-600 hover:bg-blue-700 px-6 py-2 text-xs font-semibold text-white shadow-md transition-colors",onClick:Bf},s.toDisplayString(s.unref(o)("editor.headerFooter.apply")),1)])])])):s.createCommentVNode("",!0),Kt.value?(s.openBlock(),s.createElementBlock("div",AC,[s.createElementVNode("div",TC,[s.createElementVNode("h2",MC,s.toDisplayString(s.unref(o)("editor.headerFooter.pageNumberTitle")),1),s.createElementVNode("div",zC,[s.createElementVNode("h3",IC,s.toDisplayString(s.unref(o)("editor.headerFooter.positionSection")),1),s.createElementVNode("div",DC,[s.createElementVNode("label",RC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[28]||(A[28]=V=>Fi.value=V),type:"radio",value:"header",class:"w-4 h-4 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelRadio,Fi.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.positionHeader")),1)]),s.createElementVNode("label",LC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[29]||(A[29]=V=>Fi.value=V),type:"radio",value:"footer",class:"w-4 h-4 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelRadio,Fi.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.positionFooter")),1)]),s.createElementVNode("label",BC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[30]||(A[30]=V=>qn.value=V),type:"checkbox",class:"w-4 h-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelCheckbox,qn.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.showOnFirstPage")),1)])])]),s.createElementVNode("div",PC,[s.createElementVNode("h3",VC,s.toDisplayString(s.unref(o)("editor.headerFooter.numberingSection")),1),s.createElementVNode("div",FC,[s.createElementVNode("div",UC,[s.createElementVNode("label",HC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[31]||(A[31]=V=>Ui.value=V),type:"radio",value:"startAt",class:"w-4 h-4 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelRadio,Ui.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.startAt")),1)]),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[32]||(A[32]=V=>$n.value=V),type:"number",min:"1",class:"w-16 rounded-md border border-slate-300 dark:border-slate-700 bg-white dark:bg-[#1a2332] px-2.5 py-1 text-xs text-slate-800 dark:text-slate-100 focus:border-blue-600 focus:outline-none"},null,512),[[s.vModelText,$n.value]])]),s.createElementVNode("label",jC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[33]||(A[33]=V=>Ui.value=V),type:"radio",value:"continue",class:"w-4 h-4 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelRadio,Ui.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.continueFromPrevious")),1)])])]),s.createElementVNode("div",qC,[s.createElementVNode("button",{type:"button",class:"rounded-full px-5 py-2 text-xs font-semibold text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/40 transition-colors",onClick:A[34]||(A[34]=V=>Kt.value=!1)},s.toDisplayString(s.unref(o)("editor.headerFooter.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-full bg-blue-600 hover:bg-blue-700 px-6 py-2 text-xs font-semibold text-white shadow-md transition-colors",onClick:Vf},s.toDisplayString(s.unref(o)("editor.headerFooter.apply")),1)])])])):s.createCommentVNode("",!0),s.createVNode(Mf,{"is-open":Aa.value,"document-title":i.title,"share-url":i.shareUrl,onClose:A[35]||(A[35]=V=>Aa.value=!1),onCopyLink:A[36]||(A[36]=V=>n("share"))},null,8,["is-open","document-title","share-url"]),s.createVNode(Tf,{"is-open":Oa.value,meta:i.documentMeta,onClose:A[37]||(A[37]=V=>Oa.value=!1)},null,8,["is-open","meta"]),s.createVNode(GS,{"is-open":on.value,"initial-text":Xn.value,"initial-url":Ta.value,"is-editing":Jn.value,onApply:zf,onRemove:If,onClose:A[38]||(A[38]=V=>on.value=!1)},null,8,["is-open","initial-text","initial-url","is-editing"]),Gn.value?(s.openBlock(),s.createElementBlock("div",$C,[s.createElementVNode("div",WC,[s.createElementVNode("h2",GC,s.toDisplayString(s.unref(o)("editor.pageSetup.title")),1),s.createElementVNode("div",KC,[s.createElementVNode("label",XC,s.toDisplayString(s.unref(o)("editor.pageSetup.paperSize")),1),s.withDirectives(s.createElementVNode("select",{"onUpdate:modelValue":A[39]||(A[39]=V=>Zn.value=V),class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-2 text-xs focus:outline-none dark:border-slate-700"},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(cn.PAGE_SIZES),V=>(s.openBlock(),s.createElementBlock("option",{key:V.id,value:V.id},s.toDisplayString(V.name),9,JC))),128))],512),[[s.vModelSelect,Zn.value]])]),s.createElementVNode("div",ZC,[s.createElementVNode("label",QC,s.toDisplayString(s.unref(o)("editor.pageSetup.orientation")),1),s.createElementVNode("div",YC,[s.createElementVNode("button",{type:"button",class:s.normalizeClass(["flex-1 rounded-md border px-3 py-2 text-xs font-medium transition-colors",Hi.value==="portrait"?"border-cyan-500 bg-cyan-50 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300":"border-slate-200 hover:bg-slate-50 dark:border-slate-700 dark:hover:bg-white/5"]),onClick:A[40]||(A[40]=V=>Hi.value="portrait")},s.toDisplayString(s.unref(o)("editor.pageSetup.portrait")),3),s.createElementVNode("button",{type:"button",class:s.normalizeClass(["flex-1 rounded-md border px-3 py-2 text-xs font-medium transition-colors",Hi.value==="landscape"?"border-cyan-500 bg-cyan-50 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300":"border-slate-200 hover:bg-slate-50 dark:border-slate-700 dark:hover:bg-white/5"]),onClick:A[41]||(A[41]=V=>Hi.value="landscape")},s.toDisplayString(s.unref(o)("editor.pageSetup.landscape")),3)])]),s.createElementVNode("div",e2,[s.createElementVNode("label",t2,s.toDisplayString(s.unref(o)("editor.pageSetup.margins")),1),s.createElementVNode("div",i2,[s.createElementVNode("div",null,[s.createElementVNode("label",n2,s.toDisplayString(s.unref(o)("editor.pageSetup.top")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[42]||(A[42]=V=>Bt.value.top=V),type:"number",min:"0",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700"},null,512),[[s.vModelText,Bt.value.top,void 0,{number:!0}]])]),s.createElementVNode("div",null,[s.createElementVNode("label",r2,s.toDisplayString(s.unref(o)("editor.pageSetup.bottom")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[43]||(A[43]=V=>Bt.value.bottom=V),type:"number",min:"0",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700"},null,512),[[s.vModelText,Bt.value.bottom,void 0,{number:!0}]])]),s.createElementVNode("div",null,[s.createElementVNode("label",a2,s.toDisplayString(s.unref(o)("editor.pageSetup.left")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[44]||(A[44]=V=>Bt.value.left=V),type:"number",min:"0",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700"},null,512),[[s.vModelText,Bt.value.left,void 0,{number:!0}]])]),s.createElementVNode("div",null,[s.createElementVNode("label",o2,s.toDisplayString(s.unref(o)("editor.pageSetup.right")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[45]||(A[45]=V=>Bt.value.right=V),type:"number",min:"0",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700"},null,512),[[s.vModelText,Bt.value.right,void 0,{number:!0}]])])])]),s.createElementVNode("div",s2,[s.createElementVNode("button",{type:"button",class:"rounded-md px-3 py-1.5 text-xs font-semibold hover:bg-slate-100 dark:hover:bg-white/5",onClick:A[46]||(A[46]=V=>Gn.value=!1)},s.toDisplayString(s.unref(o)("editor.pageSetup.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-md bg-blue-600 px-3 py-1.5 text-xs font-semibold text-white hover:bg-blue-700",onClick:Rf},s.toDisplayString(s.unref(o)("editor.pageSetup.apply")),1)])])])):s.createCommentVNode("",!0)]))}}),c2=Bo(l2,[["__scopeId","data-v-a81be603"]]),u2={class:"docs-editor-pages flex flex-col items-center gap-10"},f2=["data-page-index"],p2=["data-node-type","data-from","data-to"],d2=["innerHTML"],m2={key:1,class:"docs-editor-page__block-fallback flex justify-between text-sm text-slate-700"},h2={class:"docs-editor-page__block-type font-medium"},b2={class:"docs-editor-page__block-range text-slate-500"},g2=s.defineComponent({__name:"PageView",props:{pages:{},editor:{default:null},layoutOptions:{default:()=>({pageWidth:794,pageHeight:1123,margins:{top:96,bottom:96,left:96,right:96}})},isPageless:{type:Boolean,default:!1},pageColor:{default:"#ffffff"}},setup(e){const t=e,i=s.ref(0),n=()=>{i.value++};s.watch(()=>t.editor,(d,h)=>{h&&typeof h.off=="function"&&h.off("update",n),d&&typeof d.on=="function"&&d.on("update",n)},{immediate:!0}),s.onUnmounted(()=>{t.editor&&typeof t.editor.off=="function"&&t.editor.off("update",n)});const r=s.computed(()=>{var d,h;return((h=(d=t.editor)==null?void 0:d.view)==null?void 0:h.dom)??null}),a=s.computed(()=>{var d,h,v;return{pageHeight:((d=t.layoutOptions)==null?void 0:d.pageHeight)??1123,pageWidth:((h=t.layoutOptions)==null?void 0:h.pageWidth)??794,margins:((v=t.layoutOptions)==null?void 0:v.margins)??{top:96,bottom:96,left:96,right:96},maxCharsPerPage:0}}),o=s.computed(()=>{const{pageWidth:d,pageHeight:h,margins:v}=a.value;return t.isPageless?{width:`${d}px`,minHeight:"auto",height:"auto",paddingTop:`${v.top}px`,paddingBottom:`${v.bottom}px`,paddingLeft:`${v.left}px`,paddingRight:`${v.right}px`,backgroundColor:t.pageColor,boxShadow:"none",border:"none",borderRadius:"0"}:{width:`${d}px`,height:`${h}px`,paddingTop:`${v.top}px`,paddingBottom:`${v.bottom}px`,paddingLeft:`${v.left}px`,paddingRight:`${v.right}px`}}),l=()=>r.value?Array.from(r.value.children).filter(d=>d instanceof HTMLElement):[],c=d=>l().find(v=>{const b=parseInt(v.getAttribute("data-from")??"-1",10),y=parseInt(v.getAttribute("data-to")??"-1",10);return b>=0&&y>=b&&b<=d.from&&y>=d.to})??null,f=d=>{if(!t.editor||!r.value||!c(d))return null;try{const v=t.editor.view,b=v.domAtPos(d.from),y=v.domAtPos(d.to);if(!b||!y)return null;const g=document.createRange();g.setStart(b.node,b.offset),g.setEnd(y.node,y.offset);const k=g.cloneContents(),x=document.createElement("div");return x.appendChild(k),x.innerHTML}catch{return null}},p=s.computed(()=>{i.value;const d=new Map;if(!t.editor||!r.value)return d;for(const h of t.pages)for(const v of h.blocks){const b=`${v.from}-${v.to}-${v.nodeType}`;if(d.has(b))continue;const y=f(v);y!==null&&d.set(b,y)}return d}),m=d=>p.value.get(`${d.from}-${d.to}-${d.nodeType}`)??null;return(d,h)=>(s.openBlock(),s.createElementBlock("div",u2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(e.pages,(v,b)=>(s.openBlock(),s.createElementBlock("div",{key:`${b}-${v.from}-${v.to}`,class:s.normalizeClass(["docs-editor-page tiptap ProseMirror relative box-border overflow-hidden text-slate-800 dark:text-[#e2e8f0]",e.isPageless?"":"editor-page-shadow rounded-lg border border-slate-200/70 bg-white dark:border-white/5 dark:bg-[#0a0f1e]"]),"data-page-index":b,style:s.normalizeStyle(o.value)},[s.createElementVNode("div",{class:"docs-editor-page__blocks flex flex-col",style:s.normalizeStyle(e.isPageless?{}:{height:"100%",overflow:"hidden"})},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(v.blocks,y=>(s.openBlock(),s.createElementBlock("div",{key:`${y.from}-${y.to}`,class:"docs-editor-page__block","data-node-type":y.nodeType,"data-from":y.from,"data-to":y.to},[m(y)!==null?(s.openBlock(),s.createElementBlock("div",{key:0,class:"docs-editor-page__block-content",innerHTML:m(y)},null,8,d2)):(s.openBlock(),s.createElementBlock("div",m2,[s.createElementVNode("span",h2,s.toDisplayString(y.nodeType),1),s.createElementVNode("span",b2,s.toDisplayString(y.from)+"–"+s.toDisplayString(y.to),1)]))],8,p2))),128))],4)],14,f2))),128))]))}}),v2={class:"docs-editor-left-sidebar flex w-14 flex-shrink-0 flex-col items-center border-r border-slate-200 bg-slate-50/50 py-3 dark:border-slate-800 dark:bg-[#080d1a] md:w-64 md:items-stretch md:px-3"},y2={class:"mb-4 flex items-center justify-between px-1"},x2=["title"],k2={class:"hidden flex-col gap-4 md:flex"},w2={class:"flex items-center justify-between px-2"},_2={class:"text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wide"},S2=["title"],C2={class:"flex flex-col gap-1 pr-1"},E2=["onClick"],N2={class:"truncate"},O2={key:1,class:"flex flex-1 items-center gap-2 pr-6"},A2=["onBlur","onKeydown"],T2={class:"relative flex items-center"},M2=["onClick"],z2={key:1,class:"absolute right-0 top-6 z-50 w-28 rounded-lg border border-slate-200/80 bg-white py-1 shadow-lg dark:border-slate-700 dark:bg-slate-800 text-slate-700 dark:text-slate-200"},I2=["onClick"],D2=["disabled","onClick"],R2={class:"flex flex-col gap-1.5 px-2"},L2={class:"text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wide"},B2={key:0,class:"flex flex-col gap-1 mt-1"},P2=["onClick"],V2={key:1,class:"text-xs leading-relaxed text-slate-400 dark:text-slate-500 italic mt-1 font-sans"},F2={class:"flex flex-col gap-2 md:hidden"},U2=["title","onClick"],H2=s.defineComponent({__name:"DocumentTabsSidebar",props:{tabs:{default:()=>[{id:"tab-1",label:"Tab 1",active:!0}]},editor:{default:null},backTitle:{default:""}},emits:["collapse","add-tab","select-tab","delete-tab","rename-tab"],setup(e,{emit:t}){const{t:i}=at(),n=e,r=s.computed(()=>n.backTitle||i("common.cancel")),a=t,o=s.ref(null),l=s.ref(null),c=s.ref(""),f=k=>{l.value=k.id,c.value=k.label,o.value=null},p=k=>{c.value.trim()&&a("rename-tab",{id:k,label:c.value.trim()}),l.value=null},m=()=>{l.value=null},d=k=>{a("delete-tab",k),o.value=null},h=k=>{o.value=o.value===k?null:k},v=s.ref([]),b=()=>{if(!n.editor)return;const k=[];n.editor.state.doc.descendants((x,w)=>{if(x.type.name==="heading"){const C=x.attrs.level;(C===1||C===2||C===3)&&k.push({id:`heading-${w}`,text:x.textContent.trim()||i("documentTabs.untitledHeading").replace("{level}",String(C)),level:C,pos:w})}return!0}),v.value=k};let y=null;s.watch(()=>n.editor,k=>{if(y&&(y(),y=null),!k){v.value=[];return}b();const x=()=>{b()};k.on("update",x),y=()=>{k.off("update",x)}},{immediate:!0});const g=k=>{n.editor&&(n.editor.chain().focus().setTextSelection(k.pos).run(),setTimeout(()=>{var C;const x=document.querySelector(".docs-editor-scroll");if(!x)return;const w=x.querySelectorAll(".ProseMirror h1, .ProseMirror h2, .ProseMirror h3");for(const E of Array.from(w))if(((C=E.textContent)==null?void 0:C.trim())===k.text){E.scrollIntoView({behavior:"smooth",block:"center"});return}},50))};return(k,x)=>(s.openBlock(),s.createElementBlock("aside",v2,[s.createElementVNode("div",y2,[s.createElementVNode("button",{type:"button",class:"flex h-8 w-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-200/80 dark:text-slate-400 dark:hover:bg-slate-800/80",title:r.value,onClick:x[0]||(x[0]=w=>a("collapse"))},[s.createVNode(s.unref(vp),{class:"h-[18px] w-[18px]"})],8,x2)]),s.createElementVNode("div",k2,[s.createElementVNode("div",w2,[s.createElementVNode("span",_2,s.toDisplayString(s.unref(i)("documentTabs.documentTabs")),1),s.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-full text-slate-600 hover:bg-slate-200 dark:text-slate-400 dark:hover:bg-slate-800 transition-colors",title:s.unref(i)("documentTabs.addTab"),onClick:x[1]||(x[1]=w=>a("add-tab"))},[s.createVNode(s.unref(pi),{class:"h-4 w-4"})],8,S2)]),s.createElementVNode("div",C2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(e.tabs,w=>(s.openBlock(),s.createElementBlock("div",{key:w.id,class:s.normalizeClass(["group relative flex w-full items-center justify-between rounded-r-full py-1.5 pl-3 pr-2 text-left text-sm transition-all",[w.active?"bg-[#c2e7ff]/70 text-[#001d35] dark:bg-blue-950/40 dark:text-blue-200 font-medium":"text-slate-700 hover:bg-slate-200/40 dark:text-slate-300 dark:hover:bg-slate-800/30"]])},[l.value!==w.id?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"flex flex-1 items-center gap-2 truncate pr-6 text-left",onClick:C=>a("select-tab",w.id)},[s.createVNode(s.unref(Xi),{class:"h-4 w-4 flex-shrink-0 opacity-70"}),s.createElementVNode("span",N2,s.toDisplayString(w.label),1)],8,E2)):s.createCommentVNode("",!0),l.value===w.id?(s.openBlock(),s.createElementBlock("div",O2,[s.createVNode(s.unref(Xi),{class:"h-4 w-4 flex-shrink-0 opacity-70"}),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":x[2]||(x[2]=C=>c.value=C),type:"text",class:"flex-1 rounded border border-blue-400 bg-white px-1.5 py-0.5 text-xs text-slate-800 outline-none focus:ring-1 focus:ring-blue-400/50 dark:bg-slate-900 dark:text-slate-100",onBlur:C=>p(w.id),onKeydown:[s.withKeys(C=>p(w.id),["enter"]),s.withKeys(m,["esc"])],onClick:x[3]||(x[3]=s.withModifiers(()=>{},["stop"]))},null,40,A2),[[s.vModelText,c.value]])])):s.createCommentVNode("",!0),s.createElementVNode("div",T2,[l.value!==w.id?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:s.normalizeClass(["rounded-full p-1 text-slate-500 opacity-0 transition-opacity hover:bg-slate-200/70 group-hover:opacity-100 dark:hover:bg-slate-700/70",{"opacity-100":o.value===w.id}]),onClick:s.withModifiers(C=>h(w.id),["stop"])},[s.createVNode(s.unref(pc),{class:"h-3.5 w-3.5"})],10,M2)):s.createCommentVNode("",!0),o.value===w.id?(s.openBlock(),s.createElementBlock("div",z2,[s.createElementVNode("button",{type:"button",class:"flex w-full items-center px-3 py-1.5 text-xs hover:bg-slate-50 dark:hover:bg-slate-700/50",onClick:s.withModifiers(C=>f(w),["stop"])},s.toDisplayString(s.unref(i)("documentTabs.rename")),9,I2),s.createElementVNode("button",{type:"button",class:"flex w-full items-center px-3 py-1.5 text-xs text-red-600 dark:text-red-400 hover:bg-slate-50 dark:hover:bg-slate-700/50 disabled:opacity-40",disabled:e.tabs.length<=1,onClick:s.withModifiers(C=>d(w.id),["stop"])},s.toDisplayString(s.unref(i)("documentTabs.delete")),9,D2)])):s.createCommentVNode("",!0)])],2))),128))]),x[4]||(x[4]=s.createElementVNode("div",{class:"h-px bg-slate-200/80 dark:bg-slate-800 mx-2"},null,-1)),s.createElementVNode("div",R2,[s.createElementVNode("span",L2,s.toDisplayString(s.unref(i)("documentTabs.outline")),1),v.value.length>0?(s.openBlock(),s.createElementBlock("div",B2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(v.value,w=>(s.openBlock(),s.createElementBlock("button",{key:w.id,type:"button",class:s.normalizeClass(["w-full text-left text-xs text-slate-500 dark:text-slate-400 hover:text-slate-800 dark:hover:text-slate-200 py-1 transition-colors truncate",[w.level===2?"pl-3":"",w.level===3?"pl-6":""]]),onClick:C=>g(w)},s.toDisplayString(w.text),11,P2))),128))])):(s.openBlock(),s.createElementBlock("p",V2,s.toDisplayString(s.unref(i)("documentTabs.placeholder")),1))])]),s.createElementVNode("div",F2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.tabs,w=>(s.openBlock(),s.createElementBlock("button",{key:w.id,type:"button",class:s.normalizeClass(["flex h-8 w-8 items-center justify-center rounded-lg transition-colors",[w.active?"bg-blue-100 text-blue-600 dark:bg-blue-950/40 dark:text-blue-300":"text-slate-500 hover:bg-slate-200 dark:text-slate-400 dark:hover:bg-slate-800"]]),title:w.label,onClick:C=>a("select-tab",w.id)},[s.createVNode(s.unref(Xi),{class:"h-4 w-4"})],10,U2))),128))])]))}});Object.defineProperty(exports,"httpKeyStorage",{enumerable:!0,get:()=>Ee.httpKeyStorage});Object.defineProperty(exports,"localStorageKeyStorage",{enumerable:!0,get:()=>Ee.localStorageKeyStorage});Object.defineProperty(exports,"memoryKeyStorage",{enumerable:!0,get:()=>Ee.memoryKeyStorage});Object.defineProperty(exports,"openaiCompatibleProvider",{enumerable:!0,get:()=>Ee.openaiCompatibleProvider});Object.defineProperty(exports,"toAIStreamFn",{enumerable:!0,get:()=>Ee.toAIStreamFn});exports.AISidebar=Nf;exports.BubbleMenu=Cc;exports.CommentsSidebar=Of;exports.DetailsDialog=Tf;exports.DocsEditor=c2;exports.DocumentTabsSidebar=H2;exports.EditorToolbar=Sc;exports.EmailDialog=Mf;exports.HeaderBar=_c;exports.HistorySidebar=Af;exports.PageView=g2;exports.SlashMenu=cc;exports.StatusBar=Ec;exports.TOCSidebar=Nc;exports.ThemeToggle=io;exports.defaultLocale=Lo;exports.getLocaleMessages=ic;exports.getLocaleName=sc;exports.getSupportedLocales=lc;exports.isLocale=Er;exports.messages=Cr;exports.provideLocale=oc;exports.useAIProvider=Zf;exports.useEditor=Yl;exports.useLocale=at;exports.useTheme=va;
|
|
15077
|
+
`," ")}},Hf=async()=>{const N=ws();if(!N||!O.value)return;await Ql(N.text,N.html)&&O.value.chain().focus().deleteSelection().run()},jf=async()=>{var A;const N=ws();N&&(await Ql(N.text,N.html),(A=O.value)==null||A.commands.focus())},qf=async()=>{if(!O.value)return;const N=await KS();if(N){const V=Ee.sanitizePastedHTML(N);try{O.value.chain().focus().insertContent(V).run()}catch(oe){console.error("[DocsEditor] paste HTML failed, falling back to plain text:",oe);const se=await Qa();if(se)try{O.value.chain().focus().insertContent(se).run()}catch(ke){console.error("[DocsEditor] paste plain text also failed:",ke)}}return}const A=await Qa();if(A)try{O.value.chain().focus().insertContent(A).run()}catch(V){console.error("[DocsEditor] paste plain text failed:",V)}},_s=async()=>{if(!O.value)return;const N=await Qa();N&&O.value.chain().focus().insertContent(N).run()},$f=()=>{if(!O.value)return;const{state:N}=O.value;if(N.selection.empty){const{from:A,to:V}=N.selection;V<N.doc.content.size&&O.value.chain().focus().deleteRange({from:A,to:V+1}).run()}else O.value.chain().focus().deleteSelection().run()},Ss=N=>{var A;if(N.key==="Escape"&&I.value){I.value=!1;return}!(N.metaKey||N.ctrlKey)||!N.shiftKey||(A=O.value)!=null&&A.view.dom.contains(N.target)&&(N.key.toLowerCase()==="v"?(N.preventDefault(),_s()):N.key.toLowerCase()==="h"&&(N.preventDefault(),Kn.value=!0))};s.onMounted(()=>document.addEventListener("keydown",Ss)),s.onUnmounted(()=>document.removeEventListener("keydown",Ss));const Cs={undo:()=>mt("undo"),redo:()=>mt("redo"),"select-all":()=>mt("selectAll"),cut:()=>{Hf()},copy:()=>{jf()},paste:()=>{qf()},"paste-without-formatting":()=>{_s()},delete:()=>$f(),bold:()=>mt("toggleBold"),italic:()=>mt("toggleItalic"),underline:()=>mt("toggleUnderline"),heading1:()=>mt("toggleHeading",{level:1}),heading2:()=>mt("toggleHeading",{level:2}),heading3:()=>mt("toggleHeading",{level:3}),"align-left":()=>Xt("alignLeft"),"align-center":()=>Xt("alignCenter"),"align-right":()=>Xt("alignRight"),"align-justify":()=>Xt("alignJustify"),"bullet-list":()=>mt("toggleBulletList"),"numbered-list":()=>mt("toggleOrderedList"),"task-list":()=>Xt("toggleTaskList"),"horizontal-line":()=>mt("setHorizontalRule"),"page-numbers-header":()=>ks("header"),"page-numbers-footer":()=>ks("footer"),"clear-formatting":()=>{O.value&&(O.value.chain().unsetAllMarks().clearNodes().run(),mt("setTextAlign","left"))},"insert-image":()=>Xt("insertImage"),"insert-table":()=>Xt("insertTable",{rows:3,cols:3,withHeaderRow:!0}),"insert-code":()=>Xt("toggleCodeBlock"),"insert-toc":()=>Xt("insertToc")};let Wf=N=>{if(N==="page-setup")Df();else if(N==="print")Es();else if(N==="version-history")tr("history");else if(N==="details")Oa.value=!0;else if(N==="email")Aa.value=!0;else if(N==="find-replace")Kn.value=!0;else if(N==="insert-link")xs();else if(N==="security")n("share");else if(N==="insert-header")Yn();else if(N==="insert-footer")er();else if(N==="toggle-pageless")Pn(!p.value);else if(N==="toggle-left-sidebar")tr("toc");else if(N==="toggle-ruler")F.value=!F.value;else if(N==="toggle-focus-mode")I.value=!I.value,I.value&&(z.value=null);else if(N==="insert-footnote"){if(!O.value)return;const{state:A,view:V}=O.value,oe=A.schema.nodes.footnote;if(!oe){console.error("[DocsEditor] footnote node type not registered in schema");return}const se=A.selection.head,ke=oe.create({content:""}),Oe=A.tr.insert(se,ke);V.dispatch(Oe),V.focus(),setTimeout(()=>{xi();const ge=document.querySelectorAll(".docs-footnote-item-text"),ue=ge[ge.length-1];ue&&(ue.scrollIntoView({behavior:"smooth",block:"nearest"}),ue.focus())},160)}else Cs[N]?Cs[N]():n("menu-click",N)},tr=N=>{z.value=z.value===N?null:N},Es=()=>window.print();const Gf=(N,A)=>{if(!O.value)return;const V=O.value.view;V.state.doc.descendants((oe,se)=>{if(oe.type.name==="footnote"&&V.nodeDOM(se)===N)return V.dispatch(V.state.tr.setNodeMarkup(se,void 0,{content:A})),!1})},xi=()=>{var ge;if(!O.value||!ee.value)return;const N=O.value.view.dom,A=N.querySelector("[data-rm-pagination]");if(!A)return;const V=ue=>{var me,ve,we;const be=document.createElement("div");if(be.className="docs-footnote-item-text",ue.hasAttribute("data-footnote-source-id")){const pe=ue.getAttribute("data-citation-id")??"",_e=(ve=(me=O.value)==null?void 0:me.storage)==null?void 0:ve.citation,Le=((we=_e==null?void 0:_e.engine)==null?void 0:we.renderCluster(pe))??"";return be.classList.add("docs-footnote-item-text--citation"),Le?be.innerHTML=Le:be.setAttribute("data-empty","true"),be}const ce=ue.getAttribute("data-footnote-content")??"";return be.contentEditable="true",be.textContent=ce,ce||be.setAttribute("data-empty","true"),be.addEventListener("input",()=>{be.removeAttribute("data-empty"),be.textContent||be.setAttribute("data-empty","true")}),be.addEventListener("blur",()=>{var _e;const pe=((_e=be.textContent)==null?void 0:_e.trim())??"";Gf(ue,pe)}),be},oe=Array.from(A.querySelectorAll(".rm-page-break")),se=Array.from(N.querySelectorAll(".docs-footnote-ref"));if(oe.length===0){se.forEach((ve,we)=>{ve.textContent=String(we+1)});const ue=G.value;if(!ue||((ge=ue.querySelector(".docs-pageless-footnotes"))==null||ge.remove(),se.length===0))return;const be=ue.querySelector(".docs-pageless-footnotes");if(be!=null&&be.querySelector(".docs-footnote-item-text:focus"))return;const ce=document.createElement("div");ce.className="docs-page-footnotes docs-pageless-footnotes";const me=document.createElement("div");me.className="docs-footnotes-sep",ce.appendChild(me),se.forEach((ve,we)=>{const pe=document.createElement("div");pe.className="docs-footnote-item";const _e=document.createElement("sup");_e.className="docs-footnote-item-num",_e.textContent=String(we+1);const Le=V(ve);ve.dataset.footnoteItemId=`fn-pageless-${we}`,pe.id=`fn-pageless-${we}`,pe.appendChild(_e),pe.appendChild(Le),ce.appendChild(pe)}),ue.appendChild(ce);return}const ke=new Map;oe.forEach((ue,be)=>ke.set(be,[])),se.forEach(ue=>{const be=ue.getBoundingClientRect().top;let ce=oe.length-1;for(let me=0;me<oe.length-1;me++){const ve=oe[me].querySelector(".breaker");if(ve&&be<ve.getBoundingClientRect().top){ce=me;break}}ke.get(ce).push(ue)});let Oe=1;oe.forEach((ue,be)=>{const ce=ke.get(be)??[],me=Oe;Oe+=ce.length,ce.forEach((Le,qe)=>{Le.textContent=String(me+qe)});const ve=ue.querySelector(".docs-page-footnotes");if(ve!=null&&ve.querySelector(".docs-footnote-item-text:focus")||(ve==null||ve.remove(),ce.length===0))return;const we=document.createElement("div");we.className="docs-page-footnotes";const pe=document.createElement("div");pe.className="docs-footnotes-sep",we.appendChild(pe),ce.forEach((Le,qe)=>{const vt=document.createElement("div");vt.className="docs-footnote-item";const Mt=document.createElement("sup");Mt.className="docs-footnote-item-num",Mt.textContent=String(me+qe);const Kf=V(Le);Le.dataset.footnoteItemId=`fn-${be}-${qe}`,vt.id=`fn-${be}-${qe}`,vt.appendChild(Mt),vt.appendChild(Kf),we.appendChild(vt)});const _e=ue.querySelector(".breaker");_e?_e.insertBefore(we,_e.firstChild):ue.appendChild(we)})};return s.watch(ee,N=>{!N||!O.value||O.value.view.dom.addEventListener("click",A=>{const V=A.target.closest(".docs-footnote-ref");if(!V)return;A.preventDefault(),A.stopPropagation();const oe=V.dataset.footnoteItemId;if(!oe)return;const se=document.getElementById(oe),ke=se==null?void 0:se.querySelector(".docs-footnote-item-text");if(ke){ke.scrollIntoView({behavior:"smooth",block:"nearest"}),ke.focus();const Oe=document.createRange();Oe.selectNodeContents(ke),Oe.collapse(!1);const ge=window.getSelection();ge==null||ge.removeAllRanges(),ge==null||ge.addRange(Oe)}})}),s.watch(ee,N=>{var V;if(!N||!O.value)return;setTimeout(xi,150),O.value.on("update",()=>{setTimeout(xi,60)}),O.value.on("selectionUpdate",()=>{setTimeout(xi,100)});const A=O.value.storage.citation;(V=A==null?void 0:A.engine)==null||V.onChange(()=>{setTimeout(xi,30)}),window.addEventListener("resize",xi)}),(N,A)=>(s.openBlock(),s.createElementBlock("div",XS,[I.value?s.createCommentVNode("",!0):(s.openBlock(),s.createBlock(_c,{key:0,title:e.title,editable:e.editable,collaborators:e.collaborators,starred:e.starred,"user-name":e.userName,"user-avatar":e.userAvatar,pageless:p.value,"outline-open":z.value==="toc","show-ruler":F.value,"focus-mode":I.value,onMenuClick:s.unref(Wf),onBack:A[0]||(A[0]=V=>N.$emit("back")),"onUpdate:title":A[1]||(A[1]=V=>N.$emit("update:title",V)),onToggleStar:A[2]||(A[2]=V=>N.$emit("toggle-star")),onExport:A[3]||(A[3]=V=>N.$emit("export",V)),onShare:A[4]||(A[4]=V=>N.$emit("share"))},{actions:s.withCtx(()=>[s.renderSlot(N.$slots,"header-actions",{},void 0,!0)]),"overflow-actions":s.withCtx(V=>[s.renderSlot(N.$slots,"overflow-actions",s.normalizeProps(s.guardReactiveProps(V)),void 0,!0)]),"user-menu":s.withCtx(V=>[s.renderSlot(N.$slots,"user-menu",s.normalizeProps(s.guardReactiveProps(V)),void 0,!0)]),_:3},8,["title","editable","collaborators","starred","user-name","user-avatar","pageless","outline-open","show-ruler","focus-mode","onMenuClick"])),I.value?s.createCommentVNode("",!0):(s.openBlock(),s.createBlock(Sc,{key:1,actions:s.unref(q),plugins:e.plugins,editor:s.unref(O),"active-sidebar":z.value,onToggleSidebar:s.unref(tr),onPrint:s.unref(Es)},null,8,["actions","plugins","editor","active-sidebar","onToggleSidebar","onPrint"])),F.value&&!I.value?(s.openBlock(),s.createBlock(Bh,{key:2,"layout-options":m.value},null,8,["layout-options"])):s.createCommentVNode("",!0),I.value?(s.openBlock(),s.createElementBlock("button",{key:3,type:"button",class:"fixed right-4 top-4 z-50 flex h-11 w-11 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 shadow-md transition-colors hover:bg-slate-100 dark:border-white/10 dark:bg-[#0e1525] dark:text-slate-300 dark:hover:bg-white/5",title:s.unref(o)("header.focusMode"),"aria-label":s.unref(o)("header.focusMode"),onClick:A[5]||(A[5]=V=>I.value=!1)},[s.createVNode(s.unref(jp),{class:"h-5 w-5"})],8,JS)):s.createCommentVNode("",!0),s.createVNode(Cc,{visible:S.value,actions:s.unref(q),position:M.value,editor:s.unref(O)},null,8,["visible","actions","position","editor"]),s.createVNode(cc,{editor:s.unref(O),commands:Z.value},null,8,["editor","commands"]),s.createElementVNode("div",ZS,[s.createVNode(RS,{"is-open":Kn.value,editor:s.unref(O),onClose:A[6]||(A[6]=V=>Kn.value=!1)},null,8,["is-open","editor"]),z.value==="toc"?(s.openBlock(),s.createBlock(Nc,{key:0,editor:s.unref(O),onClose:A[7]||(A[7]=V=>z.value=null)},null,8,["editor"])):(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:"absolute left-4 top-4 z-20 flex h-11 w-11 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 shadow-md transition-colors hover:bg-slate-100 dark:border-white/10 dark:bg-[#0e1525] dark:text-slate-300 dark:hover:bg-white/5",title:s.unref(o)("editor.showOutline"),onClick:A[8]||(A[8]=V=>s.unref(tr)("toc"))},[s.createVNode(s.unref(Up),{class:"h-5 w-5"})],8,QS)),s.createElementVNode("div",{ref_key:"scrollContainerRef",ref:jt,class:"docs-editor-scroll relative flex flex-1 overflow-auto px-4 py-6 bg-slate-100 dark:bg-[#02040a]",onScroll:At},[F.value&&!I.value?(s.openBlock(),s.createBlock(Fh,{key:0,"layout-options":m.value},null,8,["layout-options"])):s.createCommentVNode("",!0),s.createElementVNode("div",YS,[s.createElementVNode("div",eC,[h.value?(s.openBlock(),s.createBlock(lp,{key:0,data:s.unref(tn),"is-ready":s.unref(Pi)},null,8,["data","is-ready"])):s.createCommentVNode("",!0),s.unref(ee)?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",{key:1,class:"absolute inset-0 z-10 flex flex-col items-center justify-center bg-white dark:bg-[#0e1525]/60 backdrop-blur-[2px] gap-3 rounded-lg","aria-label":s.unref(o)("editor.loadingDocument")},null,8,tC)),s.createElementVNode("div",{ref_key:"editorRef",ref:G,class:s.normalizeClass(["docs-editor__paper outline-none text-slate-800 dark:text-[#e2e8f0]",{"opacity-40":!s.unref(ee)}])},null,2)])])],544),z.value==="references"?(s.openBlock(),s.createBlock(Og,{key:2,sources:D.value,"active-style":U.value,"picker-mode":re.value,"can-import":L.value,importing:tt.value,"import-message":W.value,onClose:A[9]||(A[9]=V=>z.value=null),onInsert:Ae,onCreate:fe,onUpdate:Ce,onRemove:pt,"onUpdate:style":Rt,onImportDoi:X,onImportBibliography:Te},null,8,["sources","active-style","picker-mode","can-import","importing","import-message"])):s.createCommentVNode("",!0),z.value==="comments"?(s.openBlock(),s.createBlock(Of,{key:3,comments:i.comments,"selected-text-snippet":i.selectedTextSnippet,"selected-text-index":i.selectedTextIndex,onClose:A[10]||(A[10]=V=>z.value=null),onAddComment:A[11]||(A[11]=(V,oe,se)=>N.$emit("add-comment",V,oe,se)),onAddReply:A[12]||(A[12]=(V,oe)=>N.$emit("add-reply",V,oe)),onResolveComment:A[13]||(A[13]=V=>N.$emit("resolve-comment",V))},null,8,["comments","selected-text-snippet","selected-text-index"])):s.createCommentVNode("",!0),z.value==="history"?(s.openBlock(),s.createBlock(Af,{key:4,snapshots:i.snapshots,"active-preview-index":i.activePreviewIndex,onSaveSnapshot:A[14]||(A[14]=V=>N.$emit("save-snapshot",V)),onRestoreSnapshot:A[15]||(A[15]=V=>N.$emit("restore-snapshot",V)),onPreviewSnapshot:A[16]||(A[16]=V=>N.$emit("preview-snapshot",V))},null,8,["snapshots","active-preview-index"])):s.createCommentVNode("",!0),z.value==="ai"?(s.openBlock(),s.createBlock(Nf,{key:5,editor:s.unref(O),"ai-stream":i.aiStream,"ai-draft":i.aiDraft,onClose:A[17]||(A[17]=V=>z.value=null)},null,8,["editor","ai-stream","ai-draft"])):s.createCommentVNode("",!0)]),I.value?s.createCommentVNode("",!0):(s.openBlock(),s.createBlock(Ec,{key:4,"connection-state":e.connectionState,"saving-status":B.value,"last-saved":$.value,"word-count":T.value,"char-count":H.value,"page-count":dt.value,"current-page":Re.value,"page-size":f.value,"page-sizes":s.unref(cn.PAGE_SIZES),pageless:p.value,"onUpdate:pageSize":A[18]||(A[18]=V=>{f.value=V,n("update:pageSize",V)})},null,8,["connection-state","saving-status","last-saved","word-count","char-count","page-count","current-page","page-size","page-sizes","pageless"])),Wn.value?(s.openBlock(),s.createElementBlock("div",iC,[s.createElementVNode("div",nC,[s.createElementVNode("h2",rC,s.toDisplayString(s.unref(o)("editor.headerFooter.footer")),1),s.createElementVNode("div",aC,[s.createElementVNode("div",oC,[s.createElementVNode("h3",sC,s.toDisplayString(s.unref(o)("editor.headerFooter.footer")),1),s.createElementVNode("button",{type:"button",class:"text-[11px] text-red-500 hover:text-red-600 font-medium transition-colors",onClick:A[19]||(A[19]=V=>{rn.value="",an.value=""})},s.toDisplayString(s.unref(o)("editor.headerFooter.clear")),1)]),s.createElementVNode("div",lC,[s.createElementVNode("div",null,[s.createElementVNode("label",cC,s.toDisplayString(s.unref(o)("editor.headerFooter.left")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[20]||(A[20]=V=>rn.value=V),type:"text",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700",placeholder:s.unref(o)("editor.headerFooter.footerLeftPlaceholder")},null,8,uC),[[s.vModelText,rn.value]])]),s.createElementVNode("div",null,[s.createElementVNode("label",fC,s.toDisplayString(s.unref(o)("editor.headerFooter.right")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[21]||(A[21]=V=>an.value=V),type:"text",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700",placeholder:s.unref(o)("editor.headerFooter.footerRightPlaceholder")},null,8,pC),[[s.vModelText,an.value]])])])]),s.createElementVNode("div",dC,s.toDisplayString(s.unref(o)("editor.headerFooter.variableInfo")),1),s.createElementVNode("div",mC,[s.createElementVNode("button",{type:"button",class:"rounded-md px-3 py-1.5 text-xs font-semibold hover:bg-slate-100 dark:hover:bg-white/5",onClick:A[22]||(A[22]=V=>Wn.value=!1)},s.toDisplayString(s.unref(o)("editor.headerFooter.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-md bg-blue-600 px-3 py-1.5 text-xs font-semibold text-white hover:bg-blue-700",onClick:Uf},s.toDisplayString(s.unref(o)("editor.headerFooter.save")),1)])])])):s.createCommentVNode("",!0),Wt.value?(s.openBlock(),s.createElementBlock("div",hC,[s.createElementVNode("div",bC,[s.createElementVNode("h2",gC,s.toDisplayString(s.unref(o)("editor.headerFooter.headerFooterFormatTitle")),1),s.createElementVNode("div",vC,[s.createElementVNode("h3",yC,s.toDisplayString(s.unref(o)("editor.headerFooter.marginSection")),1),s.createElementVNode("div",xC,[s.createElementVNode("div",null,[s.createElementVNode("label",kC,s.toDisplayString(s.unref(o)("editor.headerFooter.headerTopMargin")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[23]||(A[23]=V=>Vi.value=V),type:"number",step:"0.01",class:"w-full rounded-lg border border-slate-300 dark:border-slate-700 bg-white dark:bg-[#1a2332] px-3.5 py-2 text-sm text-slate-800 dark:text-slate-100 focus:border-blue-600 focus:ring-2 focus:ring-blue-500/20 focus:outline-none transition-all"},null,512),[[s.vModelText,Vi.value]])]),s.createElementVNode("div",null,[s.createElementVNode("label",wC,s.toDisplayString(s.unref(o)("editor.headerFooter.footerBottomMargin")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[24]||(A[24]=V=>lt.value=V),type:"number",step:"0.01",class:"w-full rounded-lg border border-slate-300 dark:border-slate-700 bg-white dark:bg-[#1a2332] px-3.5 py-2 text-sm text-slate-800 dark:text-slate-100 focus:border-blue-600 focus:ring-2 focus:ring-blue-500/20 focus:outline-none transition-all"},null,512),[[s.vModelText,lt.value]])])])]),s.createElementVNode("div",_C,[s.createElementVNode("h3",SC,s.toDisplayString(s.unref(o)("editor.headerFooter.layoutSection")),1),s.createElementVNode("div",CC,[s.createElementVNode("label",EC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[25]||(A[25]=V=>Je.value=V),type:"checkbox",class:"w-4 h-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelCheckbox,Je.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.differentFirstPage")),1)]),s.createElementVNode("label",NC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[26]||(A[26]=V=>Gt.value=V),type:"checkbox",class:"w-4 h-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelCheckbox,Gt.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.differentOddEven")),1)])])]),s.createElementVNode("div",OC,[s.createElementVNode("button",{type:"button",class:"rounded-full px-5 py-2 text-xs font-semibold text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/40 transition-colors",onClick:A[27]||(A[27]=V=>Wt.value=!1)},s.toDisplayString(s.unref(o)("editor.headerFooter.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-full bg-blue-600 hover:bg-blue-700 px-6 py-2 text-xs font-semibold text-white shadow-md transition-colors",onClick:Bf},s.toDisplayString(s.unref(o)("editor.headerFooter.apply")),1)])])])):s.createCommentVNode("",!0),Kt.value?(s.openBlock(),s.createElementBlock("div",AC,[s.createElementVNode("div",TC,[s.createElementVNode("h2",MC,s.toDisplayString(s.unref(o)("editor.headerFooter.pageNumberTitle")),1),s.createElementVNode("div",zC,[s.createElementVNode("h3",IC,s.toDisplayString(s.unref(o)("editor.headerFooter.positionSection")),1),s.createElementVNode("div",DC,[s.createElementVNode("label",RC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[28]||(A[28]=V=>Fi.value=V),type:"radio",value:"header",class:"w-4 h-4 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelRadio,Fi.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.positionHeader")),1)]),s.createElementVNode("label",LC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[29]||(A[29]=V=>Fi.value=V),type:"radio",value:"footer",class:"w-4 h-4 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelRadio,Fi.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.positionFooter")),1)]),s.createElementVNode("label",BC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[30]||(A[30]=V=>qn.value=V),type:"checkbox",class:"w-4 h-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelCheckbox,qn.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.showOnFirstPage")),1)])])]),s.createElementVNode("div",PC,[s.createElementVNode("h3",VC,s.toDisplayString(s.unref(o)("editor.headerFooter.numberingSection")),1),s.createElementVNode("div",FC,[s.createElementVNode("div",UC,[s.createElementVNode("label",HC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[31]||(A[31]=V=>Ui.value=V),type:"radio",value:"startAt",class:"w-4 h-4 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelRadio,Ui.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.startAt")),1)]),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[32]||(A[32]=V=>$n.value=V),type:"number",min:"1",class:"w-16 rounded-md border border-slate-300 dark:border-slate-700 bg-white dark:bg-[#1a2332] px-2.5 py-1 text-xs text-slate-800 dark:text-slate-100 focus:border-blue-600 focus:outline-none"},null,512),[[s.vModelText,$n.value]])]),s.createElementVNode("label",jC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[33]||(A[33]=V=>Ui.value=V),type:"radio",value:"continue",class:"w-4 h-4 text-blue-600 focus:ring-blue-500"},null,512),[[s.vModelRadio,Ui.value]]),s.createElementVNode("span",null,s.toDisplayString(s.unref(o)("editor.headerFooter.continueFromPrevious")),1)])])]),s.createElementVNode("div",qC,[s.createElementVNode("button",{type:"button",class:"rounded-full px-5 py-2 text-xs font-semibold text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/40 transition-colors",onClick:A[34]||(A[34]=V=>Kt.value=!1)},s.toDisplayString(s.unref(o)("editor.headerFooter.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-full bg-blue-600 hover:bg-blue-700 px-6 py-2 text-xs font-semibold text-white shadow-md transition-colors",onClick:Vf},s.toDisplayString(s.unref(o)("editor.headerFooter.apply")),1)])])])):s.createCommentVNode("",!0),s.createVNode(Mf,{"is-open":Aa.value,"document-title":i.title,"share-url":i.shareUrl,onClose:A[35]||(A[35]=V=>Aa.value=!1),onCopyLink:A[36]||(A[36]=V=>n("share"))},null,8,["is-open","document-title","share-url"]),s.createVNode(Tf,{"is-open":Oa.value,meta:i.documentMeta,onClose:A[37]||(A[37]=V=>Oa.value=!1)},null,8,["is-open","meta"]),s.createVNode(GS,{"is-open":on.value,"initial-text":Xn.value,"initial-url":Ta.value,"is-editing":Jn.value,onApply:zf,onRemove:If,onClose:A[38]||(A[38]=V=>on.value=!1)},null,8,["is-open","initial-text","initial-url","is-editing"]),Gn.value?(s.openBlock(),s.createElementBlock("div",$C,[s.createElementVNode("div",WC,[s.createElementVNode("h2",GC,s.toDisplayString(s.unref(o)("editor.pageSetup.title")),1),s.createElementVNode("div",KC,[s.createElementVNode("label",XC,s.toDisplayString(s.unref(o)("editor.pageSetup.paperSize")),1),s.withDirectives(s.createElementVNode("select",{"onUpdate:modelValue":A[39]||(A[39]=V=>Zn.value=V),class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-2 text-xs focus:outline-none dark:border-slate-700"},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(cn.PAGE_SIZES),V=>(s.openBlock(),s.createElementBlock("option",{key:V.id,value:V.id},s.toDisplayString(V.name),9,JC))),128))],512),[[s.vModelSelect,Zn.value]])]),s.createElementVNode("div",ZC,[s.createElementVNode("label",QC,s.toDisplayString(s.unref(o)("editor.pageSetup.orientation")),1),s.createElementVNode("div",YC,[s.createElementVNode("button",{type:"button",class:s.normalizeClass(["flex-1 rounded-md border px-3 py-2 text-xs font-medium transition-colors",Hi.value==="portrait"?"border-cyan-500 bg-cyan-50 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300":"border-slate-200 hover:bg-slate-50 dark:border-slate-700 dark:hover:bg-white/5"]),onClick:A[40]||(A[40]=V=>Hi.value="portrait")},s.toDisplayString(s.unref(o)("editor.pageSetup.portrait")),3),s.createElementVNode("button",{type:"button",class:s.normalizeClass(["flex-1 rounded-md border px-3 py-2 text-xs font-medium transition-colors",Hi.value==="landscape"?"border-cyan-500 bg-cyan-50 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300":"border-slate-200 hover:bg-slate-50 dark:border-slate-700 dark:hover:bg-white/5"]),onClick:A[41]||(A[41]=V=>Hi.value="landscape")},s.toDisplayString(s.unref(o)("editor.pageSetup.landscape")),3)])]),s.createElementVNode("div",e2,[s.createElementVNode("label",t2,s.toDisplayString(s.unref(o)("editor.pageSetup.margins")),1),s.createElementVNode("div",i2,[s.createElementVNode("div",null,[s.createElementVNode("label",n2,s.toDisplayString(s.unref(o)("editor.pageSetup.top")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[42]||(A[42]=V=>Bt.value.top=V),type:"number",min:"0",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700"},null,512),[[s.vModelText,Bt.value.top,void 0,{number:!0}]])]),s.createElementVNode("div",null,[s.createElementVNode("label",r2,s.toDisplayString(s.unref(o)("editor.pageSetup.bottom")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[43]||(A[43]=V=>Bt.value.bottom=V),type:"number",min:"0",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700"},null,512),[[s.vModelText,Bt.value.bottom,void 0,{number:!0}]])]),s.createElementVNode("div",null,[s.createElementVNode("label",a2,s.toDisplayString(s.unref(o)("editor.pageSetup.left")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[44]||(A[44]=V=>Bt.value.left=V),type:"number",min:"0",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700"},null,512),[[s.vModelText,Bt.value.left,void 0,{number:!0}]])]),s.createElementVNode("div",null,[s.createElementVNode("label",o2,s.toDisplayString(s.unref(o)("editor.pageSetup.right")),1),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":A[45]||(A[45]=V=>Bt.value.right=V),type:"number",min:"0",class:"w-full rounded-md border border-slate-200 bg-transparent px-3 py-1.5 text-xs focus:outline-none dark:border-slate-700"},null,512),[[s.vModelText,Bt.value.right,void 0,{number:!0}]])])])]),s.createElementVNode("div",s2,[s.createElementVNode("button",{type:"button",class:"rounded-md px-3 py-1.5 text-xs font-semibold hover:bg-slate-100 dark:hover:bg-white/5",onClick:A[46]||(A[46]=V=>Gn.value=!1)},s.toDisplayString(s.unref(o)("editor.pageSetup.cancel")),1),s.createElementVNode("button",{type:"button",class:"rounded-md bg-blue-600 px-3 py-1.5 text-xs font-semibold text-white hover:bg-blue-700",onClick:Rf},s.toDisplayString(s.unref(o)("editor.pageSetup.apply")),1)])])])):s.createCommentVNode("",!0)]))}}),c2=Bo(l2,[["__scopeId","data-v-1f5b1ddf"]]),u2={class:"docs-editor-pages flex flex-col items-center gap-10"},f2=["data-page-index"],p2=["data-node-type","data-from","data-to"],d2=["innerHTML"],m2={key:1,class:"docs-editor-page__block-fallback flex justify-between text-sm text-slate-700"},h2={class:"docs-editor-page__block-type font-medium"},b2={class:"docs-editor-page__block-range text-slate-500"},g2=s.defineComponent({__name:"PageView",props:{pages:{},editor:{default:null},layoutOptions:{default:()=>({pageWidth:794,pageHeight:1123,margins:{top:96,bottom:96,left:96,right:96}})},isPageless:{type:Boolean,default:!1},pageColor:{default:"#ffffff"}},setup(e){const t=e,i=s.ref(0),n=()=>{i.value++};s.watch(()=>t.editor,(d,h)=>{h&&typeof h.off=="function"&&h.off("update",n),d&&typeof d.on=="function"&&d.on("update",n)},{immediate:!0}),s.onUnmounted(()=>{t.editor&&typeof t.editor.off=="function"&&t.editor.off("update",n)});const r=s.computed(()=>{var d,h;return((h=(d=t.editor)==null?void 0:d.view)==null?void 0:h.dom)??null}),a=s.computed(()=>{var d,h,v;return{pageHeight:((d=t.layoutOptions)==null?void 0:d.pageHeight)??1123,pageWidth:((h=t.layoutOptions)==null?void 0:h.pageWidth)??794,margins:((v=t.layoutOptions)==null?void 0:v.margins)??{top:96,bottom:96,left:96,right:96},maxCharsPerPage:0}}),o=s.computed(()=>{const{pageWidth:d,pageHeight:h,margins:v}=a.value;return t.isPageless?{width:`${d}px`,minHeight:"auto",height:"auto",paddingTop:`${v.top}px`,paddingBottom:`${v.bottom}px`,paddingLeft:`${v.left}px`,paddingRight:`${v.right}px`,backgroundColor:t.pageColor,boxShadow:"none",border:"none",borderRadius:"0"}:{width:`${d}px`,height:`${h}px`,paddingTop:`${v.top}px`,paddingBottom:`${v.bottom}px`,paddingLeft:`${v.left}px`,paddingRight:`${v.right}px`}}),l=()=>r.value?Array.from(r.value.children).filter(d=>d instanceof HTMLElement):[],c=d=>l().find(v=>{const b=parseInt(v.getAttribute("data-from")??"-1",10),y=parseInt(v.getAttribute("data-to")??"-1",10);return b>=0&&y>=b&&b<=d.from&&y>=d.to})??null,f=d=>{if(!t.editor||!r.value||!c(d))return null;try{const v=t.editor.view,b=v.domAtPos(d.from),y=v.domAtPos(d.to);if(!b||!y)return null;const g=document.createRange();g.setStart(b.node,b.offset),g.setEnd(y.node,y.offset);const k=g.cloneContents(),x=document.createElement("div");return x.appendChild(k),x.innerHTML}catch{return null}},p=s.computed(()=>{i.value;const d=new Map;if(!t.editor||!r.value)return d;for(const h of t.pages)for(const v of h.blocks){const b=`${v.from}-${v.to}-${v.nodeType}`;if(d.has(b))continue;const y=f(v);y!==null&&d.set(b,y)}return d}),m=d=>p.value.get(`${d.from}-${d.to}-${d.nodeType}`)??null;return(d,h)=>(s.openBlock(),s.createElementBlock("div",u2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(e.pages,(v,b)=>(s.openBlock(),s.createElementBlock("div",{key:`${b}-${v.from}-${v.to}`,class:s.normalizeClass(["docs-editor-page tiptap ProseMirror relative box-border overflow-hidden text-slate-800 dark:text-[#e2e8f0]",e.isPageless?"":"editor-page-shadow rounded-lg border border-slate-200/70 bg-white dark:border-white/5 dark:bg-[#0a0f1e]"]),"data-page-index":b,style:s.normalizeStyle(o.value)},[s.createElementVNode("div",{class:"docs-editor-page__blocks flex flex-col",style:s.normalizeStyle(e.isPageless?{}:{height:"100%",overflow:"hidden"})},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(v.blocks,y=>(s.openBlock(),s.createElementBlock("div",{key:`${y.from}-${y.to}`,class:"docs-editor-page__block","data-node-type":y.nodeType,"data-from":y.from,"data-to":y.to},[m(y)!==null?(s.openBlock(),s.createElementBlock("div",{key:0,class:"docs-editor-page__block-content",innerHTML:m(y)},null,8,d2)):(s.openBlock(),s.createElementBlock("div",m2,[s.createElementVNode("span",h2,s.toDisplayString(y.nodeType),1),s.createElementVNode("span",b2,s.toDisplayString(y.from)+"–"+s.toDisplayString(y.to),1)]))],8,p2))),128))],4)],14,f2))),128))]))}}),v2={class:"docs-editor-left-sidebar flex w-14 flex-shrink-0 flex-col items-center border-r border-slate-200 bg-slate-50/50 py-3 dark:border-slate-800 dark:bg-[#080d1a] md:w-64 md:items-stretch md:px-3"},y2={class:"mb-4 flex items-center justify-between px-1"},x2=["title"],k2={class:"hidden flex-col gap-4 md:flex"},w2={class:"flex items-center justify-between px-2"},_2={class:"text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wide"},S2=["title"],C2={class:"flex flex-col gap-1 pr-1"},E2=["onClick"],N2={class:"truncate"},O2={key:1,class:"flex flex-1 items-center gap-2 pr-6"},A2=["onBlur","onKeydown"],T2={class:"relative flex items-center"},M2=["onClick"],z2={key:1,class:"absolute right-0 top-6 z-50 w-28 rounded-lg border border-slate-200/80 bg-white py-1 shadow-lg dark:border-slate-700 dark:bg-slate-800 text-slate-700 dark:text-slate-200"},I2=["onClick"],D2=["disabled","onClick"],R2={class:"flex flex-col gap-1.5 px-2"},L2={class:"text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wide"},B2={key:0,class:"flex flex-col gap-1 mt-1"},P2=["onClick"],V2={key:1,class:"text-xs leading-relaxed text-slate-400 dark:text-slate-500 italic mt-1 font-sans"},F2={class:"flex flex-col gap-2 md:hidden"},U2=["title","onClick"],H2=s.defineComponent({__name:"DocumentTabsSidebar",props:{tabs:{default:()=>[{id:"tab-1",label:"Tab 1",active:!0}]},editor:{default:null},backTitle:{default:""}},emits:["collapse","add-tab","select-tab","delete-tab","rename-tab"],setup(e,{emit:t}){const{t:i}=at(),n=e,r=s.computed(()=>n.backTitle||i("common.cancel")),a=t,o=s.ref(null),l=s.ref(null),c=s.ref(""),f=k=>{l.value=k.id,c.value=k.label,o.value=null},p=k=>{c.value.trim()&&a("rename-tab",{id:k,label:c.value.trim()}),l.value=null},m=()=>{l.value=null},d=k=>{a("delete-tab",k),o.value=null},h=k=>{o.value=o.value===k?null:k},v=s.ref([]),b=()=>{if(!n.editor)return;const k=[];n.editor.state.doc.descendants((x,w)=>{if(x.type.name==="heading"){const C=x.attrs.level;(C===1||C===2||C===3)&&k.push({id:`heading-${w}`,text:x.textContent.trim()||i("documentTabs.untitledHeading").replace("{level}",String(C)),level:C,pos:w})}return!0}),v.value=k};let y=null;s.watch(()=>n.editor,k=>{if(y&&(y(),y=null),!k){v.value=[];return}b();const x=()=>{b()};k.on("update",x),y=()=>{k.off("update",x)}},{immediate:!0});const g=k=>{n.editor&&(n.editor.chain().focus().setTextSelection(k.pos).run(),setTimeout(()=>{var C;const x=document.querySelector(".docs-editor-scroll");if(!x)return;const w=x.querySelectorAll(".ProseMirror h1, .ProseMirror h2, .ProseMirror h3");for(const E of Array.from(w))if(((C=E.textContent)==null?void 0:C.trim())===k.text){E.scrollIntoView({behavior:"smooth",block:"center"});return}},50))};return(k,x)=>(s.openBlock(),s.createElementBlock("aside",v2,[s.createElementVNode("div",y2,[s.createElementVNode("button",{type:"button",class:"flex h-8 w-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-200/80 dark:text-slate-400 dark:hover:bg-slate-800/80",title:r.value,onClick:x[0]||(x[0]=w=>a("collapse"))},[s.createVNode(s.unref(vp),{class:"h-[18px] w-[18px]"})],8,x2)]),s.createElementVNode("div",k2,[s.createElementVNode("div",w2,[s.createElementVNode("span",_2,s.toDisplayString(s.unref(i)("documentTabs.documentTabs")),1),s.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-full text-slate-600 hover:bg-slate-200 dark:text-slate-400 dark:hover:bg-slate-800 transition-colors",title:s.unref(i)("documentTabs.addTab"),onClick:x[1]||(x[1]=w=>a("add-tab"))},[s.createVNode(s.unref(pi),{class:"h-4 w-4"})],8,S2)]),s.createElementVNode("div",C2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(e.tabs,w=>(s.openBlock(),s.createElementBlock("div",{key:w.id,class:s.normalizeClass(["group relative flex w-full items-center justify-between rounded-r-full py-1.5 pl-3 pr-2 text-left text-sm transition-all",[w.active?"bg-[#c2e7ff]/70 text-[#001d35] dark:bg-blue-950/40 dark:text-blue-200 font-medium":"text-slate-700 hover:bg-slate-200/40 dark:text-slate-300 dark:hover:bg-slate-800/30"]])},[l.value!==w.id?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"flex flex-1 items-center gap-2 truncate pr-6 text-left",onClick:C=>a("select-tab",w.id)},[s.createVNode(s.unref(Xi),{class:"h-4 w-4 flex-shrink-0 opacity-70"}),s.createElementVNode("span",N2,s.toDisplayString(w.label),1)],8,E2)):s.createCommentVNode("",!0),l.value===w.id?(s.openBlock(),s.createElementBlock("div",O2,[s.createVNode(s.unref(Xi),{class:"h-4 w-4 flex-shrink-0 opacity-70"}),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":x[2]||(x[2]=C=>c.value=C),type:"text",class:"flex-1 rounded border border-blue-400 bg-white px-1.5 py-0.5 text-xs text-slate-800 outline-none focus:ring-1 focus:ring-blue-400/50 dark:bg-slate-900 dark:text-slate-100",onBlur:C=>p(w.id),onKeydown:[s.withKeys(C=>p(w.id),["enter"]),s.withKeys(m,["esc"])],onClick:x[3]||(x[3]=s.withModifiers(()=>{},["stop"]))},null,40,A2),[[s.vModelText,c.value]])])):s.createCommentVNode("",!0),s.createElementVNode("div",T2,[l.value!==w.id?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:s.normalizeClass(["rounded-full p-1 text-slate-500 opacity-0 transition-opacity hover:bg-slate-200/70 group-hover:opacity-100 dark:hover:bg-slate-700/70",{"opacity-100":o.value===w.id}]),onClick:s.withModifiers(C=>h(w.id),["stop"])},[s.createVNode(s.unref(pc),{class:"h-3.5 w-3.5"})],10,M2)):s.createCommentVNode("",!0),o.value===w.id?(s.openBlock(),s.createElementBlock("div",z2,[s.createElementVNode("button",{type:"button",class:"flex w-full items-center px-3 py-1.5 text-xs hover:bg-slate-50 dark:hover:bg-slate-700/50",onClick:s.withModifiers(C=>f(w),["stop"])},s.toDisplayString(s.unref(i)("documentTabs.rename")),9,I2),s.createElementVNode("button",{type:"button",class:"flex w-full items-center px-3 py-1.5 text-xs text-red-600 dark:text-red-400 hover:bg-slate-50 dark:hover:bg-slate-700/50 disabled:opacity-40",disabled:e.tabs.length<=1,onClick:s.withModifiers(C=>d(w.id),["stop"])},s.toDisplayString(s.unref(i)("documentTabs.delete")),9,D2)])):s.createCommentVNode("",!0)])],2))),128))]),x[4]||(x[4]=s.createElementVNode("div",{class:"h-px bg-slate-200/80 dark:bg-slate-800 mx-2"},null,-1)),s.createElementVNode("div",R2,[s.createElementVNode("span",L2,s.toDisplayString(s.unref(i)("documentTabs.outline")),1),v.value.length>0?(s.openBlock(),s.createElementBlock("div",B2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(v.value,w=>(s.openBlock(),s.createElementBlock("button",{key:w.id,type:"button",class:s.normalizeClass(["w-full text-left text-xs text-slate-500 dark:text-slate-400 hover:text-slate-800 dark:hover:text-slate-200 py-1 transition-colors truncate",[w.level===2?"pl-3":"",w.level===3?"pl-6":""]]),onClick:C=>g(w)},s.toDisplayString(w.text),11,P2))),128))])):(s.openBlock(),s.createElementBlock("p",V2,s.toDisplayString(s.unref(i)("documentTabs.placeholder")),1))])]),s.createElementVNode("div",F2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.tabs,w=>(s.openBlock(),s.createElementBlock("button",{key:w.id,type:"button",class:s.normalizeClass(["flex h-8 w-8 items-center justify-center rounded-lg transition-colors",[w.active?"bg-blue-100 text-blue-600 dark:bg-blue-950/40 dark:text-blue-300":"text-slate-500 hover:bg-slate-200 dark:text-slate-400 dark:hover:bg-slate-800"]]),title:w.label,onClick:C=>a("select-tab",w.id)},[s.createVNode(s.unref(Xi),{class:"h-4 w-4"})],10,U2))),128))])]))}});Object.defineProperty(exports,"httpKeyStorage",{enumerable:!0,get:()=>Ee.httpKeyStorage});Object.defineProperty(exports,"localStorageKeyStorage",{enumerable:!0,get:()=>Ee.localStorageKeyStorage});Object.defineProperty(exports,"memoryKeyStorage",{enumerable:!0,get:()=>Ee.memoryKeyStorage});Object.defineProperty(exports,"openaiCompatibleProvider",{enumerable:!0,get:()=>Ee.openaiCompatibleProvider});Object.defineProperty(exports,"toAIStreamFn",{enumerable:!0,get:()=>Ee.toAIStreamFn});exports.AISidebar=Nf;exports.BubbleMenu=Cc;exports.CommentsSidebar=Of;exports.DetailsDialog=Tf;exports.DocsEditor=c2;exports.DocumentTabsSidebar=H2;exports.EditorToolbar=Sc;exports.EmailDialog=Mf;exports.HeaderBar=_c;exports.HistorySidebar=Af;exports.PageView=g2;exports.SlashMenu=cc;exports.StatusBar=Ec;exports.TOCSidebar=Nc;exports.ThemeToggle=io;exports.defaultLocale=Lo;exports.getLocaleMessages=ic;exports.getLocaleName=sc;exports.getSupportedLocales=lc;exports.isLocale=Er;exports.messages=Cr;exports.provideLocale=oc;exports.useAIProvider=Zf;exports.useEditor=Yl;exports.useLocale=at;exports.useTheme=va;
|