Files
roa2web-service-auto/scripts/ralph/prd.json
Claude Agent cc52ad1850 feat(ui-fixes-phase6): Complete US-701 - Reparare SpeedDial FAB pe Lista Bonuri
Implemented by Ralph autonomous loop.
Iteration: 1

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-13 22:29:57 +00:00

227 lines
9.0 KiB
JSON

{
"projectName": "ui-fixes-phase6",
"branchName": "ralph/ui-fixes-phase6",
"description": "UI/UX Fixes Phase 6 - Menu Consistency & Mobile Improvements + Phase 5 Regressions Fix",
"cssRules": {
"documentation": [
"docs/ONBOARDING_CSS.md",
"docs/DESIGN_TOKENS.md",
"docs/CSS_PATTERNS.md",
"docs/MOBILE_PATTERNS.md"
],
"goldenRules": [
"Folosește DOAR design tokens - NICIODATĂ valori hardcodate",
"Verifică CSS_PATTERNS.md înainte de a scrie CSS nou",
"Testează în AMBELE teme (light + dark mode)",
"NICIODATĂ :deep() în componente (PrimeVue → vendor/)",
"Mobile: toate paginile folosesc MobileTopBar + MobileBottomNav",
"Mobile: filtrele se pun în BottomSheet, NU inline",
"Mobile: v-if='isMobile' pentru componente mobile-only",
"Desktop: v-if='!isMobile' pentru componente desktop-only"
],
"mobileLayoutTokens": {
"topBarHeight": "56px",
"bottomNavHeight": "56px",
"fabSize": "56px",
"fabBottomOffset": "72px",
"touchTargetMin": "48px"
}
},
"referenceFiles": {
"designReference": "src/modules/reports/views/InvoicesView.vue",
"mobileComponents": [
"src/shared/components/mobile/MobileTopBar.vue",
"src/shared/components/mobile/MobileDrawerMenu.vue",
"src/shared/components/mobile/MobileBottomNav.vue",
"src/shared/components/mobile/BottomSheet.vue",
"src/shared/components/mobile/MobileSelectionFooter.vue"
]
},
"userStories": [
{
"id": "US-601",
"title": "Adăugare Secțiune Analize în Sidebar Desktop",
"description": "Ca utilizator desktop, vreau să văd secțiunea Analize în sidebar-ul din stânga",
"priority": 1,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6"
},
{
"id": "US-602",
"title": "Tab-uri Clienți/Furnizori în Pagina Scadențe",
"description": "Ca utilizator, vreau să pot comuta între Clienți și Furnizori folosind tab-uri",
"priority": 2,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6"
},
{
"id": "US-603",
"title": "Implementare Pagină Facturi Detaliate",
"description": "Ca utilizator, vreau să văd facturi detaliate când accesez Analize > Facturi Detaliate",
"priority": 3,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6"
},
{
"id": "US-604",
"title": "Toggle Temă cu 3 Stări în Meniul Mobil",
"description": "Ca utilizator mobil, vreau selectorul de temă să fie un singur buton toggle cu 3 stări",
"priority": 4,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6"
},
{
"id": "US-605",
"title": "Companie/Perioadă Colapsabile în Meniul Mobil",
"description": "Ca utilizator mobil, vreau secțiunile Companie și Perioadă din meniu să fie colapsabile",
"priority": 5,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6 - NOTE: Reverted in US-703"
},
{
"id": "US-606",
"title": "Layout Scrollabil Unificat în Meniul Mobil",
"description": "Ca utilizator mobil, vreau întregul meniu hamburger să fie într-o singură zonă scrollabilă",
"priority": 6,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6"
},
{
"id": "US-607",
"title": "Secțiune Utilizator Compactă în Meniul Mobil",
"description": "Ca utilizator mobil, vreau secțiunea de utilizator să fie mai compactă",
"priority": 7,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6"
},
{
"id": "US-608",
"title": "Fix Buton FAB SpeedDial în Lista Bonuri",
"description": "Ca utilizator mobil, vreau butonul + din lista bonuri să afișeze un meniu SpeedDial",
"priority": 8,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6 - BUT REGRESSION: SpeedDial not imported!"
},
{
"id": "US-609",
"title": "Buton Resetează pe Toate Paginile cu Filtre Mobil",
"description": "Ca utilizator mobil, vreau butonul Resetează să apară pe toate paginile care au Filtrează",
"priority": 9,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6"
},
{
"id": "US-610",
"title": "Eliminare Spațiu Gol Deasupra Tabelelor",
"description": "Ca utilizator, vreau să nu existe spațiu gol excesiv între filtre și tabele",
"priority": 10,
"acceptanceCriteria": [
"Completed"
],
"passes": true,
"notes": "Completed in Phase 6"
},
{
"id": "US-701",
"title": "Reparare SpeedDial FAB pe Lista Bonuri",
"description": "Ca utilizator pe mobil, vreau să văd butonul + în dreapta jos și să pot crea bonuri noi, pentru că este metoda principală de adăugare bonuri pe mobil",
"priority": 11,
"acceptanceCriteria": [
"SpeedDial este importat corect din 'primevue/speeddial' în ReceiptsListView.vue",
"Butonul + apare în dreapta jos pe mobil (când nu este în selection mode)",
"Click pe + deschide opțiunile: Bon Nou Manual, Scanare OCR, Upload în Masă",
"npm run build passes fără warnings legate de SpeedDial",
"Verify in browser mobile viewport: FAB vizibil în dreapta jos, click deschide 3 opțiuni"
],
"passes": true,
"notes": "Completed in iteration 1"
},
{
"id": "US-702",
"title": "Verificare Meniu Acțiuni Per Bon",
"description": "Ca utilizator, vreau să pot accesa meniul de acțiuni (...) pentru fiecare bon, pentru că trebuie să pot edita, șterge, valida bonurile individual",
"priority": 12,
"acceptanceCriteria": [
"Butonul ... pe fiecare bon deschide meniul popup cu opțiuni",
"Meniul conține opțiunile corecte în funcție de status (Edit, View, Delete, Approve)",
"Meniul se poziționează corect pe mobil și desktop (nu iese din viewport)",
"npm run build passes"
],
"passes": false,
"notes": "Verifică menuItems computed property și toggleMenu funcția (linia 1453)"
},
{
"id": "US-703",
"title": "Navigare Hamburger pe Paginile Analize",
"description": "Ca utilizator pe mobil, vreau să văd meniul hamburger pe paginile Analize (nu săgeata înapoi), pentru că trebuie să pot accesa firma, perioada și navigarea din orice pagină",
"priority": 13,
"acceptanceCriteria": [
"MaturityAnalysisView.vue: MobileTopBar folosește :show-menu='true' și @menu-click='showDrawer = true'",
"DetailedInvoicesView.vue: MobileTopBar folosește :show-menu='true' și @menu-click='showDrawer = true'",
"Ambele view-uri au MobileDrawerMenu component importat și configurat corect",
"Click pe hamburger deschide MobileDrawerMenu cu firma, perioada, tema",
"Pattern identic cu InvoicesView.vue (liniile 4-11, 33-42)",
"npm run build passes"
],
"passes": false,
"notes": "REVERT NECESAR: S-a schimbat greșit de la show-menu la show-back. Revino la pattern InvoicesView."
},
{
"id": "US-704",
"title": "Mărire Spațiu Tabel Scadențe",
"description": "Ca utilizator, vreau să văd mai multe rânduri în tabelul de scadențe fără să scrollez, pentru că acum încap doar 3-4 rânduri",
"priority": 14,
"acceptanceCriteria": [
"În MaturityAnalysisCard.vue: .maturity-list max-height crescut de la 250px la 400px",
"În MaturityAnalysisCard.vue: @media 768px .maturity-list max-height crescut de la 200px la 350px",
"min-height pe .tab-content redus pentru a nu forța scroll inutil",
"Verify in browser desktop: cel puțin 8-10 rânduri vizibile fără scroll intern"
],
"passes": false,
"notes": "CSS current: linia 491 (max-height: 250px), linia 784 (max-height: 200px mobile)"
},
{
"id": "US-705",
"title": "Reducere Padding și Margin Top Excesiv",
"description": "Ca utilizator, vreau să văd conținutul imediat fără spațiu gol excesiv în partea de sus, pentru că acum partea de sus are prea mult spațiu nefolosit",
"priority": 15,
"acceptanceCriteria": [
"Reducere margin-bottom pe .page-header în paginile afectate",
"Verificare și ajustare padding pe .app-container dacă e redundant",
"Modificările nu afectează negativ layoutul altor pagini",
"Verificare vizuală în mod desktop și mobil",
"npm run build passes"
],
"passes": false,
"notes": "Afectează MaturityAnalysisView, DetailedInvoicesView. Folosește design tokens din CSS_PATTERNS.md"
}
]
}