Close the seven code-review findings in disposition and leave the phase pending on browser checks plus the v0.1.1 tag. Co-authored-by: Cursor <cursoragent@cursor.com>
57 lines
2.4 KiB
Markdown
57 lines
2.4 KiB
Markdown
# Phase 12.2 — UI Review
|
|
|
|
**Audited:** 2026-10-02
|
|
**Baseline:** `12.2-UI-SPEC.md` (approved)
|
|
**Screenshots:** Not captured — no live admin session was driven in this pass
|
|
**Interaction captures:** off
|
|
|
|
---
|
|
|
|
## Scope Decision
|
|
|
|
UI audit of the three new controls (`DatepickerField`, `FileuploadField`, relation child/pivot modals) against the existing Direction C system. No new tokens. This pass used the committed SPA tests and a code read of the review-fix commit `516f9c9`; it did not open a browser.
|
|
|
|
---
|
|
|
|
## Pillar Scores
|
|
|
|
| Pillar | Score | Finding |
|
|
|--------|-------|---------|
|
|
| 1. Copywriting | 4 | All new strings go through `t` / phrasebook keys. No new literal UI copy in the review-fix commit. |
|
|
| 2. Visuals | 3 | Components reuse Button, FormGrid, ConfirmDialog, Reka DatePicker/Dialog/Progress. Visual fit of the calendar popover and file tiles is a human check. |
|
|
| 3. Color | 4 | Danger/soft/skel/muted tokens only; no new palette. |
|
|
| 4. Typography | 4 | DM Sans / tabular-nums for dates, times, sizes as specified. |
|
|
| 5. Spacing | 4 | Existing control heights and 4px scale; no new spacing tokens. |
|
|
| 6. Experience Design | 4 | Save blocked while uploads are in flight (CR-01). Abort deletes a stored file (CR-02). Reorder keeps the latest snapshot (WR-03). Dirty includes active uploads. |
|
|
|
|
**Overall: 4** — automated backstops pass; browser visual UAT still required.
|
|
|
|
---
|
|
|
|
## UI-SPEC backstops
|
|
|
|
| Backstop | Automated evidence | Status |
|
|
|----------|--------------------|--------|
|
|
| Esc returns focus; disabled day cannot be selected | `admin/tests/form/DatepickerField.test.ts` | pass |
|
|
| Datetime local wall clock / UTC emit; ignoreTimezone | `admin/tests/app/dateFormat.test.ts` | pass |
|
|
| Protected thumbs use X-Session-Key, object URL, revoke | `admin/tests/form/FileuploadField.test.ts` | pass |
|
|
| Keyboard reorder, focus, announce, one request | `admin/tests/form/FileuploadField.test.ts` | pass |
|
|
|
|
---
|
|
|
|
## Priority Fixes
|
|
|
|
None blocking. Human items live in `12.2-UAT.md`.
|
|
|
|
## Files Audited
|
|
|
|
- `admin/src/views/FormView.vue`
|
|
- `admin/src/components/form/fields/FileuploadField.vue`
|
|
- `admin/src/components/form/fields/DatepickerField.vue` (via tests)
|
|
- `admin/src/components/form/formContext.ts`
|
|
- `admin/src/components/relation/RelationChildModal.vue`
|
|
- `admin/src/app/dateFormat.ts`
|
|
- `admin/tests/form/FileuploadField.test.ts`
|
|
- `admin/tests/app/dateFormat.test.ts`
|
|
- `admin/tests/smoke/deferred.smoke.test.ts`
|