- Git Platform: validates repo via git.probe before enabling Next, supports GitHub + GitLab + any git URL - Template dir configurable in Advanced Settings (template_dir key) - SSHFS: checks sshfs availability, mountpoint selector when enabled - CustomDropdown: flip-up when insufficient space below - 50 Lucide icons (was 24) with categories (AI, Data, DevOps, Security, Media, Comms) - Model: CustomDropdown from live API, max_tokens as slider, effort only with adaptive thinking - Keyboard: Escape closes wizard, Tab navigation with :focus-visible rings, source cards navigable
86 lines
4.8 KiB
TypeScript
86 lines
4.8 KiB
TypeScript
/**
|
|
* Icon and color data for the Project Wizard.
|
|
*
|
|
* Lucide icon names mapped to display labels.
|
|
* Catppuccin accent color list for project color selection.
|
|
*/
|
|
|
|
/** Lucide icon choices for projects. Key = Lucide component name. */
|
|
export const PROJECT_ICONS: Array<{ name: string; label: string; category: string }> = [
|
|
// General
|
|
{ name: 'Terminal', label: 'Terminal', category: 'General' },
|
|
{ name: 'Server', label: 'Server', category: 'General' },
|
|
{ name: 'Globe', label: 'Web', category: 'General' },
|
|
{ name: 'Code', label: 'Code', category: 'General' },
|
|
{ name: 'Cpu', label: 'CPU', category: 'General' },
|
|
{ name: 'Zap', label: 'Zap', category: 'General' },
|
|
{ name: 'Rocket', label: 'Rocket', category: 'General' },
|
|
{ name: 'Bug', label: 'Bug', category: 'General' },
|
|
{ name: 'Puzzle', label: 'Plugin', category: 'General' },
|
|
{ name: 'Box', label: 'Package', category: 'General' },
|
|
{ name: 'Layers', label: 'Layers', category: 'General' },
|
|
{ name: 'GitBranch', label: 'Branch', category: 'General' },
|
|
{ name: 'FileCode', label: 'Script', category: 'General' },
|
|
{ name: 'Wrench', label: 'Tools', category: 'General' },
|
|
{ name: 'Folder', label: 'Folder', category: 'General' },
|
|
{ name: 'FlaskConical', label: 'Lab', category: 'General' },
|
|
// AI / ML
|
|
{ name: 'Brain', label: 'Brain', category: 'AI / ML' },
|
|
{ name: 'BrainCircuit', label: 'Neural Net', category: 'AI / ML' },
|
|
{ name: 'Sparkles', label: 'AI', category: 'AI / ML' },
|
|
{ name: 'Wand2', label: 'Magic', category: 'AI / ML' },
|
|
{ name: 'Bot', label: 'Bot', category: 'AI / ML' },
|
|
// Data
|
|
{ name: 'Database', label: 'Database', category: 'Data' },
|
|
{ name: 'HardDrive', label: 'Storage', category: 'Data' },
|
|
{ name: 'Table', label: 'Table', category: 'Data' },
|
|
{ name: 'BarChart3', label: 'Chart', category: 'Data' },
|
|
// DevOps
|
|
{ name: 'Container', label: 'Container', category: 'DevOps' },
|
|
{ name: 'Cloud', label: 'Cloud', category: 'DevOps' },
|
|
{ name: 'Wifi', label: 'Network', category: 'DevOps' },
|
|
{ name: 'Activity', label: 'Monitor', category: 'DevOps' },
|
|
{ name: 'Settings', label: 'Settings', category: 'DevOps' },
|
|
{ name: 'Cog', label: 'Config', category: 'DevOps' },
|
|
// Security
|
|
{ name: 'Shield', label: 'Shield', category: 'Security' },
|
|
{ name: 'Lock', label: 'Lock', category: 'Security' },
|
|
{ name: 'Key', label: 'Key', category: 'Security' },
|
|
{ name: 'Fingerprint', label: 'Fingerprint', category: 'Security' },
|
|
{ name: 'ShieldCheck', label: 'Verified', category: 'Security' },
|
|
// Media
|
|
{ name: 'Image', label: 'Image', category: 'Media' },
|
|
{ name: 'Video', label: 'Video', category: 'Media' },
|
|
{ name: 'Music', label: 'Music', category: 'Media' },
|
|
{ name: 'Camera', label: 'Camera', category: 'Media' },
|
|
{ name: 'Palette', label: 'Design', category: 'Media' },
|
|
// Communication
|
|
{ name: 'MessageCircle', label: 'Chat', category: 'Communication' },
|
|
{ name: 'Mail', label: 'Mail', category: 'Communication' },
|
|
{ name: 'Phone', label: 'Phone', category: 'Communication' },
|
|
{ name: 'Radio', label: 'Radio', category: 'Communication' },
|
|
{ name: 'Send', label: 'Send', category: 'Communication' },
|
|
// Misc
|
|
{ name: 'Gamepad2', label: 'Game', category: 'Misc' },
|
|
{ name: 'BookOpen', label: 'Docs', category: 'Misc' },
|
|
{ name: 'Blocks', label: 'Blocks', category: 'Misc' },
|
|
{ name: 'Leaf', label: 'Eco', category: 'Misc' },
|
|
];
|
|
|
|
/** Catppuccin accent colors for project color selection. */
|
|
export const ACCENT_COLORS: Array<{ name: string; var: string }> = [
|
|
{ name: 'Rosewater', var: '--ctp-rosewater' },
|
|
{ name: 'Flamingo', var: '--ctp-flamingo' },
|
|
{ name: 'Pink', var: '--ctp-pink' },
|
|
{ name: 'Mauve', var: '--ctp-mauve' },
|
|
{ name: 'Red', var: '--ctp-red' },
|
|
{ name: 'Maroon', var: '--ctp-maroon' },
|
|
{ name: 'Peach', var: '--ctp-peach' },
|
|
{ name: 'Yellow', var: '--ctp-yellow' },
|
|
{ name: 'Green', var: '--ctp-green' },
|
|
{ name: 'Teal', var: '--ctp-teal' },
|
|
{ name: 'Sky', var: '--ctp-sky' },
|
|
{ name: 'Sapphire', var: '--ctp-sapphire' },
|
|
{ name: 'Blue', var: '--ctp-blue' },
|
|
{ name: 'Lavender', var: '--ctp-lavender' },
|
|
];
|