Commit graph

87 commits

Author SHA1 Message Date
senke
274e63c883 docs: update FEATURE_STATUS.md for v0.102 — gear, live, queue, developer operational 2026-02-20 12:56:55 +01:00
senke
432415dc75 docs: update Welcome.mdx and deprecate Kodo references in docs
- Welcome.mdx: Kodo → Sumi design tokens
- EMPTY_ERROR_PATTERNS: KodoEmptyState → EmptyState
- all_components/covered_components: remove KodoEmptyState (renamed to EmptyState)
- COLOR_USAGE.md: add deprecation notice, point to DESIGN_TOKENS
- COMPONENT_USAGE.md: add note to prefer Sumi tokens
2026-02-17 17:05:33 +01:00
senke
b3ab89acd2 docs: align FEATURE_STATUS and validation scripts with v0.101 state
- docs/FEATURE_STATUS.md: 19 operational features (Gear, Live, Analytics, Roles)
- apps/web/docs/FEATURE_STATUS.md: reference 103 report, 19 features summary
- scripts/validate-full.sh: add full validation (validate-light + go test + npm test)
2026-02-17 15:35:58 +01:00
senke
9c0c065383 chore: remove dead code (Education, Studio, Gamification) (P2) 2026-02-16 11:03:27 +01:00
senke
ba8a5de491 refactor(frontend): unify pages pattern, remove legacy views (P2) 2026-02-16 11:02:29 +01:00
senke
8b1644640d refactor(audit-2.1,2.6): unify views and pages to features/*/pages pattern
- Migrate LiveView, GearView, PurchasesView, SocialView, AnalyticsView into features
- Create features: admin, developer, seller; add QueuePage, WishlistPage
- Migrate pages/marketplace to features/marketplace
- Remove components/views/ and pages/ legacy directories
- Update lazyExports, docs (ARCHITECTURE)
- Mark audit 2.1, 2.6 as done

Refs: AUDIT_TECHNIQUE_INTEGRAL_2026_02_15.md items 2.1, 2.6
2026-02-15 14:30:40 +01:00
senke
45ebcb8cad docs: update TODO audit docs after Phase 3 2026-02-14 22:45:48 +01:00
senke
75c027c5bd feat(web): add Zustand store migration strategy
- Document migration approach in ZUSTAND_MIGRATION_STRATEGY.md
- Add persistWithMigration utility for future stores
- Add version and migrate to authStore, library, ui, cartStore, playerStore
2026-02-14 22:43:06 +01:00
senke
8ed5b2848c chore(web): remove ghost features Education, Gamification, Studio
- Remove LazyEducation, education-view, components/education
- Delete educationService, handlers-ghost
- Remove EDUCATION, GAMIFICATION, STUDIO flags from features.ts
- Update FEATURE_STATUS.md
2026-02-14 22:40:12 +01:00
senke
7c7580be4d refactor(auth): consolidate AuthContext to authStore, update Storybook 2026-02-14 22:06:22 +01:00
senke
ae586f6134 Phase 2 stabilisation: code mort, Modal→Dialog, feature flags, tests, router split, Rust legacy
Bloc A - Code mort:
- Suppression Studio (components, views, features)
- Suppression gamification + services mock (projectService, storageService, gamificationService)
- Mise à jour Sidebar, Navbar, locales

Bloc B - Frontend:
- Suppression modal.tsx deprecated, Modal.stories (doublon Dialog)
- Feature flags: PLAYLIST_SEARCH, PLAYLIST_RECOMMENDATIONS, ROLE_MANAGEMENT = true
- Suppression 19 tests orphelins, retrait exclusions vitest.config

Bloc C - Backend:
- Extraction routes_auth.go depuis router.go

Bloc D - Rust:
- Suppression security_legacy.rs (code mort, patterns déjà dans security/)
2026-02-14 17:23:32 +01:00
senke
1695606e24 refactor(ui): remove unused design-system package and create STORYBOOK_CONTRACT
- Remove packages/design-system/ directory (superseded by SUMI tokens
  in apps/web/src/index.css, confirmed no imports exist)
- Update package.json keywords from kodo-design-system to sumi-design-system
- Create docs/STORYBOOK_CONTRACT.md defining mandatory story structure:
  Default, Loading, Error, Empty states for feature components
- Typography audit: SUMI utility classes defined in index.css, codebase
  correctly uses Tailwind classes with SUMI tokens via @theme — no
  migration needed

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 23:00:26 +01:00
senke
34e1f41091 refactor: Phase 8 — Update docs, ESLint, Storybook config for SUMI
- DESIGN_TOKENS.md: Complete rewrite to document --sumi-* token system
- APP_SHELL.md: Update layout shell docs (glass bg, backdrop-blur, z-index)
- DESIGN_DIRECTION.md: Update aesthetic direction to SUMI philosophy
- .storybook/preview.tsx: Remove deleted CSS imports, update bg colors
- eslint.config.js: Update color rule message from Kodo to SUMI tokens
- tailwind.config.ts: Fix comment referencing deleted design-tokens.css

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 02:15:11 +01:00
senke
f64a85414c refactor: Phase 1 — SUMI token foundation
- Rewrite index.css with complete SUMI token system (dark + light themes)
- All --sumi-* variables: backgrounds, surfaces, borders, text, pigments,
  spacing, radius, shadows, glass, scrollbar, motion, z-index, layout
- shadcn/Radix semantic mapping (--background, --foreground, etc.)
- Tailwind @theme mapping with new fonts (Inter, Space Grotesk, JetBrains Mono)
- SUMI keyframe animations (sumi-fade-in, sumi-slide-up, sumi-scale-in, etc.)
- Delete 11 redundant CSS files (design-system.css, design-tokens.css,
  button.css, card.css, input.css, badge-avatar.css, header.css,
  fix-input-focus.css, fix-login-form.css, visual-enhancements.css,
  premium-utilities.css)
- Update main.tsx: single CSS import (index.css only)
- Update ThemeProvider: data-theme attribute instead of .dark class toggle
- Update index.html FOUC script: data-theme attribute

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 01:48:01 +01:00
senke
64fbb81ddf ui(design): Phase 3 - rounded tokens, min-w/min-h, stories, NavigationProgress
- rounded-[var(--radius-xl/md/lg/sm)] → rounded-xl, rounded-md, rounded-lg, rounded-sm
- Timeline: min-w-[200px] → min-w-50
- AddEquipmentView, MetadataForm: min-h-[100px] → min-h-25
- NavigationProgress: shadow-[...] → shadow-button-primary-glow
- Stories: ActivityGraph, StatCard, NotificationBell, LoadingState, ScrollArea, Skeleton, FileUploadZone
- Reduced arbitrary values from ~60+ to 11 (5 files, exceptions documented)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 19:24:07 +01:00
senke
4b9d0a341d ui(design): migrate ImageCropper, PlaybackSummary to layout tokens
- ImageCropper: h-[80vh] → h-layout-modal-sm (80vh)
- PlaybackSummary: h-[200px] → min-h-50 (scale Tailwind)
- Add h-layout-modal-sm utility class

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 14:07:19 +01:00
senke
298a90c763 ui(design): migrate layout arbitrary values to tokens - Phase 1
- Add layout tokens: h-layout-chat, h-layout-chat-main, h-layout-stream, h-layout-modal-full
- ChatPage: use h-layout-chat and h-layout-chat-main instead of calc(100vh-6.25rem/6rem)
- LiveStreamDetailView: use h-layout-stream
- Modal full size: use h-layout-modal-full
- ChatRoom empty state: use h-layout-lyrics-sm (50vh)
- ChatInput attachment: min-w-36 instead of min-w-[150px]
- Update DESIGN_TOKENS.md and add AUDIT_UI_SPOTIFY_DISCORD_20260210.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 14:06:30 +01:00
senke
8f525fc8ca docs(ui): document typography utility classes in DESIGN_TOKENS
- Add table for .text-display, .text-heading-1..4, .text-body-lg, .text-body, .text-caption, .text-label
- Update hierarchy section to reference utility classes instead of raw Tailwind

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 09:38:09 +01:00
senke
55c88cd8b4 docs: update UI_QUALITY_LOG with levers 26-28 and session 2 assessment
Document kodo-cyan→primary, kodo-red/lime bg/border variants, and
kodo-gold→warning migrations. Add end-of-session quality assessment
(~80-82% premium) with remaining lever inventory.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 00:21:44 +01:00
senke
c444a6203c docs: update UI_QUALITY_LOG with levers 17-25
Document: empty state batch 2-3, hover transitions, dropdown animation,
and massive token elimination campaign (text-kodo-content-dim,
border-kodo-steel, bg-kodo-steel, text-kodo-secondary, text-kodo-red,
text-kodo-lime, Toast tokens).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 00:15:56 +01:00
senke
633fe7c582 docs: update UI_QUALITY_LOG with session 2 levers 13-16
Document: skeleton shimmer migration (43 files), EmptyState migration,
text-destructive token migration, SearchPageResults/UserCard a11y.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 23:58:01 +01:00
senke
9a0c7643fb docs: update UI_QUALITY_LOG with levers 10-12
Document: PlaylistCard hover fix, Switch/Toast/Spinner design system
migration, and Skeleton shimmer animation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 23:02:05 +01:00
senke
f0d8d5a1e5 docs: add UI_QUALITY_LOG.md tracking premium quality progress
Documents 9 completed levers: contrast improvement, text-[10px] migration,
modal height tokens, shell refinements, player sidebar-awareness,
focus-visible rings, arbitrary value cleanup, scrollbar unification,
and fixDisplayIssues cleanup.

Each entry lists: affected files, visual impact, and risks avoided.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 22:53:34 +01:00
senke
e82560c547 docs: add UI/UX audit reports and design system documentation
- AUDIT_UI_UX_VISUEL_COMPLET.md: comprehensive visual audit with
  structured analysis (shell, rhythm, typography, colors, components,
  motion) and Top 10 improvement roadmap
- UI_UX_AUDIT_DISCORD_SPOTIFY_QUALITY.md: detailed gap analysis vs
  Discord/Spotify with phased action plan
- A11Y_AUDIT.md: accessibility audit baseline
- EMPTY_ERROR_PATTERNS.md: unified empty/error state pattern guide
- codemod-typography-arbitrary.mjs: migration script for text-[10px]

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 22:49:40 +01:00
senke
4305d66aa2 ui(storybook): add allowedHosts config and update DESIGN_TOKENS docs
- .storybook/main.ts: add viteFinal with allowedHosts for veza.fr/com
  domains
- DESIGN_TOKENS.md: document modal max-height tokens and typography
  exceptions (avatar xs text-[10px])
- capture-visual-baseline.mjs: fix locator selectors for sidebar and
  player captures

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 22:49:24 +01:00
senke
39b2b642d2 feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout
Plan UI premium 6–8 semaines (design system, shell, Storybook, a11y):

- Design system: DESIGN_TOKENS.md, APP_SHELL.md, FULL_LAYOUT_PAGE.md. Single source
  for layout/shell (index.css), shadows (design-system.css), durations/easing.
- Tokens: shadow-cover-depth, shadow-gold-glow, shadow-fab-glow; layout max-height
  (max-h-layout-drawer, max-h-layout-panel, max-h-layout-list). All duration-200/300/500
  replaced by --duration-fast/normal/slow. Arbitrary shadows replaced by token classes.
- Shell & player: Sidebar, Header, GlobalPlayer, MiniPlayer, PlayerQueue, PlayerControls,
  AudioPlayer use tokens; focus-visible on Sidebar, PlayerQueue, DropdownMenuTrigger/Item,
  TabsTrigger. Typography: text-[10px]/[9px] → text-xs where applicable.
- ESLint: no-restricted-syntax (warn) for w-/h-/rounded-/shadow-/text-/spacing arbitrary.
- Scripts: report-arbitrary-values.mjs, capture/compare/generate visual; visual-complete.spec.ts.
- Stories full layout: Dashboard, Playlists, Library, Settings, Profile in DashboardLayout.stories.
- .cursorrules + README: DESIGN_TOKENS, APP_SHELL, visual commands, no arbitrary without justification.
- apps/web/.gitignore: e2e test artifacts (test-results-visual, playwright-report-visual).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 17:15:58 +01:00
senke
d2ae91ac25 chore(storybook): improve configuration and cleanup 2026-02-04 00:44:40 +01:00
senke
ef4bae8e8b cleanup: audit TODO comments (Cleanup 13)
- Created TODO_COMMENTS_AUDIT.md documenting findings
- Found 26 TODO/FIXME/XXX/HACK comments total (excluding generated files)
- Categorized: Backend dependencies (preserve), Implementation needed (action), Bugs (fix), Refactor/migration (improve)
- High priority: Fix TwoFactorVerify.tsx authentication bug
- Medium priority: Implement play functionality, fix test issues
- Low priority: Backend-dependent features, architectural improvements
- Cleanup 13: Audit complete - Ready for Cleanup 14
2026-01-16 12:17:10 +01:00
senke
b79fde6513 cleanup: audit and replace console statements with logger (Cleanup 10-12)
- Created CONSOLE_STATEMENTS_AUDIT.md documenting findings
- Found 33 console statements total (excluding generated files)
- Replaced production console.error with logger.error:
  - main.tsx: Initialization error logging
  - config/env.ts: Environment validation error logging
  - OfflineQueueManager.tsx: Queue operation error logging (2 instances)
  - toast.ts: Toast module loading error logging
- Preserved: Logger implementation, test mocks, JSDoc examples, dev-only utilities
- Cleanup 10: Audit complete
- Cleanup 11-12: Replace console.log/error/warn - COMPLETE (production code only)
2026-01-16 12:15:20 +01:00
senke
128e80f9c4 cleanup: audit commented-out code (Cleanup 8)
- Created COMMENTED_CODE_AUDIT.md documenting findings
- Found ~4,329 commented lines total (mostly documentation)
- Actual commented-out code blocks are minimal
- Excluded generated files and documentation comments
- Ready for manual review in Cleanup 9
- Cleanup 8: Complete
2026-01-16 12:12:38 +01:00
senke
479701896b aesthetic-improvements: enhance design direction checklist
- Expanded basic checklist into comprehensive implementation guide
- Added detailed sections: Color (80/20 rule), Spacing (8px grid), Interactions, Visual Elements
- Added component-specific checks: Buttons, Cards, Navigation, Forms, Pages
- Included specific Tailwind classes and values for each check
- Added 'keep vs remove' guidance for hover effects and visual elements
- Added final validation section for overall assessment
- Provides actionable, step-by-step guidance for applying Surgical Minimalism
- Action 11.5.1.2 complete
2026-01-16 10:48:00 +01:00
senke
c34a3d0170 aesthetic-improvements: document Surgical Minimalism design direction
- Created comprehensive design direction document
- Defined 6 core principles: 80/20 color rule, increased whitespace, subtle interactions, gradients used sparingly, 8px grid system, text color hierarchy
- Documented design tokens and color usage guidelines
- Added implementation checklist for applying principles
- Included good vs avoid examples with code snippets
- Documented migration path and references to audit documents
- Aligns with all completed aesthetic improvement actions
- Serves as foundation for future design work
- Action 11.5.1.1 complete
2026-01-16 10:46:34 +01:00
senke
bf56c66190 aesthetic-improvements: audit section spacing across all pages
- Created comprehensive audit document documenting all section spacing values
- Audited 12+ pages: DashboardPage, EducationPage, SettingsPage, QueuePage, GearPage, LivePage, DeveloperPage, SearchPage, ProfilePage, AnalyticsPage, AdminDashboardPage, DesignSystemDemoPage
- Documented spacing patterns: space-y-4 (16px), space-y-6 (24px), space-y-8 (32px), space-y-12 (48px)
- Documented grid gaps: gap-4 (16px), gap-6 (24px), gap-8 (32px)
- Documented page padding: p-6 (24px), p-8 (32px), px-4 py-8 (16px/32px)
- Verified all values align to 8px grid system
- Provided recommendations for increasing whitespace in next action
- Most common spacing: space-y-6 (24px) used in 7+ pages
- Action 11.4.3.2 complete
2026-01-16 10:41:53 +01:00
senke
a32c488378 aesthetic-improvements: verify gradients are only in hero sections
- Created verification document documenting all remaining gradients
- Verified 12 remaining gradients are appropriate:
  - 6 in hero/featured sections (DiscoverView, ProfileView, SocialView, LiveView)
  - 1 functional overlay for text readability
  - 5 decorative elements (icon containers, visualizations)
- Confirmed no gradients on card backgrounds
- All gradients used sparingly and appropriately, aligning with Surgical Minimalism
- Action 11.4.2.2 complete
2026-01-16 10:38:05 +01:00
senke
b2aa689a37 aesthetic-improvements: categorize hover effects as necessary vs excessive
- Enhanced audit document with detailed file-by-file categorization
- Identified 6 high-priority files with multiple excessive effects
- Identified 6 medium-priority files with single excessive effects
- Identified 3 files with mixed effects requiring selective removal
- Categorized ~400 instances as necessary (keep)
- Categorized ~200 instances as excessive (remove)
- Categorized ~150 instances as review (context-dependent)
- Specific patterns identified for removal: scale transforms, decorative shadows, image zooms
- Action 11.4.1.2 complete
2026-01-16 10:31:38 +01:00
senke
2b4383dd6e aesthetic-improvements: audit hover effects across codebase
- Found 887 instances across 239 files
- Categorized into 5 usage types (necessary, excessive, group hover, transitions, opacity)
- Identified excessive patterns: scale transforms, shadow/glow, multiple simultaneous effects
- Documented high-impact files requiring changes
- Current: ~887 effects, Target: reduce by 30-40% (remove decorative, keep interactive)
- Action 11.4.1.1 complete
2026-01-16 10:28:21 +01:00
senke
1ac3ca1f55 aesthetic-improvements: test WCAG AA compliance for all text colors
- Created comprehensive contrast test report
- Tested all text color combinations (white, dim, opacity variants)
- Tested on all 5 background colors (void, ink, graphite, slate, steel)
- All combinations exceed 4.5:1 ratio requirement
- Primary text: 15.9:1 to 20.6:1 (excellent)
- Secondary text: 6.1:1 to 7.8:1 (good)
- Text with opacity: 11.8:1 to 16.2:1 (excellent)
- No violations found - all text meets WCAG AA
- Action 11.1.1.3 complete
2026-01-16 10:18:46 +01:00
senke
e77e71c65a aesthetic-improvements: audit cyan usage across codebase
- Found 965 instances across 217 files
- Categorized into 6 usage types (primary, secondary, decorative, informational, focus, text)
- Created comprehensive audit document with recommendations
- Identified high-impact files for replacement
- Current: ~40% cyan usage, Target: ~20% (80/20 rule)
- Action 11.3.1.1 complete
2026-01-16 10:16:08 +01:00
senke
5558288809 consistency: fix final Tailwind default color instances 2026-01-16 01:59:56 +01:00
senke
de79895e5d consistency: fix remaining Tailwind default colors in auth and features components 2026-01-16 01:59:31 +01:00
senke
00f5712230 consistency: fix remaining Tailwind default color edge cases 2026-01-16 01:58:12 +01:00
senke
01f2acc718 docs: generate comprehensive list of all remaining Tailwind default color instances 2026-01-16 01:51:32 +01:00
senke
24a3141d90 cognitive-load: audit list view usage (Action 10.2.1.1)
- Audited all files with view mode toggle (6 files total)
- Found list view is actively used and is default in 3 contexts:
  - SearchPageView: List is default for search results
  - FileManagerView: List is default for file browsing
  - CloudFileBrowser: List is default for cloud files
- Grid view is default in track browsing contexts (LibraryPage, LibraryManager, ProfileView)
- Recommendation: Keep list view - serves different purposes than grid view
- Created comprehensive audit report: apps/web/docs/LIST_VIEW_USAGE_AUDIT.md
- Includes context-specific analysis and recommendations
2026-01-16 01:38:00 +01:00
senke
7463138b64 consistency: audit button variant usage (Action 9.3.1.1)
- Audited all 9 button variants in design system Button
- Found 5 variants in use (128 total uses):
  - ghost: 71 uses (54.2% - most popular)
  - outline: 36 uses (27.5%)
  - secondary: 13 uses (9.9%)
  - default: 4 uses (3.1%)
  - destructive: 4 uses (3.1%)
- Found 4 unused variants (zero usage):
  - neon, glass, premium, link
- Identified 28 legacy Button uses with variant="primary"
- Created comprehensive audit report: apps/web/docs/BUTTON_VARIANT_USAGE_AUDIT.md
- Includes usage statistics, analysis, and migration strategy
2026-01-16 01:32:40 +01:00
senke
d16f9ed1c5 consistency: audit custom components (Card, Input, Select) (Action 9.2.1.5)
- Audited Card, Input, and Select component implementations
- Identified design system, legacy, and custom components
- Found 4 high-priority issues:
  - UserCard and LicenceCard using invalid variant prop
  - FormField Input using Tailwind default colors
  - FormField Select using native HTML select
- Documented ~8 custom card-like components
- Created comprehensive audit report: apps/web/docs/CUSTOM_COMPONENTS_AUDIT.md
- Includes migration priorities and specific files requiring changes
2026-01-16 01:30:54 +01:00
senke
62e28b8557 consistency: audit custom button implementations (Action 9.2.1.1)
- Scanned 166 files with button elements
- Identified 30+ high-priority custom button implementations
- Documented locations, line numbers, and recommended Button variants
- Created comprehensive audit report: apps/web/docs/CUSTOM_BUTTONS_AUDIT.md
- High priority: Live stream, Dashboard, Social, Admin, Studio, File Manager, Modals
- Includes migration strategy and next steps
2026-01-16 01:28:37 +01:00
senke
39de3542b5 consistency: audit Input component styling (Action 9.5.1.1)
- Created comprehensive INPUT_COMPONENT_STYLING_AUDIT.md
- Documented all 25+ styling classes with categorization
- Identified 5 key issues:
  - Complex focus state (ring + border redundant)
  - Unnecessary backdrop-blur-sm decoration
  - Overly broad transition-all
  - Subtle hover effect
  - Complex border radius
- Analyzed usage: 100+ files import Input component
- Provided Priority 1-3 recommendations for simplification
- Created proposed simplified version with Kodo colors
- Ready for Action 9.5.1.2 (remove unnecessary decorations)
2026-01-16 01:20:06 +01:00
senke
efe961abd1 consistency: audit Tailwind default color usage (Action 9.1.1.2)
- Created comprehensive TAILWIND_COLORS_AUDIT.md documenting all Tailwind default colors
- Found 1,492 instances across 235 files
- Most common: text-gray-* (992), bg-gray-* (146), border-gray-* (107)
- Documented color distribution, top 20 classes, and mapping guide
- Identified top 20 files requiring migration
- Created migration priority guide (High/Medium/Low)
- Documented special cases (test files, component libraries)
- Ready for Action 9.1.1.3 (migration to Kodo colors)
2026-01-16 01:10:57 +01:00
senke
eae943158e docs: audit all mutation buttons (Action 8.3.1.2)
- Created comprehensive audit document: MUTATION_BUTTONS_AUDIT.md
- Identified 28 mutation buttons across 9 categories
- 5 buttons already have loading states (18%)
- 23 buttons missing loading states (82%)
- Categorized by priority: High (8), Medium (11), Low (4)
- Documented existing patterns and recommendations
- Task 8.3.1.2 complete
2026-01-16 00:42:49 +01:00
senke
5c1835186f ui: add hover states and cursor-pointer to high-priority clickable elements (Action 8.2.1.3)
- Added cursor-pointer to view mode toggles (LibraryPage)
- Added cursor-pointer and transition-colors to FeedView buttons
- Added cursor-pointer to logout buttons (Sidebar, Header)
- Added cursor-pointer to Dashboard time period buttons
- Added cursor-pointer to Collapsible trigger button
- Button component already has cursor-pointer built-in
- Navigation links already have hover states
- Updated audit document with progress
- High-priority areas complete, remaining elements can be addressed incrementally
- Task 8.2.1.3 complete
2026-01-16 00:36:35 +01:00