@youwen/ai-design-system
Version:
Enterprise AI-driven design system with comprehensive design tokens
125 lines (124 loc) • 3.18 kB
TypeScript
/**
* 工具函数库
* 企业级组件库的通用工具函数
*/
import { type ClassValue } from 'clsx';
/**
* 合并CSS类名,支持条件类名和Tailwind CSS优先级
*/
export declare function cn(...inputs: ClassValue[]): string;
/**
* 生成唯一ID
*/
export declare function generateId(prefix?: string): string;
/**
* 防抖函数
*/
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void;
/**
* 节流函数
*/
export declare function throttle<T extends (...args: any[]) => any>(func: T, limit: number): (...args: Parameters<T>) => void;
/**
* 深度合并对象
*/
export declare function deepMerge<T extends Record<string, any>>(target: T, ...sources: Partial<T>[]): T;
/**
* 格式化文件大小
*/
export declare function formatBytes(bytes: number, decimals?: number): string;
/**
* 格式化数字(添加千位分隔符)
*/
export declare function formatNumber(num: number): string;
/**
* 截断文本
*/
export declare function truncateText(text: string, length: number): string;
/**
* 获取对象深层属性值
*/
export declare function getNestedValue<T>(obj: any, path: string, defaultValue?: T): T | undefined;
/**
* 设置对象深层属性值
*/
export declare function setNestedValue(obj: any, path: string, value: any): void;
/**
* 检查元素是否在视口中
*/
export declare function isElementInViewport(el: Element): boolean;
/**
* 滚动到元素
*/
export declare function scrollToElement(element: Element, options?: ScrollIntoViewOptions): void;
/**
* 复制文本到剪贴板
*/
export declare function copyToClipboard(text: string): Promise<boolean>;
/**
* 检查是否为移动设备
*/
export declare function isMobile(): boolean;
/**
* 检查是否为触摸设备
*/
export declare function isTouchDevice(): boolean;
/**
* 获取随机颜色
*/
export declare function getRandomColor(): string;
/**
* 颜色相关工具函数
*/
export declare const colorUtils: {
/**
* 十六进制转RGB
*/
hexToRgb(hex: string): {
r: number;
g: number;
b: number;
} | null;
/**
* RGB转十六进制
*/
rgbToHex(r: number, g: number, b: number): string;
/**
* 获取对比色
*/
getContrastColor(hex: string): string;
};
/**
* 日期格式化工具
*/
export declare const dateUtils: {
/**
* 格式化日期
*/
format(date: Date, format?: string): string;
/**
* 相对时间
*/
relative(date: Date): string;
};
/**
* 验证工具
*/
export declare const validators: {
email: (email: string) => boolean;
phone: (phone: string) => boolean;
url: (url: string) => boolean;
required: (value: any) => boolean;
minLength: (value: string, min: number) => boolean;
maxLength: (value: string, max: number) => boolean;
range: (value: number, min: number, max: number) => boolean;
};
/**
* 本地存储工具
*/
export declare const storage: {
get<T>(key: string, defaultValue?: T | undefined): T | null;
set(key: string, value: any): void;
remove(key: string): void;
clear(): void;
};