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
56 lines
1.5 KiB
Markdown
Executable File
56 lines
1.5 KiB
Markdown
Executable File
---
|
|
name: Vibrant
|
|
colors:
|
|
primary: "#7C61D4"
|
|
secondary: "#EAAE87"
|
|
success: "#16A34A"
|
|
warning: "#D97706"
|
|
danger: "#DC2626"
|
|
surface: "#FFFFFF"
|
|
text: "#2F281D"
|
|
neutral: "#FFFFFF"
|
|
typography:
|
|
h1:
|
|
fontFamily: "Fascinate"
|
|
fontSize: 2.5rem
|
|
body-md:
|
|
fontFamily: "Noto Sans"
|
|
fontSize: 1rem
|
|
label-caps:
|
|
fontFamily: "Fira Code"
|
|
fontSize: 0.875rem
|
|
sourceScale: "14/16/18/24/32/40"
|
|
weights: "100, 200, 300, 400, 500, 600, 700, 800, 900"
|
|
rounded:
|
|
sm: 4px
|
|
md: 8px
|
|
spacing:
|
|
sm: 2px
|
|
md: 4px
|
|
sourceScale: "2/4/8/12/16/24/32/48"
|
|
---
|
|
|
|
## Overview
|
|
|
|
Lively, colorful design with bold playful typography, warm accents, and dynamic visual energy.
|
|
|
|
## Style Foundations
|
|
|
|
- **Visual style:** modern, clean, bold, playful
|
|
- **Typography scale:** 14/16/18/24/32/40
|
|
- **Typography fonts:** primary=Noto Sans, display=Fascinate, mono=Fira Code
|
|
- **Typography weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
|
- **Color palette:** primary, secondary, neutral, success
|
|
- **Spacing scale:** 2/4/8/12/16/24/32/48
|
|
|
|
## Colors
|
|
|
|
- **Primary (#7C61D4):** Token from style foundations.
|
|
- **Secondary (#EAAE87):** 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 (#2F281D):** Token from style foundations.
|
|
- **Neutral (#FFFFFF):** Derived from the surface token for official format compatibility.
|