import type * as React from "react"; /** * StackedRowsPanel — a single bordered card that stacks rows inside it. * * Each row can be: * - a single full-width element (e.g. title + subtitle) — pass one column, * - N columns (each a value + label, possibly a tag/avatar) — pass several columns, * - an arbitrary node (e.g. a nested table) — pass `content`. * * Border-radius behaviour is handled entirely by the container: `rounded-md` + * `overflow-clip` clip the first/last rows to the rounded corners. So a single row * rounds all four corners, while many rows visually round only the top corners of * the first row and the bottom corners of the last — with no per-row corner logic. * * Cells render the ODS `value` (`text-h4`) over `label` (`text-h6`) pattern with an * optional leading icon, matching the app's detail layouts. Pass a node as `value` * (e.g. a `Tag`) to render a status chip with a caption beneath it. */ export type PanelColumnAlign = "left" | "center" | "right"; export type PanelHideAt = "md" | "lg" | "xl"; export interface PanelColumn { /** Stable key for the column. */ key: string; /** Custom cell content (tag, avatar + text, button…). Takes precedence over `value`/`label`. */ content?: React.ReactNode; /** Primary value rendered in the ODS h4 style when `content` is not set. */ value?: React.ReactNode; /** Secondary label rendered under the value (ODS h6, secondary colour). */ label?: string; /** Icon shown before the value. */ icon?: React.ReactNode; /** Icon shown before the whole value/label stack, vertically centered against * both lines (the info-banner pattern: 24px glyph + title + caption). */ leadingIcon?: React.ReactNode; /** When set, the cell becomes an external link. */ href?: string; /** Tailwind width class. Defaults to `flex-[1_0_0] min-w-0`. */ width?: string; /** Horizontal alignment of the column content. Defaults to `left`. */ align?: PanelColumnAlign; /** Hide the column below this breakpoint (mirrors the DataTable `hideAt` concept). */ hideAt?: PanelHideAt; } export interface PanelRow { /** Stable key for the row. */ id: string; /** One column → full-width row; several columns → a columns row. */ columns?: PanelColumn[]; /** Arbitrary content (e.g. a nested table). Takes precedence over `columns`. */ content?: React.ReactNode; /** Per-row overrides (e.g. height, or `p-0` for a nested table that should reach the edges). */ className?: string; } export interface StackedRowsPanelProps { rows: PanelRow[]; /** Optional uppercase caption rendered above the card. */ title?: string; className?: string; } export declare function StackedRowsPanel({ rows, title, className }: StackedRowsPanelProps): React.JSX.Element; //# sourceMappingURL=stacked-rows-panel.d.ts.map