From 0459b3feaf1fe7f9e3c1b558b45e6ed34cdf90f8 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Thu, 26 Feb 2026 08:40:59 +0000 Subject: [PATCH] fix(reports): neutralize totals color and fix dark mode button contrast MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove green/red/blue coloring from summary totals on all report pages (Facturi, Facturi pe Parteneri, Casă, Bancă) — mobile and desktop, light and dark mode; totals now use --text-color like TrialBalance - Fix SplitButton (Export) dark mode: was blue (--color-primary), now matches secondary outlined style (--text-color / --surface-border) - Update button syntax: severity="secondary" outlined instead of legacy class="p-button-outlined p-button-secondary" - DetailedInvoices: partner-meta (8 facturi) inline with partner name via flex-direction row instead of column - TrialBalance: mobile flat-row list layout replacing card layout - Dashboard mobile title: shows company name + period instead of static "Dashboard" - Navigation: move Facturi pe Parteneri to RAPOARTE section; update MobileBottomNav default items (Detalii replaces Facturi) Co-Authored-By: Claude Sonnet 4.6 --- src/assets/css/vendor/primevue-overrides.css | 117 +++++ src/config/menu.js | 4 +- src/modules/reports/views/BankView.vue | 198 ++++---- src/modules/reports/views/CashView.vue | 198 ++++---- src/modules/reports/views/DashboardView.vue | 13 +- .../reports/views/DetailedInvoicesView.vue | 440 ++++++------------ src/modules/reports/views/InvoicesView.vue | 218 ++++----- .../reports/views/TrialBalanceView.vue | 100 ++-- .../components/mobile/MobileBottomNav.vue | 4 +- .../components/mobile/MobileDrawerMenu.vue | 8 +- 10 files changed, 654 insertions(+), 646 deletions(-) diff --git a/src/assets/css/vendor/primevue-overrides.css b/src/assets/css/vendor/primevue-overrides.css index 23eb599..129fb39 100644 --- a/src/assets/css/vendor/primevue-overrides.css +++ b/src/assets/css/vendor/primevue-overrides.css @@ -184,6 +184,11 @@ cursor: pointer; } +/* DataTable body text - override saga-blue hardcoded #495057 */ +.p-datatable .p-datatable-tbody > tr { + color: var(--text-color) !important; +} + /* Compact DataTable variant (p-datatable-sm) */ .p-datatable-sm .p-datatable-thead > tr > th { padding: 0.5rem 0.75rem !important; @@ -683,9 +688,121 @@ } } +/* ===== Menu (popup/SplitButton dropdown) ===== */ +.p-menu { + background: var(--surface-card); + border-color: var(--surface-border); + color: var(--text-color); +} + +.p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link { + color: var(--text-color); + padding: var(--space-sm) var(--space-md); + gap: var(--space-sm); +} + +.p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text { + color: var(--text-color); +} + +.p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon { + color: var(--text-color-secondary); + margin-right: 0; +} + +.p-menu .p-menuitem > .p-menuitem-content:hover, +.p-menu .p-menuitem > .p-menuitem-content:not(.p-highlight):not(.p-disabled).p-focus { + background: var(--surface-hover); +} + +[data-theme="dark"] .p-menu { + background: var(--surface-card); + border-color: var(--surface-border); +} + +[data-theme="dark"] .p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link { + color: var(--text-color); +} + +[data-theme="dark"] .p-menu .p-menuitem > .p-menuitem-content:hover { + background: var(--surface-hover); +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme]) .p-menu { + background: var(--surface-card); + border-color: var(--surface-border); + } + :root:not([data-theme]) .p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link { + color: var(--text-color); + } + :root:not([data-theme]) .p-menu .p-menuitem > .p-menuitem-content:hover { + background: var(--surface-hover); + } +} + /* Server dropdown in login form uses default styling (inherits from global rules above) */ /* Server dropdown in header is styled in header.css to match CompanySelector */ +/* ===== Dark Mode Outlined Button Contrast Fix ===== */ +/* PrimeVue saga-blue (light) theme doesn't adapt outlined buttons for dark mode. + Secondary outlined buttons become invisible (grey on dark bg). + SplitButton outlined also needs explicit dark-mode color. */ + +[data-theme="dark"] .p-button.p-button-outlined.p-button-secondary { + color: var(--text-color) !important; + border-color: var(--surface-border) !important; + background: transparent !important; +} + +[data-theme="dark"] .p-button.p-button-outlined.p-button-secondary:hover { + background: var(--surface-hover) !important; + color: var(--text-color) !important; + border-color: var(--text-color-secondary) !important; +} + +[data-theme="dark"] .p-splitbutton .p-splitbutton-defaultbutton.p-button-outlined, +[data-theme="dark"] .p-splitbutton .p-splitbutton-menubutton.p-button-outlined { + color: var(--text-color) !important; + border-color: var(--surface-border) !important; + background: transparent !important; +} + +[data-theme="dark"] .p-splitbutton .p-splitbutton-defaultbutton.p-button-outlined:hover, +[data-theme="dark"] .p-splitbutton .p-splitbutton-menubutton.p-button-outlined:hover { + background: var(--surface-hover) !important; + color: var(--text-color) !important; + border-color: var(--text-color-secondary) !important; +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme]) .p-button.p-button-outlined.p-button-secondary { + color: var(--text-color) !important; + border-color: var(--surface-border) !important; + background: transparent !important; + } + + :root:not([data-theme]) .p-button.p-button-outlined.p-button-secondary:hover { + background: var(--surface-hover) !important; + color: var(--text-color) !important; + border-color: var(--text-color-secondary) !important; + } + + :root:not([data-theme]) .p-splitbutton .p-splitbutton-defaultbutton.p-button-outlined, + :root:not([data-theme]) .p-splitbutton .p-splitbutton-menubutton.p-button-outlined { + color: var(--text-color) !important; + border-color: var(--surface-border) !important; + background: transparent !important; + } + + :root:not([data-theme]) .p-splitbutton .p-splitbutton-defaultbutton.p-button-outlined:hover, + :root:not([data-theme]) .p-splitbutton .p-splitbutton-menubutton.p-button-outlined:hover { + background: var(--surface-hover) !important; + color: var(--text-color) !important; + border-color: var(--text-color-secondary) !important; + } +} + /* ===== All Dialogs - Dark Mode ===== */ /* Dialog background + content folosesc design tokens */ diff --git a/src/config/menu.js b/src/config/menu.js index 7223517..e0f6aa5 100644 --- a/src/config/menu.js +++ b/src/config/menu.js @@ -4,6 +4,7 @@ export const menuSections = [ items: [ { to: '/reports/dashboard', icon: 'pi pi-home', label: 'Dashboard' }, { to: '/reports/invoices', icon: 'pi pi-file', label: 'Facturi' }, + { to: '/reports/detailed-invoices', icon: 'pi pi-list', label: 'Facturi pe Parteneri' }, { to: '/reports/cash', icon: 'pi pi-wallet', label: 'Casă' }, { to: '/reports/bank', icon: 'pi pi-building', label: 'Bancă' }, { to: '/reports/trial-balance', icon: 'pi pi-calculator', label: 'Balanță de Verificare' } @@ -12,8 +13,7 @@ export const menuSections = [ { title: 'Analize', items: [ - { to: '/reports/maturity-analysis', icon: 'pi pi-clock', label: 'Scadențe' }, - { to: '/reports/detailed-invoices', icon: 'pi pi-list', label: 'Facturi Detaliate' } + { to: '/reports/maturity-analysis', icon: 'pi pi-clock', label: 'Scadențe' } ] }, { diff --git a/src/modules/reports/views/BankView.vue b/src/modules/reports/views/BankView.vue index 93d86aa..c589784 100644 --- a/src/modules/reports/views/BankView.vue +++ b/src/modules/reports/views/BankView.vue @@ -74,7 +74,8 @@