PageSourceSearch

https://copybara.ai/_nuxt/DMYXSxrN.js

js copybara.ai collected 2026-10-02 01:13:14 UTC 46,774 bytes, 3 lines download raw bytes

1import{d as ba,m as ya,u as ka,e as xa,as as Ca,a as h,r as v,p as J,a2 as $a,ar as Pa,o as Sa,q as y,g as C,f as G,s as l,i as a,v as n,t as f,P as me,aA as Tt,y as V,C as K,x as A,aB as At,G as It,z as Ta,F as Aa,j as _,J as Ia,H as Ba,n as Xe,M as za,Q as Bt,N as Ra,ah as Ea}from"./mlHSftCV.js";import{_ as Ua}from"./D8gH8oCB.js";import{_ as Va}from"./BRUdr4Sb.js";import{_ as Ma}from"./DPNu2ZDV.js";import{_ as Da}from"./B-df_aWz.js";import{e as X,u as La,E as zt,_ as Oa,a as Rt,b as qa,C as Fa,T as Na,c as Et,d as Ut,s as Vt,m as Mt}from"./OVHZGVSF.js";import{_ as Ha}from"./BM7qJAFU.js";import{u as Wa,_ as ja,R as Ga}from"./B5tF5ncx.js";import{_ as Ka}from"./BkjkbaCT.js";import{_ as Qa}from"./S7qOhWSM.js";import{_ as Ja}from"./IXjhiucE.js";import{_ as Xa}from"./UP9pJ74D.js";import{_ as Ya}from"./Bn5vlfdh.js";import{p as Za,I as er}from"./m7LZATnu.js";import{u as tr}from"./zCknmvlu.js";import{u as ar}from"./tmja_M1P.js";import{u as rr}from"./B9SElVnB.js";import"./PggbysLa.js";import"./43ylMWMU.js";import"./n4powXH0.js";import"./1vu0pTal.js";import"./D2j7qf-B.js";import"./C6Y-ieo6.js";import"./BSd5RBAV.js";import"./Cv1DxInr.js";import"./LLrsjXCY.js";import"./DmmozC47.js";import"./BxotWEG1.js";import"./COCvUCZ1.js";import"./CnPE6IXJ.js";import"./0QKMTlFd.js";import"./cEDg1LYw.js";import"./ChWG23be.js";import"./YHQ1Kb4N.js";import"./BwdtLfP5.js";import"./DzSaVzON.js";import"./BWFRfgTM.js";import"./CAU8GhaN.js";import"./_KAyX0Ge.js";const sr={key:0,class:"space-y-6 pb-24 lg:pb-0"},or={class:"flex items-center justify-end"},ir={key:0,class:"grid grid-cols-1 lg:grid-cols-3 gap-6 lg:items-start"},lr={class:"lg:col-span-2 editor-column"},nr=["aria-busy"],ur={class:"parse-card__body"},dr=["inert"],cr={key:0,class:"parse-card__overlay"},vr={class:"parse-card__status"},pr={class:"parse-card__phrase"},mr={class:"relative editor-zone","data-tour":"editor-zone"},fr={key:0,class:"editor-rewriting-overlay"},_r={class:"editor-rewriting-skeletons"},gr={class:"editor-rewriting-status mt-4"},wr={key:0,class:"cover-in-editor"},hr={key:0,class:"cover-figure"},br={class:"cover-figure__image"},yr={class:"cover-figure__frame"},kr=["src"],xr={class:"cover-figure__menu-wrap"},Cr={key:0,class:"cover-figure__caption"},$r={key:1,class:"editor-cover-choice"},Pr={class:"flex flex-wrap gap-2 justify-center"},Sr={key:0,class:"mt-3 flex flex-wrap items-center justify-center gap-x-2 gap-y-1 text-xs"},Tr={key:2,class:"cover-media-library"},Ar={key:0,class:"text-sm text-muted py-3 text-center"},Ir={key:1,class:"grid grid-cols-4 gap-2 max-h-48 overflow-auto"},Br=["onClick"],zr=["src","alt"],Rr={key:1,class:"border-t border-default p-4 bg-elevated/50 space-y-2"},Er={class:"flex flex-wrap gap-2"},Ur={class:"editor-save-bar hidden lg:flex"},Vr={key:0,class:"editor-save-bar__hint"},Mr={key:1,class:"editor-save-bar__hint"},Dr={key:2,class:"editor-save-bar__hint"},Lr={class:"hidden lg:block lg:col-span-1 space-y-6"},Or=["aria-busy"],qr={class:"text-xs font-medium text-muted uppercase tracking-wider mb-3 flex items-center gap-2"},Fr={class:"parse-card__body"},Nr=["inert"],Hr={key:0,class:"parse-card__error",role:"alert"},Wr={class:"min-w-0"},jr={class:"text-xs mt-0.5"},Gr={class:"flex items-center gap-2"},Kr={key:0,class:"parse-card__overlay"},Qr={class:"parse-card__status"},Jr={"data-tour":"preset-select",class:"rounded-lg border border-default p-3"},Xr={class:"editor-mobile-tabbar grid lg:hidden","aria-label":"Действия редактора"},Yr=["disabled"],Zr=["disabled"],es={type:"button",class:"editor-mobile-tab"},ts={class:"grid grid-cols-1 lg:grid-cols-2 gap-3"},as={class:"rounded-lg border border-default p-3"},rs={class:"max-h-[60vh] overflow-auto"},ss={class:"whitespace-pre-wrap break-words font-mono text-xs leading-relaxed"},os={class:"rounded-lg border border-default p-3"},is={class:"max-h-[60vh] overflow-auto"},ls={class:"whitespace-pre-wrap break-words font-mono text-xs leading-relaxed"},ns=ba({__name:"ai-editor",setup(us){const L=ya(),I=ka().$supabase,Dt=xa(),Lt=Ca("ai-editor-pending-nav",()=>null);async function fe(t,e){Lt.value={id:t,pendingRewrite:e},e&&za().holdProcess("rewrite"),await Xe(`/dashboard/ai-editor/edit/${t}`)}function d(t,e){Dt.add({title:e,color:t==="success"?"success":t==="info"?"neutral":"error",icon:t==="success"?"i-lucide-check-circle":t==="info"?"i-lucide-clock":"i-lucide-alert-circle"})}function Ye(t){return t==="/dashboard/ai-editor"||t==="/dashboard/ai-editor/"}const ye=h(()=>Ye(L.path)),Ot=h(()=>ye.value),P=v(""),Y=v(!1),B=v(""),k=v(""),g=v(""),z=v(!1),m=v(!1),b=v(!1),S=v(!1),oe=v(""),_e=v(!1),Ze=v(""),et=v("");function qt(){Ze.value=(B.value??"").trim(),et.value=(k.value??"").trim(),_e.value=!0}const Me=["Copybara читает страницу","Copybara изучает контент","Copybara анализирует URL","Copybara смотрит структуру","Copybara обрабатывает страницу","Copybara разбирает контент","Copybara читает сайт","Copybara проверяет страницу","Copybara изучает URL","Copybara собирает контент","Copybara читает материал","Copybara анализирует страницу","Copybara смотрит контент","Copybara обходит страницу","Copybara разбирает URL","Copybara читает содержимое","Copybara изучает сайт","Copybara проверяет контент","Copybara анализирует структуру","Copybara обрабатывает URL"],De=["Copybara переписывает текст","Copybara обновляет формулировки","Copybara редактирует контент","Copybara улучшает структуру","Copybara перерабатывает текст","Copybara уточняет формулировки","Copybara адаптирует контент","Copybara пересобирает текст","Copybara правит структуру","Copybara шлифует текст","Copybara редактирует страницу","Copybara обновляет контент","Copybara переписывает материал","Copybara улучшает подачу","Copybara уточняет текст","Copybara перерабатывает контент","Copybara правит формулировки","Copybara адаптирует текст","Copybara собирает новую версию","Copybara обновляет подачу"],ke=v(0),xe=v(0);let q=null,F=null;J(m,t=>{t?(ke.value=Math.floor(Math.random()*Me.length),q&&clearInterval(q),q=Bt(()=>{ke.value=(ke.value+1)%Me.length},5e3)):q&&(clearInterval(q),q=null)}),J(b,t=>{t?(xe.value=Math.floor(Math.random()*De.length),F&&clearInterval(F),F=Bt(()=>{xe.value=(xe.value+1)%De.length},5e3)):F&&(clearInterval(F),F=null)}),$a(()=>{q&&(clearInterval(q),q=null),F&&(clearInterval(F),F=null)});const Le=h(()=>Me[ke.value]),tt=h(()=>De[xe.value]),R=v(null),o=v(null),x=v(null),ie=v(null),ge=v(!1),Z=v(null),le=v(""),ne=v(""),Ce=v(!1),ee=v(null),at=v(0);let E=0;const N=v(!1),$e=v(!1),H=v(""),te=v(""),ue=v(!1),$=v(null),U=v(""),rt=h(()=>pt.value==="no_image"?!1:!!String(k.value??"").trim()||!!String(g.value??"").trim()),ae=v("none"),M=v(!1);Pa(()=>ye.value?m.value?"parse":b.value||N.value?"rewrite":M.value?"image":null:null);const de=v(null),Pe=v([]),W=v(!1);function re(){const t=ee.value?.getMarkdown?.();return typeof t=="string"&&t.trim()?t:k.value??""}const{presets:O,fetchPresets:Ft}=tr(),{profile:Nt,refreshTokenBalance:Oe}=ar(),Se=h(()=>Za(Nt.value?.subscription_plan)),ce=v(!1),ve=v(!1),se=v(null),qe=v(!1),Te=v(null),Ae=v(!1),Fe=h(()=>!!Te.value?.site);async function st(){Ae.value=!0;try{const{data:t}=await I.auth.getSession(),e=t.session?.access_token;if(!e){Te.value=null;return}Te.value=await $fetch("/api/publishing-targets",{headers:{Authorization:`Bearer ${e}`}})}catch{Te.value=null}finally{Ae.value=!1}}const Ht=h(()=>!Ae.value&&Fe.value);J(ce,t=>{t&&st()});const Ie=h(()=>(O.value||[]).filter(e=>["social","universal"].includes(X(e))).map(e=>({label:e.name?.trim()||"Без названия",value:e.id}))),Ne=h(()=>{const t=x.value;return t?(O.value||[]).find(e=>e.id===t):null}),ot=h(()=>{const t=x.value;return t?(O.value||[]).find(e=>e.id===t):null}),it=h(()=>(O.value||[]).filter(e=>["image_create","universal"].includes(X(e))).map(e=>({label:e.name?.trim()||"Без названия",value:e.id}))),Be=h(()=>{const t=ie.value;if(t)return t;const e=ot.value;if(e?.cover_image_preset_id)return e.cover_image_preset_id;const r=O.value||[],i=r.find(u=>X(u)==="image_create"&&u.is_default);if(i)return i.id;const s=r.find(u=>X(u)==="image_create");if(s)return s.id;const c=r.find(u=>X(u)==="universal"&&u.is_default);return c?c.id:r.find(u=>X(u)==="universal")?.id??null}
1),Wt=h(()=>{const t=Be.value;return t?O.value?.find(r=>r.id===t)?.name?.trim()||"пресет":"по умолчанию"});function jt(){Z.value=Be.value,ge.value=!0}async function Gt(t){if(!o.value)return;const{data:e}=await I.auth.getSession();if(!e.session)return;const r=e.session.access_token,i=ot.value?.cover_image_preset_id??null,s=Z.value,c=!!(s&&s!==i);try{await $fetch(`/api/rewrite-posts/${o.value}`,{method:"PATCH",headers:{Authorization:`Bearer ${r}`},body:{cover_image_preset_id:c?s:null}}),ie.value=c?s:null,d("success","Пресет для картинок обновлён"),t()}catch(u){const w=u;d("error",w?.data?.message||w?.message||"Не удалось сохранить")}}async function Kt(){if(!o.value)return;const{data:t}=await I.auth.getSession();if(!t.session)return;const e=t.session.access_token;try{await $fetch(`/api/rewrite-posts/${o.value}`,{method:"PATCH",headers:{Authorization:`Bearer ${e}`},body:{cover_image_preset_id:null}}),ie.value=null,d("success","Используется пресет из настроек текста")}catch(r){const i=r;d("error",i?.data?.message||i?.message||"Не удалось сбросить")}}const He=h(()=>(O.value||[]).filter(e=>["site_text","social","universal"].includes(X(e)))),lt=h(()=>b.value?x.value:null),nt=h(()=>$e.value&&!!o.value&&!b.value),ut=h(()=>!!(String(g.value??"").trim()||String(k.value??"").trim())&&!b.value&&!z.value&&!m.value);function dt(t={}){const e=Rt(g.value||"",{markdown:!1}),r=e!==(g.value||"");r&&(g.value=e);let i=!1;if(ee.value?.applyTypograph)i=!!ee.value.applyTypograph();else{const u=re(),w=Rt(u,{markdown:!0});w!==u&&(k.value=w,ee.value?.setContentFromMarkdown?.(w,{preserveSelection:!0}
1),i=!0)}const s=re();i&&(k.value=s);const c=r||i;return t.notify&&d(c?"success":"info",c?"Типографика применена":"Текст уже соответствует правилам типографики"),{title:e,body:s}}function ct(){dt({notify:!0})}function Qt(t){return t?{id:t.id,name:t.name,preset_kind:t.preset_kind??t.settings?.preset_kind??null,model:t.model,temperature:t.temperature,max_tokens:t.max_tokens,user_prompt:t.user_prompt||null,cover_image_preset_id:t.cover_image_preset_id??null,settings:t.settings_text??t.settings??null,settings_image:t.settings_image??null,system_prompt_locked:t.system_prompt_locked||null,system_prompt_content_locked:t.system_prompt_content_locked||null,system_prompt_image:t.system_prompt_image||null}:null}const{isDebug:We}=rr(),we=v(null);async function vt(t){if(!We.value||!t){we.value=null;return}try{const{data:e}=await I.auth.getSession();if(!e.session)return;we.value=await $fetch(`/api/rewrite-posts/${t}/rewrite-log`,{headers:{Authorization:`Bearer ${e.session.access_token}`}})}catch{we.value=null}}const Jt=h(()=>We.value?[{title:"Реестр рерайтов",hint:"Задачи и токены по текущему материалу и связанной цепочке.",method:"GET",path:o.value?`/api/rewrite-posts/${o.value}/rewrite-log`:"/api/rewrite-posts/:id/rewrite-log",data:we.value||{count:0,tokens_total:0,operations:[]}},{title:"Объекты на странице",data:{url:P.value,title:g.value,rewrite_id:R.value,rewrite_post_id:o.value,original_content:B.value,rewritten_content:k.value,add_backlink:Y.value,cover_image_url:$.value,cover_caption:U.value,cover_image_preset_id:Be.value}},{title:"Пресет (поля формы + locked-промпт)",hint:"Воркер читает system_prompt_locked с пресета, блоки формы на лету не пересобирает.",data:Qt(Ne.value)},{title:"В обработку: парсинг",method:"POST",path:"/api/rewrite/parse",data:{url:P.value,add_backlink:Y.value}},{title:"В обработку: рерайт",method:"POST",path:"/api/rewrite/rewrite",data:{content:k.value,title:g.value,preset_id:x.value,source_request_id:R.value||null}},{title:"В обработку: обложка",method:"POST",path:o.value?`/api/rewrite-posts/${o.value}/generate-cover`:"/api/rewrite-posts/:id/generate-cover",data:{rewrite_post_id:o.value,preset_id:x.value,cover_image_preset_id:Be.value}},{title:"В обработку: доработка обложки",method:"POST",path:o.value?`/api/rewrite-posts/${o.value}/refine-cover`:"/api/rewrite-posts/:id/refine-cover",data:{comment:te.value,cover_image_url:$.value}}]:[]);J([We,o],()=>{vt(o.value)},{immediate:!0});const pt=h(()=>{const t=Ne.value;if(!t)return"new_image";const e=t.settings_image??t.settings;return e?.image_mode==="no_image"||e?.image_disabled?"no_image":e?.image_mode==="photo_cleanup"||e?.image_use_for_regeneration?"photo_cleanup":"new_image"});h(()=>pt.value!=="no_image");const{loadRewriterModels:Xt,findRewriterModel:Yt}=Wa(),mt=h(()=>Yt(Ne.value?.model)),Zt=h(()=>mt.value?.supports_rewrite_image_prompt===!1),ea=h(()=>mt.value?.supports_rewrite_title===!1),ta=h(()=>[[{label:"Создать новое",icon:"i-lucide-image",disabled:!o.value||!de.value||M.value,onSelect:()=>{kt()}},{label:"Доработать",icon:"i-lucide-wand",disabled:!Se.value||!$.value||M.value,onSelect:()=>{Se.value&&document.getElementById("cover-refine-bar")?.scrollIntoView({behavior:"smooth",block:"nearest"})}},{label:"Из медиатеки",icon:"i-lucide-folder-open",onSelect:()=>{W.value=!W.value}},{label:"Открыть в просмотре",icon:"i-lucide-maximize-2",onSelect:()=>{$.value&&da({url:$.value,alt_text:U.value})}}],[{label:"Удалить",icon:"i-lucide-trash-2",color:"error",onSelect:()=>{ua()}}]]);J(rt,async t=>{if(t)try{const{data:e}=await I.auth.getSession();e.session&&await yt(e.session.access_token)}catch{}}),J([()=>O.value,x],()=>{const t=x.value;if(!t||(O.value||[]).some(c=>c.id===t))return;const i=He.value||[];if(i.length===0)return;const s=i.find(c=>c.is_default);x.value=s?.id??i[0]?.id??null});function ze(t){return Array.isArray(t)?String(t[0]||"").trim():typeof t=="string"?t.trim():""}function Re(t){const e=t.trim();if(!e)return"";try{return decodeURIComponent(e)}catch{return e}}function Ee(t,e){const r=t.startsWith("?")?t.slice(1):t;return r?Re(new URLSearchParams(r).get(e)||""):""}function ft(){let t=Re(ze(L.query.url)||ze(L.query.source_url)),e=Re(ze(L.query.id)),r=Re(ze(L.query.post_id));const i=L.fullPath.includes("?")?L.fullPath.slice(L.fullPath.indexOf("?")):"",c=window.location.search||i;return c&&(t||(t=Ee(c,"url")||Ee(c,"source_url")),e||(e=Ee(c,"id")),r||(r=Ee(c,"post_id"))),{url:t,id:e,postId:r}}function je(){E+=1,P.value="",Y.value=!1,B.value="",k.value="",g.value="",z.value=!1,m.value=!1,b.value=!1,N.value=!1,S.value=!1,oe.value="",R.value=null,o.value=null,le.value="",ne.value="",$e.value=!1,H.value="",te.value="",$.value=null,U.value="",ae.value="none",M.value=!1,de.value=null,ie.value=null,ge.value=!1,Z.value=null,W.value=!1,ce.value=!1,ve.value=!1,ue.value=!1,_e.value=!1,we.value=null,at.value+=1,ee.value?.setContentFromMarkdown?.("")}function aa(){if(m.value||b.value||N.value)return!0;const t=re();return!(P.value.trim()||g.value.trim()||t.trim()||B.value.trim())?!1:o.value?Ke():!0}let Ue="";async function ra(){if(aa()&&!window.confirm("Есть несохранённые изменения. Создать новую запись? Текущий текст в редакторе будет сброшен."))return;Ue="empty",je();const t=ft();(t.url||t.id||t.postId)&&await Xe({path:"/dashboard/ai-editor"},{replace:!0})}async function sa(){if(!Ye(L.path)){Ue="";return}const{url:t,id:e,postId:r}=ft(),i=r?`post:${r}`:t?`url:${t}`:e?`id:${e}
1`:"empty";if(i!==Ue){if(Ue=i,i==="empty"){je();return}if(je(),r){await va(r);return}if(t){P.value=t,await he();return}await oa(e)}}Sa(()=>{(async()=>{try{await Oe(),await Ft();const t=(O.value||[]).filter(r=>["site_text","social","universal"].includes(X(r))),e=t.find(r=>r.is_default)??t[0];e&&!x.value&&(x.value=e.id),await st()}catch(t){console.error("AI editor bootstrap failed:",t)}})(),Xt()}),J(()=>L.fullPath,()=>{sa()},{immediate:!0});async function oa(t){const e=E;try{const{data:r}=await I.auth.getSession();if(!r.session)throw new Error("Не авторизован");const i=r.session.access_token,s=await $fetch(`/api/rewrite/${t}`,{headers:{Authorization:`Bearer ${i}`}});if(e!==E)return;R.value=s.id,P.value=s.url,s.parsed_markdown?B.value=s.parsed_markdown:s.parsed_content?.markdown&&(B.value=s.parsed_content.markdown),s.parsed_content?.edited_content&&(k.value=s.parsed_content.edited_content),s.parsed_content?.edited_title?g.value=s.parsed_content.edited_title:s.title&&(g.value=s.title),d("success","Контент загружен")}catch(r){console.error("Error loading rewrite:",r),d("error",r?.data?.message||r?.message||"Не удалось загрузить контент")}}function pe(t){S.value=!0,oe.value=t,R.value=null,d("error",t)}function _t(t){const e=t.parsed_markdown?.trim()||t.parsed_content?.markdown?.trim()||"",r=t.title?.trim()||"";return!!e||!!r}async function he(){if(!P.value.trim()){d("error","Введите URL для парсинга");return}const t=E;m.value=!0,S.value=!1,oe.value="";try{const{data:e}=await I.auth.getSession();if(!e.session)throw new Error("Не авторизован");const r=e.session.access_token,i=await $fetch("/api/rewrite/parse",{method:"POST",headers:{Authorization:`Bearer ${r}`},body:{url:P.value,add_backlink:Y.value}});if(t!==E)return;if(R.value=i.id,i.status==="completed"){if(!_t(i)){pe("Не удалось получить контент со страницы. Попробуйте другой URL.");return}gt(i);const s=await wt();if(t!==E)return;if(s&&o.value){await fe(o.value,!1);return}d("success","Контент успешно загружен");return}if(i.status==="failed"){pe(i.error_message||"Не удалось распарсить URL");return}await ia(i.id,r,t)}catch(e){if(t!==E)return;console.error("Error parsing URL:",e),pe(e?.data?.message||e?.message||"Не удалось распарсить URL")}finally{t===E&&(m.value=!1)}}function gt(t){t.parsed_markdown?(B.value=t.parsed_markdown,k.value=t.parsed_markdown):t.parsed_content?.markdown&&(B.value=t.parsed_content.markdown,k.value=t.parsed_content.markdown),t.title&&(g.value=t.title),S.value=!1,oe.value="",o.value=null,le.value="",ne.value=""}async function wt(){return R.value?be({silent:!0}):!1}async function ia(t,e,r=E){const c=Date.now();for(;Date.now()-c<9e4;){if(await new Promise(w=>setTimeout(w,1500)),r!==E)return;const u=await $fetch(`/api/rewrite/${t}`,{headers:{Authorization:`Bearer ${e}`}});if(r!==E)return;if(u.status==="completed"){if(!_t(u)){pe("Не удалось получить контент со страницы. Попробуйте другой URL.");return}gt(u);const w=await wt();if(r!==E)return;if(w&&o.value){await fe(o.value,!1);return}d("success","Контент успешно загружен");return}if(u.status==="failed"){pe(u.error_message||"Не удалось распарсить URL");return}}pe("Превышено время ожидания. Проверьте позже или обновите страницу.")}J(P,()=>{S.value&&(S.value=!1,oe.value="")});async function ht(t){if(t&&(x.value=t.id),!x.value){d("error","Выберите пресет для переписывания");return}if(!String(k.value??"").trim()){d("error","Введите текст в редакторе");return}ue.value=!1,b.value=!0,ce.value=!1;try{const{data:e}=await I.auth.getSession();if(!e.session)throw new Error("Не авторизован");await Oe();const r=e.session.access_token,i=await $fetch("/api/rewrite/rewrite",{method:"POST",headers:{Authorization:`Bearer ${r}`},body:{content:k.value,title:g.value,preset_id:x.value,source_request_id:R.value||null}});o.value=i.id,await fe(i.id,!0);return}catch(e){console.error("Error rewriting with AI:",e),d("error",e?.data?.message||e?.message||"Не удалось создать задачу на переписывание")}finally{b.value=!1}}async function la(t){if(!o.value){d("error","Сначала сохраните материал, затем дорабатывайте фрагменты");return}if(!x.value){d("error","Выберите пресет для переписывания");return}const e=t.text.trim();if(!e)return;const r=t.comment.trim();if(!r){d("error","Введите инструкцию для доработки фрагмента");return}N.value=!0;try{const{data:i}=await I.auth.getSession();if(!i.session)throw new Error("Не авторизован");const s=i.session.access_token,c={preset_id:x.value,block_text:e,comment:r},u=await $fetch(`/api/rewrite-posts/${o.value}/refine-selection`,{method:"POST",headers:{Authorization:`Bearer ${s}`},body:c});let w=1500,T=!1;const D=Date.now();for(;;){await new Promise(Q=>setTimeout(Q,w));const j=await $fetch(`/api/backend-tasks/${u.task_id}`,{headers:{Authorization:`Bearer ${s}`}});if(j.status==="completed"){let Q=(j.refined_block||"").trim();if(Q||(await new Promise(Ve=>setTimeout(Ve,500)),Q=((await $fetch(`/api/backend-tasks/${u.task_id}`,{headers:{Authorization:`Bearer ${s}`}})).refined_block||"").trim()),!Q){d("error","В задаче нет обновлённого текста фрагмента");return}if(!(ee.value?.replaceSelectionRange(t.from,t.to,Q,e)??!1)){d("error","Не удалось применить обновлённый ф
1рагмент");return}break}if(j.status==="failed"){d("error",j.error_message||"Не удалось доработать фрагмент");return}!T&&Date.now()-D>12e4&&(T=!0,w=3e3,d("info","В этот раз дольше обычного"))}d("success","Фрагмент обновлён")}catch(i){d("error",i?.data?.message||i?.message||"Не удалось доработать фрагмент")}finally{N.value=!1}}async function bt(){if(!o.value)return;const t=H.value.trim();if(!t){d("error","Опишите, что доработать");return}b.value=!0;try{const{data:e}=await I.auth.getSession();if(!e.session)throw new Error("Не авторизован");const r=e.session.access_token;await Oe();const i=re(),s=await $fetch(`/api/rewrite-posts/${o.value}/refine`,{method:"POST",headers:{Authorization:`Bearer ${r}`},body:{comment:t,content:i}});let c=2e3,u=!1;const w=Date.now();for(;;){await new Promise(D=>setTimeout(D,c));const T=await $fetch(`/api/backend-tasks/${s.task_id}`,{headers:{Authorization:`Bearer ${r}`}});if(T.status==="completed"){const D=await $fetch(`/api/rewrite-posts/${o.value}`,{headers:{Authorization:`Bearer ${r}`}});if(D.content){const j=Vt(D.content);k.value=j,ne.value=j}D.title&&(g.value=Mt(D.title),le.value=g.value),D.image_prompt&&(de.value=D.image_prompt),H.value="",$e.value=!0,vt(o.value),d("success","Текст доработан");return}if(T.status==="failed"){d("error",T.error_message||"Не удалось доработать текст");return}!u&&Date.now()-w>18e4&&(u=!0,c=4e3,d("info","В этот раз дольше обычного"))}}catch(e){d("error",e?.data?.message||e?.message||"Не удалось доработать текст")}finally{b.value=!1}}async function yt(t){try{const e=await $fetch("/api/image-processor/media-library",{headers:{Authorization:`Bearer ${t}`},query:{limit:50,page:1}});Pe.value=e.images||[]}catch{Pe.value=[]}}function na(t){$.value=t.url,U.value=t.alt_text||"",ae.value="from_media",W.value=!1}function ua(){$.value=null,U.value="",ae.value="none",W.value=!1}const Ge=v(null);function da(t){Ge.value={url:t.url,alt_text:t.alt_text??null,original_image_url:t.original_image_url??void 0}}async function kt(){if(!(!o.value||!x.value)){M.value=!0;try{const{data:t}=await I.auth.getSession();if(!t.session)throw new Error("Не авторизован");const e=t.session.access_token,r=await $fetch(`/api/rewrite-posts/${o.value}/generate-cover`,{method:"POST",headers:{Authorization:`Bearer ${e}`}}),i=9e4,s=2e3,c=Date.now();for(;Date.now()-c<i;){await new Promise(w=>setTimeout(w,s));const u=await $fetch(`/api/backend-tasks/${r.task_id}`,{headers:{Authorization:`Bearer ${e}`}});if(u.status==="completed"){const w=await $fetch(`/api/rewrite-posts/${o.value}`,{headers:{Authorization:`Bearer ${e}`}});w.cover_image_url&&($.value=w.cover_image_url,U.value=w.cover_caption??"",ae.value="create_new"),d("success","Изображение сгенерировано");return}if(u.status==="failed"){d("error",u.error_message||"Ошибка генерации");return}}d("error","Превышено время ожидания генерации")}catch(t){d("error",t?.data?.message||t?.message||"Ошибка запуска генерации")}finally{M.value=!1}}}async function ca(){if(!Se.value){d("error",er);return}if(!o.value)return;const t=te.value.trim();if(!t){d("error","Опишите, что изменить на текущем изображении");return}if(!$.value){d("error","Сначала создайте или выберите обложку — доработка идёт от текущего изображения");return}M.value=!0;try{const{data:e}=await I.auth.getSession();if(!e.session)throw new Error("Не авторизован");const r=e.session.access_token;await $fetch(`/api/rewrite-posts/${o.value}`,{method:"PATCH",headers:{Authorization:`Bearer ${r}`},body:{cover_image_url:$.value,cover_image_alt_text:U.value||null}});const i=await $fetch(`/api/rewrite-posts/${o.value}/refine-cover`,{method:"POST",headers:{Authorization:`Bearer ${r}`},body:{comment:t,cover_image_url:$.value}}),s=9e4,c=2e3,u=Date.now();for(;Date.now()-u<s;){await new Promise(T=>setTimeout(T,c));const w=await $fetch(`/api/backend-tasks/${i.task_id}`,{headers:{Authorization:`Bearer ${r}`}});if(w.status==="completed"){const T=await $fetch(`/api/rewrite-posts/${o.value}`,{headers:{Authorization:`Bearer ${r}`}});T.cover_image_url&&($.value=T.cover_image_url,U.value=T.cover_caption??"",ae.value="create_new"),T.image_prompt&&(de.value=T.image_prompt),te.value="",d("success","Обложка доработана");return}if(w.status==="failed"){d("error",w.error_message||"Не удалось доработать обложку");return}}d("error","Превышено время ожидания доработки")}catch(e){d("error",e?.data?.message||e?.message||"Не удалось запустить доработку обложки")}finally{M.value=!1}}async function va(t){const e=E;try{const{data:r}=await I.auth.getSession();if(!r.session)throw new Error("Не авторизован");const i=r.session.access_token,s=await $fetch(`/api/rewrite-posts/${t}`,{headers:{Authorization:`Bearer ${i}`}});if(e!==E)return;o.value=t;const c=s.metadata?.cover_image_preset_id;
1if(ie.value=typeof c=="string"&&c.trim()?c.trim():null,s.preset_id&&(x.value=s.preset_id),s.source_request_id)try{R.value=s.source_request_id;const u=await $fetch(`/api/rewrite/${s.source_request_id}`,{headers:{Authorization:`Bearer ${i}`}});u.parsed_markdown?B.value=u.parsed_markdown:u.parsed_content?.markdown&&(B.value=u.parsed_content.markdown),u.url&&(P.value=u.url)}catch(u){console.warn("Could not load source content:",u),B.value="Исходный контент недоступен"}else B.value="Исходный контент не сохранен";s.content&&(k.value=Vt(s.content),$e.value=!0),s.title&&(g.value=Mt(s.title)),s.image_prompt&&(de.value=s.image_prompt),s.cover_image_url?($.value=s.cover_image_url,U.value=s.cover_caption??"",ae.value="from_media"):($.value=null,U.value="",ae.value="none"),await yt(i),le.value=g.value,ne.value=k.value,d("success","Переписанный контент загружен")}catch(r){console.error("Error loading rewrite post:",r),d("error",r?.data?.message||r?.message||"Не удалось загрузить переписанный контент")}}async function be(t={}){const{body:e}=dt();if(!((e||"").trim()||(g.value||"").trim()))return t.silent||d("error","Добавьте заголовок или текст для сохранения"),!1;if(Ce.value)return!1;Ce.value=!0,t.silent||(z.value=!0);const i=!!o.value;try{const{data:s}=await I.auth.getSession();if(!s.session)throw new Error("Не авторизован");const c=s.session.access_token;if(o.value)await $fetch(`/api/rewrite-posts/${o.value}`,{method:"PATCH",headers:{Authorization:`Bearer ${c}`},body:{content:e,title:g.value,cover_image_url:$.value??null,cover_image_alt_text:U.value||null}});else if(R.value){let u=o.value;if(!u){const w=await $fetch(`/api/rewrite-posts/by-source?source_request_id=${R.value}`,{headers:{Authorization:`Bearer ${c}`}});w?.id&&(u=w.id)}if(u)await $fetch(`/api/rewrite-posts/${u}`,{method:"PATCH",headers:{Authorization:`Bearer ${c}`},body:{content:e,title:g.value,cover_image_url:$.value??null,cover_image_alt_text:U.value||null}}),o.value=u;else{const{id:w}=await $fetch("/api/rewrite-posts/from-parsed",{method:"POST",headers:{Authorization:`Bearer ${c}`},body:{source_request_id:R.value,title:g.value,content:e,preset_id:x.value||void 0}});o.value=w}}else{const{id:u}=await $fetch("/api/rewrite-posts/create-draft",{method:"POST",headers:{Authorization:`Bearer ${c}`},body:{title:g.value,content:e,preset_id:x.value||void 0}});o.value=u}return le.value=g.value,ne.value=e,t.silent||(i?d("success","Изменения сохранены"):R.value?d("success","Статья сохранена (без переписывания)"):d("success","Черновик сохранён")),!0}catch(s){return console.error("Error saving content:",s),d("error",s?.data?.message||s?.message||"Не удалось сохранить"),!1}finally{Ce.value=!1,t.silent||(z.value=!1)}}function Ke(){const t=re();return(g.value||"")!==(le.value||"")||(t||"")!==(ne.value||"")}La({getHasChanges:Ke,getCanAutosave:()=>!!o.value,isBusy:()=>Ce.value||z.value||m.value||b.value||N.value,save:be});const xt=h(()=>Ke()),Ct=h(()=>String(k.value??"").trim()||String(g.value??"").trim()?o.value?xt.value:!0:!1);async function $t(){!o.value||!Fe.value||(ce.value=!1,await fe(o.value,!1))}async function pa(){if(!o.value&&(!await be({silent:!0})||!o.value)){d("error","Сначала сохраните материал");return}await fe(o.value,!1)}async function ma(){const t=[g.value,re()].filter(Boolean).join(`
2
3`).trim();if(!t){d("error","Нет текста для копирования");return}try{await navigator.clipboard.writeText(t),d("success","Текст скопирован")}catch{d("error","Не удалось скопировать")}}const fa=h(()=>[[{label:"Открыть черновик",icon:"i-lucide-file-pen",disabled:!o.value&&!String(k.value??"").trim()&&!String(g.value??"").trim(),onSelect:()=>{pa()}},{label:"Опубликовать на сайте",icon:"i-lucide-globe",disabled:!o.value||!Fe.value,onSelect:()=>{$t()}},{label:"Пост для соцсетей",icon:"i-lucide-share-2",disabled:!o.value||Ie.value.length===0,onSelect:()=>{Pt()}},{label:"Скопировать текст",icon:"i-lucide-copy",onSelect:()=>{ma()}}]]);function Pt(){se.value=Ie.value[0]?.value??null,ve.value=!0}async function _a(){if(!(!o.value||!se.value)){qe.value=!0;try{const{data:t}=await I.auth.getSession();if(!t.session)throw new Error("Не авторизован");const e=t.session.access_token,{id:r}=await $fetch(`/api/rewrite-posts/${o.value}/duplicate-for-social`,{method:"POST",headers:{Authorization:`Bearer ${e}`},body:{preset_id:se.value}});ce.value=!1,ve.value=!1,await Xe({path:`/dashboard/ai-editor/edit/${r}`,query:{autoRewrite:"1"}})}catch(t){const e=t;d("error",e?.data?.message||e?.message||"Не удалось создать копию")}finally{qe.value=!1}}}return(t,e)=>{const r=Ta,i=Ua,s=Aa,c=Va,u=Ma,w=Da,T=qa,D=Ha,j=ja,Q=Ka,St=Qa,Qe=Ja,Ve=Xa,Je=Ya,ga=Ra,wa=Oa;return _(),y(It,null,[a(ye)?(_(),y("div",sr,[n("div",or,[l(r,{variant:"ghost",icon:"i-lucide-file-plus",disabled:a(m)||a(b),onClick:ra},{default:f(()=>[...e[19]||(e[19]=[A(" Новая запись ",-1)])]),_:1},8,["disabled"])]),a(Ot)?(_(),y("div",ir,[n("div",lr,[a(B)?C("",!0):(_(),y("div",{key:0,class:me(["lg:hidden parse-card rounded-lg border border-default p-3 mb-4",{"parse-card--busy":a(m),"parse-card--error":a(S)&&!a(m)}]),"aria-busy":a(m)},[e[22]||(e[22]=n("p",{class:"text-xs font-medium text-muted uppercase tracking-wider mb-2"}," По ссылке ",-1)),n("div",ur,[n("div",{class:me(["space-y-2",{"parse-card__content--busy":a(m)}]),inert:a(m)},[l(i,{modelValue:a(P),"onUpdate:modelValue":e[0]||(e[0]=p=>V(P)?P.value=p:null),placeholder:"https://example.com/article",size:"md",class:"w-full",disabled:a(m),color:a(S)&&!a(m)?"error":void 0,onKeyup:Tt(he,["enter"])},{trailing:f(()=>[l(r,{color:a(S)&&!a(m)?"error":"primary",variant:"ghost",size:"xs",square:"",icon:"i-lucide-download",loading:a(m),disabled:!a(P).trim()||a(m),"aria-label":a(S)&&!a(m)?"Повторить парсинг":"Спарсить",onClick:he},null,8,["color","loading","disabled","aria-label"])]),_:1},8,["modelValue","disabled","color"]),e[20]||(e[20]=n("p",{class:"text-xs text-muted"},"Вставьте ссылку или напишите текст в редакторе.",-1))],10,dr),a(m)?(_(),y("div",cr,[e[21]||(e[21]=n("div",{class:"parse-card__shimmer","aria-hidden":"true"},null,-1)),n("div",vr,[l(s,{name:"i-lucide-loader-2",class:"parse-card__spinner"}),n("p",pr,K(a(Le)),1)])])):C("",!0)])],10,nr)),l(D,{class:"editor-card",ui:{root:"border-0 shadow-none",header:"hidden",body:"p-0"}},{default:f(()=>[n("div",mr,[a(b)?(_(),y("div",fr,[n("div",_r,[l(c,{class:"h-5 w-3/4 max-w-md mb-3"}),l(c,{class:"h-4 w-full mb-2"}),l(c,{class:"h-4 w-full mb-2"}),l(c,{class:"h-4 w-5/6 mb-2"}),l(c,{class:"h-4 w-full mb-2"}),l(c,{class:"h-4 w-4/5 mb-3"}),l(c,{class:"h-4 w-full mb-2"}),l(c,{class:"h-4 w-2/3"})]),n("div",gr,[l(s,{name:"i-lucide-loader-2",class:"editor-rewriting-spinner"}),l(At,{name:"parse-phrase",mode:"out-in"},{default:f(()=>[(_(),y("p",{key:a(tt),class:"editor-rewriting-phrase"},K(a(tt)),1))]),_:1})])])):C("",!0),(_(),G(T,{key:a(at),ref_key:"editorRef",ref:ee,title:a(g),"onUpdate:title":e[5]||(e[5]=p=>V(g)?g.value=p:null),modelValue:a(k),"onUpdate:modelValue":e[6]||(e[6]=p=>V(k)?k.value=p:null),"with-title":"","title-placeholder":"Заголовок сгенерируется при переписывании",placeholder:"Напишите или вставьте текст для переписывания…",disabled:a(z)||a(b)||a(N),"rewriting-selection":a(N),class:me({"editor--blocked":a(b)}),onRewriteSelection:la},{"title-actions":f(()=>[l(Na,{"preset-id":a(x),title:a(g),content:re(),"rewrite-post-id":a(o),disabled:a(z)||a(b)||a(N),onSelect:e[1]||(e[1]=p=>g.value=p)},null,8,["preset-id","title","content","rewrite-post-id","disabled"])]),"after-title":f(()=>[a(rt)?(_(),y("div",wr,[a($)?(_(),y("div",hr,[n("div",br,[n("div",yr,[n("img",{src:a($),alt:"",class:"cover-figure__img"},null,8,kr),n("div",xr,[l(u,{items:a(ta),content:{align:"end"}},{default:f(()=>[l(r,{color:"neutral",variant:"ghost",square:"",size:"sm",icon:"i-lucide-more-horizontal",class:"cover-figure__menu",onClick:e[2]||(e[2]=Ia(()=>{},["stop"]))})]),_:1},8,["items"])])])]),a(U)?(_(),y("p",Cr,K(a(U)),1)):C("",!0),l(Fa,{id:"cover-refine-bar",modelValue:a(te),"onUpdate:modelValue":e[3]||(e[3]=p=>V(te)?te.value=p:null),disabled:a(M)||!a(o),loading:a(M),locked:!a(Se),onSubmit:ca},null,8,["modelValue","disabled","loading","locked"])])):(_(),y("div",$r,[l(Ga,{class:"mb-3 mx-auto max-w-md","lacks-title":a(ea),"lacks-image-prompt":a(Zt)},null,8,["lacks-title","lacks-image-prompt"]),e[28]||(e[28]=n("p",{class:"text-sm text-muted mb-3 text-center"},"Выберите обложку:",-1)),n("div",Pr,[l(r,{size:"sm",variant:"outline",icon:"i-lucide-image",loading:a(M),disabled:!a(o)||!a(de)||a(M),onClick:kt},{default:f(()=>[...e[23]||(e[23]=[A(" Создать новое ",-1)])]),_:1},8,["loading","disabled"]),l(r,{size:"sm",variant:"outline",icon:"i-lucide-folder-open",color:a(W)?"primary":"neutral",onClick:e[4]||(e[4]=p=>W.value=!a(W))},{default:f(()=>[...e[24]||(e[24]=[A(" Из медиатеки ",-1)])]),_:1},8,["color"])]),a(o)&&a(it).length>0?(_(),y("div",Sr,[e[27]||(e[27]=n("span",{class:"text-muted"},"Пресет:",-1)),l(w,{color:"neutral",variant:"subtle"},{default:f(()=>[A(K(a(Wt)),1)]),_:1}),l(r,{size:"xs",variant:"link",onClick:jt},{default:f(()=>[...e[25]||(e[25]=[A(" Изменить ",-1)])]),_:1}),a(ie)?(_(),G(r,{key:0,size:"xs",variant:"ghost",onClick:Kt},{default:f(()=>[...e[26]||(e[26]=[A(" Как в пресете текста ",-1)])]),_:1})):C("",!0)])):C("",!0)])),a(W)?(_(),y("div",Tr,[e[29]||(e[29]=n("p",{class:"text-xs text-muted mb-2 text-center"},"Выберите изображение:",-1)),a(Pe).length===0?(_(),y("div",Ar," Медиатека пуста. Загрузите изображения в разделе «Очистка фото». ")):(_(),y("div",Ir,[(_(!0),y(It,null,Ba(a(Pe),p=>(_(),y("button",{key:p.id,type:"button",class:"rounded-lg overflow-hidden border border-default aspect-square hover:ring-2 ring-primary/50",onClick:ha=>na(p)},[n("img",{src:p.url,alt:p.alt_text||"",class:"w-full h-full object-cover"},null,8,zr)],8,Br))),128))]))])):C("",!0)])):C("",!0)]),_:1},8,["title","modelValue","disabled","rewriting-selection","class"])),a(ce)&&a(o)?(_(),y("div",Rr,[e[32]||(e[32]=n("p",{class:"text-sm font-medium"},"Сайтовый текст готов",-1)),e[33]||(e[33]=n("p",{class:"text-xs text-muted"}," Можно опубликовать на сайте или сделать отдельный пост для соцсетей — это новый материал. ",-1)),n("div",Er,[l(r,{size:"sm",icon:"i-lucide-globe",loading:a(Ae),disabled:!a(Ht),onClick:$t},{default:f(()=>[...e[30]||(e[30]=[A(" На сайте ",-1)])]),_:1},8,["loading","disabled"]),l(r,{size:"sm",variant:"outline",icon:"i-lucide-share-2",disabled:a(Ie).length===0,onClick:Pt},{default:f(()=>[...e[31]||(e[31]=[A(" Пост для соцсетей ",-1)])]),_:1},8,["disabled"])])])):C("",!0)])]),_:1}),n("div",Ur,[a(xt)&&a(o)?(_(),y("div",Vr," Есть несохранённые изменения ")):a(o)?(_(),y("div",Mr," Изменения сохраняются автоматически каждые 25 секунд ")):!a(o)&&(a(k)||a(g))?(_(),y("div",Dr,K(a(R)?"Можно сохранить без переписывания или выбрать пресет":"Можно сохранить черновик или переписать с ИИ"),1)):C("",!0),l(r,{"data-tour":"save-btn",loading:a(z),disabled:!a(Ct),size:"md",class:"editor-save-bar__btn",onClick:be},{default:f(()=>[...e[34]||(e[34]=[A(" Сохранить ",-1)])]),_:1},8,["loading","disabled"])])]),n("div",Lr,[l(j,{blocks:a(Jt)},null,8,["blocks"]),a(B)?C("",!0):(_(),y("div",{key:0,class:me(["parse-card rounded-lg border border-default p-4",{"parse-card--busy":a(m),"parse-card--error":a(S)&&!a(m)}]),"aria-busy":a(m)},[n("p",qr,[a(S)&&!a(m)?(_(),G(s,{key:0,name:"i-lucide-alert-triangle",class:"parse-card__header-icon"})):C("",!0),e[35]||(e[35]=A(" Переписать по ссылке ",-1))]),n("div",Fr,[n("div",{class:me(["space-y-2",{"parse-card__content--busy":a(m)}]),inert:a(m)},[a(S)&&!a(m)?(_(),y("div",Hr,[l(s,{name:"i-lucide-alert-circle",class:"parse-card__error-icon shrink-0"}),n("div",Wr,[e[36]||(e[36]=n("p",{class:"text-sm font-medium"},"Парсинг завершился с ошибкой",-1)),n("p",jr,K(a(oe)||"Не удалось получить заголовок и текст со страницы. Проверьте URL и попробуйте ещё раз."),1)])])):C("",!0),l(i,{"data-tour":"parse-url-input",modelValue:a(P),"onUpdate:modelValue":e[7]||
3(e[7]=p=>V(P)?P.value=p:null),placeholder:"https://example.com/article",size:"md",class:"w-full",disabled:a(m),color:a(S)&&!a(m)?"error":void 0,onKeyup:Tt(he,["enter"])},{trailing:f(()=>[l(r,{color:a(S)&&!a(m)?"error":"primary",variant:"ghost",size:"xs",square:"",icon:"i-lucide-download",loading:a(m),disabled:!a(P).trim()||a(m),"aria-label":a(S)&&!a(m)?"Повторить парсинг":"Спарсить",onClick:he},null,8,["color","loading","disabled","aria-label"])]),_:1},8,["modelValue","disabled","color"]),n("div",Gr,[l(Q,{modelValue:a(Y),"onUpdate:modelValue":e[8]||(e[8]=p=>V(Y)?Y.value=p:null),id:"add_backlink",disabled:a(m)},null,8,["modelValue","disabled"]),e[37]||(e[37]=n("label",{class:"text-xs text-muted cursor-pointer",for:"add_backlink"}," Адрес источника в конец статьи ",-1))]),e[38]||(e[38]=n("p",{class:"text-xs text-muted"}," Вставьте ссылку или напишите текст в редакторе. ",-1))],10,Nr),a(m)?(_(),y("div",Kr,[e[39]||(e[39]=n("div",{class:"parse-card__shimmer","aria-hidden":"true"},null,-1)),n("div",Qr,[l(s,{name:"i-lucide-loader-2",class:"parse-card__spinner"}),l(At,{name:"parse-phrase",mode:"out-in"},{default:f(()=>[(_(),y("p",{key:a(Le),class:"parse-card__phrase"},K(a(Le)),1))]),_:1})])])):C("",!0)])],10,Or)),a(B)&&String(a(k)).trim()?(_(),G(r,{key:1,size:"xs",variant:"ghost",icon:"i-lucide-diff",onClick:qt},{default:f(()=>[...e[40]||(e[40]=[A(" Сравнить с исходной ",-1)])]),_:1})):C("",!0),n("div",Jr,[l(zt,{presets:a(He),"selected-preset-id":a(x),disabled:a(b)||a(z),"busy-preset-id":a(lt),onSelect:ht},{default:f(()=>[a(ut)?(_(),G(Et,{key:0,disabled:a(b)||a(z)||a(m),onApply:ct},null,8,["disabled"])):C("",!0),a(nt)?(_(),G(Ut,{key:1,modelValue:a(H),"onUpdate:modelValue":e[9]||(e[9]=p=>V(H)?H.value=p:null),disabled:a(b),loading:a(b),onSubmit:bt},null,8,["modelValue","disabled","loading"])):C("",!0)]),_:1},8,["presets","selected-preset-id","disabled","busy-preset-id"])])])])):C("",!0),n("nav",Xr,[n("button",{type:"button",class:"editor-mobile-tab",disabled:a(b),onClick:e[10]||(e[10]=p=>ue.value=!0)},[l(s,{name:"i-lucide-sparkles",class:"size-5"}),e[41]||(e[41]=n("span",null,"Пресеты",-1))],8,Yr),n("button",{type:"button",class:"editor-mobile-tab","data-tour":"save-btn-mobile",disabled:!a(Ct)||a(z),onClick:be},[l(s,{name:a(z)?"i-lucide-loader-2":"i-lucide-save",class:me(["size-5",{"animate-spin":a(z)}])},null,8,["name","class"]),e[42]||(e[42]=n("span",null,"Сохранить",-1))],8,Zr),l(u,{items:a(fa),content:{side:"top",align:"center"}},{default:f(()=>[n("button",es,[l(s,{name:"i-lucide-send",class:"size-5"}),e[43]||(e[43]=n("span",null,"Публикация",-1))])]),_:1},8,["items"])]),l(St,{open:a(ue),"onUpdate:open":e[12]||(e[12]=p=>V(ue)?ue.value=p:null),title:"Пресеты"},{body:f(()=>[l(zt,{presets:a(He),"selected-preset-id":a(x),disabled:a(b)||a(z),"busy-preset-id":a(lt),"show-title":!1,onSelect:ht},{default:f(()=>[a(ut)?(_(),G(Et,{key:0,disabled:a(b)||a(z)||a(m),onApply:ct},null,8,["disabled"])):C("",!0),a(nt)?(_(),G(Ut,{key:1,modelValue:a(H),"onUpdate:modelValue":e[11]||(e[11]=p=>V(H)?H.value=p:null),disabled:a(b),loading:a(b),onSubmit:bt},null,8,["modelValue","disabled","loading"])):C("",!0)]),_:1},8,["presets","selected-preset-id","disabled","busy-preset-id"])]),_:1},8,["open"]),l(Je,{open:a(ve),"onUpdate:open":e[14]||(e[14]=p=>V(ve)?ve.value=p:null),title:"Вариант для соцсетей",description:"Будет создан связанный черновик. Откроется отдельная страница и автоматически запустится переписывание под выбранный пресет.",ui:{footer:"justify-end"}},{body:f(()=>[l(Ve,{label:"Пресет для соцсетей или универсальный"},{default:f(()=>[l(Qe,{modelValue:a(se),"onUpdate:modelValue":e[13]||(e[13]=p=>V(se)?se.value=p:null),items:a(Ie),"value-key":"value",class:"w-full"},null,8,["modelValue","items"])]),_:1})]),footer:f(({close:p})=>[l(r,{variant:"ghost",onClick:p},{default:f(()=>[...e[44]||(e[44]=[A(" Отмена ",-1)])]),_:1},8,["onClick"]),l(r,{loading:a(qe),disabled:!a(se),onClick:_a},{default:f(()=>
3[...e[45]||(e[45]=[A(" Переписать ",-1)])]),_:1},8,["loading","disabled"])]),_:1},8,["open"]),l(Je,{open:a(_e),"onUpdate:open":e[15]||(e[15]=p=>V(_e)?_e.value=p:null),title:"Было / Стало",description:"Слева исходный текст, справа обновлённый",ui:{content:"sm:max-w-7xl",footer:"justify-end"}},{body:f(()=>[n("div",ts,[n("div",as,[e[46]||(e[46]=n("p",{class:"text-xs font-medium text-muted uppercase tracking-wider mb-2"},"Было",-1)),n("div",rs,[n("pre",ss,K(a(Ze)||"—"),1)])]),n("div",os,[e[47]||(e[47]=n("p",{class:"text-xs font-medium text-muted uppercase tracking-wider mb-2"},"Стало",-1)),n("div",is,[n("pre",ls,K(a(et)||"—"),1)])])])]),footer:f(({close:p})=>[l(r,{variant:"ghost",onClick:p},{default:f(()=>[...e[48]||(e[48]=[A(" Закрыть ",-1)])]),_:1},8,["onClick"])]),_:1},8,["open"]),l(Je,{open:a(ge),"onUpdate:open":e[17]||(e[17]=p=>V(ge)?ge.value=p:null),title:"Пресет для картинок",description:"Только для этого материала. По умолчанию используется связь из настроек текстового пресета.",ui:{footer:"justify-end"}},{body:f(()=>[l(Ve,{label:"Пресет создания изображения или универсальный"},{default:f(()=>[l(Qe,{modelValue:a(Z),"onUpdate:modelValue":e[16]||(e[16]=p=>V(Z)?Z.value=p:null),items:a(it),"value-key":"value",placeholder:"Выберите пресет",class:"w-full"},null,8,["modelValue","items"])]),_:1})]),footer:f(({close:p})=>[l(r,{variant:"ghost",onClick:p},{default:f(()=>[...e[49]||(e[49]=[A(" Отмена ",-1)])]),_:1},8,["onClick"]),l(r,{disabled:!a(Z),onClick:ha=>Gt(p)},{default:f(()=>[...e[50]||(e[50]=[A(" Сохранить ",-1)])]),_:1},8,["disabled","onClick"])]),_:1},8,["open"])])):C("",!0),a(ye)?C("",!0):(_(),G(ga,{key:1})),l(wa,{image:a(Ge),onClose:e[18]||(e[18]=p=>Ge.value=null)},null,8,["image"])],64)}}}),Qs=Ea(ns,[["__scopeId","data-v-d19f58ed"]]);export{Qs as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.