sgod-library-frontend
Version:
Thư viện component UI Frontend
1,216 lines (1,190 loc) • 31.4 kB
TypeScript
import React, { ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, FormHTMLAttributes } from 'react';
import { Emitter } from 'mitt';
import z from 'zod';
import { ClassValue } from 'clsx';
import { UseFormSetError } from 'react-hook-form';
type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'error';
type ButtonSize = 'sm' | 'md' | 'lg';
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
children: ReactNode;
variant?: ButtonVariant;
size?: ButtonSize;
isLoading?: boolean;
isFullWidth?: boolean;
leftIcon?: ReactNode;
rightIcon?: ReactNode;
}
declare const Button: React.FC<ButtonProps>;
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
label?: string;
error?: string;
helperText?: string;
size?: 'sm' | 'md' | 'lg';
fullWidth?: boolean;
leftIcon?: ReactNode;
rightIcon?: ReactNode;
isLoading?: boolean;
}
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
interface SkeletonProps {
className?: string;
width?: string | number;
height?: string | number;
borderRadius?: string;
}
declare const Skeleton: React.FC<SkeletonProps>;
interface GridProps {
children: ReactNode;
container?: boolean;
item?: boolean;
cols?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
sm?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
md?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
lg?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
xl?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
spacing?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
justifyContent?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly';
alignItems?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';
direction?: 'row' | 'row-reverse' | 'col' | 'col-reverse';
wrap?: 'wrap' | 'nowrap' | 'wrap-reverse';
className?: string;
}
declare const Grid: React.FC<GridProps>;
type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
type IconVariant = 'outline' | 'solid';
interface IconProps {
name: string;
size?: IconSize;
variant?: IconVariant;
color?: string;
className?: string;
}
declare const Icon: React.FC<IconProps>;
type TypographyVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'subtitle1' | 'subtitle2' | 'body1' | 'body2' | 'caption' | 'overline';
type TypographyAlign = 'inherit' | 'left' | 'center' | 'right' | 'justify';
type TypographyColor = 'inherit' | 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'neutral';
interface TypographyProps {
variant?: TypographyVariant;
align?: TypographyAlign;
color?: TypographyColor;
weight?: 'regular' | 'medium' | 'bold';
children: ReactNode;
className?: string;
component?: React.ElementType;
gutterBottom?: boolean;
noWrap?: boolean;
}
declare const Typography: React.FC<TypographyProps>;
interface CardProps {
children: ReactNode;
className?: string;
title?: string;
subtitle?: string;
footer?: ReactNode;
elevation?: 'none' | 'sm' | 'md' | 'lg';
bordered?: boolean;
rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';
padding?: 'none' | 'sm' | 'md' | 'lg';
}
declare const Card: React.FC<CardProps>;
interface EmptyStateProps {
title: string;
description?: string;
icon?: ReactNode;
action?: {
label: string;
onClick: () => void;
};
className?: string;
size?: 'sm' | 'md' | 'lg';
}
declare const EmptyState: React.FC<EmptyStateProps>;
interface ErrorStateProps {
title?: string;
message?: string;
onRetry?: () => void;
onHelp?: () => void;
className?: string;
icon?: React.ReactNode;
}
declare const ErrorState: React.FC<ErrorStateProps>;
interface FormFieldProps extends InputProps {
name: string;
children?: ReactNode;
}
declare const FormField: React.FC<FormFieldProps>;
type AlertSeverity = 'info' | 'success' | 'warning' | 'error';
type AlertVariant = 'filled' | 'outlined' | 'standard';
interface AlertProps {
severity?: AlertSeverity;
variant?: AlertVariant;
title?: string;
children: ReactNode;
className?: string;
icon?: boolean | ReactNode;
onClose?: () => void;
}
declare const Alert: React.FC<AlertProps>;
interface DataTableColumn<T> {
key: keyof T & string;
header: string;
width?: string;
render?: (item: T, index: number) => ReactNode;
}
interface DataTableProps<T> {
columns: DataTableColumn<T>[];
data?: T[];
keyExtractor: (item: T) => string | number;
isLoading?: boolean;
error?: Error | null;
onRetry?: () => void;
emptyStateProps?: {
title: string;
description?: string;
icon?: ReactNode;
action?: {
label: string;
onClick: () => void;
};
};
className?: string;
rowClassName?: string | ((item: T, index: number) => string);
}
declare function DataTable<T>({ columns, data, keyExtractor, isLoading, error, onRetry, emptyStateProps, className, rowClassName, }: DataTableProps<T>): React.JSX.Element;
interface FormProps extends FormHTMLAttributes<HTMLFormElement> {
children: ReactNode;
onSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
isLoading?: boolean;
submitLabel?: string;
resetLabel?: string;
onReset?: () => void;
error?: string;
success?: string;
actionButtons?: ReactNode;
alignActions?: 'left' | 'center' | 'right';
}
declare const Form: React.FC<FormProps>;
type BreakpointKey = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
type DeviceType = 'mobile' | 'tablet' | 'desktop';
type FluidSize = 'xs' | 'sm' | 'base' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
declare const FLUID_BREAKPOINTS: {
readonly xs: "20rem";
readonly sm: "30rem";
readonly md: "48rem";
readonly lg: "64rem";
readonly xl: "80rem";
readonly '2xl': "96rem";
readonly '3xl': "120rem";
};
declare const TAILWIND_BREAKPOINTS: {
readonly xs: 320;
readonly sm: 640;
readonly md: 768;
readonly lg: 1024;
readonly xl: 1280;
readonly '2xl': 1536;
};
declare const createFluidGrid: (config: {
type?: "auto-fit" | "auto-fill" | "fixed";
minSize?: FluidSize | string;
maxCols?: number;
gap?: FluidSize;
aspectRatio?: "square" | "video" | "photo" | "auto";
}) => string;
declare const createFluidText: (config: {
size?: FluidSize;
weight?: "normal" | "medium" | "semibold" | "bold";
responsive?: boolean;
}) => string;
declare const createDisplayText: (config: {
size?: "sm" | "md" | "lg" | "xl";
weight?: "bold" | "black";
}) => string;
declare const createFluidSpacing: (config: {
size?: FluidSize;
type?: "p" | "px" | "py" | "pt" | "pb" | "pl" | "pr" | "m" | "mx" | "my" | "mt" | "mb" | "ml" | "mr";
context?: "element" | "container" | "section";
}) => string;
declare const createFluidContainer: (config?: {
maxWidth?: "sm" | "md" | "lg" | "xl" | "2xl" | "full" | "fluid";
padding?: boolean;
center?: boolean;
}) => string;
declare const createFluidCard: (config?: {
padding?: FluidSize;
shadow?: "sm" | "md" | "lg" | "xl";
rounded?: "sm" | "md" | "lg" | "xl";
border?: boolean;
hover?: boolean;
}) => string;
declare const createViewportGrid: (config: {
minWidth?: string;
maxCols?: number;
gap?: FluidSize;
}) => string;
declare const createAspectRatioResponsive: (config: {
widescreen?: string;
standard?: string;
mobile?: string;
}) => string;
declare const fluidPresets: {
container: {
narrow: string;
default: string;
wide: string;
fullwidth: string;
fluid: string;
};
typography: {
hero: string;
title: string;
subtitle: string;
heading: string;
subheading: string;
body: string;
caption: string;
small: string;
};
grid: {
cards: string;
products: string;
gallery: string;
'viewport-cards': string;
'viewport-products': string;
'viewport-gallery': string;
};
spacing: {
section: string;
container: string;
element: string;
sectionMargin: string;
elementMargin: string;
};
card: {
default: string;
compact: string;
spacious: string;
minimal: string;
};
};
declare const viewportUtils: {
getViewportWidth: () => number;
getViewportHeight: () => number;
getAspectRatio: () => number;
isWidescreen: () => boolean;
getDeviceType: () => DeviceType;
mediaQuery: (breakpoint: BreakpointKey) => string;
};
declare const createResponsiveGrid: (config: {
mobile?: number;
tablet?: number;
desktop?: number;
gap?: "sm" | "md" | "lg";
}) => string;
declare const createResponsiveSpacing: (config: {
mobile?: string;
tablet?: string;
desktop?: string;
type?: "p" | "px" | "py" | "pt" | "pb" | "pl" | "pr" | "m" | "mx" | "my" | "mt" | "mb" | "ml" | "mr";
}) => string;
/**
* Demo utility functions cho Fluid Responsive Design System
* Showcase các tính năng mới: viewport percentages, rem-based breakpoints, fluid scaling
*/
declare const fluidTypographyExamples: {
heroTitle: string;
sectionTitle: string;
mainHeading: string;
subHeading: string;
bodyLarge: string;
bodyText: string;
caption: string;
small: string;
};
declare const fluidGridExamples: {
cardsGrid: string;
productsGrid: string;
galleryGrid: string;
viewportCards: string;
viewportProducts: string;
viewportGallery: string;
};
declare const fluidSpacingExamples: {
elementPadding: {
small: string;
medium: string;
large: string;
};
containerPadding: {
small: string;
medium: string;
large: string;
};
sectionPadding: {
small: string;
medium: string;
large: string;
};
};
declare const fluidContainerExamples: {
narrow: string;
default: string;
wide: string;
fullwidth: string;
fluid: string;
};
declare const fluidCardExamples: {
compact: string;
default: string;
spacious: string;
withShadow: string;
};
declare const responsiveVisibilityExamples: {
mobileOnly: string;
tabletOnly: string;
desktopOnly: string;
tabletUp: string;
desktopUp: string;
hideMobile: string;
hideTablet: string;
hideDesktop: string;
};
declare const usageExamples: {
landingPage: {
hero: string;
title: string;
subtitle: string;
cta: string;
};
cardGrid: {
container: string;
grid: string;
card: string;
cardTitle: string;
cardBody: string;
};
blog: {
container: string;
title: string;
content: string;
sidebar: string;
};
dashboard: {
container: string;
statsGrid: string;
statCard: string;
chartContainer: string;
};
};
declare const demoUtils: {
getCurrentDevice: () => DeviceType;
getViewportInfo: () => {
width: number;
height: number;
aspectRatio: number;
isWidescreen: boolean;
device: DeviceType;
};
createMediaQuery: (breakpoint: keyof typeof FLUID_BREAKPOINTS) => string;
matchesBreakpoint: (breakpoint: keyof typeof FLUID_BREAKPOINTS) => boolean;
};
declare const completeExamples: {
ecommerce: {
container: string;
grid: string;
productCard: string;
productImage: string;
productTitle: string;
productPrice: string;
};
news: {
container: string;
grid: string;
articleCard: string;
articleImage: string;
articleTitle: string;
articleExcerpt: string;
articleMeta: string;
};
portfolio: {
container: string;
grid: string;
galleryItem: string;
galleryImage: string;
galleryOverlay: string;
};
team: {
container: string;
grid: string;
memberCard: string;
memberAvatar: string;
memberName: string;
memberRole: string;
memberBio: string;
};
};
declare const fluidResponsiveDemo: {
typography: {
heroTitle: string;
sectionTitle: string;
mainHeading: string;
subHeading: string;
bodyLarge: string;
bodyText: string;
caption: string;
small: string;
};
grids: {
cardsGrid: string;
productsGrid: string;
galleryGrid: string;
viewportCards: string;
viewportProducts: string;
viewportGallery: string;
};
spacing: {
elementPadding: {
small: string;
medium: string;
large: string;
};
containerPadding: {
small: string;
medium: string;
large: string;
};
sectionPadding: {
small: string;
medium: string;
large: string;
};
};
containers: {
narrow: string;
default: string;
wide: string;
fullwidth: string;
fluid: string;
};
cards: {
compact: string;
default: string;
spacious: string;
withShadow: string;
};
visibility: {
mobileOnly: string;
tabletOnly: string;
desktopOnly: string;
tabletUp: string;
desktopUp: string;
hideMobile: string;
hideTablet: string;
hideDesktop: string;
};
usage: {
landingPage: {
hero: string;
title: string;
subtitle: string;
cta: string;
};
cardGrid: {
container: string;
grid: string;
card: string;
cardTitle: string;
cardBody: string;
};
blog: {
container: string;
title: string;
content: string;
sidebar: string;
};
dashboard: {
container: string;
statsGrid: string;
statCard: string;
chartContainer: string;
};
};
utils: {
getCurrentDevice: () => DeviceType;
getViewportInfo: () => {
width: number;
height: number;
aspectRatio: number;
isWidescreen: boolean;
device: DeviceType;
};
createMediaQuery: (breakpoint: keyof typeof FLUID_BREAKPOINTS) => string;
matchesBreakpoint: (breakpoint: keyof typeof FLUID_BREAKPOINTS) => boolean;
};
complete: {
ecommerce: {
container: string;
grid: string;
productCard: string;
productImage: string;
productTitle: string;
productPrice: string;
};
news: {
container: string;
grid: string;
articleCard: string;
articleImage: string;
articleTitle: string;
articleExcerpt: string;
articleMeta: string;
};
portfolio: {
container: string;
grid: string;
galleryItem: string;
galleryImage: string;
galleryOverlay: string;
};
team: {
container: string;
grid: string;
memberCard: string;
memberAvatar: string;
memberName: string;
memberRole: string;
memberBio: string;
};
};
presets: {
container: {
narrow: string;
default: string;
wide: string;
fullwidth: string;
fluid: string;
};
typography: {
hero: string;
title: string;
subtitle: string;
heading: string;
subheading: string;
body: string;
caption: string;
small: string;
};
grid: {
cards: string;
products: string;
gallery: string;
'viewport-cards': string;
'viewport-products': string;
'viewport-gallery': string;
};
spacing: {
section: string;
container: string;
element: string;
sectionMargin: string;
elementMargin: string;
};
card: {
default: string;
compact: string;
spacious: string;
minimal: string;
};
};
common: {
heroSection: string;
cardGrid: string;
productGrid: string;
twoColumnLayout: string;
threeColumnLayout: string;
};
};
type EventData = string | number | boolean | object | null | undefined;
type Events = {
[key: string]: EventData;
};
declare const eventBus: Emitter<Events>;
type EventHandler = (data?: EventData) => void;
/**
* Hook để đăng ký và huỷ đăng ký sự kiện từ Event Bus
* @param event Tên sự kiện cần lắng nghe
* @param handler Hàm xử lý khi sự kiện được phát
*/
declare function useEventBus(event: string, handler: EventHandler): (data?: EventData) => void;
declare const LoginBody: z.ZodObject<{
email: z.ZodString;
password: z.ZodString;
}, "strict", z.ZodTypeAny, {
email: string;
password: string;
}, {
email: string;
password: string;
}>;
type LoginBodyType = z.TypeOf<typeof LoginBody>;
declare const LoginRes: z.ZodObject<{
data: z.ZodObject<{
accessToken: z.ZodString;
refreshToken: z.ZodString;
}, "strip", z.ZodTypeAny, {
accessToken: string;
refreshToken: string;
}, {
accessToken: string;
refreshToken: string;
}>;
message: z.ZodString;
}, "strip", z.ZodTypeAny, {
data: {
accessToken: string;
refreshToken: string;
};
message: string;
}, {
data: {
accessToken: string;
refreshToken: string;
};
message: string;
}>;
type LoginResType = z.TypeOf<typeof LoginRes>;
declare const RefreshTokenBody: z.ZodObject<{
refreshToken: z.ZodString;
}, "strict", z.ZodTypeAny, {
refreshToken: string;
}, {
refreshToken: string;
}>;
type RefreshTokenBodyType = z.TypeOf<typeof RefreshTokenBody>;
declare const RefreshTokenRes: z.ZodObject<{
data: z.ZodObject<{
accessToken: z.ZodString;
refreshToken: z.ZodString;
}, "strip", z.ZodTypeAny, {
accessToken: string;
refreshToken: string;
}, {
accessToken: string;
refreshToken: string;
}>;
message: z.ZodString;
}, "strip", z.ZodTypeAny, {
data: {
accessToken: string;
refreshToken: string;
};
message: string;
}, {
data: {
accessToken: string;
refreshToken: string;
};
message: string;
}>;
type RefreshTokenResType = z.TypeOf<typeof RefreshTokenRes>;
declare const LogoutBody: z.ZodObject<{
refreshToken: z.ZodString;
}, "strict", z.ZodTypeAny, {
refreshToken: string;
}, {
refreshToken: string;
}>;
type LogoutBodyType = z.TypeOf<typeof LogoutBody>;
declare const EVENTS: {
USER: {
LOGGED_IN: string;
LOGGED_OUT: string;
UPDATED_PROFILE: string;
};
DATA: {
UPDATED: string;
DELETED: string;
CREATED: string;
LOADED: string;
ERROR: string;
};
UI: {
THEME_CHANGED: string;
LANGUAGE_CHANGED: string;
SIDEBAR_TOGGLED: string;
MODAL_OPENED: string;
MODAL_CLOSED: string;
NOTIFICATION_SHOWN: string;
};
};
interface AccessTokenPayloadCreate {
userId: number;
deviceId: number;
roleId: number;
roleName: string;
}
interface AccessTokenPayload extends AccessTokenPayloadCreate {
exp: number;
iat: number;
}
interface RefreshTokenPayloadCreate {
userId: number;
}
interface RefreshTokenPayload extends RefreshTokenPayloadCreate {
exp: number;
iat: number;
}
declare function cn(...inputs: ClassValue[]): string;
interface AuthApi {
refreshToken: (body: RefreshTokenBodyType) => Promise<RefreshTokenResType>;
}
declare const handleErrorApi: ({ error, setError, }: {
error: any;
setError?: UseFormSetError<any>;
}) => void;
declare const getAccessTokenFromLocalStorage: () => string | null;
declare const getRefreshTokenFromLocalStorage: () => string | null;
declare const setAccessTokenToLocalStorage: (value: string) => void;
declare const setRefreshTokenToLocalStorage: (value: string) => void;
declare const removeTokensFromLocalStorage: () => void;
declare const checkAndRefreshToken: (param?: {
onError?: () => void;
onSuccess?: () => void;
authApi: AuthApi;
}) => Promise<void>;
declare const decodeToken: (token: string) => RefreshTokenPayload | AccessTokenPayload;
/**
* Design System Tokens
* Các giá trị cơ bản trong hệ thống thiết kế
*/
declare const colors: {
primary: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
secondary: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
success: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
warning: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
error: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
info: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
neutral: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
};
declare const typography: {
fontSize: {
xs: string;
sm: string;
base: string;
lg: string;
xl: string;
'2xl': string;
'3xl': string;
'4xl': string;
'5xl': string;
};
fontWeight: {
regular: number;
medium: number;
bold: number;
};
lineHeight: {
none: number;
tight: number;
normal: number;
relaxed: number;
};
letterSpacing: {
tighter: string;
tight: string;
normal: string;
wide: string;
wider: string;
};
fontFamily: {
heading: string;
body: string;
};
};
declare const spacing: {
0: string;
1: string;
2: string;
3: string;
4: string;
5: string;
6: string;
8: string;
10: string;
12: string;
16: string;
20: string;
24: string;
32: string;
};
declare const borderRadius: {
none: string;
sm: string;
default: string;
md: string;
lg: string;
xl: string;
'2xl': string;
full: string;
};
declare const shadows: {
none: string;
xs: string;
sm: string;
md: string;
lg: string;
xl: string;
'2xl': string;
};
declare const zIndex: {
0: number;
10: number;
20: number;
30: number;
40: number;
50: number;
auto: string;
dropdown: number;
sticky: number;
fixed: number;
modalBackdrop: number;
modal: number;
popover: number;
tooltip: number;
};
declare const transitions: {
duration: {
75: string;
100: string;
150: string;
200: string;
300: string;
500: string;
700: string;
1000: string;
};
timing: {
default: string;
linear: string;
in: string;
out: string;
'in-out': string;
};
};
declare const grid: {
columns: number;
gutter: string;
margin: string;
};
declare const breakpoints: {
xs: string;
sm: string;
md: string;
lg: string;
xl: string;
'2xl': string;
};
declare const iconSizes: {
xs: string;
sm: string;
md: string;
lg: string;
xl: string;
'2xl': string;
};
declare const designTokens: {
colors: {
primary: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
secondary: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
success: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
warning: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
error: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
info: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
neutral: {
50: string;
100: string;
200: string;
300: string;
400: string;
500: string;
600: string;
700: string;
800: string;
900: string;
};
};
typography: {
fontSize: {
xs: string;
sm: string;
base: string;
lg: string;
xl: string;
'2xl': string;
'3xl': string;
'4xl': string;
'5xl': string;
};
fontWeight: {
regular: number;
medium: number;
bold: number;
};
lineHeight: {
none: number;
tight: number;
normal: number;
relaxed: number;
};
letterSpacing: {
tighter: string;
tight: string;
normal: string;
wide: string;
wider: string;
};
fontFamily: {
heading: string;
body: string;
};
};
spacing: {
0: string;
1: string;
2: string;
3: string;
4: string;
5: string;
6: string;
8: string;
10: string;
12: string;
16: string;
20: string;
24: string;
32: string;
};
borderRadius: {
none: string;
sm: string;
default: string;
md: string;
lg: string;
xl: string;
'2xl': string;
full: string;
};
shadows: {
none: string;
xs: string;
sm: string;
md: string;
lg: string;
xl: string;
'2xl': string;
};
zIndex: {
0: number;
10: number;
20: number;
30: number;
40: number;
50: number;
auto: string;
dropdown: number;
sticky: number;
fixed: number;
modalBackdrop: number;
modal: number;
popover: number;
tooltip: number;
};
transitions: {
duration: {
75: string;
100: string;
150: string;
200: string;
300: string;
500: string;
700: string;
1000: string;
};
timing: {
default: string;
linear: string;
in: string;
out: string;
'in-out': string;
};
};
grid: {
columns: number;
gutter: string;
margin: string;
};
breakpoints: {
xs: string;
sm: string;
md: string;
lg: string;
xl: string;
'2xl': string;
};
iconSizes: {
xs: string;
sm: string;
md: string;
lg: string;
xl: string;
'2xl': string;
};
};
declare const TokenType: {
readonly AccessToken: "AccessToken";
readonly RefreshToken: "RefreshToken";
};
export { AccessTokenPayload, AccessTokenPayloadCreate, Alert, AlertProps, AlertSeverity, AlertVariant, BreakpointKey, Button, ButtonProps, ButtonSize, ButtonVariant, Card, CardProps, DataTable, DataTableColumn, DataTableProps, DeviceType, EVENTS, EmptyState, EmptyStateProps, ErrorState, ErrorStateProps, FLUID_BREAKPOINTS, FluidSize, Form, FormField, FormFieldProps, FormProps, Grid, GridProps, Icon, IconProps, IconSize, IconVariant, Input, InputProps, LoginBody, LoginBodyType, LoginRes, LoginResType, LogoutBody, LogoutBodyType, RefreshTokenBody, RefreshTokenBodyType, RefreshTokenPayload, RefreshTokenPayloadCreate, RefreshTokenRes, RefreshTokenResType, Skeleton, SkeletonProps, TAILWIND_BREAKPOINTS, TokenType, Typography, TypographyAlign, TypographyColor, TypographyProps, TypographyVariant, borderRadius, breakpoints, checkAndRefreshToken, cn, colors, completeExamples, createAspectRatioResponsive, createDisplayText, createFluidCard, createFluidContainer, createFluidGrid, createFluidSpacing, createFluidText, createResponsiveGrid, createResponsiveSpacing, createViewportGrid, decodeToken, demoUtils, designTokens, eventBus, fluidCardExamples, fluidContainerExamples, fluidGridExamples, fluidPresets, fluidResponsiveDemo, fluidSpacingExamples, fluidTypographyExamples, getAccessTokenFromLocalStorage, getRefreshTokenFromLocalStorage, grid, handleErrorApi, iconSizes, removeTokensFromLocalStorage, responsiveVisibilityExamples, setAccessTokenToLocalStorage, setRefreshTokenToLocalStorage, shadows, spacing, transitions, typography, usageExamples, useEventBus, viewportUtils, zIndex };