Files
Agent Zero a3a5a10514 Phase 1: Workflows UI, Dedup/Merge UI, Import/Export UI, Print/PDF
- Workflows UI: full page with definitions/instances tabs, step editor, instance detail with approve/reject
- Dedup/Merge UI: duplicate detection, side-by-side comparison, field-level merge dialog, merge history
- Import/Export UI: import wizard (dry-run preview), export panel (CSV/XLSX), backend export route added
- Print/PDF: PrintButton component, print.css, integrated in Contacts/Calendar/Reports/ContactDetail
- Backend: GET /api/v1/export endpoint, export_companies_csv() service function
- Routes: /workflows, /contacts/dedup, /import-export registered
- Menu items: Workflows, Import/Export, Duplikate added to automation plugin manifest
- IMPLEMENTATION_PLAN.md: audit-corrected plan for all 14 remaining features
2026-07-26 02:35:44 +02:00

198 lines
4.0 KiB
CSS

/* Print-specific styles for LeoCRM */
/* Applied via media="print" in index.html */
@media print {
/* ---- Hide non-essential UI elements ---- */
/* Sidebars and navigation */
[data-testid="sidebar"],
[data-testid="topbar"],
[data-testid="message-sidebar"],
[data-testid="ai-sidebar"],
aside,
nav[aria-label="Sidebar"],
nav[aria-label="Main navigation"] {
display: none !important;
}
/* Elements marked with data-no-print attribute */
[data-no-print] {
display: none !important;
}
/* Toolbar, buttons, and action elements */
[data-testid*="toolbar"],
[data-testid*="-toolbar"],
.plugin-toolbar,
button:not([data-print-keep]),
.no-print {
display: none !important;
}
/* ---- Page setup ---- */
@page {
margin: 1.5cm;
}
html, body {
margin: 0 !important;
padding: 0 !important;
font-size: 12pt !important;
color: #000 !important;
background: #fff !important;
line-height: 1.4 !important;
}
/* Remove fixed/sticky positioning that breaks print */
* {
position: static !important;
overflow: visible !important;
}
/* Allow content to flow naturally */
.flex, .flex-col, .flex-1 {
display: block !important;
}
.overflow-hidden, .overflow-y-auto, .overflow-x-auto {
overflow: visible !important;
}
.h-full, .min-h-0 {
height: auto !important;
min-height: 0 !important;
}
/* ---- Show print-only elements ---- */
[data-print-only] {
display: block !important;
}
[data-print-only].inline {
display: inline !important;
}
/* Print header for documents */
.print-header {
display: block !important;
border-bottom: 2px solid #000;
padding-bottom: 8px;
margin-bottom: 16px;
}
.print-header h1 {
font-size: 18pt;
margin: 0 0 4px 0;
}
.print-header .print-date {
font-size: 10pt;
color: #666;
}
/* ---- Format tables for print ---- */
table {
width: 100% !important;
border-collapse: collapse !important;
page-break-inside: auto !important;
}
thead {
display: table-header-group !important;
}
tr {
page-break-inside: avoid !important;
page-break-after: auto !important;
}
th, td {
border: 1px solid #ccc !important;
padding: 4px 8px !important;
font-size: 11pt !important;
text-align: left !important;
color: #000 !important;
}
th {
background: #f5f5f5 !important;
font-weight: 600 !important;
}
/* ---- Format cards for print ---- */
.card,
[class*="rounded-lg"],
[class*="shadow-sm"] {
border: 1px solid #ddd !important;
box-shadow: none !important;
border-radius: 4px !important;
margin-bottom: 12px !important;
padding: 12px !important;
}
/* Background colors to light shades for print readability */
[class*="bg-white"] {
background: #fff !important;
}
[class*="bg-secondary-50"],
[class*="bg-secondary-100"] {
background: #f9f9f9 !important;
}
[class*="bg-primary-50"],
[class*="bg-primary-100"] {
background: #f0f0f0 !important;
}
/* ---- Typography for print ---- */
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid !important;
color: #000 !important;
}
h1 { font-size: 18pt !important; }
h2 { font-size: 15pt !important; }
h3 { font-size: 13pt !important; }
h4 { font-size: 12pt !important; }
p, li {
font-size: 11pt !important;
color: #000 !important;
}
a {
color: #000 !important;
text-decoration: none !important;
}
/* ---- Hide specific interactive elements ---- */
input[type="search"],
input[type="text"],
select,
textarea {
border: 1px solid #ccc !important;
background: #fff !important;
}
/* Images */
img {
max-width: 100% !important;
height: auto !important;
}
/* Avoid page breaks inside critical content */
[data-testid="contact-detail"],
[data-testid="reports-content"],
[data-testid="calendar-view"] {
page-break-inside: auto !important;
}
}
/* Screen: hide print-only elements */
@media screen {
[data-print-only] {
display: none !important;
}
}