senke
|
8616af6cc7
|
docs(audit): ChatInterface refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 14:25:15 +01:00 |
|
senke
|
cc8bd68b07
|
refactor(web): split ChatInterface into chat-interface module
- types.ts: ChatInterfaceProps
- useChatInterface: state, wsService, loadMessages, loadChatStats, handleSendMessage, formatTimestamp
- ChatInterfaceHeader, ChatInterfaceMessages, ChatInterfaceInput
- ChatInterfaceSkeleton for Loading state
- Stories: Default, ProductionRoom, Loading (Skeleton)
- Decorator h-[600px] -> min-h-layout-page
- Re-export from ChatInterface.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 14:24:41 +01:00 |
|
senke
|
34b82fd316
|
docs(audit): CreateProductView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 14:17:28 +01:00 |
|
senke
|
4e4ba02b7b
|
refactor(web): split CreateProductView into create-product-view module
- types.ts: LicenseConfig
- useCreateProductView: form state, updateLicense, handlePublish, handleSaveDraft
- CreateProductViewHeader, CoverCard, FilesCard, DetailsCard, PricingCard
- CreateProductViewSkeleton for Loading state
- Textarea min-h-24 (no arbitrary value)
- MSW: POST marketplace/products for Storybook
- Stories: Default, Loading (Skeleton)
- Re-export from CreateProductView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 14:16:38 +01:00 |
|
senke
|
de415a8c3b
|
docs(audit): FileDetailsView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 14:06:09 +01:00 |
|
senke
|
7f9345b4d0
|
refactor(web): split FileDetailsView into file-details-view module
- types.ts: FileDetailsViewProps, ActivityItem, VersionItem
- mockData.ts: MOCK_ACTIVITY, MOCK_VERSIONS, getMockFile
- useFileDetailsView.ts: hook returning file, activity, versions
- FileDetailsViewHeader, Preview, Metadata, Activity, Versions, Storage
- FileDetailsViewSkeleton for Loading state
- Layout: min-h-layout-page-sm, badge text-xs
- Imports use @/ for Storybook resolution
- Stories: Default, Loading (Skeleton)
- Re-export from FileDetailsView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 14:05:44 +01:00 |
|
senke
|
63b3745707
|
docs(audit): VirtualizedList refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:55:32 +01:00 |
|
senke
|
f9db7b1f32
|
refactor(web): split VirtualizedList into virtualized-list module
- virtualized-list/types.ts: VirtualizedListProps
- virtualized-list/useInfiniteScroll.ts: useInfiniteScroll hook
- virtualized-list/useScrollPosition.ts: useScrollPosition hook
- virtualized-list/VirtualizedList.tsx: main component
- Re-export from virtualized-list.tsx via ./virtualized-list/index
- Test mock extended with getTotalSize, measureElement, key on virtual items
- 4 tests pass
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:55:06 +01:00 |
|
senke
|
ce47d5a2b7
|
docs(audit): context/AudioContext refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:46:58 +01:00 |
|
senke
|
ed33ba1d85
|
refactor(web): split AudioContext into context/audio-context module
- types.ts: VisualizerSettings, AudioContextType
- mockTracks.ts: mock track data for initial state
- useAudioContextValue.ts: all state, effects, and actions
- AudioContext.tsx: createContext, useAudio, AudioProvider
- Re-export from context/AudioContext.tsx (useAudio, AudioProvider, VisualizerSettings)
- Fix toggleMute to toggle isMuted (was incorrectly toggling isPlaying)
- 12 tests pass
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:46:29 +01:00 |
|
senke
|
5237a327db
|
docs(audit): add features/player AudioPlayer refactor entry to FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:37:31 +01:00 |
|
senke
|
d53a049a41
|
refactor(player): decompose AudioPlayer into audio-player module
- Add audio-player/ with useAudioPlayerLifecycle, AudioPlayerCompact, AudioPlayerFull, AudioPlayerSkeleton
- Re-export and default export from AudioPlayer.tsx
- Story Loading uses AudioPlayerSkeleton; 20 tests pass
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:37:04 +01:00 |
|
senke
|
f0983b5d4a
|
docs(audit): add Library UploadModal refactor entry to FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:26:57 +01:00 |
|
senke
|
e76667cfd1
|
refactor(library): decompose UploadModal into upload-modal module
- Add upload-modal/ with useLibraryUploadModal, UploadModalForm, UploadModalFooter, types
- Re-export UploadModal from UploadModal.tsx
- Form ids for a11y (library-upload-*); trigger role=button tabIndex=0
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:26:19 +01:00 |
|
senke
|
a2ef332fd5
|
docs(audit): add DiscoverView refactor entry to FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:19:48 +01:00 |
|
senke
|
107d98eeaa
|
refactor(views): decompose DiscoverView into discover-view module
- Add discover-view/ with useDiscoverView, Hero, Trending, NewReleases, Genres, Skeleton, Error
- Re-export DiscoverView from DiscoverView.tsx
- Loading: Skeleton instead of h-[50vh] spinner; Error: min-h-layout-page-sm
- Conformity: UPDATED badge text-[10px] -> text-xs
- Stories: Default, Loading (Skeleton), Error
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:19:25 +01:00 |
|
senke
|
df17fae256
|
docs(audit): add UserProfilePage refactor entry to FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:11:09 +01:00 |
|
senke
|
8e05e15d19
|
refactor(profile): decompose UserProfilePage into user-profile-page module
- Add user-profile-page/ with useUserProfilePage, Hero, Header, Tabs, Skeleton, Error
- Re-export UserProfilePage from UserProfilePage.tsx
- Stories: Default (/u/demo), Loading (Skeleton), NotFound (/u/notfound)
- MSW: GET /api/v1/users/by-username/:username (404 for notfound)
- Tests: mock useUserProfilePage, ToastProvider; 7 tests pass
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 13:10:33 +01:00 |
|
senke
|
4019305a1a
|
docs(audit): GroupDetailView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 12:35:28 +01:00 |
|
senke
|
a8db2eec5d
|
refactor(social): GroupDetailView module, useGroupDetailView, Header, Members, Events, Sidebar, Skeleton, stories
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 12:34:57 +01:00 |
|
senke
|
bff0688cdd
|
docs(audit): EditProfile refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 11:45:29 +01:00 |
|
senke
|
19033b1e68
|
refactor(settings): EditProfile module, useEditProfile, ImagesCard, IdentityCard, Sidebar, Skeleton, cropUtils, stories
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 11:45:16 +01:00 |
|
senke
|
a243adf0a1
|
docs(audit): FormBuilder refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 11:36:31 +01:00 |
|
senke
|
6a68d4dc21
|
refactor(forms): FormBuilder module, useFormBuilder, FormBuilderFieldWidget, re-export, stories, a11y id
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 11:36:20 +01:00 |
|
senke
|
2f3a6f4ff9
|
docs(audit): MonitoringDashboardContent subcomponents entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 11:28:03 +01:00 |
|
senke
|
7dfd2e2592
|
refactor(monitoring): MonitoringDashboardContent split into Header, Stats, ValidationCard, ErrorsCard, PerformanceCard
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 11:27:54 +01:00 |
|
senke
|
76a480f5fb
|
docs(audit): Table (data) refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 11:23:10 +01:00 |
|
senke
|
6616256226
|
refactor(data): Table module, useTable, TableHeadRow, TableBodyRows, re-export, stories, tests
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 11:22:47 +01:00 |
|
senke
|
8d7506bde0
|
docs(audit): tooltip refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 10:32:46 +01:00 |
|
senke
|
27fd12fe6c
|
refactor(ui): tooltip module, useTooltip, re-export, tests
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 10:32:14 +01:00 |
|
senke
|
dfd9ba6220
|
docs(audit): tabs refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 10:12:56 +01:00 |
|
senke
|
65545df49b
|
refactor(ui): tabs module, re-export
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 10:12:33 +01:00 |
|
senke
|
3a27c35b48
|
docs(audit): accordion refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:33:34 +01:00 |
|
senke
|
61e2021968
|
refactor(ui): accordion module, re-export
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:33:10 +01:00 |
|
senke
|
8a4a6cd9cd
|
docs(audit): dropdown-menu refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:27:58 +01:00 |
|
senke
|
dc54cbc80a
|
refactor(ui): dropdown-menu module, dropdown controlled open, re-export
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:27:29 +01:00 |
|
senke
|
9c18968b16
|
docs(audit): StudioView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:18:00 +01:00 |
|
senke
|
8f3faff363
|
refactor(views): StudioView module, re-export, stories
- Module studio-view: types, useStudioView, Header, Sidebar, NavButton,
Content, ProjectsSwitch, Skeleton, orchestrator StudioView
- Re-export from StudioView.tsx
- Stories: Default, Projects, Loading (Skeleton); decorator min-h-layout-main
- Fix: h-[calc(100vh-140px)] -> min-h-layout-main, w-[65%] -> w-2/3
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:17:36 +01:00 |
|
senke
|
6ce1b2a355
|
docs(audit): CloudSettingsView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:11:58 +01:00 |
|
senke
|
b7d5137d63
|
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
|
d3d203645b
|
docs(audit): AIToolsView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:07:27 +01:00 |
|
senke
|
9a0deb8428
|
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
|
caf05e6ee5
|
docs(audit): ConnectivityView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:02:23 +01:00 |
|
senke
|
1b59c2b423
|
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
|
95afa6a5e4
|
docs(audit): GoLiveView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:57:44 +01:00 |
|
senke
|
fc5e298780
|
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
|
ef09c171cf
|
docs(audit): CreateProjectModal refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:51:46 +01:00 |
|
senke
|
5c991ca1b1
|
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
|
314511ce96
|
docs(audit): ProjectsManager refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:45:05 +01:00 |
|
senke
|
2fb6add60c
|
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 |
|