Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | export interface ButtonProps {
variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'dark' | 'danger';
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
rounded?: 'normal' | 'pill' | 'full';
iconOnly?: boolean;
startIcon?: React.ReactNode;
endIcon?: React.ReactNode;
disabled?: boolean;
loading?: boolean;
children?: React.ReactNode;
onClick?: () => void;
type?: 'button' | 'submit' | 'reset';
className?: string;
}
export interface InputProps {
type?: 'text' | 'email' | 'password' | 'number';
placeholder?: string;
value?: string;
defaultValue?: string;
disabled?: boolean;
required?: boolean;
error?: string;
success?: boolean;
label?: string;
id?: string;
name?: string;
className?: string;
autoComplete?: string;
readOnly?: boolean;
startIcon?: React.ReactNode;
endIcon?: React.ReactNode;
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
}
export interface SelectProps {
options: { value: string; label: string }[];
value?: string;
defaultValue?: string;
placeholder?: string;
disabled?: boolean;
error?: string;
label?: string;
id?: string;
name?: string;
className?: string;
onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;
}
export interface ModalProps {
isOpen: boolean;
onClose: () => void;
title?: string;
children: React.ReactNode;
size?: 'sm' | 'md' | 'lg' | 'xl';
className?: string;
}
export interface BadgeProps {
variant?: 'default' | 'success' | 'warning' | 'error' | 'info';
size?: 'sm' | 'md' | 'lg';
children: React.ReactNode;
className?: string;
}
// Dashboard Component Interfaces
export interface MetricCardProps {
title: string;
value: string | number;
change?: number;
changeType?: 'increase' | 'decrease' | 'neutral';
icon?: React.ReactNode;
className?: string;
}
export interface StatCardProps {
title: string;
value: string | number;
trend: 'up' | 'down' | 'steady';
trendValue: number;
className?: string;
}
// Layout Component Interfaces
export interface SidebarProps {
className?: string;
}
export interface HeaderProps {
title?: string;
className?: string;
}
export interface AuthenticatedLayoutProps {
title?: string;
className?: string;
children: React.ReactNode;
}
// Re-export types from index.d.ts
export type { User, PageProps } from './index.d';
// Re-export billing types
export * from './billing';
|