senke
|
6f7df5d6ba
|
feat(ui): Zone 10 - SocialView SaaS polish (glass, glow, motion, error/empty)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 16:43:04 +01:00 |
|
senke
|
9044b9f1d7
|
style: fix leftover kodo in ProfileView, FileTableRow.stories, FocusTrap.stories
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 15:17:47 +01:00 |
|
senke
|
eaf2e38f65
|
style(settings,views): elevate AccountSettings and ProfileView to SaaS Premium
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 15:09:53 +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
|
39dfe109cc
|
style(views): elevate UploadView to SaaS Premium
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 14:54:19 +01:00 |
|
senke
|
8384080c34
|
style(views): elevate StudioView to SaaS Premium
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 14:23:54 +01:00 |
|
senke
|
9f593582d7
|
style(discover): remove remaining kodo in DiscoverView Trending, Genres, types
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 14:13:58 +01:00 |
|
senke
|
63919ce983
|
style(discover): elevate DiscoverView to SaaS Premium
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 14:05:04 +01:00 |
|
senke
|
168ef7abf3
|
style(file-details): elevate FileDetailsView to SaaS Premium
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 14:03:36 +01:00 |
|
senke
|
550f7dbc5b
|
style(checkout): elevate CheckoutView BillingCard and Header to SaaS Premium
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 14:01:11 +01:00 |
|
senke
|
c4366b9e74
|
fix(views): remove remaining kodo in Purchases/Cart/Live/Marketplace/Social
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 14:00:55 +01:00 |
|
senke
|
84cdcf395c
|
style(views): elevate CheckoutView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:46:39 +01:00 |
|
senke
|
39cea43cc1
|
style(views): elevate LiveView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:45:38 +01:00 |
|
senke
|
7eacfb0e7f
|
style(views): elevate AnalyticsView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:44:52 +01:00 |
|
senke
|
3da74c6012
|
style(views): elevate MarketplaceView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:44:12 +01:00 |
|
senke
|
c01f3bbf11
|
style(views): elevate SocialView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:43:31 +01:00 |
|
senke
|
4f6a2e0999
|
style(views): elevate PurchasesView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:42:37 +01:00 |
|
senke
|
822751fb6e
|
style(views): elevate CartView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:41:56 +01:00 |
|
senke
|
e7ed774d34
|
style(views): elevate SettingsView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:41:19 +01:00 |
|
senke
|
1a0c93d35a
|
style(views): elevate EducationView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:40:54 +01:00 |
|
senke
|
d00d08b6dc
|
style(views): elevate NotificationsView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:40:29 +01:00 |
|
senke
|
991371e461
|
style(views): elevate AdminView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:40:12 +01:00 |
|
senke
|
80cff54be4
|
style(views): elevate AuthView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:39:51 +01:00 |
|
senke
|
51b5498f89
|
style(views): elevate ChatView to SaaS Premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 09:39:38 +01:00 |
|
senke
|
d11aa1d3a2
|
refactor(web): split ChatView into chat-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 03:59:32 +01:00 |
|
senke
|
de3e704373
|
refactor(web): split AuthView into auth-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 03:53:59 +01:00 |
|
senke
|
86450a93ab
|
refactor(web): split AdminView into admin-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:31:24 +01:00 |
|
senke
|
b4cca23ec9
|
refactor(web): split NotificationsView into notifications-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:22:47 +01:00 |
|
senke
|
abc4386495
|
refactor(web): split EducationView into education-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:11:13 +01:00 |
|
senke
|
6ccf3db0e1
|
refactor(web): split SettingsView into settings-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:59:42 +01:00 |
|
senke
|
dcf89cb2da
|
refactor(web): split CartView into cart-view module
- types: CartViewProps, CartDiscount
- useCartView: useCartStore, showPromo, discount, tax/finalTotal, handleApplyPromo
- CartViewEmpty, CartViewHeader, CartViewSummary, CartViewSecure, CartViewSkeleton
- PromoCodeModal in orchestrator; min-h-[60vh] -> min-h-layout-page-sm
- Stories: Default, Empty, Loading (Skeleton); decorator min-h-layout-page
- Re-export from CartView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:49:55 +01:00 |
|
senke
|
de2144f34f
|
refactor(web): split PurchasesView into purchases-view module
- types: PurchasesViewProps, Purchase
- usePurchasesView: commerceService.getPurchases, search, refund, download
- PurchasesViewHeader, PurchasesViewItem, PurchasesViewList, PurchasesViewSkeleton
- RefundRequestModal in orchestrator; Loading renders Skeleton
- Stories: Default, Empty (initialPurchases []), Loading (Skeleton)
- Re-export from PurchasesView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:42:35 +01:00 |
|
senke
|
b6b2791b76
|
refactor(web): split SocialView into social-view module
- types: SocialViewProps, SocialTabKey
- useSocialView: feedTracks (trackService.list), activeTab, playTrack
- SocialViewSidebar, SocialViewFeed, SocialViewFeedItem, SocialViewTrending, SocialViewSkeleton
- Loading renders Skeleton; decorator min-h-layout-page
- Re-export from SocialView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:34:18 +01:00 |
|
senke
|
9a8af12b6b
|
refactor(web): split MarketplaceView into marketplace-view module
- types: MarketplaceViewProps, MarketplaceCategory; useMarketplaceView with marketplaceService/fallback
- MarketplaceViewHeader, MarketplaceViewCategories, MarketplaceViewSidebar, MarketplaceViewGrid, MarketplaceViewSkeleton
- allProducts for ProductDetailView similarProducts; min-h-screen -> min-h-layout-page
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page
- Re-export from MarketplaceView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 18:42:16 +01:00 |
|
senke
|
461fd9cf6a
|
refactor(web): split AnalyticsView into analytics-view module
- types: AnalyticsViewProps, DateRangeKey, GlobalStats, TopTrackRow, TrafficSource, DeviceStats, ChartHoverData
- useAnalyticsView: dateRange, stats, topTracks, trafficSources, deviceStats, loading, hoveredData, handleExport
- AnalyticsViewHeader, AnalyticsViewKpiGrid, AnalyticsViewChart, AnalyticsViewOrigins, AnalyticsViewPlatforms, AnalyticsViewTopTracks, AnalyticsViewSkeleton
- Data via analyticsService; loading renders Skeleton
- text-[10px] -> text-xs, tracking-[0.2em] -> tracking-wide
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page
- Re-export from AnalyticsView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 18:33:42 +01:00 |
|
senke
|
30df8c99ea
|
refactor(web): split LiveView into live-view module
- types.ts: LiveViewProps, LiveViewChatMessage; mockData: FEATURED_STREAM, CHAT_MESSAGES
- useLiveView: stream, chatMessages, msgInput, handleSend, addToast
- LiveViewPlayer, LiveViewStreamInfo, LiveViewRecommended, LiveViewChat, LiveViewSkeleton
- Layout h-[calc(100vh-120px)] -> min-h-layout-main; text-[10px] -> text-xs
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page
- Re-export from LiveView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 18:15:41 +01:00 |
|
senke
|
0a56cb5fe0
|
refactor(web): split CheckoutView into checkout-view module
- types.ts: CheckoutViewProps, CheckoutFormState, INITIAL_CHECKOUT_FORM
- useCheckoutView: form state, cart/tax, handlePurchase, onComplete
- CheckoutViewHeader, CheckoutViewBillingCard, CheckoutViewPaymentCard,
CheckoutViewOrderSummary, CheckoutViewSkeleton
- CheckoutView orchestrator; re-export from CheckoutView.tsx
- Stories: Loading (Skeleton), Default, Processing, Success
- Decorator min-h-screen -> min-h-layout-page
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 18:04:13 +01:00 |
|
senke
|
ef520fba53
|
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
|
5c54de2ced
|
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
|
266f2619c9
|
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
|
539118504b
|
refactor(views): UploadView module, re-export, stories
- Module upload-view: types, useUploadView, Stepper, Step1/2/3, Skeleton
- Layout: min-h-layout-page, max-h-96 (no arbitrary values)
- Re-export from UploadView.tsx
- Stories: Default, Loading (Skeleton), Empty, Error
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:12:24 +01:00 |
|
senke
|
88a347dfd1
|
refactor(views): extract FileManagerView into file-manager-view module
- Add file-manager-view/ with useFileManagerView, Header, Toolbar, Table, Grid,
Empty, Skeleton; types and mockFiles
- Layout primitives (min-h-layout-page-sm), no arbitrary values
- Stories: Default, Loading, Empty
- Re-export from FileManagerView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:45:01 +01:00 |
|
senke
|
b4ad28183f
|
fix(views): use layout primitive in NotificationsView loading state
Replace arbitrary h-[50vh] with min-h-layout-page-sm per .cursorrules
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 21:32:33 +01:00 |
|
senke
|
6b2ebe67b5
|
test(views): add GearView stories Default, Loading, Empty, Error and GearViewSkeleton
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:38:59 +01:00 |
|
senke
|
f5a29db060
|
refactor(views): decompose GearView into gear-view module with useGearView and sub-components
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:38:45 +01:00 |
|
senke
|
fcf65be277
|
test(views): add ProfileView stories Default, Loading, Error and ProfileViewSkeleton
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:30:50 +01:00 |
|
senke
|
a06f5b40bb
|
refactor(views): decompose ProfileView into profile-view module with hook and sub-components
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 20:30:36 +01:00 |
|
senke
|
9093c66917
|
feat(ui): implement skeleton-first loading and grid/list orchestration for CloudFileBrowser
|
2026-02-05 19:04:03 +01:00 |
|
senke
|
3c775d8bb4
|
feat(ui): implement grid/list view orchestration with synchronized skeletons for GearView
|
2026-02-05 18:18:13 +01:00 |
|
senke
|
2964cec09a
|
chore(dx): add .cursorrules and design system audit documentation
|
2026-02-05 14:20:06 +01:00 |
|