fix(electrobun): wizard 7 fixes — validation, GitLab, SSHFS, icons, model dropdown, keyboard nav

- 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
This commit is contained in:
Hibryda 2026-03-23 14:20:30 +01:00
parent 41b8d46a19
commit 021feba3ed
11 changed files with 368 additions and 614 deletions

View file

@ -18,6 +18,7 @@ export interface WizardState {
githubRepo: string;
selectedTemplate: string;
templateTargetDir: string;
templateOriginDir: string;
remoteHost: string;
remoteUser: string;
remotePath: string;
@ -25,12 +26,14 @@ export interface WizardState {
remotePassword: string;
remoteKeyPath: string;
remoteSshfs: boolean;
remoteSshfsMountpoint: string;
pathValid: PathState;
isGitRepo: boolean;
gitBranch: string;
gitProbeStatus: ProbeState;
gitProbeBranches: string[];
githubInfo: { stars: number; description: string; defaultBranch: string } | null;
githubProbeStatus: ProbeState;
githubLoading: boolean;
cloning: boolean;
projectName: string;
@ -55,10 +58,13 @@ export function getDefaults(groupId: string): WizardState {
return {
step: 1, sourceType: 'local', localPath: '', repoUrl: '', cloneTarget: '',
githubRepo: '', selectedTemplate: '', templateTargetDir: '~/projects',
templateOriginDir: '',
remoteHost: '', remoteUser: '', remotePath: '',
remoteAuthMethod: 'agent', remotePassword: '', remoteKeyPath: '~/.ssh/id_ed25519',
remoteSshfs: false, pathValid: 'idle', isGitRepo: false, gitBranch: '',
gitProbeStatus: 'idle', gitProbeBranches: [], githubInfo: null, githubLoading: false,
remoteSshfs: false, remoteSshfsMountpoint: '',
pathValid: 'idle', isGitRepo: false, gitBranch: '',
gitProbeStatus: 'idle', gitProbeBranches: [], githubInfo: null,
githubProbeStatus: 'idle', githubLoading: false,
cloning: false, projectName: '', nameError: '', selectedBranch: '',
branches: [], useWorktrees: false, selectedGroupId: groupId,
projectIcon: 'Terminal', projectColor: 'var(--ctp-blue)', shellChoice: 'bash',