1import{a as p,r as s,bL as h,bK as f,f4 as b,j as e,aG as y,aH as v,bo as g,aV as j}from"./index-BK_dRcWU.js";import{P as w}from"./PowerDialerLinesPanel-CF-7aUzw.js";import{Z as N}from"./zap-3JmzEJ9A.js";import"./chevron-up-DpsrM1RY.js";function A(){const n=p(),[t,i]=s.useState(null),[l,c]=s.useState(null),[o,d]=s.useState(!0),m=h(t);s.useEffect(()=>{let a=!1;return Promise.all([f(),b("7d").catch(()=>null)]).then(([r,u])=>{a||(i(r),c(u),d(!1))}),()=>{a=!0}},[]);const x=s.useMemo(()=>{const a={};for(const r of l?.lines??[])a[r.phone]={dials:r.dials,connects:r.connects,answerRate:r.answer_rate};return a},[l]);return e.jsxs(y,{width:"default",children:[e.jsx(v,{title:"Dialer Phone Numbers",subtitle:"The lines your Power Dialer calls from, with health and 7-day performance per number."}),e.jsxs("div",{className:"flex flex-col gap-4",children:[o&&e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(g,{className:"h-5 w-5 animate-spin",style:{color:"var(--oc-text-muted)"}})}),!o&&t&&e.jsxs(e.Fragment,{children:[!m&&e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-xl border px-5 py-4",style:{borderColor:"color-mix(in srgb, var(--accent) 40%, transparent)",backgroundColor:"color-mix(in srgb, var(--accent) 6%, transparent)"},children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[13px] font-bold",style:{color:"var(--oc-text)"},children:"You're dialing from a single number."}),e.jsx("p",{className:"mt-0.5 text-[12px]",style:{color:"var(--oc-text-muted)"},children:"Power Dialer Pro provisions 10 local lines in your preferred city, rotates them automatically, and replaces any number whose health drops â $120/mo, all inclusive."})]}),e.jsxs("button",{type:"button",onClick:()=>n("/settings?tab=billing"),className:"flex items-center gap-1.5 rounded-lg px-4 py-2 text-[12px] font-bold",style:{backgroundColor:"var(--accent)",color:"var(--btn-primary-text, white)",cursor:"pointer",border:"none"},children:[e.jsx(N,{className:"h-3.5 w-3.5"})," Unlock 10 lines"]})]}),e.jsx(w,{addon:t,lineStats:x}),e.jsxs("div",{className:"rounded-xl border px-5 py-4",style:{borderColor:"var(--shell-border)",backgroundColor:"var(--shell-bg)"},children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{className:"h-3.5 w-3.5",style:{color:"var(--accent)"}}),e.jsx("h4",{className:"text-[13px] font-bold",style:{color:"var(--oc-text)"},children:"How automatic replacement works"})]}),e.jsxs("p",{className:"mt-1.5 text-[12px] leading-relaxed",style:{color:"var(--oc-text-muted)"},children:["Every line's health score (0â100) tracks its real-world performance â answer rates, carrier filtering signals, and delivery failures. When a number's score drops to ",e.jsx("strong",{style:{color:"var(--oc-text)"},children:"55 or below"}),", the platform retires it and provisions a replacement in the same area automatically. You never manage numbers by hand; retired lines stay listed in the replacement history above."]})]})]})]})]})}export{A 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.