@furystack/shades-common-components
Version:
Common UI components for FuryStack Shades
117 lines • 4.23 kB
TypeScript
import type { PartialElement } from '@furystack/shades';
/**
* Props for the Card component.
*/
export type CardProps = PartialElement<HTMLElement> & {
/** Shadow elevation level. Ignored when variant is 'outlined'. */
elevation?: 0 | 1 | 2 | 3;
/** Visual variant of the card */
variant?: 'elevation' | 'outlined';
/** Whether the card is interactive (shows hover effects) */
clickable?: boolean;
};
/**
* A versatile surface component for grouping related content and actions.
* Supports elevation and outlined variants with optional hover interactions.
*
* Compose with CardHeader, CardContent, CardMedia, and CardActions for structured layouts.
*/
export declare const Card: (props: Omit<Partial<HTMLElement>, "style"> & {
style?: Partial<CSSStyleDeclaration>;
} & {
ref?: import("@furystack/shades").RefObject<Element>;
} & {
/** Shadow elevation level. Ignored when variant is 'outlined'. */
elevation?: 0 | 1 | 2 | 3;
/** Visual variant of the card */
variant?: "elevation" | "outlined";
/** Whether the card is interactive (shows hover effects) */
clickable?: boolean;
}, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
/**
* Props for the CardHeader component.
*/
export type CardHeaderProps = PartialElement<HTMLElement> & {
/** Title text displayed in the header */
title: string;
/** Optional secondary text below the title */
subheader?: string;
/** Optional element rendered on the left (e.g. Avatar) */
avatar?: JSX.Element;
/** Optional element rendered on the right (e.g. icon button) */
action?: JSX.Element;
};
/**
* Displays a title, optional subheader, avatar, and action area at the top of a Card.
*/
export declare const CardHeader: (props: Omit<Partial<HTMLElement>, "style"> & {
style?: Partial<CSSStyleDeclaration>;
} & {
ref?: import("@furystack/shades").RefObject<Element>;
} & {
/** Title text displayed in the header */
title: string;
/** Optional secondary text below the title */
subheader?: string;
/** Optional element rendered on the left (e.g. Avatar) */
avatar?: JSX.Element;
/** Optional element rendered on the right (e.g. icon button) */
action?: JSX.Element;
}, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
/**
* Props for the CardContent component.
*/
export type CardContentProps = PartialElement<HTMLElement>;
/**
* Provides padded content area within a Card.
*/
export declare const CardContent: (props: Omit<Partial<HTMLElement>, "style"> & {
style?: Partial<CSSStyleDeclaration>;
} & {
ref?: import("@furystack/shades").RefObject<Element>;
}, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
/**
* Props for the CardMedia component.
*/
export type CardMediaProps = PartialElement<HTMLElement> & {
/** URL of the image to display */
image: string;
/** Accessible alt text for the image */
alt?: string;
/** Fixed height for the media area */
height?: string;
};
/**
* Displays an image or media element within a Card.
*/
export declare const CardMedia: (props: Omit<Partial<HTMLElement>, "style"> & {
style?: Partial<CSSStyleDeclaration>;
} & {
ref?: import("@furystack/shades").RefObject<Element>;
} & {
/** URL of the image to display */
image: string;
/** Accessible alt text for the image */
alt?: string;
/** Fixed height for the media area */
height?: string;
}, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
/**
* Props for the CardActions component.
*/
export type CardActionsProps = PartialElement<HTMLElement> & {
/** Align actions at the end instead of the start */
disableSpacing?: boolean;
};
/**
* Provides a row of actions (buttons, links) at the bottom of a Card.
*/
export declare const CardActions: (props: Omit<Partial<HTMLElement>, "style"> & {
style?: Partial<CSSStyleDeclaration>;
} & {
ref?: import("@furystack/shades").RefObject<Element>;
} & {
/** Align actions at the end instead of the start */
disableSpacing?: boolean;
}, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
//# sourceMappingURL=card.d.ts.map