// Category icons — descriptive metaphors at 32x32, designed to read at a glance. // Two-tone: filled shape (opacity 0.14) + 1.5px stroke detail. Uses currentColor. const D = ({children, size=32}) => ( {children} ); const stroke = { stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" }; const fill = { fill: "currentColor", opacity: 0.14 }; const fillSolid = { fill: "currentColor" }; // ── 01 PROYECTOS DE NEGOCIO — briefcase with progress bars const CatProjects = (p) => ( ); // ── 02 DEFINICIÓN PRODUCTOS E INVENTARIOS — labeled product box const CatInventory = (p) => ( {/* small label tag */} ); // ── 03 OFERTAS B2B — sales funnel with deal $ const CatPipelineB2B = (p) => ( ); // ── 04 ACUERDOS — signed document with seal const CatAgreements = (p) => ( {/* signature ribbon seal */} ); // ── 05 VENTAS B2C — person + repeat arrow (subscription) const CatB2C = (p) => ( {/* recurring arrow */} ); // ── 06 FACTURACIÓN — invoice with $ const CatBilling = (p) => ( ); // ── 07 INTELIGENCIA COMERCIAL — dashboard with trend const CatBI = (p) => ( ); // ── 08 INVENTARIOS PUBLICITARIOS — TV with ad slots const CatAdInventory = (p) => ( {/* sold slot */} {/* available slots */} ); // ── 09 INVENTARIOS DE 3ROS — hub with external nodes const CatAd3rd = (p) => ( ); // ── 10 IMPLEMENTACIÓN PUBLICITARIA — broadcast tower const CatAdImpl = (p) => ( ); // ── 11 CONTENIDOS — claqueta (pizarra de rodaje) // Antes era un rollo de película: un círculo con cuatro círculos alrededor que a // 32px no se lee como cine sino como un enchufe. La claqueta tiene silueta propia // —cuerpo rectangular + brazo inclinado con franjas— y no se parece a ningún otro // icono del juego, así que se reconoce sin tener que adivinar. const CatContent = (p) => ( {/* cuerpo de la pizarra */} {/* brazo superior, levantado como cuando está abierta */} {/* franjas del brazo */} {/* renglones donde va escrito el título */} ); // ── 12 CONTRATOS USO CONTENIDO — scroll with copyright const CatContentRights = (p) => ( ); // ── 13 VENTANAS EXHIBICIÓN — calendar with windowed date range const CatExhibWindows = (p) => ( {/* highlighted exhibition window */} ); // ── 14 DIGITAL ASSET SYNDICATION — content distributed to devices const CatSyndication = (p) => ( {/* center file */} {/* TV */} {/* Phone */} {/* Laptop */} ); // ── 15 PROGRAMACIÓN SEÑALES — TV programming schedule grid const CatSignalProg = (p) => ( {/* small time markers */} ); // ── 16 PLAYLIST — numbered playlist with play indicator const CatPlaylist = (p) => ( ); // ── 17 INGEST & QC — media file entering with QC check const CatIngestQC = (p) => ( {/* incoming arrow */} {/* destination box / drive */} {/* QC check */} ); // ── 18 REAL EXHIBIDO — on-air panel const CatAsRun = (p) => ( ); // Expose Object.assign(window, { CatProjects, CatInventory, CatPipelineB2B, CatAgreements, CatB2C, CatBilling, CatBI, CatAdInventory, CatAd3rd, CatAdImpl, CatContent, CatContentRights, CatExhibWindows, CatSyndication, CatSignalProg, CatPlaylist, CatIngestQC, CatAsRun, }); // ── CLIENTES Y CRÉDITO — person silhouette + credit card const CatClientsCredit = (p) => ( ); // ── EQUIPOS DE VENTA Y COMISIONES — team of people + % badge const CatSalesTeams = (p) => ( {/* left person */} {/* right person */} {/* % badge */} ); // ── AREAS MONETIZACIÓN — dollar coin with revenue streams branching out const CatRevenue = (p) => ( {/* main coin */} {/* $ symbol */} {/* revenue stream nodes */} {/* connecting lines */} ); // ── DEFINICIÓN SEÑALES — broadcast tower radiating multi-platform signals const CatSignals = (p) => ( {/* base / antenna mast */} {/* transmitter dot at apex */} {/* signal waves — left */} {/* signal waves — right */} ); // ── GESTIÓN AUTOAPOYOS — TV screen broadcasting its own content (star inside + loop) const CatAutoapoyos = (p) => ( {/* TV body */} {/* stand */} {/* star inside screen (own content highlight) */} {/* loop arrow at top-right corner indicating "self/auto" */} ); // ── GESTIÓN CANJES — two parcels with bidirectional swap arrows const CatCanjes = (p) => ( {/* left package */} {/* right package */} {/* swap arrows on top */} ); // CatClientsCredit se definía sin exportarse: `Icon` no lo encontraba en window y // devolvía null, así que 5 ventanas (Autorización y Crédito, Empresas, Razón // Social, Usuarios, Usuario PEP-CECO) salían sin ícono en la cabecera. Object.assign(window, { CatSalesTeams, CatRevenue, CatSignals, CatAutoapoyos, CatCanjes, CatClientsCredit });