PageSourceSearch

https://optimind.darkfunnels.ai/_next/static/chunks/5275-eeae25c719ff0bac.js

js darkfunnels.ai collected 2026-10-05 13:04:19 UTC 64,713 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5275],{15275:(a,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>a_});var s=n(57543),l=n(59663);n(30626);var t=n(95439),r=n(49841),o=n.n(r);n(14953),n(34858);let c=0,i=a=>{let{content:e,side:n="top",children:t,className:r}=a,[o,i]=l.useState(!1),d=l.useMemo(()=>"tooltip-v2-".concat(++c),[]),u=()=>i(!0),m=()=>i(!1);return(0,s.jsxs)("span",{className:"tooltip-v2".concat(r?" ".concat(r):""),onMouseEnter:u,onMouseLeave:m,onFocus:u,onBlur:m,"aria-describedby":o?d:void 0,children:[t,(0,s.jsx)("span",{id:d,role:"tooltip","aria-hidden":!o,"data-reduced-motion":"designed",className:"tooltip-v2__bubble tooltip-v2__bubble--".concat(n).concat(o?" tooltip-v2__bubble--visible":""),children:e})]})};var d=n(16737),u=n(35427),m=n(41214),p=n(11011),h=n(97293),_=n(73767);function v(a){let{apps:e}=a,n=[...e].filter(a=>a.amount_usd>0).sort((a,e)=>e.amount_usd-a.amount_usd);if(n.length<=1)return null;let l=n.reduce((a,e)=>a+e.amount_usd,0),t=n.slice(0,5),r=n.slice(5),o=[...t.map(a=>{var e;return{nombre:null!==(e=a.display_name)&&void 0!==e?e:a.module_slug,usd:a.amount_usd,aprox:"company_wide_estimate"===a.attribution}}),...r.length>0?[{nombre:"Otras",usd:r.reduce((a,e)=>a+e.amount_usd,0),aprox:!1}]:[]],c=o.slice(0,3),i=o.length-c.length;return(0,s.jsxs)("div",{className:"factura-hero__composicion",children:[(0,s.jsx)("div",{className:"factura-hero__barra",role:"img","aria-label":"Composici\xf3n del estimado: ".concat(o.map(a=>"".concat(a.nombre," ").concat((0,p.UK)(a.usd))).join(" \xb7 ")),children:o.map((a,e)=>(0,s.jsx)("span",{className:"factura-hero__segmento factura-hero__segmento--".concat(Math.min(e,4)),style:{width:"".concat(a.usd/l*100,"%")}},a.nombre))}),(0,s.jsxs)("div",{className:"factura-hero__leyenda",children:[c.map(a=>(0,s.jsxs)("span",{className:"factura-hero__chip tnum",children:[a.nombre," ",a.aprox?"≈ ":"",(0,p.UK)(a.usd)]},a.nombre)),i>0&&(0,s.jsxs)("span",{className:"factura-hero__chip factura-hero__chip--mas",children:["+",i," m\xe1s"]})]})]})}let g=(0,s.jsxs)("ul",{className:"factura-hero__reglas",children:[(0,s.jsx)("li",{children:"Alta de una app a mitad de mes: pagas la parte proporcional hasta el corte."}),(0,s.jsx)("li",{children:"Baja: sin reembolso; la app sigue disponible hasta el corte."}),(0,s.jsx)("li",{children:"Desactivar una app apaga su cargo. El kill-switch de emergencia NO lo apaga."})]}),j=a=>{let{apps:e,estimate:n,loading:l,onRetry:t}=a;if(l)return(0,s.jsxs)(m.A,{as:"section",className:"factura-hero","aria-busy":"true",children:[(0,s.jsx)(d.A,{variant:"text",width:240,height:12}),(0,s.jsx)(d.A,{variant:"rect",width:280,height:52,radius:"8px"}),(0,s.jsx)(d.A,{variant:"text",width:340,height:14})]});if(!e||!n)return(0,s.jsxs)(m.A,{as:"section",className:"factura-hero factura-hero--degradado",children:[(0,s.jsx)("div",{className:"factura-hero__overline",children:"Tu factura del mes (en curso)"}),(0,s.jsx)("p",{className:"factura-hero__degradado-msg",children:"No pudimos calcular tu estimado ahora. Tu saldo y tus movimientos no est\xe1n afectados."}),(0,s.jsx)("div",{children:(0,s.jsx)(u.A,{variant:"secondary",size:"xsmall",onClick:t,children:"Reintentar"})})]});let r=(0,h.BG)(n.period),c=r?(0,_.Nf)(r.start):null,j=c?"Tu factura de ".concat(c," (en curso)"):"Tu factura del mes (en curso)";if(!e.some(a=>"free"!==a.model))return(0,s.jsxs)(m.A,{as:"section",className:"factura-hero",children:[(0,s.jsx)("div",{className:"factura-hero__overline",children:j}),(0,s.jsx)("div",{className:"factura-hero__total tnum",children:(0,p.UK)(n.total_usd)}),(0,s.jsxs)("p",{className:"factura-hero__micro",children:["No tienes apps con costo activas."," ",(0,s.jsx)(o(),{href:"/apps",className:"factura-hero__link",children:"Explora el cat\xe1logo →"})]})]});let b=r?(0,h.wp)(e,r):null,x=r?(0,_.$D)(r):null,f=null;return b&&x&&(f="ok"===b.estado?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("span",{"aria-label":"estimaci\xf3n",children:["≈ ",(0,p.UK)(b.usd)]})," proyectado al cierre \xb7 corte: ",x]}):"sin-per-usage"===b.estado?(0,s.jsxs)(s.Fragment,{children:["corte: ",x]}):(0,s.jsxs)(s.Fragment,{children:["proyecci\xf3n disponible a partir del d\xeda 3 \xb7 corte: ",x]})),(0,s.jsxs)(m.A,{as:"section",className:"factura-hero",children:[(0,s.jsxs)("div",{className:"factura-hero__overline",children:[j,(0,s.jsx)(i,{content:g,side:"bottom",children:(0,s.jsx)("button",{type:"button",className:"factura-hero__info","aria-label":"Reglas del cobro",children:"i"})})]}),(0,s.jsx)("div",{className:"factura-hero__total tnum",children:(0,p.UK)(n.total_usd)}),f&&(0,s.jsx)("div",{className:"factura-hero__sub tnum",children:f}),(0,s.jsxs)("p",{className:"factura-hero__micro",children:["Estimado en vivo ",r?(0,_.Xx)(r):"del mes en curso",". No es una factura emitida: el cobro se coordina manualmente con el equipo."]}),(0,s.jsx)(v,{apps:e})]})};n(46911);var b=n(57303);let x=a=>{let{appNombre:e,anchor:n,seats:t,included:r,usd:o,agentsPerSeat:c=1,amountComponente:i,appAmount:d,totalUsd:u,cierreUsd:m}=a,h=Math.max(c,1),[_,v]=(0,l.useState)(h>1?t*h:t),g="agents"===n?["agente","agentes"]:["persona","personas"],j=1===_?g[0]:g[1],b=h>1?Math.ceil(_/h):_,x=d-i+Math.max(b-r,0)*o,f=x-d,N=u+f,y=null!==m?m+f:null,k=f>=0?"+".concat((0,p.UK)(f)):"−".concat((0,p.UK)(Math.abs(f)));return(0,s.jsxs)("div",{className:"simulador-cupos",role:"group","aria-label":"Simulador de ".concat(g[1],": no modifica nada"),children:[(0,s.jsxs)("div",{className:"simulador-cupos__control",children:[(0,s.jsx)("span",{children:"\xbfY si tuviera"}),(0,s.jsx)("button",{type:"button",className:"simulador-cupos__btn","aria-label":"Quitar un ".concat(g[0]," del simulador"),onClick:()=>v(a=>Math.max(a-1,0)),disabled:_<=0,children:"−"}),(0,s.jsx)("span",{className:"simulador-cupos__n tnum",children:_}),(0,s.jsx)("button",{type:"button",className:"simulador-cupos__btn","aria-label":"Agregar un ".concat(g[0]," al simulador"),onClick:()=>v(a=>a+1),children:"+"}),(0,s.jsxs)("span",{children:[j,"?"]})]}),(0,s.jsxs)("p",{className:"simulador-cupos__resultado tnum",children:[_," ",j,h>1&&(0,s.jsxs)(s.Fragment,{children:[" → ",b," cupo",1===b?"":"s"]})," ","→ ",e," ",(0,p.UK)(x)," (",k,") → estimado ",(0,p.UK)(N),null!==y&&(0,s.jsxs)(s.Fragment,{children:[" \xb7 cierre ≈ ",(0,p.UK)(y)]})]}),(0,s.jsx)("p",{className:"simulador-cupos__nota",children:"El estimado usa el conteo vigente para el mes completo; los cambios se ajustan en la liquidaci\xf3n manual."})]})},f=a=>"flat"===a.kind,N=a=>"per_seat"===a.kind,y=a=>
1"per_usage"===a.kind,k=a=>"addon"===a.kind;function S(a){return"agents"===a?{singular:"agente",plural:"agentes",activos:"activos",incluidos:"incluidos"}:{singular:"persona",plural:"personas",activos:"activas",incluidos:"incluidas"}}function w(a){var e;return Math.max(null!==(e=a.agents_per_seat)&&void 0!==e?e:1,1)}function C(a){var e,n;let{app:l,totalUsd:t,cierreUsd:r,factor:c}=a,i=null!==(e=l.components)&&void 0!==e?e:[],d=(0,h.v)(l),u=null!==(n=l.display_name)&&void 0!==n?n:l.module_slug;return(0,s.jsx)("div",{className:"tabla-factura__componentes",children:i.map((a,e)=>{if(f(a))return(0,s.jsxs)("div",{className:"tabla-factura__componente",children:["Tarifa fija — ",(0,p.UK)(a.amount_usd)," / mes","flat"===l.model&&" — no var\xeda con uso ni personas"]},e);if(N(a)){let n=S(a.anchor),c=w(a);return(0,s.jsxs)("div",{className:"tabla-factura__componente",children:[(0,s.jsx)("div",{children:c>1?(0,s.jsxs)(s.Fragment,{children:[a.seats," cupo",1===a.seats?"":"s"," \xd7 ",(0,p.UK)(a.usd)," = ",(0,p.UK)(a.amount_usd),(0,s.jsxs)("span",{className:"tabla-factura__nota-inline",children:[" ","(cada cupo habilita ",c," ",n.plural," ",n.activos,null!=a.agents_allowed&&(0,s.jsxs)(s.Fragment,{children:[" — hasta ",a.agents_allowed]}),")"]})]}):(0,s.jsxs)(s.Fragment,{children:[a.seats," ",n.plural," ",n.activos," ",(0,s.jsx)("strong",{children:"— en toda la empresa"})," \xd7 ",(0,p.UK)(a.usd)," ="," ",(0,p.UK)(a.amount_usd),a.included>0&&(0,s.jsxs)("span",{className:"tabla-factura__nota-inline",children:[" ","(",a.included," ",n.incluidos," sin costo)"]})]})}),(0,s.jsx)(x,{appNombre:u,anchor:a.anchor,seats:a.seats,included:a.included,usd:a.usd,agentsPerSeat:c,amountComponente:a.amount_usd,appAmount:l.amount_usd,totalUsd:t,cierreUsd:r}),(0,s.jsx)(o(),{href:"agents"===a.anchor?"/":"/personas",className:"tabla-factura__link",children:"agents"===a.anchor?"Gestionar agentes en ".concat(u," →"):"Gestionar personas →"})]},e)}if(y(a)){let n=null!==c?a.amount_usd*c:null;return(0,s.jsxs)("div",{className:"tabla-factura__componente",children:[(0,s.jsxs)("div",{className:"tnum",children:["Acumulado: ",d&&(0,s.jsx)("span",{"aria-label":"estimaci\xf3n",children:"≈ "}),(0,p.UK)(a.amount_usd),null!==n&&(0,s.jsxs)(s.Fragment,{children:[" \xb7 ≈ ",(0,p.UK)(n)," proyectado al cierre a tu ritmo"]})]}),d&&(0,s.jsx)("p",{className:"tabla-factura__nota",children:"≈ Estimaci\xf3n: el consumo a\xfan no se separa por app; esta cifra usa el consumo total de tu empresa."})]},e)}return k(a)?(0,s.jsxs)("div",{className:"tabla-factura__componente tnum",children:[a.label," — ",a.units," \xd7 ",(0,p.UK)(a.usd)," = ",(0,p.UK)(a.amount_usd)]},e):null})})}let A=a=>{let{apps:e,estimate:n,loading:t,catalogo:r,canManage:c=!1,onDesactivar:i}=a,[u,v]=(0,l.useState)(new Set),[g,j]=(0,l.useState)(!1),[x,A]=(0,l.useState)(null);if(t)return(0,s.jsx)(m.A,{as:"section",className:"tabla-factura","aria-busy":"true",children:(0,s.jsx)(d.A,{variant:"rect",height:44,count:4,radius:"8px"})});if(!e||!n)return null;let E=(0,h.BG)(n.period),U=E?(0,h.Ji)(E):null,q=E?(0,h.wp)(e,E):null,P=(null==q?void 0:q.estado)==="ok"?q.usd:null,T=e.filter(a=>"free"!==a.model).sort((a,e)=>e.amount_usd-a.amount_usd),K=e.filter(a=>"free"===a.model),D=new Map((null!=r?r:[]).map(a=>[a.slug,a])),F=T.filter(a=>(0,h.v)(a)),M=(0,h.iy)(F.map(a=>(0,h.e9)(a.components))),R=F.reduce((a,e)=>a+(0,h.e9)(e.components),0),L=a=>v(e=>{let n=new Set(e);return n.has(a)?n.delete(a):n.add(a),n});return(0,s.jsxs)(m.A,{as:"section",className:"tabla-factura",children:[0===T.length&&(0,s.jsx)("p",{className:"tabla-factura__vacio",children:"No tienes apps con costo activas."}),F.length>=2&&(0,s.jsxs)("div",{className:"tabla-factura__aviso",role:"note",children:[F.map(a=>{var e;return null!==(e=a.display_name)&&void 0!==e?e:a.module_slug}).join(" y ")," estiman hoy sobre el MISMO consumo total de la empresa. Sumadas pueden sobreestimar hasta ",(0,p.UK)(M)," (el consumo real por uso del mes es como m\xe1ximo ",(0,p.UK)(R-M),", no ",(0,p.UK)(R),")."]}),(0,s.jsx)("div",{className:"tabla-factura__scroll",children:(0,s.jsxs)("table",{className:"tabla-factura__tabla",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{scope:"col",children:"App"}),(0,s.jsx)("th",{scope:"col",children:"C\xf3mo se calcula"}),(0,s.jsx)("th",{scope:"col",className:"tabla-factura__num",children:"Monto"}),(0,s.jsx)("th",{scope:"col","aria-label":"Expandir"})]})}),(0,s.jsxs)("tbody",{children:[T.map(a=>{var e,t,r,d,m,v;
1let g=a.module_slug,j=D.get(g),q=u.has(g),T=(0,h.v)(a);return(0,s.jsxs)(l.Fragment,{children:[(0,s.jsxs)("tr",{className:"tabla-factura__fila",children:[(0,s.jsx)("td",{children:(0,s.jsxs)("div",{className:"tabla-factura__app",children:[(0,s.jsx)("span",{className:"tabla-factura__nombre",children:null!==(r=a.display_name)&&void 0!==r?r:g}),(null==j?void 0:j.kill_switch)&&(0,s.jsx)("span",{className:"tabla-factura__killswitch",children:"⛔ pausada por emergencia — el cargo no se detiene"}),(null==j?void 0:j.installed_at)&&(0,s.jsxs)("span",{className:"tabla-factura__desde",children:["activa desde el ",(0,_.LX)(j.installed_at)]})]})}),(0,s.jsxs)("td",{children:[(0,s.jsx)("div",{className:"tabla-factura__calculo tnum",children:function(a){var e;let n=null!==(e=a.components)&&void 0!==e?e:[];if("flat"===a.model)return"Tarifa fija mensual";let s=[];for(let e of n)if(f(e))s.push("hybrid"===a.model?"Base ".concat((0,p.UK)(e.amount_usd)):"Tarifa fija mensual");else if(N(e)){let a=S(e.anchor),n=w(e);n>1?s.push("".concat(e.billable," cupo").concat(1===e.billable?"":"s"," de ").concat(n," ").concat(a.plural," \xd7 ").concat((0,p.UK)(e.usd))):s.push(e.included>0?"".concat(e.seats," ").concat(a.plural," \xb7 ").concat(e.included," ").concat(a.incluidos," \xb7 ").concat(e.billable," \xd7 ").concat((0,p.UK)(e.usd)):"".concat(e.seats," ").concat(1===e.seats?a.singular:a.plural," \xd7 ").concat((0,p.UK)(e.usd)))}else y(e)?s.push("".concat(e.tokens.toLocaleString("es-PE")," tokens \xd7 ").concat((0,p.UK)(e.usd_per_1k_tokens),"/1k")):k(e)&&s.push("".concat(e.units," \xd7 ").concat(e.label));return s.join(" + ")||"—"}(a)}),(0,s.jsx)("div",{className:"tabla-factura__naturaleza",children:function(a,e){return"per_usage"===a.model?e?"acumulado al d\xeda ".concat((0,_.Zk)(e.end)):"acumulado del mes":"mes completo a la configuraci\xf3n de hoy"}(a,E)})]}),(0,s.jsxs)("td",{className:"tabla-factura__num tnum",children:[T&&(0,s.jsx)("span",{"aria-label":"estimaci\xf3n",children:"≈ "}),(0,p.UK)(a.amount_usd)]}),(0,s.jsxs)("td",{className:"tabla-factura__expandir",children:[(0,s.jsx)("button",{type:"button",className:"tabla-factura__toggle","aria-expanded":q,"aria-label":"".concat(q?"Contraer":"Expandir"," ").concat(null!==(d=a.display_name)&&void 0!==d?d:g),onClick:()=>L(g),children:q?"∧":"∨"}),c&&i&&(0,s.jsxs)("span",{className:"tabla-factura__menu-wrap",children:[(0,s.jsx)("button",{type:"button",className:"tabla-factura__toggle","aria-haspopup":"menu","aria-expanded":x===g,"aria-label":"Acciones de ".concat(null!==(m=a.display_name)&&void 0!==m?m:g),onClick:()=>A(a=>a===g?null:g),children:"⋯"}),x===g&&(0,s.jsxs)("span",{className:"tabla-factura__menu",role:"menu",children:[(0,s.jsx)("button",{type:"button",role:"menuitem",className:"tabla-factura__menu-item",onClick:()=>{A(null),i(a)},children:"Desactivar"}),(null===(e=(0,b.s)(g))||void 0===e?void 0:e.homePath)&&(0,s.jsx)(o(),{role:"menuitem",className:"tabla-factura__menu-item",href:null!==(v=null===(t=(0,b.s)(g))||void 0===t?void 0:t.homePath)&&void 0!==v?v:"/",children:"Abrir app"})]})]})]})]}),q&&(0,s.jsx)("tr",{className:"tabla-factura__detalle",children:(0,s.jsx)("td",{colSpan:4,children:(0,s.jsx)(C,{app:a,totalUsd:n.total_usd,cierreUsd:P,factor:U})})})]},g)}),K.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("tr",{className:"tabla-factura__gratuitas",children:[(0,s.jsx)("td",{colSpan:2,children:(0,s.jsxs)("button",{type:"button",className:"tabla-factura__toggle tabla-factura__toggle--texto","aria-expanded":g,onClick:()=>j(a=>!a),children:[K.length," app",1===K.length?"":"s"," sin costo ",g?"∧":"∨"]})}),(0,s.jsx)("td",{className:"tabla-factura__num tnum",children:(0,p.UK)(0)}),(0,s.jsx)("td",{})]}),g&&K.map(a=>{var e,n;return(0,s.jsxs)("tr",{className:"tabla-factura__gratuita",children:[(0,s.jsx)("td",{colSpan:2,children:(0,s.jsxs)("span",{className:"tabla-factura__nombre-gratuita",children:[null!==(n=a.display_name)&&void 0!==n?n:a.module_slug,(null===(e=D.get(a.module_slug))||void 0===e?void 0:e.is_core)&&(0,s.jsx)("span",{className:"tabla-factura__core",children:" \xb7 core"})]})}),(0,s.jsx)("td",{className:"tabla-factura__num tnum",children:(0,p.UK)(0)}),(0,s.jsx)("td",{})]},a.module_slug)})]})]}),(0,s.jsx)("tfoot",{children:(0,s.jsxs)("tr",{className:"tabla-factura__total",children:[(0,s.jsx)("td",{colSpan:2,children:"Total estimado a hoy"}),(0,s.jsxs)("td",{className:"tabla-factura__num tnum",children:[(0,s.jsx)("div",{className:"tabla-factura__total-monto",children:(0,p.UK)(n.total_usd)}),null!==P&&(0,s.jsxs)("div",{className:"tabla-factura__cierre",children:["≈ ",(0,p.UK)(P)," al cierre"]})]}),(0,s.jsx)("td",{})]})})]})}),(0,s.jsx)("p",{className:"tabla-factura__footnote",children:"Reglas del mes: las altas se prorratean de
1sde el d\xeda de activaci\xf3n hasta el corte \xb7 las bajas no tienen reembolso y la app sigue disponible hasta el corte \xb7 desactivar una app apaga su cargo (el kill-switch de emergencia no lo apaga). El estimado en pantalla refleja la configuraci\xf3n de hoy; los ajustes finos se aplican en la liquidaci\xf3n manual."}),(0,s.jsx)(o(),{href:"/apps",className:"tabla-factura__link tabla-factura__footer-link",children:"Activar otra app →"})]})};n(55777);var E=n(80563);let U=a=>"number"==typeof a&&Number.isFinite(a)?a:0;var q=n(93305);let P=a=>{var e,n,t;let{credits:r,ledger:o,loading:c,onRecargar:v,autorecarga:g,packs:j,onAutorecargaChange:b,ahora:x,costoConversacion:f}=a,[N,y]=(0,l.useState)(!1),[k,S]=(0,l.useState)(""),[w,C]=(0,l.useState)(""),[A,U]=(0,l.useState)(!1),[P,T]=(0,l.useState)(null);(0,l.useEffect)(()=>{g&&(y(g.enabled),S(null!=g.threshold?String(g.threshold):""),C(null!=g.packId?String(g.packId):""))},[g]);let K=async()=>{if(b&&!A){if(T(null),N){if(!(parseFloat(k)>0)){T("Ingresa un umbral mayor a US$ 0.");return}if(!w){T("Elige un pack de recarga.");return}}U(!0);try{let a=await b({enabled:N,threshold:N?parseFloat(k):void 0,packId:N?Number(w):void 0});T(a.ok?"Auto-recarga actualizada.":a.error||"No se pudo guardar la auto-recarga.")}catch(a){T("No se pudo guardar la auto-recarga.")}finally{U(!1)}}};if(c)return(0,s.jsxs)(m.A,{as:"section",className:"creditos-card","aria-busy":"true",children:[(0,s.jsx)(d.A,{variant:"text",width:120,height:12}),(0,s.jsx)(d.A,{variant:"rect",width:160,height:28,radius:"6px"}),(0,s.jsx)(d.A,{variant:"text",count:3,height:12})]});let D=null!==(n=null==r?void 0:r.available_credits)&&void 0!==n?n:null,F=null!==(t=null==r?void 0:r.monthly_used_credits)&&void 0!==t?t:null,M=null!=x?x:new Date,R=(0,h.db)(M),L=(0,h.JE)(null==o?void 0:null===(e=o[0])||void 0===e?void 0:e.balance_after,D),z=(0,h.gf)(D,F,R),I=(0,_.Nf)(M.toISOString()),O=null;O="ok"===z.estado?(0,s.jsx)(i,{content:"Calculado sobre tu consumo de este mes (".concat((0,p.UK)(null!=F?F:0)," en ").concat(Math.round(10*R)/10," d\xedas)."),side:"bottom",children:(0,s.jsxs)("span",{className:"creditos-card__proyeccion".concat(z.dias<7?" creditos-card__proyeccion--warn":""),children:["A tu ritmo de consumo, el saldo dura ~",z.dias," ",1===z.dias?"d\xeda":"d\xedas","."]})}):"mas-de-90"===z.estado?(0,s.jsx)("span",{className:"creditos-card__proyeccion",children:"M\xe1s de 90 d\xedas a tu ritmo actual."}):"sin-consumo"===z.estado?(0,s.jsx)("span",{className:"creditos-card__proyeccion",children:"Sin consumo este mes: tu saldo no est\xe1 bajando."}):"sin-saldo"===z.estado?(0,s.jsx)("span",{className:"creditos-card__proyeccion",children:"Sin saldo disponible."}):(0,s.jsx)("span",{className:"creditos-card__proyeccion",children:"Proyecci\xf3n disponible a partir del d\xeda 3."});let B=null;if((null==f?void 0:f.estado)==="ok"){let a=f.medidos<f.total?" \xb7 sobre ".concat(f.medidos," de ").concat(f.total," agentes"):"";B=(0,s.jsxs)("p",{className:"creditos-card__pedagogia tnum",children:["Este mes, cada conversaci\xf3n te cost\xf3 ~",function(a){return a>0&&a<.01?"< US$ 0.01":(0,p.UK)(a)}(f.usd),".",(0,s.jsxs)("span",{className:"creditos-card__pedagogia-detalle",children:[" ",f.conversaciones," ",1===f.conversaciones?"conversaci\xf3n":"conversaciones"," \xb7"," ",(0,p.UK)(f.consumido)," consumidos por tus agentes",a,"."]})]})}else(null==f?void 0:f.estado)==="sin-conversaciones"&&(B=(0,s.jsx)("p",{className:"creditos-card__pedagogia",children:"A\xfan sin conversaciones este mes: cuando tu agente empiece a responder, aqu\xed ver\xe1s cu\xe1nto te cuesta cada una."}));return(0,s.jsxs)(m.A,{as:"section",className:"creditos-card",children:[(0,s.jsxs)("div",{className:"creditos-card__header",children:[(0,s.jsx)("span",{className:"creditos-card__eyebrow",children:"Cr\xe9ditos"}),(0,s.jsx)("span",{className:"creditos-card__saldo tnum",children:(0,p.UK)(D)})]}),"ok"===L&&(0,s.jsx)("p",{className:"creditos-card__coherencia creditos-card__coherencia--ok",children:"✓ Coincide con el saldo de tu \xfaltimo movimiento"}),"divergente"===L&&(0,s.jsx)("p",{className:"creditos-card__coherencia creditos-card__coherencia--aviso",children:"El saldo y el \xfaltimo movimiento no coinciden; estamos conciliando."}),O,(0,s.jsxs)("p",{className:"creditos-card__consumo tnum",children:["Consumo de ",I,": ",(0,p.UK)(F)]}),B,(0,s.jsxs)("p",{className:"creditos-card__micro",children:["Los cr\xe9ditos los gasta la IA cuando trabaja: cada respuesta de tu agente, los audios que transcribe, las fotos que interpreta, los documentos que lee y los embudos que genera. Tener WhatsApp conectado no gasta."," ",v?(0,s.jsx)(s.Fragment,{children:"El cargo de tus apps se factura aparte, en el estimado de arriba."}):(0,s.jsx)(s.Fragment,{children:"El cobro de las apps es independiente y se coordina manualmente."})," ",(0,s.jsx)("a",{className:"creditos-card__guia",href:q.AL,target:"_blank",rel:"noopener noreferrer",children:"C\xf3mo funcionan los cr\xe9ditos ↗"})]}),v?(0,s.jsxs)("div",{className:"creditos-card__recarga",children:[(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",anchor:"billing.recargar",onClick:v,children:"Recargar cr\xe9ditos"}),(0,s.jsx)("p",{className:"creditos-card__recarga-nota",children:"Elige un pack y p\xe1galo en l\xednea; el saldo de arriba sube al instante."})]}):(0,s.jsxs)("div",{className:"creditos-card__recarga",children:[(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",disabled:!0,children:"Recargar cr\xe9ditos"}),(0,s.jsx)("p",{className:"creditos-card__recarga-nota",children:"La recarga se gestiona manualmente por ahora. Escr\xedbenos y la aplicamos a tu cuenta: el saldo de arriba sube en cuanto la apliquemos."}),(0,s.jsx)("a",{className:"creditos-card__contacto",href:q.mK,target:"_blank",rel:"noopener noreferrer",children:"Contactar al equipo →"})]}),g&&b?(0,s.jsxs)("div",{className:"creditos-card__autorecarga",children:[(0,s.jsxs)("div",{className:"creditos-card__autorecarga-header",children:[(0,s.jsx)("span",{className:"creditos-card__autorecarga-titulo",children:"Auto-recarga"}),(0,s.jsx)(E.A,{size:"small",active:N,disabled:!g.canEnable,onChange:a=>y(a)})]}),g.canEnable?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("label",{className:"creditos-card__autorecarga-campo",children:[(0,s.jsx)("span",{children:"Cuando el saldo baje de (US$)"}),(0,s.jsx)("input",{type:"number",min:"0",step:"1",value:k,disabled:!N||A,onChange:a=>S(a.target.value),"aria-label":"Umbral de auto-recarga en d\xf3lares"})]}),(0,s.jsxs)("label",{className:"creditos-card__autorecarga-campo",children:[(0,s.jsx)("span",{children:"Recargar este pack"}),(0,s.jsxs)("select",{value:w,disabled:!N||A,onChange:a=>C(a.target.value),"aria-label":"Pack de auto-recarga",children:[(0,s.jsx)("option",{value:"",children:"Elige un pack…"}),(null!=j?j:[]).map(a=>(0,s.jsxs)("option",{value:String(a.id),children:[a.name," — ",(0,p.UK)(a.price)]},a.id))]})]}),(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",loading:A,onClick:()=>void K(),children:"Guardar auto-recarga"})]}):(0,s.jsx)("p",{className:"creditos-card__autorecarga-nota",children:"Guarda una tarjeta primero (activa tu suscripci\xf3n o haz una recarga con tarjeta) para usar la auto-recarga. Pagar en soles con Yape no la habilita: Yape no deja una tarjeta con la que cobrar despu\xe9s."}),P&&(0,s.jsx)("p",{className:"creditos-card__autorecarga-nota",role:"status",children:P})]}):(0,s.jsxs)("div",{className:"creditos-card__autorecarga",children:[(0,s.jsx)("span",{className:"creditos-card__autorecarga-titulo",children:"Auto-recarga — pr\xf3ximamente"}),(0,s.jsx)("p",{className:"creditos-card__autorecarga-nota",children:"Podr\xe1s recargar autom\xe1ticamente cuando tu saldo baje de un umbral."})]})]})};var T=n(57370);n(83053);var K=n(79765),D=n(5153),F=n(27680);let M="https://checkout.culqi.com/js/v4",R=[],L=null;function z(){let a=R;R=[],a.forEach(a=>a())}function I(){let a=window.Culqi;if(null==a?void 0:a.token){let e=a.token.id;try{a.close()}catch(a){}null==L||L.token(e)}else(null==a?void 0:a.error)&&(null==L||L.error(a.error.user_message||"No se pudo procesar la tarjeta"))}let O={culqi:{slug:"culqi",isReady:()=>
1!!window.Culqi,ensureReady(a){if(window.Culqi)return a(),()=>{};R.push(a);let e=document.querySelector('script[src="'.concat(M,'"]'));if(e)e.dataset.culqiHooked||(e.dataset.culqiHooked="1",e.addEventListener("load",z,{once:!0}));else{let a=document.createElement("script");a.src=M,a.async=!0,a.dataset.culqiHooked="1",a.onload=z,document.body.appendChild(a)}return()=>{R=R.filter(e=>e!==a)}},open(a,e){let n=window.Culqi;if(!n){e.error("Culqi a\xfan no carga, intenta de nuevo en un momento");return}L=e,window.culqi=I,n.publicKey=F.$W.CULQI_PUBLIC_KEY,n.settings({title:a.title||"DarkFunnels",currency:a.currency,amount:a.amountCents}),n.options({lang:"auto",installments:!1,paymentMethods:{tarjeta:!0,yape:"PEN"===a.currency,billetera:!1,bancaMovil:!1,agente:!1,cuotealo:!1}}),n.open()}}},B=null;function G(){var a;let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"culqi",n=null!==(a=O[e])&&void 0!==a?a:null,[s,t]=(0,l.useState)(()=>{var a;return null!==(a=null==n?void 0:n.isReady())&&void 0!==a&&a});return(0,l.useEffect)(()=>{if(n)return n.ensureReady(()=>t(!0))},[n]),{open:(0,l.useCallback)(a=>{var s,l;if(!n){null===(s=a.onError)||void 0===s||s.call(a,"El m\xe9todo de pago \xab".concat(e,"\xbb a\xfan no est\xe1 soportado."));return}let t=Symbol("payment-request");B=t;let r=!1;n.open({amountCents:a.amountCents,currency:null!==(l=a.currency)&&void 0!==l?l:"USD",title:a.title},{token:e=>{r||B!==t||(r=!0,a.onToken(e))},error:e=>{var n;r||B!==t||null===(n=a.onError)||void 0===n||n.call(a,e)}})},[n,e]),ready:s}}let Y=a=>{let{loading:e,hasSavedCard:n,gatewayName:t,nextBillingDate:r,cardBrand:o,cardLast4:c,backupSupported:i,hasBackupCard:h,backupCardBrand:_,backupCardLast4:v,companyId:g,onCardChanged:j}=a,{open:b,ready:x}=G(),[f,N]=(0,l.useState)(null),[y,k]=(0,l.useState)(null),[S,w]=(0,l.useState)(!1);if(e)return(0,s.jsxs)(m.A,{as:"section",className:"metodos-pago","aria-busy":"true",children:[(0,s.jsx)(d.A,{variant:"text",width:120,height:12}),(0,s.jsx)(d.A,{variant:"text",count:2,height:12})]});let C=()=>{k(null),w(!1)},A=async(a,e,n,s)=>{var l,t,r,o,c;N(a);try{let a=await e();if(a.success&&(null===(l=a.data)||void 0===l?void 0:l.ok)!==!1)return k(n(a.data)),null==j||j(),!0;(null===(t=a.data)||void 0===t?void 0:t.reason)==="not_enabled"?(w(!0),k("El cambio de tarjeta no est\xe1 habilitado todav\xeda. Escr\xedbenos por WhatsApp y lo hacemos contigo.")):k((null===(r=a.data)||void 0===r?void 0:r.message)||a.message||s)}catch(a){k((null==a?void 0:null===(c=a.response)||void 0===c?void 0:null===(o=c.data)||void 0===o?void 0:o.message)||s)}finally{N(null)}return!1},E=(a,e)=>{g&&A(e?"backup":"change",()=>D.A.updateCard(g,a,e),a=>{let n=null==a?void 0:a.card;return e?(null==a?void 0:a.role)!=="backup"?(null==n?void 0:n.last4)?"Guardamos tu ".concat(n.brand||"tarjeta"," \xb7\xb7\xb7\xb7 ").concat(n.last4," como tarjeta principal."):"Guardamos la tarjeta como tu tarjeta principal.":(null==n?void 0:n.last4)?"Listo: tu ".concat(n.brand||"tarjeta"," \xb7\xb7\xb7\xb7 ").concat(n.last4," queda de respaldo."):"Listo: guardamos tu tarjeta de respaldo.":(null==n?void 0:n.last4)?"Listo: desde ahora usamos tu ".concat(n.brand||"tarjeta"," \xb7\xb7\xb7\xb7 ").concat(n.last4,"."):"Listo: desde ahora usamos tu nueva tarjeta."},"No pudimos guardar la tarjeta. Int\xe9ntalo de nuevo.")},U=a=>{g&&!f&&(C(),b({amountCents:0,currency:"USD",title:a?"Tarjeta de respaldo \xb7 sin cobro":"Cambiar tarjeta \xb7 sin cobro",onToken:e=>E(e,a),onError:a=>k(a)}))},P=async()=>{if(!g||f)throw Error("otra acci\xf3n en curso");if(C(),!await A("remove",()=>D.A.removeBackupCard(g),a=>(null==a?void 0:a.removed)===!1?"Ya no ten\xedas tarjeta de respaldo.":"Listo: quitamos tu tarjeta de respaldo.","No pudimos quitar la tarjeta de respaldo. Int\xe9ntalo de nuevo."))throw Error("no se quit\xf3 la tarjeta de respaldo")};return(0,s.jsxs)(m.A,{as:"section",className:"metodos-pago",children:[(0,s.jsx)("span",{className:"metodos-pago__eyebrow",children:"M\xe9todos de pago"}),n?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"metodos-pago__seccion",children:[(0,s.jsx)("span",{className:"metodos-pago__rotulo",children:"Principal"}),(0,s.jsxs)("div",{className:"metodos-pago__tarjeta",children:[(0,s.jsx)("span",{className:"metodos-pago__brand",children:o||"Tarjeta"}),(0,s.jsxs)("span",{className:"metodos-pago__numero tnum",children:["\xb7\xb7\xb7\xb7 ",c||"????"]})]}),(0,s.jsxs)("p",{className:"metodos-pago__copy",children:[r?"Se usar\xe1 para tu cobro del ".concat((0,p.sL)(r)," y la auto-recarga."):"Se usar\xe1 para tus pr\xf3ximos cobros y la auto-recarga.",t?" Procesa ".concat(t,"."):""]}),(0,s.jsx)("div",{className:"metodos-pago__acciones",children:(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",anchor:"billing.cambiar-tarjeta",loading:"change"===f,disabled:!g||!x||null!==f,onClick:()=>U(),children:"Cambiar tarjeta"})})]}),i&&(0,s.jsxs)("div",{className:"metodos-pago__seccion",children:[(0,s.jsx)("span",{className:"metodos-pago__rotulo",children:"Respaldo"}),h?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"metodos-pago__tarjeta",children:[(0,s.jsx)("span",{className:"metodos-pago__brand",children:_||"Tarjeta"}),(0,s.jsxs)("span",{className:"metodos-pago__numero tnum",children:["\xb7\xb7\xb7\xb7 ",v||"????"]})]}),(0,s.jsxs)("div",{className:"metodos-pago__acciones",children:[(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",loading:"swap"===f,disabled:!g||null!==f,onClick:()=>{g&&!f&&(C(),A("swap",()=>D.A.swapCards(g),()=>v?"Listo: desde ahora usamos tu ".concat(_||"tarjeta"," \xb7\xb7\xb7\xb7 ").concat(v,"; la anterior queda de respaldo."):"Listo: tu tarjeta de respaldo ahora es la principal.","No pudimos cambiar tu tarjeta principal. Int\xe9ntalo de nuevo."))},children:"Usar como principal"}),(0,s.jsx)(K.A,{consequence:"Sin respaldo, si el banco rechaza tu tarjeta principal no tendremos otra a la que cobrar.",confirmLabel:"S\xed, quitar",cancelLabel:"Volver",danger:!0,onConfirm:P,children:a=>(0,s.jsx)(u.A,{type:"button",variant:"ghost",size:"xsmall",disabled:!g||null!==f,onClick:a,children:"Qu
1itar"})})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"metodos-pago__copy",children:"Si el banco rechaza tu tarjeta principal en una renovaci\xf3n o una auto-recarga, cobramos a la de respaldo en el acto."}),(0,s.jsx)("div",{className:"metodos-pago__acciones",children:(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",anchor:"billing.agregar-respaldo",loading:"backup"===f,disabled:!g||!x||null!==f,onClick:()=>U("backup"),children:"Agregar tarjeta de respaldo"})})]})]}),(y||S)&&(0,s.jsxs)("div",{className:"metodos-pago__estado",children:[y&&(0,s.jsx)("p",{className:"metodos-pago__msg",role:"status",children:y}),S&&(0,s.jsx)("a",{className:"metodos-pago__contacto",href:q.wf,target:"_blank",rel:"noopener noreferrer",children:"Contactar al equipo →"})]})]}):(0,s.jsx)("p",{className:"metodos-pago__copy",children:"A\xfan no hay una tarjeta guardada. Tu tarjeta se guarda autom\xe1ticamente al activar la suscripci\xf3n o al hacer tu primera recarga."})]})};n(10349);var V=n(2772),$=n(96874);n(95445);var W=n(24733),Q=n(68819),X=n(50229),Z=n(57552),H=n(9282);function J(a,e){var n,s,l,t,r,o,c;let i=a.card_last4?"".concat(null!==(n=a.card_brand)&&void 0!==n?n:"Tarjeta"," •••• ").concat(a.card_last4):null!==(l=null!==(s=a.card_brand)&&void 0!==s?s:a.paid_with)&&void 0!==l?l:null;return{titulo:e,lineas:(null!==(t=a.lines)&&void 0!==t?t:[]).map(a=>{var e;return{label:a.label,monto:null!==(e=a.amount)&&void 0!==e?e:a.amount_usd}}),total:a.amount_cents/100,moneda:a.currency,orden:null!==(o=null!==(r=a.reference_code)&&void 0!==r?r:a.charge_id)&&void 0!==o?o:null,tarjeta:i,fechaIso:null!==(c=a.charged_at)&&void 0!==c?c:null}}let aa=a=>{var e,n;let{open:t,onClose:r,datos:o}=a,c=l.useRef(null);if(l.useEffect(()=>{if(t&&o)return function(a){try{var e;if("function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let n=null!==(e=window.AudioContext)&&void 0!==e?e:window.webkitAudioContext;if(!n)return;let s=new n;try{"suspended"===s.state&&s.resume().catch(()=>void 0);let e=s.createBuffer(1,s.sampleRate,s.sampleRate),n=e.getChannelData(0);for(let a=0;a<n.length;a++)n[a]=2*Math.random()-1;let l=s.createBufferSource();l.buffer=e,l.loop=!0;let t=s.createBiquadFilter();t.type="bandpass",t.frequency.value=1400,t.Q.value=.9;let{delayMs:r,durationMs:o}=function(a){let e={delayMs:240,durationMs:2400};if(!a||"function"!=typeof window.getComputedStyle)return e;let n=window.getComputedStyle(a),s=(a,e)=>{let n=a.trim(),s=n.endsWith("ms")?parseFloat(n):n.endsWith("s")?1e3*parseFloat(n):NaN;return Number.isFinite(s)&&s>=0?s:e},l=s(n.animationDuration,e.durationMs);return{delayMs:s(n.animationDelay,e.delayMs),durationMs:l>0?l:e.durationMs}}(a),c=s.currentTime+r/1e3,i=c+o/1e3,d=s.createGain();d.gain.setValueAtTime(1,s.currentTime);let u=s.createOscillator();u.type="square",u.frequency.value=26/(o/1e3);let m=s.createGain();m.gain.setValueAtTime(.35,s.currentTime),u.connect(m),m.connect(d.gain);let p=s.createGain();p.gain.setValueAtTime(0,s.currentTime),p.gain.setValueAtTime(0,c),p.gain.linearRampToValueAtTime(.05,c+.06),p.gain.setValueAtTime(.05,Math.max(c+.06,i-.15)),p.gain.linearRampToValueAtTime(1e-4,i),l.connect(t),t.connect(d),d.connect(p),p.connect(s.destination),l.start(c),u.start(c),l.stop(i+.05),u.stop(i+.05);let h=!1,_=()=>{if(!h){h=!0;try{s.close().catch(()=>void 0)}catch(a){}}};return l.onended=_,_}catch(a){try{s.close().catch(()=>void 0)}catch(a){}return}}catch(a){return}}(c.current)},[t,o]),!o)return null;let i=a=>(0,Z.Nm)(a,o.moneda);return(0,s.jsx)(W.A,{open:t,onClose:r,title:o.titulo,size:"sm",children:(0,s.jsxs)("div",{className:"recibo-modal",children:[(0,s.jsxs)("div",{className:"recibo-modal__hero",children:[(0,s.jsx)("span",{className:"recibo-modal__check","aria-hidden":"true",children:(0,s.jsx)(Q.iW,{size:18})}),(0,s.jsxs)("div",{className:"recibo-modal__hero-texto",children:[(0,s.jsx)("span",{className:"recibo-modal__hero-titulo",children:"Pago completado"}),(0,s.jsx)("span",{className:"recibo-modal__hero-monto tnum",children:i(o.total)})]})]}),(0,s.jsx)("div",{className:"recibo-modal__impresora",children:(0,s.jsxs)("div",{className:"recibo-modal__papel",ref:c,children:[(0,s.jsx)("span",{className:"recibo-modal__marca",children:(0,s.jsx)(X.ov,{h:18})}),(0,s.jsx)("dl",{className:"recibo-modal__lineas",children:o.lineas.map((a,e)=>(0,s.jsxs)("div",{className:"recibo-modal__linea",children:[(0,s.jsx)("dt",{children:a.label}),(0,s.jsx)("dd",{className:"tnum",children:i(a.monto)})]},e))}),(0,s.jsxs)("div",{className:"recibo-modal__total",children:[(0,s.jsx)("span",{children:"Total pagado"}),(0,s.jsx)("span",{className:"tnum",children:i(o.total)})]}),(0,s.jsxs)("dl",{className:"recibo-modal__meta",children:[(0,s.jsxs)("div",{className:"recibo-modal__meta-fila",children:[(0,s.jsx)("dt",{children:"Pagado con"}),(0,s.jsx)("dd",{children:null!==(e=o.tarjeta)&&void 0!==e?e:"—"})]}),(0,s.jsxs)("div",{className:"recibo-modal__meta-fila",children:[(0,s.jsx)("dt",{children:"Fecha"}
1),(0,s.jsx)("dd",{className:"tnum",children:function(a){if(!a)return"—";let e=new Date(a);return Number.isNaN(e.getTime())?"—":(0,H.X)(e)}(o.fechaIso)})]}),(0,s.jsxs)("div",{className:"recibo-modal__meta-fila",children:[(0,s.jsx)("dt",{children:"N.\xba de operaci\xf3n"}),(0,s.jsx)("dd",{className:"recibo-modal__orden",children:null!==(n=o.orden)&&void 0!==n?n:"—"})]})]}),(0,s.jsx)("div",{className:"recibo-modal__barcode","aria-hidden":"true"})]})})]})})},ae="El pago en l\xednea a\xfan no est\xe1 habilitado; la suscripci\xf3n se coordina manualmente con el equipo.",an="No se pudo pagar la renovaci\xf3n.";function as(a){return a&&"object"==typeof a?"string"!=typeof a.reason?null:{reason:a.reason,message:"string"==typeof a.message?a.message:void 0}:null}let al=a=>{var e,n,t,r,o,c,i,h,_,v;let{summary:g,loading:j,refresh:b,onRecibo:x}=a,{open:f}=G(),N=function(a,e){var n,s,t,r,o,c,i,d,u,m,p;let h=null==a?void 0:a.company_id,_=null!==(r=null!==(t=null==a?void 0:a.contracted_seats)&&void 0!==t?t:null==a?void 0:a.active_agents_count)&&void 0!==r?r:0,v=null!==(o=null==a?void 0:a.active_agents_count)&&void 0!==o?o:0,g=null!==(c=null==a?void 0:a.pending_seats)&&void 0!==c?c:null,j=null!==(i=null==a?void 0:a.pending_seats_effective_at)&&void 0!==i?i:null,b=null!==(d=null==a?void 0:a.seat_increase_quote)&&void 0!==d?d:null,x=(null==a?void 0:a.has_saved_card)===!0,f=Math.max(null!==(u=null==a?void 0:a.agents_per_seat)&&void 0!==u?u:1,1),N=null!==(m=null==a?void 0:a.agents_allowed)&&void 0!==m?m:_*f,y=null!==(p=null==a?void 0:null===(s=a.seat_apps)||void 0===s?void 0:null===(n=s[0])||void 0===n?void 0:n.seat_unit_price_usd)&&void 0!==p?p:null,{open:k}=G(),[S,w]=(0,l.useState)(!1),[C,A]=(0,l.useState)(null),E=(0,l.useRef)(!1),U=(0,l.useCallback)(()=>{E.current=!1,w(!1),A(null)},[]),q=(0,l.useCallback)(async(a,n)=>{let s=null!=b&&Number(b)>0?Math.round(100*Number(b)):void 0;try{var l,t,r,o,c,i;let d=await D.A.addAgentSeat(a,{token:n,expectedAmountCents:s});d.success&&(null===(l=d.data)||void 0===l?void 0:l.ok)!==!1?(window.dispatchEvent(new Event("df:billing-actualizado")),await e(),A(f>1?"Cupo adicional contratado: ".concat(f," agentes activos m\xe1s."):"Cupo adicional contratado.")):(null===(t=d.data)||void 0===t?void 0:t.reason)==="not_enabled"?A((null===(o=d.data)||void 0===o?void 0:o.message)||"El pago en l\xednea a\xfan no est\xe1 habilitado; los cupos se coordinan manualmente con el equipo."):(null===(r=d.data)||void 0===r?void 0:r.reason)==="quote_changed"?(A((null===(c=d.data)||void 0===c?void 0:c.message)||"El importe del cupo cambi\xf3; rev\xedsalo y vuelve a intentarlo."),await e()):A((null===(i=d.data)||void 0===i?void 0:i.message)||d.message||"No se pudo cobrar el cupo adicional.")}catch(a){A("No se pudo cobrar el cupo adicional.")}finally{E.current=!1,w(!1)}},[e,f,b]),P=(0,l.useCallback)(async()=>{if(h&&!(_<=1)&&!E.current){E.current=!0,A(null),w(!0);try{var a,n,s,l;let t=await D.A.removeAgentSeat(h);t.success&&(null===(a=t.data)||void 0===a?void 0:a.ok)!==!1?(window.dispatchEvent(new Event("df:billing-actualizado")),await e(),A("Programado: tu cuota baja en la pr\xf3xima fecha de facturaci\xf3n. Conservas tus agentes actuales hasta entonces.")):(null===(n=t.data)||void 0===n?void 0:n.reason)==="not_enabled"?A((null===(s=t.data)||void 0===s?void 0:s.message)||"El pago en l\xednea a\xfan no est\xe1 habilitado; los cupos se coordinan manualmente con el equipo."):A((null===(l=t.data)||void 0===l?void 0:l.message)||t.message||"No se pudo programar la baja.")}catch(a){A("No se pudo programar la baja.")}finally{E.current=!1,w(!1)}}},[h,_,e]),T=(0,l.useCallback)(()=>{if(!h||E.current)return;if(x){E.current=!0,A(null),w(!0),q(h);return}let a=Math.round(100*Number(b));if(!(a>0)){A("No pudimos calcular el prorrateo. Recarga la p\xe1gina o suscr\xedbete primero.");return}E.current=!0,A(null),w(!0),k({amountCents:a,title:"DarkFunnels — Cupo adicional",onToken:a=>{q(h,a)},onError:a=>{A(a),E.current=!1,w(!1)}})},[h,x,b,k,q]);return{companyId:h,contractedSeats:_,agentsPerSeat:f,agentsAllowed:N,unitPriceUsd:y,activeAgents:v,pendingSeats:g,pendingEffectiveAt:j,quote:b,hasSavedCard:x,increase:T,decrease:P,busy:S,note:C,setNote:A,reset:U}}(g,b),[y,k]=(0,l.useState)(!1),[S,w]=(0,l.useState)(null),[C,A]=(0,l.useState)(!1),E=(0,l.useRef)(!1),U=(0,l.useRef)(null),[P,T]=(0,l.useState)(!1),[K,F]=(0,l.useState)(null),M=(0,l.useRef)(!1);if(j)return(0,s.jsxs)(m.A,{as:"section",className:"suscripcion-card","aria-busy":"true",children:[(0,s.jsx)(d.A,{variant:"text",width:120,height:12}
1),(0,s.jsx)(d.A,{variant:"rect",width:180,height:24,radius:"6px"}),(0,s.jsx)(d.A,{variant:"text",count:2,height:12})]});let R=null!==(n=null==g?void 0:g.subscription)&&void 0!==n?n:null,L=null!==(t=null==g?void 0:g.subscribe_quote)&&void 0!==t?t:null,z=null==g?void 0:g.company_id,I=!!(null==R?void 0:R.payment_gateway_name),O=async a=>{var e,n,s;if(z){k(!0);try{let n=await D.A.subscribe(z,a,null===(e=U.current)||void 0===e?void 0:e.amount_cents),s=as(n);s?("quote_changed"===s.reason&&await b(),w("not_enabled"===s.reason?s.message||ae:s.message||"No se pudo activar la suscripci\xf3n.")):(window.dispatchEvent(new Event("df:billing-actualizado")),null==x||x(n.receipt?J(n.receipt,"Suscripci\xf3n activada"):function(a,e){var n,s,l,t,r,o,c,i,d,u,m;let p=null!==(t=null!==(l=null==a?void 0:a.billable_seats)&&void 0!==l?l:null==a?void 0:a.seats)&&void 0!==t?t:0,h=Number(null!==(r=null==a?void 0:a.credit_price)&&void 0!==r?r:0),_=Number(null!==(o=null==a?void 0:a.agent_unit_price)&&void 0!==o?o:0),v=Math.max(null!==(c=e.agents_per_seat)&&void 0!==c?c:1,1),g=v>1?"".concat(p," cupo").concat(1===p?"":"s"," de agentes (hasta ").concat(p*v,")"):"".concat(p," cupo").concat(1===p?"":"s"," de agente"),j=a?[{label:"Cr\xe9ditos base",monto:h},...p>0?[{label:g,monto:p*_}]:[]]:[],b=null===(n=e.recent_ledger)||void 0===n?void 0:n.find(a=>{var e;return"grant"===a.event_type&&(null===(e=a.ref)||void 0===e?void 0:e.includes(":"))});return{titulo:"Suscripci\xf3n activada",lineas:j,total:Number(null!==(i=null==a?void 0:a.amount_usd)&&void 0!==i?i:0),moneda:"USD",orden:null!==(d=null==b?void 0:null===(s=b.ref)||void 0===s?void 0:s.split(":")[1])&&void 0!==d?d:null,tarjeta:e.card_last4?"".concat(null!==(u=e.card_brand)&&void 0!==u?u:"Tarjeta"," •••• ").concat(e.card_last4):null,fechaIso:null!==(m=null==b?void 0:b.created_at)&&void 0!==m?m:new Date().toISOString()}}(U.current,n)),await b(),w("Suscripci\xf3n activada. Tu tarjeta qued\xf3 guardada para tus pr\xf3ximos cobros."))}catch(a){w((null==a?void 0:null===(s=a.response)||void 0===s?void 0:null===(n=s.data)||void 0===n?void 0:n.message)||"No se pudo activar la suscripci\xf3n.")}finally{E.current=!1,k(!1)}}};if(!I){let a=!!L&&L.amount_cents>0&&!!z,e=null!==(r=null==L?void 0:L.seats)&&void 0!==r?r:0,n=null!==(o=null==L?void 0:L.billable_seats)&&void 0!==o?o:e;return(0,s.jsxs)(m.A,{as:"section",className:"suscripcion-card",children:[(0,s.jsx)("span",{className:"suscripcion-card__eyebrow",children:"Suscripci\xf3n"}),(null==g?void 0:g.trial)&&(0,s.jsx)("p",{className:"suscripcion-card__trial tnum".concat(g.trial.expired?" suscripcion-card__trial--vencida":""),role:"status",children:g.trial.expired?"Prueba vencida — suscr\xedbete para reactivar tus agentes.":"Prueba activa \xb7 ".concat(1===g.trial.days_left?"queda 1 d\xeda":"quedan ".concat(g.trial.days_left," d\xedas"),".")}),a&&L?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("p",{className:"suscripcion-card__monto tnum",children:[(0,p.UK)(L.amount_usd),"/mes"]}),(0,s.jsxs)("p",{className:"suscripcion-card__breakdown tnum",children:["Base ",(0,p.UK)(L.credit_price),n>0&&(0,s.jsxs)(s.Fragment,{children:[" ","+ ",n," cupo",1===n?"":"s"," \xd7 ",(0,p.UK)(L.agent_unit_price)]}),N.agentsPerSeat>1&&(0,s.jsxs)(s.Fragment,{children:[" — hasta ",e*N.agentsPerSeat," agentes activos"]})]}),L.discount_applied&&(0,s.jsx)("p",{className:"suscripcion-card__descuento",children:"Incluye el descuento de referido en tu primer cargo."}),(0,s.jsxs)("p",{className:"suscripcion-card__micro",children:["El cargo mensual incluye tus cr\xe9ditos de IA y los cupos de agentes activos",N.agentsPerSeat>1&&(0,s.jsxs)(s.Fragment,{children:[" (cada cupo habilita ",N.agentsPerSeat," agentes)"]}),". Tu tarjeta se guarda al activar."]}),(0,s.jsxs)(u.A,{type:"button",variant:"primary",size:"xsmall",loading:y,onClick:()=>{z&&L&&L.amount_cents>0&&!E.current&&(E.current=!0,w(null),U.current=L,f({amountCents:L.amount_cents,title:"DarkFunnels — Suscripci\xf3n",onToken:a=>{O(a)},onError:a=>{w(a),E.current=!1}}))},children:["Activar suscripci\xf3n — ",(0,p.UK)(L.amount_usd),"/mes"]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u.A,{type:"button",variant:"primary",size:"xsmall",disabled:!0,children:"Activar suscripci\xf3n"}),(0,s.jsx)("p",{className:"suscripcion-card__nota",children:"La cotizaci\xf3n de tu suscripci\xf3n no est\xe1 disponible; recarga la p\xe1gina e intenta de nuevo."})]}),S&&(0,s.jsx)("p",{className:"suscripcion-card__msg",role:"status",children:S})]})}let B=(null==R?void 0:R.status)==="past_due"||(null!==(c=null==R?void 0:R.fail_count)&&void 0!==c?c:0)>0,Y=Math.round(100*Number(null!==(i=null==R?void 0:R.total_price)&&void 0!==i?i:0)),W=!!(null==g?void 0:g.has_saved_card),Q=async a=>{if(z&&!M.current){M.current=!0,T(!0),F(null);try{let e=await D.A.payRenewal(z,{token:a,expectedAmountCents:Y}),n=as(e);n?(("nothing_due"===n.reason||"quote_changed"===n.reason)&&await b(),F("not_enabled"===n.reason?n.message||ae:n.message||an)):(window.dispatchEvent(new Event("df:billing-actualizado")),e.receipt&&(null==x||x(J(e.receipt,"Renovaci\xf3n pagada"))),await b(),F("Renovaci\xf3n pagada. Tu suscripci\xf3n sigue activa."))}catch(a){var e,n;F((null==a?void 0:null===(n=a.response)||void 0===n?void 0:null===(e=n.data)||void 0===e?void 0:e.message)||an)}finally{M.current=!1,T(!1)}}},X=()=>{Y>0&&!M.current&&(F(null),f({amountCents:Y,title:"DarkFunnels — Renovaci\xf3n",onToken:a=>{Q(a)},onError:a=>F(a)}))};return(0,s.jsxs)(m.A,{as:"section",className:"suscripcion-card",children:[(0,s.jsxs)("div",{className:"suscripcion-card__header",children:[(0,s.jsx)("span",{className:"suscripcion-card__eyebrow",children:"Suscripci\xf3n"}),B?(0,s.jsx)(V.A,{variant:"warning",dot:!0,className:"suscripcion-card__estado",children:"Pago pendiente"}):(0,s.jsx)(V.A,{variant:"success",dot:!0,className:"suscripcion-card__estado",children:"Activa"})]}),(0,s.jsx)("p",{className:"suscripcion-card__plan",children:null!==(h=null==R?void 0:R.plan_name)&&void 0!==h?h:"Plan"}),B?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("p",{className:"suscripcion-card__renueva tnum",children:["No pudimos cobrar tu renovaci\xf3n. Volvemos a intentarlo el ",(0,p.sL)(null==R?void 0:R.next_billing_date)," con tu tarjeta guardada."," ",(0,s.jsx)("a",{className:"suscripcion-card__contacto",href:q.sC,target:"_blank",rel:"noopener noreferrer",children:"Pagar de otra forma →"})]}),Y>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"suscripcion-card__pagar",children:[(0,s.jsxs)(u.A,{type:"button",variant:"primary",size:"xsmall",loading:P,onClick:W?()=>{Q()}:X,children:["Pagar ahora — ",(0,p.UK)(Y/100)]}),W&&(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",disabled:P,onClick:X,children:"Pagar con otra tarjeta"})]}),W&&(null==g?void 0:g.card_last4)&&(0,s.jsxs)("p",{className:"suscripcion-card__nota tnum",children:["Se 
1cobra en el acto a tu ",null!==(_=g.card_brand)&&void 0!==_?_:"tarjeta"," •••• ",g.card_last4,"."]})]})]}):(0,s.jsxs)("p",{className:"suscripcion-card__renueva tnum",children:["Se renueva el ",(0,p.sL)(null==R?void 0:R.next_billing_date)," con tu tarjeta guardada (",null==R?void 0:R.payment_gateway_name,")."]}),K&&(0,s.jsx)("p",{className:"suscripcion-card__msg",role:"status",children:K}),(0,s.jsx)("p",{className:"suscripcion-card__cupos tnum",children:N.agentsPerSeat>1?(0,s.jsxs)(s.Fragment,{children:[N.activeAgents," de ",N.agentsAllowed," agentes activos \xb7 ",N.contractedSeats," ","cupo",1===N.contractedSeats?"":"s"," de ",N.agentsPerSeat]}):(0,s.jsxs)(s.Fragment,{children:[N.activeAgents," de ",N.contractedSeats," cupo",1===N.contractedSeats?"":"s"," en uso"]})}),null!=N.pendingSeats&&N.pendingEffectiveAt&&(0,s.jsx)("p",{className:"suscripcion-card__pendiente tnum",children:N.agentsPerSeat>1?(0,s.jsxs)(s.Fragment,{children:["Tu cuota baja a ",N.pendingSeats," cupo",1===N.pendingSeats?"":"s"," (",N.pendingSeats*N.agentsPerSeat," agentes) el ",(0,p.sL)(N.pendingEffectiveAt),"."]}):(0,s.jsxs)(s.Fragment,{children:["Tu cuota baja a ",N.pendingSeats," el ",(0,p.sL)(N.pendingEffectiveAt),"."]})}),(0,s.jsxs)("div",{className:"suscripcion-card__stepper",role:"group","aria-label":"Cupos contratados",children:[(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",iconOnly:!0,ariaLabel:"Quitar un cupo",disabled:N.busy||N.contractedSeats<=1,onClick:()=>void N.decrease(),children:"−"}),(0,s.jsx)("span",{className:"suscripcion-card__stepper-n tnum",children:N.contractedSeats}),(0,s.jsx)(u.A,{type:"button",variant:"secondary",size:"xsmall",iconOnly:!0,ariaLabel:"Contratar un cupo m\xe1s",disabled:N.busy,onClick:()=>A(!0),children:"+"}),(0,s.jsx)("span",{className:"suscripcion-card__stepper-label",children:"cupos contratados"})]}),N.note&&(0,s.jsx)("p",{className:"suscripcion-card__msg",role:"status",children:N.note}),C&&(0,s.jsx)($.A,{open:!0,onClose:()=>A(!1),titulo:N.agentsPerSeat>1?"Contratar un cupo m\xe1s (+".concat(N.agentsPerSeat," agentes)"):"Contratar un cupo adicional",formula:null!=N.quote?"Cobro prorrateado hoy: ".concat((0,p.UK)(N.quote)," (fracci\xf3n restante del per\xedodo)."):"El prorrateo exacto lo calcula el backend al cobrar.",lineas:[...N.agentsPerSeat>1?["Pasas de ".concat(N.agentsAllowed," a ").concat(N.agentsAllowed+N.agentsPerSeat," agentes activos.")]:[],N.hasSavedCard?"Se cobra a tu tarjeta guardada; el cupo queda disponible de inmediato.":"Te pediremos la tarjeta en el widget seguro de Culqi; el cupo queda disponible al pagar."],totalActual:null!==(v=null==g?void 0:null===(e=g.subscription_estimate)||void 0===e?void 0:e.total_usd)&&void 0!==v?v:null,delta:N.unitPriceUsd,regla:null,confirmLabel:N.hasSavedCard?"Contratar cupo":"Continuar al pago",onConfirm:async()=>{N.increase()}})]})};function at(a,e){let n=Number("PEN"===e?a.price_pen:a.price);return Number.isFinite(n)&&n>0?n:0}n(63517);let ar=a=>{let{open:e,onClose:n,summary:t,refresh:r,onRecibo:o}=a,c=null==t?void 0:t.company_id,i=(null==t?void 0:t.has_saved_card)===!0,{open:d}=G(),[m,h]=(0,l.useState)(null),[_,v]=(0,l.useState)("USD"),[g,j]=(0,l.useState)(null),[b,x]=(0,l.useState)(null),[f,N]=(0,l.useState)(!1),[y,k]=(0,l.useState)(!1),S=(0,l.useRef)(!1);(0,l.useEffect)(()=>{e&&(x(null),N(!1),h(null),v("USD"),k(!1),D.A.getCatalog().then(a=>{var e;return h(null!==(e=a.topup_packs)&&void 0!==e?e:[])}).catch(()=>{h([]),x("No se pudo cargar el cat\xe1logo de recargas; intenta de nuevo.")}))},[e]);let w=(null!=m?m:[]).some(a=>at(a,"PEN")>0),C="PEN"===_&&w,A=()=>{S.current=!1,k(!1),j(null)},E=async(a,e)=>{var n,s,l;if(!c)return;let i=at(a,C?"PEN":"USD");try{let s={...e?{token:e}:{},...C?{currency:"PEN"}:{}},l=await D.A.purchaseTopup(c,a.id,Object.keys(s).length>0?s:void 0),d=function(a){if(!a||"object"!=typeof a)return null;let e=a.reason;return"string"==typeof e?e:null}(l.data);if(l.success&&!d){window.dispatchEvent(new Event("df:billing-actualizado"));let e=!function(a){return!!a&&"object"==typeof a&&"number"==typeof a.tx_id}(l.data)?void 0:l.data.receipt;null==o||o(e?J(e,"Recarga acreditada"):{titulo:"Recarga acreditada",lineas:[{label:a.name,monto:i}],total:i,moneda:C?"PEN":"USD",orden:null,tarjeta:C?null:(null==t?void 0:t.card_last4)?"".concat(null!==(n=t.card_brand)&&void 0!==n?n:"Tarjeta"," •••• ").concat(t.card_last4):null,fechaIso:new Date().toISOString()}),await r(),x("Recarga acreditada: tu saldo ya la refleja.")}else if("not_enabled"===d){N(!0);let a="object"==typeof l.data&&null!==l.data?l.data.message:void 0;x(a||"El pago en l\xednea a\xfan no est\xe1 habilitado; la recarga se gestiona manualmente.")}else x(l.message||"No se pudo procesar la recarga.")}catch(a){x((null==a?void 0:null===(l=a.response)||void 0===l?void 0:null===(s=l.data)||void 0===s?void 0:s.message)||"No se pudo procesar la recarga.")}finally{A()}},U=a=>
1{if(!c||S.current)return;if(S.current=!0,x(null),j(a.id),i&&!C){E(a);return}let e=Math.round(100*at(a,C?"PEN":"USD"));if(!(e>0)){x(C?"Este pack todav\xeda no se vende en soles; elige otro o paga en d\xf3lares.":"El precio del pack no est\xe1 disponible; recarga la p\xe1gina."),A();return}k(!0),d({amountCents:e,currency:C?"PEN":"USD",title:"DarkFunnels — Recarga de cr\xe9ditos",onToken:e=>{E(a,e)},onError:a=>{x(a),A()}})},P=null!==g||y;return(0,s.jsx)(W.A,{open:e,onClose:n,closeOnOverlay:!y,title:"Recargar cr\xe9ditos",size:"sm",children:(0,s.jsxs)("div",{className:"pack-picker",children:[w&&(0,s.jsxs)("div",{className:"pack-picker__moneda",role:"group","aria-label":"Moneda de pago",children:[(0,s.jsx)("button",{type:"button",className:"pack-picker__moneda-opcion","aria-pressed":!C,disabled:P,onClick:()=>v("USD"),children:"Pagar en d\xf3lares (tarjeta)"}),(0,s.jsx)("button",{type:"button",className:"pack-picker__moneda-opcion","aria-pressed":C,disabled:P,onClick:()=>v("PEN"),children:"Pagar en soles (Yape)"})]}),null===m?(0,s.jsx)("p",{className:"pack-picker__cargando","aria-busy":"true",children:"Cargando packs…"}):0===m.length?(0,s.jsx)("p",{className:"pack-picker__vacio",children:"No hay packs de recarga disponibles por ahora. Escr\xedbenos y coordinamos la recarga manualmente."}):(0,s.jsx)("ul",{className:"pack-picker__lista",children:m.map(a=>{let e=at(a,C?"PEN":"USD"),n=e>0;return(0,s.jsxs)("li",{className:"pack-picker__pack".concat(n?"":" pack-picker__pack--no-disponible"),children:[(0,s.jsxs)("div",{className:"pack-picker__pack-info",children:[(0,s.jsx)("span",{className:"pack-picker__pack-nombre",children:a.name}),a.description&&(0,s.jsx)("span",{className:"pack-picker__pack-desc",children:a.description})]}),(0,s.jsx)("span",{className:"pack-picker__pack-precio tnum",children:n?C?(0,Z.Nm)(e,"PEN"):(0,p.UK)(e):"solo en d\xf3lares"}),(0,s.jsx)(u.A,{type:"button",variant:"primary",size:"xsmall",loading:g===a.id,disabled:P||!c||!n,onClick:()=>U(a),children:"Comprar"})]},a.id)})}),(0,s.jsx)("p",{className:"pack-picker__micro",children:C?"Pagas con Yape desde el widget seguro de Culqi; el saldo se acredita en d\xf3lares al instante. Yape no deja tarjeta guardada, as\xed que no habilita la auto-recarga.":i?"Se cobra a tu tarjeta guardada y el saldo se acredita al instante.":"Pagas en el widget seguro de Culqi; tu tarjeta queda guardada para tus pr\xf3ximos cobros."}),b&&(0,s.jsx)("p",{className:"pack-picker__msg",role:"status",children:b}),(f||null!==m&&0===m.length)&&(0,s.jsx)("a",{className:"pack-picker__contacto",href:q.mK,target:"_blank",rel:"noopener noreferrer",children:"Contactar al equipo →"})]})})};var ao=n(68348),ac=n(79076),ai=n(38161),ad=n(56101),au=n(20585),am=n(35758),ap=n(52368),ah=n(85582);let a_=()=>{var a,e,n,r,o,c,i,d,u,m,h,_,v,g,b,x,f,N,y,k,S,w,C,E,q,K;let{summary:F,loading:M,error:R,refresh:L}=(0,ai.z)(),{summary:z}=(0,ad.ZA)(),I=(null==z?void 0:z.welcome_grant_pending)===!0,O=function(){let{enabled:a=!0,ahora:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=(0,am.G)(ap.Bw),s=(0,am.G)(ap.f),[t,r]=(0,l.useState)({estado:"cargando"}),o=(0,l.useRef)(null);null===o.current&&(o.current=function(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date;return{from:new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1)).toISOString(),to:a.toISOString()}}(e));let c=(0,l.useMemo)(()=>n.map(a=>String(a.id)).join(","),[n]),i=(0,l.useRef)(n);(0,l.useEffect)(()=>{i.current=n},[n]);let d="succeeded"===s;return(0,l.useEffect)(()=>{if(!a||!d)return;let e=i.current.map(a=>String(a.id));if(0===e.length){r({estado:"sin-agentes"});return}let n=!0,{from:s,to:l}=o.current;return r({estado:"cargando"}),(async()=>{try{let a=await Promise.allSettled(e.map(a=>ah.A.getAgentStats(a,s,l)));if(!n)return;let t=a.map(a=>{var e;return"fulfilled"===a.status&&(null===(e=a.value)||void 0===e?void 0:e.success)&&a.value.data?a.value.data:null});r(function(a){let e=a.length;if(0===e)return{estado:"sin-agentes"};let n=0,s=0,l=0;for(let e of a)e&&!1!==e.stats_ok&&(n+=1,s+=U(e.conversations_started),l+=U(e.credits_consumed));return 0===n?{estado:"no-medido",total:e}:s<=0?{estado:"sin-conversaciones",consumido:l,medidos:n,total:e}:{estado:"ok",usd:l/s,conversaciones:s,consumido:l,medidos:n,total:e}}(t))}catch(a){n&&r({estado:"no-medido",total:e.length})}})(),()=>{n=!1}},[a,d,c]),t}({enabled:!!F}),{apps:B,canManage:G,companyId:V,refresh:W}=function(){let a=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[e,n]=(0,l.useState)(null),[s,t]=(0,l.useState)(!1),[r,o]=(0,l.useState)(null),[c,i]=(0,l.useState)(!1),d=(0,l.useCallback)(async()=>{i(!0);try{let a=await ao.A.overview();a.success&&a.data&&(n(a.data.apps),t(a.data.can_manage),o(a.data.company_id))}catch(a){}finally{i(!1)}},[]);return(0,l.useEffect)(()=>{a&&d()},[a,d]),{apps:e,canManage:s,companyId:r,loading:c,refresh:d}}(),{refresh:Q}=(0,ac.O)(),X=!!F&&!!V&&String(F.company_id)===V,Z=X?B:null,H=null!==(i=null==F?void 0:F.credits)&&void 0!==i?i:null,J=!F&&!R||M&&!F,ae=R?null:null!==(d=null==F?void 0:F.apps)&&void 0!==d?d:null,an=R?null:null!==(u=null==F?void 0:F.subscription_estimate)&&void 0!==u?u:null,[as,at]=(0,l.useState)(null),[a_,av]=(0,l.useState)(!1),[ag,aj]=(0,l.useState)(null),ab=(0,l.useCallback)(a=>{av(!1),aj(a)},[]);(0,l.useEffect)(()=>{"1"===new URLSearchParams(window.location.search).get("recargar")&&(av(!0),window.history.replaceState(null,"","/billing"))},[]);let[ax,af]=(0,l.useState)(null);(0,l.useEffect)(()=>{D.A.getCatalog().then(a=>{var e;return af(null!==(e=a.topup_packs)&&void 0!==e?e:[])}).catch(()=>af([]))},[]);let aN=(0,l.useCallback)(async a=>{if(!F)return{ok:!1,error:"No se pudo cargar la facturaci\xf3n."};try{let e=await D.A.setAutorecharge(F.company_id,a);if(null==e?void 0:e.ok)return await L(),{ok:!0};return{ok:!1,error:(null==e?void 0:e.error)||(null==e?void 0:e.message)||"No se pudo guardar la auto-recarga."}}catch(a){return{ok:!1,error:"No se pudo guardar la auto-recarga."}}},[F,L]),ay=as?null!==(m=null==Z?void 0:null===(a=Z.find(a=>a.slug===as.module_slug))||void 0===a?void 0:a.estimated_charge_usd)&&void 0!==m?m:as.amount_usd:null;return(0,s.jsx)("div",{className:"billing-container",children:(0,s.jsxs)("div",{className:"billing",children:[(0,s.jsx)(t.A,{title:"Saldo y facturaci\xf3n",subtitle:"Lo que tus apps facturan este mes y el saldo de tus cr\xe9ditos. Aqu\xed no aparecen tus ingresos por ventas a clientes."}),(0,s.jsxs)("div",{className:"billing-content",children:[F&&(0,s.jsx)("div",{className:"billing-banner-slot",children:(0,s.jsx)(T.A,{balance:null!==(h=null==H?void 0:H.available_credits)&&void 0!==h?h:null,monthlyUsed:null!==(_=null==H?void 0:H.monthly_used_credits)&&void 0!==_?_:null,reserve:null!==(v=null==H?void 0:H.min_turn_reserve)&&void 0!==v?v:null,trial:null!==(g=F.trial)&&void 0!==g?g:null,welcomeGrantPending:I,welcomeAmounts:(0,au.$)(z),onRecargar:()=>av(!0)})}),(0,s.jsxs)("div",{className:"billing-factura",children:[(0,s.jsx)(j,{apps:ae,estimate:an,loading:J,onRetry:L}),(0,s.jsxs)("div",{className:"billing-factura__grid",children:[(0,s.jsx)(A,{apps:ae,estimate:an,loading:J,catalogo:Z,canManage:X&&G,onDesactivar:at}),(0,s.jsxs)("div",{className:"billing-factura__lateral",children:[(0,s.jsx)(al,{summary:R?null:F,loading:J,refresh:L,onRecibo:ab}),(0,s.jsx)(P,{credits:H,ledger:null!==(b=null==F?void 0:F.recent_ledger)&&void 0!==b?b:null,loading:J,costoConversacion:O,onRecargar:()=>av(!0),autorecarga:F?{enabled:!!(null===(e=F.subscription)||void 0===e?void 0:e.autorecharge_enabled),threshold:null!==(x=null===(n=F.subscription)||void 0===n?void 0:n.autorecharge_threshold)&&void 0!==x?x:null,packId:null!==(f=null===(r=F.subscription)||void 0===r?void 0:r.autorecharge_pack_id)&&void 0!==f?f:null,canEnable:!0===F.has_saved_card}:null,packs:ax,onAutorecargaChange:aN}),(0,s.jsx)(Y,{loading:J,hasSavedCard:(null==F?void 0:F.has_saved_card)===!0,gatewayName:null!==(N=null==F?void 0:null===(o=F.subscription)||void 0===o?void 0:o.payment_gateway_name)&&void 0!==N?N:null,nextBillingDate:null!==(y=null==F?void 0:null===(c=F.subscription)||void 0===c?void 0:c.next_billing_date)&&void 0!==y?y:null,cardBrand:null!==(k=null==F?void 0:F.card_brand)&&void 0!==k?k:null,cardLast4:null!==(S=null==F?void 0:F.card_last4)&&void 0!==S?S:null,backupSupported:"boolean"==typeof(null==F?void 0:F.has_backup_card),hasBackupCard:(null==F?void 0:F.has_backup_card)===!0,backupCardBrand:null!==(w=null==F?void 0:F.backup_card_brand)&&void 0!==w?w:null,backupCardLast4:null!==(C=null==F?void 0:F.backup_card_last4)&&void 0!==C?C:null,companyId:null!==(E=null==F?void 0:F.company_id)&&void 0!==E?E:null,onCardChanged:L})]})]})]})]}),(0,s.jsx)(ar,{open:a_,onClose:()=>av(!1),summary:F,refresh:L,onRecibo:ab}),(0,s.jsx)(aa,{open:!!ag,onClose:()=>aj(null),datos:ag}),as&&(0,s.jsx)($.A,{open:!0,onClose:()=>at(null),titulo:"Desactivar ".concat(null!==(q=as.display_name)&&void 0!==q?q:as.module_slug),formula:null!==ay?"Su cargo de ".concat((0,p.UK)(ay)," se apaga."):"Su cargo estimado se apaga.",totalActual:null!==(K=null==an?void 0:an.total_usd)&&void 0!==K?K:null,delta:null!==ay?-ay:null,regla:"baja",confirmLabel:"Desactivar",danger:!0,onConfirm:async()=>{let a=await ao.A.deactivate(as.module_slug);
1if(!a.success)throw Error(a.message||"no se pudo desactivar");await Promise.all([L(),W(),Q()])}})]})})}},73767:(a,e,n)=>{"use strict";n.d(e,{$D:()=>o,LX:()=>i,Nf:()=>l,Xx:()=>c,Zk:()=>t});let s={timeZone:"UTC"};function l(a){return new Date(a).toLocaleDateString("es-PE",{month:"long",...s}).toLocaleLowerCase("es-PE")}function t(a){return new Date(a).getUTCDate()}function r(a){return a.toLocaleDateString("es-PE",{month:"short",...s}).replace(/\.$/,"").toLocaleLowerCase("es-PE")}function o(a){let e=new Date(a.start),n=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+1,1));return"1 ".concat(r(n)," (00:00 UTC)")}function c(a){return"del ".concat(t(a.start)," al ").concat(t(a.end)," de ").concat(l(a.start))}function i(a){let e=new Date(a);return"".concat(e.getUTCDate()," ").concat(r(e))}},96874:(a,e,n)=>{"use strict";n.d(e,{A:()=>u});var s=n(57543),l=n(59663);n(54091);var t=n(24733),r=n(35427),o=n(11011),c=n(97293),i=n(73767);function d(a){let{regla:e,delta:n,ahora:l}=a,t=(0,i.$D)({start:l.toISOString(),end:l.toISOString()});if("alta"===e){let a=(0,c.yi)(l),e=l.getUTCDate(),r=a-e+1;return(0,s.jsxs)("div",{className:"confirm-impacto__regla",children:[(0,s.jsxs)("p",{children:["Regla de cobro: al activar a mitad de mes pagas la parte proporcional hasta el corte del ",t,null!==n&&n>0&&(0,s.jsxs)(s.Fragment,{children:[": ",r," de ",a," d\xedas ≈ ",(0,o.UK)((0,c.CZ)(n,e,a))," ","(referencial — se confirma en la liquidaci\xf3n)"]}),"."]}),(0,s.jsx)("p",{children:"Mientras el cobro se gestiona manualmente, el estimado en pantalla muestra el mes completo."})]})}return"baja"===e?(0,s.jsxs)("div",{className:"confirm-impacto__regla",children:[(0,s.jsxs)("p",{children:["Regla de cobro: sin reembolso; la app queda disponible hasta el corte del ",t," y pagas el mes iniciado."]}),(0,s.jsx)("p",{children:"Nota: hoy, mientras el cobro es manual, el estimado la descuenta de inmediato (a tu favor) y el acceso se corta al confirmar."})]}):(0,s.jsxs)("div",{className:"confirm-impacto__regla",children:[(0,s.jsx)("p",{children:"Todos los agentes activos de tu empresa cuentan para este cargo (incluye agentes de otras apps)."}),(0,s.jsx)("p",{children:"El estimado usa el conteo vigente para el mes completo; los cambios se ajustan en la liquidaci\xf3n manual."})]})}let u=a=>{let{open:e,onClose:n,titulo:c,formula:i,lineas:u,totalActual:m,delta:p,deltaCopy:h,regla:_,confirmLabel:v,onConfirm:g,danger:j=!1,ahora:b}=a,[x,f]=(0,l.useState)(!1),[N,y]=(0,l.useState)(null),k=null!=b?b:new Date,S=()=>{x||(y(null),n())},w=async()=>{f(!0),y(null);try{await g(),n()}catch(a){y(a instanceof Error?a.message:"La operaci\xf3n no se pudo completar.")}finally{f(!1)}},C=null!==p,A=null!==p?p>=0?"+".concat((0,o.UK)(p)):"−".concat((0,o.UK)(Math.abs(p))):null;return(0,s.jsx)(t.A,{open:e,onClose:S,title:c,size:"sm",overlayClassName:"confirm-impacto-overlay",footer
1:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.A,{type:"button",variant:"offline",size:"xsmall",disabled:x,onClick:S,children:"Cancelar"}),(0,s.jsx)(r.A,{type:"button",variant:j?"danger":"primary",size:"xsmall",loading:x,onClick:()=>void w(),children:v})]}),children:(0,s.jsxs)("div",{className:"confirm-impacto",children:[i&&(0,s.jsx)("p",{className:"confirm-impacto__formula tnum",children:i}),null==u?void 0:u.map(a=>(0,s.jsx)("p",{className:"confirm-impacto__linea tnum",children:a},a)),C&&null!==m?(0,s.jsxs)("p",{className:"confirm-impacto__tabla tnum",children:["Tu estimado del mes: ",(0,o.UK)(m)," → ",(0,o.UK)(m+(null!=p?p:0))," ",(0,s.jsxs)("span",{className:"confirm-impacto__delta",children:["(",A,")"]})]}):(0,s.jsx)("p",{className:"confirm-impacto__sin-conteo",children:null!=h?h:"El impacto exacto se confirma en la liquidaci\xf3n manual."}),_&&(0,s.jsx)(d,{regla:_,delta:p,ahora:k}),N&&(0,s.jsx)("p",{className:"confirm-impacto__error",role:"alert",children:N})]})})}},30626:()=>{},55777:()=>{},14953:()=>{},83053:()=>{},63517:()=>{},95445:()=>{},10349:()=>{},46911:()=>{},54091:()=>{},34858:()=>{}}]);

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.