UNPKG

goobs-frontend

Version:

A comprehensive React-based libary for building modern web applications

70 lines 3.21 kB
import { default as React, ReactNode } from 'react'; export type ListItemCardTheme = 'sacred' | 'light' | 'dark'; export interface ListItemCardProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'onSelect'> { /** Selection state — emits `data-selected` + accent ring. */ selected?: boolean; /** * Selection handler. When set the whole row becomes a click/Enter/Space * target (`role="button"`). Omit for non-selectable rows. */ onSelect?: () => void; /** * Remove handler. When set, a trailing error-colored `<IconButton>` remove * control is rendered. Omit for non-removable rows. */ onRemove?: () => void; /** * Move-up handler — wired into the composed `<Card.DragHandle>`. When both * move handlers are omitted, no drag handle renders. */ onMoveUp?: () => void; /** Move-down handler — wired into the composed `<Card.DragHandle>`. */ onMoveDown?: () => void; /** * Optional accent color (left border + selected ring). The common * "status-bar on left edge" / "this step is green" pattern. */ accentColor?: string; /** Accessible label for the row's reorder handle (e.g. "Reorder step 3"). */ reorderLabel?: string; /** Accessible label for the remove button. Default `'Remove'`. */ removeLabel?: string; /** Theming. Default `'sacred'`. */ styles?: { theme?: ListItemCardTheme; }; /** Slot children — `ListItemCard.Order` / `.Icon` / `.Content` / `.Actions`. */ children: ReactNode; } interface ListItemCardComponent { (props: ListItemCardProps & React.RefAttributes<HTMLLIElement>): React.ReactElement | null; displayName?: string; Order: typeof ListItemCardOrder; Icon: typeof ListItemCardIcon; Content: typeof ListItemCardContent; Actions: typeof ListItemCardActions; } export interface ListItemCardOrderProps extends React.HTMLAttributes<HTMLSpanElement> { /** The order number / position label rendered inside the circle. */ children: ReactNode; } declare const ListItemCardOrder: React.ForwardRefExoticComponent<ListItemCardOrderProps & React.RefAttributes<HTMLSpanElement>>; export interface ListItemCardIconProps extends React.HTMLAttributes<HTMLSpanElement> { children: ReactNode; } declare const ListItemCardIcon: React.ForwardRefExoticComponent<ListItemCardIconProps & React.RefAttributes<HTMLSpanElement>>; export interface ListItemCardContentProps { title: ReactNode; subtitle?: ReactNode; /** Optional extra body rendered under the subtitle (chips, meta, etc.). */ children?: ReactNode; } declare const ListItemCardContent: React.ForwardRefExoticComponent<ListItemCardContentProps & React.RefAttributes<HTMLDivElement>>; export interface ListItemCardActionsProps extends React.HTMLAttributes<HTMLDivElement> { children: ReactNode; } declare const ListItemCardActions: React.ForwardRefExoticComponent<ListItemCardActionsProps & React.RefAttributes<HTMLDivElement>>; declare const ListItemCard: ListItemCardComponent; export { ListItemCardOrder, ListItemCardIcon, ListItemCardContent, ListItemCardActions, }; export default ListItemCard; //# sourceMappingURL=index.d.ts.map