senke
b04336129a
ui(components): migrate remaining 27 skeleton files to Skeleton shimmer
...
Complete the migration of all inline `animate-pulse bg-muted` patterns
to the shared `<Skeleton>` component with premium shimmer animation.
Covers: UserProfilePage, SearchPage, CourseDetailView, ProductDetailView,
NotificationsPage, ChatMessages, SessionsPage, RegisterPage, AudioPlayer,
DataList, AccountSettings, Dialog, CourseLearningView, TwoFactorSetup,
ProjectsManager, GoLiveView, ConnectivityView, AIToolsView,
CloudSettingsView, EquipmentDetailView, NotificationMenu, PlaybackHeatmap,
ProjectDetailView, AvatarUpload, ShareLinkManager, OptimizedImage, BlurPlaceholder.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 23:21:33 +01:00
senke
83edd463c6
ui(a11y): add focus-visible ring to 16 interactive components
...
Add consistent focus-visible:ring-2 focus-visible:ring-ring pattern to
elements using role="button" / tabIndex={0} that lacked visible focus
indicators.
Affected: TrackCard, 2FA setup steps, ProjectsManager cards,
NotificationMenuItem, SelectOptionItem, DropdownMenuItem,
ConversationItem, VirtualizedChatMessageItem, GearInventoryGrid,
UploadModal, SearchPageResults, SocialViewFeedItem, SocialViewSidebar,
FileManagerViewTable.
Improves keyboard navigation across the application.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 22:48:24 +01:00
senke
a2f4fb228c
style: fix leftover kodo tokens in ProjectDetailView, ProductDetailView, CourseDetailView, UploadViewStepper
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 15:08:19 +01:00
senke
66b2fb2cfb
style(studio): elevate ProjectDetailView to SaaS Premium
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 15:01:03 +01:00
senke
c087ecc597
style(studio): fix ConnectivityViewWebhooks leftover kodo tokens
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 14:54:17 +01:00
senke
0ca12c33bf
style(studio): elevate ProjectsManager to SaaS Premium
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 14:41:25 +01:00
senke
94b840b996
style(studio): elevate CreateProjectModal to SaaS Premium
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 14:40:07 +01:00
senke
bbe16acb6a
style(studio): elevate GoLiveView to SaaS Premium
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 14:39:24 +01:00
senke
f08573e97f
style(studio): elevate ConnectivityView to SaaS Premium
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 14:38:15 +01:00
senke
11ef2affb9
style(settings,studio): remove remaining kodo in EditProfileIdentityCard and AIToolsViewSkeleton
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 14:37:35 +01:00
senke
8d9b897641
style(studio): elevate AIToolsView to SaaS Premium
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 14:25:23 +01:00
senke
abaf72f2ab
style(studio): elevate CloudSettingsView to SaaS Premium
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 14:25:20 +01:00
senke
225149dc17
refactor(studio): CloudSettingsView module, re-export, stories
...
- Module cloud-settings-view: types, useCloudSettingsView, Quota,
Preferences, Skeleton, orchestrator CloudSettingsView
- Re-export from CloudSettingsView.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:11:33 +01:00
senke
a18aea7174
refactor(studio): AIToolsView module, re-export, stories
...
- Module ai-tools-view: types, constants (AI_TOOLS), useAIToolsView,
ToolGrid, Workspace, Skeleton, orchestrator AIToolsView
- Re-export from AIToolsView.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page,
no local ToastProvider (use StorybookDecorator)
- Fix: text-[10px] -> text-xs, min-h-[400px] -> min-h-layout-page-sm
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:07:05 +01:00
senke
502b62f364
refactor(studio): ConnectivityView module, re-export, stories
...
- Module connectivity-view: types, useConnectivityView, WebDAV, Webhooks,
Skeleton, orchestrator ConnectivityView
- Re-export from ConnectivityView.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page
- Fix: text-[10px] -> text-xs (Mount Password hint)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:02:00 +01:00
senke
98480c347a
refactor(studio): GoLiveView module, re-export, stories
...
- Module go-live-view: types, useGoLiveView, Header, Preview, StreamInfo,
EncoderSetup, QuickInstructions, MicLevel, Skeleton, orchestrator
- Re-export from GoLiveView.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-main
- Fix: text-[10px] -> text-xs, w-[60%] -> w-3/5
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:57:22 +01:00
senke
4e43e62e92
refactor(studio): CreateProjectModal module, re-export, stories
...
- Module create-project-modal: types, useCreateProjectModal, Header,
Form, Footer, Skeleton, orchestrator CreateProjectModal
- Re-export from projects/CreateProjectModal.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-story
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:51:25 +01:00
senke
c1b9f557e6
refactor(studio): ProjectsManager module, re-export, stories
...
- Module projects-manager: types, useProjectsManager, Header, FilterBar,
Card, AddCard, Empty, Skeleton, orchestrator ProjectsManager
- Re-export from studio/ProjectsManager.tsx
- Stories: Default, Loading (Skeleton), Empty; decorator min-h-layout-main
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 01:44:40 +01:00
senke
8c8891d29f
refactor(studio): split ProjectDetailView into module (Header, Tabs, Overview, Files, Settings, Sidebar, Skeleton)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-05 23:24:39 +01:00
senke
4cab15c6f2
chore(studio): remove legacy CloudFileBrowser from components/studio
...
CloudFileBrowser lives in features/studio/components/cloud-file-browser/.
StudioView already imports from there.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-05 21:20:36 +01:00
senke
2964cec09a
chore(dx): add .cursorrules and design system audit documentation
2026-02-05 14:20:06 +01:00
senke
e772d81226
refactor(storybook): remove duplicate providers from stories (Phase 2)
...
Stories no longer wrap with QueryClientProvider, ToastProvider,
ThemeProvider, or MemoryRouter; global StorybookDecorator provides them.
- Route-specific pages use parameters.router.initialEntries
(ResetPasswordPage, VerifyEmailPage) or minimal MemoryRouter+Route
where useParams is needed (TrackDetailPage, PlaylistDetailPage).
- Stories that seeded query cache use useQueryClient() from global
decorator (FollowButton, CollaboratorManagement, CommentSection).
- Navbar, AuthLayout, DashboardLayout, Header, and 25+ story files
simplified to layout divs only.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-05 13:08:17 +01:00
senke
0e9b206389
stabilisation: fix commit
2026-02-03 09:56:11 +01:00
senke
c73165196c
feat(storybook): complete comprehensive ui coverage for auth, player, tracks, and groups
2026-02-02 20:55:57 +01:00
senke
d0c270314e
improving UI: adding API doc to Developer Page
2026-01-26 14:12:17 +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
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
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
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
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
6a6c5caf9c
aesthetic-improvements: replace secondary cyan hover states with steel (batch 5)
...
- PlayerControls: visualizer toggle hover text (1 instance)
- Header: theme toggle hover text (1 instance)
- PlaylistCard: checkbox hover border (1 instance)
- GearView: equipment card hover border (1 instance)
- ProfileView: track title hover text (1 instance)
- ProjectsManager: project title hover text (1 instance)
- CourseCard: course title hover text (1 instance)
- TwoFactorSetup: 2FA option hover states (2 instances: bg and text)
- Total: ~8 files, ~9 instances replaced
- Preserved: Active/selected states (cyan), primary actions (cyan)
- Action 11.3.1.2 in progress (fifth batch complete)
2026-01-16 10:59:09 +01:00
senke
af75d62a63
aesthetic-improvements: replace secondary cyan hover states with steel
...
- Button outline variant: hover:border-kodo-cyan/50 → hover:border-kodo-steel/50
- Header secondary nav: hover:text-kodo-cyan → hover:text-white, hover:bg-kodo-cyan/5 → hover:bg-white/5
- FileManagerView: hover:border-kodo-cyan/50 → hover:border-kodo-steel/50 (kept selected state cyan)
- ProjectsManager: hover:border-kodo-cyan/50 → hover:border-kodo-steel/50, hover:text-kodo-cyan → hover:text-white
- GroupDetailView: hover:border-kodo-cyan/30 → hover:border-kodo-steel/50
- AIToolsView: hover:border-kodo-cyan/50 → hover:border-kodo-steel/50
- CloudFileBrowser: hover:border-kodo-cyan/50 → hover:border-kodo-steel/50 (kept selected state cyan)
- ProfileView: hover:border-kodo-cyan/50 → hover:border-kodo-steel/50
- CourseCard: hover:border-kodo-cyan/50 → hover:border-kodo-steel/50
- TwoFactorSetup: hover:border-kodo-cyan → hover:border-kodo-steel/50
- GearView: hover:text-kodo-cyan → hover:text-white, hover:border-kodo-cyan → hover:border-kodo-steel/50
- ChatInput: hover:text-kodo-cyan → hover:text-white (3 instances)
- ChatMessage: hover:text-kodo-cyan → hover:text-white (2 instances)
- ChatRoom: hover:text-kodo-cyan → hover:text-white
- AddToPlaylistModal: hover:border-kodo-cyan → hover:border-kodo-steel/50, hover:text-kodo-cyan → hover:text-white
- Preserved focus rings (cyan) and active/selected states (cyan) as per audit
- Action 11.3.1.2 in progress (first batch of ~15 files)
2026-01-16 10:51:30 +01:00
senke
bd9d971c26
consistency: replace custom buttons with Button component (partial)
...
- Replaced custom button implementations with Button component in 14 files
- Files updated: LiveStreamDetailView, DashboardPage, CommentItem, PostCard, SocialPage, SocialView, AdminUsersView, UserTableRow, ProjectsManager, CloudFileBrowser, FileManagerView, CreatorModal, ImageCropper, BulkUploadModal
- ~31 buttons replaced across high-priority files
- Used appropriate Button variants: ghost, outline, default, secondary, link
- Preserved visual appearance with className overrides where needed
- Action 9.2.1.2 in progress (partial completion)
2026-01-16 02:06:14 +01:00
senke
fb83ad79fa
consistency: auto-migrate Tailwind default colors (Batch 4, 114 instances)
2026-01-16 01:56:34 +01:00
senke
f0e16e37d8
typography: standardize h2-h6 heading elements
...
- Standardized h2 elements: 19 instances from text-3xl/text-xl to text-2xl
- Standardized h3 elements: 4 instances from text-2xl to text-xl
- Established consistent hierarchy: h1(text-3xl), h2(text-2xl), h3(text-xl)
- Preserved special cases: demo pages, responsive patterns, stat value displays
- Created standardization plan document
- Task 7.1.2.3 complete
2026-01-15 23:54:05 +01:00
senke
39f7967e1e
incus deployement fully implemented, Makefile updated and make fmt ran
2026-01-13 19:47:57 +01:00
senke
7452bd637a
stabilisation commit A
2026-01-07 19:39:21 +01:00
senke
59d9f6b9c9
chore: remove production logs in components
2026-01-07 10:31:02 +01:00