chore: update submodule refs, clean up plans/evidence, update .gitignore
NexusGuard CI / server-core-test (push) Failing after 3m6s
NexusGuard CI / server-core-build (push) Has been skipped
NexusGuard CI / device-agent-test (push) Failing after 4s
NexusGuard CI / device-agent-cross-build (amd64, linux) (push) Has been skipped
NexusGuard CI / device-agent-cross-build (amd64, windows) (push) Has been skipped
NexusGuard CI / device-agent-cross-build (arm64, linux) (push) Has been skipped
NexusGuard CI / dashboard-test (push) Failing after 4s
NexusGuard CI / dashboard-dist (push) Has been skipped
NexusGuard CI / server-core-test (push) Failing after 3m6s
NexusGuard CI / server-core-build (push) Has been skipped
NexusGuard CI / device-agent-test (push) Failing after 4s
NexusGuard CI / device-agent-cross-build (amd64, linux) (push) Has been skipped
NexusGuard CI / device-agent-cross-build (amd64, windows) (push) Has been skipped
NexusGuard CI / device-agent-cross-build (arm64, linux) (push) Has been skipped
NexusGuard CI / dashboard-test (push) Failing after 4s
NexusGuard CI / dashboard-dist (push) Has been skipped
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
# Dashboard UI Redesign — Implementation Plan
|
||||
|
||||
**Created:** 2026-06-02
|
||||
**Spec:** `apps/dashboard-ui/docs/superpowers/specs/2026-06-02-dashboard-redesign-design.md`
|
||||
**Approach:** Bottom-Up Design System (Approach A)
|
||||
|
||||
---
|
||||
|
||||
## TODOs
|
||||
|
||||
### Phase 1: Design Foundation
|
||||
|
||||
- [x] 1. Delete dead scaffold files (`src/style.css`, `src/counter.ts`, `public/icons.svg`)
|
||||
- [x] 2. Add Google Fonts (Inter + JetBrains Mono) to `index.html`
|
||||
- [x] 3. Create design tokens in `src/assets/main.css` using `@theme` directive
|
||||
- [x] 4. Add base animation CSS (page transitions, modal transitions, sidebar transitions)
|
||||
|
||||
### Phase 2: Component Library
|
||||
|
||||
- [x] 5. Create `NgButton.vue` — primary, secondary, ghost, danger variants with loading state
|
||||
- [x] 6. Create `NgCard.vue` — glass card wrapper with default, elevated, stat variants
|
||||
- [x] 7. Create `NgModal.vue` — HeadlessUI Dialog wrapper with transitions, header/body/footer slots
|
||||
- [x] 8. Create `NgTable.vue` — sortable headers, row hover, responsive layout
|
||||
- [x] 9. Create `NgInput.vue` — text, password, search with label, error, hint
|
||||
- [x] 10. Create `NgSelect.vue` — HeadlessUI Listbox wrapper
|
||||
- [x] 11. Create `NgToggle.vue` — HeadlessUI Switch wrapper
|
||||
- [x] 12. Create `NgBadge.vue` — status badges: online, offline, warning
|
||||
- [x] 13. Create `NgToast.vue` + `useToast.ts` — notification system replacing `alert()`
|
||||
- [x] 14. Create `NgSidebar.vue` — collapsible sidebar with icons + labels
|
||||
- [x] 15. Create `NgDropdown.vue` — HeadlessUI Menu wrapper
|
||||
- [x] 16. Create `NgAccordion.vue` — HeadlessUI Disclosure wrapper
|
||||
- [x] 17. Create `NgTooltip.vue` — HeadlessUI Popover wrapper
|
||||
- [x] 18. Create `NgSkeleton.vue` — loading skeleton placeholders
|
||||
|
||||
### Phase 3: Layout System
|
||||
|
||||
- [x] 19. Refactor `App.vue` — new sidebar layout with NgSidebar
|
||||
- [x] 20. Add page transitions to router (fade + slide-up)
|
||||
- [x] 21. Implement responsive breakpoints (mobile hamburger, tablet collapsed, desktop full)
|
||||
- [x] 22. Add sidebar collapse/expand with `Cmd+B` shortcut
|
||||
|
||||
### Phase 4: Page Restyle
|
||||
|
||||
- [x] 23. Restyle `Login.vue` — centered card, no sidebar, animated gradient background
|
||||
- [x] 24. Restyle `Dashboard.vue` — stat cards, traffic overview, recent activity, quick actions
|
||||
- [x] 25. Restyle `Devices.vue` — search + filter bar, data table, pagination
|
||||
- [x] 26. Restyle `DeviceDetail.vue` — back nav, sections (keys, settings, firewall, linked)
|
||||
- [x] 27. Restyle `Servers.vue` — card-based layout with status indicators
|
||||
- [x] 28. Restyle `TrafficHistory.vue` — filters, chart, data table, export
|
||||
- [x] 29. Restyle `Users.vue` — table with role badges, inline create form
|
||||
- [x] 30. Restyle `ShareConfig.vue` — public centered card, monospace config, copy/download
|
||||
- [x] 31. Replace all `alert()`/`confirm()` with NgToast/NgModal
|
||||
- [x] 32. Add loading skeletons to all pages
|
||||
- [x] 33. Integrate Iconify icons throughout (nav, buttons, status)
|
||||
|
||||
### Phase 5: Polish
|
||||
|
||||
- [x] 34. Add micro-interactions (hover, focus states) to all components
|
||||
- [x] 35. Add staggered list animations to tables and cards
|
||||
- [x] 36. Add empty states for all data lists
|
||||
- [x] 37. Add error states for failed loads
|
||||
|
||||
### Phase 6: Documentation & Cleanup
|
||||
|
||||
- [x] 38. Update `apps/dashboard-ui/AGENTS.md` with new architecture
|
||||
- [x] 39. Update root `README.md` with dashboard architecture section
|
||||
- [x] 40. Delete unused public assets (`public/icons.svg`)
|
||||
|
||||
---
|
||||
|
||||
## Final Verification Wave
|
||||
|
||||
- [x] F1. **Build Verification** — `npm run build` passes with zero errors
|
||||
- [x] F2. **Lint Verification** — No TypeScript errors, no console warnings
|
||||
- [x] F3. **Visual QA** — All pages render correctly with new design system
|
||||
- [x] F4. **Responsive QA** — Mobile, tablet, desktop layouts work correctly
|
||||
|
||||
---
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
### Must Have
|
||||
- [x] Design tokens defined in `@theme` directive
|
||||
- [x] 14 shared components in `src/components/ui/`
|
||||
- [x] All 8 pages restyled with new components
|
||||
- [x] Page transitions working
|
||||
- [x] Responsive sidebar (mobile/tablet/desktop)
|
||||
- [x] Toast notifications replacing `alert()`
|
||||
- [x] Iconify icons integrated
|
||||
|
||||
### Must NOT Have
|
||||
- [x] No `alert()` or `confirm()` calls
|
||||
- [x] No hardcoded colors in Vue SFCs (use design tokens)
|
||||
- [x] No `style.css` or `counter.ts` (deleted)
|
||||
- [x] No breaking changes to API modules or stores
|
||||
|
||||
---
|
||||
|
||||
## Evidence
|
||||
|
||||
- [x] Build output shows zero errors
|
||||
- [x] All pages use Ng* components
|
||||
- [x] No raw Tailwind classes for colors (use tokens)
|
||||
- [x] Responsive layout tested at 375px, 768px, 1024px+
|
||||
Reference in New Issue
Block a user