UNPKG

watercolor-ui

Version:

A modern minimalist cross-framework component library

265 lines 7.93 kB
/** * 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