import { ReactNode, Ref, ElementType } from 'react'; import { Color } from '../types.js'; import { ButtonProps, ButtonSize } from './Button.js'; import { SurfaceVariant } from './Surface.js'; interface ListButtonOwnProps { /** Title content of the row (the main text/element on the row). */ children?: ReactNode; /** Extra classes for the row's surface root. */ className?: string; /** Extra classes for the row's inner content area. */ contentClassName?: string; /** Extra classes for the inner column (the wrapper around `header`/title/`footer`). */ innerContentClassName?: string; /** Icon node rendered on the left, before the inner content column. */ icon?: ReactNode; /** Extra classes for the icon wrapper. */ iconClassName?: string; /** Small text rendered above the title. Typically a category, date, or eyebrow label. */ header?: ReactNode; /** Extra classes for the `header` element. */ headerClassName?: string; /** Small text rendered below the title. Typically secondary metadata. */ footer?: ReactNode; /** Extra classes for the `footer` element. */ footerClassName?: string; /** Extra classes for the title row (the wrapper around `children`). */ titleClassName?: string; /** Visually dim the row and disable pointer events. */ disabled?: boolean; /** Block clicks while keeping the row visually enabled. */ readOnly?: boolean; /** Default `'lg'` (vs Button's `'md'`) - list rows usually want more vertical space. */ size?: ButtonSize; /** Polymorphic root element. Defaults to `'button'`. Pass `'a'` for navigation list rows. */ as?: C; /** Accent color token. Forwarded to `Button.color`. */ color?: Color; /** * Marks this list row as selected. When `true`, forces `variant` to `'gradient'` and `outline` to `true` regardless of the props passed - used for the active row in a list. */ selected?: boolean; /** Forwarded to the underlying `Button`'s polymorphic root. */ ref?: Ref; /** Slot rendered right-aligned at the end of the row (e.g. badge, chevron). */ after?: ReactNode; /** * Surface variant. Default `'transparent'` so rows blend into the list surface. * * Overridden to `'gradient'` when `selected` is `true`. */ variant?: SurfaceVariant; /** * Outline ring on the row. Default `false`. Effective value is `outline || selected`, so a selected row always shows the ring. */ outline?: boolean; /** Default `true`. Forwarded to the underlying `Button`. */ rounded?: boolean; } export type ListButtonProps = ListButtonOwnProps & Omit, keyof ListButtonOwnProps>; /** Shape of `ListButton` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */ export type ListButtonDefaultProps = Partial>; export declare const ListButton: (props: ListButtonProps) => import("react/jsx-runtime").JSX.Element; export {}; //# sourceMappingURL=ListButton.d.ts.map