# Universal Icon System - Tasks

## Phase 1: Setup

- [x] **Task 1.1**: Install Phosphor Icons
  - `npm install @phosphor-icons/react`
  - Add to package.json dependencies

- [x] **Task 1.2**: Create Icon component
  - Create `components/icon.tsx`
  - Implement size variants (sm, md, lg, xl)
  - Support color inheritance and explicit colors
  - Add accessibility props (aria-label, aria-hidden)

- [x] **Task 1.3**: Create icon registry
  - Create `utils/icons.ts`
  - Map logical names to Phosphor icon components
  - Group by category (navigation, actions, status, git, files)
  - Export TypeScript types for icon names

## Phase 2: Replace Raw Unicode Symbols

- [x] **Task 2.1**: Replace validation icons in git-repositories.tsx
  - `✓` → `Icon name="check"` 
  - `⚠` → `Icon name="warning"`
  - `✗` → `Icon name="x"`

- [x] **Task 2.2**: Replace git toolbar icons in git-toolbar.tsx
  - `●` → `Icon name="dot"`
  - `↓` → `Icon name="arrow-down"`
  - `❓` → `Icon name="question"`

- [x] **Task 2.3**: Scan and replace all other Unicode symbols
  - Search for remaining Unicode symbols across all TSX files
  - Replace with appropriate Icon components

## Phase 3: Update Navigation

- [x] **Task 3.1**: Update app-shell.tsx navigation
  - Replace text-only nav items with icon + text
  - Use navigation icons (dashboard, projects, settings, etc.)
  - Maintain current layout and styling

## Phase 4: Update Action Buttons

- [ ] **Task 4.1**: Update button components
  - Add icon support to Button component
  - Update all primary/secondary buttons with relevant icons
  - Ensure proper spacing between icon and text

- [ ] **Task 4.2**: Update form actions
  - Save buttons: `Icon name="save"`
  - Cancel buttons: `Icon name="x"`
  - Delete buttons: `Icon name="trash"`
  - Edit buttons: `Icon name="pencil"`

## Phase 5: Update Status Indicators

- [ ] **Task 5.1**: Replace status badges
  - Success states: `Icon name="check"` + green color
  - Error states: `Icon name="x"` + red color
  - Warning states: `Icon name="warning"` + yellow color
  - Loading states: `Icon name="spinner"` + animation

## Phase 6: Update Git Components

- [ ] **Task 6.1**: Update GitToolbar
  - Branch icon: `Icon name="git-branch"`
  - Fetch icon: `Icon name="arrows-clockwise"`
  - Pull icon: `Icon name="arrow-down"`
  - Push icon: `Icon name="arrow-up"`
  - Commit icon: `Icon name="git-commit"`

- [ ] **Task 6.2**: Update GitHistoryPage
  - History icon: `Icon name="clock-counter-clockwise"`
  - Merge icon: `Icon name="git-merge"`
  - Branch selector icon: `Icon name="git-branch"`

## Phase 7: Update File Components

- [ ] **Task 7.1**: Update file tree icons
  - Folder icon: `Icon name="folder"`
  - File icon: `Icon name="file"`
  - Code file icon: `Icon name="code"`
  - Binary file icon: `Icon name="file-binary"`

- [ ] **Task 7.2**: Update FileEditor toolbar
  - Edit icon: `Icon name="pencil"`
  - Save icon: `Icon name="floppy-disk"`
  - Copy icon: `Icon name="copy"`

## Phase 8: CSS and Styling

- [ ] **Task 8.1**: Add icon CSS classes
  - Create `.icon` base class
  - Size variants: `.icon-sm`, `.icon-md`, `.icon-lg`, `.icon-xl`
  - Alignment utilities for icon + text combos

- [ ] **Task 8.2**: Ensure consistent spacing
  - Icon margins in buttons
  - Icon alignment with text
  - Icon padding in navigation items

## Phase 9: Quality Gates

- [ ] **Task 9.1**: TypeScript checks
  - `npm run typecheck`
  - Fix any type errors

- [ ] **Task 9.2**: Lint checks
  - `npm run lint`
  - Fix any linting issues

- [ ] **Task 9.3**: Build verification
  - `npm run build`
  - Verify bundle size impact

- [ ] **Task 9.4**: Visual verification
  - Check all pages for icon rendering
  - Verify no missing icons or broken layouts
  - Check dark/light theme compatibility
