PageSourceSearch

https://lk.edler.ai/assets/login-D3XQQAge.js

js edler.ai collected 2026-10-05 13:54:23 UTC 41,123 bytes, 1 lines download raw bytes

1import{a,j as e}from"./vendor-markdown-BeUe_A5l.js";import{a as Ce,D as Ge,p as G,i as _e,d as ps,O as Ye,f as se,g as Le,b as hs,e as fs,I as R,c as gs,n as ys,G as js,S as qe,h as vs,j as Me,k as d,l as j,P as Ve,M as h,m as Ns,W as y,o as ne,q as bs,u as ks,r as ws,s as Cs,t as Ss,v as Es,w as te,x as $s,y as Is,z as Ps,A as Fs,B as As,L as W,E as Ts,F as Rs,H as _s,J as Ls,K as Ms,N as Oe}from"./index-CS5QlMk1.js";import{C as ze}from"./checkbox-BgEgdP1e.js";import{G as Os}from"./gift-GvB3uQbj.js";import{E as zs,a as Hs,C as Ds,b as Bs}from"./entry-surface-Cr-SyFR2.js";import"./vendor-charts-BWIaRfSy.js";import"./index-sOJgafWe.js";const Us=[["path",{d:"M5 3v14",key:"9nsxs2"}],["path",{d:"M12 3v8",key:"1h2ygw"}],["path",{d:"M19 3v18",key:"1sk56x"}]],Ws=Ce("kanban",Us);const Gs=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],Ke=Ce("sliders-horizontal",Gs);const Ys=[["path",{d:"M2 21a8 8 0 0 1 13.292-6",key:"bjp14o"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M22 19h-6",key:"vcuq98"}]],qs=Ce("user-round-plus",Ys),He={country:Ge,input:""};function Vs(l,t){const n=G(l??"");if(!n)return{country:_e(t)?String(t).toUpperCase():Ge,input:""};const f=_e(t)?String(t).toUpperCase():ps(n)?.code??Ye;return{country:f,input:se(n,f)}}function De({id:l="phone",label:t="Телефон",value:n,onChange:f,error:E,autoFocus:B,disabled:v,className:U}){const b=Le(n.country),F=se(n.input,n.country),A=a.useMemo(()=>hs(),[]);function o(r){const x=Le(n.country),N=x?ys(n.input,x):"",k=x?N:G(n.input),T=r===Ye&&x&&k?`+${x.dial}${k}`:k;f({country:r,input:se(T,r)})}function i(r){let x=r;r.length<F.length&&G(r)===G(F)&&(x=G(r).slice(0,-1)),f({country:n.country,input:se(x,n.country)})}const m=`${l}-error`;return e.jsxs("div",{className:U,children:[e.jsx("label",{htmlFor:l,className:"text-sm font-medium text-slate-700",children:t}),e.jsxs("div",{className:"mt-1.5 flex gap-2",children:[e.jsxs("div",{className:"relative shrink-0",children:[e.jsx("select",{id:`${l}-country`,"aria-label":"Страна",value:n.country,disabled:v,onChange:r=>o(r.target.value),className:"h-9 max-w-[11rem] appearance-none truncate rounded-md border border-input bg-transparent pl-3 pr-8 text-base shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",children:A.map(r=>e.jsx("option",{value:r.code,children:r.label},r.code))}),e.jsx(fs,{"aria-hidden":!0,className:"pointer-events-none absolute right-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400"})]}),e.jsxs("div",{className:"relative flex-1",children:[b&&e.jsxs("span",{className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-sm text-slate-500",children:["+",b.dial]}),e.jsx(R,{id:l,name:"tel",type:"tel",inputMode:"tel",autoComplete:b?"tel-national":"tel",autoFocus:B,disabled:v,"aria-invalid":E?!0:void 0,"aria-describedby":E?m:void 0,placeholder:b?b.mask.replace(/#/g,"_"):"+49 151 1234567",value:F,onChange:r=>i(r.target.value),style:b?{paddingLeft:`${(b.dial.length+1)*8+16}px`}:void 0,className:gs(E&&"border-red-400 focus-visible:ring-red-400")})]})]}),E&&e.jsx("p",{id:m,className:"mt-1 text-xs text-red-600",children:E})]})}const L=[{key:"crm",title:"CRM",benefit:"Сделки, клиенты и переписка в одном окне",Icon:Ws},{key:"site",title:"Сайт",benefit:"Сайт компании собирается сам и принимает заявки",Icon:js},{key:"seo",title:"SEO",benefit:"Статьи и страницы приводят клиентов из поиска",Icon:qe},{key:"training",title:"Обучение команды",benefit:"Курсы под каждую должность — команда растёт сама",Icon:vs},{key:"hiring",title:"Автоматизация найма",benefit:"Отклики, отбор и приглашения без ручной рутины",Icon:qs},{key:"referral",title:"Реферальная программа",benefit:"Своя программа: агенты приводят Вам клиентов",Icon:Os}],Ks=178,Be=248,Xs=4,Zs=14,Ue=268,Js=344,ke=.46,We=512,Xe=560,$="rgba(15,23,42,0.08)",S="rgba(15,23,42,0.05)",_="rgba(15,23,42,0.16)",H="rgba(15,23,42,0.04)",Y="#3B5B9A",I="#F4F5F7";function D({children:l,tone:t="#FFFFFF"}){return e.jsx("div",{className:"overflow-hidden rounded-xl",style:{border:`1px solid ${$}`,background:t,height:Xe},children:l})}function re({title:l,count:t,right:n}){return e.jsxs("div",{className:"flex items-center justify-between px-4 py-3",style:{borderBottom:`1px solid ${$}`},children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[15px] font-semibold",style:{color:d},children:l}),t?e.jsx("span",{className:"rounded-full px-2 py-0.5 text-[11px] font-medium",style:{background:H,color:h},children:t}):null]}),e.jsx("div",{className:"flex items-center gap-1.5",children:n})]})}function le({Icon:l}){return e.jsx("span",{className:"flex h-7 w-7 items-center justify-center rounded-lg",style:{border:`1px solid ${$}`},children:e.jsx(l,{size:13,strokeWidth:1.75,style:{color:h},"aria-hidden":!0})})}function q({text:l,tone:t=h,bg:n=H}){return e.jsx("span",{className:"inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium",style:{background:n,color:t},children:l})}function Se({initials:l,tone:t=Y}){return e.jsx("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-[9px] font-semibold",style:{background:`${t}1F`,color:t},children:l})}function Qs(){const l=[{name:"Новые",dot:Y,sum:"420 000 ₽",count:"4",deals:[{name:"ООО «Вектор»",money:"180 000 ₽",tag:"Заявка с сайта",who:"АК"},{name:"Студия «Грани»",money:"95 000 ₽",tag:"Звонок",who:"МД"}]},{name:"В работе",dot:ne,sum:"310 000 ₽",count:"3",deals:[{name:"Клиника «Лад»",money:"210 000 ₽",tag:"Счёт выставлен",who:"ИС"}]},{name:"Оплата",dot:y,sum:"150 000 ₽",count:"2",deals:[{name:"ИП Орлова",money:"150 000 ₽",tag:"Договор",who:"ЕО"}]}];return e.jsxs(D,{children:[e.jsx(re,{title:"Сделки",count:"9",right:e.jsxs(e.Fragment,{children:[e.jsx(le,{Icon:Ke}),e.jsx(le,{Icon:Ve})]})}),e.jsx("div",{className:"grid grid-cols-3 gap-2.5 p-3",style:{background:I,height:"100%"},children:l.map(t=>e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:t.dot}}),e.jsx("span",{className:"text-[11px] font-semibold",style:{color:d},children:t.name}),e.jsx("span",{className:"text-[10px]",style:{color:j},children:t.count})]}),e.jsx("div",{className:"text-[10px]",style:{color:h},children:t.sum}),t.deals.map(n=>e.jsxs("div",{className:"space-y-1.5 rounded-lg bg-white p-2",style:{boxShadow:"0 1px 2px rgba(15,23,42,0.06)",border:`1px solid ${S}`},children:[e.jsx("div",{className:"truncate text-[11px] font-medium",style:{color:d},children:n.name}),e.jsx("div",{className:"text-[11px] font-semibold",style:{color:d},children:n.money}),e.jsxs("div",{className:"flex items-center justify-between gap-1",children:[e.jsx(q,{text:n.tag}),e.jsx(Se,{initials:n.who})]})]},n.name)),e.jsx("div",{className:"rounded-lg py-2 text-center text-[10px]",style:{border:`1px dashed ${_}`,color:j},children:"+ Сделка"})]},t.name))})]})}function et(){return e.jsxs(D,{children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2.5",style:{borderBottom:`1px solid ${$}`,background:I},children:[e.jsx("span",{className:"flex gap-1",children:[0,1,2].map(l=>e.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:_}},l))}),e.jsx("span",{className:"flex-1 truncate rounded-full bg-white px-2.5 py-1 text-[10px]",style:{border:`1px solid ${$}`,color:h},children:"vektor-stroy.ru"})]}),e.jsxs("div",{className:"px-5 pb-4 pt-5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-[12px] font-semibold tracking-tight",style:{color:d},children:"ВЕКТОР"}),e.jsxs("span",{className:"flex items-center gap-3 text-[10px]",style:{color:h},children:[e.jsx("span",{children:"Услуги"}),e.jsx("span",{children:"Проекты"}),e.jsx("span",{children:"Контакты"})]})]}),e.jsxs("div",{className:"mt-5",children:[e.jsx(q,{text:"Работаем с 2014 года"}),e.jsxs("div",{className:"mt-2 text-[22px] font-semibold leading-[1.15]",style:{color:d},children:["Строим склады",e.jsx("br",{}),"под ключ за 90 дней"]}),e.jsx("div",{className:"mt-2 text-[11px] leading-snug",style:{color:h},children:"Проект, согласования и монтаж — одной командой. Фиксированная смета в договоре."}),e.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[e.jsx("span",{className:"rounded-lg px-3 py-2 text-[11px] font-semibold text-white",style:{background:d},children:"Рассчитать стоимость"}),e.jsx("span",{className:"rounded-lg px-3 py-2 text-[11px] font-medium",style:{border:`1px solid ${_}`,color:d},children:"Смотреть проекты"})]})]}),e.jsx("div",{className:"mt-5 grid grid-cols-3 gap-2",children:[{k:"120+",v:"объектов сдано"},{k:"90",v:"дней средний срок"},{k:"5 лет",v:"гарантия"}].map(l=>e.jsxs("div",{className:"rounded-lg px-2.5 py-2",style:{background:I,border:`1px solid ${S}`},children:[e.jsx("div",{className:"text-[13px] font-semibold",style:{color:d},children:l.k}),e.jsx("div",{className:"text-[9px] leading-tight",style:{color:h},children:l.v})]},l.k))}),e.jsxs("div",{className:"mt-4 rounded-xl p-3",style:{background:I,border:`1px solid ${S}`},children:[e.jsx("div",{className:"text-[11px] font-semibold",style:{color:d},children:"Оставьте заявку — перезвоним за 15 минут"}),e.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[e.jsx("span",{className:"flex-1 rounded-lg bg-white px-2 py-1.5 text-[10px]",style:{border:`1px solid ${$}`,color:j},children:"Имя"}),e.jsx("span",{className:"flex-1 rounded-lg bg-white px-2 py-1.5 text-[10px]",style:{border:`1px solid ${$}`,color:j},children:"+7 ···"}),e.jsx("span",{className:"rounded-lg px-2.5 py-1.5 text-[10px] font-semibold text-white",style:{background:d},children:"Отправить"})]})]})]})]})}function st(){const l=[{title:"Строительство складов под ключ — цены и сроки",url:"vektor-stroy.ru › sklady",text:"Проект, согласования и монтаж. Фиксированная смета, срок 90 дней."},{title:"Сколько стоит склад 1000 м²: расчёт сметы",url:"vektor-stroy.ru › blog › smeta",text:"Разбираем статьи расходов и показываем реальный расчёт по объекту."}
1,{title:"Ангар или капитальный склад: что выбрать",url:"vektor-stroy.ru › blog › angar",text:"Сравнение по срокам, стоимости и сроку службы конструкций."}];return e.jsxs(D,{children:[e.jsxs("div",{className:"px-4 pb-3 pt-4",children:[e.jsxs("div",{className:"flex items-center gap-2 rounded-full bg-white px-3 py-2",style:{border:`1px solid ${_}`},children:[e.jsx(qe,{size:13,strokeWidth:1.75,style:{color:j},"aria-hidden":!0}),e.jsx("span",{className:"text-[11px]",style:{color:d},children:"строительство склада под ключ"})]}),e.jsx("div",{className:"mt-2 text-[9px]",style:{color:j},children:"Нашлось 2 140 000 результатов"}),e.jsx("div",{className:"mt-3 space-y-3",children:l.map((t,n)=>e.jsxs("div",{className:"space-y-1",children:[n===0?e.jsx(q,{text:"Ваша страница · 2 место",tone:y,bg:`${y}14`}):null,e.jsx("div",{className:"text-[12px] font-medium leading-snug",style:{color:Y},children:t.title}),e.jsx("div",{className:"text-[9px]",style:{color:y},children:t.url}),e.jsx("div",{className:"text-[10px] leading-snug",style:{color:h},children:t.text})]},t.title))})]}),e.jsxs("div",{className:"mx-4 rounded-xl p-3",style:{background:I,border:`1px solid ${S}`},children:[e.jsxs("div",{className:"flex items-baseline justify-between",children:[e.jsx("span",{className:"text-[10px]",style:{color:h},children:"Показы за 30 дней"}),e.jsx("span",{className:"text-[12px] font-semibold",style:{color:y},children:"+38%"})]}),e.jsx("div",{className:"mt-2 flex h-12 items-end gap-1.5",children:[22,30,26,38,34,46,52,60,58,72].map((t,n)=>e.jsx("div",{className:"flex-1 rounded-sm",style:{height:`${t}%`,background:n>5?`${y}80`:_}},n))})]})]})}function tt(){const l=["Уточнить задачу клиента и сроки","Назвать цену и ждать решения","Отправить прайс письмом"];return e.jsxs(D,{children:[e.jsx(re,{title:"Менеджер продаж",count:"Курс 2 из 5"}),e.jsxs("div",{className:"px-4 py-4",children:[e.jsxs("div",{className:"flex items-center justify-between text-[10px]",style:{color:h},children:[e.jsx("span",{children:"Урок 3. Первый звонок клиенту"}),e.jsx("span",{children:"60%"})]}),e.jsx("div",{className:"mt-1.5 h-1.5 w-full rounded-full",style:{background:H},children:e.jsx("div",{className:"h-1.5 rounded-full",style:{width:"60%",background:d}})}),e.jsx("div",{className:"mt-3 text-[13px] font-semibold leading-snug",style:{color:d},children:"Как начать разговор, чтобы клиент остался на линии"}),e.jsxs("div",{className:"mt-2 space-y-1 text-[10px] leading-relaxed",style:{color:h},children:[e.jsx("div",{children:"Первая минута решает исход звонка. Клиент должен услышать, что Вы поняли его задачу, а не зачитываете скрипт."}),e.jsx("div",{children:"Держите три опоры: имя, причина звонка и польза за 20 секунд."})]}),e.jsxs("div",{className:"mt-3 rounded-xl p-3",style:{background:I,border:`1px solid ${S}`},children:[e.jsx("div",{className:"text-[10px]",style:{color:j},children:"Вопрос 2 из 5"}),e.jsx("div",{className:"mt-1 text-[11px] font-medium leading-snug",style:{color:d},children:"С чего начать разговор после приветствия?"}),e.jsx("div",{className:"mt-2 space-y-1.5",children:l.map((t,n)=>e.jsxs("div",{className:"flex items-center gap-2 rounded-lg bg-white px-2 py-1.5",style:{border:`1px solid ${n===0?`${y}59`:$}`,background:n===0?`${y}0D`:"#FFFFFF"},children:[e.jsx("span",{className:"flex h-3.5 w-3.5 items-center justify-center rounded-full",style:{background:n===0?y:"transparent",border:`1px solid ${n===0?y:_}`},children:n===0?e.jsx(bs,{size:9,strokeWidth:3,color:"#FFFFFF","aria-hidden":!0}):null}),e.jsx("span",{className:"text-[10px]",style:{color:n===0?d:h},children:t})]},t))}),e.jsx("div",{className:"mt-2.5 flex justify-end",children:e.jsx("span",{className:"rounded-lg px-3 py-1.5 text-[10px] font-semibold text-white",style:{background:d},children:"Следующий урок"})})]})]})]})}function nt(){const l=[{name:"Отклики",n:"128",w:"100%",tone:_},{name:"Приглашены",n:"54",w:"72%",tone:`${Y}66`},{name:"Интервью",n:"24",w:"46%",tone:`${ne}80`}
1,{name:"Оффер",n:"6",w:"22%",tone:`${y}99`}],t=[{who:"АК",name:"Анна Кузнецова",pos:"Менеджер продаж",chip:"Интервью",tone:ne},{who:"ДМ",name:"Дмитрий Морозов",pos:"Менеджер продаж",chip:"Оффер",tone:y},{who:"ИС",name:"Ирина Соколова",pos:"Оператор",chip:"Новый отклик",tone:Y}];return e.jsxs(D,{children:[e.jsx(re,{title:"Найм",count:"hh.ru · Авито",right:e.jsx(le,{Icon:Ke})}),e.jsx("div",{className:"space-y-2.5 px-4 py-3.5",children:l.map(n=>e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-baseline justify-between text-[10px]",children:[e.jsx("span",{style:{color:h},children:n.name}),e.jsx("span",{className:"text-[11px] font-semibold",style:{color:d},children:n.n})]}),e.jsx("div",{className:"h-2 w-full rounded-full",style:{background:H},children:e.jsx("div",{className:"h-2 rounded-full",style:{width:n.w,background:n.tone}})})]},n.name))}),e.jsx("div",{className:"mx-4 rounded-xl",style:{border:`1px solid ${S}`,background:I},children:t.map((n,f)=>e.jsxs("div",{className:"flex items-center gap-2 px-2.5 py-2",style:{borderTop:f===0?void 0:`1px solid ${S}`},children:[e.jsx(Se,{initials:n.who,tone:n.tone}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-[11px] font-medium",style:{color:d},children:n.name}),e.jsx("div",{className:"truncate text-[9px]",style:{color:j},children:n.pos})]}),e.jsx(q,{text:n.chip,tone:n.tone,bg:`${n.tone}14`})]},n.name))}),e.jsx("div",{className:"px-4 pt-3 text-[9px]",style:{color:j},children:"Отклики собираются и сортируются автоматически"})]})}function lt(){const l=[{name:"Анна Кузнецова",who:"АК",leads:"14 заявок",sum:"9 800 ₽",chip:"6 клиентов",tone:y},{name:"Дмитрий Морозов",who:"ДМ",leads:"9 заявок",sum:"6 400 ₽",chip:"4 клиента",tone:y},{name:"Клиника «Лад»",who:"КЛ",leads:"5 заявок",sum:"4 200 ₽",chip:"2 клиента",tone:ne}];return e.jsxs(D,{children:[e.jsx(re,{title:"Реферальная программа",count:"Агенты",right:e.jsx(le,{Icon:Ve})}),e.jsxs("div",{className:"px-4 py-3.5",children:[e.jsx("div",{className:"rounded-xl p-3",style:{background:I,border:`1px solid ${S}`},children:e.jsxs("div",{className:"flex items-end justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px]",style:{color:h},children:"Клиенты от агентов за март"}),e.jsx("div",{className:"text-[22px] font-semibold leading-tight",style:{color:d},children:"12 клиентов"}),e.jsx("div",{className:"text-[9px]",style:{color:j},children:"Вознаграждение 20 400 ₽ · начислено автоматически"})]}),e.jsx("span",{className:"rounded-lg px-3 py-1.5 text-[10px] font-semibold text-white",style:{background:d},children:"Пригласить"})]})}),e.jsx("div",{className:"mt-2.5 text-[10px] font-medium",style:{color:h},children:"Ссылка агента: Анна Кузнецова"}),e.jsxs("div",{className:"mt-1 flex items-center gap-2 rounded-lg bg-white px-2.5 py-2",style:{border:`1px solid ${$}`},children:[e.jsx("span",{className:"flex-1 truncate text-[10px]",style:{color:h},children:"vektor-stroy.ru/zayavka?ref=214"}),e.jsx(Ns,{size:12,strokeWidth:1.75,style:{color:j},"aria-hidden":!0}),e.jsx("span",{className:"text-[10px] font-medium",style:{color:d},children:"Скопировать"})]}),e.jsx("div",{className:"mt-2.5 grid grid-cols-3 gap-2",children:[{k:"412",v:"переходов"},{k:"37",v:"заявок"},{k:"12",v:"клиентов"}].map(t=>e.jsxs("div",{className:"rounded-lg px-2.5 py-2",style:{background:I,border:`1px solid ${S}`},children:[e.jsx("div",{className:"text-[13px] font-semibold",style:{color:d},children:t.k}),e.jsx("div",{className:"text-[9px]",style:{color:h},children:t.v})]},t.v))}),e.jsxs("div",{className:"mt-3 space-y-1.5",children:[e.jsx("div",{className:"text-[10px] font-medium",style:{color:h},children:"Агенты"}),l.map(t=>e.jsxs("div",{className:"flex items-center gap-2 rounded-lg bg-white px-2.5 py-1.5",style:{border:`1px solid ${S}`},children:[e.jsx(Se,{initials:t.who,tone:t.tone}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-[10px] font-medium",style:{color:d},children:t.name}),e.jsx("div",{className:"text-[9px]",style:{color:j},children:t.leads})]}),e.jsx("span",{className:"text-[10px] font-semibold",style:{color:d},children:t.sum}),e.jsx(q,{text:t.chip,tone:t.tone,bg:`${t.tone}14`})]},t.name))]})]})]})}const rt={crm:Qs,site:et,seo:st,training:tt,hiring:nt,referral:lt};function at({children:l}){return e.jsx("div",{className:"overflow-hidden",style:{width:We*ke,height:Xe*ke},children:e.jsx("div",{style:{width:We,transform:`scale(${ke})`,transformOrigin:"top left"},children:l})})}function ot(){return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function it({feature:l}){const{Icon:t,title:n,benefit:f}=l;return e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"flex h-7 w-7 items-center justify-center rounded-[var(--crm-radius-icon)]",style:{background:H},children:e.jsx(t,{size:15,strokeWidth:1.5,"aria-hidden":!0,style:{color:d}})}),e.jsx("span",{className:"truncate text-[14px] font-semibold",style:{color:d},children:n})]}),e.jsx("span",{className:"mt-1.5 block text-[12px] leading-snug",style:{color:h},children:f})]})}function ct({className:l}){const t=a.useRef(null),n=a.useRef([]),f=a.useRef(null),[E,B]=a.use
1State(null),[v,U]=a.useState(ot),[b,F]=a.useState(Be);a.useEffect(()=>{const o=t.current;if(!o)return;const i=()=>{const r=o.clientWidth;if(!r)return;const x=(r-Ue-72)/(L.length-1);F(Math.max(Ks,Math.min(Be,x)))};i();const m=new ResizeObserver(i);return m.observe(o),()=>m.disconnect()},[]),a.useEffect(()=>{const o=window.matchMedia?.("(prefers-reduced-motion: reduce)");if(!o)return;const i=()=>U(o.matches);return o.addEventListener("change",i),()=>o.removeEventListener("change",i)},[]),a.useEffect(()=>{if(v)return;const o=L.map((r,x)=>x);function i(r,x){let N=null;for(const k of o){const T=n.current[k];if(!T)continue;const w=T.getBoundingClientRect();if(w.width===0)break;if(r>=w.left&&r<=w.right&&x>=w.top&&x<=w.bottom){N=k;break}}B(N)}function m(r){if(f.current!=null)return;const{clientX:x,clientY:N}=r;f.current=window.requestAnimationFrame(()=>{f.current=null,i(x,N)})}return window.addEventListener("pointermove",m,{passive:!0}),()=>{window.removeEventListener("pointermove",m),f.current!=null&&window.cancelAnimationFrame(f.current),f.current=null}},[v]);const A=(L.length-1)/2;return e.jsxs("div",{className:l,children:[e.jsx("div",{ref:t,"aria-label":"Возможности платформы",className:"pointer-events-none relative hidden w-full select-none overflow-hidden lg:block",style:{height:252},children:L.map((o,i)=>{const m=i-A,r=!v&&E===i,x=rt[o.key];return e.jsxs("div",{ref:N=>{n.current[i]=N},className:`${Me} absolute left-1/2 top-[26px] overflow-hidden px-4 pt-4`,style:{width:Ue,height:Js,zIndex:r?20:L.length-i,transform:`translateX(-50%) translateX(${m*b}px) translateY(${Math.abs(m)*Zs-(r?10:0)}px) rotate(${m*Xs}deg)`,boxShadow:r?"var(--crm-shadow-card-hover)":void 0,transition:v?void 0:"transform 300ms cubic-bezier(0.22,1,0.36,1), box-shadow 300ms cubic-bezier(0.22,1,0.36,1)"},children:[e.jsx(it,{feature:o}),e.jsx("div",{className:"mt-3",children:x?e.jsx(at,{children:e.jsx(x,{})}):null})]},o.key)})}),e.jsx("div",{className:"pointer-events-none select-none space-y-2 px-4 pb-8 lg:hidden",children:L.map(o=>{const{Icon:i,title:m,benefit:r}=o;return e.jsxs("div",{className:`${Me} flex items-start gap-3 px-3.5 py-2.5`,children:[e.jsx("span",{className:"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--crm-radius-icon)]",style:{background:H},children:e.jsx(i,{size:15,strokeWidth:1.5,"aria-hidden":!0,style:{color:d}})}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"block text-[13px] font-semibold",style:{color:d},children:m}),e.jsx("span",{className:"block text-[11.5px] leading-snug",style:{color:j},children:r})]})]},o.key)})})]})}const dt="https://edler.ai/agreement",mt="https://edler.ai/privacy",xt="https://edler.ai/consent",ut={full:"Создайте системный бизнес и перейдите к масштабу через команду — сейчас",medium:"Системный бизнес и масштаб через команду — сейчас",short:"Системный бизнес. Масштаб — через команду"}
1,pt=ut.full,ht="Введите email — войдёте в Ваш кабинет или создадите новый аккаунт.",M="text-[13px] font-medium text-[var(--crm-muted)]",O=`inline-flex h-11 w-full items-center justify-center rounded-xl text-sm font-semibold transition-colors disabled:pointer-events-none disabled:opacity-50 ${Ts}`,ft=Bs,z="text-sm text-[var(--crm-muted)] transition-colors hover:text-[var(--crm-ink)]",ee="font-medium text-[var(--crm-ink)] underline underline-offset-2 decoration-[rgba(15,23,42,0.25)] transition-colors hover:decoration-[rgba(15,23,42,0.55)]",gt={owner:"Владелец",admin:"Администратор",administrator:"Администратор",editor:"Редактор",hr:"HR",curator:"Куратор",employee:"Сотрудник",candidate:"Кандидат",member:"Участник"};function we(l){return/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(l.trim())}function yt(){const l=(()=>{try{return localStorage.getItem("edler.auth.token")}catch{return null}})(),t={};l&&(t.Authorization=`Bearer ${l}`),fetch("/api/auth/logout",{method:"POST",credentials:"include",headers:t}).catch(()=>{});try{localStorage.removeItem("edler.auth.token")}catch{}try{localStorage.removeItem("edler.onboarding.step")}catch{}try{localStorage.removeItem("edler.ai-agent.run")}catch{}te(),window.location.href="/login"}function Et(){const[,l]=ks(),{toast:t}=ws(),{setAuth:n,setUser:f,setIsAdmin:E,setSupportTickets:B,setCompanies:v,setActiveCompanyId:U,setPartnerId:b}=Cs(),[F,A]=a.useState(!1),[o,i]=a.useState("email"),[m,r]=a.useState(""),[x,N]=a.useState(null),[k,T]=a.useState(""),[w,Ze]=a.useState(""),[V,Je]=a.useState(He),[Qe,ae]=a.useState(null),[oe,es]=a.useState(""),[ie,ss]=a.useState(!1),[Ee,ts]=a.useState(!1),[K,ce]=a.useState([]),[P,de]=a.useState(null),[X,me]=a.useState(!1),[$e,xe]=a.useState(!1),ue=_s({isAdmin:X,supportTickets:$e}),[Ie,pe]=a.useState(null),[he,ns]=a.useState(""),[Z,Pe]=a.useState(He),[ls,fe]=a.useState(null),[g,c]=a.useState(null),[Fe,Ae]=a.useState(!1),Te=a.useRef(Ss());a.useEffect(()=>{if(new URLSearchParams(window.location.search).get("reason")==="expired"&&(t({variant:"destructive",title:"Сессия истекла",description:"Пожалуйста, войдите снова."}),window.history.replaceState({},"",window.location.pathname)),Es()){const p=(()=>{try{return localStorage.getItem("edler.auth.token")}catch{return null}})();if(!p){te();return}de(p);const C={"Cache-Control":"no-store",Authorization:`Bearer ${p}`};fetch("/api/auth/me",{credentials:"include",headers:C}).then(async u=>u.ok?u.json():null).then(u=>{if(!u||!u.authenticated){te();try{localStorage.removeItem("edler.auth.token")}catch{}return}r(u.email??""),N(u.name??null),me(!!u.isAdmin),xe(!!u.supportTickets),pe(u.partnerId??null),v(Array.isArray(u.companies)?u.companies:[]),Array.isArray(u.companies)&&u.companies.length>0?(ce(u.companies),i("companies")):i("new-company")}).catch(()=>{})}},[]),a.useEffect(()=>{if(o!=="new-company")return;const s=P??(()=>{try{return localStorage.getItem("edler.auth.token")}catch{return null}})();if(!s)return;let p=!1;return fetch("/api/users/me",{credentials:"include",headers:{Authorization:`Bearer ${s}`}}).then(async C=>C.ok?C.json():null).then(C=>
1{p||!C?.phone||Pe(u=>u.input?u:Vs(C.phone,C.phoneCountry))}).catch(()=>{}),()=>{p=!0}},[o,P]);async function ge(s,p,C,u,ds,ms,xs=$e){if(s)try{localStorage.setItem("edler.auth.token",s)}catch{}let J=ds??null,be=ms??null;if(u!=null&&J!==u){try{A(!0);const Q=await Ls({companyId:u});J=Q.activeCompanyId??u,be=Q.partnerId??be,Ms(J??u)}catch(Q){A(!1),c(Q?.data?.error??"Не удалось выбрать компанию");return}A(!1)}te(),f({email:m.trim(),name:C}),E(p),B(xs),U(J),b(be),n(!0);const us=new URLSearchParams(window.location.search).get("returnTo")??"/ai-agent";l(us)}const ye=$s({mutation:{onSuccess:s=>{c(null),s.exists?(N(s.name??null),i("password")):i("register")},onError:()=>c("Не удалось проверить email. Попробуйте ещё раз.")}}),je=Is({mutation:{onSuccess:s=>{c(null);const p=s.companies??[];if(v(p),p.length>0)ce(p),de(s.token??null),me(!!s.isAdmin),xe(!!s.supportTickets),pe(s.partnerId??null),i("companies");else{if(s.token)try{localStorage.setItem("edler.auth.token",s.token)}catch{}ce([]),de(s.token??null),me(!!s.isAdmin),xe(!!s.supportTickets),pe(s.partnerId??null),i("new-company")}},onError:s=>c(s?.data?.error??"Неверный пароль")}}),ve=Ps({mutation:{onSuccess:s=>{c(null),v(s.companies??[]),Te.current.sendAfterSuccess(),ge(s.token,!!s.isAdmin,s.name??w,(s.companies??[])[0]?.id,s.activeCompanyId??null,s.partnerId??null,!!s.supportTickets)},onError:s=>c(s?.data?.error??"Ошибка регистрации")}}),Ne=Fs({mutation:{onSuccess:s=>{c(null),v(s.companies??[]),ge(s.token??P,X,x??"",s.activeCompanyId,s.activeCompanyId??null,s.partnerId??Ie)},onError:s=>c(s?.data?.error??"Не удалось создать компанию")}});function rs(s){s.preventDefault();const p=Oe(Z.input,Z.country);if(!he.trim()){c("Введите имя");return}if(!p.ok){fe(p.error);return}if(fe(null),P)try{localStorage.setItem("edler.auth.token",P)}catch{}c(null),Ne.mutate({data:{name:he.trim(),phone:p.value,phoneCountry:Z.country}})}function as(s){if(s.preventDefault(),!we(m)){c("Введите корректный email");return}c(null),ye.mutate({data:{email:m.trim()}})}function os(s){if(s.preventDefault(),!k){c("Введите пароль");return}c(null),je.mutate({data:{email:m.trim(),password:k}})}function is(s){s.preventDefault();const p=Oe(V.input,V.country);if(!w.trim()){c("Введите имя");return}if(!p.ok){ae(p.error);return}if(ae(null),oe.length<6){c("Пароль минимум 6 символов");return}if(!ie){c("Необходимо согласие с условиями");return}c(null),Te.current.reset(),ve.mutate({data:{email:m.trim(),name:w.trim(),password:oe,phone:p.value,phoneCountry:V.country}})}function Re(){i("email"),c(null),T(""),N(null)}async function cs(s){if(s.preventDefault(),!we(m)){c("Введите корректный email");return}c(null),Ae(!0);try{await fetch("/api/auth/password-reset/request",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:m.trim()})})}catch{}Ae(!1),i("forgot-sent")}return e.jsxs("div",{className:"relative isolate min-h-[100dvh] w-full",style:{backgroundColor:As},children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none fixed inset-0 -z-10",style:zs}),e.jsxs("div",{className:"flex min-h-[100dvh] w-full flex-col",children:[e.jsx("div",{className:"flex flex-1 items-center justify-center px-4 py-10 sm:px-6 sm:py-12",children:e.jsxs("div",{className:`login-sheet w-full max-w-[26rem] ${Hs}`,children:[e.jsx("div",{className:"mb-7 flex items-center gap-1",children:e.jsxs("span",{className:"flex items-center gap-1 text-sm font-bold leading-none tracking-wider text-[var(--crm-ink)]",children:["EDLER.",e.jsx("span",{className:"rounded px-1 py-0.5 text-xs font-bold text-white",style:{background:d},children:"AI"})]})}),o==="email"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-[21px] font-bold leading-snug text-[var(--crm-ink)] sm:text-[23px]",children:pt}),e.jsx("p",{className:"mb-7 mt-2.5 text-sm leading-relaxed text-[var(--crm-muted)]",children:ht}),e.jsxs("form",{onSubmit:as,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"login-email",className:M,children:"E-mail"}),e.jsx(R,{autoFocus:!0,id:"login-email",name:"email",type:"email",autoComplete:"email",placeholder:"[email protected]",value:m,"aria-invalid":g?!0:void 0,"aria-describedby":g?"login-email-error":void 0,onChange:s=>{r(s.target.value),g&&c(null)},onBlur:()=>{m.trim()&&!we(m)&&c("Введите корректный email: адрес@домен.ru")},className:"mt-1.5"}),g&&e.jsx("p",{id:"login-email-error",className:"mt-1.5 text-xs",style:{color:W},children:g})]}),e.jsx("button",{type:"submit",className:O,disabled:ye.isPending,children:ye.isPending?"Проверяем…":"Продолжить"})]})]}),o==="password"&&e.jsxs(e.Fragment,{children:[e.jsxs("h1",{className:"mb-1 text-2xl font-bold text-[var(--crm-ink)]",children:["Приветствую",x?`, ${x}`:""]}),e.jsx("p",{className:"mb-8 text-sm text-[var(--crm-muted)]",children:"Введите пароль для входа в систему"}),e.jsxs("form",{onSubmit:os,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-1.5 flex items-center justify-between",children:[e.jsx("label",{htmlFor:"login-password",className:M,children:"Пароль"}),e.jsx("button",{type:"button",onClick:()=>{c(null),i("forgot")},className:"text-xs text-[var(--crm-muted)] underline underline-offset-2 decoration-[rgba(15,23,42,0.25)] transition-colors hover:text-[var(--crm-ink)]",children:"Забыли пароль?"})]}),e.jsx(R,{autoFocus:!0,id:"login-password",name:"password",type:"password",autoComplete:"current-password",placeholder:"••••••••",value:k,onChange:s=>T(s.target.value),className:"mt-0"})]}),g&&e.jsx("p",{className:"text-sm",style:{color:W},children:g}),e.jsx("button",{type:"submit",className:O,disabled:je.isPending,children:je.isPending?"Вход…":"Войти"})]}),e.jsx("button",{onClick:Re,className:`mt-6 ${z}`,children:"← Другой email"})]}),o==="forgot"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"mb-1 text-2xl font-bold text-[var(--crm-ink)]",children:"Восстановление пароля"}),e.jsx("p",{className:"mb-8 text-sm text-[var(--crm-muted)]",children:"Укажите email Вашего аккаунта — мы отправим ссылку для сброса пароля"}),e.jsxs("form",{onSubmit:cs,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"forgot-email",className:M,children:"E-mail"}),e.jsx(R,{autoFocus:!0,id:"forgot-email",name:"email",type:"email",autoComplete:"email",placeholder:"[email protected]",value:m,onChange:s=>{r(s.target.value),g&&c(null)},className:"mt-1.5"})]}),g&&e.jsx("p",{className:"text-sm",style:{color:W},children:g}),e.jsx("button",{type:"submit",className:O,disabled:Fe,children:Fe?"Отправляем…":"Отправить ссылку"})]}),e.jsx("button",{onClick:()=>{c(null),i("password")},className:`mt-6 ${z}`,children:"← Назад ко входу"})]}),o==="forgot-sent"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mb-5 flex h-12 w-12 items-center justify-center rounded-2xl",style:{background:Rs},children:e.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:d,strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"}),e.jsx("polyline",{points:"22,6 12,13 2,6"})]})}),e.jsx("h1",{className:"mb-2 text-2xl font-bold text-[var(--crm-ink)]",children:"Проверьте почту"}),e.jsxs("p",{className:"mb-8 text-sm text-[var(--crm-muted)]",children:["Если аккаунт с адресом ",e.jsx("span",{className:"font-medium text-[var(--crm-ink)]",children:m})," существует, мы отправили ссылку для восстановления пароля. Ссылка действительна 1 час."]}),e.jsx("button",{className:O,onClick:()=>{c(null),i("password")},children:"Вернуться ко входу"}),e.jsx("button",{onClick:()=>{c(null),i("forgot")},className:`mt-4 block ${z}`,children:"Отправить ещё раз"})]}),o==="register"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"mb-1 text-2xl font-bold text-[var(--crm-ink)]",children:"У Вас пока нет ни одного аккаунта."}),e.jsxs("p",{className:"mb-8 text-sm text-[var(--crm-muted)]",children:["Давайте создадим. Регистрация на ",m]}),e.jsxs("form",{onSubmit:is,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"register-name",className:M,children:"Ваше имя"}),e.jsx(R,{autoFocus:!0,id:"register-name",name:"name",autoComplete:"name",placeholder:"Иван Петров",value:w,onChange:s=>Ze(s.target.value),className:"mt-1.5"})]}),e.jsx(De,{id:"register-phone",value:V,onChange:s=>{Je(s),ae(null)},error:Qe}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"register-password",className:M,children:"Пароль"}),e.jsx(R,{id:"register-password",name:"new-password",type:"password",autoComplete:"new-password",placeholder:"Минимум 6 символов",value:oe,onChange:s=>es(s.target.value),className:"mt-1.5"})]}),e.jsxs("label",{className:"flex cursor-pointer items-start gap-2.5",children:[e.jsx(ze,{checked:ie,onCheckedChange:s=>ss(!!s),className:"mt-0.5"}),e.jsxs("span",{className:"text-xs leading-relaxed text-[var(--crm-muted)]",children:["Я принимаю условия"," ",e.jsx("a",{href:dt,target:"_blank",rel:"noreferrer",className:ee,children:"лицензионного соглашения"})," ","и"," ",e.jsx("a",{href:mt,target:"_blank",rel:"noreferrer",className:ee,children:"политики конфиденциальности"})]})]}),e.jsxs("label",{className:"flex cursor-pointer items-start gap-2.5",children:[e.jsx(ze,{checked:Ee,onCheckedChange:s=>ts(!!s),className:"mt-0.5"}),e.jsxs("span",{className:"text-xs leading-relaxed text-[var(--crm-muted)]",children:["Я даю"," ",e.jsx("a",{href:xt,target:"_blank",rel:"noreferrer",className:ee,children:"согласие на обработку персональных данных"})]})]}),g&&e.jsx("p",{className:"text-sm",style:{color:W},children:g}),e.jsx("button",{type:"submit",className:O,disabled:!ie||!Ee||ve.isPending,children:ve.isPending?"Создаём…":"Создать аккаунт"})]}),e.jsx("button",{onClick:Re,className:`mt-6 ${z}`,children:"← Другой email"})]}),o==="companies"&&e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"mb-1 text-xl font-bold text-[var(--crm-ink)]",children:"У Вас есть доступ к нескольким Ð
1ºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÑÐ¼:"}),e.jsx("p",{className:"mb-6 text-sm text-[var(--crm-muted)]",children:"Выберите, в какую войти"}),e.jsx("div",{className:"space-y-2.5 text-left",children:K.map(s=>e.jsx(Ds,{name:s.name,note:`ID: ${s.id}`,noteMono:!0,trailing:gt[s.role]??s.role,disabled:F,onClick:()=>ge(P,X,x??"",s.id,null,Ie)},s.id))}),ue&&e.jsx("button",{onClick:()=>{if(P)try{localStorage.setItem("edler.auth.token",P)}catch{}window.location.href=ue.href},className:`mt-4 ${ft}`,children:X?"Перейти в Админ.Панель →":`${ue.label} →`}),e.jsxs("p",{className:"mt-6 text-sm text-[var(--crm-muted)]",children:["или"," ",e.jsx("button",{onClick:()=>{c(null),i("new-company")},className:ee,children:"создайте свой аккаунт"})]})]}),o==="new-company"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"mb-1 text-2xl font-bold text-[var(--crm-ink)]",children:K.length>0?"Новая платформа/компания":"Создадим Вашу компанию"}),e.jsx("p",{className:"mb-8 text-sm text-[var(--crm-muted)]",children:K.length>0?e.jsxs(e.Fragment,{children:["Создадим ещё одну компанию под Вашим аккаунтом (",m,"). Вы станете её владельцем."]}):e.jsxs(e.Fragment,{children:["У Вашего аккаунта (",m,") пока нет ни одной компании. Создадим новую — Вы станете её владельцем."]})}),e.jsxs("form",{onSubmit:rs,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"new-company-name",className:M,children:"Ваше имя"}),e.jsx(R,{autoFocus:!0,id:"new-company-name",placeholder:"Иван Петров",value:he,onChange:s=>ns(s.target.value),className:"mt-1.5"})]}),e.jsx(De,{id:"new-company-phone",value:Z,onChange:s=>{Pe(s),fe(null)},error:ls}),g&&e.jsx("p",{className:"text-sm",style:{color:W},children:g}),e.jsx("button",{type:"submit",className:O,disabled:Ne.isPending,children:Ne.isPending?"Создаём…":"Создать компанию"})]}),K.length>0?e.jsx("button",{onClick:()=>{c(null),i("companies")},className:`mt-6 ${z}`,children:"← Назад к выбору компании"}):e.jsx("button",{onClick:yt,className:`mt-6 ${z}`,children:"Выйти"})]})]})}),o==="companies"||o==="new-company"?null:e.jsx(ct,{className:"w-full"})]})]})}export{ut as LOGIN_HEADLINES,Et 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.