- Add responsive 2-panel layout (mobile single-col, tablet/desktop grid) - Unify specialization ranking with credit bars, status badges, and expandable allocation breakdowns (remove standalone ResultsDashboard) - Inline decision tree ceiling data on course buttons with spec counts - Add Clear All button to reset all course selections - Add collapsible CreditLegend explaining bars, badges, and limits - Extract ModeComparison and MutualExclusionWarnings to Notifications - Add useMediaQuery hook with matchMedia-based breakpoint detection
31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Collapsible credit legend
|
|
The specialization panel SHALL include a collapsible "How to read this" section that explains the credit bars and status badges.
|
|
|
|
#### Scenario: Legend collapsed by default
|
|
- **WHEN** the page loads
|
|
- **THEN** the legend SHALL be collapsed, showing only a "How to read this" toggle link
|
|
|
|
#### Scenario: Expand legend
|
|
- **WHEN** the user clicks "How to read this"
|
|
- **THEN** the legend SHALL expand to show explanations of credit bar segments, the 9-credit threshold marker, and status badge meanings
|
|
|
|
#### Scenario: Collapse legend
|
|
- **WHEN** the user clicks the toggle while the legend is expanded
|
|
- **THEN** the legend SHALL collapse back to just the toggle link
|
|
|
|
### Requirement: Legend content
|
|
The legend SHALL explain: the dark bar segment represents credits allocated from pinned courses, the light bar segment represents potential credits from open sets, the tick mark represents the 9-credit threshold required for a specialization, and the four status badges (Achieved, Achievable, Missing Req., Unreachable) with their meanings.
|
|
|
|
#### Scenario: Legend describes all elements
|
|
- **WHEN** the legend is expanded
|
|
- **THEN** it SHALL contain descriptions for: allocated credits bar, potential credits bar, threshold marker, and all four status badge types
|
|
|
|
### Requirement: Legend state is not persisted
|
|
The legend expanded/collapsed state SHALL reset to collapsed on page reload.
|
|
|
|
#### Scenario: Reset on reload
|
|
- **WHEN** the user expands the legend and reloads the page
|
|
- **THEN** the legend SHALL be collapsed
|