Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions assets/theme-v2/svg/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# GFS Icon Pack v1 Core

The SVG files in `assets/theme-v2/svg/` are the authoritative Theme V2 icon source.

These files are user-authored and approved. Do not regenerate, redesign, simplify, optimize, or redraw these SVG files during validation-only PRs.

If a required SVG is missing, report validation failure instead of generating a replacement.

Required validation:
- each required file exists under `assets/theme-v2/svg/`
- each SVG is well-formed XML
- each SVG uses `viewBox="0 0 24 24"`
- each SVG uses `fill="none"`
- each SVG uses `stroke="currentColor"`
- each SVG uses `stroke-linecap="round"`
- each SVG uses `stroke-linejoin="round"`

Required filenames:
- `gfs-chevron-left.svg`
- `gfs-chevron-right.svg`
- `gfs-chevron-up.svg`
- `gfs-chevron-down.svg`
- `gfs-add.svg`
- `gfs-subtract.svg`
- `gfs-trash.svg`
- `gfs-close.svg`
- `gfs-warning.svg`
- `gfs-error.svg`
- `gfs-success.svg`
- `gfs-info.svg`
- `gfs-fullscreen.svg`
- `gfs-exit-fullscreen.svg`
- `gfs-menu.svg`
- `gfs-search.svg`
- `gfs-settings.svg`
3 changes: 3 additions & 0 deletions assets/theme-v2/svg/gfs-add.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions assets/theme-v2/svg/gfs-chevron-down.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions assets/theme-v2/svg/gfs-chevron-left.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions assets/theme-v2/svg/gfs-chevron-right.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions assets/theme-v2/svg/gfs-chevron-up.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/theme-v2/svg/gfs-close.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions assets/theme-v2/svg/gfs-error.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions assets/theme-v2/svg/gfs-exit-fullscreen.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions assets/theme-v2/svg/gfs-fullscreen.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions assets/theme-v2/svg/gfs-info.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/theme-v2/svg/gfs-menu.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions assets/theme-v2/svg/gfs-search.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions assets/theme-v2/svg/gfs-settings.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions assets/theme-v2/svg/gfs-subtract.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/theme-v2/svg/gfs-success.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions assets/theme-v2/svg/gfs-trash.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions assets/theme-v2/svg/gfs-warning.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 55 additions & 0 deletions docs_build/design/theme-v2-icons/theme-v2-icon-style-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Theme V2 Icon Style Guide

## Purpose
Provide the approved validation and usage language for shared Theme V2 SVG icons.

The SVG files in `assets/theme-v2/svg/` are the authoritative Theme V2 icon source.

## Artwork Authority
The SVG artwork is user-authored and approved.

Do not regenerate, redesign, simplify, optimize, or redraw these SVG files during validation-only PRs.

If a required SVG is missing, report validation failure instead of generating a replacement.

Do not replace the SVG files with CSS-only or JS-only icon generation.

## SVG Validation Standard
Every required SVG must be a standalone file under `assets/theme-v2/svg/`.

Every required SVG must be well-formed XML.

Every required SVG must use:
- `viewBox="0 0 24 24"`
- `fill="none"`
- `stroke="currentColor"`
- `stroke-linecap="round"`
- `stroke-linejoin="round"`

The approved files may include additional SVG attributes or path geometry as authored. Validation should not inspect, simplify, optimize, or rewrite artwork geometry.

## Required Icon Files
- `gfs-chevron-left.svg`
- `gfs-chevron-right.svg`
- `gfs-chevron-up.svg`
- `gfs-chevron-down.svg`
- `gfs-add.svg`
- `gfs-subtract.svg`
- `gfs-trash.svg`
- `gfs-close.svg`
- `gfs-warning.svg`
- `gfs-error.svg`
- `gfs-success.svg`
- `gfs-info.svg`
- `gfs-fullscreen.svg`
- `gfs-exit-fullscreen.svg`
- `gfs-menu.svg`
- `gfs-search.svg`
- `gfs-settings.svg`

## Naming Rules
Use `trash` naming instead of `delete`.

Use `fullscreen` and `exit-fullscreen` naming.

Do not add `expand`, `collapse`, or `delete` SVG names in this registry.
125 changes: 80 additions & 45 deletions docs_build/dev/BUILD_PR.md
Original file line number Diff line number Diff line change
@@ -1,74 +1,109 @@
# PR_26175_ALFA_011-status-bar-journey-progress-context
# PR_26175_ALFA_047-theme-v2-svg-icon-registry

## Purpose
Add right-anchored progress context to the shared toolbox status bar using the existing Game Journey completion metrics/API pipeline.
Create a shared Theme V2 SVG icon asset registry and authoritative validation specification so toolbox and platform UI can use approved standalone SVG files from one repo-owned source instead of page-local SVG, ad hoc CSS drawings, Font Awesome glyphs, conversation screenshots, vague row references, CSS-only generation, or a JS-only registry.

## Source Of Truth
This `BUILD_PR.md` is the source of truth for `PR_26175_ALFA_011-status-bar-journey-progress-context`.
This `BUILD_PR.md` is the source of truth for `PR_26175_ALFA_047-theme-v2-svg-icon-registry`.

## Exact Scope
- Preserve the ALFA_009 single-row toolbox status bar behavior:
- left side displays only the selected Game Hub game name.
- center displays only the current status message.
- Add right-anchored progress text in this format:
- `{CurrentTool} {complete}/{total} ({percent}%) | Journey {complete}/{total} ({percent}%)`
- Use existing Game Journey completion metrics/API pipeline for Journey totals.
- Derive current-tool progress from the existing completion metrics record that matches the current toolbox tool/section.
- Do not add new storage.
- Do not use browser-owned authoritative progress data.
- Preserve fullscreen bottom anchoring and existing fullscreen content bottom reserve.
- Preserve normal placement above the footer.
- Use shared Theme V2 CSS/classes only.
- Update targeted Playwright coverage for the right-anchored progress text and existing left/center behavior.
- Remove the incorrect JS-only icon registry implementation from the ALFA_047 delta.
- Use the user-authored SVG files already present under `assets/theme-v2/svg/` as the authoritative source.
- Do not regenerate, redesign, simplify, optimize, or redraw any SVG icon artwork in this PR.
- Required SVG files:
- `gfs-chevron-left.svg`
- `gfs-chevron-right.svg`
- `gfs-chevron-up.svg`
- `gfs-chevron-down.svg`
- `gfs-add.svg`
- `gfs-subtract.svg`
- `gfs-trash.svg`
- `gfs-close.svg`
- `gfs-warning.svg`
- `gfs-error.svg`
- `gfs-success.svg`
- `gfs-info.svg`
- `gfs-fullscreen.svg`
- `gfs-exit-fullscreen.svg`
- `gfs-menu.svg`
- `gfs-search.svg`
- `gfs-settings.svg`
- Validate each required SVG is well-formed XML.
- Validate each SVG uses `viewBox="0 0 24 24"`, `fill="none"`, `stroke="currentColor"`, `stroke-linecap="round"`, and `stroke-linejoin="round"`.
- Do not create `expand` or `collapse` icon naming.
- Do not create `delete` icon naming.
- Do not replace the standalone SVG assets with a JS-only icon registry.
- Do not replace the standalone SVG assets with CSS-only icon generation.
- Create `docs_build/design/theme-v2-icons/theme-v2-icon-style-guide.md` as the authoritative specification for all future Theme V2 SVG icons.
- Create or update `assets/theme-v2/svg/README.md` as the registry documentation for the authoritative SVG asset pack.
- Document the approved validation rules and the no-regeneration/no-redesign policy.
- If any required SVG is missing, report validation failure instead of generating a replacement.
- Do not convert existing UI controls in this PR.

## Exact Targets
- `docs_build/dev/BUILD_PR.md`
- `assets/theme-v2/js/toolbox-status-bar.js`
- `assets/theme-v2/css/status.css`
- `tests/playwright/tools/ToolboxSelectedGameStatusBar.spec.mjs`
- `docs_build/dev/reports/PR_26175_ALFA_011-status-bar-journey-progress-context_report.md`
- `docs_build/dev/reports/PR_26175_ALFA_011-status-bar-journey-progress-context_validation-lane.md`
- `docs_build/dev/reports/PR_26175_ALFA_011-status-bar-journey-progress-context_requirements-checklist.md`
- `assets/theme-v2/svg/gfs-chevron-left.svg`
- `assets/theme-v2/svg/gfs-chevron-right.svg`
- `assets/theme-v2/svg/gfs-chevron-up.svg`
- `assets/theme-v2/svg/gfs-chevron-down.svg`
- `assets/theme-v2/svg/gfs-add.svg`
- `assets/theme-v2/svg/gfs-subtract.svg`
- `assets/theme-v2/svg/gfs-trash.svg`
- `assets/theme-v2/svg/gfs-close.svg`
- `assets/theme-v2/svg/gfs-warning.svg`
- `assets/theme-v2/svg/gfs-error.svg`
- `assets/theme-v2/svg/gfs-success.svg`
- `assets/theme-v2/svg/gfs-info.svg`
- `assets/theme-v2/svg/gfs-fullscreen.svg`
- `assets/theme-v2/svg/gfs-exit-fullscreen.svg`
- `assets/theme-v2/svg/gfs-menu.svg`
- `assets/theme-v2/svg/gfs-search.svg`
- `assets/theme-v2/svg/gfs-settings.svg`
- `assets/theme-v2/svg/README.md`
- `docs_build/design/theme-v2-icons/theme-v2-icon-style-guide.md`
- `tests/playwright/tools/ThemeV2SvgIconRegistry.spec.mjs`
- `docs_build/dev/reports/PR_26175_ALFA_047-theme-v2-svg-icon-registry_report.md`
- `docs_build/dev/reports/PR_26175_ALFA_047-theme-v2-svg-icon-registry_validation-lane.md`
- `docs_build/dev/reports/PR_26175_ALFA_047-theme-v2-svg-icon-registry_requirements-checklist.md`
- `docs_build/dev/reports/PR_26175_ALFA_047-theme-v2-svg-icon-registry_manual-validation-notes.md`
- `docs_build/dev/reports/codex_review.diff`
- `docs_build/dev/reports/codex_changed_files.txt`

## Evidence Sources
- `assets/js/shared/game-journey-api-client.js`
- `src/api/game-journey-completion-api-client.js`
- `src/dev-runtime/server/local-api-router.mjs`
- `src/dev-runtime/persistence/game-journey-completion-metrics-store.mjs`
- `docs_build/pr/PLAN_PR_26175_ALFA_047-theme-v2-svg-icon-registry.md`
- `assets/theme-v2/images/gfs-chevron-down.svg`
- `assets/theme-v2/images/gfs-chevron-up.svg`

## Out Of Scope
- No Game Journey API/service/repository contract changes.
- No new persistence/storage.
- No chevron conversion.
- No status/action icon conversion.
- No layout utility icon conversion.
- No JS-only icon registry.
- No CSS-only icon generation.
- No Theme V2 CSS changes.
- No runtime UI conversion.
- No accordion conversion.
- No Font Awesome removal.
- No broad visual redesign.
- No page-local CSS.
- No inline styles.
- No style blocks.
- No browser-owned product data as source of truth.
- No silent fallback data.
- No environment/server details in the status bar.
- No selected game purpose in the visible status bar.
- No visible status category labels in the status bar.
- No large banners.
- No modal messages or modal-style status messages.
- No row highlights.
- No inline styles, style blocks, or page-local CSS.
- No API/service/repository contract changes.
- No engine core changes.
- No `start_of_day` folder changes.

## Validation
Run targeted Playwright coverage:
Run exactly:

```powershell
npx playwright test tests/playwright/tools/ToolboxSelectedGameStatusBar.spec.mjs --workers=1
```

Also verify changed source does not introduce inline styles or style blocks:

```powershell
rg -n "<[s]tyle|[s]tyle=" assets/theme-v2/js/toolbox-status-bar.js assets/theme-v2/css/status.css tests/playwright/tools/ToolboxSelectedGameStatusBar.spec.mjs
npx playwright test tests/playwright/tools/ThemeV2SvgIconRegistry.spec.mjs --workers=1
rg -n "<[s]tyle|[s]tyle=" docs_build/design/theme-v2-icons/theme-v2-icon-style-guide.md tests/playwright/tools/ThemeV2SvgIconRegistry.spec.mjs
```

## Artifact
Create repo-structured delta ZIP:

```text
tmp/PR_26175_ALFA_011-status-bar-journey-progress-context_delta.zip
tmp/PR_26175_ALFA_047-theme-v2-svg-icon-registry_delta.zip
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# PR_26175_ALFA_047-theme-v2-svg-icon-registry Manual Validation Notes

## Branch
PASS: Work remained on `codex/pr-26175-alfa-047-theme-v2-svg-icon-registry`.

## Scope Review
PASS: ALFA_047 remains limited to standalone SVG assets, registry/style-guide documentation, targeted tests, BUILD doc updates, and reports.

PASS: No runtime UI conversion, accordion conversion, Theme V2 CSS change, or Theme V2 JS change is included.

## Artwork Policy Review
PASS: The current SVG files under `assets/theme-v2/svg/` are treated as user-authored authoritative artwork.

PASS: Validation was updated to avoid redesigning, redrawing, simplifying, optimizing, or enforcing path geometry.

PASS: If a required SVG is missing, the Playwright validation fails instead of generating a replacement.

## Validation Review
PASS: Required filenames are checked.

PASS: Each SVG is parsed as well-formed XML.

PASS: Each SVG is checked for `viewBox="0 0 24 24"`, `fill="none"`, `stroke="currentColor"`, `stroke-linecap="round"`, and `stroke-linejoin="round"`.

PASS: Registry documentation and the Theme V2 icon style guide document the authoritative-source policy.
Loading
Loading