watercolor-ui
Version:
A modern minimalist cross-framework component library
265 lines • 7.93 kB
TypeScript
/**
* Icon 工具函数和预设
*/
export type IconLibrary = 'lucide' | 'heroicons' | 'tabler' | 'phosphor' | 'feather' | 'html';
export type IconVariant = 'outline' | 'solid' | 'mini';
export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number | string;
export interface IconConfig {
library: IconLibrary;
name: string;
variant?: IconVariant;
size?: IconSize;
color?: string;
strokeWidth?: number;
className?: string;
}
/**
* 常用图标预设 - Lucide Icons
*/
export declare const LUCIDE_ICONS: {
readonly heart: "heart";
readonly star: "star";
readonly user: "user";
readonly home: "home";
readonly search: "search";
readonly menu: "menu";
readonly close: "x";
readonly check: "check";
readonly plus: "plus";
readonly minus: "minus";
readonly arrowUp: "arrow-up";
readonly arrowDown: "arrow-down";
readonly arrowLeft: "arrow-left";
readonly arrowRight: "arrow-right";
readonly chevronUp: "chevron-up";
readonly chevronDown: "chevron-down";
readonly chevronLeft: "chevron-left";
readonly chevronRight: "chevron-right";
readonly info: "info";
readonly warning: "alert-triangle";
readonly error: "alert-circle";
readonly success: "check-circle";
readonly help: "help-circle";
readonly edit: "edit";
readonly delete: "trash-2";
readonly copy: "copy";
readonly download: "download";
readonly upload: "upload";
readonly share: "share";
readonly save: "save";
readonly print: "printer";
readonly play: "play";
readonly pause: "pause";
readonly stop: "square";
readonly volume: "volume-2";
readonly volumeOff: "volume-x";
readonly mail: "mail";
readonly phone: "phone";
readonly message: "message-circle";
readonly settings: "settings";
readonly gear: "cog";
readonly lock: "lock";
readonly unlock: "unlock";
readonly file: "file";
readonly folder: "folder";
readonly image: "image";
readonly video: "video";
readonly github: "github";
readonly twitter: "twitter";
readonly facebook: "facebook";
readonly linkedin: "linkedin";
readonly loader: "loader";
readonly refresh: "refresh-cw";
readonly external: "external-link";
readonly link: "link";
readonly bookmark: "bookmark";
readonly cart: "shopping-cart";
readonly bag: "shopping-bag";
readonly credit: "credit-card";
readonly clock: "clock";
readonly calendar: "calendar";
readonly map: "map";
readonly location: "map-pin";
readonly sun: "sun";
readonly moon: "moon";
readonly cloud: "cloud";
readonly tool: "wrench";
readonly filter: "filter";
readonly sort: "arrow-up-down";
};
/**
* 常用图标预设 - Heroicons
*/
export declare const HEROICONS: {
readonly heart: "heart";
readonly star: "star";
readonly user: "user-circle";
readonly home: "home";
readonly search: "magnifying-glass";
readonly menu: "bars-3";
readonly close: "x-mark";
readonly check: "check";
readonly plus: "plus";
readonly minus: "minus";
readonly arrowUp: "arrow-up";
readonly arrowDown: "arrow-down";
readonly arrowLeft: "arrow-left";
readonly arrowRight: "arrow-right";
readonly chevronUp: "chevron-up";
readonly chevronDown: "chevron-down";
readonly chevronLeft: "chevron-left";
readonly chevronRight: "chevron-right";
readonly info: "information-circle";
readonly warning: "exclamation-triangle";
readonly error: "x-circle";
readonly success: "check-circle";
readonly edit: "pencil";
readonly delete: "trash";
readonly copy: "document-duplicate";
readonly download: "arrow-down-tray";
readonly upload: "arrow-up-tray";
readonly share: "share";
readonly settings: "cog-6-tooth";
readonly lock: "lock-closed";
readonly unlock: "lock-open";
};
/**
* 常用图标预设 - Feather Icons
*/
export declare const FEATHER_ICONS: {
readonly heart: "heart";
readonly star: "star";
readonly user: "user";
readonly home: "home";
readonly search: "search";
readonly menu: "menu";
readonly close: "x";
readonly check: "check";
readonly plus: "plus";
readonly minus: "minus";
readonly arrowUp: "arrow-up";
readonly arrowDown: "arrow-down";
readonly arrowLeft: "arrow-left";
readonly arrowRight: "arrow-right";
readonly chevronUp: "chevron-up";
readonly chevronDown: "chevron-down";
readonly chevronLeft: "chevron-left";
readonly chevronRight: "chevron-right";
readonly info: "info";
readonly warning: "alert-triangle";
readonly error: "alert-circle";
readonly success: "check-circle";
readonly help: "help-circle";
readonly edit: "edit";
readonly delete: "trash-2";
readonly copy: "copy";
readonly download: "download";
readonly upload: "upload";
readonly share: "share";
readonly save: "save";
readonly print: "printer";
readonly play: "play";
readonly pause: "pause";
readonly stop: "square";
readonly volume: "volume-2";
readonly volumeOff: "volume-x";
readonly mail: "mail";
readonly phone: "phone";
readonly message: "message-circle";
readonly settings: "settings";
readonly lock: "lock";
readonly file: "file";
readonly folder: "folder";
readonly image: "image";
readonly video: "video";
readonly github: "github";
readonly twitter: "twitter";
readonly facebook: "facebook";
readonly loader: "loader";
readonly refresh: "refresh-cw";
readonly external: "external-link";
readonly link: "link";
readonly bookmark: "bookmark";
readonly cart: "shopping-cart";
readonly bag: "shopping-bag";
readonly clock: "clock";
readonly calendar: "calendar";
readonly map: "map";
readonly location: "map-pin";
readonly sun: "sun";
readonly moon: "moon";
readonly cloud: "cloud";
};
/**
* 创建图标配置
*/
export declare function createIconConfig(config: Partial<IconConfig> & {
name: string;
}): IconConfig;
/**
* 获取图标名称(支持预设)
*/
export declare function getIconName(iconKey: string, library?: IconLibrary): string;
/**
* 图标尺寸映射
*/
export declare const ICON_SIZES: {
readonly xs: 16;
readonly sm: 20;
readonly md: 24;
readonly lg: 32;
readonly xl: 48;
};
/**
* 获取图标尺寸
*/
export declare function getIconSize(size: IconSize): number | string;
/**
* 创建预设图标
*/
export declare function createPresetIcon(iconKey: keyof typeof LUCIDE_ICONS, options?: Partial<Omit<IconConfig, 'name'>>): IconConfig;
/**
* 常用图标组合
*/
export declare const ICON_PRESETS: {
readonly loading: IconConfig;
readonly success: IconConfig;
readonly warning: IconConfig;
readonly error: IconConfig;
readonly info: IconConfig;
readonly close: IconConfig;
readonly menu: IconConfig;
readonly search: IconConfig;
readonly back: IconConfig;
readonly forward: IconConfig;
readonly up: IconConfig;
readonly down: IconConfig;
};
/**
* 图标主题配置
*/
export declare const ICON_THEMES: {
readonly light: {
readonly primary: "#3b82f6";
readonly secondary: "#6b7280";
readonly success: "#10b981";
readonly warning: "#f59e0b";
readonly error: "#ef4444";
readonly info: "#06b6d4";
readonly muted: "#9ca3af";
};
readonly dark: {
readonly primary: "#60a5fa";
readonly secondary: "#9ca3af";
readonly success: "#34d399";
readonly warning: "#fbbf24";
readonly error: "#f87171";
readonly info: "#22d3ee";
readonly muted: "#6b7280";
};
};
/**
* 获取主题颜色
*/
export declare function getThemeColor(color: string, theme?: 'light' | 'dark'): string;
//# sourceMappingURL=icons.d.ts.map