a9a95dae69
feat: migrate BrokerOverviewSkeleton to design system Skeleton
2026-06-21 18:16:47 +03:00
ef97fd7136
feat: migrate BrokerSummary, BrokerAssetCards and BrokerAccountOverviewPage
2026-06-21 18:14:49 +03:00
3682f43aa6
feat: migrate BrokerAccountLayout to design system
2026-06-21 18:06:03 +03:00
bd27bba66d
docs(sdd): add broker account sections DS migration spec/plan/tasks
2026-06-21 18:00:39 +03:00
860bed159c
feat(frontend): migrate BrokerAccountsPage and widgets to design system
2026-06-21 17:42:05 +03:00
62a3389bfb
feat(frontend): migrate LoginPage, RegisterPage, ProfilePage to design system
...
- LoginPage: <input>/<label> → <TextField>, <button> → <Button>,
<h1> → <Heading>, inline error → <Text tone="negative">
- RegisterPage: same pattern, 4 fields, minLength via slotProps.htmlInput
- ProfilePage: <div> inline styles → <Surface>, <input> → <TextField>,
<button> → <Button>, email/role → <Text>+<Text variant="label">
- Tests: loading state checks updated from text change to
toBeDisabled() (DS Button keeps text, shows spinner)
- 264 lines removed, 134 net reduction
2026-06-21 17:23:04 +03:00
a8741cfeab
fix: resolve Vite MUI deep import by moving to barrel import + updated ESLint allowlist
...
- Changed @mui/material/Box deep imports to { Box } from '@mui/material'
- Updated no-restricted-imports to only restrict DS-covered components,
allowing Box/Stack/Grid for layout
2026-06-21 17:15:45 +03:00
bd33412691
feat(frontend): migrate HomePage and SearchBar to design system components
...
- HomePage: replace inline styles with <Heading>, <Text>, <Box>
- SearchBar: replace <input> with <TextField>, <ul> with <Surface>,
<li> with <Box>+<Text>+<Chip>, hardcoded hex with theme tokens
- ESLint no-restricted-imports respected via @mui/material/Box deep import
- Logic unchanged, all 111 tests pass
2026-06-21 16:57:19 +03:00
3534ec4f77
fix(design-system): add @storybook/test and @testing-library/dom deps
...
CI / ci (pull_request) Failing after 3m26s
CI / ci (push) Failing after 2m49s
- @storybook/test needed by stories (import { fn })
- npm overrides resolves peer dep conflict with storybook 10
- @testing-library/dom explicit dep (peer of @testing-library/react)
- 157 design-system tests + 111 frontend tests all pass
2026-06-21 15:49:59 +03:00
339845dd57
ci(design-system): enforce foundation quality gates
2026-06-21 15:40:21 +03:00
e6cf852741
docs(design-system): publish usage guidelines and ADR-016
2026-06-21 15:40:17 +03:00
53659a36b1
feat(design-system): add data components, form/page-state patterns, and frontend integration
...
- Inputs: TextField, Select, Checkbox
- Surfaces: Surface, Card, Chip, Badge
- Feedback: Alert, Dialog, Skeleton, Progress
- Financial data: DataTable, Metric, Money, PriceChange
- Form & page-state: FormField, FilterBar, EmptyState, ErrorState, LoadingState
- MUI CssVarsProvider -> ThemeProvider deprecation fix
- Inter font bundled via @fontsource/inter
- ESLint no-restricted-imports (warn) for gradual migration
- storybook-static gitignored
All 268 tests pass (157 design-system + 111 frontend)
2026-06-21 09:49:18 +03:00
55221dbf22
feat(design-system): add form and page-state patterns
...
- FormField: label, htmlFor, helperText, error, required, children
- FilterBar: responsive layout container with children and actions
- EmptyState: semantic heading with optional description and action
- ErrorState: semantic heading with optional description and action
- LoadingState: aria-live polite, section/page sizes, reduced-motion
2026-06-21 09:44:12 +03:00
74ca576310
feat(design-system): add typography and actions
...
Implement Text, Heading, Link, Button, and IconButton components with TDD and Storybook stories. Each component wraps MUI with restricted props for visual consistency.
2026-06-21 09:32:58 +03:00
886ac7b87a
build(design-system): configure Storybook workbench
2026-06-21 09:29:26 +03:00
1107a1fc8b
feat(design-system): add MUI theme adapter
2026-06-21 09:28:38 +03:00
fdffe204e4
feat(design-system): define three-level tokens
2026-06-21 09:27:16 +03:00
129282d634
feat(design-system): add token schema and resolver
2026-06-21 09:25:18 +03:00
ec13fa8ca2
docs(design-system): add foundation implementation plan
2026-06-21 09:13:19 +03:00
e8dcb27a03
docs(design-system): add foundation specification
2026-06-21 08:56:32 +03:00
1b6fd39be3
feat: add frontend infrastructure libraries (ky, Zustand, MUI, dayjs, clsx, tanstack-table, rhf, zod)
...
CI / ci (pull_request) Failing after 2m55s
CI / ci (push) Failing after 2m53s
- install ky, zustand, @mui/material, @fontsource/roboto, dayjs, clsx
- install @tanstack/react-table, react-hook-form, zod, @hookform/resolvers
- create kyClient.ts with auth interceptors
- create Zustand store for session (useSessionStore.ts)
- add MUI theming (theme.ts, ThemeProvider in AppProviders)
- add dayjs utils with ru locale (formatDate, formatRelative)
- add clsx cn() utility
- add base Table component using @tanstack/react-table
- create ADR-015 documenting architectural decisions
- create SDD artifacts: spec.md, plan.md, tasks.md
- build, lint, and 111 tests passing
2026-06-21 08:26:27 +03:00
2744608d06
chore: add @conarti/eslint-plugin-feature-sliced for FSD layer enforcement
CI / ci (pull_request) Failing after 2m23s
CI / ci (push) Failing after 2m19s
2026-06-20 23:21:14 +03:00
ad196164ee
refactor: extract AddPositionForm to features layer
2026-06-20 23:16:20 +03:00
d1f9128441
refactor: extract BrokerOverview components to widgets layer
2026-06-20 23:14:24 +03:00
8e70691bde
refactor: extract BrokerPositionTable to widgets layer
2026-06-20 23:12:28 +03:00
943a6aec2d
fix: move test SessionProvider and SessionContext to shared layer for FSD compliance
2026-06-20 23:10:56 +03:00
79011c779f
fix: move test SessionProvider to shared layer for FSD compliance
2026-06-20 23:04:34 +03:00
1774c7ffd6
refactor(frontend): bring FSD architecture into compliance
...
CI / ci (pull_request) Failing after 2m32s
CI / ci (push) Failing after 2m17s
- Remove cross-entity import (broker-position -> broker-operation)
- Extract duplicated formatters to shared/lib/formatters.ts
- Flatten shared/ui/broker-allocation-bar nesting
- Clean up entities/stock/index.ts public API
All 111 tests pass, build clean.
2026-06-20 22:43:44 +03:00
1f426e9734
refactor(frontend): complete FSD compliance - barrel imports, test/ move, auth extraction, delete App.tsx and stale dir
CI / ci (pull_request) Failing after 2m37s
CI / ci (push) Failing after 2m30s
2026-06-20 22:31:34 +03:00
2fd2f0611b
refactor(frontend): move BrokerAllocationBar to shared/ui, fix cross-entity imports and missing barrel exports
2026-06-20 22:07:25 +03:00
b9d7a6ad69
refactor(frontend): complete FSD migration - import aliases, BrokerAccountLayout move, search api/ layer
2026-06-20 21:57:04 +03:00
055bc23097
refactor(frontend): migrate auth/portfolio pages to FSD, add layer boundaries
...
CI / ci (pull_request) Failing after 2m45s
CI / ci (push) Failing after 2m41s
- Convert LoginPage, RegisterPage, ProfilePage to FSD structure (index.ts + ui/)
- Convert PortfoliosListPage, PortfolioDetailPage to FSD structure
- Replace relative imports with @/ aliases in portfolio pages
- Add ESLint import/no-restricted-paths for FSD layer boundaries
- Refactor useSession test to mock context instead of import from app/
- Mark frontend-fsd-screener tasks as complete
2026-06-20 21:42:33 +03:00
9b208481dd
feat: migrate screener to FSD with first feature-slice (features/screener)
CI / ci (pull_request) Failing after 2m49s
CI / ci (push) Failing after 2m36s
2026-06-20 21:23:08 +03:00
2fc98341a6
docs: add FSD screener feature spec, plan, and tasks
2026-06-20 21:23:01 +03:00
2619a27b80
docs: mark portfolio FSD migration tasks complete
CI / ci (pull_request) Failing after 2m38s
CI / ci (push) Failing after 2m56s
2026-06-20 21:11:54 +03:00
605a4e8d00
docs: update frontend overview for portfolio FSD migration
2026-06-20 21:11:54 +03:00
16f5e1752c
refactor(frontend): remove flat components/portfolios
2026-06-20 21:11:30 +03:00
1ef1a3c902
refactor(frontend): switch pages/portfolios to widget imports
2026-06-20 21:11:30 +03:00
cfa890fdbe
feat: add portfolio widgets with barrel files (FSD migration)
2026-06-20 21:11:30 +03:00
36f39d2d3f
docs: add frontend fsd portfolios plan and tasks
2026-06-20 21:11:30 +03:00
49dcbb4e33
docs: define frontend fsd portfolios spec
2026-06-20 21:11:30 +03:00
b069575fbb
refactor(frontend): remove FSD shim files and dead code
...
CI / ci (pull_request) Failing after 2m51s
CI / ci (push) Failing after 2m38s
- Break entity shim chain: brokerPositionApi, brokerOperationApi now use shared/api/client directly
- Remove all 43 shim re-export files (api/, hooks/, context/, components/, pages/ flat shims, routes.tsx)
- Remove entire pages/broker/ dead code directory
- Remove api/broker.ts after breaking the shim chain
- Switch auth consumers from AuthProvider (shim) to SessionProvider (FSD)
- Fix api/screener.ts imports to use @/shared/api
- Update frontend hooks.md and routes.md documentation
- 2840 lines removed, 71 lines added
2026-06-20 20:42:44 +03:00
6f9e368126
refactor(frontend): refactoring fsd
CI / ci (pull_request) Failing after 3m2s
CI / ci (push) Failing after 2m58s
2026-06-20 19:58:49 +03:00
40d7792b9e
docs: add specification for frontend FSD market
2026-06-20 19:57:37 +03:00
20f0efa083
docs: update spec status, tasks, and frontend overview for FSD app+auth migration
CI / ci (push) Failing after 6m18s
2026-06-20 14:54:53 +03:00
8e9fdbe70a
refactor(frontend): migrate app layer and auth to FSD
...
- Create app/ layer: App.tsx, providers, routing, layouts
- Create entities/session/ for auth domain
- Extract SessionProvider + AppProviders composition
- Add ProtectedRoute, AppRoutes to app/routing/
- Add AppLayout to app/layouts/
- Convert legacy files to re-export shims
- Update Login/Register/Profile pages to useSession
2026-06-20 14:54:53 +03:00
af36d2e7cf
docs: define frontend fsd app+auth spec, plan, tasks
2026-06-20 14:54:53 +03:00
ad8ff6a875
docs: mark fsd entities migration tasks complete
2026-06-20 14:54:52 +03:00
946383bde0
refactor(frontend): migrate entities/portfolio to FSD
2026-06-20 14:54:52 +03:00
9c115f0e16
refactor(frontend): migrate entities/bond to FSD
2026-06-20 14:54:52 +03:00