import type { ComponentType, ReactNode } from 'react'; import type { DimensionValue, StyleProp, ViewStyle } from 'react-native'; import type { RippleProps } from '../Ripple/type'; import type { ColorName } from '../../context/theme/types'; import { BaseProperties } from '../../@types/utilities'; import { SxProps } from '../../lib/styleDictionary'; export type CardProps = BaseProperties & SxProps & { Component?: ComponentType>; children?: ReactNode; expandContent?: ReactNode; isExpandCard?: boolean; onlyExpandContent?: boolean; isPressable?: boolean; onClose?: (event: any) => void; rippleProps?: RippleProps; withBorder?: boolean; style?: StyleProp; sx?: SxProps & { root?: SxProps; base?: SxProps; modal?: SxProps; modalContent?: SxProps; modalBody?: SxProps; modalBase?: SxProps; modalCloseButton?: SxProps; modalCloseIcon?: SxProps; modalChildren?: SxProps; modalExpand?: SxProps; }; styles?: { root?: StyleProp; base?: StyleProp; modal?: StyleProp; modalContent?: StyleProp; modalBody?: StyleProp; modalBase?: StyleProp; modalCloseButton?: StyleProp; modalCloseIcon?: StyleProp; modalChildren?: StyleProp; modalExpand?: StyleProp; }; }; export interface CardHeaderProps { Component?: ComponentType>; background?: ColorName; children?: ReactNode; isAbsolute?: boolean; left?: ViewStyle['left']; right?: ViewStyle['right']; style?: StyleProp; top?: ViewStyle['top']; withBackground?: boolean; sx?: SxProps; } export interface CardFooterProps extends Omit { bottom?: ViewStyle['bottom']; sx?: SxProps; } export interface CardBodyProps { Component?: ComponentType>; children?: ReactNode; style?: StyleProp; withPadding?: boolean; sx?: SxProps; } export interface CardDividerProps { background?: ColorName; height?: DimensionValue; style?: StyleProp; sx?: SxProps; }