import { ButtonMetadata } from '../../types'; /** * Configuration for `val-section-header`. * * Layout (two rows): * ``` * ┌─────────────────────────────────────────────┐ * │ title (bold, 18px) [action button] │ ← row 1, space-between * │ info link / subtitle (muted) │ ← row 2, optional * └─────────────────────────────────────────────┘ * ``` * * Both `action` and `infoLink` emit `(actionClick)` with their `token`. * * @example Title + primary action button * ```html * * ``` * * @example Title + row-1 info link (no primary action) * ```html * * ``` * * @example Full — title + action + row-2 info link * ```html * * ``` */ export interface SectionHeaderMetadata { /** Main section title — bold, ~18px. */ title: string; /** * Title size variant. * - 'section' (default): 18px — for section headers within a page. * - 'page': display-small scale (24px mobile / 32px desktop) — for page-level headers. */ titleSize?: 'section' | 'page'; /** * Primary action button rendered on the RIGHT of row 1 (space-between). * Emits `(actionClick)` with the button's `token`. */ action?: ButtonMetadata; /** * Clickable info / help link rendered at the START of row 2 (below title). * Emits `(actionClick)` with its `token` (defaults to `'info'`). * Use for "¿Qué es esto?"-style links. */ infoLink?: { label: string; token?: string; }; /** * Static muted text in row 2 (shown below `infoLink` if both are set). * Use for brief descriptive copy that does not need to be clickable. */ subtitle?: string; }