# Requirements Document

## Introduction

This specification defines consistent detail panel behavior across all entity browsers (shots, assets, tasks) in the VFX Project Management System. The detail panel provides users with detailed information about selected entities and should behave consistently regardless of the entity type being viewed.

## Glossary

- **Detail Panel**: A side panel that displays detailed information about a selected entity (shot, asset, or task)
- **Auto-Enable Mode**: When the detail panel automatically shows/hides based on entity selection
- **Manual Mode**: When the detail panel visibility is controlled by keyboard shortcuts
- **Entity Browser**: A component that displays a list/table of entities (ShotBrowser, AssetBrowser, TaskBrowser)
- **Keyboard Toggle**: The 'i' key shortcut that manually controls detail panel visibility

## Requirements

### Requirement 1

**User Story:** As a user, I want consistent detail panel behavior across all entity browsers, so that I can work efficiently without learning different interaction patterns.

#### Acceptance Criteria

1. WHEN I press the 'i' key with an entity selected THEN the system SHALL show the detail panel manually
2. WHEN the detail panel is manually shown and I select another entity THEN the system SHALL keep the panel visible and update the content
3. WHEN the detail panel is manually shown and I press 'i' again THEN the system SHALL hide the panel
4. WHEN auto-enable mode is active and I select an entity THEN the system SHALL show the detail panel automatically
5. WHEN auto-enable mode is disabled and I select an entity THEN the system SHALL not show the detail panel automatically

### Requirement 2

**User Story:** As a user, I want the detail panel to persist when manually opened, so that I can review multiple entities in sequence without the panel closing unexpectedly.

#### Acceptance Criteria

1. WHEN I manually open the detail panel with 'i' key THEN the system SHALL maintain panel visibility across entity selections
2. WHEN I click on different entity rows while panel is manually open THEN the system SHALL update panel content without hiding
3. WHEN I use keyboard navigation while panel is manually open THEN the system SHALL update panel content without hiding
4. WHEN I perform bulk operations while panel is manually open THEN the system SHALL maintain panel visibility
5. WHEN I close the panel manually with 'i' key THEN the system SHALL remember this state until toggled again

### Requirement 3

**User Story:** As a user, I want the auto-enable toggle to work independently of manual panel control, so that I can have flexible control over panel behavior.

#### Acceptance Criteria

1. WHEN auto-enable is active and I manually hide the panel THEN the system SHALL respect manual control temporarily
2. WHEN auto-enable is active and I select a new entity after manual hide THEN the system SHALL show the panel automatically
3. WHEN auto-enable is disabled and I manually show the panel THEN the system SHALL keep it visible until manually hidden
4. WHEN I toggle auto-enable mode THEN the system SHALL apply the new setting to subsequent entity selections
5. WHEN I have both auto-enable and manual control active THEN the system SHALL show the panel (OR logic)

### Requirement 4

**User Story:** As a user, I want keyboard shortcuts to work consistently across all entity browsers, so that muscle memory applies everywhere.

#### Acceptance Criteria

1. WHEN I press 'i' key in any entity browser THEN the system SHALL toggle detail panel visibility
2. WHEN I press 'i' key while typing in input fields THEN the system SHALL not trigger panel toggle
3. WHEN I press 'i' key while dialogs are open THEN the system SHALL not trigger panel toggle
4. WHEN no entity is selected and I press 'i' THEN the system SHALL not show the panel
5. WHEN I press 'i' key on mobile devices THEN the system SHALL toggle the mobile detail sheet

### Requirement 5

**User Story:** As a user, I want the detail panel state to be preserved during my session, so that my preferred workflow is maintained.

#### Acceptance Criteria

1. WHEN I enable auto-mode in one browser THEN the system SHALL remember this preference for the session
2. WHEN I manually show/hide panels THEN the system SHALL maintain this state until I change it
3. WHEN I navigate between different entity browsers THEN the system SHALL preserve auto-enable preferences
4. WHEN I refresh the page THEN the system SHALL restore the last auto-enable state from session storage
5. WHEN I close and reopen the application THEN the system SHALL use default auto-enable settings