- Introduced `Field` and `Label` components for better form handling. - Refactored `Input` and `Textarea` components to use forward refs and improved styling. - Updated `PendingSubmitButton` to use the new `Button` component. - Enhanced `Skeleton` component for better layout handling. - Revamped `Toast` component to support live regions and improved accessibility. - Updated sidebar configuration to use typed icons. - Added phase 3 UI boundary checks to prevent usage of deprecated imports. - Implemented new authentication action handler for better cookie management. - Improved setup logic for freelancer accounts with repair functionality.
3.1 KiB
3.1 KiB
Phase 3 UI Implementation Notes
Kapsam
Bu fazda Poyraz UI tamamen package seviyesinde kaldırılmadı. Mevcut feature sayfaları hâlâ Poyraz component import ediyor ve Faz 4-6 sırasında veri/UI birlikte taşınacak. Faz 3 uygulaması yeni internal primitive setini, auth shell'i ve dashboard/portal shell'i Poyraz import sınırından ayırır.
Eklenen primitive seti
components/ui/button.tsx:Buttonve accessibleIconButton.components/ui/input.tsx:InputveTextarea.components/ui/field.tsx:LabelveFielddescription/error yapısı.components/ui/card.tsx: temel card yüzeyleri.components/ui/skeleton.tsx: layout ölçüsünü koruyan skeleton.components/ui/toast.tsx: live-region tabanlı basit toaster.
Shell değişiklikleri
components/layout/app-shell.tsxdashboard ve portal için ortak responsive shell oldu.- Dashboard shell ve portal shell doğrudan Poyraz import etmiyor.
- Account menüsü Escape, dışarı tıklama ve focus return davranışına sahip.
- Mobile sidebar route değişiminde kapanıyor.
- Skip link ana içeriğe keyboard erişimi sağlıyor.
Token kararı
app/globals.cssartık--poyraz-*token tanımlamıyor.- Tailwind v4 theme mapping semantik tokenlardan geliyor.
- Eski feature sayfaları için
background,primary,muted,bordergibi legacy class adları semantik tokenlara bağlı tutuldu. - Dark mode bu fazda desteklenmiyor; light-only karar korunuyor.
Boundary kontrolü
npm run phase3:ui-boundary aşağıdaki alanlarda poyraz-ui importu ve --poyraz token kullanımını engeller:
- root layout/global CSS
- auth ekranları
- dashboard/portal shell
- internal UI primitive'leri
- sidebar config dosyaları
Poyraz component mapping
| Eski kullanım | Yeni hedef |
|---|---|
poyraz-ui/atoms Button |
components/ui/button Button |
poyraz-ui/atoms Input |
components/ui/input Input |
poyraz-ui/atoms Textarea |
components/ui/input Textarea |
poyraz-ui/atoms Label |
components/ui/field Label veya Field |
poyraz-ui/atoms Card, CardContent |
components/ui/card |
poyraz-ui/atoms Badge |
Faz 4 core UI icinde components/ui/badge |
poyraz-ui/molecules DropdownMenu |
Shell icin internal AccountMenu; feature'lar icin components/ui/dropdown-menu |
poyraz-ui/molecules Dialog |
components/ui/dialog |
poyraz-ui/molecules Select |
components/ui/select |
poyraz-ui/molecules Tabs |
Faz 4 ihtiyacinda components/ui/tabs |
poyraz-ui/molecules toast |
components/ui/toast showToast veya hooks/use-toast |
poyraz-ui/organisms Sidebar* |
components/layout/app-shell |
poyraz-ui/atoms Typography |
Semantik HTML ve token tabanli typography class'lari |
Kalan işler
- Feature sayfalarındaki Poyraz importları Faz 4-6 feature rewrite sırasında kaldırılacak.
- Tam viewport screenshot ve keyboard/contrast matrisi Playwright kurulumu ile ayrıca kapatılmalı.
- Dialog/select/tabs gibi daha karmaşık primitive'ler feature ihtiyaçları netleşince internal API ile eklenecek.