import type { ReactNode } from 'react'; import type { RowAction } from './MasterDocument.types'; /** * Forma de `FlexRowAction` del paquete `@SiesaTeams/flex-query` (npm 0.4.0). * * Se declara estructuralmente en vez de importarse porque el kit **no depende** * de FlexQuery y no puede: ese paquete construye su UI con `siesa-ui-kit`, así * que la dependencia inversa cerraría un ciclo. Si su tipo cambia, el error * aparece donde el host asigna el resultado a la prop `rowActions` — que es * exactamente donde se quiere ver. */ export interface FlexRowActionLike { label: string; icon?: ReactNode; onClick: (row: Record) => void; placement?: 'inline' | 'context' | 'both'; } export interface ToFlexRowActionsOptions { /** Dónde se dibujan las acciones. Se aplica a todas. Ausente ⇒ el de FlexQuery. */ placement?: FlexRowActionLike['placement']; /** * Qué hacer con una acción que el kit marcó `disabled` (el gateo D2 «visible * pero deshabilitada»). * * - `'omit'` (por defecto): no se pasa. `FlexRowAction` **no tiene** campo * `disabled`, así que pasarla la dibujaría clicable y prometería algo que el * estado del documento no permite. * - `'inert'`: se pasa con `onClick` neutralizado. La acción se ve pero no hace * nada — solo úsalo si tu UI ya comunica por otro medio que no aplica. */ disabledActions?: 'omit' | 'inert'; } /** * Traduce las acciones de fila del kit a las de ``. * * `ctx.rowActions(row)` devuelve `RowAction[]`, el tipo del kit: trae `key`, * `variant`, `disabled`, `requiresConfirmation` y `confirmationMessage`, que * `FlexRowAction` no tiene. Este mapeo existe para que cada host no reescriba la * misma conversión, y para dejar por escrito lo que se pierde en ella. * * **Lo que no sobrevive al mapeo, y qué hacer:** * * - `disabled` → ver `disabledActions`. Es el hueco importante: sin campo * equivalente en FlexQuery, «visible pero deshabilitada» no se puede * representar y por defecto se omite la acción. * - `requiresConfirmation` / `confirmationMessage` → **el host debe confirmar**. * El kit solo pide confirmación por su cuenta en el menú de fila del listado * (`DocumentList`); dentro de una consulta del host, la UI es del host. Estas * acciones se pasan igual, así que si tu documento declara alguna con * confirmación, envuélvela tú antes de ejecutarla. * - `key` y `variant` → se descartan. `key` sigue disponible en el `RowAction` * original si necesitas ordenar o filtrar antes de mapear. * * @example * ```tsx * * ``` */ export declare function toFlexRowActions(actions: RowAction[], options?: ToFlexRowActionsOptions): FlexRowActionLike[]; //# sourceMappingURL=flexQueryInterop.d.ts.map