# Gantt Board Search Feature

## Overview
Enhanced search functionality for the Mission Control Gantt Board with real-time filtering, text highlighting, and keyboard shortcuts.

## Features

### 1. Search Bar Component
- **Location:** `src/components/SearchBar.tsx`
- **Features:**
  - Clean, modern UI with search icon
  - Clear button (X) when query exists
  - Keyboard shortcut hint (⌘K / Ctrl+K)
  - Escape to clear and blur
  - Mobile responsive

### 2. Keyboard Shortcuts
- **⌘K / Ctrl+K:** Focus search input
- **Escape:** Clear search (if text exists) or blur input

### 3. Highlighting Components
- **Location:** `src/components/HighlightText.tsx`
- **Features:**
  - Highlights matching text in yellow (`bg-yellow-500/30`)
  - Case-insensitive matching
  - Works with titles, descriptions, and tags
  - `HighlightMatches` helper for highlighting multiple fields

### 4. Search Scope
Search covers:
- ✅ Task titles
- ✅ Task descriptions
- ✅ Tags
- ✅ Assignee names (in Search view)
- ✅ Status and type (in Search view)

### 5. Real-time Filtering
- 300ms debounce for smooth performance
- Instant filter updates in Kanban, Backlog, and Search views
- Search results count displayed

### 6. Task Highlighting
In Kanban view:
- Task titles are highlighted when they match
- Matching tags get yellow border and background
- Non-matching tags remain muted

## Usage

### Basic Search
1. Type in the search box or press ⌘K to focus
2. Tasks filter automatically as you type
3. Click X or press Escape to clear

### View Switching
- Search automatically switches to "Search" view when you type
- Toggle between Kanban/Backlog/Search views using the view buttons
- Each view respects the current search query

## Files Modified/Created

### New Files
- `src/components/SearchBar.tsx` - Reusable search input component
- `src/components/HighlightText.tsx` - Text highlighting utility
- `src/components/TaskSearchItem.tsx` - Search result item component

### Modified Files
- `src/app/page.tsx` - Integrated SearchBar, added searchQuery prop to KanbanTaskCard
- `src/components/SearchView.tsx` - Uses HighlightText for better display

## Technical Details

### Search Algorithm
- Case-insensitive string matching
- Matches partial strings (e.g., "bug" matches "debug")
- Debounced at 300ms for performance

### Highlight Styling
```css
/* Matching text */
bg-yellow-500/30 - Yellow background
ring-yellow-500/30 - Yellow border on tags
text-yellow-200 - Light yellow text

/* Non-matching */
Regular muted styling preserved
```

### State Management
- `searchQuery` - Current input value (immediate)
- `debouncedSearchQuery` - Debounced value for filtering (300ms delay)

## Future Enhancements
Potential improvements:
- [ ] Advanced filters (by status, assignee, date range)
- [ ] Saved searches
- [ ] Search history
- [ ] Full-text search in task comments
- [ ] Fuzzy/partial matching improvements
