aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
113 lines • 3.6 kB
TypeScript
import React from 'react';
export * from './components';
export * from './themeTypes';
export * from './animations';
export * from './accessibility';
export interface BaseComponentProps {
className?: string;
children?: React.ReactNode;
id?: string;
style?: React.CSSProperties;
'data-testid'?: string;
}
export type ComponentVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'outline' | 'ghost' | 'link';
export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
export type GlassIntensity = 'subtle' | 'medium' | 'strong' | 'intense';
export type EventHandler<T = Element, E = Event> = (event: E & {
currentTarget: T;
}) => void;
export interface HTMLDivProps extends React.HTMLAttributes<HTMLDivElement> {
}
export interface HTMLButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
}
export interface HTMLInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
}
export interface HTMLTextAreaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
}
export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
[K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
}[Keys];
export type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
export interface TransitionConfig {
duration?: number;
delay?: number;
ease?: string | number[];
type?: 'spring' | 'tween' | 'keyframes';
}
export interface ValidationRule {
required?: boolean;
minLength?: number;
maxLength?: number;
pattern?: RegExp;
custom?: (value: any) => boolean | string;
}
export interface FormField {
name: string;
type: string;
label?: string;
placeholder?: string;
validation?: ValidationRule;
required?: boolean;
}
export interface ApiResponse<T = any> {
data: T;
success: boolean;
message?: string;
error?: string;
}
export interface PaginatedResponse<T = any> extends ApiResponse<T[]> {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
}
export interface ChartDataPoint {
label: string;
value: number;
color?: string;
metadata?: Record<string, any>;
}
export interface ChartSeries {
name: string;
data: ChartDataPoint[];
color?: string;
type?: 'line' | 'bar' | 'area' | 'pie' | 'scatter';
}
export interface Position {
top?: number | string;
right?: number | string;
bottom?: number | string;
left?: number | string;
}
export interface Dimensions {
width?: number | string;
height?: number | string;
minWidth?: number | string;
minHeight?: number | string;
maxWidth?: number | string;
maxHeight?: number | string;
}
export interface AriaProps {
'aria-label'?: string;
'aria-labelledby'?: string;
'aria-describedby'?: string;
'aria-expanded'?: boolean;
'aria-haspopup'?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';
'aria-selected'?: boolean;
'aria-current'?: boolean | 'page' | 'step' | 'location' | 'date' | 'time';
role?: string;
}
export interface FocusableProps {
tabIndex?: number;
autoFocus?: boolean;
onFocus?: EventHandler;
onBlur?: EventHandler;
onKeyDown?: React.KeyboardEventHandler;
}
export type Callback<T = void> = () => T;
export type CallbackWithArg<T, A = any> = (arg: A) => T;
export type AsyncCallback<T = void> = () => Promise<T>;
export type AsyncCallbackWithArg<T, A = any> = (arg: A) => Promise<T>;
//# sourceMappingURL=index.d.ts.map