- 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
24 lines
1.0 KiB
Markdown
24 lines
1.0 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Clear all course selections
|
|
The course selection panel SHALL provide a "Clear All" button that resets all pinned course selections at once.
|
|
|
|
#### Scenario: Clear all with some pinned
|
|
- **WHEN** at least one course is pinned and the user clicks "Clear All"
|
|
- **THEN** all pinned courses SHALL be unpinned and every elective set SHALL return to the open state showing all course options
|
|
|
|
#### Scenario: Clear all button visibility
|
|
- **WHEN** no courses are pinned
|
|
- **THEN** the "Clear All" button SHALL not be visible
|
|
|
|
#### Scenario: Clear all button visible
|
|
- **WHEN** at least one course is pinned
|
|
- **THEN** the "Clear All" button SHALL be visible in the course selection panel header
|
|
|
|
### Requirement: State persistence after clear all
|
|
After clearing all selections, the cleared state SHALL be persisted to localStorage like any other state change.
|
|
|
|
#### Scenario: Persistence
|
|
- **WHEN** the user clicks "Clear All" and reloads the page
|
|
- **THEN** all sets SHALL remain in the open (unpinned) state
|