diff --git a/pitch-deck/app/pitch-print/[versionId]/_components/PrintDiagrams.tsx b/pitch-deck/app/pitch-print/[versionId]/_components/PrintDiagrams.tsx index 7fdf77b..c27628b 100644 --- a/pitch-deck/app/pitch-print/[versionId]/_components/PrintDiagrams.tsx +++ b/pitch-deck/app/pitch-print/[versionId]/_components/PrintDiagrams.tsx @@ -131,57 +131,90 @@ export function ArchitectureDiagram({ /** Layer pill: "01 · APPLICATION LAYER" + sub-label */ const LayerChip = ({ n, label, sub, tint }: { n: string; label: string; sub: string; tint: string }) => ( -
- {n} · {label} - {sub} +
+ {n} · {label} + {sub}
) - const productLayerBg = `linear-gradient(135deg, ${COLORS.violet50} 0%, #ffffff 50%, ${COLORS.violet50} 100%)` - const proxyLayerBg = `linear-gradient(135deg, ${COLORS.amber50} 0%, #fffaf0 50%, ${COLORS.amber50} 100%)` + /** + * ServiceNode — flat, no own border. Used INSIDE a tinted layer card so the + * whole layer reads as one panel rather than nested boxes (which is what + * was causing the architecture diagram to overflow). + */ + const ServiceNode = ({ kicker, title, subtitle, items, footer, accent }: { kicker?: string; title: string; subtitle?: string; items: string[]; footer?: string; accent: string }) => ( +
+ {kicker &&
{kicker}
} +
{title}
+ {subtitle &&
{subtitle}
} +
+ {items.slice(0, 4).map((it, i) => ( +
0 ? `1px solid ${COLORS.slate100}` : 'none' }}>· {it}
+ ))} +
+ {footer &&
{footer}
} +
+ ) + + const productLayerBg = `linear-gradient(135deg, ${COLORS.violet50} 0%, #ffffff 60%, ${COLORS.violet50} 100%)` + const proxyLayerBg = `linear-gradient(135deg, ${COLORS.amber50} 0%, #fffaf0 60%, ${COLORS.amber50} 100%)` return (
{/* APPLICATION (PRODUCT) LAYER */} -
+
-
+
{product.map((p, i) => ( - + ))}
- {/* connectors */} -
- {[0, 1, 2].map(i => )} + {/* compact connector strip */} +
+ {[0, 1, 2].map(i => ( +
+ + + + +
+ ))}
- {/* GATEWAY LAYER */} -
+ {/* GATEWAY LAYER — compact: title row + features in 1 row */} +
-
- {proxy.title} - {proxy.subtitle} +
+ {proxy.title} + {proxy.subtitle}
-
+
{proxy.features.map((f, i) => ( -
{f}
+
{f}
))}
- {/* connectors */} -
- {[0, 1, 2].map(i => )} + {/* compact connector strip */} +
+ {[0, 1, 2].map(i => ( +
+ + + + +
+ ))}
{/* INFRASTRUCTURE (INFERENCE) LAYER */} -
+
-
+
{inference.map((p, i) => ( - + ))}