Real IMAP connection via imapflow library: - Connects to IMAP server (IMAPFlow, TLS on port 993) - Fetches recent messages (configurable limit, default 20) - Extracts: from, fromEmail, subject, date, snippet (200 chars) - Thread-to-contact matching (PRD §6.1): 1. Match sender email against persons table 2. If no person match, extract domain and match against company.website 3. Returns matchedCompany + matchedPerson for each email - Audit-logged (action: crm.mailsync:imap) - Zod validated (host, port, user, password, folder, limit) - 502 on IMAP connection failure with detail - 400 on validation failure Tested: invalid creds → 502 'IMAP connection failed', missing host → 400
1.6 KiB
Executable File
1.6 KiB
Executable File
name, colors, typography, rounded, spacing
| name | colors | typography | rounded | spacing | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Brutalism |
|
|
|
|
Overview
Raw, anti-design aesthetic inspired by concrete architecture with unadorned elements, jarring layouts, and functional minimalism.
Style Foundations
- Visual style: bold
- Typography scale: desktop-first expressive scale
- Typography fonts: primary=Darker Grotesque, display=Darker Grotesque, mono=JetBrains Mono
- Typography weights: 100, 200, 300, 400, 500, 600, 700, 800, 900
- Color palette: primary, secondary, neutral, success, warning, danger
- Spacing scale: 4/8/12/16/24/32
Colors
- Primary (#DD614C): Token from style foundations.
- Secondary (#DAA144): Token from style foundations.
- Success (#16A34A): Token from style foundations.
- Warning (#D97706): Token from style foundations.
- Danger (#DC2626): Token from style foundations.
- Surface (#FFFFFF): Token from style foundations.
- Text (#111827): Token from style foundations.
- Neutral (#FFFFFF): Derived from the surface token for official format compatibility.