Improve analysis UX: algorithm explanations, skeleton loading, auto-expand achieved specs

- Replace terse one-line optimization mode descriptions with clearer multi-sentence
  explanations of how Maximize Count and Priority Order algorithms behave
- Add skeleton loading placeholders on course buttons while analysis is pending
- Auto-expand achieved specializations to show credit breakdown by default
- Add instructional subtitles to Course Selection and Specializations sections
- Make Clear and Clear All buttons more prominent with visible backgrounds
This commit is contained in:
2026-02-28 21:56:06 -05:00
parent 6af24d9270
commit 969d4ff5a9
10 changed files with 201 additions and 17 deletions

View File

@@ -0,0 +1,21 @@
## ADDED Requirements
### Requirement: Skeleton placeholder during analysis
When an elective set is not pinned and analysis is pending, the CourseSelection component SHALL display skeleton placeholder elements in place of the course choice buttons.
The skeleton placeholders SHALL:
- Visually approximate the size and layout of the course choice buttons they replace.
- Display a pulsing/animated background to indicate loading.
- Replace the current "analyzing..." text label.
#### Scenario: Analysis pending for an unpinned set
- **WHEN** an elective set is not pinned AND `loading` is true AND no analysis result exists for that set
- **THEN** skeleton placeholder rectangles SHALL be displayed instead of course choice buttons
#### Scenario: Analysis completes for a set
- **WHEN** an analysis result arrives for a previously loading set
- **THEN** the skeleton placeholders SHALL be replaced with the actual course choice buttons showing analysis data
#### Scenario: Set is already pinned
- **WHEN** an elective set has a pinned course
- **THEN** no skeleton placeholders SHALL be shown regardless of loading state