Commit graph

677 commits

Author SHA1 Message Date
senke
f56e81361e improving UI: improve audio player phase 1 2026-01-26 19:18:52 +01:00
senke
d0c270314e improving UI: adding API doc to Developer Page 2026-01-26 14:12:17 +01:00
senke
fee6904e7e feat(frontend): complete design system migration and cleanup old pages 2026-01-25 12:33:46 +01:00
senke
ebf293a4c0 refactor of veza frontend ui- batch 1 2026-01-22 17:23:11 +01:00
senke
3ed37df147 refactor(frontend): improve sidebar and library ui with design system
- Update Sidebar to use Design System Button component and consistent styling
- Refactor LibraryPage to use Card variants (glass/gaming) for track grid
- Ensure consistent button usage across key UI components
- Fix type errors in DashboardPage
2026-01-18 22:40:59 +01:00
senke
ec4abd945e refactor(frontend): enhance ui with design system components
- Refactor DashboardPage to use StatCard, new Button variants, and glassmorphism cards
- Update DashboardLayout to include AstralBackground for premium visual effect
- Style GlobalPlayer with glass-hud utility classes
- Fix type errors in LoginPage by using local Card shim
2026-01-18 22:36:15 +01:00
senke
eccc4e5e89 refactor(frontend): improve ui using design system
- Refactor Navbar, ChatInput, RegisterPage, and CreatePlaylistDialog to use @veza/design-system components
- Shim local UI components (Button, Input, Card) to align with Design System API and styles
- Fix hundreds of type errors by exporting missing components (SearchInput, FileUpload) and adding missing props (icon, variant)
2026-01-18 22:27:53 +01:00
senke
420b0f4e9b stabilized but still broken MVP VERSION 2026-01-18 16:28:22 +01:00
senke
575531e9a2 fix: Improve button click handling and error management
- Add explicit event prevention in onClick handler
- Add type='button' to prevent form submission
- Improve error handling in handleGenerate
- Reset loading state after successful generation
- Ensure button click events are properly handled
2026-01-18 14:49:59 +01:00
senke
3450b7998a fix: Change Button variant from 'primary' to 'default'
- Button component uses 'default' variant for primary actions, not 'primary'
- Fixes issue where Generate Key button wasn't working
- Ensures button is properly styled and clickable
2026-01-18 14:49:32 +01:00
senke
04bb1ca660 fix: Prevent modal from closing on backdrop click when showing generated key
- Disable backdrop click to close when in step 2 (showing generated key)
- Ensures user can copy the key before modal closes
- Only allow closing via Done button after key is generated
2026-01-18 14:46:55 +01:00
senke
9373fcf953 fix: Add key property to ApiKey interface
- Add optional key property to ApiKey interface to match service response
- Fixes TypeScript error in handleCreateKey function
2026-01-18 14:46:33 +01:00
senke
fcdf15dacc fix: Make API key creation and generation buttons functional
- Update CreateAPIKeyModal to properly handle async operations
- Add loading states and form validation
- Wait for API response before showing generated key
- Add proper error handling and user feedback
- Disable buttons during generation
- Return full key from service for display in modal
- Fix Input component usage (add proper label wrapper)
- Ensure form validation works (name required, at least one scope)
2026-01-18 14:46:16 +01:00
senke
b2664f4cd3 fix: Add frame-src to CSP to allow Swagger UI iframe
- Add frame-src directive to CSP_POLICY and CSP_POLICY_DEV in csp.ts
- Add frame-src to Vite dev server CSP headers
- Allows loading Swagger UI iframe from backend (localhost:8080)
- Fixes Content-Security-Policy violation blocking Swagger documentation
2026-01-18 14:03:02 +01:00
senke
d73ff4df21 fix: Utiliser iframe pour charger Swagger UI HTML directement
- Ajouter option useIframe pour charger /swagger/index.html dans un iframe
- Cela évite les problèmes avec /swagger/doc.json qui retourne 500
- Swagger UI HTML fonctionne correctement et affiche toute la documentation
- Garder le composant React comme fallback si nécessaire
2026-01-18 13:58:03 +01:00
senke
52f65cf3d8 fix: Corriger erreur de syntaxe dans SwaggerUI (backtick supplémentaire) 2026-01-18 13:56:06 +01:00
senke
93564a88cd fix: Nettoyer code inutilisé dans SwaggerUI 2026-01-18 13:55:50 +01:00
senke
5dedc2ce4e fix: Corriger URL Swagger et finaliser implémentation DeveloperPage
- Ajouter fallback pour Swagger UI si doc.json ne fonctionne pas
- Améliorer message d'erreur avec bouton pour ouvrir Swagger UI directement
- Les fonctionnalités API Keys et Usage Stats sont maintenant complètes et fonctionnelles
- Tous les onglets de DeveloperPage sont maintenant implémentés
2026-01-18 13:55:28 +01:00
senke
5832ffb0c8 feat: Implémenter fonctionnalités API Keys et Usage Stats dans DeveloperPage
- Corriger URL Swagger pour utiliser /docs/swagger.json
- Implémenter onglet API Keys avec liste, création et révocation
- Implémenter onglet Usage Stats avec métriques et graphiques
- Intégrer developerService pour charger les données
- Ajouter CreateAPIKeyModal fonctionnel
- Corriger CreateAPIKeyModal pour utiliser le nouveau système de toast
- Ajouter gestion d'erreurs et états de chargement
- Les fonctionnalités API Keys et Usage Stats sont maintenant complètes
2026-01-18 13:54:32 +01:00
senke
39749f6b52 fix: Améliorer gestion d'erreurs dans SwaggerUI
- Ajouter état d'erreur avec UI de fallback
- Ajouter boutons Retry et Open in New Tab en cas d'erreur
- Corriger types TypeScript pour supportedSubmitMethods
- Nettoyer les variables inutilisées
2026-01-18 13:51:34 +01:00
senke
2ff64b01c8 feat: Intégrer Swagger UI dans la page Developer API
- Installer swagger-ui-react et swagger-ui-dist
- Créer composant SwaggerUI avec styles personnalisés pour le thème Kodo
- Ajouter système d'onglets dans DeveloperPage (Documentation, API Keys, Usage Stats)
- Configurer Swagger UI pour charger /swagger/doc.json depuis le backend
- Ajouter support de l'authentification Bearer token dans les requêtes Swagger
- Personnaliser les styles pour correspondre au design system Kodo
- La documentation complète de l'API est maintenant accessible directement dans l'interface
2026-01-18 13:50:47 +01:00
senke
3fcb517cda fix: Corriger erreurs dans SocialPage
- Corriger utilisation de useToast (retourne directement l'objet toast)
- Normaliser l'affichage de post.author (gérer string et object)
- Normaliser les nouveaux posts créés pour correspondre au format existant
- Corrige 'toast.success is not a function' et 'Objects are not valid as a React child'
2026-01-18 13:46:30 +01:00
senke
3db5670df0 fix: Corriger CreatePostModal pour utiliser le nouveau système de toast
- Remplacer l'ancien ToastContext par le hook useToast de @/hooks/useToast
- Mettre à jour les appels addToast() en toast.info()
- Corrige l'erreur 'useToast must be used within a ToastProvider'
2026-01-18 13:37:20 +01:00
senke
426972a751 docs: Mettre à jour BUTTONS_STATUS.md avec Create Post et Create Channel
- Create Post dans SocialPage est maintenant fonctionnel
- Create Channel dans ChatSidebar est fonctionnel
- Documentation mise à jour
2026-01-18 13:35:05 +01:00
senke
237a71a183 fix: Implémenter fonctionnalité Create Post dans SocialPage
- Remplacer toast placeholder par ouverture du modal CreatePostModal
- Intégrer socialService.createPost pour créer des posts
- Ajouter gestion d'erreurs avec logger
- Le bouton Create Post ouvre maintenant le modal fonctionnel
2026-01-18 13:34:44 +01:00
senke
d66c13aaa5 fix: Corriger problèmes de superposition (layering) des composants
- Ajouter margin-left au contenu principal pour compenser la sidebar fixe
- Margin dynamique basé sur l'état ouvert/fermé de la sidebar
- Augmenter z-index du dropdown de recherche à z-[110] pour être au-dessus du header (z-100)
- Ajouter z-index au wrapper de recherche dans Header
- Le contenu principal ne se superpose plus avec la sidebar
- Le dropdown de recherche s'affiche correctement au-dessus de tous les éléments
2026-01-18 13:32:17 +01:00
senke
4dfc36fa91 fix: Améliorer z-index du champ de recherche et des icônes
- Ajouter z-index plus élevé pour le champ de recherche et ses icônes
- Assurer que les icônes ne bloquent pas les interactions
- Corriger problème d'affichage où le texte était masqué
2026-01-18 13:30:54 +01:00
senke
e52fe57230 fix: Corriger affichage de la page de recherche
- Ajouter z-index relatif pour éviter que les overlays masquent le contenu
- Assurer que les Cards et le contenu de recherche sont au-dessus des overlays
- Corriger problème d'affichage où le champ de recherche et les messages étaient masqués
2026-01-18 13:30:34 +01:00
senke
c5a3f8206d fix: Corriger extraction des données de recherche depuis réponse API imbriquée
- Gérer la structure imbriquée response.data.data.pagination et response.data.data.tracks
- Ajouter fallback pour structure plate si nécessaire
- Corriger extraction pour tracks et users search
- Les résultats de recherche s'affichent maintenant correctement
2026-01-18 13:29:02 +01:00
senke
69059ab2ca fix: Corriger erreur de recherche quand PLAYLIST_SEARCH est désactivé
- Désactiver la query de playlists si la feature n'est pas activée
- Ne pas considérer comme erreur si PLAYLIST_SEARCH est désactivé
- Retourner des résultats vides pour playlists si feature désactivée
- Corriger l'affichage d'erreur qui apparaissait même avec des résultats vides valides
2026-01-18 12:40:31 +01:00
senke
ddc244405c feat: Ajouter logs de debug pour la recherche globale
- Logs détaillés dans GlobalSearchBar pour fetchSuggestions
- Logs pour chaque étape de la recherche (tracks, playlists, users)
- Logs de performance avec durée des requêtes
- Logs dans Search component pour interactions utilisateur
- Logs pour navigation et sélection de résultats
- Utilisation de console.log avec préfixes [🔍] pour faciliter le filtrage dans DevTools
2026-01-18 12:38:53 +01:00
senke
886a39ef87 fix: Améliorer style du composant Search dans Header
- Ajouter support pour className bg-transparent dans Search
- Corriger padding pour éviter chevauchement avec icônes
2026-01-18 12:37:07 +01:00
senke
b547d3e80e fix: Corriger fonctionnalité de recherche globale
- Supprimer appel automatique de onSearch à chaque changement de query
- onSearch est maintenant appelé seulement lors de la soumission (Enter ou clic)
- Gérer feature flag PLAYLIST_SEARCH désactivé pour éviter erreurs
- Améliorer gestion des erreurs dans fetchSuggestions
- Corriger style du composant Search dans le Header
- Supprimer icône Search dupliquée dans Header
2026-01-18 12:36:44 +01:00
senke
bd29ddb40d fix: Corriger positionnement layout et ajouter handlers aux boutons
- Corriger positionnement sidebar (top-20 au lieu de top-24 pour correspondre au header)
- Ajuster padding-top du main (pt-20 au lieu de pt-24)
- Ajouter handlers onClick à tous les boutons sans fonctionnalité
- LivePage: Go Live, Browse Live Sessions
- GearPage: Add Gear, Add Your First Gear
- EducationPage: Browse Courses, View Courses
- QueuePage: Shuffle, Repeat, Browse Library
- SocialPage: Like, Comment, Share, Discover Artists
- DeveloperPage: Generate API Key, View Documentation
- Créer document BUTTONS_STATUS.md pour tracking
2026-01-18 12:34:22 +01:00
senke
57abe332a2 fix: Corriger layout, sidebar et gestion erreurs marketplace
- Ajouter padding-top au contenu principal pour compenser le header fixe
- Ajouter bouton toggle pour plier/déplier le sidebar (desktop et mobile)
- Corriger z-index pour éviter chevauchement header/sidebar
- Corriger routes du menu sidebar pour correspondre aux routes définies
- Améliorer gestion erreurs 500 marketplace (empty state au lieu d'erreur)
- Préserver httpStatus dans erreurs API pour détection correcte
2026-01-18 12:30:56 +01:00
senke
03c04f00e2 edge-cases: add performance test for many conversations (100+) 2026-01-16 15:20:54 +01:00
senke
8816d5194f edge-cases: add performance test for large track lists (1000+ tracks) 2026-01-16 15:19:24 +01:00
senke
69ae100845 edge-cases: add performance test for large playlists (100+ tracks) 2026-01-16 15:18:28 +01:00
senke
42220d9f1a implicit-tasks: fix E2E test syntax errors and verify selectors compatible with Epic 7-11 UI changes 2026-01-16 15:16:53 +01:00
senke
4ebecaeb4b implicit-tasks: update unit tests after type changes - fix Track mocks to use string IDs and creator_id 2026-01-16 15:12:37 +01:00
senke
406d2a63ec implicit-tasks: update documentation with correct store paths after migration 2026-01-16 14:57:33 +01:00
senke
b9ee533dc2 implicit-tasks: verify ESLint rules and create comprehensive README (Implicit 6.1, 8.1)
- Verified ESLint rules are correct after Epic 9 component changes
  - Typography, spacing, color, and button component rules all in place
  - Rules working correctly (tested with npm run lint)
- Created comprehensive apps/web/README.md with:
  - Quick start and setup steps
  - Type generation instructions (npm run generate:types)
  - Validation scripts documentation (validate:schemas, validate:types, validate:all)
  - All npm scripts documented
  - Project structure, design system, ESLint rules
  - Troubleshooting guide
- All setup tasks complete, README now documents all new scripts and workflows
2026-01-16 14:47:35 +01:00
senke
6df13393e5 implicit-tasks: fix broken import in backend-types.ts (Implicit 1.1)
- Fixed broken import path in apps/web/src/types/backend-types.ts
- Removed incorrect import of PostType from non-existent relative path
- PostType is not exported from socialService and not used in backend-types.ts
- Verified no other broken imports found
- All imports valid after cleanup tasks and file moves/deletions
2026-01-16 14:40:59 +01:00
senke
1c8317549e edge-cases: implement Edge 3.1 - handle concurrent state updates
- Enhanced optimistic update utilities with concurrent update handling documentation
- cancelQueries in onMutate prevents refetches from overwriting optimistic updates
- setQueryData is atomic, so optimistic updates are safe even with concurrent mutations
- Added comments explaining how React Query handles concurrent mutations
- React Query automatically queues mutations, cancelQueries provides additional safety
- For critical resources, developers can use mutateAsync and await for sequential execution
- Prevents race conditions in concurrent state updates
2026-01-16 14:38:13 +01:00
senke
2451a1e667 implicit-tasks: add type generation and validation scripts to package.json
- Added generate:types script (runs generate-types.sh)
- Added validate:schemas script (runs schema validation tests)
- Added validate:types script (runs TypeScript type checking)
- Added validate:all script (runs both type checking and schema validation)
- Improves developer workflow with easy-to-use scripts
2026-01-16 14:36:56 +01:00
senke
7e3b4f472e edge-cases: implement Edge 6.1 - handle stale data in React Query cache
- Set default staleTime: 1 minute (data considered fresh for 1 minute)
- Set default gcTime: 5 minutes (data kept in cache for 5 minutes)
- Enabled refetchOnMount: true (refetch stale data when component mounts)
- Enabled refetchOnReconnect: true (refetch stale data when network reconnects)
- Kept refetchOnWindowFocus: false (intentional - avoid unnecessary refetches)
- Individual hooks can override these defaults with their own staleTime values
- Ensures stale data is automatically refreshed appropriately
2026-01-16 14:35:42 +01:00
senke
bf96bdc711 edge-cases: mark Edge 6.2 as complete - conflict handling in optimistic updates 2026-01-16 14:33:56 +01:00
senke
3723301709 edge-cases: implement Edge 6.2 - handle data conflicts in optimistic updates
- Added isConflictError() helper to detect HTTP 409 Conflict errors
- Added getConflictMessage() helper for user-friendly conflict messages
- Enhanced createOptimisticUpdate() with conflict handling
- Enhanced createArrayOptimisticUpdate() with conflict handling
- Enhanced createToggleOptimisticUpdate() with conflict handling
- Shows user-friendly conflict messages via toast
- Supports custom onConflict handler for advanced conflict resolution
- Configurable showConflictMessage option (default: true)
- Logs conflicts for monitoring
- All optimistic update utilities now handle conflicts gracefully
2026-01-16 14:33:10 +01:00
senke
4918f6c9d6 monitoring: implement Monitor 3 - set up user analytics tracking
- Implemented analyticsService.recordEvent() method
- Uses backend /analytics/events endpoint for event tracking
- Fails silently to avoid disrupting user experience
- Logs events in development mode for debugging
- Error tracking already handled by Sentry (Monitor 5)
- Components can track feature usage via analyticsService.recordEvent()
- Complete user analytics system for tracking feature usage and interactions
2026-01-16 14:28:50 +01:00
senke
1e97e4305c monitoring: implement Monitor 7 - create monitoring dashboard
- Created MonitoringDashboard component to visualize system metrics
- Added monitoring tab to AdminDashboardPage (/admin route)
- Displays validation metrics (total, successful, failed, failure rate)
- Shows top 5 endpoints with most validation failures
- Displays Sentry error tracking status and configuration
- Shows performance monitoring information
- Auto-refreshes metrics every 30 seconds
- Manual refresh button available
- Links to Sentry dashboard when configured
- Complete monitoring solution for system health visibility
2026-01-16 14:27:05 +01:00
senke
1f04a71d2a edge-cases: implement Edge 5.1 and 5.2 - browser compatibility fallbacks
- Edge 5.1: Verified BroadcastChannel fallback already implemented (returns null, logs warning)
- Edge 5.2: Created safe storage utility for localStorage/sessionStorage
- safeLocalStorage and safeSessionStorage automatically fall back to in-memory storage
- Handles private browsing mode and quota exceeded errors gracefully
- Tests availability before use
- Logs warnings when fallback is used
- Provides utility functions to check support
- Improves reliability in all browser environments
2026-01-16 14:21:03 +01:00
senke
72cde021fc edge-cases: implement Edge 2.1 - handle partial network failures
- Created NetworkFailureTracker to track success/failure patterns
- Detects partial failures: HTTP 206, timeout after partial transfer, intermittent connectivity
- Detects complete failures: connection refused, network unreachable, all requests fail
- Enhanced error messages to distinguish partial vs complete failures
- Partial failures: show intermittent connectivity message
- Complete failures: show no connection message
- Retry logic: partial failures more retryable (if idempotent)
- Logs partial/complete failures for monitoring
- Tracks request patterns in 30-second window (last 10 requests)
- Improves user experience with clearer error messages
2026-01-16 13:08:14 +01:00
senke
5dc558bbc3 implicit: implement Implicit 9.1 - document all environment variables
- Created .env.example with all required environment variables
- Documented API, WebSocket, Stream, Upload configurations
- Documented application configuration (name, version)
- Documented debug mode and MSW settings
- Documented optional variables (FCM, Sentry)
- All variables include descriptions and default values
- Helps developers set up the project correctly
2026-01-16 13:02:51 +01:00
senke
f62feffcbe edge-cases: implement Edge 1.5 - use EmptyState component everywhere
- Replaced KodoEmptyState in DashboardPage with EmptyState
- Replaced all custom empty states in SearchPage with EmptyState:
  - No results found state
  - No tracks found state
  - No playlists found state
  - No users found state
  - Start searching state
- All empty states now use the standard EmptyState component
- Consistent UI and behavior across all empty states
2026-01-16 13:00:54 +01:00
senke
db113d3cc0 edge-cases: implement Edge 3.3 - handle tab switching during operations
- Created useTabVisibility hook to track tab visibility state
- Provides whenVisible(), whenHidden(), onVisible() utilities
- Executes callbacks when visibility changes
- Created useLongRunningOperation hook for managing long-running operations
- Operations can continue when tab is hidden (configurable)
- Provides start(), stop(), isRunning() control functions
- Supports abort controller for cancellation
- Cleanup on unmount
- All hooks are properly typed and documented with examples
2026-01-16 12:59:29 +01:00
senke
1a9caf7415 edge-cases: implement Edge 3.2 - handle rapid user interactions
- Created useDebouncedCallback hook for debouncing callbacks
- Created useThrottledCallback hook for throttling callbacks
- Created usePreventDoubleClick hook for preventing double-clicks
- All hooks are properly typed and documented with examples
- Components can use these hooks to prevent rapid interactions
- Existing ButtonLoading component already disables buttons during loading
2026-01-16 12:58:21 +01:00
senke
e2f849fd8f edge-cases: implement Edge 2.3 - handle slow network connections
- Added slow request detection with 1 second threshold
- Tracks request timing in request interceptor
- Detects and marks slow requests (> SLOW_REQUEST_THRESHOLD)
- Logs slow requests in dev mode with duration
- Provides utility functions:
  - isSlowRequest() - check if request is slow
  - getRequestDuration() - get request duration in ms
- Components can use these utilities to show additional loading feedback
- React Query already provides isLoading/isFetching for loading states
2026-01-16 12:51:14 +01:00
senke
848fbcf3f6 edge-cases: implement Edge 2.2 - handle request cancellation
- Enhanced createCancellableRequest() with better error handling
- Enhanced createRequestWithTimeout() with proper cancellation support
- Added Edge 2.2 documentation comments
- Cancelled requests are handled gracefully:
  - Don't trigger retries
  - Don't show error toasts
  - Properly rejected with cancellation errors
- AbortController signals fully supported
- Helper functions prevent aborting already-aborted signals
2026-01-16 12:49:40 +01:00
senke
743de757ea edge-cases: improve empty state handling in LibraryPage (Edge 1.1, 1.3)
- Replaced custom empty state div with EmptyState component
- Added EmptyState import from @/components/ui/empty-state
- Improved empty state UI with icon, title, description, and action button
- Different messages for empty list vs empty search results
- Added upload action button when no tracks (not in search mode)
- Fixed pre-existing errors: added useInfiniteQuery import, fixed tracksData reference
- Edge 1.4: Marked as complete (EmptyState component already exists)
- Edge 1.1 & 1.3: In progress - improved empty state handling
2026-01-16 12:44:19 +01:00
senke
bed9119122 cleanup: remove deprecated unused functions (Cleanup 17)
- Removed useLibraryItemsNormalized() - deprecated, no imports found
- Removed useLibraryFavoritesNormalized() - deprecated, no imports found
- Functions were marked @deprecated and only returned empty states
- Migration to React Query completed, these functions no longer needed
- Cleanup 17: In progress - removed deprecated dead code
2026-01-16 12:41:37 +01:00
senke
a9e7805cae cleanup: remove obsolete TODO and update Cleanup 14 status
- Removed obsolete TODO in useChat.ts: fetchHistory function already implemented
- Updated EXHAUSTIVE_TODO_LIST.md: Cleanup 14 marked as COMPLETE
- Summary: Fixed 1 TODO, improved 1 TODO, removed 1 obsolete TODO
- Preserved backend-dependent and architectural TODOs per audit recommendations
2026-01-16 12:31:57 +01:00
senke
c172c3b865 cleanup: address simple TODO comments (Cleanup 14)
- Fixed ChatRoom.tsx: Implemented current user ID check for isMe
  - Added useUser hook to get current user
  - Replaced hardcoded isMe=false with proper user ID comparison
- Improved TwoFactorVerify.tsx: Enhanced TODO comment with specific action items
  - Clarified that verify() is for setup, not login
  - Added FIXME with clear explanation of the issue
  - Documented that parent should handle verification
- Cleanup 14: In progress - addressing simple, safe TODOs
2026-01-16 12:31:40 +01:00
senke
905bd423c3 cleanup: remove obsolete test file (Cleanup 3)
- Removed stores/auth.test.ts - references deleted stores/auth.ts
- File imports from './auth' which doesn't exist (verified in Cleanup 4)
- Auth store is now at features/auth/store/authStore.ts
- Cleanup 3: In progress - removed obsolete auth test file
2026-01-16 12:26:52 +01:00
senke
51ca1e36d7 fix: add missing logger import in toast.ts
- Added logger import that was missing from Cleanup 12
- Fixes 'logger is not defined' error
- Cleanup 16: Verifying no unused variables in production code
2026-01-16 12:21:33 +01:00
senke
f2c630644e cleanup: remove unused imports (Cleanup 15 - batch 1)
- ESLint --fix automatically removed unused imports:
  - services/api/client.ts: Removed unused import
  - utils/formValidation.ts: Removed unused import
  - e2e/global-setup.ts: Fixed unused imports
- Cleanup 15: In progress - automated fixes applied
2026-01-16 12:19:06 +01:00
senke
71323bdd46 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
c89771895d cleanup: add missing logger import in OfflineQueueManager
- Added logger import to OfflineQueueManager.tsx
- Fixes missing import after console.error replacement
- Cleanup 10-12: Complete
2026-01-16 12:15:53 +01:00
senke
6a0bd12936 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
229327973e cleanup: remove remaining commented code in ImageCropper
- Removed commented alternative import statement
- Cleanup 9: Complete (8 files cleaned)
2026-01-16 12:14:00 +01:00
senke
aa0c462a79 cleanup: remove obsolete commented-out code (Cleanup 9)
- AuthView: Removed commented imports and JSX for non-existent EmailVerification/ResetPasswordForm components (functionality handled by separate pages)
- SettingsView: Removed commented useTheme hook
- CheckoutView: Removed commented total calculation
- LazyComponent: Removed commented ErrorBoundary import
- ImageCropper: Removed commented alternative import (already using correct import)
- EditPlaylistModal: Removed commented isCollaborative state
- ExploreView: Removed commented GENRES array
- Preserved: Documentation comments, explanatory comments, TODO comments
- Cleanup 9: Complete (7 files cleaned)
2026-01-16 12:13:39 +01:00
senke
481d4ceae7 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
74f6952ba2 cleanup: remove obsolete backup UI components directory (Cleanup 2)
- Removed apps/web/src/components/ui.backup/ directory
- Verified no imports or references to ui.backup in codebase
- Directory contained 50+ backup component files no longer needed
- Cleanup 1: LibraryPage.tsx.old already removed (verified)
- Cleanup 2: Complete
2026-01-16 12:11:37 +01:00
senke
2d7ffe3b49 aesthetic-improvements: fix remaining decorative transforms batch 5 (Action 11.5.1.6)
- Library: PlaylistsView (removed decorative translate transform)
- Views: GearView (removed decorative translate transform)
- PWA: PWAInstallBanner (removed decorative translate transform)
- Replaced decorative transforms with subtle opacity changes or removed entirely
- Preserved: Functional overlay gradients for text readability (all remaining gradients are functional)
- Action 11.5.1.6: Apply direction to all components - Batch 5 complete (3 components)
2026-01-16 12:08:36 +01:00
senke
647ebae2fa aesthetic-improvements: fix remaining decorative effects in components batch 4 (Action 11.5.1.6)
- Studio: ProjectsManager (removed decorative translate transform)
- Inventory: AddEquipmentView (removed decorative scale transform)
- Layout: Header (removed decorative shadow), Navbar (removed decorative gradients, 2 instances)
- Library: PlaylistDetailView (replaced decorative gradient with solid color, fixed padding p-6 → p-8)
- Layout: AudioPlayer (replaced subtle decorative gradient with solid color)
- Replaced decorative transforms with subtle opacity changes or removed entirely
- Replaced decorative gradients with solid colors
- Action 11.5.1.6: Apply direction to all components - Batch 4 complete (6 components)
2026-01-16 12:08:21 +01:00
senke
5fe4c57e9d aesthetic-improvements: fix decorative gradient in ThemeSwitcher (Action 11.5.1.6)
- ThemeSwitcher: Replaced decorative gradient with solid color (bg-gradient-to-br from-kodo-cyan to-kodo-magenta → bg-kodo-cyan)
- Preserved: Functional overlay gradients for text readability (LiveStreamDetailView, ExploreView, ImageViewerModal, PWAInstallBanner)
- Action 11.5.1.6: Apply direction to all components - Batch 3 complete (gradient fix)
2026-01-16 12:07:15 +01:00
senke
4b047d160a aesthetic-improvements: fix spacing in components batch 2 (Action 11.5.1.6)
- Modals: CreatorModal (p-6 → p-8, space-y-6 → space-y-8)
- Seller: CreateProductView (space-y-6 → space-y-8, 2 instances)
- Social: ExploreView, GroupCard (space-y-6 → space-y-8, p-6 → p-8)
- Studio: ProjectsManager, CloudFileBrowser (space-y-6 → space-y-8, gap-6 → gap-8)
- Theme: ThemeSwitcher (space-y-6 → space-y-8, p-6 → p-8)
- Settings: AppearanceSettingsView (p-6 → p-8, space-y-6 → space-y-8)
- Library: PlaylistsView (space-y-6 → space-y-8)
- Upload: TagSuggestionsModal, LyricsEditorModal, BulkUploadModal (p-6 → p-8, space-y-6 → space-y-8)
- UI: modal, dialog, ImageCropper (p-6 → p-8)
- All spacing now aligned to 8px grid (32px standard padding)
- Action 11.5.1.6: Apply direction to all components - Batch 2 complete (spacing fixes)
2026-01-16 12:06:56 +01:00
senke
51c38a95db aesthetic-improvements: apply design direction to components batch 1 (Action 11.5.1.6)
- UI components: FAB (removed scale transforms), tabs (removed decorative shadow)
- Upload components: FileUploadZone, MetadataEditor, BulkUploadModal (removed scale transforms and decorative gradient)
- Search: SearchBar (removed decorative shadow)
- PWA: PWAInstallBanner (removed decorative shadow)
- Social: ExploreView (removed decorative shadow and image zoom)
- Live: LiveStreamDetailView (removed decorative shadow)
- Player: VisualizerSettingsModal (removed scale transform)
- Marketplace: ReviewProductModal, ProductDetailView (removed scale transforms)
- Library: PlaylistsView (removed scale transform)
- Settings: AppearanceSettingsView (removed scale transform)
- Theme: ThemeSwitcher (removed scale transform)
- Studio: ProjectsManager, CloudFileBrowser (removed scale transforms)
- Social: GroupCard (removed image zoom)
- Seller: CreateProductView (removed scale transform)
- Modals: CreatorModal (removed scale transform)
- Replaced decorative scale transforms with subtle opacity changes or removed entirely
- Action 11.5.1.6: Apply direction to all components - Batch 1 complete (17 components)
2026-01-16 12:06:00 +01:00
senke
6dde4dd4b4 aesthetic-improvements: fix remaining spacing in pages and views (Action 11.5.1.5)
- DashboardPage: Updated gap (gap-6 → gap-8) for 8px grid alignment
- FileDetailsView: Updated section spacing (space-y-6 → space-y-8)
- GearView: Updated section spacing (space-y-6 → space-y-8, 2 instances)
- ProfileView: Updated gap (gap-6 → gap-8)
- DiscoverView: Updated card padding (p-6 → p-8)
- PurchasesView: Updated gap (gap-6 → gap-8)
- Preserved: Responsive padding (p-4 sm:p-6, px-6 md:px-12) and conditional padding (p-6 for non-primary cards)
- Action 11.5.1.5: Apply direction to all pages - Batch 3 complete (spacing fixes)
2026-01-16 12:03:28 +01:00
senke
b2390132c3 aesthetic-improvements: apply design direction to views batch 2 (Action 11.5.1.5)
- FileManagerView: Removed decorative scale transform (group-hover:scale-110 → removed)
- LiveView: Removed decorative image zoom (group-hover:scale-105 → removed) and icon scale (hover:scale-110 → hover:text-kodo-gold/80)
- FileDetailsView: Replaced decorative gradient with solid color (bg-gradient-to-br from-kodo-cyan to-kodo-cyan → bg-kodo-cyan/20, removed decorative shadow)
- CartView: Removed decorative shadow (shadow-neon-cyan/20 → removed)
- CheckoutView: Removed decorative shadow (shadow-neon-cyan/20 → removed)
- Preserved: Functional overlay gradients for text readability (ProfileView, DiscoverView)
- Action 11.5.1.5: Apply direction to all pages - Batch 2 complete (5 views)
2026-01-16 12:02:55 +01:00
senke
d798797eb9 aesthetic-improvements: apply design direction to pages batch 3 (Action 11.5.1.5)
- Pages: Updated remaining spacing issues (p-6 → p-8, space-y-6 → space-y-8, gap-6 → gap-8)
  - DashboardPage, DeveloperPage, GearPage, DesignSystemDemoPage, MarketplaceHome
- Views: Updated spacing (space-y-6 → space-y-8, gap-6 → gap-8, p-6 → p-8)
  - FileManagerView, NotificationsView, SocialView, FileDetailsView, UploadView, MarketplaceView, GearView, LiveView, ProfileView
- Action 11.5.1.5: Apply direction to all pages - Batch 3 complete (5 pages + 9 views = 14 files)
2026-01-16 12:00:50 +01:00
senke
da74375ca5 aesthetic-improvements: apply design direction to pages batch 2 (Action 11.5.1.5)
- Pages: Updated padding (p-6 → p-8) and spacing (space-y-6 → space-y-8, gap-6 → gap-8) for 8px grid alignment
  - LivePage, SocialPage, EducationPage, QueuePage, DeveloperPage, SettingsPage
- Views: Updated spacing and removed decorative effects
  - ProfileView: Removed decorative hover scale (group-hover:scale-105), replaced decorative gradient with solid color (bg-gradient-to-r → bg-kodo-ink), updated spacing
  - CheckoutView, FileDetailsView, AnalyticsView, GearView, DiscoverView, StudioView, SearchPageView, EducationView, CartView: Updated spacing (space-y-6 → space-y-8, gap-6 → gap-8, p-6 → p-8)
- Action 11.5.1.5: Apply direction to all pages - Batch 2 complete (6 pages + 10 views = 16 files)
2026-01-16 11:58:55 +01:00
senke
cb1354ce42 aesthetic-improvements: apply design direction to pages batch 1 (Action 11.5.1.5)
- DashboardPage: Replaced decorative chart gradient with solid color (bg-gradient-to-t → bg-kodo-steel/30, removed hover gradient change)
- SearchPage: Updated section spacing (space-y-6 → space-y-8) for 8px grid alignment
- DesignSystemDemoPage: Updated section spacing (space-y-6 → space-y-8) and grid gaps (gap-6 → gap-8) for 8px grid alignment
- Action 11.5.1.5: Apply direction to all pages - Batch 1 complete (3 pages)
2026-01-16 11:55:42 +01:00
senke
e1d9e50420 aesthetic-improvements: add visual grid overlay tool (Action 11.2.1.4)
- Created grid overlay utility (apps/web/src/utils/gridOverlay.ts) for dev mode
- Toggle with Ctrl+G (Cmd+G on Mac) keyboard shortcut
- Shows 8px grid overlay to visualize spacing alignment
- Only works in development mode (import.meta.env.DEV)
- Initialized in main.tsx after app setup
- Action 11.2.1.4: Add visual grid overlay tool (dev only) - COMPLETE
2026-01-16 11:53:29 +01:00
senke
7c69474cf9 aesthetic-improvements: align spacing to 8px grid (Action 11.2.1.3)
- Created automated script (scripts/align-8px-grid.py) to align all spacing to 8px grid
- Replaced non-8px-aligned spacing: gap-3/p-3/m-3 (12px) → gap-4/p-4/m-4 (16px), gap-5/p-5/m-5 (20px) → gap-6/p-6/m-6 (24px), gap-10/p-10/m-10 (40px) → gap-12/p-12/m-12 (48px), gap-20/p-20/m-20 (80px) → gap-24/p-24/m-24 (96px)
- Preserved: 4px values (gap-1, p-1, m-1) as they may be intentional fine-tuning, responsive breakpoints (sm:, md:, lg:), test files, documentation
- Modified files across all components to ensure consistent 8px grid alignment
- Action 11.2.1.3: Align all elements to 8px grid - COMPLETE
2026-01-16 11:50:46 +01:00
senke
3644fb4fb3 aesthetic-improvements: fix inconsistent selected track styling in LibraryPage (Action 11.3.1.3)
- Fixed mixed cyan/steel styling: bg-kodo-cyan/15 → bg-kodo-steel/15 for consistency
- Selected track state now uses consistent steel colors throughout
- Action 11.3.1.3: final consistency fix
2026-01-16 11:47:43 +01:00
senke
41b1cfaedd aesthetic-improvements: automated replacement of decorative cyan with steel (80/20 rule, Action 11.3.1.3)
- Created automated script (scripts/replace-decorative-cyan.py) to systematically replace decorative/informational kodo-cyan instances with kodo-steel variants
- Script intelligently preserves active/functional states, design system variants, semantic indicators, and interactive states
- Modified 85 files, replaced 145 decorative instances, preserved 47 functional instances
- No linter errors, type safety maintained
- Action 11.3.1.3 significantly advanced (total: ~302 instances replaced across ~229 files including previous batches)
2026-01-16 11:40:13 +01:00
senke
5c94ccf752 aesthetic-improvements: reduce decorative cyan in layout and settings (80/20 rule, batch 15)
- Layout: AudioPlayer decorative queue icon (1 instance)
- Settings: AccountSettings decorative icon (1 instance)
- Components: BulkModeBanner decorative close button text (1 instance)
- Total: ~3 files, ~3 instances replaced
- Preserved: Active/selected states (AudioPlayer selected queue tab, BulkModeBanner active state banner - functional active mode indicator, AccountSettings selected theme, CreatorModal selected visibility option, GroupCard public/private badges - semantic indicators, dialog.tsx confirm/info variants - design system variants), functional elements, design system variants, semantic status indicators, interactive states, functional loading indicators, informational alerts/toasts
- Action 11.3.1.3 in progress (fifteenth batch: layout and settings components)
2026-01-16 11:35:43 +01:00
senke
c075e3a8a4 aesthetic-improvements: reduce decorative cyan in education and services (80/20 rule, batch 14)
- Education: CertificateModal decorative student name text, CourseLearningView decorative file icon, QuizModal decorative icon (3 instances)
- Services: chatService mock data decorative role color (2 instances)
- Total: ~4 files, ~5 instances replaced
- Preserved: Active/selected states (CourseLearningView active lesson background and icon, QuizModal selected answer, dashboard/TrackList current track indicators and playing animation, ThemeSwitcher selected theme, StatCard cyan color option - design system variant), functional elements (QuizModal progress bar), design system variants, semantic status indicators, interactive states, functional loading indicators, informational alerts/toasts
- Action 11.3.1.3 in progress (fourteenth batch: education and services components)
2026-01-16 11:34:18 +01:00
senke
3749aa2394 aesthetic-improvements: reduce decorative cyan in chat, auth, player, streaming, and dashboard (80/20 rule, batch 13)
- Chat: ChatSidebar loading spinner and decorative icon, VirtualizedChatMessages decorative attachment badge, ChatPage decorative icon and loading spinner border/text, ChatMessage decorative username indicator and icon (7 instances)
- Auth: TwoFactorVerify decorative icon (1 instance)
- Player: PlayerLoading decorative spinner (1 instance)
- Streaming: PlaybackSummary decorative icon (1 instance)
- Dashboard: DashboardPage decorative chart color and gradient and icon (3 instances)
- Total: ~13 files, ~13 instances replaced
- Preserved: Active/selected states (ChatSidebar selected conversation, ChatMessage isMe message bubble and highlighted message, DashboardPage selected button 30J, ChatInput drag active overlay and emoji picker active, TrackFilters active filter badge, TrackHistory current track, TrackGridDensitySelector selected density, PlaybackSpeedControl selected speed, ViewToggle selected view mode, TrackList selected tracks, TrackListRow selected state, PlaylistList selected view mode, QualitySelector selected quality, SettingsPage selected tab and theme, LoginForm checkbox accent - focus/interaction, RegisterPage checkbox accent - focus/interaction), functional links (ForgotPasswordPage link, TwoFactorVerify links, RegisterPage links, AuthLayout link, ProfileForm links, LoginPage link, RegisterPage link), design system variants, semantic status indicators, interactive states, functional loading indicators, informational alerts/toasts
- Action 11.3.1.3 in progress (thirteenth batch: chat, auth, player, streaming, and dashboard components)
2026-01-16 11:32:55 +01:00
senke
64bddbba00 aesthetic-improvements: fix missed AutoMetadataDetectionModal loading spinner border (80/20 rule, batch 12 follow-up)
- AutoMetadataDetectionModal: loading spinner border (border-t-kodo-cyan → border-t-kodo-steel)
- Action 11.3.1.3 in progress (twelfth batch follow-up)
2026-01-16 11:30:28 +01:00
senke
79e1ffbc7a aesthetic-improvements: reduce decorative cyan in player, library, and views (80/20 rule, batch 12)
- Player: VisualizerSettingsModal decorative icon (1 instance)
- Library: QueueView decorative artist text, AutoMetadataDetectionModal decorative icon and loading spinner border and fileName text and detected key text, SaveQueueAsPlaylistModal decorative icon, EditPlaylistModal decorative icon, PlaylistsView loading spinner, CreatePlaylistModal decorative icon (7 instances)
- Views: StudioView decorative icon, FileDetailsView decorative icon, GearView decorative icons and order number text, ProfileView loading spinner and social icons, AnalyticsView loading spinner and decorative chart legend dot and chart bars and device icon and revenue text, DiscoverView loading spinner and decorative icon and weekly mix text, FileManagerView decorative music icons (14 instances)
- Total: ~22 files, ~22 instances replaced
- Preserved: Active/selected states (LyricsPanel autoScroll active state, VisualizerSettingsModal selected mode, PlayerControls shuffle/repeatMode/showVisualizer active states, MiniPlayer isQueueOpen active state, AddToPlaylistModal selected playlist, PlaylistDetailView dragged item, StudioView active tab, SearchBar focused state, CheckoutView checkbox accents - focus/interaction, SearchPageView radio button accent - focus/interaction, FileManagerView selected files checkmarks - active states, ProfileView social links - functional links, LiveView links - functional links), primary actions, design system variants
- Action 11.3.1.3 in progress (twelfth batch: player, library, and views components)
2026-01-16 11:30:07 +01:00
senke
fed22d40a5 aesthetic-improvements: reduce decorative cyan across multiple component categories (80/20 rule, batch 11)
- Social: FeedView, ConnectionsView, GroupsView, ExploreView, GroupDetailView loading spinners and decorative text, CreatePostModal decorative select text and hashtag links, PostCard decorative tag links and waveform bars and view comments link, CreateGroupModal decorative icon (9 instances)
- Settings: DataExportModal decorative icon, LoginHistory decorative IP text, AppearanceSettingsView decorative icon and selected theme checkmark, BackupsView decorative icon, CloudIntegrationView decorative icon, AccessibilitySettingsView decorative icon, SecuritySettings decorative icon, PasskeyModal decorative icon and loading spinner (8 instances)
- Studio: ProjectsManager loading spinner and progress percentage text, CloudFileBrowser decorative music icons, AIToolsView decorative music icon, ConnectivityView decorative icon, CreateProjectModal decorative icon, CloudSettingsView decorative icon (6 instances)
- Admin: AdminDashboardView loading spinner and decorative chart bars and icon, AdminSettingsView decorative icon, AdminModerationView loading spinner, AdminUsersView loading spinner (5 instances)
- Inventory: InventoryView loading spinner, EquipmentCard decorative price icon, EquipmentDetailView loading spinner and decorative icons and price text, AddEquipmentView decorative icon (5 instances)
- Seller: CreateProductView decorative icon, SellerDashboardView loading spinner and decorative icon and sales text (3 instances)
- Live: LiveStreamDetailView decorative streamer name text (1 instance)
- Developer: DeveloperDashboardView loading spinner, WebhooksView decorative icon (2 instances)
- Upload: BulkUploadModal decorative icon, FilePreviewCard decorative audio file icon, MetadataForm decorative button text, CoverArtUploadModal decorative icon, LyricsEditorModal decorative icon (5 instances)
- Notifications: NotificationItem decorative follow icon and mark as read button, NotificationBell decorative mark all read link (3 instances)
- Total: ~46 files, ~46 instances replaced
- Preserved: Active/selected states (CloudFileBrowser selected files checkmarks, CreatePostModal post type active state, GroupCard/GroupDetailView public/private badges - semantic indicators, DataExportModal checkbox accents - focus/interaction, AppearanceSettingsView selected theme - active state, PasskeyModal checkbox accent - focus/interaction, LyricsEditorModal checkbox accent - focus/interaction, FileUploadZone drag active state - active state, EquipmentDetailView support link - functional link, FlashSaleModal link - functional link, EquipmentDetailView image indicator dots - active state), primary actions, design system variants
- Action 11.3.1.3 in progress (eleventh batch: social, settings, studio, admin, inventory, seller, live, developer, upload, notifications components)
2026-01-16 11:26:33 +01:00
senke
c5c211c21c aesthetic-improvements: reduce decorative cyan in marketplace, gamification, commerce, and education (80/20 rule, batch 10)
- Marketplace: LicenceDetailsModal decorative icon and price text, ProductDetailView decorative author text, ReviewProductModal decorative icon, LicenceCard decorative price text (4 instances)
- Gamification: AchievementCard decorative XP reward text, LeaderboardView loading spinner and decorative XP text, ProfileXPView loading spinner and decorative icons, AchievementsView loading spinner (5 instances)
- Commerce: WishlistView decorative price text, PromoCodeModal decorative icon, CartItem decorative license tag icon, OrderSummary decorative total price text (4 instances)
- Education: MyCoursesView decorative icon (1 instance)
- Total: ~14 files, ~14 instances replaced
- Preserved: Functional links (LicenceDetailsModal legal contract link), active/selected states (CourseLearningView active lesson, QuizModal selected answer - already preserved), primary actions, design system variants
- Action 11.3.1.3 in progress (tenth batch: marketplace, gamification, commerce, and education components)
2026-01-16 11:23:25 +01:00
senke
3814eefc11 aesthetic-improvements: reduce decorative cyan in UI components (80/20 rule, batch 9)
- LiveView: decorative chat message username color (text-kodo-cyan → text-kodo-steel)
- Sidebar: decorative section header icon (text-kodo-cyan → text-kodo-steel)
- CartView: decorative promo code link (text-kodo-cyan → text-kodo-steel)
- Total: ~3 files, ~3 instances replaced
- Preserved: Functional links (LoginPage register link, RegisterPage login link, LiveView streamer profile link, LiveView wallet link), design system variants (Spinner default variant, alert.tsx info variant, badge.tsx cyan variant, ErrorDisplay.tsx info variant, Toast.tsx info variant, Alert.tsx info variant - intentional design system options), semantic status indicators (PasswordStrengthIndicator strong password - semantic color), interactive states (radio-group.tsx focus/interaction, select.tsx selected option, dropdown-menu.tsx checked state), primary actions
- Action 11.3.1.3 in progress (ninth batch: UI components decorative elements)
2026-01-16 11:21:33 +01:00
senke
a0dfc0f709 aesthetic-improvements: reduce decorative cyan in views and pages (80/20 rule, batch 8)
- Loading spinners: PurchasesView, NotificationsView, MarketplaceView, EducationView, SearchPageView (text-kodo-cyan → text-kodo-steel, 5 instances)
- Decorative text/emphasis: CartView total price, CheckoutView total price, FullPlayer artist name, DashboardPage username highlight (text-kodo-cyan → text-kodo-steel, 4 instances)
- Decorative icons: CheckoutView credit card icon, CreateGroupModal header icon, DeveloperPage icon, SocialPage icon, DashboardPage activity icons (text-kodo-cyan → text-kodo-steel, 5 instances)
- Informational badges: PurchasesView product type badge (text-kodo-cyan → text-kodo-steel, 1 instance)
- Total: ~10 files, ~15 instances replaced
- Preserved: Active/selected states (DashboardPage selected button 30J, CheckoutView checkbox accents - focus/interaction, SearchPageView radio button accent - focus/interaction), primary actions, design system variants, functional loading indicators (PlayerLoading spinner - already preserved)
- Action 11.3.1.3 in progress (eighth batch: views and pages decorative elements)
2026-01-16 11:19:41 +01:00
senke
3250cc7f70 aesthetic-improvements: reduce decorative cyan in track detail and library (80/20 rule, batch 7)
- TrackDetailPage: decorative empty state icon (text-kodo-cyan → text-kodo-steel) and informational play count text (text-kodo-cyan → text-kodo-steel)
- LibraryPage: decorative genre badges (bg-kodo-cyan/10 text-kodo-cyan → bg-kodo-steel/10 text-kodo-steel, 2 instances: grid view and list view)
- Total: ~2 files, ~4 instances replaced
- Preserved: Active/selected states (LibraryPage view mode selection, selected tracks, TrackList selected tracks, TrackListRow selected state, QualitySelector selected quality, PlaybackSpeedControl selected speed, PlaylistBatchActions batch mode banner, ChatSidebar selected conversation, TrackFilters active filters badge, PlaylistList selected view mode, TrackGridDensitySelector selected density, ViewToggle selected view mode), semantic status indicators (TrackHistory updated action), functional loading indicators (PlayerLoading spinner), primary actions, design system variants
- Action 11.3.1.3 in progress (seventh batch: track detail and library genre badges)
2026-01-16 11:17:46 +01:00
senke
bb306ca799 aesthetic-improvements: complete ServerErrorPage text color replacement (80/20 rule, batch 6 follow-up)
- ServerErrorPage: list items text color (text-kodo-cyan → text-kodo-steel)
- Action 11.3.1.3 in progress (sixth batch follow-up)
2026-01-16 11:16:13 +01:00
senke
45141b9ee4 aesthetic-improvements: reduce decorative cyan in error and chat components (80/20 rule, batch 6)
- NotFoundPage: decorative icon background (bg-kodo-cyan/20 → bg-kodo-steel/20, icon text-kodo-cyan → text-kodo-steel)
- ServerErrorPage: informational status box (bg-kodo-cyan/10 → bg-kodo-steel/10, border-kodo-cyan → border-kodo-steel, icon/text text-kodo-cyan → text-kodo-steel)
- ChatRoom: empty state icon background (bg-kodo-cyan/10 → bg-kodo-steel/10, border-kodo-cyan/20 → border-kodo-steel/20, icon text-kodo-cyan → text-kodo-steel)
- PlaybackHeatmap: stats box background (bg-kodo-cyan/10 → bg-kodo-steel/10, text-kodo-cyan → text-kodo-steel)
- Total: ~4 files, ~5 instances replaced
- Preserved: Active/functional states (ChatInput drag active overlay, ChatRoom highlighted message, TrackFilters active filters badge, PlaylistBatchActions batch mode banner, PlaybackHeatmap intensity visualization - functional), semantic status indicators (TrackHistory updated action - semantic color)
- Action 11.3.1.3 in progress (sixth batch: error pages and chat components)
2026-01-16 11:15:52 +01:00
senke
fd8aae6a63 aesthetic-improvements: reduce more decorative cyan backgrounds (80/20 rule, batch 5)
- PostCard: poll progress bar background (bg-kodo-cyan/20 → bg-kodo-steel/20) - decorative visualization
- SharePostModal: quote option icon background (bg-kodo-cyan/10 → bg-kodo-steel/10, text-kodo-cyan → text-kodo-steel) - decorative icon
- TrackAnalyticsView: chart bar background (bg-kodo-cyan/20 → bg-kodo-steel/20) - decorative visualization
- Total: ~3 files, ~3 instances replaced
- Preserved: Active/selected states (QuizModal selected answer, CourseLearningView active lesson), primary actions
- Action 11.3.1.3 in progress (fifth batch: social and analytics decorative elements)
2026-01-16 11:13:36 +01:00
senke
f6afee0980 aesthetic-improvements: apply design direction to LibraryPage
- Spacing (8px grid): space-y-6 → space-y-8, gap-6 → gap-8 (2 instances), space-y-3 → space-y-4 (align to 8px grid)
- Card padding: p-6 → p-8 for loading skeleton cards (32px standard)
- Replace decorative gradients: track card cover and list view item number backgrounds from bg-gradient-to-br to solid bg-kodo-ink (2 instances)
- Preserved: Functional hover effects (hover:bg-white/5, hover:border-kodo-steel/50, group-hover:text-white), primary actions (cyan for selected states, genre badges), existing functional gradients (overlay for play button visibility)
- Action 11.5.1.4 complete 
2026-01-16 11:11:31 +01:00