/* Máquina de resultados — sección premium (Home) */ /* usa los globals useState/useEffect/useRef (declarados en kanban.jsx) */ /* ---- contador con formato es-CO ---- */ function CountKPI({ to, dec = 0, prefix = "", anim = 1 }) { const [v, setV] = useState(0); const ref = useRef(null); useEffect(() => { const el = ref.current; if (!el) return; let done = false; const run = () => { if (anim <= 0) { setV(to); return; } const D = 1800 / Math.max(0.35, anim), t0 = performance.now(); const tick = (now) => { const p = Math.min(1, (now - t0) / D); setV(to * (1 - Math.pow(1 - p, 3))); if (p < 1) requestAnimationFrame(tick); }; requestAnimationFrame(tick); }; const check = () => { if (done) return; const r = el.getBoundingClientRect(); if (r.top < window.innerHeight * 0.9 && r.bottom > 0) { done = true; window.removeEventListener("scroll", check); run(); } }; check(); window.addEventListener("scroll", check, { passive: true }); return () => window.removeEventListener("scroll", check); }, []); const fmt = dec > 0 ? v.toFixed(dec) : Math.round(v).toLocaleString("es-CO"); return {prefix}{fmt}; } /* ---- datos ---- */ const MQ_IDEAS = [ "Automatizar conciliación financiera", "Agente IA para servicio al cliente", "Dashboard ejecutivo", "Integración SAP", "Predicción de demanda", "Automatización de compras", "Portal de proveedores", ]; const MQ_RESULTS = [ { ttl: "Automatizar conciliación financiera", b: "320 h", s: "recuperadas al mes" }, { ttl: "Agente IA Comercial", b: "+18%", s: "velocidad de respuesta" }, { ttl: "Predicción de demanda", b: "+12%", s: "precisión operacional" }, { ttl: "Dashboard Ejecutivo", b: "100%", s: "visibilidad de indicadores" }, ]; const MQ_CAPS = ["IA", "Software", "Automatización", "Datos", "Cloud"]; const MQ_KPIS = [ { to: 1240, prefix: "$", u: "M COP", lbl: "Utilidad generada", trend: "▲ este trimestre" }, { to: 18450, u: "", lbl: "Horas recuperadas", trend: "▲ acumulado" }, { to: 47, u: "", lbl: "Iniciativas completadas", trend: "" }, { to: 6, u: "", lbl: "Iniciativas activas", trend: "" }, { to: 6.4, dec: 1, u: "x", lbl: "ROI estimado", trend: "▲" }, ]; const MQ_VALUES = [ { num: "+37", u: "%", lbl: "Incremento de productividad", d: "Automatización de tareas repetitivas y reducción de trabajo manual." }, { num: "$850", u: "M COP", lbl: "Ahorro operativo", d: "Costos eliminados mediante automatización y optimización." }, { num: "4", u: "x", lbl: "Velocidad de ejecución", d: "Más rápido que construir capacidades internas desde cero." }, ]; const MKB_COLS = [ { h: "Backlog", t: "Motor de precios dinámicos" }, { h: "Diseño", t: "Portal de proveedores" }, { h: "Construcción", t: "Dashboard financiero" }, { h: "Validación", t: "Integración SAP" }, { h: "Producción", t: "Forecast de demanda" }, ]; /* ---- núcleo + flujo ---- */ function CoreFlow({ anim }) { const [off, setOff] = useState(0); useEffect(() => { if (anim <= 0) return; const t = setInterval(() => setOff((o) => o + 1), 4800 / Math.max(0.4, anim)); return () => clearInterval(t); }, [anim]); const ideas = [0, 1, 2].map((i) => MQ_IDEAS[(off + i) % MQ_IDEAS.length]); const res = [0, 1, 2].map((i) => MQ_RESULTS[(off + i) % MQ_RESULTS.length]); return (

Obtenga capacidad técnica bajo demanda para ejecutar software, automatización, inteligencia artificial y analítica mediante una suscripción mensual.