Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c144fe8c4 | ||
|
|
4f2f064955 | ||
|
|
2f99bd5f98 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@jorgecuadros/api",
|
||||
"version": "1.0.21",
|
||||
"version": "1.0.22",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "nest build",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@jorgecuadros/web",
|
||||
"version": "1.0.21",
|
||||
"version": "1.0.22",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev -p 4500",
|
||||
|
||||
@@ -3114,3 +3114,61 @@ button {
|
||||
border-color: var(--brand-500);
|
||||
color: var(--brand-700);
|
||||
}
|
||||
|
||||
/* ============================================================================
|
||||
Layout + text utilities the screens already assumed
|
||||
Several components were written against these names before any rule
|
||||
defined them, so they rendered as bare inline spans. The visible symptom
|
||||
was the policy OCR review header running together —
|
||||
"Para revisarPágina 1700489616· PAMELA DENISE WAGONERLICENCIASANA" —
|
||||
because JSX drops the newline between sibling elements and the `gap` those
|
||||
call sites pass does nothing without a flex container.
|
||||
========================================================================== */
|
||||
.row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.stack {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
}
|
||||
/* The muted line under a page title, and the same voice reused inline. Only
|
||||
the block form takes a margin — as a flex child it would shift the item
|
||||
off the row's centre line. */
|
||||
.page-sub {
|
||||
color: var(--muted);
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
p.page-sub {
|
||||
margin: 0.25rem 0 0;
|
||||
}
|
||||
/* A neutral chip. Same shape as `.badge` so the OCR statuses, policy type and
|
||||
carrier read as the labels they are rather than as running prose. */
|
||||
.tag {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.375rem;
|
||||
padding: 0.1875rem 0.5625rem;
|
||||
border-radius: 999px;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.01em;
|
||||
line-height: 1.4;
|
||||
white-space: nowrap;
|
||||
background: var(--paper-2);
|
||||
color: var(--muted);
|
||||
border: 1px solid var(--line-strong);
|
||||
}
|
||||
/* The warning sibling of `.state-error`, used where a page needs a human to
|
||||
choose between candidates rather than reporting a failure. */
|
||||
.state-warn {
|
||||
background: var(--servicios-tint);
|
||||
border: 1px solid rgba(154, 106, 18, 0.25);
|
||||
color: var(--servicios-ink);
|
||||
border-radius: var(--radius);
|
||||
padding: 1rem 1.125rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
@@ -181,8 +181,11 @@ export function PolicyOcrReview({ id }: { id: string }) {
|
||||
{STATUS_LABEL[batch.status] ?? batch.status}
|
||||
</p>
|
||||
</div>
|
||||
<Link className="btn btn-ghost" href="/polizas">
|
||||
Volver a pólizas
|
||||
{/* Back to the capture screen this batch was uploaded from, not to
|
||||
the policy list — same as the statement review screen, which
|
||||
returns to /recibos. */}
|
||||
<Link className="btn btn-ghost" href="/polizas/captura">
|
||||
Volver a captura
|
||||
</Link>
|
||||
</header>
|
||||
|
||||
@@ -359,11 +362,12 @@ function DocumentRow({ doc, customerIndex, canReview, onSave, onReject }: Docume
|
||||
<header className="row" style={{ gap: 12, alignItems: "center" }}>
|
||||
<span className="tag">{STATUS_LABEL[doc.status] ?? doc.status}</span>
|
||||
<span className="page-sub">Página {doc.pageNumber}</span>
|
||||
{doc.extractedPolicyNumber && (
|
||||
<strong style={{ marginLeft: 8 }}>{doc.extractedPolicyNumber}</strong>
|
||||
)}
|
||||
{/* No hand-rolled separators or margins here: `.row` is a flex
|
||||
container and its gap does the spacing. A literal "· " would leave
|
||||
a dot floating in that gap. */}
|
||||
{doc.extractedPolicyNumber && <strong>{doc.extractedPolicyNumber}</strong>}
|
||||
{doc.extractedInsuredName && (
|
||||
<span className="page-sub">· {doc.extractedInsuredName}</span>
|
||||
<span className="page-sub">{doc.extractedInsuredName}</span>
|
||||
)}
|
||||
{/* Read-only: the parser names the type, the confirm step resolves it
|
||||
to a policy_types row. Reassigning it is the policy screen's job,
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "jorgecuadros-platform",
|
||||
"version": "1.0.21",
|
||||
"version": "1.0.22",
|
||||
"private": true,
|
||||
"workspaces": [
|
||||
"apps/*",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@jorgecuadros/database",
|
||||
"version": "1.0.21",
|
||||
"version": "1.0.22",
|
||||
"private": true,
|
||||
"main": "generated/client/index.js",
|
||||
"types": "generated/client/index.d.ts",
|
||||
|
||||
Reference in New Issue
Block a user