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 @@