From 46e3424aff23038dc6d5fd4ba8aa0c194945eba2 Mon Sep 17 00:00:00 2001 From: bruno moniz Date: Thu, 18 Jun 2026 11:37:37 -0300 Subject: [PATCH 1/3] feat(landing): SP2 build infra + scenario data foundation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No-basePath public landing export, separate from the /app build: - next.config.ts: split .next cache via NEXT_DIST_DIR; document the two builds - package.json: build:public (MARKETING_BUILD=1, no basePath) → export-landing - scripts/export-landing.mjs: stage out/ → out-public/ with /_next assets, preserve favicon.svg/privacidade/termos/plano from zinom-site/public, assert index.html references /_next/ with no /app prefix - marketing.css: landing.css ported, re-tokenized to Refined Editorial (teal #2f5d50, Inter/JetBrains Mono self-hosted, warm paper bg) - icons.tsx: ICONS map ported to React SVG components (no innerHTML) - useReveal.ts: watchVisible() ported (IO + scroll/resize fallback, reduced-motion) - hooks/marketing-access.ts: register/request-invite via raw same-origin fetch - lib/marketing/{feed,chat}-scenario.ts: pure scripted demo data Co-Authored-By: Claude Opus 4.8 (1M context) --- web/.gitignore | 2 + web/components/marketing/icons.tsx | 132 +++++++ web/components/marketing/marketing.css | 501 +++++++++++++++++++++++++ web/components/marketing/useReveal.ts | 74 ++++ web/hooks/marketing-access.ts | 46 +++ web/lib/marketing/chat-scenario.ts | 113 ++++++ web/lib/marketing/feed-scenario.ts | 106 ++++++ web/next.config.ts | 8 + web/package.json | 2 + web/scripts/export-landing.mjs | 104 +++++ 10 files changed, 1088 insertions(+) create mode 100644 web/components/marketing/icons.tsx create mode 100644 web/components/marketing/marketing.css create mode 100644 web/components/marketing/useReveal.ts create mode 100644 web/hooks/marketing-access.ts create mode 100644 web/lib/marketing/chat-scenario.ts create mode 100644 web/lib/marketing/feed-scenario.ts create mode 100644 web/scripts/export-landing.mjs diff --git a/web/.gitignore b/web/.gitignore index c9c60f5..112e5ba 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -1,6 +1,8 @@ node_modules .next +.next-public out +out-public next-env.d.ts test-results playwright-report diff --git a/web/components/marketing/icons.tsx b/web/components/marketing/icons.tsx new file mode 100644 index 0000000..623081d --- /dev/null +++ b/web/components/marketing/icons.tsx @@ -0,0 +1,132 @@ +// Inline SVG icons for the public landing, ported 1:1 from the ICONS map in +// zinom-site/public/landing.js. Rendered as React components (no innerHTML, no +// inline