import React from 'react'; /** * Selector de compañía del tablero de indicadores. * * Es una copia deliberada del de MasterCrud, no una abstracción compartida. * Ese es el patrón del kit: `MasterCrud` tiene el suyo, `MasterPatternView` tiene * otro (`toolbar/CompanySelector`) y `MasterDocument` monta el propio. Cada módulo * necesita props distintas —aquí hace falta buscador y opciones deshabilitadas con * motivo, que los maestros no piden— y factorizarlos en uno solo obligaría a tocar * un componente del que dependen los maestros para servir a una pantalla nueva. * * El aspecto es idéntico al de Ítems, a propósito. Mismo chip azul de marca, mismo icono * contextual —globo cuando el alcance es Global, edificio cuando es una compañía—, mismo panel * con divisor, mismo check azul en la activa. Un usuario que cambia de compañía en Ítems y luego * en el tablero tiene que estar haciendo el mismo gesto sobre el mismo control. * * Los colores salen de la escala `primary-*` del kit, no de hexadecimales. El chip usaba * siete literales y seis de ellos ERAN esos tokens (`#93d1fd` = `primary-300`, * `#1355b7` = `primary-800`, `#dbeefe` = `primary-100`, `#3c9bf6` = `primary-500`, * `#0e79fd` = `primary-600`), mientras su propia variante oscura ya los nombraba. La regla del * módulo (`index.css`) es que ningún componente del tablero declare un hexadecimal; este control * es del ERP y no una tarjeta del tablero, así que su excepción es usar `primary-*` en vez de * `--dash-*` — no cablear el valor. * * Lo que este añade y los maestros no tienen: * * - Buscador, porque un tablero de dirección se consulta en organizaciones * con muchas compañías y un panel sin filtro deja de ser usable. * - Opciones deshabilitadas con su motivo, para `Global`: en un maestro * significa "registro que aplica a todas"; en un tablero significaría consolidar * varias compañías, que es otra operación — y sumar cifras en monedas distintas * da un número creíble y sin significado. */ export interface DashboardCompany { uuid: string; name: string; code?: string | null; /** Si el usuario la tiene habilitada. `undefined` oculta la pill de estado. */ enabled?: boolean; } /** El uuid con el que los maestros representan el alcance Global. Mismo convenio. */ export declare const GLOBAL_UUID = "000"; /** A partir de cuántas compañías aparece el buscador solo. */ export declare const SEARCH_THRESHOLD = 8; export interface DashboardCompanySelectorProps { companies: DashboardCompany[]; selectedCompanyId?: string | null; onCompanyChange: (company: DashboardCompany) => void; /** * Opciones visibles pero no elegibles, con el motivo como tooltip. * `{ '000': 'Las compañías habilitadas manejan monedas distintas' }` * * Se muestran en vez de ocultarse. Quien conoce una opción de otra pantalla * y no la encuentra aquí asume que falta o que algo se rompió; verla apagada con * su motivo le dice que existe y por qué hoy no aplica. */ optionDisabledReasons?: Record; /** `'auto'` enciende el buscador a partir de {@link SEARCH_THRESHOLD} compañías. */ searchable?: boolean | 'auto'; disabled?: boolean; className?: string; } export declare const DashboardCompanySelector: React.FC; //# sourceMappingURL=DashboardCompanySelector.d.ts.map