From 47710908a82bcd9affff3a4d1759962d1b2fc42c Mon Sep 17 00:00:00 2001 From: "Abdullah." <125115953+mabdullahabaid@users.noreply.github.com> Date: Fri, 24 Apr 2026 21:40:09 +0500 Subject: [PATCH] [Website] Architecture, hardening, and perf pass. (#20020) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR is the result of a critical architectural review of `twenty-website-new` and the follow-on cleanup work. It does not touch any other package. Scope is everything except the enterprise/billing routes (deferred to a separate PR) and CI wiring (also deferred). ### Why The package had grown organically: ad-hoc scroll/motion/halftone code per section, WebGL renderers instantiated raw, sections without a shared shape contract, route-scoped files leaking across layers, public API routes without rate limiting / timeouts / schema validation, unbounded module-level caches in visual code, drag/resize handlers re-rendering React 60x/sec, no security headers, and a Lottie scroll-mapping that would silently drift if the asset got re-exported. We needed contracts and primitives in place before further work (i18n, decomposition of the giant visual files, MDX migration of customer/legal pages) is safe to do. ### What changed **Layering and contracts (now enforced, not just documented).** - New layering rule: `app → sections → lib → design-system / theme / icons`. Cross-section reuse goes through `lib/`. Flipped the design-system import rule from warn to error. - Extracted shared primitives into `lib/`: `scroll`, `motion`, `halftone`, `customers`, `partner-application`, `api`, `seo`, `semver`, `community`, `visual-runtime`. - Lifted route-scoped data/types out of `app/` into `lib/` + `sections/`. - Section shape contract: every section exposes a single compound export from `components/index.ts(x)`; non-leaf sections own the outer `
` from `Root.tsx`; named slots are matched by `displayName` (no `Children.toArray` positional indexing). Enforced by `scripts/check-section-shape.mjs`. - WebGL boundary: `new THREE.WebGLRenderer(...)` is forbidden outside `src/lib/visual-runtime/`. Everything goes through `createSiteWebGlRenderer`, which enforces the site-wide context cap, the `NEXT_PUBLIC_DISABLE_HEAVY_VISUALS` kill switch, and GPU/power-preference defaults. Enforced by `scripts/check-boundaries.mjs` with per-line `boundary-allow-next-line:` escape hatches and stale-directive detection. **Design system grew to cover real cases.** - Added Modal, Form, and Layout primitives (Stack / Inline / Grid) so sections stop reinventing them. Built on `@base-ui/react` for accessibility + focus management. **Public API hardening (non-enterprise).** - New `lib/api/` primitives: `createRateLimiter` (in-memory token bucket), `fetchWithTimeout`, `readJsonBody` (Zod-validated). Applied to newsletter, community, and partner-application routes. `/api/partner-application` specifically got a per-IP rate limit, body cap, and timeout. **Performance.** - `DraggableTerminal` and `DraggableAppWindow`: `pointermove` now mutates `transform` (via `translate3d`) and `width`/`height` directly on the DOM ref. React state commits only on `pointerup`. Eliminates per-frame re-renders during interaction. - `createBoundedFailureCache` (FIFO, 256 entries) replaces unbounded module-level failure caches in four visual components. Bounds memory growth from bad asset URLs. **Lottie frame-map guard.** - `dotlottie-react`'s `player.totalFrames` returns a raw float (`op - ip`), not an integer. The HomeStepper scroll → frame map is keyed to the authored timeline, so silent drift would desync every step boundary. - Reads now `Math.floor(player.totalFrames)` consistently. - `scripts/check-lottie-frames.mjs` extracts `op - ip` from `public/lottie/stepper/stepper.lottie` at build time and asserts it against `HOME_STEPPER_LOTTIE_EXPECTED_TOTAL_FRAMES`. If anyone re-exports the Lottie, the build fails until both that constant and every `STEP_*_END` are updated together. **Security headers (`next.config.ts`).** - HSTS, `X-Content-Type-Options: nosniff`, `Referrer-Policy: strict-origin-when-cross-origin`, `Permissions-Policy` (camera/mic/geolocation/payment off), `X-Frame-Options: DENY`, `Content-Security-Policy: frame-ancestors 'none'`. - Full CSP intentionally deferred until we enumerate all third-party origins (Cal.com, Stripe, GitHub avatars, twenty-icons.com, etc.). **Build / config quirks documented in code.** - `tsconfig.json` is standalone (does NOT extend the monorepo base) — Next.js + React Compiler require options that conflict with the base config. - `sharp` moved from `devDependencies` to `dependencies` so production image optimization works. ### What's deliberately NOT in this PR - **Enterprise / billing routes** — open redirect on `/api/enterprise/checkout`, indefinite-bearer JWT, non-idempotent Stripe seat updates, unpinned Stripe `apiVersion`, missing webhook reconciliation, inconsistent error envelope. Going out as a separate, security-focused PR. - **CI workflow for `twenty-website-new`** (`lint` / `typecheck` / `test` / `build` targets) — separate follow-up PR. - **i18n via Lingui** — decision made (we need internationalization and we already use Lingui in `twenty-front` / `twenty-emails`); 4-phase migration plan exists but does not land here. - **Decomposition of giant visual files** (HomeVisual, ThreeCards visuals) — blocked on the i18n landing first; otherwise we'd rebase the world twice. - **Customer / legal pages → MDX** — same reason. - **Selective memoization pass** — needs browser profiling, not blind `useMemo`. - **Pre-existing lint errors / typecheck noise** (~44 errors, ~41 warnings, plus generated Next.js types and `@ts-nocheck` files) are unchanged. The cleanup did not introduce new ones. ### Test plan - [ ] `yarn install` - [ ] `yarn nx run twenty-website-new:dev` — homepage, customers, partner, enterprise activate, blog, why-twenty, plans/pricing, legal pages render. - [ ] HomeStepper: scroll through, confirm the Lottie animation lines up with every step boundary. Console must NOT log a `totalFrames` mismatch. - [ ] HomeVisual: drag and resize the terminal + app window; verify smoothness (no per-frame React re-renders) and that final position/size persists on release. - [ ] Public API endpoints: hit `/api/newsletter`, `/api/community`, `/api/partner-application` with bad payloads → expect 4xx with Zod errors, not 500s. Hammer `/api/partner-application` past the per-IP limit → 429. - [ ] Response headers on any page include HSTS, nosniff, referrer policy, permissions policy, X-Frame-Options, and `frame-ancestors 'none'` CSP. - [ ] `yarn nx run twenty-website-new:lint` — error/warning count must not exceed the pre-existing baseline. - [ ] `yarn nx run twenty-website-new:typecheck` — same baseline rule. - [ ] `node packages/twenty-website-new/scripts/check-boundaries.mjs` — passes, no stale directives. - [ ] `node packages/twenty-website-new/scripts/check-section-shape.mjs` — passes. - [ ] `node packages/twenty-website-new/scripts/check-lottie-frames.mjs` — passes. - [ ] `yarn nx run twenty-website-new:build` — green, including the three checks above if wired into the build target. --- packages/twenty-website-new/.env.example | 23 +- packages/twenty-website-new/.gitignore | 4 + packages/twenty-website-new/.oxlintrc.json | 89 +- packages/twenty-website-new/README.md | 11 +- packages/twenty-website-new/jest.config.mjs | 5 +- packages/twenty-website-new/next.config.ts | 29 +- .../output/playwright/customers-reference.png | Bin 63551 -> 0 bytes .../output/playwright/partners-full-after.png | Bin 403526 -> 0 bytes .../output/playwright/partners-seam-after.png | Bin 39514 -> 0 bytes packages/twenty-website-new/package.json | 5 +- packages/twenty-website-new/project.json | 55 +- .../common/glass-environment.jpg | Bin 0 -> 180052 bytes .../scripts/check-boundaries.mjs | 227 ++ .../scripts/check-lottie-frames.mjs | 118 + .../scripts/check-section-shape.mjs | 202 ++ .../src/app/(home)/_constants/index.ts | 7 - .../{_constants/helped.ts => helped.data.ts} | 0 .../{_constants/hero.ts => hero.data.ts} | 2 +- .../home-stepper.ts => home-stepper.data.ts} | 0 .../src/app/(home)/page.tsx | 42 +- .../problem.ts => problem.data.ts} | 0 .../testimonials.ts => testimonials.data.ts} | 0 ...feature.ts => three-cards-feature.data.ts} | 0 ...on.ts => three-cards-illustration.data.ts} | 0 .../app/_components/FooterVisibilityGate.tsx | 4 +- .../_components/ScrollToTopOnRouteChange.tsx | 24 + .../src/app/_constants/index.ts | 4 - .../src/app/api/enterprise/activate/route.ts | 6 +- .../src/app/api/enterprise/checkout/route.ts | 2 +- .../src/app/api/enterprise/portal/route.ts | 4 +- .../src/app/api/enterprise/seats/route.ts | 4 +- .../src/app/api/enterprise/status/route.ts | 6 +- .../src/app/api/enterprise/validate/route.ts | 6 +- .../__tests__/route.test.ts | 299 +++ .../src/app/api/partner-application/route.ts | 126 +- .../ContactCalModal/ContactCalModal.tsx | 145 -- .../src/app/customers/9dots/page.tsx | 11 +- .../_components/CustomersCaseStudySignoff.tsx | 4 +- .../src/app/customers/act-education/page.tsx | 11 +- .../customers/alternative-partners/page.tsx | 11 +- .../app/customers/elevate-consulting/page.tsx | 11 +- .../src/app/customers/netzero/page.tsx | 11 +- .../src/app/customers/page.tsx | 32 +- .../src/app/customers/w3villa/page.tsx | 11 +- .../activate/EnterpriseActivateClient.tsx | 23 +- .../src/app/enterprise/activate/page.tsx | 12 +- .../halftone/_components/ControlsPanel.tsx | 2 +- .../halftone/_components/HalftoneStudio.tsx | 58 +- .../_components/controls/AnimationsTab.tsx | 2 +- .../_components/controls/DesignTab.tsx | 2 +- .../_components/controls/ExportTab.tsx | 2 +- .../_components/controls/controls-ui.tsx | 10 +- .../src/app/halftone/_lib/exporters.test.ts | 45 +- .../src/app/halftone/_lib/exporters.ts | 28 +- .../src/app/halftone/_lib/formatters.ts | 33 +- .../src/app/halftone/_lib/imageSvgExport.ts | 15 +- .../src/app/halftone/_lib/share.ts | 5 +- .../src/app/halftone/page.tsx | 6 +- .../twenty-website-new/src/app/layout.tsx | 79 +- .../src/app/partners/_constants/index.ts | 5 - .../BecomePartnerButton.tsx | 3 +- .../PartnerApplication/PartnerHeroCtas.tsx | 2 +- .../PartnerApplication/PartnerSignoffCtas.tsx | 2 +- .../components/PartnerApplication/index.ts | 1 - ...gement-band.ts => engagement-band.data.ts} | 0 .../{_constants/hero.ts => hero.data.ts} | 0 .../src/app/partners/page.tsx | 43 +- .../signoff.ts => signoff.data.ts} | 0 .../testimonials.ts => testimonials.data.ts} | 0 ...on.ts => three-cards-illustration.data.ts} | 0 .../src/app/pricing/_constants/index.ts | 5 - ...gement-band.ts => engagement-band.data.ts} | 0 .../{_constants/hero.ts => hero.data.ts} | 0 .../src/app/pricing/page.tsx | 34 +- .../plan-table.ts => plan-table.data.ts} | 0 .../salesforce.ts => salesforce.data.ts} | 0 .../src/app/privacy-policy/page.tsx | 14 +- .../src/app/product/_constants/demo.ts | 24 - .../src/app/product/_constants/index.ts | 7 - .../src/app/product/_constants/tabs.ts | 65 - .../feature.ts => feature.data.ts} | 0 .../{_constants/hero.ts => hero.data.ts} | 0 .../src/app/product/page.tsx | 44 +- .../signoff.ts => signoff.data.ts} | 0 .../stepper.ts => stepper.data.ts} | 0 .../three-cards.ts => three-cards.data.ts} | 0 .../{_constants/hero.ts => hero.data.ts} | 4 +- .../src/app/releases/page.tsx | 23 +- packages/twenty-website-new/src/app/robots.ts | 6 +- .../twenty-website-new/src/app/sitemap.ts | 6 +- .../twenty-website-new/src/app/terms/page.tsx | 14 +- .../why-twenty/_constants/editorial-two.ts | 7 - .../src/app/why-twenty/_constants/index.ts | 11 - .../src/app/why-twenty/_constants/quote.ts | 9 - .../why-twenty/_constants/statement-one.ts | 8 - .../why-twenty/_constants/statement-two.ts | 8 - .../src/app/why-twenty/_constants/stepper.ts | 17 - ...itorial-four.ts => editorial-four.data.ts} | 0 ...editorial-one.ts => editorial-one.data.ts} | 0 ...orial-three.ts => editorial-three.data.ts} | 0 .../{_constants/hero.ts => hero.data.ts} | 0 .../marquee.ts => marquee.data.ts} | 0 .../src/app/why-twenty/page.tsx | 67 +- .../signoff.ts => signoff.data.ts} | 0 .../src/components/VisibleWhenTabActive.tsx | 40 - .../src/components/WebGlWhenInViewport.tsx | 110 - .../src/content/releases/0.10.0.mdx | 2 +- .../src/content/releases/0.11.0.mdx | 2 +- .../src/content/releases/0.12.0.mdx | 2 +- .../src/content/releases/0.2.3.mdx | 2 +- .../src/content/releases/0.21.0.mdx | 1 - .../src/content/releases/0.23.0.mdx | 2 +- .../src/content/releases/0.24.0.mdx | 2 +- .../src/content/releases/0.3.0.mdx | 2 +- .../src/content/releases/0.3.1.mdx | 1 - .../src/content/releases/0.3.2.mdx | 2 +- .../src/content/releases/0.3.3.mdx | 3 +- .../src/content/releases/0.30.0.mdx | 4 +- .../src/content/releases/0.31.0.mdx | 2 +- .../src/content/releases/0.32.0.mdx | 2 +- .../src/content/releases/0.33.0.mdx | 4 +- .../src/content/releases/0.34.0.mdx | 2 +- .../src/content/releases/0.35.0.mdx | 2 +- .../src/content/releases/0.4.0.mdx | 3 +- .../src/content/releases/0.40.0.mdx | 3 +- .../src/content/releases/0.41.0.mdx | 2 +- .../src/content/releases/0.42.0.mdx | 4 +- .../src/content/releases/0.43.0.mdx | 2 +- .../src/content/releases/0.44.0.mdx | 2 - .../src/content/releases/0.50.0.mdx | 2 - .../src/content/releases/0.52.0.mdx | 2 +- .../src/content/releases/1.00.0.mdx | 5 +- .../src/content/releases/1.10.0.mdx | 1 - .../src/content/releases/1.11.0.mdx | 2 - .../src/content/releases/1.12.0.mdx | 1 - .../src/content/releases/1.2.0.mdx | 2 +- .../src/content/releases/1.5.0.mdx | 2 +- .../src/content/releases/1.6.0.mdx | 2 +- .../src/content/releases/1.7.0.mdx | 4 +- .../src/content/releases/1.8.0.mdx | 1 - .../site/asset-paths.ts} | 3 +- .../components/{Body => }/Body.tsx | 5 +- .../components/Body/types/Body.ts | 3 - .../components/Button/BaseButton.tsx | 14 +- .../components/Button/ButtonShape.tsx | 15 +- .../components/{Container => }/Container.tsx | 0 .../components/{Eyebrow => }/Eyebrow.tsx | 5 +- .../components/Eyebrow/types/Eyebrow.ts | 3 - .../design-system/components/Form/Form.tsx | 155 ++ .../design-system/components/Form/index.ts | 2 + .../components/GuideCrosshair.tsx | 185 ++ .../GuideCrosshair/GuideCrosshair.tsx | 140 -- .../components/{Heading => }/Heading.tsx | 9 +- .../components/Heading/types/Heading.ts | 7 - .../{IconButton => }/IconButton.tsx | 45 +- .../components/{Image => }/Image.tsx | 6 +- .../components/Image/types/Image.ts | 4 - .../design-system/components/Layout/Grid.tsx | 55 + .../components/Layout/Inline.tsx | 82 + .../design-system/components/Layout/Stack.tsx | 53 + .../design-system/components/Layout/index.ts | 6 + .../design-system/components/Modal/Modal.tsx | 123 + .../design-system/components/Modal/index.ts | 2 + .../StepperProgressRail.tsx | 0 .../src/design-system/components/index.ts | 29 +- .../twenty-website-new/src/enums/pages.ts | 9 - .../icons/clients/alternative-partners.tsx | 5 +- .../src/icons/clients/elevate-consulting.tsx | 5 +- .../src/icons/functional/ArrowLeft.tsx | 3 +- .../src/icons/functional/ArrowRight.tsx | 3 +- .../src/icons/functional/ArrowRightUp.tsx | 8 +- .../src/icons/functional/Close.tsx | 2 +- .../src/icons/functional/Menu.tsx | 2 +- .../src/icons/functional/Minus.tsx | 2 +- .../src/icons/functional/RatingStar.tsx | 5 +- .../src/icons/informative/Book.tsx | 6 +- .../src/icons/informative/Check.tsx | 12 +- .../src/icons/informative/Code.tsx | 6 +- .../src/icons/informative/Edit.tsx | 6 +- .../src/icons/informative/Eye.tsx | 6 +- .../src/icons/informative/Search.tsx | 6 +- .../src/icons/informative/Tag.tsx | 6 +- .../src/icons/informative/Users.tsx | 6 +- .../src/icons/logo/Logo.tsx | 8 +- .../src/icons/social/Discord.tsx | 2 +- .../src/icons/social/GitHub.tsx | 2 +- .../src/icons/social/LinkedIn.tsx | 2 +- .../twenty-website-new/src/icons/social/X.tsx | 2 +- .../src/illustrations/Hero/ProductEffect.tsx | 2053 --------------- .../Hero/WhyTwentyHeroHalftone.tsx | 1991 --------------- .../src/illustrations/Quote/Quotes.tsx | 2076 ---------------- .../illustrations/Testimonials/Hourglass.tsx | 544 ---- .../ThreeCards/PartnerThreeCard.tsx | 2190 ----------------- .../src/illustrations/illustration-mount.tsx | 25 - .../illustrations/illustrations-registry.tsx | 85 - .../src/illustrations/index.ts | 7 - .../api/__tests__/fetch-with-timeout.test.ts | 118 + .../src/lib/api/__tests__/rate-limit.test.ts | 148 ++ .../lib/api/__tests__/read-json-body.test.ts | 95 + .../src/lib/api/fetch-with-timeout.ts | 27 + .../twenty-website-new/src/lib/api/index.ts | 8 + .../src/lib/api/rate-limit.ts | 78 + .../src/lib/api/read-json-body.ts | 46 + .../community/fetch-discord-member-count.ts | 31 +- .../lib/community/fetch-github-star-count.ts | 43 +- .../contact-cal}/CalFormEmbed.tsx | 2 +- .../src/lib/contact-cal/ContactCalModal.tsx | 69 + .../contact-cal}/ContactCalModalRoot.tsx | 0 .../contact-cal}/TalkToUsButton.tsx | 0 .../contact-cal/config.ts} | 0 .../contact-cal}/index.ts | 0 .../customers}/case-study-catalog.ts | 2 +- .../_constants => lib/customers}/index.ts | 11 +- .../_constants => lib/customers}/types.ts | 2 +- .../src/lib/debug/overflow-probe.tsx | 114 - .../enterprise/enterprise-jwt.ts | 0 .../enterprise/stripe-client.ts | 0 .../enterprise/stripe-subscription-helpers.ts | 2 - .../halftone/__tests__}/footprint.test.ts | 46 +- .../halftone/__tests__}/state.test.ts | 2 +- .../_lib => lib/halftone}/footprint.ts | 2 - .../halftone}/geometry-registry.ts | 4 +- .../halftone/halftone-canvas.tsx} | 16 +- .../src/lib/halftone/index.ts | 41 + .../_lib => lib/halftone}/materials.ts | 2 +- .../halftone/_lib => lib/halftone}/state.ts | 0 .../src/lib/motion/index.ts | 5 + .../src/lib/motion/use-media-query.ts | 28 + .../lib/motion/use-prefers-reduced-motion.ts | 13 + packages/twenty-website-new/src/lib/pages.ts | 11 + .../PartnerApplicationModal.tsx | 447 ++-- .../PartnerApplicationModalRoot.tsx | 4 +- .../src/lib/partner-application/index.ts | 12 + .../partner-application-modal-data.ts} | 0 .../fetch-latest-release-tag.ts | 0 .../releases/get-latest-release-preview.ts | 12 +- .../src/lib/releases/get-visible-releases.ts | 6 +- .../__tests__/compute-scroll-progress.test.ts | 43 + .../src/lib/scroll/compute-scroll-progress.ts | 15 + .../src/lib/scroll/index.ts | 4 + .../src/lib/scroll/scroll-progress-effect.tsx | 20 + .../src/lib/scroll/use-scheduled-on-scroll.ts | 49 + .../src/lib/scroll/use-scroll-progress.ts | 48 + .../compare-semantic-versions.test.ts | 90 + .../lib/semver/compare-semantic-versions.ts | 75 +- .../seo/__tests__/build-page-metadata.test.ts | 132 + .../src/lib/seo/build-page-metadata.ts | 97 + .../twenty-website-new/src/lib/seo/index.ts | 5 + .../src/lib/seo/site-url.ts | 24 + .../src/lib/stepper/index.ts | 2 +- .../src/lib/stepper/stepper-swipe-deck.tsx | 32 +- .../src/lib/stepper/use-stepper-md-up.ts | 28 +- .../__tests__/bounded-failure-cache.test.ts | 51 + .../active-webgl-context-budget.ts | 58 + .../visual-runtime/bounded-failure-cache.ts | 28 + .../create-site-webgl-renderer.ts | 54 + .../lib/visual-runtime/draco-decoder-path.ts | 4 + .../src/lib/visual-runtime/frame-timer.ts | 23 + .../src/lib/visual-runtime/index.ts | 33 + .../textures/glass-environment.ts | 2 + .../lib/visual-runtime/use-webgl-policy.ts | 40 + .../visual-runtime/visual-runtime-policy.ts | 85 + .../visual-runtime/webgl-error-boundary.tsx | 41 + .../src/lib/visual-runtime/webgl-mount.tsx | 160 ++ .../lib/webgl/create-site-webgl-renderer.ts | 14 - .../twenty-website-new/src/lib/webgl/index.ts | 4 - .../CaseStudy/components/{Body => }/Body.tsx | 0 .../components/CaseStudySectionNav.tsx | 15 +- .../CaseStudy/components/{Hero => }/Hero.tsx | 4 +- .../{Highlights => }/Highlights.tsx | 0 .../components/{TextBlock => }/TextBlock.tsx | 55 +- .../{VisualBlock => }/VisualBlock.tsx | 2 +- .../sections/CaseStudy/components/index.ts | 10 +- .../components/{Card => }/Card.tsx | 36 +- .../components/{Grid => }/Grid.tsx | 12 +- .../components/{Promo => }/Promo.tsx | 4 +- .../CaseStudyCatalog/components/index.ts | 6 +- .../visuals}/CustomerCasesCover.tsx | 7 +- .../CaseStudyCatalog/visuals}/PromoMic.tsx | 261 +- .../Demo/components/{Cta => }/Cta.tsx | 0 .../Demo/components/{Heading => }/Heading.tsx | 2 +- .../Demo/components/{Root => }/Root.tsx | 0 .../{Screenshot => }/Screenshot.tsx | 2 +- .../src/sections/Demo/components/index.ts | 8 +- .../src/sections/Demo/types/DemoData.ts | 6 +- .../Editorial/components/{Body => }/Body.tsx | 15 +- .../components/{Eyebrow => }/Eyebrow.tsx | 2 +- .../components/{Heading => }/Heading.tsx | 2 +- .../components/{Intro => }/Intro.tsx | 0 .../Editorial/components/{Root => }/Root.tsx | 14 +- .../sections/Editorial/components/index.ts | 10 +- .../sections/Editorial/types/EditorialData.ts | 6 +- .../components/{Actions => }/Actions.tsx | 0 .../components/{Body => }/Body.tsx | 2 +- .../components/{Copy => }/Copy.tsx | 0 .../components/{Heading => }/Heading.tsx | 4 +- .../components/{Root => }/Root.tsx | 5 +- .../components/{Strip => }/Strip.tsx | 16 +- .../EngagementBand/components/index.ts | 12 +- .../types/EngagementBandData.ts | 4 +- .../sections/Faq/components/{Cta => }/Cta.tsx | 0 .../Faq/components/{Heading => }/Heading.tsx | 2 +- .../Faq/components/{Intro => }/Intro.tsx | 0 .../Faq/components/{Item => }/Item.tsx | 0 .../Faq/components/{Items => }/Items.tsx | 8 +- .../Faq/components/{Root => }/Root.tsx | 10 +- .../src/sections/Faq/components/index.ts | 10 +- .../faq.ts => sections/Faq/data.ts} | 3 +- .../src/sections/Faq/types/FaqData.ts | 6 +- .../src/sections/Faq/types/FaqQuestion.ts | 4 +- .../Faq/visuals}/Background.tsx | 13 +- .../Feature/components/{Intro => }/Intro.tsx | 4 +- .../Feature/components/{Root => }/Root.tsx | 0 .../sections/Feature/components/Tile/Tile.tsx | 2 +- .../Feature/components/Tile/TileVisual.tsx | 2 +- .../Feature/components/{Tiles => }/Tiles.tsx | 4 +- .../src/sections/Feature/components/index.ts | 6 +- .../src/sections/Feature/types/FeatureData.ts | 6 +- .../src/sections/Feature/types/FeatureTile.ts | 6 +- .../Footer/components/{Bottom => }/Bottom.tsx | 0 .../{FooterNavCta => }/FooterNavCta.tsx | 2 +- .../Footer/{ => components}/FooterShape.tsx | 14 +- .../Footer/components/{Logo => }/Logo.tsx | 0 .../Footer/components/{Nav => }/Nav.tsx | 2 +- .../Footer/components/{Root => }/Root.tsx | 12 +- .../src/sections/Footer/components/index.ts | 8 +- .../footer.ts => sections/Footer/data.ts} | 1 - .../src/sections/Footer/types/FooterData.ts | 2 - .../Footer/visuals}/Background.tsx | 13 +- .../Helped/components/{Card => }/Card.tsx | 29 +- .../{ => components}/HelpedCardShape.tsx | 0 .../Helped/components/{Root => }/Root.tsx | 0 .../Helped/components/{Scene => }/Scene.tsx | 2 +- .../src/sections/Helped/components/index.ts | 4 +- .../HelpedSceneScrollLayoutEffect.tsx | 38 +- .../src/sections/Helped/types/HeadingCard.ts | 9 +- .../src/sections/Helped/types/HelpedData.ts | 4 +- .../src/sections/Helped/types/index.ts | 2 + .../Helped/utils/helped-scene-layout.ts | 12 +- .../Helped/visuals}/HelpedHalftoneModel.tsx | 20 +- .../Helped/visuals}/Money.tsx | 2 +- .../Helped/visuals}/Spaceship.tsx | 2 +- .../Helped/visuals}/Target.tsx | 2 +- .../src/sections/Helped/visuals/index.ts | 11 + .../Hero/components/{Body => }/Body.tsx | 12 +- .../Hero/components/{Cta => }/Cta.tsx | 0 .../Hero/components/{Heading => }/Heading.tsx | 6 +- .../DraggableAppWindow/DraggableAppWindow.tsx | 72 +- .../DraggableTerminal/CursorLogo.tsx | 17 +- .../DraggableTerminal/DraggableTerminal.tsx | 79 +- .../TerminalDiff/DiffPill.tsx | 5 - .../TerminalDiff/diffData.ts | 7 - .../TerminalEditor/TerminalEditor.tsx | 9 - .../TerminalEditor/editorData.ts | 13 - .../TerminalEditor/editorTokens.ts | 2 - .../DraggableTerminal/TerminalPromptBox.tsx | 17 - .../DraggableTerminal/TerminalPromptChip.tsx | 2 - .../DraggableTerminal/TerminalSendButton.tsx | 6 +- .../TerminalTrafficLights.tsx | 24 +- .../conversation/AssistantResponse.tsx | 20 - .../conversation/ConversationPanel.tsx | 14 +- .../conversation/StreamingText.tsx | 7 - .../conversation/animationTiming.ts | 9 - .../conversation/rocketChangeset.ts | 10 +- .../DraggableTerminal/terminalTokens.ts | 2 - .../Hero/components/HomeVisual/HomeVisual.tsx | 78 +- .../HomeVisual/HomeVisualLoader.tsx | 4 +- .../Hero/components/HomeVisual/KanbanPage.tsx | 11 +- .../Hero/components/HomeVisual/TablePage.tsx | 22 +- .../WindowOrder/WindowOrderProvider.tsx | 14 - .../components/HomeVisual/homeVisualTokens.ts | 2 - .../HomeVisual/objectPinnedActions.ts | 17 - .../components/HomeVisual/rocketObject.ts | 15 +- .../components/HomeVisual/windowShadows.ts | 9 - .../PartnerVisual/PartnerHalftoneOverlay.tsx | 6 +- .../PartnerVisual/PartnerVisual.tsx | 7 +- .../Hero/components/ProductVisual.tsx | 10 + .../Hero/components/ReleaseNotesVisual.tsx | 10 + .../Hero/components/{Root => }/Root.tsx | 7 +- .../{WhyTwentyVisual => }/WhyTwentyVisual.tsx | 7 +- .../src/sections/Hero/components/index.ts | 26 +- .../src/sections/Hero/types/HeroBaseData.ts | 4 +- .../src/sections/Hero/types/HeroHomeData.ts | 10 - .../Hero/visuals}/HomeBackgroundHalftone.tsx | 20 +- .../Hero/visuals}/Milestone.tsx | 4 +- .../PartnerHeroHalftoneIllustration.tsx | 0 .../Hero/visuals}/Product.tsx | 0 .../sections/Hero/visuals/ProductEffect.tsx | 2050 +++++++++++++++ .../Hero/visuals}/ReleaseNotes.tsx | 0 .../Hero/visuals}/WhyTwenty.tsx | 18 +- .../Hero/visuals/WhyTwentyHeroHalftone.tsx | 2062 ++++++++++++++++ .../components/{Flow => }/Flow.tsx | 19 +- .../{LeftColumn => }/LeftColumn.tsx | 19 +- .../{ProgressBar => }/ProgressBar.tsx | 2 +- .../{RightColumn => }/RightColumn.tsx | 0 .../components/{Root => }/Root.tsx | 0 .../{ScrollSection => }/ScrollSection.tsx | 4 +- .../StepperVisualFrame.tsx | 2 +- .../Visual/StepperBackgroundHalftone.tsx | 9 +- .../components/Visual/StepperLottie.tsx | 14 +- .../HomeStepper/components/Visual/Visual.tsx | 12 +- .../sections/HomeStepper/components/index.ts | 10 +- .../SyncScrollProgressFromContainerEffect.tsx | 41 - .../HomeStepper/types/HomeStepperStep.ts | 4 +- .../utils/home-stepper-lottie-frame-map.ts | 4 +- .../HomeStepperBackgroundIllustration.tsx | 0 .../LegalDocumentPage.tsx} | 2 +- .../LegalDocument/components/index.ts | 3 + .../sections/Marquee/components/Heading.tsx | 11 + .../components/{Phrase => }/Phrase.tsx | 2 +- .../src/sections/Marquee/components/Root.tsx | 88 + .../sections/Marquee/components/Root/Root.tsx | 52 - .../Marquee/components/{Track => }/Track.tsx | 4 +- .../src/sections/Marquee/components/index.ts | 5 +- .../src/sections/Marquee/types/MarqueeData.ts | 2 +- .../Menu/components/{Cta => }/Cta.tsx | 0 .../Menu/components/{Drawer => }/Drawer.tsx | 31 +- .../Menu/components/{Logo => }/Logo.tsx | 0 .../Menu/components/{Nav => }/Nav.tsx | 2 +- .../Menu/components/{Root => }/Root.tsx | 11 +- .../Menu/components/{Social => }/Social.tsx | 0 .../src/sections/Menu/components/index.ts | 10 +- .../menu.ts => sections/Menu/data.ts} | 0 ...CloseDrawerWhenNavigationExpandsEffect.tsx | 19 +- .../{CalculatorEmbed => }/CalculatorEmbed.tsx | 11 +- .../components/{Content => }/Content.tsx | 2 +- .../PlanTable/components/{Root => }/Root.tsx | 0 .../sections/PlanTable/components/index.ts | 4 +- .../sections/PlanTable/types/PlanTableData.ts | 4 +- .../{BillingToggle => }/BillingToggle.tsx | 3 +- .../Plans/components/{Card => }/Card.tsx | 63 +- .../Plans/components/{Cards => }/Cards.tsx | 2 +- .../{PlansContent => }/PlansContent.tsx | 8 +- .../Plans/components/{Root => }/Root.tsx | 0 .../{SelfHostToggle => }/SelfHostToggle.tsx | 0 .../src/sections/Plans/components/index.ts | 12 +- .../plans.ts => sections/Plans/data.ts} | 4 +- .../src/sections/Plans/types/PlanCard.ts | 4 +- .../src/sections/Plans/types/PlanFeatures.ts | 2 +- .../src/sections/Plans/types/PlanPrice.ts | 4 +- .../src/sections/Plans/types/PlansData.ts | 7 +- .../components/{Content => }/Content.tsx | 6 +- .../components/{Heading => }/Heading.tsx | 2 +- .../components/{Points => }/Points.tsx | 4 +- .../Problem/components/{Root => }/Root.tsx | 0 .../Problem/components/Visual/Visual.tsx | 7 +- .../Problem/components/Visual/monolith.tsx | 9 +- .../src/sections/Problem/components/index.ts | 10 +- .../src/sections/Problem/types/ProblemData.ts | 4 +- .../sections/Problem/types/ProblemPoint.ts | 4 +- .../src/sections/Problem/types/index.ts | 4 +- .../visuals}/ProblemMonolithIllustration.tsx | 0 .../components/{Content => }/Content.tsx | 15 +- .../components/{Flow => }/Flow.tsx | 25 +- .../components/{Root => }/Root.tsx | 0 .../StepperVisualFrame.tsx | 0 .../components/{Visual => }/Visual.tsx | 2 +- .../ProductStepper/components/index.ts | 8 +- .../SyncScrollProgressFromContainerEffect.tsx | 41 - .../types/ProductStepperContentProps.ts | 6 +- .../types/ProductStepperData.ts | 6 +- .../types/ProductStepperStep.ts | 6 +- .../types/ProductStepperVisualProps.ts | 2 +- .../components/{Heading => }/Heading.tsx | 4 +- .../Quote/components/{Root => }/Root.tsx | 0 .../src/sections/Quote/components/Visual.tsx | 12 + .../Quote/components/Visual/Visual.tsx | 3 - .../src/sections/Quote/components/index.ts | 6 +- .../src/sections/Quote/types/QuoteData.ts | 4 +- .../src/sections/Quote/visuals/Quotes.tsx | 2074 ++++++++++++++++ .../components/{Divider => }/Divider.tsx | 0 .../{ReleaseEntry => }/ReleaseEntry.tsx | 2 +- .../{ReleaseMarkdown => }/ReleaseMarkdown.tsx | 0 .../components/{Root => }/Root.tsx | 2 +- .../sections/ReleaseNotes/components/index.ts | 6 +- .../Salesforce/components/{Flow => }/Flow.tsx | 16 +- .../{PricingWindow => }/PricingWindow.tsx | 1 - .../Salesforce/components/{Root => }/Root.tsx | 0 .../WrongChoicePopup.tsx | 0 .../sections/Salesforce/components/index.ts | 4 +- .../Salesforce/types/SalesforceData.ts | 4 +- .../src/sections/Signoff/components/Body.tsx | 6 +- .../sections/Signoff/components/Heading.tsx | 8 +- .../src/sections/Signoff/components/Root.tsx | 10 +- .../Signoff/{ => components}/SignoffShape.tsx | 0 .../src/sections/Signoff/types/SignoffData.ts | 4 +- .../components/{Heading => }/Heading.tsx | 4 +- .../Statement/components/{Root => }/Root.tsx | 10 +- .../sections/Statement/components/index.ts | 4 +- .../sections/Statement/types/StatementData.ts | 2 +- .../Tabs/components/{Body => }/Body.tsx | 2 +- .../Tabs/components/{Heading => }/Heading.tsx | 2 +- .../Tabs/components/{Root => }/Root.tsx | 0 .../components/{TabButton => }/TabButton.tsx | 0 .../{TabButtons => }/TabButtons.tsx | 2 +- .../components/{TabGroup => }/TabGroup.tsx | 4 +- .../components/{TabVisual => }/TabVisual.tsx | 2 +- .../{TabVisuals => }/TabVisuals.tsx | 2 +- .../src/sections/Tabs/components/index.ts | 16 +- .../src/sections/Tabs/types/Tab.ts | 4 +- .../src/sections/Tabs/types/TabsData.ts | 6 +- .../components/{Carousel => }/Carousel.tsx | 4 +- .../components/MountedTestimonialsVisuals.tsx | 36 +- .../{PartnerCarousel => }/PartnerCarousel.tsx | 6 +- .../components/{Root => }/Root.tsx | 2 +- .../components/{Separator => }/Separator.tsx | 0 .../{ => components}/TestimonialsShape.tsx | 0 .../sections/Testimonials/components/index.ts | 8 +- .../Testimonials/types/TestimonialAuthor.ts | 2 +- .../Testimonials/types/TestimonialCard.ts | 2 +- .../Testimonials/types/TestimonialsData.ts | 2 +- .../Testimonials/visuals/Hourglass.tsx | 125 + .../Testimonials/visuals}/HourglassCanvas.tsx | 12 +- .../Testimonials/visuals}/Partner.tsx | 40 +- .../Testimonials/visuals}/PartnerEffect.tsx | 13 +- .../FamiliarInterfaceGradientBackdrop.tsx | 929 +------ .../FeatureCard/FamiliarInterfaceVisual.tsx | 41 +- .../FeatureCard/FastPathGradientBackdrop.tsx | 934 +------ .../components/FeatureCard/FastPathVisual.tsx | 50 +- .../components/FeatureCard/FeatureCard.tsx | 23 +- .../FeatureCard/HalftoneImageBackdrop.tsx | 589 +++++ .../FeatureCard/LiveDataGradientBackdrop.tsx | 933 +------ .../FeatureCard/LiveDataHeroTable.tsx | 10 +- .../components/FeatureCard/LiveDataVisual.tsx | 43 +- .../{FeatureCards => }/FeatureCards.tsx | 13 +- .../components/IllustrationCard/CardShape.tsx | 14 +- .../IllustrationCard/IllustrationCard.tsx | 11 +- .../IllustrationCards.tsx | 2 +- .../components/{Intro => }/Intro.tsx | 6 +- .../ThreeCards/components/{Root => }/Root.tsx | 0 .../sections/ThreeCards/components/index.ts | 12 +- .../ThreeCardsScrollLayoutEffect.tsx | 40 +- .../ThreeCards/types/ThreeCardsBase.ts | 4 +- .../ThreeCards/types/ThreeCardsFeatureCard.ts | 6 +- .../types/ThreeCardsIllustrationCard.ts | 16 +- .../ThreeCardsIllustrationCardAttribution.ts | 2 +- .../types/ThreeCardsIllustrationData.ts | 2 +- .../src/sections/ThreeCards/types/index.ts | 12 +- .../ThreeCards/utils/use-scale-to-fit.ts | 39 + .../ThreeCards/visuals}/Eye.tsx | 0 .../ThreeCards/visuals/PartnerThreeCard.tsx | 2184 ++++++++++++++++ .../ThreeCards/visuals}/SingleScreen.tsx | 0 .../ThreeCards/visuals}/Speed.tsx | 0 .../src/sections/ThreeCards/visuals/index.tsx | 37 + .../components/ClientCount/ClientCount.tsx | 2 + .../ClientCount/ClientCountShape.tsx | 12 +- .../TrustedBy/components/{Logo => }/Logo.tsx | 0 .../components/{Logos => }/Logos.tsx | 4 +- .../TrustedBy/components/{Root => }/Root.tsx | 54 +- .../components/{Separator => }/Separator.tsx | 4 +- .../sections/TrustedBy/components/index.ts | 10 +- .../TrustedBy/data.ts} | 0 .../types/TrustedByClientCountLabel.ts | 4 +- .../TrustedBy/types/TrustedBySeparator.ts | 4 +- .../src/sections/TrustedBy/types/index.ts | 8 +- .../components/{Content => }/Content.tsx | 19 +- .../components/{Flow => }/Flow.tsx | 26 +- .../components/{Root => }/Root.tsx | 0 .../WhyTwentyStepper/components/index.ts | 6 +- .../SyncScrollProgressFromContainerEffect.tsx | 41 - .../types/WhyTwentyStepperData.ts | 6 +- .../WhyTwentyStepper/visuals}/Logo.tsx | 14 +- .../src/theme/css-variables.ts | 44 +- .../twenty-website-new/src/theme/index.ts | 13 +- .../twenty-website-new/src/theme/layout.ts | 7 + .../src/theme/line-height.ts | 4 +- .../twenty-website-new/src/theme/spacing.ts | 2 +- .../twenty-website-new/src/theme/z-index.ts | 10 + packages/twenty-website-new/tsconfig.json | 14 +- .../twenty-website-new/wyw-in-js.config.cjs | 9 - yarn.lock | 8 - 571 files changed, 15258 insertions(+), 14988 deletions(-) delete mode 100644 packages/twenty-website-new/output/playwright/customers-reference.png delete mode 100644 packages/twenty-website-new/output/playwright/partners-full-after.png delete mode 100644 packages/twenty-website-new/output/playwright/partners-seam-after.png create mode 100644 packages/twenty-website-new/public/illustrations/common/glass-environment.jpg create mode 100644 packages/twenty-website-new/scripts/check-boundaries.mjs create mode 100644 packages/twenty-website-new/scripts/check-lottie-frames.mjs create mode 100644 packages/twenty-website-new/scripts/check-section-shape.mjs delete mode 100644 packages/twenty-website-new/src/app/(home)/_constants/index.ts rename packages/twenty-website-new/src/app/(home)/{_constants/helped.ts => helped.data.ts} (100%) rename packages/twenty-website-new/src/app/(home)/{_constants/hero.ts => hero.data.ts} (99%) rename packages/twenty-website-new/src/app/(home)/{_constants/home-stepper.ts => home-stepper.data.ts} (100%) rename packages/twenty-website-new/src/app/(home)/{_constants/problem.ts => problem.data.ts} (100%) rename packages/twenty-website-new/src/app/(home)/{_constants/testimonials.ts => testimonials.data.ts} (100%) rename packages/twenty-website-new/src/app/(home)/{_constants/three-cards-feature.ts => three-cards-feature.data.ts} (100%) rename packages/twenty-website-new/src/app/(home)/{_constants/three-cards-illustration.ts => three-cards-illustration.data.ts} (100%) create mode 100644 packages/twenty-website-new/src/app/_components/ScrollToTopOnRouteChange.tsx delete mode 100644 packages/twenty-website-new/src/app/_constants/index.ts create mode 100644 packages/twenty-website-new/src/app/api/partner-application/__tests__/route.test.ts delete mode 100644 packages/twenty-website-new/src/app/components/ContactCalModal/ContactCalModal.tsx delete mode 100644 packages/twenty-website-new/src/app/partners/_constants/index.ts rename packages/twenty-website-new/src/app/partners/{_constants/engagement-band.ts => engagement-band.data.ts} (100%) rename packages/twenty-website-new/src/app/partners/{_constants/hero.ts => hero.data.ts} (100%) rename packages/twenty-website-new/src/app/partners/{_constants/signoff.ts => signoff.data.ts} (100%) rename packages/twenty-website-new/src/app/partners/{_constants/testimonials.ts => testimonials.data.ts} (100%) rename packages/twenty-website-new/src/app/partners/{_constants/three-cards-illustration.ts => three-cards-illustration.data.ts} (100%) delete mode 100644 packages/twenty-website-new/src/app/pricing/_constants/index.ts rename packages/twenty-website-new/src/app/pricing/{_constants/engagement-band.ts => engagement-band.data.ts} (100%) rename packages/twenty-website-new/src/app/pricing/{_constants/hero.ts => hero.data.ts} (100%) rename packages/twenty-website-new/src/app/pricing/{_constants/plan-table.ts => plan-table.data.ts} (100%) rename packages/twenty-website-new/src/app/pricing/{_constants/salesforce.ts => salesforce.data.ts} (100%) delete mode 100644 packages/twenty-website-new/src/app/product/_constants/demo.ts delete mode 100644 packages/twenty-website-new/src/app/product/_constants/index.ts delete mode 100644 packages/twenty-website-new/src/app/product/_constants/tabs.ts rename packages/twenty-website-new/src/app/product/{_constants/feature.ts => feature.data.ts} (100%) rename packages/twenty-website-new/src/app/product/{_constants/hero.ts => hero.data.ts} (100%) rename packages/twenty-website-new/src/app/product/{_constants/signoff.ts => signoff.data.ts} (100%) rename packages/twenty-website-new/src/app/product/{_constants/stepper.ts => stepper.data.ts} (100%) rename packages/twenty-website-new/src/app/product/{_constants/three-cards.ts => three-cards.data.ts} (100%) rename packages/twenty-website-new/src/app/releases/{_constants/hero.ts => hero.data.ts} (79%) delete mode 100644 packages/twenty-website-new/src/app/why-twenty/_constants/editorial-two.ts delete mode 100644 packages/twenty-website-new/src/app/why-twenty/_constants/index.ts delete mode 100644 packages/twenty-website-new/src/app/why-twenty/_constants/quote.ts delete mode 100644 packages/twenty-website-new/src/app/why-twenty/_constants/statement-one.ts delete mode 100644 packages/twenty-website-new/src/app/why-twenty/_constants/statement-two.ts delete mode 100644 packages/twenty-website-new/src/app/why-twenty/_constants/stepper.ts rename packages/twenty-website-new/src/app/why-twenty/{_constants/editorial-four.ts => editorial-four.data.ts} (100%) rename packages/twenty-website-new/src/app/why-twenty/{_constants/editorial-one.ts => editorial-one.data.ts} (100%) rename packages/twenty-website-new/src/app/why-twenty/{_constants/editorial-three.ts => editorial-three.data.ts} (100%) rename packages/twenty-website-new/src/app/why-twenty/{_constants/hero.ts => hero.data.ts} (100%) rename packages/twenty-website-new/src/app/why-twenty/{_constants/marquee.ts => marquee.data.ts} (100%) rename packages/twenty-website-new/src/app/why-twenty/{_constants/signoff.ts => signoff.data.ts} (100%) delete mode 100644 packages/twenty-website-new/src/components/VisibleWhenTabActive.tsx delete mode 100644 packages/twenty-website-new/src/components/WebGlWhenInViewport.tsx rename packages/twenty-website-new/src/{lib/shared-asset-paths.ts => content/site/asset-paths.ts} (98%) rename packages/twenty-website-new/src/design-system/components/{Body => }/Body.tsx (98%) delete mode 100644 packages/twenty-website-new/src/design-system/components/Body/types/Body.ts rename packages/twenty-website-new/src/design-system/components/{Container => }/Container.tsx (100%) rename packages/twenty-website-new/src/design-system/components/{Eyebrow => }/Eyebrow.tsx (91%) delete mode 100644 packages/twenty-website-new/src/design-system/components/Eyebrow/types/Eyebrow.ts create mode 100644 packages/twenty-website-new/src/design-system/components/Form/Form.tsx create mode 100644 packages/twenty-website-new/src/design-system/components/Form/index.ts create mode 100644 packages/twenty-website-new/src/design-system/components/GuideCrosshair.tsx delete mode 100644 packages/twenty-website-new/src/design-system/components/GuideCrosshair/GuideCrosshair.tsx rename packages/twenty-website-new/src/design-system/components/{Heading => }/Heading.tsx (95%) delete mode 100644 packages/twenty-website-new/src/design-system/components/Heading/types/Heading.ts rename packages/twenty-website-new/src/design-system/components/{IconButton => }/IconButton.tsx (72%) rename packages/twenty-website-new/src/design-system/components/{Image => }/Image.tsx (90%) delete mode 100644 packages/twenty-website-new/src/design-system/components/Image/types/Image.ts create mode 100644 packages/twenty-website-new/src/design-system/components/Layout/Grid.tsx create mode 100644 packages/twenty-website-new/src/design-system/components/Layout/Inline.tsx create mode 100644 packages/twenty-website-new/src/design-system/components/Layout/Stack.tsx create mode 100644 packages/twenty-website-new/src/design-system/components/Layout/index.ts create mode 100644 packages/twenty-website-new/src/design-system/components/Modal/Modal.tsx create mode 100644 packages/twenty-website-new/src/design-system/components/Modal/index.ts rename packages/twenty-website-new/src/design-system/components/{StepperProgressRail => }/StepperProgressRail.tsx (100%) delete mode 100644 packages/twenty-website-new/src/enums/pages.ts delete mode 100644 packages/twenty-website-new/src/illustrations/Hero/ProductEffect.tsx delete mode 100644 packages/twenty-website-new/src/illustrations/Hero/WhyTwentyHeroHalftone.tsx delete mode 100644 packages/twenty-website-new/src/illustrations/Quote/Quotes.tsx delete mode 100644 packages/twenty-website-new/src/illustrations/Testimonials/Hourglass.tsx delete mode 100644 packages/twenty-website-new/src/illustrations/ThreeCards/PartnerThreeCard.tsx delete mode 100644 packages/twenty-website-new/src/illustrations/illustration-mount.tsx delete mode 100644 packages/twenty-website-new/src/illustrations/illustrations-registry.tsx delete mode 100644 packages/twenty-website-new/src/illustrations/index.ts create mode 100644 packages/twenty-website-new/src/lib/api/__tests__/fetch-with-timeout.test.ts create mode 100644 packages/twenty-website-new/src/lib/api/__tests__/rate-limit.test.ts create mode 100644 packages/twenty-website-new/src/lib/api/__tests__/read-json-body.test.ts create mode 100644 packages/twenty-website-new/src/lib/api/fetch-with-timeout.ts create mode 100644 packages/twenty-website-new/src/lib/api/index.ts create mode 100644 packages/twenty-website-new/src/lib/api/rate-limit.ts create mode 100644 packages/twenty-website-new/src/lib/api/read-json-body.ts rename packages/twenty-website-new/src/{app/components/ContactCalModal => lib/contact-cal}/CalFormEmbed.tsx (78%) create mode 100644 packages/twenty-website-new/src/lib/contact-cal/ContactCalModal.tsx rename packages/twenty-website-new/src/{app/components/ContactCalModal => lib/contact-cal}/ContactCalModalRoot.tsx (100%) rename packages/twenty-website-new/src/{app/components/ContactCalModal => lib/contact-cal}/TalkToUsButton.tsx (100%) rename packages/twenty-website-new/src/{app/_constants/contact-cal.ts => lib/contact-cal/config.ts} (100%) rename packages/twenty-website-new/src/{app/components/ContactCalModal => lib/contact-cal}/index.ts (100%) rename packages/twenty-website-new/src/{app/customers/_constants => lib/customers}/case-study-catalog.ts (99%) rename packages/twenty-website-new/src/{app/customers/_constants => lib/customers}/index.ts (99%) rename packages/twenty-website-new/src/{app/customers/_constants => lib/customers}/types.ts (98%) delete mode 100644 packages/twenty-website-new/src/lib/debug/overflow-probe.tsx rename packages/twenty-website-new/src/{shared => lib}/enterprise/enterprise-jwt.ts (100%) rename packages/twenty-website-new/src/{shared => lib}/enterprise/stripe-client.ts (100%) rename packages/twenty-website-new/src/{shared => lib}/enterprise/stripe-subscription-helpers.ts (76%) rename packages/twenty-website-new/src/{app/halftone/_lib => lib/halftone/__tests__}/footprint.test.ts (75%) rename packages/twenty-website-new/src/{app/halftone/_lib => lib/halftone/__tests__}/state.test.ts (98%) rename packages/twenty-website-new/src/{app/halftone/_lib => lib/halftone}/footprint.ts (98%) rename packages/twenty-website-new/src/{app/halftone/_lib => lib/halftone}/geometry-registry.ts (99%) rename packages/twenty-website-new/src/{app/halftone/_components/HalftoneCanvas.tsx => lib/halftone/halftone-canvas.tsx} (99%) create mode 100644 packages/twenty-website-new/src/lib/halftone/index.ts rename packages/twenty-website-new/src/{app/halftone/_lib => lib/halftone}/materials.ts (99%) rename packages/twenty-website-new/src/{app/halftone/_lib => lib/halftone}/state.ts (100%) create mode 100644 packages/twenty-website-new/src/lib/motion/index.ts create mode 100644 packages/twenty-website-new/src/lib/motion/use-media-query.ts create mode 100644 packages/twenty-website-new/src/lib/motion/use-prefers-reduced-motion.ts create mode 100644 packages/twenty-website-new/src/lib/pages.ts rename packages/twenty-website-new/src/{app/partners/components/PartnerApplication => lib/partner-application}/PartnerApplicationModal.tsx (55%) rename packages/twenty-website-new/src/{app/partners/components/PartnerApplication => lib/partner-application}/PartnerApplicationModalRoot.tsx (89%) create mode 100644 packages/twenty-website-new/src/lib/partner-application/index.ts rename packages/twenty-website-new/src/{app/partners/_constants/partner-application-modal.ts => lib/partner-application/partner-application-modal-data.ts} (100%) rename packages/twenty-website-new/src/lib/{github => releases}/fetch-latest-release-tag.ts (100%) create mode 100644 packages/twenty-website-new/src/lib/scroll/__tests__/compute-scroll-progress.test.ts create mode 100644 packages/twenty-website-new/src/lib/scroll/compute-scroll-progress.ts create mode 100644 packages/twenty-website-new/src/lib/scroll/index.ts create mode 100644 packages/twenty-website-new/src/lib/scroll/scroll-progress-effect.tsx create mode 100644 packages/twenty-website-new/src/lib/scroll/use-scheduled-on-scroll.ts create mode 100644 packages/twenty-website-new/src/lib/scroll/use-scroll-progress.ts create mode 100644 packages/twenty-website-new/src/lib/semver/__tests__/compare-semantic-versions.test.ts create mode 100644 packages/twenty-website-new/src/lib/seo/__tests__/build-page-metadata.test.ts create mode 100644 packages/twenty-website-new/src/lib/seo/build-page-metadata.ts create mode 100644 packages/twenty-website-new/src/lib/seo/index.ts create mode 100644 packages/twenty-website-new/src/lib/seo/site-url.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/__tests__/bounded-failure-cache.test.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/active-webgl-context-budget.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/bounded-failure-cache.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/create-site-webgl-renderer.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/draco-decoder-path.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/frame-timer.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/index.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/textures/glass-environment.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/use-webgl-policy.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/visual-runtime-policy.ts create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/webgl-error-boundary.tsx create mode 100644 packages/twenty-website-new/src/lib/visual-runtime/webgl-mount.tsx delete mode 100644 packages/twenty-website-new/src/lib/webgl/create-site-webgl-renderer.ts delete mode 100644 packages/twenty-website-new/src/lib/webgl/index.ts rename packages/twenty-website-new/src/sections/CaseStudy/components/{Body => }/Body.tsx (100%) rename packages/twenty-website-new/src/sections/CaseStudy/components/{Hero => }/Hero.tsx (97%) rename packages/twenty-website-new/src/sections/CaseStudy/components/{Highlights => }/Highlights.tsx (100%) rename packages/twenty-website-new/src/sections/CaseStudy/components/{TextBlock => }/TextBlock.tsx (78%) rename packages/twenty-website-new/src/sections/CaseStudy/components/{VisualBlock => }/VisualBlock.tsx (95%) rename packages/twenty-website-new/src/sections/CaseStudyCatalog/components/{Card => }/Card.tsx (95%) rename packages/twenty-website-new/src/sections/CaseStudyCatalog/components/{Grid => }/Grid.tsx (95%) rename packages/twenty-website-new/src/sections/CaseStudyCatalog/components/{Promo => }/Promo.tsx (98%) rename packages/twenty-website-new/src/{illustrations/CaseStudyCatalog => sections/CaseStudyCatalog/visuals}/CustomerCasesCover.tsx (98%) rename packages/twenty-website-new/src/{illustrations/CaseStudyCatalog => sections/CaseStudyCatalog/visuals}/PromoMic.tsx (62%) rename packages/twenty-website-new/src/sections/Demo/components/{Cta => }/Cta.tsx (100%) rename packages/twenty-website-new/src/sections/Demo/components/{Heading => }/Heading.tsx (96%) rename packages/twenty-website-new/src/sections/Demo/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/Demo/components/{Screenshot => }/Screenshot.tsx (98%) rename packages/twenty-website-new/src/sections/Editorial/components/{Body => }/Body.tsx (83%) rename packages/twenty-website-new/src/sections/Editorial/components/{Eyebrow => }/Eyebrow.tsx (94%) rename packages/twenty-website-new/src/sections/Editorial/components/{Heading => }/Heading.tsx (96%) rename packages/twenty-website-new/src/sections/Editorial/components/{Intro => }/Intro.tsx (100%) rename packages/twenty-website-new/src/sections/Editorial/components/{Root => }/Root.tsx (84%) rename packages/twenty-website-new/src/sections/EngagementBand/components/{Actions => }/Actions.tsx (100%) rename packages/twenty-website-new/src/sections/EngagementBand/components/{Body => }/Body.tsx (83%) rename packages/twenty-website-new/src/sections/EngagementBand/components/{Copy => }/Copy.tsx (100%) rename packages/twenty-website-new/src/sections/EngagementBand/components/{Heading => }/Heading.tsx (94%) rename packages/twenty-website-new/src/sections/EngagementBand/components/{Root => }/Root.tsx (91%) rename packages/twenty-website-new/src/sections/EngagementBand/components/{Strip => }/Strip.tsx (88%) rename packages/twenty-website-new/src/sections/Faq/components/{Cta => }/Cta.tsx (100%) rename packages/twenty-website-new/src/sections/Faq/components/{Heading => }/Heading.tsx (96%) rename packages/twenty-website-new/src/sections/Faq/components/{Intro => }/Intro.tsx (100%) rename packages/twenty-website-new/src/sections/Faq/components/{Item => }/Item.tsx (100%) rename packages/twenty-website-new/src/sections/Faq/components/{Items => }/Items.tsx (81%) rename packages/twenty-website-new/src/sections/Faq/components/{Root => }/Root.tsx (83%) rename packages/twenty-website-new/src/{app/_constants/faq.ts => sections/Faq/data.ts} (94%) rename packages/twenty-website-new/src/{illustrations/Faq => sections/Faq/visuals}/Background.tsx (98%) rename packages/twenty-website-new/src/sections/Feature/components/{Intro => }/Intro.tsx (92%) rename packages/twenty-website-new/src/sections/Feature/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/Feature/components/{Tiles => }/Tiles.tsx (95%) rename packages/twenty-website-new/src/sections/Footer/components/{Bottom => }/Bottom.tsx (100%) rename packages/twenty-website-new/src/sections/Footer/components/{FooterNavCta => }/FooterNavCta.tsx (89%) rename packages/twenty-website-new/src/sections/Footer/{ => components}/FooterShape.tsx (79%) rename packages/twenty-website-new/src/sections/Footer/components/{Logo => }/Logo.tsx (100%) rename packages/twenty-website-new/src/sections/Footer/components/{Nav => }/Nav.tsx (99%) rename packages/twenty-website-new/src/sections/Footer/components/{Root => }/Root.tsx (83%) rename packages/twenty-website-new/src/{app/_constants/footer.ts => sections/Footer/data.ts} (98%) rename packages/twenty-website-new/src/{illustrations/Footer => sections/Footer/visuals}/Background.tsx (99%) rename packages/twenty-website-new/src/sections/Helped/components/{Card => }/Card.tsx (78%) rename packages/twenty-website-new/src/sections/Helped/{ => components}/HelpedCardShape.tsx (100%) rename packages/twenty-website-new/src/sections/Helped/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/Helped/components/{Scene => }/Scene.tsx (98%) rename packages/twenty-website-new/src/{illustrations/Helped => sections/Helped/visuals}/HelpedHalftoneModel.tsx (99%) rename packages/twenty-website-new/src/{illustrations/Helped => sections/Helped/visuals}/Money.tsx (98%) rename packages/twenty-website-new/src/{illustrations/Helped => sections/Helped/visuals}/Spaceship.tsx (98%) rename packages/twenty-website-new/src/{illustrations/Helped => sections/Helped/visuals}/Target.tsx (98%) create mode 100644 packages/twenty-website-new/src/sections/Helped/visuals/index.ts rename packages/twenty-website-new/src/sections/Hero/components/{Body => }/Body.tsx (90%) rename packages/twenty-website-new/src/sections/Hero/components/{Cta => }/Cta.tsx (100%) rename packages/twenty-website-new/src/sections/Hero/components/{Heading => }/Heading.tsx (80%) create mode 100644 packages/twenty-website-new/src/sections/Hero/components/ProductVisual.tsx create mode 100644 packages/twenty-website-new/src/sections/Hero/components/ReleaseNotesVisual.tsx rename packages/twenty-website-new/src/sections/Hero/components/{Root => }/Root.tsx (88%) rename packages/twenty-website-new/src/sections/Hero/components/{WhyTwentyVisual => }/WhyTwentyVisual.tsx (84%) rename packages/twenty-website-new/src/{illustrations/Hero => sections/Hero/visuals}/HomeBackgroundHalftone.tsx (95%) rename packages/twenty-website-new/src/{illustrations/Hero => sections/Hero/visuals}/Milestone.tsx (99%) rename packages/twenty-website-new/src/{illustrations/Hero => sections/Hero/visuals}/PartnerHeroHalftoneIllustration.tsx (100%) rename packages/twenty-website-new/src/{illustrations/Hero => sections/Hero/visuals}/Product.tsx (100%) create mode 100644 packages/twenty-website-new/src/sections/Hero/visuals/ProductEffect.tsx rename packages/twenty-website-new/src/{illustrations/Hero => sections/Hero/visuals}/ReleaseNotes.tsx (100%) rename packages/twenty-website-new/src/{illustrations/Hero => sections/Hero/visuals}/WhyTwenty.tsx (95%) create mode 100644 packages/twenty-website-new/src/sections/Hero/visuals/WhyTwentyHeroHalftone.tsx rename packages/twenty-website-new/src/sections/HomeStepper/components/{Flow => }/Flow.tsx (77%) rename packages/twenty-website-new/src/sections/HomeStepper/components/{LeftColumn => }/LeftColumn.tsx (90%) rename packages/twenty-website-new/src/sections/HomeStepper/components/{ProgressBar => }/ProgressBar.tsx (85%) rename packages/twenty-website-new/src/sections/HomeStepper/components/{RightColumn => }/RightColumn.tsx (100%) rename packages/twenty-website-new/src/sections/HomeStepper/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/HomeStepper/components/{ScrollSection => }/ScrollSection.tsx (86%) rename packages/twenty-website-new/src/sections/HomeStepper/components/{StepperVisualFrame => }/StepperVisualFrame.tsx (99%) delete mode 100644 packages/twenty-website-new/src/sections/HomeStepper/effect-components/SyncScrollProgressFromContainerEffect.tsx rename packages/twenty-website-new/src/{illustrations/HomeStepper => sections/HomeStepper/visuals}/HomeStepperBackgroundIllustration.tsx (100%) rename packages/twenty-website-new/src/sections/LegalDocument/{legal-document-page.tsx => components/LegalDocumentPage.tsx} (98%) create mode 100644 packages/twenty-website-new/src/sections/LegalDocument/components/index.ts create mode 100644 packages/twenty-website-new/src/sections/Marquee/components/Heading.tsx rename packages/twenty-website-new/src/sections/Marquee/components/{Phrase => }/Phrase.tsx (98%) create mode 100644 packages/twenty-website-new/src/sections/Marquee/components/Root.tsx delete mode 100644 packages/twenty-website-new/src/sections/Marquee/components/Root/Root.tsx rename packages/twenty-website-new/src/sections/Marquee/components/{Track => }/Track.tsx (94%) rename packages/twenty-website-new/src/sections/Menu/components/{Cta => }/Cta.tsx (100%) rename packages/twenty-website-new/src/sections/Menu/components/{Drawer => }/Drawer.tsx (94%) rename packages/twenty-website-new/src/sections/Menu/components/{Logo => }/Logo.tsx (100%) rename packages/twenty-website-new/src/sections/Menu/components/{Nav => }/Nav.tsx (99%) rename packages/twenty-website-new/src/sections/Menu/components/{Root => }/Root.tsx (91%) rename packages/twenty-website-new/src/sections/Menu/components/{Social => }/Social.tsx (100%) rename packages/twenty-website-new/src/{app/_constants/menu.ts => sections/Menu/data.ts} (100%) rename packages/twenty-website-new/src/sections/PlanTable/components/{CalculatorEmbed => }/CalculatorEmbed.tsx (97%) rename packages/twenty-website-new/src/sections/PlanTable/components/{Content => }/Content.tsx (99%) rename packages/twenty-website-new/src/sections/PlanTable/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/Plans/components/{BillingToggle => }/BillingToggle.tsx (98%) rename packages/twenty-website-new/src/sections/Plans/components/{Card => }/Card.tsx (88%) rename packages/twenty-website-new/src/sections/Plans/components/{Cards => }/Cards.tsx (95%) rename packages/twenty-website-new/src/sections/Plans/components/{PlansContent => }/PlansContent.tsx (87%) rename packages/twenty-website-new/src/sections/Plans/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/Plans/components/{SelfHostToggle => }/SelfHostToggle.tsx (100%) rename packages/twenty-website-new/src/{app/pricing/_constants/plans.ts => sections/Plans/data.ts} (100%) rename packages/twenty-website-new/src/sections/Problem/components/{Content => }/Content.tsx (82%) rename packages/twenty-website-new/src/sections/Problem/components/{Heading => }/Heading.tsx (92%) rename packages/twenty-website-new/src/sections/Problem/components/{Points => }/Points.tsx (90%) rename packages/twenty-website-new/src/sections/Problem/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/{illustrations/Problem => sections/Problem/visuals}/ProblemMonolithIllustration.tsx (100%) rename packages/twenty-website-new/src/sections/ProductStepper/components/{Content => }/Content.tsx (94%) rename packages/twenty-website-new/src/sections/ProductStepper/components/{Flow => }/Flow.tsx (78%) rename packages/twenty-website-new/src/sections/ProductStepper/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/ProductStepper/components/{StepperVisualFrame => }/StepperVisualFrame.tsx (100%) rename packages/twenty-website-new/src/sections/ProductStepper/components/{Visual => }/Visual.tsx (96%) delete mode 100644 packages/twenty-website-new/src/sections/ProductStepper/effect-components/SyncScrollProgressFromContainerEffect.tsx rename packages/twenty-website-new/src/sections/Quote/components/{Heading => }/Heading.tsx (95%) rename packages/twenty-website-new/src/sections/Quote/components/{Root => }/Root.tsx (100%) create mode 100644 packages/twenty-website-new/src/sections/Quote/components/Visual.tsx delete mode 100644 packages/twenty-website-new/src/sections/Quote/components/Visual/Visual.tsx create mode 100644 packages/twenty-website-new/src/sections/Quote/visuals/Quotes.tsx rename packages/twenty-website-new/src/sections/ReleaseNotes/components/{Divider => }/Divider.tsx (100%) rename packages/twenty-website-new/src/sections/ReleaseNotes/components/{ReleaseEntry => }/ReleaseEntry.tsx (95%) rename packages/twenty-website-new/src/sections/ReleaseNotes/components/{ReleaseMarkdown => }/ReleaseMarkdown.tsx (100%) rename packages/twenty-website-new/src/sections/ReleaseNotes/components/{Root => }/Root.tsx (96%) rename packages/twenty-website-new/src/sections/Salesforce/components/{Flow => }/Flow.tsx (94%) rename packages/twenty-website-new/src/sections/Salesforce/components/{PricingWindow => }/PricingWindow.tsx (99%) rename packages/twenty-website-new/src/sections/Salesforce/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/Salesforce/components/{WrongChoicePopup => }/WrongChoicePopup.tsx (100%) rename packages/twenty-website-new/src/sections/Signoff/{ => components}/SignoffShape.tsx (100%) rename packages/twenty-website-new/src/sections/Statement/components/{Heading => }/Heading.tsx (95%) rename packages/twenty-website-new/src/sections/Statement/components/{Root => }/Root.tsx (75%) rename packages/twenty-website-new/src/sections/Tabs/components/{Body => }/Body.tsx (87%) rename packages/twenty-website-new/src/sections/Tabs/components/{Heading => }/Heading.tsx (96%) rename packages/twenty-website-new/src/sections/Tabs/components/{Root => }/Root.tsx (100%) rename packages/twenty-website-new/src/sections/Tabs/components/{TabButton => }/TabButton.tsx (100%) rename packages/twenty-website-new/src/sections/Tabs/components/{TabButtons => }/TabButtons.tsx (95%) rename packages/twenty-website-new/src/sections/Tabs/components/{TabGroup => }/TabGroup.tsx (86%) rename packages/twenty-website-new/src/sections/Tabs/components/{TabVisual => }/TabVisual.tsx (97%) rename packages/twenty-website-new/src/sections/Tabs/components/{TabVisuals => }/TabVisuals.tsx (86%) rename packages/twenty-website-new/src/sections/Testimonials/components/{Carousel => }/Carousel.tsx (98%) rename packages/twenty-website-new/src/sections/Testimonials/components/{PartnerCarousel => }/PartnerCarousel.tsx (98%) rename packages/twenty-website-new/src/sections/Testimonials/components/{Root => }/Root.tsx (94%) rename packages/twenty-website-new/src/sections/Testimonials/components/{Separator => }/Separator.tsx (100%) rename packages/twenty-website-new/src/sections/Testimonials/{ => components}/TestimonialsShape.tsx (100%) create mode 100644 packages/twenty-website-new/src/sections/Testimonials/visuals/Hourglass.tsx rename packages/twenty-website-new/src/{illustrations/Testimonials => sections/Testimonials/visuals}/HourglassCanvas.tsx (98%) rename packages/twenty-website-new/src/{illustrations/Testimonials => sections/Testimonials/visuals}/Partner.tsx (84%) rename packages/twenty-website-new/src/{illustrations/Testimonials => sections/Testimonials/visuals}/PartnerEffect.tsx (89%) create mode 100644 packages/twenty-website-new/src/sections/ThreeCards/components/FeatureCard/HalftoneImageBackdrop.tsx rename packages/twenty-website-new/src/sections/ThreeCards/components/{FeatureCards => }/FeatureCards.tsx (76%) rename packages/twenty-website-new/src/sections/ThreeCards/components/{IllustrationCards => }/IllustrationCards.tsx (96%) rename packages/twenty-website-new/src/sections/ThreeCards/components/{Intro => }/Intro.tsx (88%) rename packages/twenty-website-new/src/sections/ThreeCards/components/{Root => }/Root.tsx (100%) create mode 100644 packages/twenty-website-new/src/sections/ThreeCards/utils/use-scale-to-fit.ts rename packages/twenty-website-new/src/{illustrations/ThreeCards => sections/ThreeCards/visuals}/Eye.tsx (100%) create mode 100644 packages/twenty-website-new/src/sections/ThreeCards/visuals/PartnerThreeCard.tsx rename packages/twenty-website-new/src/{illustrations/ThreeCards => sections/ThreeCards/visuals}/SingleScreen.tsx (100%) rename packages/twenty-website-new/src/{illustrations/ThreeCards => sections/ThreeCards/visuals}/Speed.tsx (100%) create mode 100644 packages/twenty-website-new/src/sections/ThreeCards/visuals/index.tsx rename packages/twenty-website-new/src/sections/TrustedBy/components/{Logo => }/Logo.tsx (100%) rename packages/twenty-website-new/src/sections/TrustedBy/components/{Logos => }/Logos.tsx (93%) rename packages/twenty-website-new/src/sections/TrustedBy/components/{Root => }/Root.tsx (77%) rename packages/twenty-website-new/src/sections/TrustedBy/components/{Separator => }/Separator.tsx (85%) rename packages/twenty-website-new/src/{app/_constants/trusted-by.ts => sections/TrustedBy/data.ts} (100%) rename packages/twenty-website-new/src/sections/WhyTwentyStepper/components/{Content => }/Content.tsx (88%) rename packages/twenty-website-new/src/sections/WhyTwentyStepper/components/{Flow => }/Flow.tsx (78%) rename packages/twenty-website-new/src/sections/WhyTwentyStepper/components/{Root => }/Root.tsx (100%) delete mode 100644 packages/twenty-website-new/src/sections/WhyTwentyStepper/effect-components/SyncScrollProgressFromContainerEffect.tsx rename packages/twenty-website-new/src/{illustrations/WhyTwentyStepper => sections/WhyTwentyStepper/visuals}/Logo.tsx (97%) create mode 100644 packages/twenty-website-new/src/theme/layout.ts create mode 100644 packages/twenty-website-new/src/theme/z-index.ts diff --git a/packages/twenty-website-new/.env.example b/packages/twenty-website-new/.env.example index b035dbf41c..4a4f9e322b 100644 --- a/packages/twenty-website-new/.env.example +++ b/packages/twenty-website-new/.env.example @@ -1,8 +1,29 @@ PARTNER_APPLICATION_WEBHOOK_URL= -# Public site URL (used for Stripe checkout success URL and billing portal return) +# Optional GitHub personal-access token (no scopes required) used by the +# community-stats fetcher (`src/lib/community/fetch-github-star-count.ts`). +# When set, requests use the 5000/hr authenticated limit instead of the +# 60/hr unauthenticated per-IP limit. Both responses are also cached for +# one hour via `unstable_cache`, so dev without a token still works. +# GITHUB_TOKEN= + +# Public site URL — canonical origin used by `metadataBase`, sitemap, robots, +# OG/Twitter card URLs, Stripe checkout success URL, and billing portal return. +# No trailing slash. Defaults to https://twenty.com when unset. NEXT_PUBLIC_WEBSITE_URL= +# --- Visual runtime kill switches --------------------------------------- +# Hard kill switch for every WebGL/Three/R3F decorative visual on the site. +# Set to "1" / "true" to ship a build with all heavy visuals statically +# replaced by their fallbacks (e.g. during a GPU-driver-related incident). +# NEXT_PUBLIC_DISABLE_HEAVY_VISUALS= + +# Soft cap on the number of concurrent WebGL contexts the page is allowed +# to spin up. The browser's own hard cap is typically 8–16; we default to 8 +# so a single page that mounts every illustration cannot exhaust the GPU +# context pool on integrated graphics. +# NEXT_PUBLIC_MAX_WEBGL_CONTEXTS=8 + # Stripe — self-hosted enterprise checkout & subscription APIs STRIPE_SECRET_KEY= STRIPE_ENTERPRISE_MONTHLY_PRICE_ID= diff --git a/packages/twenty-website-new/.gitignore b/packages/twenty-website-new/.gitignore index 3adcfc17c5..c641bc1572 100644 --- a/packages/twenty-website-new/.gitignore +++ b/packages/twenty-website-new/.gitignore @@ -41,3 +41,7 @@ next-env.d.ts # DB *.sqlite + +# local-only memory files (not for commit) +/Documentation.md +/Todo.md diff --git a/packages/twenty-website-new/.oxlintrc.json b/packages/twenty-website-new/.oxlintrc.json index 3402a729a8..f366c9222f 100644 --- a/packages/twenty-website-new/.oxlintrc.json +++ b/packages/twenty-website-new/.oxlintrc.json @@ -2,7 +2,7 @@ "$schema": "./node_modules/oxlint/configuration_schema.json", "plugins": ["react", "typescript", "import", "unicorn"], "categories": { - "correctness": "off" + "correctness": "error" }, "ignorePatterns": ["node_modules"], "rules": { @@ -17,23 +17,32 @@ "import/no-duplicates": "error", "typescript/no-redeclare": "error", "typescript/ban-ts-comment": "error", - "typescript/consistent-type-imports": ["error", { - "prefer": "type-imports", - "fixStyle": "inline-type-imports" - }], + "typescript/consistent-type-imports": [ + "error", + { + "prefer": "type-imports", + "fixStyle": "inline-type-imports" + } + ], "typescript/explicit-function-return-type": "off", "typescript/explicit-module-boundary-types": "off", - "typescript/no-empty-object-type": ["error", { - "allowInterfaces": "with-single-extends" - }], + "typescript/no-empty-object-type": [ + "error", + { + "allowInterfaces": "with-single-extends" + } + ], "typescript/no-empty-function": "off", "typescript/no-explicit-any": "off", - "typescript/no-unused-vars": ["warn", { - "vars": "all", - "varsIgnorePattern": "^_", - "args": "after-used", - "argsIgnorePattern": "^_" - }], + "typescript/no-unused-vars": [ + "warn", + { + "vars": "all", + "varsIgnorePattern": "^_", + "args": "after-used", + "argsIgnorePattern": "^_" + } + ], "react/no-unescaped-entities": "off", "react/prop-types": "off", "react/jsx-key": "off", @@ -44,5 +53,55 @@ "react/jsx-props-no-spreading": ["error", { "explicitSpread": "ignore" }], "react-hooks/rules-of-hooks": "error", "react-hooks/exhaustive-deps": "warn" - } + }, + "overrides": [ + { + "files": ["**/sections/**/*.ts", "**/sections/**/*.tsx"], + "rules": { + "no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["@/app/**"], + "message": "Sections are page-agnostic primitives — they must not depend on a specific route. Move shared halftone primitives into `src/lib/halftone/`, shared types into `src/sections/
/types/`, and shared data into `src/lib/`. (See ARCHITECTURE.md → Layering rules.)" + } + ] + } + ] + } + }, + { + "files": ["**/lib/**/*.ts", "**/lib/**/*.tsx"], + "rules": { + "no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["@/app/**", "@/sections/**"], + "message": "`lib/` is the leaf layer. It must not depend on routes (`app/`) or page sections (`sections/`). Invert the dependency: have the consumer pass values in. (See ARCHITECTURE.md → Layering rules.)" + } + ] + } + ] + } + }, + { + "files": ["**/design-system/**/*.ts", "**/design-system/**/*.tsx"], + "rules": { + "no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["@/app/**", "@/sections/**", "@/lib/**"], + "message": "Design-system primitives must only depend on `@/theme` (and `@/icons` for components that legitimately render an icon). They must not reach into routes, sections, or lib. (See ARCHITECTURE.md → Layering rules.)" + } + ] + } + ] + } + } + ] } diff --git a/packages/twenty-website-new/README.md b/packages/twenty-website-new/README.md index 663a198e11..b4dc7f1c32 100644 --- a/packages/twenty-website-new/README.md +++ b/packages/twenty-website-new/README.md @@ -1,4 +1,9 @@ -# Twenty-Website +# twenty-website-new -This is used for the marketing website (twenty.com). -This is not related in any way to the main app, which you can find in twenty-front and twenty-server. +```bash +yarn install +yarn nx run twenty-website-new:dev +yarn nx run twenty-website-new:build +yarn nx run twenty-website-new:lint +yarn nx run twenty-website-new:typecheck +``` diff --git a/packages/twenty-website-new/jest.config.mjs b/packages/twenty-website-new/jest.config.mjs index 00867abc80..a96081bf01 100644 --- a/packages/twenty-website-new/jest.config.mjs +++ b/packages/twenty-website-new/jest.config.mjs @@ -6,8 +6,9 @@ import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); -const tsConfigPath = resolve(__dirname, './tsconfig.json'); -const tsConfig = JSON.parse(readFileSync(tsConfigPath, 'utf8')); +const tsConfig = JSON.parse( + readFileSync(resolve(__dirname, './tsconfig.json'), 'utf8'), +); const jestConfig = { displayName: 'twenty-website-new', diff --git a/packages/twenty-website-new/next.config.ts b/packages/twenty-website-new/next.config.ts index e7a0fdef2c..a1fed9ad44 100644 --- a/packages/twenty-website-new/next.config.ts +++ b/packages/twenty-website-new/next.config.ts @@ -1,6 +1,21 @@ import path from 'path'; import withLinaria, { type LinariaConfig } from 'next-with-linaria'; +const SECURITY_HEADERS = [ + { + key: 'Strict-Transport-Security', + value: 'max-age=63072000; includeSubDomains; preload', + }, + { key: 'X-Content-Type-Options', value: 'nosniff' }, + { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' }, + { + key: 'Permissions-Policy', + value: 'camera=(), microphone=(), geolocation=(), payment=()', + }, + { key: 'X-Frame-Options', value: 'DENY' }, + { key: 'Content-Security-Policy', value: "frame-ancestors 'none'" }, +] as const; + const nextConfig: LinariaConfig = { images: { formats: ['image/avif', 'image/webp'], @@ -21,10 +36,16 @@ const nextConfig: LinariaConfig = { configFile: path.resolve(__dirname, 'wyw-in-js.config.cjs'), }, reactCompiler: true, + async headers() { + return [ + { + source: '/:path*', + headers: SECURITY_HEADERS.map((h) => ({ ...h })), + }, + ]; + }, async redirects() { return [ - // Documentation moved to docs.twenty.com (carried over from the - // legacy twenty-website Next.js app). { source: '/user-guide', destination: 'https://docs.twenty.com/user-guide/introduction', @@ -80,10 +101,6 @@ const nextConfig: LinariaConfig = { destination: 'https://docs.twenty.com/twenty-ui/:slug', permanent: true, }, - - // Renamed/restructured pages on the new website. Mappings derived - // from the old twenty.com sitemap so existing inbound links and - // search results keep working. { source: '/story', destination: '/why-twenty', diff --git a/packages/twenty-website-new/output/playwright/customers-reference.png b/packages/twenty-website-new/output/playwright/customers-reference.png deleted file mode 100644 index 7e0706b19def37f614852c57a373760c5c261f1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63551 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%0DgJ$C&7~hiZfvT`OH_$IsCLf&)GwRJbO8hOL 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 Kd-s(b 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%0A>6jZDIy#Mn|93ok9 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

;7K75Y6EFCXo}W4hE+}ES7r3*VR3+I=mXN3 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

element.`, + ); + } else { + const rootContents = await readFileOrNull(root); + if ( + rootContents !== null && + TOARRAY_REGEX.test(stripComments(rootContents)) + ) { + violations.push( + `${name}: components/Root.tsx uses Children.toArray(...) positional indexing — match slots by displayName instead (see TrustedBy.Root for the pattern).`, + ); + } + } + + const slotsToCheck = SECTIONS_USING_NAMED_SLOTS.get(name); + if (slotsToCheck !== undefined) { + const barrelContents = await readFileOrNull(barrel); + const exportedSlotNames = barrelContents + ? parseSlotIdentifiers(barrelContents) + : null; + for (const slot of slotsToCheck) { + if (exportedSlotNames !== null && !exportedSlotNames.includes(slot)) { + violations.push( + `${name}: slot "${slot}" is declared in SECTIONS_USING_NAMED_SLOTS but is not exported from ${path.relative( + ROOT, + barrel, + )}. Either export it or remove the entry from check-section-shape.mjs.`, + ); + continue; + } + const expected = `${name}.${slot}`; + const slotFile = await locateSlotFile(sectionDir, slot); + if (slotFile === null) { + violations.push( + `${name}: slot "${slot}" is declared in SECTIONS_USING_NAMED_SLOTS but no source file matches the conventional path (components/${slot}.tsx or components/${slot}/${slot}.tsx).`, + ); + continue; + } + const contents = await readFileOrNull(slotFile); + if (contents === null) continue; + if (!contents.includes(`displayName = '${expected}'`)) { + violations.push( + `${name}: slot "${slot}" source (${path.relative( + ROOT, + slotFile, + )}) does not set ${slot}.displayName = '${expected}'. Root looks slots up by displayName; without it the slot silently fails to render.`, + ); + } + } + } + + return violations; +} + +async function locateSlotFile(sectionDir, slot) { + const candidates = [ + path.join(sectionDir, 'components', `${slot}.tsx`), + path.join(sectionDir, 'components', slot, `${slot}.tsx`), + ]; + for (const candidate of candidates) { + if (await fileExists(candidate)) return candidate; + } + return null; +} + +async function main() { + const sections = await listSections(); + const allViolations = []; + for (const name of sections) { + const sectionViolations = await checkSection(name); + for (const v of sectionViolations) allViolations.push(v); + } + + if (allViolations.length === 0) { + console.error( + `check-section-shape: OK (${sections.length} sections inspected).`, + ); + return 0; + } + + console.error(''); + console.error( + `\u001b[31mcheck-section-shape: ${allViolations.length} violation(s)\u001b[0m`, + ); + console.error(''); + for (const v of allViolations) { + console.error(` - ${v}`); + } + console.error(''); + return 1; +} + +main() + .then((code) => process.exit(code)) + .catch((err) => { + console.error('check-section-shape: unexpected error'); + console.error(err); + process.exit(2); + }); diff --git a/packages/twenty-website-new/src/app/(home)/_constants/index.ts b/packages/twenty-website-new/src/app/(home)/_constants/index.ts deleted file mode 100644 index 3c289b35cb..0000000000 --- a/packages/twenty-website-new/src/app/(home)/_constants/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { HELPED_DATA } from './helped'; -export { HERO_DATA } from './hero'; -export { HOME_STEPPER_DATA } from './home-stepper'; -export { PROBLEM_DATA } from './problem'; -export { TESTIMONIALS_DATA } from './testimonials'; -export { THREE_CARDS_FEATURE_DATA } from './three-cards-feature'; -export { THREE_CARDS_ILLUSTRATION_DATA } from './three-cards-illustration'; diff --git a/packages/twenty-website-new/src/app/(home)/_constants/helped.ts b/packages/twenty-website-new/src/app/(home)/helped.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/(home)/_constants/helped.ts rename to packages/twenty-website-new/src/app/(home)/helped.data.ts diff --git a/packages/twenty-website-new/src/app/(home)/_constants/hero.ts b/packages/twenty-website-new/src/app/(home)/hero.data.ts similarity index 99% rename from packages/twenty-website-new/src/app/(home)/_constants/hero.ts rename to packages/twenty-website-new/src/app/(home)/hero.data.ts index bf9322fa80..cb76db6bf8 100644 --- a/packages/twenty-website-new/src/app/(home)/_constants/hero.ts +++ b/packages/twenty-website-new/src/app/(home)/hero.data.ts @@ -5,7 +5,7 @@ import type { HeroKanbanPageDefinition, HeroTablePageDefinition, } from '@/sections/Hero/types'; -import { SHARED_PEOPLE_AVATAR_URLS } from '@/lib/shared-asset-paths'; +import { SHARED_PEOPLE_AVATAR_URLS } from '@/content/site/asset-paths'; const PEOPLE_AVATAR_URLS = { anonymousIndira: SHARED_PEOPLE_AVATAR_URLS.anonymousIndira, diff --git a/packages/twenty-website-new/src/app/(home)/_constants/home-stepper.ts b/packages/twenty-website-new/src/app/(home)/home-stepper.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/(home)/_constants/home-stepper.ts rename to packages/twenty-website-new/src/app/(home)/home-stepper.data.ts diff --git a/packages/twenty-website-new/src/app/(home)/page.tsx b/packages/twenty-website-new/src/app/(home)/page.tsx index 61a6bf829d..7814a5c74f 100644 --- a/packages/twenty-website-new/src/app/(home)/page.tsx +++ b/packages/twenty-website-new/src/app/(home)/page.tsx @@ -1,16 +1,16 @@ -import { - HELPED_DATA, - HERO_DATA, - HOME_STEPPER_DATA, - PROBLEM_DATA, - TESTIMONIALS_DATA, - THREE_CARDS_FEATURE_DATA, - THREE_CARDS_ILLUSTRATION_DATA, -} from '@/app/(home)/_constants'; -import { TalkToUsButton } from '@/app/components/ContactCalModal'; -import { FAQ_DATA, MENU_DATA, TRUSTED_BY_DATA } from '@/app/_constants'; +import { HELPED_DATA } from '@/app/(home)/helped.data'; +import { HERO_DATA } from '@/app/(home)/hero.data'; +import { HOME_STEPPER_DATA } from '@/app/(home)/home-stepper.data'; +import { PROBLEM_DATA } from '@/app/(home)/problem.data'; +import { TESTIMONIALS_DATA } from '@/app/(home)/testimonials.data'; +import { THREE_CARDS_FEATURE_DATA } from '@/app/(home)/three-cards-feature.data'; +import { THREE_CARDS_ILLUSTRATION_DATA } from '@/app/(home)/three-cards-illustration.data'; +import { TalkToUsButton } from '@/lib/contact-cal'; +import { FAQ_DATA } from '@/sections/Faq/data'; +import { MENU_DATA } from '@/sections/Menu/data'; +import { TRUSTED_BY_DATA } from '@/sections/TrustedBy/data'; import { Body, Eyebrow, Heading, LinkButton } from '@/design-system/components'; -import { Pages } from '@/enums/pages'; +import { Pages } from '@/lib/pages'; import { ArrowRightUpIcon } from '@/icons'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; @@ -29,9 +29,7 @@ import { styled } from '@linaria/react'; import type { Metadata } from 'next'; export const metadata: Metadata = { - title: 'Twenty | #1 open source CRM', - description: - 'The #1 open source CRM for modern teams. Modular, scalable, and built to fit your business.', + alternates: { canonical: '/' }, }; const HOME_TOP_BACKGROUND_COLOR = '#F4F4F4'; @@ -129,7 +127,7 @@ const threeCardsIllustrationHeadingClassName = css` width: 100%; @media (min-width: ${theme.breakpoints.md}px) { - max-width: 921px; + max-width: ${theme.layout.editorial}; } [data-family='sans'] { @@ -151,6 +149,16 @@ export default async function HomePage() { return ( <> + {/* + * Above-the-fold home hero background texture. Preload warms the + * HTTP cache so it is ready by the time HomeBackgroundHalftone + * binds it to the WebGL pipeline. + */} + - + diff --git a/packages/twenty-website-new/src/app/(home)/_constants/problem.ts b/packages/twenty-website-new/src/app/(home)/problem.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/(home)/_constants/problem.ts rename to packages/twenty-website-new/src/app/(home)/problem.data.ts diff --git a/packages/twenty-website-new/src/app/(home)/_constants/testimonials.ts b/packages/twenty-website-new/src/app/(home)/testimonials.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/(home)/_constants/testimonials.ts rename to packages/twenty-website-new/src/app/(home)/testimonials.data.ts diff --git a/packages/twenty-website-new/src/app/(home)/_constants/three-cards-feature.ts b/packages/twenty-website-new/src/app/(home)/three-cards-feature.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/(home)/_constants/three-cards-feature.ts rename to packages/twenty-website-new/src/app/(home)/three-cards-feature.data.ts diff --git a/packages/twenty-website-new/src/app/(home)/_constants/three-cards-illustration.ts b/packages/twenty-website-new/src/app/(home)/three-cards-illustration.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/(home)/_constants/three-cards-illustration.ts rename to packages/twenty-website-new/src/app/(home)/three-cards-illustration.data.ts diff --git a/packages/twenty-website-new/src/app/_components/FooterVisibilityGate.tsx b/packages/twenty-website-new/src/app/_components/FooterVisibilityGate.tsx index aa2ffb7d39..fe1f37df53 100644 --- a/packages/twenty-website-new/src/app/_components/FooterVisibilityGate.tsx +++ b/packages/twenty-website-new/src/app/_components/FooterVisibilityGate.tsx @@ -7,9 +7,7 @@ type FooterVisibilityGateProps = { children: ReactNode; }; -export function FooterVisibilityGate({ - children, -}: FooterVisibilityGateProps) { +export function FooterVisibilityGate({ children }: FooterVisibilityGateProps) { const pathname = usePathname(); if (pathname === '/halftone') { diff --git a/packages/twenty-website-new/src/app/_components/ScrollToTopOnRouteChange.tsx b/packages/twenty-website-new/src/app/_components/ScrollToTopOnRouteChange.tsx new file mode 100644 index 0000000000..4753f5f836 --- /dev/null +++ b/packages/twenty-website-new/src/app/_components/ScrollToTopOnRouteChange.tsx @@ -0,0 +1,24 @@ +'use client'; + +import { usePathname } from 'next/navigation'; +import { useEffect, useRef } from 'react'; + +export function ScrollToTopOnRouteChange() { + const pathname = usePathname(); + const isInitialRenderRef = useRef(true); + + useEffect(() => { + if (isInitialRenderRef.current) { + isInitialRenderRef.current = false; + return; + } + + if (window.location.hash !== '') { + return; + } + + window.scrollTo({ top: 0, left: 0, behavior: 'auto' }); + }, [pathname]); + + return null; +} diff --git a/packages/twenty-website-new/src/app/_constants/index.ts b/packages/twenty-website-new/src/app/_constants/index.ts deleted file mode 100644 index a33e6458f9..0000000000 --- a/packages/twenty-website-new/src/app/_constants/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { FAQ_DATA } from './faq'; -export { FOOTER_DATA } from './footer'; -export { MENU_DATA } from './menu'; -export { TRUSTED_BY_DATA } from './trusted-by'; diff --git a/packages/twenty-website-new/src/app/api/enterprise/activate/route.ts b/packages/twenty-website-new/src/app/api/enterprise/activate/route.ts index 2d6d30603e..1ad37aac67 100644 --- a/packages/twenty-website-new/src/app/api/enterprise/activate/route.ts +++ b/packages/twenty-website-new/src/app/api/enterprise/activate/route.ts @@ -1,5 +1,5 @@ -import { signEnterpriseKey } from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; +import { signEnterpriseKey } from '@/lib/enterprise/enterprise-jwt'; +import { getStripeClient } from '@/lib/enterprise/stripe-client'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; @@ -22,8 +22,6 @@ export async function GET(request: Request) { expand: ['subscription', 'customer'], }); - // Subscriptions that begin in a free trial complete with - // `payment_status: 'no_payment_required'`, so accept both successful states. const SUCCESSFUL_PAYMENT_STATUSES: Array = [ 'paid', 'no_payment_required', diff --git a/packages/twenty-website-new/src/app/api/enterprise/checkout/route.ts b/packages/twenty-website-new/src/app/api/enterprise/checkout/route.ts index f0870ecc7e..4778010a9c 100644 --- a/packages/twenty-website-new/src/app/api/enterprise/checkout/route.ts +++ b/packages/twenty-website-new/src/app/api/enterprise/checkout/route.ts @@ -1,7 +1,7 @@ import { getEnterprisePriceId, getStripeClient, -} from '@/shared/enterprise/stripe-client'; +} from '@/lib/enterprise/stripe-client'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; diff --git a/packages/twenty-website-new/src/app/api/enterprise/portal/route.ts b/packages/twenty-website-new/src/app/api/enterprise/portal/route.ts index 42f4362e0a..1e8c0d0edb 100644 --- a/packages/twenty-website-new/src/app/api/enterprise/portal/route.ts +++ b/packages/twenty-website-new/src/app/api/enterprise/portal/route.ts @@ -1,5 +1,5 @@ -import { verifyEnterpriseKey } from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; +import { verifyEnterpriseKey } from '@/lib/enterprise/enterprise-jwt'; +import { getStripeClient } from '@/lib/enterprise/stripe-client'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; diff --git a/packages/twenty-website-new/src/app/api/enterprise/seats/route.ts b/packages/twenty-website-new/src/app/api/enterprise/seats/route.ts index 529b18ec26..55cdfa933c 100644 --- a/packages/twenty-website-new/src/app/api/enterprise/seats/route.ts +++ b/packages/twenty-website-new/src/app/api/enterprise/seats/route.ts @@ -1,5 +1,5 @@ -import { verifyEnterpriseKey } from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; +import { verifyEnterpriseKey } from '@/lib/enterprise/enterprise-jwt'; +import { getStripeClient } from '@/lib/enterprise/stripe-client'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; diff --git a/packages/twenty-website-new/src/app/api/enterprise/status/route.ts b/packages/twenty-website-new/src/app/api/enterprise/status/route.ts index 33f0c2bbc7..17f87004a6 100644 --- a/packages/twenty-website-new/src/app/api/enterprise/status/route.ts +++ b/packages/twenty-website-new/src/app/api/enterprise/status/route.ts @@ -1,6 +1,6 @@ -import { verifyEnterpriseKey } from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; -import { getSubscriptionCurrentPeriodEnd } from '@/shared/enterprise/stripe-subscription-helpers'; +import { verifyEnterpriseKey } from '@/lib/enterprise/enterprise-jwt'; +import { getStripeClient } from '@/lib/enterprise/stripe-client'; +import { getSubscriptionCurrentPeriodEnd } from '@/lib/enterprise/stripe-subscription-helpers'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; diff --git a/packages/twenty-website-new/src/app/api/enterprise/validate/route.ts b/packages/twenty-website-new/src/app/api/enterprise/validate/route.ts index 7c841792bb..1a7eb890b0 100644 --- a/packages/twenty-website-new/src/app/api/enterprise/validate/route.ts +++ b/packages/twenty-website-new/src/app/api/enterprise/validate/route.ts @@ -1,9 +1,9 @@ import { signValidityToken, verifyEnterpriseKey, -} from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; -import { getSubscriptionCurrentPeriodEnd } from '@/shared/enterprise/stripe-subscription-helpers'; +} from '@/lib/enterprise/enterprise-jwt'; +import { getStripeClient } from '@/lib/enterprise/stripe-client'; +import { getSubscriptionCurrentPeriodEnd } from '@/lib/enterprise/stripe-subscription-helpers'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; diff --git a/packages/twenty-website-new/src/app/api/partner-application/__tests__/route.test.ts b/packages/twenty-website-new/src/app/api/partner-application/__tests__/route.test.ts new file mode 100644 index 0000000000..96594b1385 --- /dev/null +++ b/packages/twenty-website-new/src/app/api/partner-application/__tests__/route.test.ts @@ -0,0 +1,299 @@ +const ORIGINAL_FETCH = global.fetch; +const ORIGINAL_WEBHOOK_URL = process.env.PARTNER_APPLICATION_WEBHOOK_URL; + +const VALID_PAYLOAD = { + email: 'a@b.co', + name: 'Ada Lovelace', + company: 'Analytical Engines', + website: 'https://analytical.example/', + message: 'We would like to integrate Twenty with our analytical engine.', + programId: 'technology' as const, +}; + +const VALID_BODY = JSON.stringify(VALID_PAYLOAD); + +function buildRequest({ + body = VALID_BODY, + contentType = 'application/json', + ip = '203.0.113.1', + contentLength, +}: { + body?: string; + contentType?: string | null; + ip?: string; + contentLength?: string; +} = {}) { + const headers = new Headers(); + if (contentType !== null) headers.set('content-type', contentType); + headers.set('x-forwarded-for', ip); + if (contentLength !== undefined) headers.set('content-length', contentLength); + + return new Request('https://example.com/api/partner-application', { + method: 'POST', + headers, + body, + }); +} + +async function loadRoute() { + jest.resetModules(); + const mod = await import('@/app/api/partner-application/route'); + return mod; +} + +describe('POST /api/partner-application', () => { + beforeEach(() => { + process.env.PARTNER_APPLICATION_WEBHOOK_URL = 'https://hooks.example/test'; + }); + + afterEach(() => { + global.fetch = ORIGINAL_FETCH; + process.env.PARTNER_APPLICATION_WEBHOOK_URL = ORIGINAL_WEBHOOK_URL; + }); + + it('returns 503 when the webhook URL is not configured', async () => { + delete process.env.PARTNER_APPLICATION_WEBHOOK_URL; + const { POST } = await loadRoute(); + + const response = await POST(buildRequest()); + expect(response.status).toBe(503); + }); + + it('returns 503 when the webhook URL is not a valid URL', async () => { + process.env.PARTNER_APPLICATION_WEBHOOK_URL = 'not-a-url'; + const { POST } = await loadRoute(); + + const response = await POST(buildRequest()); + expect(response.status).toBe(503); + }); + + it('returns 415 when content-type is not JSON', async () => { + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ + contentType: 'application/x-www-form-urlencoded', + ip: '203.0.113.10', + }), + ); + expect(response.status).toBe(415); + }); + + it('returns 413 when content-length declares a too-large body', async () => { + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ + contentLength: '99999999', + ip: '203.0.113.11', + }), + ); + expect(response.status).toBe(413); + }); + + it('returns 400 on malformed JSON', async () => { + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ body: '{not-json', ip: '203.0.113.12' }), + ); + expect(response.status).toBe(400); + }); + + it('returns 400 when required fields are missing', async () => { + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ + body: JSON.stringify({ email: 'a@b.co' }), + ip: '203.0.113.13', + }), + ); + expect(response.status).toBe(400); + }); + + it('returns 400 when email is invalid', async () => { + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ + body: JSON.stringify({ ...VALID_PAYLOAD, email: 'not-an-email' }), + ip: '203.0.113.14', + }), + ); + expect(response.status).toBe(400); + }); + + it('returns 400 when extra fields are present (strict schema)', async () => { + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ + body: JSON.stringify({ ...VALID_PAYLOAD, extra: 'nope' }), + ip: '203.0.113.15', + }), + ); + expect(response.status).toBe(400); + }); + + it('returns 400 when company is missing', async () => { + const { POST } = await loadRoute(); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { company: _omitted, ...withoutCompany } = VALID_PAYLOAD; + const response = await POST( + buildRequest({ + body: JSON.stringify(withoutCompany), + ip: '203.0.113.16', + }), + ); + expect(response.status).toBe(400); + }); + + it('returns 400 when website is not a URL', async () => { + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ + body: JSON.stringify({ ...VALID_PAYLOAD, website: 'not-a-url' }), + ip: '203.0.113.17', + }), + ); + expect(response.status).toBe(400); + }); + + it('returns 400 when programId is unknown', async () => { + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ + body: JSON.stringify({ ...VALID_PAYLOAD, programId: 'wat' }), + ip: '203.0.113.18', + }), + ); + expect(response.status).toBe(400); + }); + + it('forwards a valid submission to the webhook with all fields and returns 200', async () => { + const fetchSpy = jest + .fn() + .mockResolvedValue(new Response(null, { status: 200 })); + global.fetch = fetchSpy; + + const { POST } = await loadRoute(); + const response = await POST(buildRequest({ ip: '203.0.113.20' })); + + expect(response.status).toBe(200); + await expect(response.json()).resolves.toEqual({ success: true }); + + expect(fetchSpy).toHaveBeenCalledTimes(1); + const [url, init] = fetchSpy.mock.calls[0]; + expect(url).toBe('https://hooks.example/test'); + expect(init.method).toBe('POST'); + expect(JSON.parse(init.body as string)).toEqual({ + Email: 'a@b.co', + FirstName: 'Ada', + LastName: 'Lovelace', + Company: 'Analytical Engines', + Website: 'https://analytical.example/', + Message: 'We would like to integrate Twenty with our analytical engine.', + ProgramId: 'technology', + }); + expect(init.signal).toBeInstanceOf(AbortSignal); + }); + + it('forwards optional Opportunities when provided', async () => { + const fetchSpy = jest + .fn() + .mockResolvedValue(new Response(null, { status: 200 })); + global.fetch = fetchSpy; + + const { POST } = await loadRoute(); + const response = await POST( + buildRequest({ + body: JSON.stringify({ + ...VALID_PAYLOAD, + opportunities: '50/month', + }), + ip: '203.0.113.24', + }), + ); + + expect(response.status).toBe(200); + const [, init] = fetchSpy.mock.calls[0]; + expect(JSON.parse(init.body as string)).toMatchObject({ + Opportunities: '50/month', + }); + }); + + it('omits optional Opportunities when not provided', async () => { + const fetchSpy = jest + .fn() + .mockResolvedValue(new Response(null, { status: 200 })); + global.fetch = fetchSpy; + + const { POST } = await loadRoute(); + const response = await POST(buildRequest({ ip: '203.0.113.25' })); + + expect(response.status).toBe(200); + const [, init] = fetchSpy.mock.calls[0]; + expect(JSON.parse(init.body as string)).not.toHaveProperty('Opportunities'); + }); + + it('returns 502 when the webhook responds with a non-2xx status', async () => { + global.fetch = jest + .fn() + .mockResolvedValue(new Response('boom', { status: 500 })); + + const { POST } = await loadRoute(); + const response = await POST(buildRequest({ ip: '203.0.113.21' })); + expect(response.status).toBe(502); + }); + + it('returns 502 when the webhook fetch throws (network error)', async () => { + global.fetch = jest.fn().mockRejectedValue(new Error('connection refused')); + + const { POST } = await loadRoute(); + const response = await POST(buildRequest({ ip: '203.0.113.22' })); + expect(response.status).toBe(502); + }); + + it('returns 504 when the webhook surfaces an AbortError (timeout path)', async () => { + global.fetch = jest + .fn() + .mockRejectedValue( + Object.assign(new Error('aborted'), { name: 'AbortError' }), + ); + + const { POST } = await loadRoute(); + const response = await POST(buildRequest({ ip: '203.0.113.23' })); + expect(response.status).toBe(504); + }); + + it('rate-limits the same IP after the burst capacity is spent', async () => { + global.fetch = jest + .fn() + .mockResolvedValue(new Response(null, { status: 200 })); + + const { POST } = await loadRoute(); + const ip = '203.0.113.99'; + const statuses: number[] = []; + + for (let i = 0; i < 6; i++) { + const r = await POST(buildRequest({ ip })); + statuses.push(r.status); + } + + expect(statuses.slice(0, 5).every((s) => s === 200)).toBe(true); + expect(statuses[5]).toBe(429); + }); + + it('attaches a Retry-After header on 429 responses', async () => { + global.fetch = jest + .fn() + .mockResolvedValue(new Response(null, { status: 200 })); + + const { POST } = await loadRoute(); + const ip = '203.0.113.100'; + for (let i = 0; i < 5; i++) { + await POST(buildRequest({ ip })); + } + + const denied = await POST(buildRequest({ ip })); + expect(denied.status).toBe(429); + const retryAfter = denied.headers.get('Retry-After'); + expect(retryAfter).not.toBeNull(); + expect(Number.parseInt(retryAfter ?? '0', 10)).toBeGreaterThan(0); + }); +}); diff --git a/packages/twenty-website-new/src/app/api/partner-application/route.ts b/packages/twenty-website-new/src/app/api/partner-application/route.ts index b47110a831..21f801147d 100644 --- a/packages/twenty-website-new/src/app/api/partner-application/route.ts +++ b/packages/twenty-website-new/src/app/api/partner-application/route.ts @@ -1,7 +1,15 @@ -import { splitFullName } from '@/lib/partner-application/split-full-name'; +import { + createRateLimiter, + fetchWithTimeout, + getClientIpKey, + readJsonBody, +} from '@/lib/api'; +import { splitFullName } from '@/lib/partner-application'; import { NextResponse } from 'next/server'; import { z } from 'zod'; +const PARTNER_PROGRAM_IDS = ['technology', 'content', 'solutions'] as const; + const partnerApplicationRequestSchema = z.strictObject({ email: z .string() @@ -9,6 +17,15 @@ const partnerApplicationRequestSchema = z.strictObject({ .min(1, { error: 'Email is required.' }) .pipe(z.email({ error: 'Invalid email address.' })), name: z.string().trim().min(1, { error: 'Name is required.' }), + company: z.string().trim().min(1, { error: 'Company is required.' }), + website: z + .string() + .trim() + .min(1, { error: 'Website is required.' }) + .pipe(z.httpUrl({ error: 'Invalid website URL.' })), + message: z.string().trim().min(1, { error: 'Message is required.' }), + programId: z.enum(PARTNER_PROGRAM_IDS).optional(), + opportunities: z.string().trim().optional(), }); const webhookUrlSchema = z @@ -16,6 +33,15 @@ const webhookUrlSchema = z .trim() .pipe(z.httpUrl({ error: 'Invalid webhook URL.' })); +const MAX_BODY_BYTES = 16 * 1024; + +const WEBHOOK_TIMEOUT_MS = 8_000; + +const checkRateLimit = createRateLimiter({ + capacity: 5, + refillPerSec: 1 / 60, +}); + export async function POST(request: Request) { const webhookUrlResult = webhookUrlSchema.safeParse( process.env.PARTNER_APPLICATION_WEBHOOK_URL, @@ -30,50 +56,90 @@ export async function POST(request: Request) { const webhookUrl = webhookUrlResult.data; - let raw: unknown; - - try { - raw = await request.json(); - } catch { - return NextResponse.json({ error: 'Invalid JSON body.' }, { status: 400 }); + const rateLimit = checkRateLimit(getClientIpKey(request)); + if (!rateLimit.allowed) { + const retryAfterSeconds = Math.max( + 1, + Math.ceil(rateLimit.retryAfterMs / 1000), + ); + return NextResponse.json( + { error: 'Too many requests. Please try again shortly.' }, + { + status: 429, + headers: { 'Retry-After': String(retryAfterSeconds) }, + }, + ); } - const bodyResult = partnerApplicationRequestSchema.safeParse(raw); + const bodyResult = await readJsonBody(request, { + maxBytes: MAX_BODY_BYTES, + }); - if (!bodyResult.success) { - const message = - bodyResult.error.issues[0]?.message ?? 'Invalid request body.'; + if (!bodyResult.ok) { + switch (bodyResult.error) { + case 'wrong-content-type': + return NextResponse.json( + { error: 'Content-Type must be application/json.' }, + { status: 415 }, + ); + case 'too-large': + return NextResponse.json( + { error: 'Request body is too large.' }, + { status: 413 }, + ); + case 'invalid-json': + return NextResponse.json( + { error: 'Invalid JSON body.' }, + { status: 400 }, + ); + } + } + + const parsed = partnerApplicationRequestSchema.safeParse(bodyResult.value); + + if (!parsed.success) { + const message = parsed.error.issues[0]?.message ?? 'Invalid request body.'; return NextResponse.json({ error: message }, { status: 400 }); } - const { name, email } = bodyResult.data; + const { name, email, company, website, message, programId, opportunities } = + parsed.data; const { firstName, lastName } = splitFullName(name); - const webhookPayload = { - Email: email, - FirstName: firstName, - LastName: lastName, - }; - - try { - const upstreamResponse = await fetch(webhookUrl, { - body: JSON.stringify(webhookPayload), + const upstream = await fetchWithTimeout( + webhookUrl, + { + body: JSON.stringify({ + Email: email, + FirstName: firstName, + LastName: lastName, + Company: company, + Website: website, + Message: message, + ...(programId !== undefined && { ProgramId: programId }), + ...(opportunities !== undefined && + opportunities !== '' && { Opportunities: opportunities }), + }), headers: { 'Content-Type': 'application/json' }, method: 'POST', - }); + }, + { timeoutMs: WEBHOOK_TIMEOUT_MS }, + ); - if (!upstreamResponse.ok) { - return NextResponse.json( - { error: 'Partner application could not be submitted.' }, - { status: 502 }, - ); - } + if (!upstream.ok) { + const status = upstream.error === 'timeout' ? 504 : 502; + return NextResponse.json( + { error: 'Partner application could not be submitted.' }, + { status }, + ); + } - return NextResponse.json({ success: true }); - } catch { + if (!upstream.response.ok) { return NextResponse.json( { error: 'Partner application could not be submitted.' }, { status: 502 }, ); } + + return NextResponse.json({ success: true }); } diff --git a/packages/twenty-website-new/src/app/components/ContactCalModal/ContactCalModal.tsx b/packages/twenty-website-new/src/app/components/ContactCalModal/ContactCalModal.tsx deleted file mode 100644 index e2e4eb3848..0000000000 --- a/packages/twenty-website-new/src/app/components/ContactCalModal/ContactCalModal.tsx +++ /dev/null @@ -1,145 +0,0 @@ -'use client'; - -import { theme } from '@/theme'; -import { styled } from '@linaria/react'; -import dynamic from 'next/dynamic'; -import { useCallback, useEffect } from 'react'; -import { createPortal } from 'react-dom'; - -const EmbedFallback = styled.p` - color: ${theme.colors.secondary.text[60]}; - font-family: ${theme.font.family.sans}; - font-size: ${theme.font.size(4)}; - margin: 0; - padding-bottom: ${theme.spacing(8)}; - padding-top: ${theme.spacing(8)}; - text-align: center; -`; - -const CalFormEmbed = dynamic( - () => - import('./CalFormEmbed').then((mod) => ({ - default: mod.CalFormEmbed, - })), - { - loading: () => Loading form…, - ssr: false, - }, -); - -const Overlay = styled.div` - align-items: center; - backdrop-filter: blur(4px); - background: rgba(28, 28, 28, 0.8); - box-sizing: border-box; - display: flex; - inset: 0; - justify-content: center; - padding-bottom: ${theme.spacing(4)}; - padding-left: ${theme.spacing(4)}; - padding-right: ${theme.spacing(4)}; - padding-top: ${theme.spacing(4)}; - position: fixed; - z-index: 300; -`; - -const Panel = styled.div` - background: #0c0c0c; - border-radius: ${theme.radius(2)}; - box-sizing: border-box; - display: flex; - flex-direction: column; - gap: ${theme.spacing(4)}; - max-height: 100%; - max-width: 100%; - overflow-y: auto; - padding-bottom: ${theme.spacing(6)}; - padding-left: ${theme.spacing(4)}; - padding-right: ${theme.spacing(4)}; - padding-top: ${theme.spacing(5)}; - position: relative; - width: min(100%, 720px); - - @media (min-width: ${theme.breakpoints.md}px) { - padding-bottom: ${theme.spacing(8)}; - padding-left: ${theme.spacing(6)}; - padding-right: ${theme.spacing(6)}; - padding-top: ${theme.spacing(6)}; - } -`; - -const Title = styled.h2` - color: ${theme.colors.secondary.text[100]}; - font-family: ${theme.font.family.serif}; - font-size: ${theme.font.size(10)}; - font-weight: ${theme.font.weight.light}; - line-height: ${theme.lineHeight(11.5)}; - margin: 0; - - @media (min-width: ${theme.breakpoints.md}px) { - font-size: ${theme.font.size(12)}; - line-height: ${theme.lineHeight(14)}; - } -`; - -const EmbedShell = styled.div` - min-height: 400px; - width: 100%; -`; - -type ContactCalModalProps = { - open: boolean; - onClose: () => void; -}; - -export function ContactCalModal({ open, onClose }: ContactCalModalProps) { - const handleOverlayPointerDown = useCallback( - (event: React.PointerEvent) => { - if (event.target === event.currentTarget) { - onClose(); - } - }, - [onClose], - ); - - useEffect(() => { - if (!open) { - return; - } - - const handleKeyDown = (event: KeyboardEvent) => { - if (event.key === 'Escape') { - onClose(); - } - }; - - const previousOverflow = document.body.style.overflow; - document.body.style.overflow = 'hidden'; - document.addEventListener('keydown', handleKeyDown); - - return () => { - document.body.style.overflow = previousOverflow; - document.removeEventListener('keydown', handleKeyDown); - }; - }, [open, onClose]); - - if (!open) { - return null; - } - - return createPortal( - - - Talk to us - - - - - , - document.body, - ); -} diff --git a/packages/twenty-website-new/src/app/customers/9dots/page.tsx b/packages/twenty-website-new/src/app/customers/9dots/page.tsx index 344e530eb3..93732df179 100644 --- a/packages/twenty-website-new/src/app/customers/9dots/page.tsx +++ b/packages/twenty-website-new/src/app/customers/9dots/page.tsx @@ -1,12 +1,12 @@ -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { CustomersCaseStudySignoff } from '@/app/customers/_components/CustomersCaseStudySignoff'; -import { getCaseStudyPalette } from '@/app/customers/_constants'; -import type { CaseStudyData } from '@/app/customers/_constants/types'; +import { getCaseStudyPalette, type CaseStudyData } from '@/lib/customers'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { CaseStudy } from '@/sections/CaseStudy/components'; import { Menu } from '@/sections/Menu/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; const PLACEHOLDER_HERO = @@ -99,10 +99,11 @@ const CASE_STUDY: CaseStudyData = { }, }; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/customers/9dots', title: CASE_STUDY.meta.title, description: CASE_STUDY.meta.description, -}; +}); export default async function NineDotsCaseStudyPage() { const stats = await fetchCommunityStats(); diff --git a/packages/twenty-website-new/src/app/customers/_components/CustomersCaseStudySignoff.tsx b/packages/twenty-website-new/src/app/customers/_components/CustomersCaseStudySignoff.tsx index 7ab4079d1c..4f344ededc 100644 --- a/packages/twenty-website-new/src/app/customers/_components/CustomersCaseStudySignoff.tsx +++ b/packages/twenty-website-new/src/app/customers/_components/CustomersCaseStudySignoff.tsx @@ -1,6 +1,6 @@ -import { TalkToUsButton } from '@/app/components/ContactCalModal'; +import { TalkToUsButton } from '@/lib/contact-cal'; import { LinkButton } from '@/design-system/components'; -import { Pages } from '@/enums/pages'; +import { Pages } from '@/lib/pages'; import { Signoff } from '@/sections/Signoff/components'; import { theme } from '@/theme'; diff --git a/packages/twenty-website-new/src/app/customers/act-education/page.tsx b/packages/twenty-website-new/src/app/customers/act-education/page.tsx index fd4bc61d69..3e020a6fe6 100644 --- a/packages/twenty-website-new/src/app/customers/act-education/page.tsx +++ b/packages/twenty-website-new/src/app/customers/act-education/page.tsx @@ -1,12 +1,12 @@ -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { CustomersCaseStudySignoff } from '@/app/customers/_components/CustomersCaseStudySignoff'; -import { getCaseStudyPalette } from '@/app/customers/_constants'; -import type { CaseStudyData } from '@/app/customers/_constants/types'; +import { getCaseStudyPalette, type CaseStudyData } from '@/lib/customers'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { CaseStudy } from '@/sections/CaseStudy/components'; import { Menu } from '@/sections/Menu/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; const PLACEHOLDER_HERO = @@ -99,10 +99,11 @@ const CASE_STUDY: CaseStudyData = { }, }; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/customers/act-education', title: CASE_STUDY.meta.title, description: CASE_STUDY.meta.description, -}; +}); export default async function ActEducationCaseStudyPage() { const stats = await fetchCommunityStats(); diff --git a/packages/twenty-website-new/src/app/customers/alternative-partners/page.tsx b/packages/twenty-website-new/src/app/customers/alternative-partners/page.tsx index 6e5a63465e..f79c0b87e4 100644 --- a/packages/twenty-website-new/src/app/customers/alternative-partners/page.tsx +++ b/packages/twenty-website-new/src/app/customers/alternative-partners/page.tsx @@ -1,12 +1,12 @@ -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { CustomersCaseStudySignoff } from '@/app/customers/_components/CustomersCaseStudySignoff'; -import { getCaseStudyPalette } from '@/app/customers/_constants'; -import type { CaseStudyData } from '@/app/customers/_constants/types'; +import { getCaseStudyPalette, type CaseStudyData } from '@/lib/customers'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { CaseStudy } from '@/sections/CaseStudy/components'; import { Menu } from '@/sections/Menu/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; const PLACEHOLDER_HERO = @@ -73,10 +73,11 @@ const CASE_STUDY: CaseStudyData = { }, }; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/customers/alternative-partners', title: CASE_STUDY.meta.title, description: CASE_STUDY.meta.description, -}; +}); export default async function AlternativePartnersCaseStudyPage() { const stats = await fetchCommunityStats(); diff --git a/packages/twenty-website-new/src/app/customers/elevate-consulting/page.tsx b/packages/twenty-website-new/src/app/customers/elevate-consulting/page.tsx index 3d97936427..b3fd65cd9a 100644 --- a/packages/twenty-website-new/src/app/customers/elevate-consulting/page.tsx +++ b/packages/twenty-website-new/src/app/customers/elevate-consulting/page.tsx @@ -1,12 +1,12 @@ -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { CustomersCaseStudySignoff } from '@/app/customers/_components/CustomersCaseStudySignoff'; -import { getCaseStudyPalette } from '@/app/customers/_constants'; -import type { CaseStudyData } from '@/app/customers/_constants/types'; +import { getCaseStudyPalette, type CaseStudyData } from '@/lib/customers'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { CaseStudy } from '@/sections/CaseStudy/components'; import { Menu } from '@/sections/Menu/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; const PLACEHOLDER_HERO = @@ -113,10 +113,11 @@ const CASE_STUDY: CaseStudyData = { }, }; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/customers/elevate-consulting', title: CASE_STUDY.meta.title, description: CASE_STUDY.meta.description, -}; +}); export default async function ElevateConsultingCaseStudyPage() { const stats = await fetchCommunityStats(); diff --git a/packages/twenty-website-new/src/app/customers/netzero/page.tsx b/packages/twenty-website-new/src/app/customers/netzero/page.tsx index c50831f1cf..0bd7aafad4 100644 --- a/packages/twenty-website-new/src/app/customers/netzero/page.tsx +++ b/packages/twenty-website-new/src/app/customers/netzero/page.tsx @@ -1,12 +1,12 @@ -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { CustomersCaseStudySignoff } from '@/app/customers/_components/CustomersCaseStudySignoff'; -import { getCaseStudyPalette } from '@/app/customers/_constants'; -import type { CaseStudyData } from '@/app/customers/_constants/types'; +import { getCaseStudyPalette, type CaseStudyData } from '@/lib/customers'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { CaseStudy } from '@/sections/CaseStudy/components'; import { Menu } from '@/sections/Menu/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; const PLACEHOLDER_HERO = @@ -103,10 +103,11 @@ const CASE_STUDY: CaseStudyData = { }, }; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/customers/netzero', title: CASE_STUDY.meta.title, description: CASE_STUDY.meta.description, -}; +}); export default async function NetZeroCaseStudyPage() { const stats = await fetchCommunityStats(); diff --git a/packages/twenty-website-new/src/app/customers/page.tsx b/packages/twenty-website-new/src/app/customers/page.tsx index cb197c852c..0a176f1340 100644 --- a/packages/twenty-website-new/src/app/customers/page.tsx +++ b/packages/twenty-website-new/src/app/customers/page.tsx @@ -1,8 +1,10 @@ -import { FAQ_DATA, MENU_DATA, TRUSTED_BY_DATA } from '@/app/_constants'; -import { TalkToUsButton } from '@/app/components/ContactCalModal'; -import { CASE_STUDY_CATALOG_ENTRIES } from '@/app/customers/_constants'; +import { FAQ_DATA } from '@/sections/Faq/data'; +import { MENU_DATA } from '@/sections/Menu/data'; +import { TRUSTED_BY_DATA } from '@/sections/TrustedBy/data'; +import { TalkToUsButton } from '@/lib/contact-cal'; +import { CASE_STUDY_CATALOG_ENTRIES } from '@/lib/customers'; import { Eyebrow, LinkButton } from '@/design-system/components'; -import { Pages } from '@/enums/pages'; +import { Pages } from '@/lib/pages'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { CaseStudyCatalog } from '@/sections/CaseStudyCatalog/components'; @@ -12,28 +14,16 @@ import { Menu } from '@/sections/Menu/components'; import { Signoff } from '@/sections/Signoff/components'; import { TrustedBy } from '@/sections/TrustedBy/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import { css } from '@linaria/core'; import type { Metadata } from 'next'; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/customers', title: 'Customers | Twenty', description: 'Meet the teams running their business on Twenty. Real customer stories on how they shaped the CRM to fit their workflow.', - alternates: { canonical: '/customers' }, - openGraph: { - title: 'Customers | Twenty', - description: - 'Meet the teams running their business on Twenty. Real customer stories on how they shaped the CRM to fit their workflow.', - url: '/customers', - type: 'website', - }, - twitter: { - card: 'summary_large_image', - title: 'Customers | Twenty', - description: - 'Meet the teams running their business on Twenty. Real customer stories on how they shaped the CRM to fit their workflow.', - }, -}; +}); const HERO_HEADING = [ { text: 'See how teams ', fontFamily: 'serif' as const }, @@ -142,7 +132,7 @@ export default async function CaseStudiesCatalogPage() { - + diff --git a/packages/twenty-website-new/src/app/customers/w3villa/page.tsx b/packages/twenty-website-new/src/app/customers/w3villa/page.tsx index d2847bf54b..90ac376afa 100644 --- a/packages/twenty-website-new/src/app/customers/w3villa/page.tsx +++ b/packages/twenty-website-new/src/app/customers/w3villa/page.tsx @@ -1,12 +1,12 @@ -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { CustomersCaseStudySignoff } from '@/app/customers/_components/CustomersCaseStudySignoff'; -import { getCaseStudyPalette } from '@/app/customers/_constants'; -import type { CaseStudyData } from '@/app/customers/_constants/types'; +import { getCaseStudyPalette, type CaseStudyData } from '@/lib/customers'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { CaseStudy } from '@/sections/CaseStudy/components'; import { Menu } from '@/sections/Menu/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; const PLACEHOLDER_HERO = @@ -100,10 +100,11 @@ const CASE_STUDY: CaseStudyData = { }, }; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/customers/w3villa', title: CASE_STUDY.meta.title, description: CASE_STUDY.meta.description, -}; +}); export default async function W3villaCaseStudyPage() { const stats = await fetchCommunityStats(); diff --git a/packages/twenty-website-new/src/app/enterprise/activate/EnterpriseActivateClient.tsx b/packages/twenty-website-new/src/app/enterprise/activate/EnterpriseActivateClient.tsx index 044c064231..680865edf5 100644 --- a/packages/twenty-website-new/src/app/enterprise/activate/EnterpriseActivateClient.tsx +++ b/packages/twenty-website-new/src/app/enterprise/activate/EnterpriseActivateClient.tsx @@ -70,25 +70,34 @@ const CopyTrigger = styled.button<{ $copied: boolean }>` right: ${theme.spacing(2)}; top: ${theme.spacing(2)}; + /* + * When showing the "Copied!" success state we override the inner + * BaseButton's appearance through its documented data-slot hooks. + * CSS rules cleanly win over SVG presentation attributes (fill on + * a path element) and over the Label's CSS-driven color, so no + * !important is needed for those. + * + * For the hover-fill we cannot override its inline opacity from CSS + * (inline style always wins) so we suppress it via visibility: hidden + * instead — that property is not set inline anywhere, so the cascade + * resolves correctly without !important. + */ ${({ $copied }) => $copied ? ` & [data-slot='button-base-shape'] path, & [data-slot='button-base-shape'] rect { - fill: ${theme.colors.accent.green[100]} !important; + fill: ${theme.colors.accent.green[100]}; } & [data-slot='button-hover-fill'] { - opacity: 0 !important; + visibility: hidden; pointer-events: none; } - & [data-slot='button-label'] { - color: ${theme.colors.primary.background[100]} !important; - } - + & [data-slot='button-label'], &:is(:hover, :focus-visible) [data-slot='button-label'] { - color: ${theme.colors.primary.background[100]} !important; + color: ${theme.colors.primary.background[100]}; } ` : ''} diff --git a/packages/twenty-website-new/src/app/enterprise/activate/page.tsx b/packages/twenty-website-new/src/app/enterprise/activate/page.tsx index bfd80968fe..7c2f5e031e 100644 --- a/packages/twenty-website-new/src/app/enterprise/activate/page.tsx +++ b/packages/twenty-website-new/src/app/enterprise/activate/page.tsx @@ -1,22 +1,24 @@ -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { EnterpriseActivateClient } from '@/app/enterprise/activate/EnterpriseActivateClient'; import { Body, Container, Eyebrow } from '@/design-system/components'; -import type { HeadingType } from '@/design-system/components/Heading/types/Heading'; -import { Pages } from '@/enums/pages'; +import type { HeadingType } from '@/design-system/components/Heading'; +import { Pages } from '@/lib/pages'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { Hero } from '@/sections/Hero/components'; import { Menu } from '@/sections/Menu/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; import { Suspense } from 'react'; import { styled } from '@linaria/react'; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/enterprise/activate', title: 'Enterprise activation | Twenty', description: 'Complete activation for your Twenty self-hosted enterprise license.', -}; +}); const ENTERPRISE_ACTIVATE_HEADING: HeadingType[] = [ { text: 'Enterprise ', fontFamily: 'serif' }, diff --git a/packages/twenty-website-new/src/app/halftone/_components/ControlsPanel.tsx b/packages/twenty-website-new/src/app/halftone/_components/ControlsPanel.tsx index c46255ec0f..c3d3d9230f 100644 --- a/packages/twenty-website-new/src/app/halftone/_components/ControlsPanel.tsx +++ b/packages/twenty-website-new/src/app/halftone/_components/ControlsPanel.tsx @@ -9,7 +9,7 @@ import type { HalftoneSourceMode, HalftoneStudioSettings, HalftoneTabId, -} from '@/app/halftone/_lib/state'; +} from '@/lib/halftone/state'; import { AnimationsTab } from './controls/AnimationsTab'; import { DesignTab } from './controls/DesignTab'; import { ExportTab } from './controls/ExportTab'; diff --git a/packages/twenty-website-new/src/app/halftone/_components/HalftoneStudio.tsx b/packages/twenty-website-new/src/app/halftone/_components/HalftoneStudio.tsx index 8aff753f17..4a93ba086c 100644 --- a/packages/twenty-website-new/src/app/halftone/_components/HalftoneStudio.tsx +++ b/packages/twenty-website-new/src/app/halftone/_components/HalftoneStudio.tsx @@ -1,18 +1,6 @@ 'use client'; -import { - HalftoneCanvas, - type HalftoneSnapshotFn, -} from '@/app/halftone/_components/HalftoneCanvas'; import { ControlsPanel } from '@/app/halftone/_components/ControlsPanel'; -import { resolveExportArtifactNames } from '@/app/halftone/_lib/exportNames'; -import { - createFallbackGeometry, - disposeGeometryCache, - getGeometryForSpec, -} from '@/app/halftone/_lib/geometry-registry'; -import { REFERENCE_PREVIEW_DISTANCE } from '@/app/halftone/_lib/footprint'; -import { generateImageHalftoneSvg } from '@/app/halftone/_lib/imageSvgExport'; import { DEFAULT_REACT_EXPORT_SETTINGS, deriveExportComponentName, @@ -22,6 +10,23 @@ import { parseExportedPreset, type ReactExportSettings, } from '@/app/halftone/_lib/exporters'; +import { resolveExportArtifactNames } from '@/app/halftone/_lib/exportNames'; +import { generateImageHalftoneSvg } from '@/app/halftone/_lib/imageSvgExport'; +import { + buildShareUrl, + decodeShareState, + encodeShareState, +} from '@/app/halftone/_lib/share'; +import { + HalftoneCanvas, + type HalftoneSnapshotFn, +} from '@/lib/halftone/halftone-canvas'; +import { REFERENCE_PREVIEW_DISTANCE } from '@/lib/halftone/footprint'; +import { + createFallbackGeometry, + disposeGeometryCache, + getGeometryForSpec, +} from '@/lib/halftone/geometry-registry'; import { DEFAULT_IMAGE_HALFTONE_SETTINGS, DEFAULT_SHAPE_HALFTONE_SETTINGS, @@ -32,12 +37,7 @@ import { type HalftoneModelLoader, type HalftoneSourceMode, normalizeHalftoneStudioSettings, -} from '@/app/halftone/_lib/state'; -import { - buildShareUrl, - decodeShareState, - encodeShareState, -} from '@/app/halftone/_lib/share'; +} from '@/lib/halftone/state'; import { Logo as LogoIcon } from '@/icons'; import { theme } from '@/theme'; import { styled } from '@linaria/react'; @@ -60,7 +60,10 @@ const DESKTOP_CONTROLS_PANEL_FOOTPRINT = const StudioShell = styled.div<{ $background: string }>` background: ${(props) => props.$background}; + /* Full-screen tool: track the visible viewport so the bottom controls bar + * is reachable on mobile Safari (where 100vh extends behind the URL bar). */ height: 100vh; + height: 100dvh; overflow: hidden; position: relative; width: 100%; @@ -142,6 +145,7 @@ const ControlsPositioner = styled.div` bottom: 20px; display: flex; height: calc(100vh - 40px); + height: calc(100dvh - 40px); justify-content: flex-end; pointer-events: none; position: fixed; @@ -471,9 +475,6 @@ export function HalftoneStudio() { }; }, [state.settings.halftone, state.settings.sourceMode]); - // Hydrate from URL hash on first mount. Done in an effect (not the reducer - // initializer) so the server-rendered HTML matches the client and we don't - // touch `window` during render. const hashHydratedReference = useRef(false); useEffect(() => { if (hashHydratedReference.current) { @@ -493,9 +494,6 @@ export function HalftoneStudio() { setExportName(decoded.exportName); }, []); - // Mirror the current design state to the URL hash so a refresh (and a copy - // of the URL) restores the same look. We skip the very first effect run so - // the URL stays clean until the user actually changes something. const hashSyncInitializedReference = useRef(false); useEffect(() => { if (!hashSyncInitializedReference.current) { @@ -1182,12 +1180,7 @@ export function HalftoneStudio() { height, }); }, - [ - exportBackground, - imageElement, - previewDistance, - state.settings, - ], + [exportBackground, imageElement, previewDistance, state.settings], ); const handleExportHalftoneSvg = useCallback( @@ -1213,10 +1206,7 @@ export function HalftoneStudio() { }); window.setTimeout(() => dispatch({ type: 'clearStatus' }), 2000); }, - [ - buildHalftoneSvg, - exportArtifactNames.fileBaseName, - ], + [buildHalftoneSvg, exportArtifactNames.fileBaseName], ); const handleCopyHalftoneSvg = useCallback( diff --git a/packages/twenty-website-new/src/app/halftone/_components/controls/AnimationsTab.tsx b/packages/twenty-website-new/src/app/halftone/_components/controls/AnimationsTab.tsx index 78b9178797..e158cda298 100644 --- a/packages/twenty-website-new/src/app/halftone/_components/controls/AnimationsTab.tsx +++ b/packages/twenty-website-new/src/app/halftone/_components/controls/AnimationsTab.tsx @@ -5,7 +5,7 @@ import { formatDecimal, formatPercent, } from '@/app/halftone/_lib/formatters'; -import type { HalftoneStudioSettings } from '@/app/halftone/_lib/state'; +import type { HalftoneStudioSettings } from '@/lib/halftone/state'; import { ColorControlLabel, ColorControlRow, diff --git a/packages/twenty-website-new/src/app/halftone/_components/controls/DesignTab.tsx b/packages/twenty-website-new/src/app/halftone/_components/controls/DesignTab.tsx index 4ede596c5a..7b873370cd 100644 --- a/packages/twenty-website-new/src/app/halftone/_components/controls/DesignTab.tsx +++ b/packages/twenty-website-new/src/app/halftone/_components/controls/DesignTab.tsx @@ -11,7 +11,7 @@ import { type HalftoneBackgroundSettings, type HalftoneSourceMode, type HalftoneStudioSettings, -} from '@/app/halftone/_lib/state'; +} from '@/lib/halftone/state'; import { styled } from '@linaria/react'; import { ColorControlLabel, diff --git a/packages/twenty-website-new/src/app/halftone/_components/controls/ExportTab.tsx b/packages/twenty-website-new/src/app/halftone/_components/controls/ExportTab.tsx index d9630a3653..43074066a8 100644 --- a/packages/twenty-website-new/src/app/halftone/_components/controls/ExportTab.tsx +++ b/packages/twenty-website-new/src/app/halftone/_components/controls/ExportTab.tsx @@ -6,7 +6,7 @@ import { formatAnimationName } from '@/app/halftone/_lib/formatters'; import type { HalftoneGeometrySpec, HalftoneStudioSettings, -} from '@/app/halftone/_lib/state'; +} from '@/lib/halftone/state'; import { useState } from 'react'; import { ExportButton, diff --git a/packages/twenty-website-new/src/app/halftone/_components/controls/controls-ui.tsx b/packages/twenty-website-new/src/app/halftone/_components/controls/controls-ui.tsx index 9cb253e6ea..ed947b2158 100644 --- a/packages/twenty-website-new/src/app/halftone/_components/controls/controls-ui.tsx +++ b/packages/twenty-website-new/src/app/halftone/_components/controls/controls-ui.tsx @@ -16,6 +16,8 @@ const TAB_LABEL_WIDTH = 72; export const PanelShell = styled.aside<{ $collapsed?: boolean }>` background: rgba(18, 18, 22, 0.88); + /* -webkit- prefix is required for the blur to render on Safari < 18. */ + -webkit-backdrop-filter: blur(24px) saturate(1.4); backdrop-filter: blur(24px) saturate(1.4); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 16px; @@ -228,7 +230,7 @@ const EditableControlValueInput = styled.input` } `; -export const SliderInput = styled.input` +export const SliderInput = styled.input<{ $fillPercent: number }>` appearance: none; background: transparent; cursor: pointer; @@ -241,8 +243,8 @@ export const SliderInput = styled.input` &::-webkit-slider-runnable-track { background: linear-gradient( to right, - rgba(255, 255, 255, 0.35) var(--fill, 50%), - rgba(255, 255, 255, 0.08) var(--fill, 50%) + rgba(255, 255, 255, 0.35) ${({ $fillPercent }) => $fillPercent}%, + rgba(255, 255, 255, 0.08) ${({ $fillPercent }) => $fillPercent}% ); border-radius: 999px; height: 6px; @@ -844,11 +846,11 @@ export function SliderControl({ {children} diff --git a/packages/twenty-website-new/src/app/halftone/_lib/exporters.test.ts b/packages/twenty-website-new/src/app/halftone/_lib/exporters.test.ts index 47aa790ff6..32f97f61f1 100644 --- a/packages/twenty-website-new/src/app/halftone/_lib/exporters.test.ts +++ b/packages/twenty-website-new/src/app/halftone/_lib/exporters.test.ts @@ -5,11 +5,12 @@ import { type ReactExportSettings, } from '@/app/halftone/_lib/exporters'; import { resolveExportArtifactNames } from '@/app/halftone/_lib/exportNames'; +import { REFERENCE_PREVIEW_DISTANCE } from '@/lib/halftone/footprint'; import { DEFAULT_HALFTONE_SETTINGS, normalizeHalftoneStudioSettings, type HalftoneGeometrySpec, -} from '@/app/halftone/_lib/state'; +} from '@/lib/halftone/state'; const IMPORTED_GLB_SHAPE: HalftoneGeometrySpec = { key: 'userUpload_connect', @@ -222,3 +223,45 @@ describe('halftone react export presets', () => { expect(output).not.toContain("'use client';"); }); }); + +describe('parseExportedPreset legacy presets', () => { + it('falls back to the reference preview distance for legacy presets', () => { + const content = ` +const settings = ${JSON.stringify(DEFAULT_HALFTONE_SETTINGS, null, 2)}; +const shape = ${JSON.stringify( + { + filename: null, + key: 'torusKnot', + kind: 'builtin', + label: 'Torus Knot', + loader: null, + }, + null, + 2, + )}; +const initialPose = ${JSON.stringify( + { + autoElapsed: 0, + rotateElapsed: 0, + rotationX: 0, + rotationY: 0, + rotationZ: 0, + targetRotationX: 0, + targetRotationY: 0, + timeElapsed: 0, + }, + null, + 2, + )}; +const VIRTUAL_RENDER_HEIGHT = 768; + +export default function LegacyHalftone() { + return null; +} +`; + + expect(parseExportedPreset(content).previewDistance).toBe( + REFERENCE_PREVIEW_DISTANCE, + ); + }); +}); diff --git a/packages/twenty-website-new/src/app/halftone/_lib/exporters.ts b/packages/twenty-website-new/src/app/halftone/_lib/exporters.ts index 21da7c5115..3419084c55 100644 --- a/packages/twenty-website-new/src/app/halftone/_lib/exporters.ts +++ b/packages/twenty-website-new/src/app/halftone/_lib/exporters.ts @@ -1,17 +1,18 @@ import { normalizeExportComponentName } from '@/app/halftone/_lib/exportNames'; +import { GLASS_ENVIRONMENT_DATA_URL } from '@/app/halftone/_lib/glassEnvironmentData'; import { HALFTONE_FOOTPRINT_RUNTIME_SOURCE, REFERENCE_PREVIEW_DISTANCE, VIRTUAL_RENDER_HEIGHT, -} from '@/app/halftone/_lib/footprint'; +} from '@/lib/halftone/footprint'; import { LEGACY_HALFTONE_SETTING_KEYS, isRoundedBandHalftoneSettings, type HalftoneExportPose, type HalftoneGeometrySpec, type HalftoneStudioSettings, -} from '@/app/halftone/_lib/state'; -import { GLASS_ENVIRONMENT_DATA_URL } from '@/app/halftone/_lib/glassEnvironmentData'; +} from '@/lib/halftone/state'; +import { DRACO_DECODER_PATH } from '@/lib/visual-runtime/draco-decoder-path'; export type ReactExportSettings = { includeNamedAndDefaultExport: boolean; @@ -1155,8 +1156,7 @@ function parseFbxGeometry(buffer, label) { `; const IMPORTED_GLB_RUNTIME_SOURCE = String.raw` -const DRACO_DECODER_PATH = - 'https://www.gstatic.com/draco/versioned/decoders/1.5.6/'; +const DRACO_DECODER_PATH = ${JSON.stringify(DRACO_DECODER_PATH)}; function parseGlbGeometry(buffer, label) { return new Promise((resolve, reject) => { @@ -2144,6 +2144,7 @@ async function mountHalftoneCanvas(options) { return () => {}; } + // boundary-allow-next-line:no-raw-webgl-renderer -- emitted into the standalone HTML export; runs in the user's downloaded file with no access to lib/visual-runtime const renderer = new THREE.WebGLRenderer({ antialias: false, alpha: true }); renderer.outputColorSpace = THREE.SRGBColorSpace; renderer.setPixelRatio(1); @@ -2752,6 +2753,7 @@ async function mountHalftoneCanvas(options) { img.src = imageUrl; }); + // boundary-allow-next-line:no-raw-webgl-renderer -- emitted into the standalone HTML export; runs in the user's downloaded file with no access to lib/visual-runtime const renderer = new THREE.WebGLRenderer({ antialias: false, alpha: true }); renderer.outputColorSpace = THREE.SRGBColorSpace; renderer.setPixelRatio(1); @@ -3198,8 +3200,22 @@ export function generateReactComponent( pose, options.previewDistance, ); + const generatedBanner = exportSettings.includeTsNoCheck + ? `/** + * @generated halftone-studio + * This file is autogenerated by the in-app halftone studio + * (src/app/halftone). Do NOT hand-edit — regenerate the export + * from the studio if the visual or runtime behaviour needs to change. + * + * Type checking is disabled at the file level because the serialized + * Three.js runtime below contains thousands of lines of legacy + * implicitly-typed code that the generator does not annotate. See + * src/app/halftone/_lib/exporters.ts for the generator source. + */ +// @ts-nocheck` + : null; const directiveLines = [ - exportSettings.includeTsNoCheck ? '// @ts-nocheck' : null, + generatedBanner, exportSettings.includeUseClientDirective ? "'use client';" : null, ] .filter((line): line is string => line !== null) diff --git a/packages/twenty-website-new/src/app/halftone/_lib/formatters.ts b/packages/twenty-website-new/src/app/halftone/_lib/formatters.ts index d6d15dd7b7..005de23689 100644 --- a/packages/twenty-website-new/src/app/halftone/_lib/formatters.ts +++ b/packages/twenty-website-new/src/app/halftone/_lib/formatters.ts @@ -10,21 +10,24 @@ export function formatPercent(value: number, digits = 0) { return `${(value * 100).toFixed(digits)}%`; } -export function formatAnimationName(animation: { - autoRotateEnabled: boolean; - breatheEnabled: boolean; - cameraParallaxEnabled: boolean; - dragFlowEnabled: boolean; - followHoverEnabled: boolean; - followDragEnabled: boolean; - floatEnabled: boolean; - hoverHalftoneEnabled: boolean; - hoverLightEnabled: boolean; - lightSweepEnabled: boolean; - rotateEnabled: boolean; - rotatePreset: string; - springReturnEnabled: boolean; -}, sourceMode: 'shape' | 'image') { +export function formatAnimationName( + animation: { + autoRotateEnabled: boolean; + breatheEnabled: boolean; + cameraParallaxEnabled: boolean; + dragFlowEnabled: boolean; + followHoverEnabled: boolean; + followDragEnabled: boolean; + floatEnabled: boolean; + hoverHalftoneEnabled: boolean; + hoverLightEnabled: boolean; + lightSweepEnabled: boolean; + rotateEnabled: boolean; + rotatePreset: string; + springReturnEnabled: boolean; + }, + sourceMode: 'shape' | 'image', +) { const activeModes: string[] = []; if (sourceMode === 'image') { diff --git a/packages/twenty-website-new/src/app/halftone/_lib/imageSvgExport.ts b/packages/twenty-website-new/src/app/halftone/_lib/imageSvgExport.ts index 495ae15070..6018c1674d 100644 --- a/packages/twenty-website-new/src/app/halftone/_lib/imageSvgExport.ts +++ b/packages/twenty-website-new/src/app/halftone/_lib/imageSvgExport.ts @@ -2,8 +2,8 @@ import { getContainedImageRect, getImageFootprintScale, getImagePreviewZoom, -} from '@/app/halftone/_lib/footprint'; -import type { HalftoneStudioSettings } from '@/app/halftone/_lib/state'; +} from '@/lib/halftone/footprint'; +import type { HalftoneStudioSettings } from '@/lib/halftone/state'; type PixelBounds = { maxX: number; @@ -160,8 +160,7 @@ export function generateImageHalftoneSvg({ ); const localPower = clamp(settings.halftone.power, -1.5, 1.5); const localWidth = clamp(settings.halftone.width, 0.05, 1.4); - const toneTargetMultiplier = - settings.halftone.toneTarget === 'dark' ? -1 : 1; + const toneTargetMultiplier = settings.halftone.toneTarget === 'dark' ? -1 : 1; const lineColor = settings.halftone.dashColor; const columns = Math.ceil(width / halftoneSize); const rows = Math.ceil(height / halftoneSize); @@ -183,17 +182,17 @@ export function generateImageHalftoneSvg({ const contrast = settings.halftone.imageContrast; const red = clamp( - ((pixels[sampleIndex] / 255 - 0.5) * contrast) + 0.5, + (pixels[sampleIndex] / 255 - 0.5) * contrast + 0.5, 0, 1, ); const green = clamp( - ((pixels[sampleIndex + 1] / 255 - 0.5) * contrast) + 0.5, + (pixels[sampleIndex + 1] / 255 - 0.5) * contrast + 0.5, 0, 1, ); const blue = clamp( - ((pixels[sampleIndex + 2] / 255 - 0.5) * contrast) + 0.5, + (pixels[sampleIndex + 2] / 255 - 0.5) * contrast + 0.5, 0, 1, ); @@ -203,8 +202,6 @@ export function generateImageHalftoneSvg({ toneValue = 1 - toneValue; } - // Preserve the pre-toneTarget light-mode response by keeping the power - // bias inside the averaged tone calculation. const bandRadius = clamp(toneValue + (localPower * Math.SQRT1_2) / 3, 0, 1) * 0.93; diff --git a/packages/twenty-website-new/src/app/halftone/_lib/share.ts b/packages/twenty-website-new/src/app/halftone/_lib/share.ts index 7ce1637e07..ea741c4c7e 100644 --- a/packages/twenty-website-new/src/app/halftone/_lib/share.ts +++ b/packages/twenty-website-new/src/app/halftone/_lib/share.ts @@ -3,7 +3,7 @@ import { DEFAULT_HALFTONE_SETTINGS, normalizeHalftoneStudioSettings, type HalftoneStudioSettings, -} from '@/app/halftone/_lib/state'; +} from '@/lib/halftone/state'; export type ShareableHalftoneState = { settings: HalftoneStudioSettings; @@ -57,9 +57,6 @@ export function encodeShareState(state: ShareableHalftoneState): string { return toUrlSafeBase64(encodeUtf8ToBase64(JSON.stringify(payload))); } -// Imported geometry only exists in the user's local session, so a shared URL -// can never reproduce a custom upload — fall back to the default shape if the -// hash points at one. function sanitizeShapeKey(shapeKey: string): string { const isBuiltinShape = DEFAULT_GEOMETRY_SPECS.some( (spec) => spec.key === shapeKey, diff --git a/packages/twenty-website-new/src/app/halftone/page.tsx b/packages/twenty-website-new/src/app/halftone/page.tsx index 2933ad6908..19809ce3d1 100644 --- a/packages/twenty-website-new/src/app/halftone/page.tsx +++ b/packages/twenty-website-new/src/app/halftone/page.tsx @@ -1,10 +1,12 @@ import { HalftoneStudio } from '@/app/halftone/_components/HalftoneStudio'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/halftone', title: 'Halftone Generator | Twenty', description: 'Interactive halftone generator exported from Twenty.', -}; +}); export default function HalftonePage() { return ; diff --git a/packages/twenty-website-new/src/app/layout.tsx b/packages/twenty-website-new/src/app/layout.tsx index 4668c60cc7..9a6bf9c157 100644 --- a/packages/twenty-website-new/src/app/layout.tsx +++ b/packages/twenty-website-new/src/app/layout.tsx @@ -1,6 +1,10 @@ import { FooterVisibilityGate } from '@/app/_components/FooterVisibilityGate'; -import { FOOTER_DATA } from '@/app/_constants/footer'; -import { ContactCalModalRoot } from '@/app/components/ContactCalModal'; +import { ScrollToTopOnRouteChange } from '@/app/_components/ScrollToTopOnRouteChange'; +import { FOOTER_DATA } from '@/sections/Footer/data'; +import { ContactCalModalRoot } from '@/lib/contact-cal'; +import { PartnerApplicationModalRoot } from '@/lib/partner-application'; +import { getSiteUrl } from '@/lib/seo'; +import { DRACO_DECODER_ORIGIN } from '@/lib/visual-runtime/draco-decoder-path'; import { Footer } from '@/sections/Footer/components'; import { theme } from '@/theme'; import { cssVariables } from '@/theme/css-variables'; @@ -37,7 +41,7 @@ const vt323 = VT323({ display: 'swap', }); -css` +const _globalStyles = css` :global(*), :global(*::before), :global(*::after) { @@ -55,7 +59,11 @@ css` display: flex; font-family: ${theme.font.family.sans}; flex-direction: column; + /* dvh keeps the footer pinned to the visible viewport bottom on mobile + * Safari (where 100vh = large viewport with chrome hidden, leaving a + * gap when the URL bar is showing). vh fallback for older browsers. */ min-height: 100vh; + min-height: 100dvh; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @@ -65,10 +73,32 @@ const StyledMain = styled.main` flex-grow: 1; `; +const SITE_TITLE = 'Twenty | #1 open source CRM'; +const SITE_DESCRIPTION = + 'The #1 open source CRM for modern teams. Modular, scalable, and built to fit your business.'; + export const metadata: Metadata = { - title: 'Twenty | #1 open source CRM', - description: - 'The #1 open source CRM for modern teams. Modular, scalable, and built to fit your business.', + metadataBase: new URL(getSiteUrl()), + title: { + default: SITE_TITLE, + template: '%s | Twenty', + }, + description: SITE_DESCRIPTION, + applicationName: 'Twenty', + openGraph: { + title: SITE_TITLE, + description: SITE_DESCRIPTION, + url: '/', + siteName: 'Twenty', + type: 'website', + }, + twitter: { + card: 'summary_large_image', + title: SITE_TITLE, + description: SITE_DESCRIPTION, + site: '@twentycrm', + creator: '@twentycrm', + }, }; export default function RootLayout({ @@ -76,22 +106,37 @@ export default function RootLayout({ }: Readonly<{ children: React.ReactNode }>) { return ( + + {/* + * Warm up the connection to the DRACO decoder host so the first 3D + * model on the page does not pay the full TLS handshake cost the + * moment it starts decoding. + */} + + - {children} - - - - - - - + + + {children} + + + + + + + + diff --git a/packages/twenty-website-new/src/app/partners/_constants/index.ts b/packages/twenty-website-new/src/app/partners/_constants/index.ts deleted file mode 100644 index 2f6d0ca04f..0000000000 --- a/packages/twenty-website-new/src/app/partners/_constants/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { ENGAGEMENT_BAND_DATA } from './engagement-band'; -export { HERO_DATA } from './hero'; -export { SIGNOFF_DATA } from './signoff'; -export { TESTIMONIALS_DATA } from './testimonials'; -export { THREE_CARDS_ILLUSTRATION_DATA } from './three-cards-illustration'; diff --git a/packages/twenty-website-new/src/app/partners/components/PartnerApplication/BecomePartnerButton.tsx b/packages/twenty-website-new/src/app/partners/components/PartnerApplication/BecomePartnerButton.tsx index b80d57e1c4..a7b54b02ba 100644 --- a/packages/twenty-website-new/src/app/partners/components/PartnerApplication/BecomePartnerButton.tsx +++ b/packages/twenty-website-new/src/app/partners/components/PartnerApplication/BecomePartnerButton.tsx @@ -4,10 +4,9 @@ import { BaseButton, buttonBaseStyles, } from '@/design-system/components/Button/BaseButton'; +import { usePartnerApplicationModal } from '@/lib/partner-application'; import { styled } from '@linaria/react'; -import { usePartnerApplicationModal } from './PartnerApplicationModalRoot'; - const StyledTrigger = styled.button` ${buttonBaseStyles} `; diff --git a/packages/twenty-website-new/src/app/partners/components/PartnerApplication/PartnerHeroCtas.tsx b/packages/twenty-website-new/src/app/partners/components/PartnerApplication/PartnerHeroCtas.tsx index aecc54bba7..83a9a009b5 100644 --- a/packages/twenty-website-new/src/app/partners/components/PartnerApplication/PartnerHeroCtas.tsx +++ b/packages/twenty-website-new/src/app/partners/components/PartnerApplication/PartnerHeroCtas.tsx @@ -1,6 +1,6 @@ 'use client'; -import { TalkToUsButton } from '@/app/components/ContactCalModal'; +import { TalkToUsButton } from '@/lib/contact-cal'; import { BecomePartnerButton } from './BecomePartnerButton'; diff --git a/packages/twenty-website-new/src/app/partners/components/PartnerApplication/PartnerSignoffCtas.tsx b/packages/twenty-website-new/src/app/partners/components/PartnerApplication/PartnerSignoffCtas.tsx index eb3ade4002..9382601c2e 100644 --- a/packages/twenty-website-new/src/app/partners/components/PartnerApplication/PartnerSignoffCtas.tsx +++ b/packages/twenty-website-new/src/app/partners/components/PartnerApplication/PartnerSignoffCtas.tsx @@ -1,6 +1,6 @@ 'use client'; -import { TalkToUsButton } from '@/app/components/ContactCalModal'; +import { TalkToUsButton } from '@/lib/contact-cal'; import { BecomePartnerButton } from './BecomePartnerButton'; diff --git a/packages/twenty-website-new/src/app/partners/components/PartnerApplication/index.ts b/packages/twenty-website-new/src/app/partners/components/PartnerApplication/index.ts index 33093992d9..bcf824c41b 100644 --- a/packages/twenty-website-new/src/app/partners/components/PartnerApplication/index.ts +++ b/packages/twenty-website-new/src/app/partners/components/PartnerApplication/index.ts @@ -1,4 +1,3 @@ export { BecomePartnerButton } from './BecomePartnerButton'; -export { PartnerApplicationModalRoot } from './PartnerApplicationModalRoot'; export { PartnerHeroCtas } from './PartnerHeroCtas'; export { PartnerSignoffCtas } from './PartnerSignoffCtas'; diff --git a/packages/twenty-website-new/src/app/partners/_constants/engagement-band.ts b/packages/twenty-website-new/src/app/partners/engagement-band.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/partners/_constants/engagement-band.ts rename to packages/twenty-website-new/src/app/partners/engagement-band.data.ts diff --git a/packages/twenty-website-new/src/app/partners/_constants/hero.ts b/packages/twenty-website-new/src/app/partners/hero.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/partners/_constants/hero.ts rename to packages/twenty-website-new/src/app/partners/hero.data.ts diff --git a/packages/twenty-website-new/src/app/partners/page.tsx b/packages/twenty-website-new/src/app/partners/page.tsx index 74c41103c6..a1e6a484a7 100644 --- a/packages/twenty-website-new/src/app/partners/page.tsx +++ b/packages/twenty-website-new/src/app/partners/page.tsx @@ -1,19 +1,18 @@ -import { FAQ_DATA, MENU_DATA, TRUSTED_BY_DATA } from '@/app/_constants'; -import { TalkToUsButton } from '@/app/components/ContactCalModal'; -import { CASE_STUDY_CATALOG_ENTRIES } from '@/app/customers/_constants'; +import { FAQ_DATA } from '@/sections/Faq/data'; +import { MENU_DATA } from '@/sections/Menu/data'; +import { TRUSTED_BY_DATA } from '@/sections/TrustedBy/data'; +import { TalkToUsButton } from '@/lib/contact-cal'; +import { CASE_STUDY_CATALOG_ENTRIES } from '@/lib/customers'; +import { THREE_CARDS_ILLUSTRATION_DATA } from '@/app/partners/three-cards-illustration.data'; +import { HERO_DATA } from '@/app/partners/hero.data'; +import { SIGNOFF_DATA } from '@/app/partners/signoff.data'; +import { TESTIMONIALS_DATA } from '@/app/partners/testimonials.data'; import { - THREE_CARDS_ILLUSTRATION_DATA, - HERO_DATA, - SIGNOFF_DATA, - TESTIMONIALS_DATA, -} from '@/app/partners/_constants'; -import { - PartnerApplicationModalRoot, PartnerHeroCtas, PartnerSignoffCtas, } from '@/app/partners/components/PartnerApplication'; import { Body, Eyebrow, Heading, LinkButton } from '@/design-system/components'; -import { Pages } from '@/enums/pages'; +import { Pages } from '@/lib/pages'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { CaseStudyCatalog } from '@/sections/CaseStudyCatalog/components'; @@ -26,6 +25,7 @@ import { ThreeCards } from '@/sections/ThreeCards/components'; import { TrustedBy } from '@/sections/TrustedBy/components'; import type { ThreeCardsScrollLayoutOptions } from '@/sections/ThreeCards/utils/three-cards-scroll-layout'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import { styled } from '@linaria/react'; import type { Metadata } from 'next'; @@ -46,18 +46,19 @@ const PromoSpacing = styled.div` } `; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/partners', title: 'Partners | Twenty', description: 'Join our partner ecosystem and grow with us as we build the #1 open source CRM.', -}; +}); export default async function PartnerPage() { const stats = await fetchCommunityStats(); const menuSocialLinks = mergeSocialLinkLabels(MENU_DATA.socialLinks, stats); return ( - + <> - + @@ -130,14 +134,17 @@ export default async function PartnerPage() { color={theme.colors.primary.text[100]} page={Pages.Partners} > - + - + @@ -158,6 +165,6 @@ export default async function PartnerPage() { - + ); } diff --git a/packages/twenty-website-new/src/app/partners/_constants/signoff.ts b/packages/twenty-website-new/src/app/partners/signoff.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/partners/_constants/signoff.ts rename to packages/twenty-website-new/src/app/partners/signoff.data.ts diff --git a/packages/twenty-website-new/src/app/partners/_constants/testimonials.ts b/packages/twenty-website-new/src/app/partners/testimonials.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/partners/_constants/testimonials.ts rename to packages/twenty-website-new/src/app/partners/testimonials.data.ts diff --git a/packages/twenty-website-new/src/app/partners/_constants/three-cards-illustration.ts b/packages/twenty-website-new/src/app/partners/three-cards-illustration.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/partners/_constants/three-cards-illustration.ts rename to packages/twenty-website-new/src/app/partners/three-cards-illustration.data.ts diff --git a/packages/twenty-website-new/src/app/pricing/_constants/index.ts b/packages/twenty-website-new/src/app/pricing/_constants/index.ts deleted file mode 100644 index ddc989ef03..0000000000 --- a/packages/twenty-website-new/src/app/pricing/_constants/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { ENGAGEMENT_BAND_DATA } from './engagement-band'; -export { HERO_DATA } from './hero'; -export { PLAN_TABLE_DATA } from './plan-table'; -export { PLANS_DATA } from './plans'; -export { SALESFORCE_DATA } from './salesforce'; diff --git a/packages/twenty-website-new/src/app/pricing/_constants/engagement-band.ts b/packages/twenty-website-new/src/app/pricing/engagement-band.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/pricing/_constants/engagement-band.ts rename to packages/twenty-website-new/src/app/pricing/engagement-band.data.ts diff --git a/packages/twenty-website-new/src/app/pricing/_constants/hero.ts b/packages/twenty-website-new/src/app/pricing/hero.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/pricing/_constants/hero.ts rename to packages/twenty-website-new/src/app/pricing/hero.data.ts diff --git a/packages/twenty-website-new/src/app/pricing/page.tsx b/packages/twenty-website-new/src/app/pricing/page.tsx index 8151e9e742..868337e1a0 100644 --- a/packages/twenty-website-new/src/app/pricing/page.tsx +++ b/packages/twenty-website-new/src/app/pricing/page.tsx @@ -1,17 +1,13 @@ -import { FAQ_DATA, MENU_DATA } from '@/app/_constants'; -import { TalkToUsButton } from '@/app/components/ContactCalModal'; -import { - BecomePartnerButton, - PartnerApplicationModalRoot, -} from '@/app/partners/components/PartnerApplication'; -import { - ENGAGEMENT_BAND_DATA, - HERO_DATA, - PLAN_TABLE_DATA, - SALESFORCE_DATA, -} from '@/app/pricing/_constants'; +import { FAQ_DATA } from '@/sections/Faq/data'; +import { MENU_DATA } from '@/sections/Menu/data'; +import { TalkToUsButton } from '@/lib/contact-cal'; +import { BecomePartnerButton } from '@/app/partners/components/PartnerApplication'; +import { ENGAGEMENT_BAND_DATA } from '@/app/pricing/engagement-band.data'; +import { HERO_DATA } from '@/app/pricing/hero.data'; +import { PLAN_TABLE_DATA } from '@/app/pricing/plan-table.data'; +import { SALESFORCE_DATA } from '@/app/pricing/salesforce.data'; import { Eyebrow, LinkButton } from '@/design-system/components'; -import { Pages } from '@/enums/pages'; +import { Pages } from '@/lib/pages'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { EngagementBand } from '@/sections/EngagementBand/components'; @@ -23,6 +19,7 @@ import { PricingStateProvider } from '@/sections/Plans/context/PricingStateConte import { PlanTable } from '@/sections/PlanTable/components'; import { Salesforce } from '@/sections/Salesforce/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import { styled } from '@linaria/react'; import type { Metadata } from 'next'; @@ -38,18 +35,19 @@ const PricingBannerContainer = styled.div` width: 100%; `; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/pricing', title: 'Pricing | Twenty', description: 'Plans that scale with your team. Compare tiers of the #1 open source CRM.', -}; +}); export default async function PricingPage() { const stats = await fetchCommunityStats(); const menuSocialLinks = mergeSocialLinkLabels(MENU_DATA.socialLinks, stats); return ( - + <> - + @@ -139,6 +137,6 @@ export default async function PricingPage() { - + ); } diff --git a/packages/twenty-website-new/src/app/pricing/_constants/plan-table.ts b/packages/twenty-website-new/src/app/pricing/plan-table.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/pricing/_constants/plan-table.ts rename to packages/twenty-website-new/src/app/pricing/plan-table.data.ts diff --git a/packages/twenty-website-new/src/app/pricing/_constants/salesforce.ts b/packages/twenty-website-new/src/app/pricing/salesforce.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/pricing/_constants/salesforce.ts rename to packages/twenty-website-new/src/app/pricing/salesforce.data.ts diff --git a/packages/twenty-website-new/src/app/privacy-policy/page.tsx b/packages/twenty-website-new/src/app/privacy-policy/page.tsx index 8d7e532b3f..5d79252f7e 100644 --- a/packages/twenty-website-new/src/app/privacy-policy/page.tsx +++ b/packages/twenty-website-new/src/app/privacy-policy/page.tsx @@ -1,28 +1,30 @@ import type { Metadata } from 'next'; -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; -import { LegalDocumentPage } from '@/sections/LegalDocument/legal-document-page'; +import { LegalDocument } from '@/sections/LegalDocument/components'; +import { buildPageMetadata } from '@/lib/seo'; import { PrivacyPolicyDocument } from './_components'; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/privacy-policy', title: 'Privacy Policy | Twenty', description: 'How Twenty collects, uses, safeguards, and discloses information when you use Twenty.com and related services.', -}; +}); export default async function PrivacyPolicyPage() { const stats = await fetchCommunityStats(); const menuSocialLinks = mergeSocialLinkLabels(MENU_DATA.socialLinks, stats); return ( - - + ); } diff --git a/packages/twenty-website-new/src/app/product/_constants/demo.ts b/packages/twenty-website-new/src/app/product/_constants/demo.ts deleted file mode 100644 index 3bc70f9652..0000000000 --- a/packages/twenty-website-new/src/app/product/_constants/demo.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { DemoDataType } from '@/sections/Demo/types'; - -export const DEMO_DATA: DemoDataType = { - eyebrow: { - heading: { - text: 'Try it live', - fontFamily: 'sans', - }, - }, - heading: [ - { - text: 'A demo worth a', - fontFamily: 'serif', - }, - { - text: ' thousand words', - fontFamily: 'sans', - }, - ], - image: { - src: '/images/product/demo/kanban.webp', - alt: '', - }, -}; diff --git a/packages/twenty-website-new/src/app/product/_constants/index.ts b/packages/twenty-website-new/src/app/product/_constants/index.ts deleted file mode 100644 index 48894f9486..0000000000 --- a/packages/twenty-website-new/src/app/product/_constants/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { DEMO_DATA } from './demo'; -export { FEATURE_DATA } from './feature'; -export { HERO_DATA } from './hero'; -export { SIGNOFF_DATA } from './signoff'; -export { STEPPER_DATA } from './stepper'; -export { TABS_DATA } from './tabs'; -export { THREE_CARDS_ILLUSTRATION_DATA } from './three-cards'; diff --git a/packages/twenty-website-new/src/app/product/_constants/tabs.ts b/packages/twenty-website-new/src/app/product/_constants/tabs.ts deleted file mode 100644 index 88564edd87..0000000000 --- a/packages/twenty-website-new/src/app/product/_constants/tabs.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { TabsDataType } from '@/sections/Tabs/types'; - -export const TABS_DATA: TabsDataType = { - eyebrow: { - heading: { - text: 'AI & Automation', - fontFamily: 'sans', - }, - }, - heading: [ - { - text: 'AI that actually\nhelps you ', - fontFamily: 'serif', - }, - { - text: 'work faster', - fontFamily: 'sans', - }, - ], - body: { - text: 'The AI understands your CRM and takes action.', - }, - tabs: [ - { - body: { - text: 'Show me all deals closing this month', - }, - icon: 'search', - image: { - src: '/images/product/tabs/deals.webp', - alt: 'Deals view', - }, - }, - { - body: { - text: 'Create follow-up tasks for my top 10 accounts', - }, - icon: 'eye', - image: { - src: '/images/product/tabs/tasks.webp', - alt: 'Tasks view', - }, - }, - { - body: { - text: "Summarize this customer's history", - }, - icon: 'edit', - image: { - src: '/images/product/tabs/history.webp', - alt: 'History view', - }, - }, - { - body: { - text: 'Create a workflow that send an email sequence', - }, - icon: 'check', - image: { - src: '/images/product/tabs/workflow.webp', - alt: 'Workflow view', - }, - }, - ], -}; diff --git a/packages/twenty-website-new/src/app/product/_constants/feature.ts b/packages/twenty-website-new/src/app/product/feature.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/product/_constants/feature.ts rename to packages/twenty-website-new/src/app/product/feature.data.ts diff --git a/packages/twenty-website-new/src/app/product/_constants/hero.ts b/packages/twenty-website-new/src/app/product/hero.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/product/_constants/hero.ts rename to packages/twenty-website-new/src/app/product/hero.data.ts diff --git a/packages/twenty-website-new/src/app/product/page.tsx b/packages/twenty-website-new/src/app/product/page.tsx index 1f3aca658e..5b1a6f4349 100644 --- a/packages/twenty-website-new/src/app/product/page.tsx +++ b/packages/twenty-website-new/src/app/product/page.tsx @@ -1,14 +1,14 @@ -import { FAQ_DATA, MENU_DATA, TRUSTED_BY_DATA } from '@/app/_constants'; -import { TalkToUsButton } from '@/app/components/ContactCalModal'; -import { - FEATURE_DATA, - HERO_DATA, - SIGNOFF_DATA, - STEPPER_DATA, - THREE_CARDS_ILLUSTRATION_DATA, -} from '@/app/product/_constants'; +import { FAQ_DATA } from '@/sections/Faq/data'; +import { MENU_DATA } from '@/sections/Menu/data'; +import { TRUSTED_BY_DATA } from '@/sections/TrustedBy/data'; +import { TalkToUsButton } from '@/lib/contact-cal'; +import { FEATURE_DATA } from '@/app/product/feature.data'; +import { HERO_DATA } from '@/app/product/hero.data'; +import { SIGNOFF_DATA } from '@/app/product/signoff.data'; +import { STEPPER_DATA } from '@/app/product/stepper.data'; +import { THREE_CARDS_ILLUSTRATION_DATA } from '@/app/product/three-cards.data'; import { Body, Eyebrow, Heading, LinkButton } from '@/design-system/components'; -import { Pages } from '@/enums/pages'; +import { Pages } from '@/lib/pages'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { Faq } from '@/sections/Faq/components'; @@ -20,13 +20,15 @@ import { Signoff } from '@/sections/Signoff/components'; import { ThreeCards } from '@/sections/ThreeCards/components'; import { TrustedBy } from '@/sections/TrustedBy/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/product', title: 'Product | Twenty', description: 'Track relationships, manage pipelines, and take action quickly with a CRM that feels intuitive from day one.', -}; +}); export default async function ProductPage() { const stats = await fetchCommunityStats(); @@ -34,6 +36,16 @@ export default async function ProductPage() { return ( <> + {/* + * Above-the-fold hero scene. Preload kicks off the GLB fetch in + * parallel with the JS chunk download, so the model is already in + * the browser cache by the time Three.js asks for it. + */} + - - + + - + diff --git a/packages/twenty-website-new/src/app/product/_constants/signoff.ts b/packages/twenty-website-new/src/app/product/signoff.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/product/_constants/signoff.ts rename to packages/twenty-website-new/src/app/product/signoff.data.ts diff --git a/packages/twenty-website-new/src/app/product/_constants/stepper.ts b/packages/twenty-website-new/src/app/product/stepper.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/product/_constants/stepper.ts rename to packages/twenty-website-new/src/app/product/stepper.data.ts diff --git a/packages/twenty-website-new/src/app/product/_constants/three-cards.ts b/packages/twenty-website-new/src/app/product/three-cards.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/product/_constants/three-cards.ts rename to packages/twenty-website-new/src/app/product/three-cards.data.ts diff --git a/packages/twenty-website-new/src/app/releases/_constants/hero.ts b/packages/twenty-website-new/src/app/releases/hero.data.ts similarity index 79% rename from packages/twenty-website-new/src/app/releases/_constants/hero.ts rename to packages/twenty-website-new/src/app/releases/hero.data.ts index bc97891a82..3072c83113 100644 --- a/packages/twenty-website-new/src/app/releases/_constants/hero.ts +++ b/packages/twenty-website-new/src/app/releases/hero.data.ts @@ -1,5 +1,5 @@ -import type { BodyType } from '@/design-system/components/Body/types/Body'; -import type { HeadingType } from '@/design-system/components/Heading/types/Heading'; +import type { BodyType } from '@/design-system/components/Body'; +import type { HeadingType } from '@/design-system/components/Heading'; export const RELEASE_NOTES_HERO_HEADING: HeadingType[] = [ { fontFamily: 'serif', text: 'Latest ' }, diff --git a/packages/twenty-website-new/src/app/releases/page.tsx b/packages/twenty-website-new/src/app/releases/page.tsx index 01a480333f..4030c8d124 100644 --- a/packages/twenty-website-new/src/app/releases/page.tsx +++ b/packages/twenty-website-new/src/app/releases/page.tsx @@ -1,28 +1,30 @@ -import { MENU_DATA } from '@/app/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; import { RELEASE_NOTES_HERO_BODY, RELEASE_NOTES_HERO_HEADING, -} from '@/app/releases/_constants/hero'; +} from '@/app/releases/hero.data'; import { LinkButton } from '@/design-system/components'; -import { Pages } from '@/enums/pages'; +import { Pages } from '@/lib/pages'; import { GitHubIcon } from '@/icons'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; -import { fetchLatestGithubReleaseTag } from '@/lib/github/fetch-latest-release-tag'; +import { fetchLatestGithubReleaseTag } from '@/lib/releases/fetch-latest-release-tag'; import { getVisibleReleaseNotes } from '@/lib/releases/get-visible-releases'; import { loadLocalReleaseNotes } from '@/lib/releases/load-local-release-notes'; import { Hero } from '@/sections/Hero/components'; import { Menu } from '@/sections/Menu/components'; import { ReleaseNotes } from '@/sections/ReleaseNotes/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import type { Metadata } from 'next'; import { Fragment } from 'react'; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/releases', title: 'Releases | Twenty', description: 'Discover the newest features and improvements in Twenty, the #1 open source CRM.', -}; +}); export default async function ReleasesPage() { const allNotes = loadLocalReleaseNotes(); @@ -38,6 +40,15 @@ export default async function ReleasesPage() { return ( <> + {/* + * Above-the-fold milestone scene texture. Preload kicks off the + * fetch in parallel with the JS chunk download. + */} + - + ); } diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/editorial-two.ts b/packages/twenty-website-new/src/app/why-twenty/_constants/editorial-two.ts deleted file mode 100644 index 1b66aa30ec..0000000000 --- a/packages/twenty-website-new/src/app/why-twenty/_constants/editorial-two.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { EditorialDataType } from '@/sections/Editorial/types/EditorialData'; - -export const EDITORIAL_TWO: EditorialDataType = { - body: { - text: 'Every company on Salesforce runs the same objects, the same lifecycle stages, the same routing logic. They bought "best practices." But best practices are just the average, packaged and sold back as wisdom. When your CRM is identical to your competitor\'s, your AI agents will make the same decisions as theirs. Same scoring, same timing, same emails. You automated yourself into mediocrity.', - }, -}; diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/index.ts b/packages/twenty-website-new/src/app/why-twenty/_constants/index.ts deleted file mode 100644 index d2ad5a8504..0000000000 --- a/packages/twenty-website-new/src/app/why-twenty/_constants/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export { EDITORIAL_FOUR } from './editorial-four'; -export { EDITORIAL_ONE } from './editorial-one'; -export { EDITORIAL_THREE } from './editorial-three'; -export { EDITORIAL_TWO } from './editorial-two'; -export { HERO_DATA } from './hero'; -export { MARQUEE_DATA } from './marquee'; -export { QUOTE_DATA } from './quote'; -export { SIGNOFF_DATA } from './signoff'; -export { STATEMENT_ONE } from './statement-one'; -export { STATEMENT_TWO } from './statement-two'; -export { STEPPER_DATA } from './stepper'; diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/quote.ts b/packages/twenty-website-new/src/app/why-twenty/_constants/quote.ts deleted file mode 100644 index aeb6c38c14..0000000000 --- a/packages/twenty-website-new/src/app/why-twenty/_constants/quote.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { QuoteDataType } from '@/sections/Quote/types/QuoteData'; - -export const QUOTE_DATA: QuoteDataType = { - illustration: 'quoteQuotes', - heading: [ - { text: '“Best teams will run\n', fontFamily: 'serif' }, - { text: ' systems nobody else has.”', fontFamily: 'sans' }, - ], -}; diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/statement-one.ts b/packages/twenty-website-new/src/app/why-twenty/_constants/statement-one.ts deleted file mode 100644 index 565f9a4963..0000000000 --- a/packages/twenty-website-new/src/app/why-twenty/_constants/statement-one.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { StatementDataType } from '@/sections/Statement/types'; - -export const STATEMENT_ONE: StatementDataType = { - heading: { - text: 'The best go-to-market teams will run systems nobody else has.', - fontFamily: 'serif', - }, -}; diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/statement-two.ts b/packages/twenty-website-new/src/app/why-twenty/_constants/statement-two.ts deleted file mode 100644 index 98c1b7fd1c..0000000000 --- a/packages/twenty-website-new/src/app/why-twenty/_constants/statement-two.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { StatementDataType } from '@/sections/Statement/types'; - -export const STATEMENT_TWO: StatementDataType = { - heading: { - text: "Not because they're bigger. Because they built exactly what they needed.", - fontFamily: 'serif', - }, -}; diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/stepper.ts b/packages/twenty-website-new/src/app/why-twenty/_constants/stepper.ts deleted file mode 100644 index 263ab378dd..0000000000 --- a/packages/twenty-website-new/src/app/why-twenty/_constants/stepper.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { WhyTwentyStepperDataType } from '@/sections/WhyTwentyStepper/types'; - -export const STEPPER_DATA: WhyTwentyStepperDataType = { - heading: { text: 'Our vision', fontFamily: 'serif' }, - body: [ - { - text: 'We believe every serious company will need a malleable system of record for customers. Not a collection of disconnected tools.', - }, - { - text: 'Not a frozen monolith that only specialists can change. A living system that can evolve as fast as strategy evolves, while remaining trustworthy enough for humans, agents, and regulators to rely on.', - }, - { - text: 'Because in the AI age, the winners will not be the companies with the most dashboards. They will be the companies whose systems turn information into decisions, and decisions into action, faster than everyone else.', - }, - ], - illustration: 'whyTwentyStepperLogo', -}; diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/editorial-four.ts b/packages/twenty-website-new/src/app/why-twenty/editorial-four.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/why-twenty/_constants/editorial-four.ts rename to packages/twenty-website-new/src/app/why-twenty/editorial-four.data.ts diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/editorial-one.ts b/packages/twenty-website-new/src/app/why-twenty/editorial-one.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/why-twenty/_constants/editorial-one.ts rename to packages/twenty-website-new/src/app/why-twenty/editorial-one.data.ts diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/editorial-three.ts b/packages/twenty-website-new/src/app/why-twenty/editorial-three.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/why-twenty/_constants/editorial-three.ts rename to packages/twenty-website-new/src/app/why-twenty/editorial-three.data.ts diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/hero.ts b/packages/twenty-website-new/src/app/why-twenty/hero.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/why-twenty/_constants/hero.ts rename to packages/twenty-website-new/src/app/why-twenty/hero.data.ts diff --git a/packages/twenty-website-new/src/app/why-twenty/_constants/marquee.ts b/packages/twenty-website-new/src/app/why-twenty/marquee.data.ts similarity index 100% rename from packages/twenty-website-new/src/app/why-twenty/_constants/marquee.ts rename to packages/twenty-website-new/src/app/why-twenty/marquee.data.ts diff --git a/packages/twenty-website-new/src/app/why-twenty/page.tsx b/packages/twenty-website-new/src/app/why-twenty/page.tsx index e95221850d..3c3d6703d2 100644 --- a/packages/twenty-website-new/src/app/why-twenty/page.tsx +++ b/packages/twenty-website-new/src/app/why-twenty/page.tsx @@ -1,14 +1,12 @@ -import { MENU_DATA } from '@/app/_constants'; -import { - EDITORIAL_FOUR, - EDITORIAL_ONE, - EDITORIAL_THREE, - HERO_DATA, - MARQUEE_DATA, - SIGNOFF_DATA, -} from '@/app/why-twenty/_constants'; +import { MENU_DATA } from '@/sections/Menu/data'; +import { EDITORIAL_FOUR } from '@/app/why-twenty/editorial-four.data'; +import { EDITORIAL_ONE } from '@/app/why-twenty/editorial-one.data'; +import { EDITORIAL_THREE } from '@/app/why-twenty/editorial-three.data'; +import { HERO_DATA } from '@/app/why-twenty/hero.data'; +import { MARQUEE_DATA } from '@/app/why-twenty/marquee.data'; +import { SIGNOFF_DATA } from '@/app/why-twenty/signoff.data'; import { LinkButton } from '@/design-system/components'; -import { Pages } from '@/enums/pages'; +import { Pages } from '@/lib/pages'; import { fetchCommunityStats } from '@/lib/community/fetch-community-stats'; import { mergeSocialLinkLabels } from '@/lib/community/merge-social-link-labels'; import { Editorial } from '@/sections/Editorial/components'; @@ -17,6 +15,7 @@ import { Marquee } from '@/sections/Marquee/components'; import { Menu } from '@/sections/Menu/components'; import { Signoff } from '@/sections/Signoff/components'; import { theme } from '@/theme'; +import { buildPageMetadata } from '@/lib/seo'; import { css } from '@linaria/core'; import type { Metadata } from 'next'; @@ -59,11 +58,12 @@ const sectionCrosshairRight = { lineColor: crosshairLineColor, }; -export const metadata: Metadata = { +export const metadata: Metadata = buildPageMetadata({ + path: '/why-twenty', title: 'Why Twenty | Twenty', description: 'Most packaged software makes companies more similar. Learn why the future of CRM is built, not bought.', -}; +}); export default async function WhyTwentyPage() { const stats = await fetchCommunityStats(); @@ -71,6 +71,16 @@ export default async function WhyTwentyPage() { return ( <> + {/* + * Above-the-fold hero scene. Preload kicks off the GLB fetch in + * parallel with the JS chunk download, so the model is already in + * the browser cache by the time Three.js asks for it. + */} + - + {/* - + */} @@ -126,7 +142,6 @@ export default async function WhyTwentyPage() { backgroundColor={theme.colors.secondary.background[100]} color={theme.colors.secondary.text[100]} crosshair={sectionCrosshairLeft} - mutedColor={theme.colors.secondary.text[60]} > - + {/* @@ -147,7 +166,6 @@ export default async function WhyTwentyPage() { backgroundColor={theme.colors.secondary.background[100]} color={theme.colors.secondary.text[100]} crosshair={sectionCrosshairRight} - mutedColor={theme.colors.secondary.text[60]} > - + + > + + { - const syncTabVisibility = () => { - setIsTabActive(getIsTabActive()); - }; - - syncTabVisibility(); - document.addEventListener('visibilitychange', syncTabVisibility); - - return () => { - document.removeEventListener('visibilitychange', syncTabVisibility); - }; - }, []); - - if (!isTabActive) { - return null; - } - - return <>{children}; -} diff --git a/packages/twenty-website-new/src/components/WebGlWhenInViewport.tsx b/packages/twenty-website-new/src/components/WebGlWhenInViewport.tsx deleted file mode 100644 index b9a56ab744..0000000000 --- a/packages/twenty-website-new/src/components/WebGlWhenInViewport.tsx +++ /dev/null @@ -1,110 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { useLayoutEffect, useRef, useState, type ReactNode } from 'react'; - -const VERTICAL_MARGIN_PX = 100; -const ROOT_MARGIN = `${VERTICAL_MARGIN_PX}px 0px ${VERTICAL_MARGIN_PX}px 0px`; -const OUT_OF_VIEW_DISPOSE_MS = 300; - -const ObserverRoot = styled.div<{ detachFromLayout: boolean }>` - height: 100%; - min-height: 1px; - pointer-events: none; - width: 100%; - - & > * { - pointer-events: auto; - } - - ${({ detachFromLayout }) => - detachFromLayout - ? ` - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; - ` - : ` - position: relative; - `} -`; - -function isLikelyInViewport(element: HTMLElement) { - const rect = element.getBoundingClientRect(); - const viewportHeight = typeof window !== 'undefined' ? window.innerHeight : 0; - const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : 0; - - return ( - rect.bottom > -VERTICAL_MARGIN_PX && - rect.top < viewportHeight + VERTICAL_MARGIN_PX && - rect.right > 0 && - rect.left < viewportWidth - ); -} - -type WebGlWhenInViewportProps = { - children: ReactNode; - detachFromLayout?: boolean; -}; - -export function WebGlWhenInViewport({ - children, - detachFromLayout = false, -}: WebGlWhenInViewportProps) { - const rootReference = useRef(null); - const [shouldRender, setShouldRender] = useState(false); - const disposeTimerReference = useRef | null>( - null, - ); - - useLayoutEffect(() => { - const element = rootReference.current; - - if (!element) { - return; - } - - const clearDisposeTimer = () => { - if (disposeTimerReference.current !== null) { - clearTimeout(disposeTimerReference.current); - disposeTimerReference.current = null; - } - }; - - if (isLikelyInViewport(element)) { - setShouldRender(true); - } - - const observer = new IntersectionObserver( - ([entry]) => { - if (entry.isIntersecting) { - clearDisposeTimer(); - setShouldRender(true); - return; - } - - clearDisposeTimer(); - disposeTimerReference.current = setTimeout(() => { - setShouldRender(false); - disposeTimerReference.current = null; - }, OUT_OF_VIEW_DISPOSE_MS); - }, - { root: null, rootMargin: ROOT_MARGIN, threshold: 0 }, - ); - - observer.observe(element); - - return () => { - clearDisposeTimer(); - observer.disconnect(); - }; - }, []); - - return ( - - {shouldRender ? children : null} - - ); -} diff --git a/packages/twenty-website-new/src/content/releases/0.10.0.mdx b/packages/twenty-website-new/src/content/releases/0.10.0.mdx index 07b84ad4d3..8605f9d14a 100644 --- a/packages/twenty-website-new/src/content/releases/0.10.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.10.0.mdx @@ -37,4 +37,4 @@ The `JSON Field` allows for the storage of complex, structured data within a sin **Example Use Case**: Store configurable data for a product, such as feature flags or customization options, directly within a CRM record. -![](/images/releases/0.10/0.10-json.webp) \ No newline at end of file +![](/images/releases/0.10/0.10-json.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.11.0.mdx b/packages/twenty-website-new/src/content/releases/0.11.0.mdx index 2b28ce5816..a2ab68447a 100644 --- a/packages/twenty-website-new/src/content/releases/0.11.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.11.0.mdx @@ -13,4 +13,4 @@ With Google Calendar integration, you can track all your team's events with a co We have improved app performance, shaving off over 500ms on each page. -![](/images/releases/0.11/0.11-speed.webp) \ No newline at end of file +![](/images/releases/0.11/0.11-speed.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.12.0.mdx b/packages/twenty-website-new/src/content/releases/0.12.0.mdx index 97bdfc901e..91f0b4ff3d 100644 --- a/packages/twenty-website-new/src/content/releases/0.12.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.12.0.mdx @@ -5,7 +5,7 @@ Date: 2024-05-24 # Notifications -Introduced a new design for notifications featuring lighter colors. +Introduced a new design for notifications featuring lighter colors. ![](/images/releases/0.12/0.12-notifications.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.2.3.mdx b/packages/twenty-website-new/src/content/releases/0.2.3.mdx index e620520a2e..5d3d5fad6e 100644 --- a/packages/twenty-website-new/src/content/releases/0.2.3.mdx +++ b/packages/twenty-website-new/src/content/releases/0.2.3.mdx @@ -13,4 +13,4 @@ Developers can now use webhooks to synchronize customer data updates in real-tim You can now navigate from one object to another directly from the record detail page. -![Webhooks](/images/releases/0.2.3_relations.webp) \ No newline at end of file +![Webhooks](/images/releases/0.2.3_relations.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.21.0.mdx b/packages/twenty-website-new/src/content/releases/0.21.0.mdx index ed94a1e2a5..e296ff7756 100644 --- a/packages/twenty-website-new/src/content/releases/0.21.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.21.0.mdx @@ -9,7 +9,6 @@ You can now edit one-to-many relations directly from the "many side". This means ![](/images/releases/0.21/0.21-many-many.webp) - # Advanced Email and Calendar Settings We've introduced advanced settings for email and calendar management: diff --git a/packages/twenty-website-new/src/content/releases/0.23.0.mdx b/packages/twenty-website-new/src/content/releases/0.23.0.mdx index af1a0e7683..1c405f163e 100644 --- a/packages/twenty-website-new/src/content/releases/0.23.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.23.0.mdx @@ -19,4 +19,4 @@ Quickly identify who created a given record and what was the origin of the creat Filter the content a webhook is returning so it only pings your URL when a specific action occurs, such as on creating a company. -![](/images/releases/0.23/0.23-filter-webhooks.webp) \ No newline at end of file +![](/images/releases/0.23/0.23-filter-webhooks.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.24.0.mdx b/packages/twenty-website-new/src/content/releases/0.24.0.mdx index 12e45c5d76..580a5ef899 100644 --- a/packages/twenty-website-new/src/content/releases/0.24.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.24.0.mdx @@ -7,4 +7,4 @@ Date: 2024-08-29 Soft delete feature added: Deleted records are now hidden from view but recoverable from the "Deleted record" option in any object options menu. No more drama! -![](/images/releases/0.24/0.24-soft-delete.webp) \ No newline at end of file +![](/images/releases/0.24/0.24-soft-delete.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.3.0.mdx b/packages/twenty-website-new/src/content/releases/0.3.0.mdx index 6c51311977..f6ea741305 100644 --- a/packages/twenty-website-new/src/content/releases/0.3.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.3.0.mdx @@ -7,4 +7,4 @@ Date: 2024-02-03 The new Rating field represents a numeric value from zero to five, it can be useful for various use-cases such as scoring leads. -![rating](/images/releases/0.3.0_rating.webp) \ No newline at end of file +![rating](/images/releases/0.3.0_rating.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.3.1.mdx b/packages/twenty-website-new/src/content/releases/0.3.1.mdx index afd382e831..b10525eb2c 100644 --- a/packages/twenty-website-new/src/content/releases/0.3.1.mdx +++ b/packages/twenty-website-new/src/content/releases/0.3.1.mdx @@ -8,4 +8,3 @@ Date: 2024-02-16 Contributors now have their very own [hall of fame](https://twenty.com/contributors). ![rating](/images/releases/0.3.1_contributors.webp) - diff --git a/packages/twenty-website-new/src/content/releases/0.3.2.mdx b/packages/twenty-website-new/src/content/releases/0.3.2.mdx index b07baae396..09e4949e09 100644 --- a/packages/twenty-website-new/src/content/releases/0.3.2.mdx +++ b/packages/twenty-website-new/src/content/releases/0.3.2.mdx @@ -7,4 +7,4 @@ Date: 2024-02-29 The record page now features a clearer layout with increased space for content -![](/images/releases/0.3.2_new_layout.webp) \ No newline at end of file +![](/images/releases/0.3.2_new_layout.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.3.3.mdx b/packages/twenty-website-new/src/content/releases/0.3.3.mdx index 6d53333c21..652818f5f0 100644 --- a/packages/twenty-website-new/src/content/releases/0.3.3.mdx +++ b/packages/twenty-website-new/src/content/releases/0.3.3.mdx @@ -9,7 +9,6 @@ Connect your Gmail account to automatically associate emails with relevant 'Peop ![](/images/releases/0.3.3_emails.webp) - # Kanbans on any object Create a Kanban view on any object and streamline processes like recruitment or onboarding. @@ -20,4 +19,4 @@ Create a Kanban view on any object and streamline processes like recruitment or We are pleased to reopen the cloud subscription to everyone. No more waiting! -![](/images/releases/0.3.3_sign_up.webp) \ No newline at end of file +![](/images/releases/0.3.3_sign_up.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.30.0.mdx b/packages/twenty-website-new/src/content/releases/0.30.0.mdx index c66d3d61d2..d7be173a6e 100644 --- a/packages/twenty-website-new/src/content/releases/0.30.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.30.0.mdx @@ -17,6 +17,6 @@ Enhance your contact management by adding many email addresses for a single cont # New Array field type -Developers can now take advantage of the new array field type to store non-predefined values. +Developers can now take advantage of the new array field type to store non-predefined values. -![](/images/releases/0.30/0.30-array-field.webp) \ No newline at end of file +![](/images/releases/0.30/0.30-array-field.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.31.0.mdx b/packages/twenty-website-new/src/content/releases/0.31.0.mdx index 74a272bb28..0126803d5d 100644 --- a/packages/twenty-website-new/src/content/releases/0.31.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.31.0.mdx @@ -13,4 +13,4 @@ To maintain the simplicity of Twenty, we are introducing "Advanced Settings." Th We have significantly enhanced our search performance, making it feel instantaneous when searching for records such as people, companies, or tasks. -![](/images/releases/0.31/0.31-search.webp) \ No newline at end of file +![](/images/releases/0.31/0.31-search.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.32.0.mdx b/packages/twenty-website-new/src/content/releases/0.32.0.mdx index 97f63226fa..4b3d1d77c1 100644 --- a/packages/twenty-website-new/src/content/releases/0.32.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.32.0.mdx @@ -13,4 +13,4 @@ We started a major ⌘K revamp that now understands the context to display appro You can now filter multiple actions simultaneously with a single webhook. For example, you can create a webhook that triggers only when a person or company is updated or created. -![](/images/releases/0.32/0.32-webhooks.webp) \ No newline at end of file +![](/images/releases/0.32/0.32-webhooks.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.33.0.mdx b/packages/twenty-website-new/src/content/releases/0.33.0.mdx index 2fd90a349a..4bfb445106 100644 --- a/packages/twenty-website-new/src/content/releases/0.33.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.33.0.mdx @@ -9,8 +9,8 @@ You can now filter an object (People, Companies, Opportunities, etc.) using any ![](/images/releases/0.33/0.33-multiselect-filter.webp) -# Percentage in number fields +# Percentage in number fields You can now create number fields that display a percentage instead of a regular number. -![](/images/releases/0.33/0.33-percentage-number.webp) \ No newline at end of file +![](/images/releases/0.33/0.33-percentage-number.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.34.0.mdx b/packages/twenty-website-new/src/content/releases/0.34.0.mdx index 9ee4b65e89..e6c3a899bf 100644 --- a/packages/twenty-website-new/src/content/releases/0.34.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.34.0.mdx @@ -7,4 +7,4 @@ Date: 2024-12-12 Each workspace now gets a dedicated sub-domain for a more secure experience. And soon you will be able to set your own domain. -![](/images/releases/0.34/0.34-subdomains.webp) \ No newline at end of file +![](/images/releases/0.34/0.34-subdomains.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.35.0.mdx b/packages/twenty-website-new/src/content/releases/0.35.0.mdx index 34df93c6d5..69de9a81d2 100644 --- a/packages/twenty-website-new/src/content/releases/0.35.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.35.0.mdx @@ -7,4 +7,4 @@ Date: 2024-12-20 You can now add your views to favorites for quick access and organize your favorites into folders for better management. -![](/images/releases/0.35/0.35-Favorites.webp) \ No newline at end of file +![](/images/releases/0.35/0.35-Favorites.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.4.0.mdx b/packages/twenty-website-new/src/content/releases/0.4.0.mdx index 09fbcadf56..dee5a41a66 100644 --- a/packages/twenty-website-new/src/content/releases/0.4.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.4.0.mdx @@ -9,7 +9,6 @@ On record pages, you can now expand relation cards to view their fields without ![](/images/releases/0.4/0.4-expand-relation-card.webp) - # Address Field Type The new `Address Field` Type enables entry of a full address in one field, while structurally storing each address part - such as street name and number - in separate subfields. @@ -20,4 +19,4 @@ The new `Address Field` Type enables entry of a full address in one field, while You can now switch between workspaces by clicking your workspace name at the top left of the screen. This feature will only appear if you have been invited to join another workspace. -![](/images/releases/0.4/0.4-multi-workspace.webp) \ No newline at end of file +![](/images/releases/0.4/0.4-multi-workspace.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.40.0.mdx b/packages/twenty-website-new/src/content/releases/0.40.0.mdx index fbc0820a20..1cd708394e 100644 --- a/packages/twenty-website-new/src/content/releases/0.40.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.40.0.mdx @@ -9,9 +9,8 @@ Added "Group By" in tables to better organize entries, like grouping companies b ![](/images/releases/0.40/0.40-group-by.webp) - # Aggregates Introduced a feature to calculate and display data summaries, such as sums and latest entries, for quick insights and streamlined data analysis. -![](/images/releases/0.40/0.40-aggregates.webp) \ No newline at end of file +![](/images/releases/0.40/0.40-aggregates.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.41.0.mdx b/packages/twenty-website-new/src/content/releases/0.41.0.mdx index 65007dcd66..ff19015b45 100644 --- a/packages/twenty-website-new/src/content/releases/0.41.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.41.0.mdx @@ -7,4 +7,4 @@ Date: 2025-02-04 Enable beta features using the new Labs tab in settings. The first beta release introduces our workflow engine. Enjoy! -![](/images/releases/0.41/0.41-labs.webp) \ No newline at end of file +![](/images/releases/0.41/0.41-labs.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.42.0.mdx b/packages/twenty-website-new/src/content/releases/0.42.0.mdx index 35202c377c..442b8d8097 100644 --- a/packages/twenty-website-new/src/content/releases/0.42.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.42.0.mdx @@ -5,14 +5,14 @@ Date: 2025-02-18 # Microsoft o365 Integration -You can now link your Microsoft account to easily manage your messages and events right within your workspace. +You can now link your Microsoft account to easily manage your messages and events right within your workspace. ![](/images/releases/0.42/0.42-microsoft.webp) # Translation in 30+ Languages Expanded support for 30+ languages, so users can navigate and use the software in their preferred language. - + ![](/images/releases/0.42/0.42-translation.webp) # Attachment Visualizer diff --git a/packages/twenty-website-new/src/content/releases/0.43.0.mdx b/packages/twenty-website-new/src/content/releases/0.43.0.mdx index f49cba854b..9529731977 100644 --- a/packages/twenty-website-new/src/content/releases/0.43.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.43.0.mdx @@ -13,4 +13,4 @@ The search feature now includes ranking scores. This helps you find the most rel Internal team emails won't sync, protecting privacy by preventing access to internal discussions. -![](/images/releases/0.43.0/email-privacy.webp) \ No newline at end of file +![](/images/releases/0.43.0/email-privacy.webp) diff --git a/packages/twenty-website-new/src/content/releases/0.44.0.mdx b/packages/twenty-website-new/src/content/releases/0.44.0.mdx index b062adaaa4..d65f91ab6e 100644 --- a/packages/twenty-website-new/src/content/releases/0.44.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.44.0.mdx @@ -20,5 +20,3 @@ Date: 2025-03-17 **Environment Variables**: Admin panel now has read-only access to environment variables. Better transparency, easier config management. ![](/images/releases/0.44/0.44-admin-panel.webp) - - diff --git a/packages/twenty-website-new/src/content/releases/0.50.0.mdx b/packages/twenty-website-new/src/content/releases/0.50.0.mdx index f614959adc..ef0c2a88ee 100644 --- a/packages/twenty-website-new/src/content/releases/0.50.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.50.0.mdx @@ -14,5 +14,3 @@ Ability to set User and Admin permissions for each user. Admins can edit workspa Advanced filter enables precise database content filtering through nested conditional operators (AND/OR), multiple field filters, and customizable filter groups for complex query construction. ![](/images/releases/0.50/0.50-advanced-filters.webp) - - diff --git a/packages/twenty-website-new/src/content/releases/0.52.0.mdx b/packages/twenty-website-new/src/content/releases/0.52.0.mdx index 86a222d035..6b61d7794a 100644 --- a/packages/twenty-website-new/src/content/releases/0.52.0.mdx +++ b/packages/twenty-website-new/src/content/releases/0.52.0.mdx @@ -5,7 +5,7 @@ Date: 2025-04-25 # Add records to filtered views -Creating records on filtered views now applies the view filter to the newly created record. This feature is compatible with Text, Date\_Time, Date, Number, Select, Rating, Multi\_Select, Array, and Boolean fields. +Creating records on filtered views now applies the view filter to the newly created record. This feature is compatible with Text, Date_Time, Date, Number, Select, Rating, Multi_Select, Array, and Boolean fields. ![](/images/releases/0.52.0/0.52-filtered-views-records.webp) diff --git a/packages/twenty-website-new/src/content/releases/1.00.0.mdx b/packages/twenty-website-new/src/content/releases/1.00.0.mdx index f365e905c9..3b0d2927d3 100644 --- a/packages/twenty-website-new/src/content/releases/1.00.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.00.0.mdx @@ -5,7 +5,7 @@ Date: 2025-06-25 # Permissions V2 -Create and manage custom roles. Grant or revoke access for each object to Read/Create/Edit/Delete records. Give granular access to settings like the ability to manage users, data models or APIs. +Create and manage custom roles. Grant or revoke access for each object to Read/Create/Edit/Delete records. Give granular access to settings like the ability to manage users, data models or APIs. ![](/images/releases/1.00/1.00-permissions.webp) @@ -32,6 +32,3 @@ Sub-field filtering is now supported for currency, address, name, email, link, p We’ve cut key load and interaction times by over 3,000ms, which means pages now load 2x faster! ![](/images/releases/1.00/1.00-performance-improvement.webp) - - - diff --git a/packages/twenty-website-new/src/content/releases/1.10.0.mdx b/packages/twenty-website-new/src/content/releases/1.10.0.mdx index 64b4d93f31..07871f001c 100644 --- a/packages/twenty-website-new/src/content/releases/1.10.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.10.0.mdx @@ -14,4 +14,3 @@ You can now visualize your records in a monthly calendar view. This new view typ Create custom charts and visualizations using your workspace data with the new Dashboards feature. Available in Labs, this beta feature lets you build powerful analytics and insights to monitor your business metrics. ![](/images/releases/1.10/1.10.0-dashboards.webp) - diff --git a/packages/twenty-website-new/src/content/releases/1.11.0.mdx b/packages/twenty-website-new/src/content/releases/1.11.0.mdx index 980b051593..ab19ba172f 100644 --- a/packages/twenty-website-new/src/content/releases/1.11.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.11.0.mdx @@ -14,5 +14,3 @@ You can now create personal views that stay out of the shared Workspace section Create flexible relationships where a single field can connect to multiple different object types. For example, an Opportunity can now relate to either a Person or a Company, giving you more versatile data modeling capabilities. ![](/images/releases/1.11/1.11.0-morph-relations.webp) - - diff --git a/packages/twenty-website-new/src/content/releases/1.12.0.mdx b/packages/twenty-website-new/src/content/releases/1.12.0.mdx index 76da3c8cfe..46cca6a868 100644 --- a/packages/twenty-website-new/src/content/releases/1.12.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.12.0.mdx @@ -14,4 +14,3 @@ The side panel now opens next to your content rather than above it, giving you a Choose exactly which Gmail labels or Outlook folders to sync on your workspace. This gives you more control over your email data and better privacy by importing only the folders you need. ![](/images/releases/1.12/1.12.0-folder-sync.webp) - diff --git a/packages/twenty-website-new/src/content/releases/1.2.0.mdx b/packages/twenty-website-new/src/content/releases/1.2.0.mdx index 4682bfab88..7b62eb346e 100644 --- a/packages/twenty-website-new/src/content/releases/1.2.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.2.0.mdx @@ -12,4 +12,4 @@ When importing records, you can now import relations between records. For exampl We’ve added an "any field search" filter that lets you search across all fields at once. For example, it can allow you to locate a customer by their phone number, whether it's stored in the "Mobile," "Office," or "Direct Line" field. -![](/images/releases/1.2/1.2-any-fields.webp) \ No newline at end of file +![](/images/releases/1.2/1.2-any-fields.webp) diff --git a/packages/twenty-website-new/src/content/releases/1.5.0.mdx b/packages/twenty-website-new/src/content/releases/1.5.0.mdx index 94d2fda38e..b2aa7d97bf 100644 --- a/packages/twenty-website-new/src/content/releases/1.5.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.5.0.mdx @@ -7,4 +7,4 @@ Date: 2025-09-11 Workflow branches allow workflows to split paths, enabling conditional logic and multiple outcome flows in automation. -![](/images/releases/1.5/1.5-workflow-branches.webp) \ No newline at end of file +![](/images/releases/1.5/1.5-workflow-branches.webp) diff --git a/packages/twenty-website-new/src/content/releases/1.6.0.mdx b/packages/twenty-website-new/src/content/releases/1.6.0.mdx index 3f93da9397..c6a9cf8961 100644 --- a/packages/twenty-website-new/src/content/releases/1.6.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.6.0.mdx @@ -3,7 +3,7 @@ release: 1.6.0 Date: 2025-09-19 --- -# Workflow improvements +# Workflow improvements You now have the ability to duplicate nodes, change node types, and use a streamlined filter design in your workflows. diff --git a/packages/twenty-website-new/src/content/releases/1.7.0.mdx b/packages/twenty-website-new/src/content/releases/1.7.0.mdx index 8e7f0a1a50..e3409cf08d 100644 --- a/packages/twenty-website-new/src/content/releases/1.7.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.7.0.mdx @@ -5,12 +5,12 @@ Date: 2025-10-02 # User impersonation -You can now impersonate a workspace user as an admin. This allows you to see the workspace as that user would, which is useful for troubleshooting issues or understanding user experience. +You can now impersonate a workspace user as an admin. This allows you to see the workspace as that user would, which is useful for troubleshooting issues or understanding user experience. ![](/images/releases/1.7/1.7-impersonating.webp) # Record is created or updated trigger -You can now trigger workflows when a record is created or updated. +You can now trigger workflows when a record is created or updated. ![](/images/releases/1.7/1.7-upsert.webp) diff --git a/packages/twenty-website-new/src/content/releases/1.8.0.mdx b/packages/twenty-website-new/src/content/releases/1.8.0.mdx index c4a759615c..99615bd05c 100644 --- a/packages/twenty-website-new/src/content/releases/1.8.0.mdx +++ b/packages/twenty-website-new/src/content/releases/1.8.0.mdx @@ -20,4 +20,3 @@ Manual trigger workflows now support bulk selection, allowing you to select mult The search node now lets you customize the result limit above 1, enabling you to retrieve multiple records in a single search operation. This enhancement works seamlessly with the iterator node for processing search results. ![](/images/releases/1.8/1.8-search-limit.webp) - diff --git a/packages/twenty-website-new/src/lib/shared-asset-paths.ts b/packages/twenty-website-new/src/content/site/asset-paths.ts similarity index 98% rename from packages/twenty-website-new/src/lib/shared-asset-paths.ts rename to packages/twenty-website-new/src/content/site/asset-paths.ts index bf38c5c231..ab03b3eb0f 100644 --- a/packages/twenty-website-new/src/lib/shared-asset-paths.ts +++ b/packages/twenty-website-new/src/content/site/asset-paths.ts @@ -72,8 +72,7 @@ export const SHARED_PEOPLE_AVATAR_URLS = { roelofBotha: '/images/shared/people/avatars/roelof-botha.jpg', ryanRoslansky: '/images/shared/people/avatars/ryan-roslansky.jpg', steveAnavi: '/images/shared/people/avatars/steve-anavi.jpg', - stewartButterfield: - '/images/shared/people/avatars/stewart-butterfield.jpg', + stewartButterfield: '/images/shared/people/avatars/stewart-butterfield.jpg', sundarPichai: '/images/shared/people/avatars/sundar-pichai.jpg', thomasDohmke: '/images/shared/people/avatars/thomas-dohmke.jpg', timCook: '/images/shared/people/avatars/tim-cook.jpg', diff --git a/packages/twenty-website-new/src/design-system/components/Body/Body.tsx b/packages/twenty-website-new/src/design-system/components/Body.tsx similarity index 98% rename from packages/twenty-website-new/src/design-system/components/Body/Body.tsx rename to packages/twenty-website-new/src/design-system/components/Body.tsx index e3e3660b1e..8c9d1e2d00 100644 --- a/packages/twenty-website-new/src/design-system/components/Body/Body.tsx +++ b/packages/twenty-website-new/src/design-system/components/Body.tsx @@ -1,6 +1,9 @@ import { theme } from '@/theme'; import { css } from '@linaria/core'; -import { BodyType } from './types/Body'; + +export type BodyType = { + text: string; +}; const bodyClassName = css` color: inherit; diff --git a/packages/twenty-website-new/src/design-system/components/Body/types/Body.ts b/packages/twenty-website-new/src/design-system/components/Body/types/Body.ts deleted file mode 100644 index 183f9de787..0000000000 --- a/packages/twenty-website-new/src/design-system/components/Body/types/Body.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type BodyType = { - text: string; -} diff --git a/packages/twenty-website-new/src/design-system/components/Button/BaseButton.tsx b/packages/twenty-website-new/src/design-system/components/Button/BaseButton.tsx index 40796acf6d..63788e21c6 100644 --- a/packages/twenty-website-new/src/design-system/components/Button/BaseButton.tsx +++ b/packages/twenty-website-new/src/design-system/components/Button/BaseButton.tsx @@ -98,7 +98,8 @@ export type BaseButtonProps = { variant: 'contained' | 'outlined'; }; -const secondaryContainedHoverFillColor = theme.colors.secondary.background.hover; +const secondaryContainedHoverFillColor = + theme.colors.secondary.background.hover; const primaryOutlinedHoverFillColor = theme.colors.primary.background[100]; const primaryOutlinedHoverFillOpacity = 0.05; const secondaryOutlinedHoverFillColor = theme.colors.primary.text[100]; @@ -167,8 +168,15 @@ export function BaseButton({ height={height} strokeColor={strokeColor} /> - - + + {leadingIcon ? {leadingIcon} : null} diff --git a/packages/twenty-website-new/src/design-system/components/Button/ButtonShape.tsx b/packages/twenty-website-new/src/design-system/components/Button/ButtonShape.tsx index e9054dce3a..dca911791c 100644 --- a/packages/twenty-website-new/src/design-system/components/Button/ButtonShape.tsx +++ b/packages/twenty-website-new/src/design-system/components/Button/ButtonShape.tsx @@ -7,11 +7,8 @@ type ButtonShapeProps = { strokeColor: string; }; -// The bottom-right corner taper is a fixed design element; only the straight -// vertical segment between top-right arc and the taper changes with height. const TAPER_HEIGHT = 15.477; const TAPER_TOP_OFFSET = 4; -const STRAIGHT_V_AT_FORTY = 20.523; function getLeftFillPath(height: number) { return `M4 0 A4 4 0 0 0 0 4 V${height - 4} A4 4 0 0 0 4 ${height} Z`; @@ -22,23 +19,15 @@ function getLeftOutlinePath(height: number) { } function getRightFillPath(height: number) { - const straight = Math.max( - height - TAPER_TOP_OFFSET - TAPER_HEIGHT, - 0, - ); + const straight = Math.max(height - TAPER_TOP_OFFSET - TAPER_HEIGHT, 0); return `M0 0 h11 a4 4 0 0 1 4 4 v${straight} a6 6 0 0 1 -1.544 4.019 l-8.548 9.477 A6 6 0 0 1 0.453 ${height} H0 Z`; } function getRightOutlinePath(height: number) { - const straight = Math.max( - height - TAPER_TOP_OFFSET - TAPER_HEIGHT, - 0, - ); + const straight = Math.max(height - TAPER_TOP_OFFSET - TAPER_HEIGHT, 0); return `M0 0.5 h11 a3.5 3.5 0 0 1 3.5 3.5 v${straight} a5.5 5.5 0 0 1 -1.416 3.684 l-8.547 9.477 a5.5 5.5 0 0 1 -4.084 1.816 H0`; } -void STRAIGHT_V_AT_FORTY; - const ShapeContainer = styled.div` display: flex; inset: 0; diff --git a/packages/twenty-website-new/src/design-system/components/Container/Container.tsx b/packages/twenty-website-new/src/design-system/components/Container.tsx similarity index 100% rename from packages/twenty-website-new/src/design-system/components/Container/Container.tsx rename to packages/twenty-website-new/src/design-system/components/Container.tsx diff --git a/packages/twenty-website-new/src/design-system/components/Eyebrow/Eyebrow.tsx b/packages/twenty-website-new/src/design-system/components/Eyebrow.tsx similarity index 91% rename from packages/twenty-website-new/src/design-system/components/Eyebrow/Eyebrow.tsx rename to packages/twenty-website-new/src/design-system/components/Eyebrow.tsx index 15d00df007..64e8dfbf90 100644 --- a/packages/twenty-website-new/src/design-system/components/Eyebrow/Eyebrow.tsx +++ b/packages/twenty-website-new/src/design-system/components/Eyebrow.tsx @@ -1,6 +1,7 @@ -import { Heading } from '@/design-system/components/Heading/Heading'; -import { HeadingType } from '@/design-system/components/Heading/types/Heading'; +import { Heading, type HeadingType } from '@/design-system/components/Heading'; import { RectangleFillIcon } from '@/icons'; + +export type EyebrowType = { heading: HeadingType }; import { theme } from '@/theme'; import { css } from '@linaria/core'; import { styled } from '@linaria/react'; diff --git a/packages/twenty-website-new/src/design-system/components/Eyebrow/types/Eyebrow.ts b/packages/twenty-website-new/src/design-system/components/Eyebrow/types/Eyebrow.ts deleted file mode 100644 index b13030e201..0000000000 --- a/packages/twenty-website-new/src/design-system/components/Eyebrow/types/Eyebrow.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { HeadingType } from '@/design-system/components/Heading/types/Heading'; - -export type EyebrowType = { heading: HeadingType }; diff --git a/packages/twenty-website-new/src/design-system/components/Form/Form.tsx b/packages/twenty-website-new/src/design-system/components/Form/Form.tsx new file mode 100644 index 0000000000..a4c2e841c7 --- /dev/null +++ b/packages/twenty-website-new/src/design-system/components/Form/Form.tsx @@ -0,0 +1,155 @@ +'use client'; + +import { theme } from '@/theme'; +import { Field } from '@base-ui/react/field'; +import { styled } from '@linaria/react'; +import { type ComponentPropsWithoutRef, type ReactNode } from 'react'; + +const FieldRootBase = styled(Field.Root)` + display: flex; + flex-direction: column; + gap: ${theme.spacing(1.5)}; + width: 100%; +`; + +const FieldLabel = styled(Field.Label)` + color: ${theme.colors.secondary.text[100]}; + font-family: ${theme.font.family.sans}; + font-size: ${theme.font.size(3)}; + font-weight: ${theme.font.weight.medium}; + line-height: ${theme.lineHeight(4.5)}; +`; + +const FieldHint = styled(Field.Description)` + color: ${theme.colors.secondary.text[60]}; + font-family: ${theme.font.family.sans}; + font-size: ${theme.font.size(3)}; + font-weight: ${theme.font.weight.regular}; + line-height: ${theme.lineHeight(4)}; + margin: 0; +`; + +const FieldError = styled(Field.Error)` + color: #ff9a9a; + font-family: ${theme.font.family.sans}; + font-size: ${theme.font.size(3)}; + font-weight: ${theme.font.weight.regular}; + line-height: ${theme.lineHeight(3.5)}; + margin: 0; +`; + +export type FormFieldProps = ComponentPropsWithoutRef & { + label?: ReactNode; + hint?: ReactNode; + error?: ReactNode; +}; + +function FormField({ + children, + error, + hint, + invalid, + label, + ...rootProps +}: FormFieldProps) { + const hasHint = hint !== undefined && hint !== null && hint !== ''; + const hasError = error !== undefined && error !== null && error !== ''; + const computedInvalid = + invalid !== undefined ? invalid : hasError || undefined; + + return ( + // oxlint-disable-next-line eslint-plugin-react(jsx-props-no-spreading) + + {label !== undefined && label !== null ? ( + {label} + ) : null} + {children} + {hasHint ? {hint} : null} + {hasError ? {error} : null} + + ); +} + +export const FormInput = styled(Field.Control)` + background: transparent; + border: 1px solid ${theme.colors.secondary.border[20]}; + border-radius: ${theme.radius(2)}; + box-sizing: border-box; + color: ${theme.colors.secondary.text[100]}; + font-family: ${theme.font.family.sans}; + font-size: ${theme.font.size(4)}; + font-weight: ${theme.font.weight.regular}; + height: clamp(40px, 5.5vh, 56px); + line-height: ${theme.lineHeight(5.5)}; + padding-bottom: ${theme.spacing(1)}; + padding-left: ${theme.spacing(3)}; + padding-right: ${theme.spacing(3)}; + padding-top: ${theme.spacing(1)}; + width: 100%; + + &::placeholder { + color: ${theme.colors.secondary.text[40]}; + } + + &:focus-visible { + border-color: ${theme.colors.highlight[100]}; + outline: none; + } + + &[aria-invalid='true'] { + border-color: #ff9a9a; + } +`; + +const StyledTextareaElement = styled.textarea` + background: transparent; + border: 1px solid ${theme.colors.secondary.border[20]}; + border-radius: ${theme.radius(2)}; + box-sizing: border-box; + color: ${theme.colors.secondary.text[100]}; + font-family: ${theme.font.family.sans}; + font-size: ${theme.font.size(4)}; + font-weight: ${theme.font.weight.regular}; + line-height: ${theme.lineHeight(5.5)}; + min-height: clamp(80px, 18vh, 185px); + padding-bottom: ${theme.spacing(1)}; + padding-left: ${theme.spacing(3)}; + padding-right: ${theme.spacing(3)}; + padding-top: ${theme.spacing(1)}; + resize: vertical; + width: 100%; + + &::placeholder { + color: ${theme.colors.secondary.text[40]}; + } + + &:focus-visible { + border-color: ${theme.colors.highlight[100]}; + outline: none; + } + + &[aria-invalid='true'] { + border-color: #ff9a9a; + } +`; + +const TEXTAREA_RENDER = ; + +export type FormTextareaProps = Omit< + ComponentPropsWithoutRef, + 'render' +>; + +function FormTextarea(props: FormTextareaProps) { + // oxlint-disable-next-line eslint-plugin-react(jsx-props-no-spreading) + return ; +} + +export const Form = { + Field: FormField, + Input: FormInput, + Textarea: FormTextarea, + Label: FieldLabel, + Hint: FieldHint, + Error: FieldError, +}; diff --git a/packages/twenty-website-new/src/design-system/components/Form/index.ts b/packages/twenty-website-new/src/design-system/components/Form/index.ts new file mode 100644 index 0000000000..da1ac1a027 --- /dev/null +++ b/packages/twenty-website-new/src/design-system/components/Form/index.ts @@ -0,0 +1,2 @@ +export { Form } from './Form'; +export type { FormFieldProps, FormTextareaProps } from './Form'; diff --git a/packages/twenty-website-new/src/design-system/components/GuideCrosshair.tsx b/packages/twenty-website-new/src/design-system/components/GuideCrosshair.tsx new file mode 100644 index 0000000000..94d854d5df --- /dev/null +++ b/packages/twenty-website-new/src/design-system/components/GuideCrosshair.tsx @@ -0,0 +1,185 @@ +import { theme } from '@/theme'; +import { styled } from '@linaria/react'; + +type RootProps = { $zIndex: number }; + +const Root = styled.div` + display: none; + + @media (min-width: ${theme.breakpoints.md}px) { + display: block; + inset: 0; + pointer-events: none; + position: absolute; + z-index: ${({ $zIndex }) => $zIndex}; + } +`; + +type HorizontalLineProps = { + $color: string; + $stroke: string; + $crossY: string; + $crossX: string; + $gap: string; +}; + +const HorizontalLineLeft = styled.div` + @media (min-width: ${theme.breakpoints.md}px) { + background-color: ${({ $color }) => $color}; + height: ${({ $stroke }) => $stroke}; + left: 0; + position: absolute; + top: ${({ $crossY }) => $crossY}; + width: calc(${({ $crossX }) => $crossX} - ${({ $gap }) => $gap}); + } +`; + +const HorizontalLineRight = styled.div` + @media (min-width: ${theme.breakpoints.md}px) { + background-color: ${({ $color }) => $color}; + height: ${({ $stroke }) => $stroke}; + position: absolute; + right: 0; + top: ${({ $crossY }) => $crossY}; + width: calc(100% - ${({ $crossX }) => $crossX} - ${({ $gap }) => $gap}); + } +`; + +type VerticalLineProps = { + $color: string; + $stroke: string; + $crossX: string; + $crossY: string; + $gap: string; +}; + +const VerticalLineTop = styled.div` + @media (min-width: ${theme.breakpoints.md}px) { + background-color: ${({ $color }) => $color}; + height: calc(${({ $crossY }) => $crossY} - ${({ $gap }) => $gap}); + left: ${({ $crossX }) => $crossX}; + position: absolute; + top: 0; + width: ${({ $stroke }) => $stroke}; + } +`; + +const VerticalLineBottom = styled.div` + @media (min-width: ${theme.breakpoints.md}px) { + background-color: ${({ $color }) => $color}; + bottom: 0; + height: calc(100% - ${({ $crossY }) => $crossY} - ${({ $gap }) => $gap}); + left: ${({ $crossX }) => $crossX}; + position: absolute; + width: ${({ $stroke }) => $stroke}; + } +`; + +type PlusProps = { + $crossX: string; + $crossY: string; + $offset: string; + $size: string; + $color: string; + $stroke: string; +}; + +const Plus = styled.div` + @media (min-width: ${theme.breakpoints.md}px) { + height: ${({ $size }) => $size}; + left: calc(${({ $crossX }) => $crossX} - ${({ $offset }) => $offset}); + position: absolute; + top: calc(${({ $crossY }) => $crossY} - ${({ $offset }) => $offset}); + width: ${({ $size }) => $size}; + + &::before, + &::after { + background-color: ${({ $color }) => $color}; + content: ''; + position: absolute; + } + + &::before { + height: ${({ $size }) => $size}; + left: 50%; + top: 0; + transform: translateX(-50%); + width: ${({ $stroke }) => $stroke}; + } + + &::after { + height: ${({ $stroke }) => $stroke}; + left: 0; + top: 50%; + transform: translateY(-50%); + width: ${({ $size }) => $size}; + } + } +`; + +type GuideCrosshairProps = { + className?: string; + crossX: string; + crossY: string; + gap?: string; + lineColor?: string; + plusColor?: string; + plusOffset?: string; + plusSize?: string; + strokeWidth?: string; + zIndex?: number; +}; + +export function GuideCrosshair({ + className, + crossX, + crossY, + gap = '18px', + lineColor = theme.colors.primary.border[10], + plusColor = theme.colors.highlight[100], + plusOffset = '6px', + plusSize = '12px', + strokeWidth = '1px', + zIndex = 1, +}: GuideCrosshairProps) { + return ( + + + + + + + + ); +} diff --git a/packages/twenty-website-new/src/design-system/components/GuideCrosshair/GuideCrosshair.tsx b/packages/twenty-website-new/src/design-system/components/GuideCrosshair/GuideCrosshair.tsx deleted file mode 100644 index cd8f9d52bc..0000000000 --- a/packages/twenty-website-new/src/design-system/components/GuideCrosshair/GuideCrosshair.tsx +++ /dev/null @@ -1,140 +0,0 @@ -import { theme } from '@/theme'; -import { styled } from '@linaria/react'; -import type { CSSProperties } from 'react'; - -const Root = styled.div` - display: none; - - @media (min-width: ${theme.breakpoints.md}px) { - display: block; - inset: 0; - pointer-events: none; - position: absolute; - z-index: var(--guide-z-index, 1); - } -`; - -const HorizontalLineLeft = styled.div` - @media (min-width: ${theme.breakpoints.md}px) { - background-color: var(--guide-line-color); - height: var(--guide-stroke); - left: 0; - position: absolute; - top: var(--guide-cross-y); - width: calc(var(--guide-cross-x) - var(--guide-gap)); - } -`; - -const HorizontalLineRight = styled.div` - @media (min-width: ${theme.breakpoints.md}px) { - background-color: var(--guide-line-color); - height: var(--guide-stroke); - position: absolute; - right: 0; - top: var(--guide-cross-y); - width: calc(100% - var(--guide-cross-x) - var(--guide-gap)); - } -`; - -const VerticalLineTop = styled.div` - @media (min-width: ${theme.breakpoints.md}px) { - background-color: var(--guide-line-color); - height: calc(var(--guide-cross-y) - var(--guide-gap)); - left: var(--guide-cross-x); - position: absolute; - top: 0; - width: var(--guide-stroke); - } -`; - -const VerticalLineBottom = styled.div` - @media (min-width: ${theme.breakpoints.md}px) { - background-color: var(--guide-line-color); - bottom: 0; - height: calc(100% - var(--guide-cross-y) - var(--guide-gap)); - left: var(--guide-cross-x); - position: absolute; - width: var(--guide-stroke); - } -`; - -const Plus = styled.div` - @media (min-width: ${theme.breakpoints.md}px) { - height: var(--guide-plus-size); - left: calc(var(--guide-cross-x) - var(--guide-plus-offset)); - position: absolute; - top: calc(var(--guide-cross-y) - var(--guide-plus-offset)); - width: var(--guide-plus-size); - - &::before, - &::after { - background-color: var(--guide-plus-color); - content: ''; - position: absolute; - } - - &::before { - height: var(--guide-plus-size); - left: 50%; - top: 0; - transform: translateX(-50%); - width: var(--guide-stroke); - } - - &::after { - height: var(--guide-stroke); - left: 0; - top: 50%; - transform: translateY(-50%); - width: var(--guide-plus-size); - } - } -`; - -type GuideCrosshairProps = { - className?: string; - crossX: string; - crossY: string; - gap?: string; - lineColor?: string; - plusColor?: string; - plusOffset?: string; - plusSize?: string; - strokeWidth?: string; - zIndex?: number; -}; - -export function GuideCrosshair({ - className, - crossX, - crossY, - gap = '18px', - lineColor = theme.colors.primary.border[10], - plusColor = theme.colors.highlight[100], - plusOffset = '6px', - plusSize = '12px', - strokeWidth = '1px', - zIndex = 1, -}: GuideCrosshairProps) { - const style = { - '--guide-cross-x': crossX, - '--guide-cross-y': crossY, - '--guide-gap': gap, - '--guide-line-color': lineColor, - '--guide-plus-color': plusColor, - '--guide-plus-offset': plusOffset, - '--guide-plus-size': plusSize, - '--guide-stroke': strokeWidth, - '--guide-z-index': String(zIndex), - } as CSSProperties; - - return ( - - - - - - - - ); -} diff --git a/packages/twenty-website-new/src/design-system/components/Heading/Heading.tsx b/packages/twenty-website-new/src/design-system/components/Heading.tsx similarity index 95% rename from packages/twenty-website-new/src/design-system/components/Heading/Heading.tsx rename to packages/twenty-website-new/src/design-system/components/Heading.tsx index d84771ac12..70b6bfe970 100644 --- a/packages/twenty-website-new/src/design-system/components/Heading/Heading.tsx +++ b/packages/twenty-website-new/src/design-system/components/Heading.tsx @@ -2,7 +2,14 @@ import { theme } from '@/theme'; import { css } from '@linaria/core'; import { styled } from '@linaria/react'; import { Fragment } from 'react'; -import { HeadingType } from './types/Heading'; + +export type HeadingType = { + fontFamily: 'sans' | 'serif' | 'mono'; + text: string; + fontWeight?: 'light' | 'regular' | 'medium'; + newLine?: boolean; + lineBreakBefore?: boolean; +}; const headingRootClassName = css` margin: 0; diff --git a/packages/twenty-website-new/src/design-system/components/Heading/types/Heading.ts b/packages/twenty-website-new/src/design-system/components/Heading/types/Heading.ts deleted file mode 100644 index 8456ad0135..0000000000 --- a/packages/twenty-website-new/src/design-system/components/Heading/types/Heading.ts +++ /dev/null @@ -1,7 +0,0 @@ -export type HeadingType = { - fontFamily: 'sans' | 'serif' | 'mono'; - text: string; - fontWeight?: 'light' | 'regular' | 'medium'; - newLine?: boolean; - lineBreakBefore?: boolean; -}; diff --git a/packages/twenty-website-new/src/design-system/components/IconButton/IconButton.tsx b/packages/twenty-website-new/src/design-system/components/IconButton.tsx similarity index 72% rename from packages/twenty-website-new/src/design-system/components/IconButton/IconButton.tsx rename to packages/twenty-website-new/src/design-system/components/IconButton.tsx index 87638e6e4c..8d1956ec18 100644 --- a/packages/twenty-website-new/src/design-system/components/IconButton/IconButton.tsx +++ b/packages/twenty-website-new/src/design-system/components/IconButton.tsx @@ -1,12 +1,7 @@ -import type { ComponentType, CSSProperties } from 'react'; import { theme } from '@/theme'; import { styled } from '@linaria/react'; import Link from 'next/link'; - -type IconButtonSurfaceStyle = CSSProperties & { - '--icon-button-border-color': string; - '--icon-button-size': string; -}; +import type { ComponentType } from 'react'; type IconComponent = | ComponentType<{ size: number; fillColor: string }> @@ -52,19 +47,24 @@ const iconButtonSurfaceStyles = ` } `; -const StyledButton = styled.button` +type SurfaceProps = { + $borderColor: string; + $size: number; +}; + +const StyledButton = styled.button` ${iconButtonSurfaceStyles} - border: 1px solid var(--icon-button-border-color); - height: var(--icon-button-size); - width: var(--icon-button-size); + border: 1px solid ${({ $borderColor }) => $borderColor}; + height: ${({ $size }) => `${$size}px`}; + width: ${({ $size }) => `${$size}px`}; `; -const StyledIconLink = styled(Link)` +const StyledIconLink = styled(Link)` ${iconButtonSurfaceStyles} - border: 1px solid var(--icon-button-border-color); + border: 1px solid ${({ $borderColor }) => $borderColor}; color: inherit; - height: var(--icon-button-size); - width: var(--icon-button-size); + height: ${({ $size }) => `${$size}px`}; + width: ${({ $size }) => `${$size}px`}; `; export function IconButton({ @@ -81,24 +81,20 @@ export function IconButton({ }: IconButtonProps) { const icon = (

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 Mb_Z?qZG2+?04&Agp#T5? diff --git a/packages/twenty-website-new/output/playwright/partners-seam-after.png b/packages/twenty-website-new/output/playwright/partners-seam-after.png deleted file mode 100644 index e03549ae2c8724e70f77f4c82696ce3eab9fa25f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39514 zcmeFZWmJ@H7&SV8h@ylFB1qT>h=_AyF*BKrGI~=dwyIcVRw1ZY}j#kTH@bD?4Q3QS(|S9mhHJx zQ*|3Y<(qMeoLoEah1l-Ou#!Y1y=c`mjyg#ty`<3K0{^p=c@N; z4F5*+F1`#F-Z@yzO;}Ol!Ok1MEZ!0CKXKSmW zRr4oe;j1;r3w!qj<(lOlWv(!8tE+X(62fS9F}Idk$n9RK$}G zV1E{cl+E+pU4gH216F&XJJWq*>a;V1$t2&Xm&&{beIFsb5m&S&6cEQ#p$g4)aIu}0 z;l=H_RGDvKR%&Co?OucBEzhYxAuk((`nxi&#Bv#kP-KV*8U8rY((vDJA3PODsOy!w ztxuSixo^%K?ku0-mrHu;Ph)xJ;+(T#x~A7 zOZ|pFKUnt{n82@{K7Zr3ZkgTRuQw~5=D*%Ikv@Z<*6LW}k%E8bA?eLEpyI`yJb99m zMP%rhXzqFFE%#J|a=2rO^2)#1wXL=sO4m!=XW3x02s@#+e-5?l7y$`Lo z7qGl9h!EE}7})C!hd28lzNqtM;I)V}40joIn+$}NWPw%0%+p44j=jEbGgJoars>w6 zH)+JWb4J&uIg)#|YEwRgDvsYV&3dpz6o2H1MXPa&Vsy)u$M^kN99`C{KedKdFQ0CiR+$_rH!B4vwpT|?N zLhj1dLcEqeXWbiy&d}YR`y%4H5?kTN>@j!MvucE{7JppH%&C#1JO1N6ve^rNjPrs0 z8UN|mi_uc4^~O#84eiZTVRc^UMz_tM;v*}O_JD9ft7d-Ho2umcdgHlrjn_V8b=I?t zpuDlMG1xKT{i#s>(D`bNL`y7xVeg)S4-VVVT-@mK)~qca*_)#`FyOi}^gQNac1d}! zG3;bt4YKm&ebeR)>zvo-U1?FHTOGg6A!ij8zj(|Q;rMJvFbXFFd(T_&$MJMXei7l@ z3Q6Oz15Sg6T@qnHkVHN$Z772zWn9U0QU}hUvb>+qou;OCB0Pf63gBki2$08 z9JFHM6HU5sGr_?4pVUgBXGME`R;<=jXK11tEcUQMBTc@~D1` z>@M|h_UPD}QwET!q{|~=J^iRyRw^?~yvF0WM9bzGL+^^$MMgcpQ%5D}y3%d<@a6Bb zxrn0%7M~)^UU^$GiQ-_9gE`1FzVxsl7SS5l)e(rcF2nwG1(s?-kDVp@o@QF#@U!@% zO$DAuUMH3YJH(rGXKR7`>~_u0MmpmzXyTZC?ER?Qq;z(V%;8)@$u| zv1_g_&@p;0tr^BK7zzt1_cjusvQ^Vhy6BAMzAkp`7iBe zTB;b399-%S!MuG45qvPEx~Lvk$?rJRePTgDtx4H{bw>a6Wj-6-TJP!_f2(bk_Xa&9?iOzMu_K6uj+k}E#El-OTrW>D!OH_GP`bF?#PyI_aWt1MwC{zS*s zLx*;}buiKG#>?AX)zcdu-Mf(XfXm{dELXOT_Vxu!X(XGr{Tp_K#iAt=o7RhePfpuO zS2Eqdu{qPyb!oF{XW+X31=b!nUJ+I9_QE1MD1Rv~&tS7#Fx{KkD|)=dML2jM3wQ5+ zeI6yglARydgN2f~wv|(*p_?mkBIK;T@y@iyWhrn98@mTlJEJT`Et;}4^gX}7(V@8f zu$e}4YX%#mWQg6Li{RARsvY@dQH$1^ekmeAj6G}FmzQY%XTW83B>SS-ALZbTJl!mH zP6-2w7);jh3|xlD^9M6cT(#W~A{1!RzZL}_<|c(m9TD+~FerN(c3ZO8c2wUW z8k!LnMeb)?vpOiQ;}} z$-3PmtXq3&aA!fyS7z_Mandsv=SajT%maIqJ%W2PlzyHaWcFO*uC6dDIVp>HNaKoq za!)2TFju`)V0bINqPd70OFu3&y9>onzmT^`a4RWd7Gv0P7W=2vNEz~GvLSd;O4;nQ zz>U~RonnjByW%_;uiTeP*+ncqM@pQcf$QrpYmX@JSy{ZT*=!ZGty+H;C*ZtQqdfX` zM1w)`ZQapI5tA>}5b3e8bjQ{zlEWWK_(L>=L5O)no6O_GOD7zWo$I zuKHLwZ`Wqz&1+1=UUclSrVJim%uam7_WWQ+Jff>ABQ!K*# zJrU=W^t=pL^h0nvG%*_X)T`;A8xS~zYFgU zlAeFnmYEr5UYpPMA|)o7)cHv^f~;~sYR$bhRJ)rKAIa+Tq7&bEo}YzW6(QnsL-S1N zmBjGH#JbGMHwDw=-9KL4x|@i}np9U~N>$mu%^?`bz$@L59%Rgva|^MkBj&Tfqe7(V zw+@{FJDj|erH!&cqbZYV(7q`ON;e-M4P$a$kn6Dm&e8^~7WB7&%r~XkjsJN0`?Hd% z%G<}>vOF4&Vvgzvb;t52@5v7=l)e<&KEJ(iRT-5tf7Da&p@cLN-5qj7i)9{cb*m^W z4_9ii+5C8S8nz@~o4IvXq^z4Zi?{Q@f(cul?UoytByW$TSe%rY+?I11t0PJ^!ey%I zL+f3w#oGj&9C&*0g_}qdXFuSyfY$JoKs{j+a8ksH4Sz@9%ka}T_~a2VllC|ZA@r*K zio{S5lb{7dQvuT#0ux|E6k;I8fR@mi`FQ`9Y8t@u;v8_6})az05lh0S}r zqdo@Voqx8kvX{?Ya05W*ab0sa{NiKtqjZ$_{lB`x-Ge38g>A7|@q^X^p}6b?&*E$H zoMgD%p5mIlZqJ-xn$fOBo##l3fiVvWq;*u)atalB@n7uI{2wnPbXA{I?$6N~cqM+2 z!yRn1_#&*_DW!9{0XcOEL>ltOJ5}jdd+?ffrtIz-dkB5p3hMOKZ-^ZDb}(9n=e^(U zkJVOt(PM@ZNDA|#^&KoSpLG8FokVVUVbwccibSwv2$|dzSX?{GrZGMGM;q_I*D`p^ zPQKiJSWj+qrokWG6Og_%kojwyU*&B@O-SCTB%iHr>4)R5Pf5qceaLEu#t$MBOBWu> zQzz1?)i2}Mvww5qDXJOplVb^NqGVXhjoPTHEz=*w@9}NnN3|{0*`INnOE=6rNg4Ss z9Vu5XE~<}qywO@oSpAGU+|4RRQ`Pw#?@Rtwf4*JZtAEDX2>G3gMMT#=1BlVV=JYoM zbt!d(_wKMOXWK6~kBaC-m+NCdLex?iuu1EZ|81q??OncI8};zr#nr6bnuX5PPa@UW1?*vl{p4@<=b6Nq7Z*2TR*6#O zPdNIA8Tpo=2Z#oU4|sq-nO5z*|62RoGPGtQapn!WZ0Eh&fXG1bz^hyB=-DTMtji3= zdH^G=wsk$twBkQ}5{c_(TM;T&5L7aMs^`2=tFim;V7pt%h!Rou#o~U%ERta%nTUv} z@i%$hf$BPUD1dcNt%9d4g3_m2*9D}Vr?S$Ykz7TkUe_&7OOp76-ow;fo%R11C+J$^ zI2&Z47%>{=E$VqV<7se1I^=$W+3e+u)TA?J>dS?p-6LJDvCkH8Nz8xG(%;vNKhq67 zDwjxYxOxB4xg-(AaK3GdIW>doU0KOO0mJRugTxA#W%O&cEcGaII}NHP$C8gYnWA$^ zxmTUPWxdsjG7wX3IZGRhlr>0|rse&CJ(s(pSFAu|w7iF=$T14nKDE%WJABjZ1vk?D ze`o>j4h4F`>XW+Jbh)Ry&tbmh?K(93$0L>`Bu?^1Hg8`&xZ4|XpMq<4INM8C_y=#D zU8i64liZ3o-OJfK)%>1aVYS`$8fq=FY5LYY39a7%0kJ*#2i|_}*faehS)N+=sqDIN z<7gE1jY~US{z&kaRsq5h?Kt3suL(BAF@&)@KMwi&T2vmlTS2n@eYM}d)aB=%DFf}h zGZ)VcRpV@if1mU07#>`GrA`rp<61BAcqq0lu)Y<*8jL@j-RJpkYN(t}Arh9&hcj~cgy#_v+4c$(7wvXuN z=m-L<$W8{ER^HbY?xk7!k5HEop$oobI_TDnx(C}mvX&Q890a+I>Brb2gG z&)rv}HP!nn)wJwq{IJ4iuTVfDmG?^kQSL}>-_Q8;edxziYbGp#w9? zgV0oReoE^%C>@zfSyYU(ZrfpUC=optF+*XEYG?HLod1Coy{LCpbm0!0>Vh0p>_7p_ zG`X0Ww)Jw4{@QOuwK%P$g7AsuA&*|-q~Bge0$k%Ac{M+rFz8SXC25vPk4Z)$H$?+A zAezBX5k24Woibei7}fAIZ+3&4Dq1<&_dO{d+24BfnA)WyZy|y&aT`t4`}g378O|lS zqt7gDwu$DdWknp=Vc`iWoLS!SR+lHJg{V=GP-JNI#^zhO+t{U6CmeqSmN?>W;gnJI z{xYwH@dxqhezp5lEnNYI9X_?w(8My0Z6AKwL6P@gZObP*N-wP*IlVB|#rjF03d^4o zPopBFl$Af>6KnmRP{>if7R6acp%1OKIVksE?#EHe|JH4Av{tD!!W z9xHzr5BLnXIC*Yq#QV~D-V!RpuM7^`7NK32{cLSWhYMO`$!ok@8e^C7wd*`)6hdBO zHct(<#ztMSUiazF%6v_UFv>;-uCv+>KR8pkU%U8vkuT67_xX{8qm8Sr>tsJ`PFsw( z;8fNePqNwUBD?hJsHXp-CB0jSJ&qmQN@(W`W7tL8XL9IOn*(#^p4>K6PJTvVO%_hvZJoHI zsOi`qq4cFaY^DvkR+hr>u1P04(Hym)qfEgYdadXJmtKW2Y7MhcEwG&~A7}AByP56H z<%d@H%tSqu$a+93f@l}U@SkOTq)681OGFa=z`Qe6hK|>oH(_SRkHtHqjR@S?m{Do^vTNzpPKKFG@8*^MKp0a1nb z(KRVclC&5X_oo7e)rTvU3jtUS!WWcd$-!9`C*JS9ybvS9Ld>9eSnr(yTE~JJ9$01V z@xfwVPG!lwxM{D?6HXGLb#oBA`k~u*VPSJcU%i=W}Ewicd*EZjw<5Ckp^Dt z5=~uVS*-)0`hdu)c3{QA?~qd7SQo${;IfoKbph#$#t*JUTnwM%YNBM`4XT5TC z826GEmNKYMcY1UcSNGCoQuD5RC!LT2+NSfDL%?1M3aiUal< zOlhs9wKWMX)|*G^TUqQmjS>r+oqoR4w7c4gye2O!^-O)-SvbI2~KN_Su&{xqI z2%zQYcDP4(;=Ke5TkA~?{BaHP@Q#9acX|K==R&;7B66h4UH$3PYY0g*(mq`Ulh)D> zvQiNrmX8XB{j2jZ$G`L#lpZGL`&BM47idR{8D`L4~m7-+0dlrHp2qp z$IX|J4;Ma3rb_%`K4fQblrOL-Cx3z-IzHNL16^48x%!2yfn*np44z)TcF;|$Oj{T> z(>Ku4H6HvbOKO&CtHj%YiF8#4Xvb*Slp|dOd#xj6ze|#~v3T!^jT%SH4lr{zAL9I$}DEBvLSl~xVq%R*~0}2u_=E*Q#>d~4t?t|MjWQ(LNJEk)$`cj zm=-bE85KEKe4{(&1?A~whGjNhd)ab@Y`#(9^^cp~5=k?dAYtA&+b31McqjcRE~lNG zh~;;@(?Qn~GM;zM?u&{&N_{(b65}jI3 zap~UU-19y40cjq!i@8N45Gsxi=LahUx&NJpJnpDJ&-TmvGZ zMAJ)&FCNR;rvggI?LY_JCPLq(Z*uewiWnK9x%~0kFTM9Cs;9TqvUf^H-1Juk=#-a> z#JcuEeU5j(4%~PyMAyPhsgIw<<8g`SgMV`<-@oTg%=`3Byaj4(%D=K9_=KqP%IJ(# z;ltB4`&&K1Z{M=32J*c$YM=h}J-AdVAw|2$c&yvtO~EX=s*>wgyN>^P9SIrI58Fx6 z?jh%2i+VY7h`o9DSLNiko7BuJkUpm7dd``1|5tQ;6Pw!XH*jo-rL^ zK3>jVaGuQ7J+c)w86i&Gt>Lvfcb)H6S#5V5W9~cH|v+JPT&d4ps?N!aKo&Bb}z_91XCSvBup+*wPy1oFCXxAH20YyAb(L z5SP`O9{+SfsPhjvd0#$A(`f2D-VEd$QN-Jeum8<1XbIs_#dt7d33nyr7@kvQyD zPmXH6^9YG@HvRGe45T7?hG?9fzRYDPQfjEkN=n^0C_HCo+!n7#CQcAjNm9x4$PG-Z zPA;un!oJ2;)urc4{#oDA>roBOUrkF~)l$1}n`4*&*D6! z!ZWs&5?qsT+u5|GTotFE8z_q~Z{PoO9s2WCt}^VxBRu1rAwJWV?@%q4YgX+cYG#~q zGt-au4elHrKcU7)3#gxvXv^t5mwCNyDAzy`1F$49zIyqNQKW&cQ-KfTBaAlL&~qY9 z77J2xn)Yu+LEPKg`!x;C$ix>fhjoIn!J?jx%bY&LysoeHA1#&~_Xh`|zNtzK@778^ zn9I_!b*WBln+m{A7B3&!enb!7KHe|?`W?O3-w{-zI1!|_0{wmCk6#^OGNX3H?W~Qwzo;_~ z<31=#*gPb85xRbdt4JqaCWu2F^9rBI7mXITVC0x*D`!&$(Q=Ue>7sb0H|}6}CdXm- zn1Yslo9$IsrfvcP)7ZB)-__z~Exg>YJXmTO^J>vN=Jt2=TU|ZcP*#N=*C-G2B~GC> zaV_o9&pWYd#q9zXgVCbl3f(7^idz`33cM&IEo#aXe;WAXSs+6uZ|+5(`OZ|{PTj*~ z+q&G^V}T)Q8Pyv*dA^#@`FXmdXK@0ru$9@i7KeAwcQommy!;jEX;+zfDV4!tD#zvQ z$GPB@4+F&sM(=T-77oa%`t6eM-IOzZzx1uj>#uZ3r)Ns%YT%;!Mpy*OW>^*VZ5q#YaO^1Z$eCexWDW;| z5NQ$p#oR5=<$>ZauJRQg+h`FK4$mz!7bV>gS%ScOa*&P+s6);npaE+D0=FM~!cPZ73t7W&!`JQE2&bDO=6lgwQ=IICn zSEIMTfD!AKwWGE^z0ydL3QuwLtX8QkwWNCubl)ii-g4@gTa!X8EMJ?{b(16etEBK%5+BgL9< z-M^W19m$QAIAY|+)L)ogc@0-MAB(wA-S#a*j?SSH5gREoL&%$j`|6;Tz$P% znKMfFjQ@O*4rkZuct=h!J^0S;?o9?~86NCw&~6Yp+%ORCQQ(MFP)>IDSGk!&B}14pbvgpECi?*F)8_N+|B~F zDd5fj!*C#{Z=+sd{1>JinQQU9mg*eZ5|0pskzpIlap1Fn<0GN-gfD)D{hAlK6Ku=> zWotlOx$AF-SQ#kJa&8;`M)%JmQGb&t`ou3#;75Qhz%pSX!|t0jLQuOd_GE)s z;lByL5_Mf_AK}6XzA;zdf5wTN$N!85h%(}TA%_?vKktS_ub*h=lseoJpCBZzPk|t{o(e^aUcWms%8OXCuAonm% z?+qZH9w&GeFq-+$hu}Izu;fYNRU*g(P53;j$h_+qBr6!StFSDB>XrSm>w-eO5U`F4 zXqAL1JP<#2N`jY3Nu2Z&g8J>7H*ciFZrkr~m{8P$&L9`_kixkD$TG}k7V3RUY)6lw zBn$@s4raj<3TsEwd&nVbQeBd>h>v1m2$4dGRG+RR*p$N9R5Vq9Z5G2f*+Dhdy*)`0 z&0`iMU;(Q6Fk~617hn+?1y9OH%wzaced$sm*Tg@ZCE&X9%ROMds&rn28;YEPL@od~ zm2Y1b6bEoT6w_0ZlQW2Tl@V^O1^MfN*QUWe)DX0CgDO3)+pgJldJ1EW=_ea;?23bsF(p6Aw-^B>Ur$sLLQWG0?k{X0zY1dx|*b}GEYo4RKAV`Yv zJ#|`fHj5PT_;aRqF&h1mVQ-^}3#O|k60yW)(~aS)L*>auB@p4=nJR~oZUF6pBCdmt zDE4~jjps?trr$zt-n*AaP}{0DgGAp;zQ?wS;=N!3NH8I}PQdLsPS)-WSQ^SD?Df|A z_>h{vC|^@R&BAvYcUG00V|L_JwD2 zOAH^uc?3opEkh2yiY@S`T?f<=xK1#;AA{S3KWhz)wpmorPX;Sp zZ6!=72-Xn=;ceB|#H2Kv1!iqI*RtPi!2q$uX82$-STuS_4d4sxdb)IYV}npzyzn4s zA)GoTk)n=Zy$}tT;!U8=kn$RO3GRT#BvZL*-_@%)g3O#zpmhUX(K6y5 z>?C?3+VL&j9nE`=GqQ!(&?iC2>DKBlHa`GB)f6k1y{%p2RsKu_Y-t9t8({HLeLRw9 zC=Q525X9RWFL$ghq-r(|nyn%5a{8N+Ti#P4l4-J0M#Sk~-62H5n}`_)jAPkA%c-r} z1YRR<>ryBffa5yud_A~QB-t3jX}N#(mJ7IoLc|GKhq-<71*y5zNtk5pi5;z{RP2kx3%?! zD<7&Rq)@z&d*>ZIOnTJ{i@gH;p8 zXx17FVsKZ3UM47N4?%!|x^Axdz9kRci2i875b6zH9)8fWZ^=dPi3n<#k8Y^?ii@N$ zo25#Iddq~fr;@IPcuSBf|1x)EFK$fNzRroB_5(l)(KU$9L^~YMr=vc2{B~OzDi3#V z`P&9z_I4(BDw7*XgHF*arHpwEC@#tEmNxChp1U?ItQwcO^Hrekl0)6N@~{GVSW=(@ zFcuK*mq+#!=dM5N&eq|>_(K3@4PfY3Mr(aSu1Wlet94isT&)Tf_3@_Quw=XYA=Y$n zZ9Kp|Vz#FXI+VRW$K{JGy{u4HOkpU@pcv%Fq6A%Y$g7|RQ0-~~K30HMH(k!V3n}n3`p&;7SE}cQei3P6K%!gp zsv{5m2?k!mKF3E|!CIf3Z7r((@Rq>>ZsFOiin5x?Y8o`MZKtq0MF< z_-C1rYrmi|#Ieo|xQ=u-s~vAU+K7pX5zL_O7chjpXe3SD6&3Xy-`VwNpkul`I6AWshx*TfO~c^ zMFDjT?q{Y)c4HgUO$1})i?nMN;P*P*U0vl(-Ivp5)30)a5}p0A30%|A;j-~D#mC2o zwmgK2&C$42Zk~$yQ-I1!$`ajuvlEIea0;MdyS9$W(#ZYb_22`c7Ar{-pq?jTtKJ)g z8v@L_$jC_O$%wQ7U+t*EUjFcvV(JI2;X?qph%ouTHI(Ce&_m}urvu*&{~ z9@p3&&LA+je_UqZv#EmZ2g`$b8FWx6Q|b&4sG#LHp1lEfTEMsJG>^D2 z#f};fvY6Y2O_4iBl20B#_KnY(vvj}6^^k1r(f}KPS0*4-Ylt~)RxgAAm}oQa?SpMI z>yFiL1F*uM6#~OgwdZb0((|*VV}NtDl@ihiiTVP5{ewi*&ICm2hR8VX&rrI~Q{}R( z?OCO#Qth>0KueOeZlQy2yPgWm{_l(cw7wu(QYEhg;R{`aN+We0Dh=~l=oI%zVBKqh z-P4!kqKj=G&~n~4{`2Bw5F@{lL=^IB{=Rvtl%V%f8GRldmrKCEfbJ#)G}Q;-tv95@ zq)4Cu0Fuq6H;Jiz&{u^n0YiU*uaSoYX?YASy1=x> z;zM%&$X>fRRn+TOnFs>%FulS~)aPvjUNbD+i(f|EMT8b0K!A?l^Bia8J^S_-3jkX2 zkm!_H~pOs1Ct zcCoqpZVAKtsy!jYPc0b;2Dpz3g)~Ow6se8E*W$LGZFO%`PYY_*0XGnvRJ^}mHv{D zo866>ho;S!HYY2f>2au}eTGMCCnR>jKLlR~;2-SlrcIk~>!8BBh|qB9S1}8FM2^2E zA=58+_!R*B%jq6p96_xCM>;0M99jdkg$H&}YM~rR&Xq&6xdfzxzNdohqzGbk_`e0b zM(Cj>D#wh_yXd`-)*F@uRr}-JXQCjP%*Oz55C{vc7<&#B%U(-k=+OpHKY1YC5Guag zp%;HHYL5bo*jgDLJiEI(iU&FuG5X;wy~D~7KLriD>K~4y2Gjr6<=?G#1c0zOOj_nv zn;ygOO~K@X-r+v21nO%CgEjzp}m9 z`!mka&TcJ|`z5<-#@fUuE{nc>Md)?R$StKN$Ct(w2Gt(ejh}t_FKHvQ@s&YT@BYh4 zQpic_MezI^!mfZ&j!{l+gmz?w&V(V6O34G(^M0y%FTTUfTf}~%J|f-t0EBj+nS%{7 zO9RD=a5zCjSh7O&rRLpIW`FVAp>^&5zMxgd6C8`O?82>Bc?mqG)q1qUT$ zfJ)7Fv>{Z82*sw%aWJg{I&p`-n1(Rd26=Z1J{QgW25ESjckO({C3E2k#okyYL6Z>kE%*Sfz5fZ<~34}`Y6D@~2 zSQ4P_n*m%S;Gg>(z@I8zfuIC5mH$ypV`8IDrhQSgJk_bfE|^`zwptl|{B zIs%#3aN~X~@+c7;JW)-$>dew`W$8klNLt4mBsk)rn?KapIY_(N{rfCO5L)F0P~e)` zgiHNUy7QQwPrgWpMgc~_8yGWwlDyCoFIXJ$px}QGbVKOgxAQ~@W}0&q24N~-!|6(u zN&oR;pvZi4x=91)CV*+H@PpcvjE?EVcZAoGV!8!T-Z8+nnJRmUu3;kJpLkzE3yWCr*RZULk@KWS#5*pl6x zncv~*Xd+A+6kjyKfq)cSh196qN|sl{sR+TuP%vYf6BC$aL?Ds>m^^3{b+nI28Q|yt zL_Yfe=?Cm8Vf_bw+E#C?L%M+GGLiJ3@P#PTgw0zThiHcSJwyy@ZW8hTi(_{=7Z@46 zpz?x1z_cqBc3TNBXn_ah(~lo`XP8$<x>pj$1K9p;v&jGqj|jmJnzJw5cL45L{v* z)If}WMMuM_{lNQ(?09e=!UnJb-=N%LIG|MMEg*aJ1u!sGz{wAh8K{2#pnI81Mkeza z{&)v+)cE+_cEs2<2#u(FhCfoCheA7~UpN6E;}v8vR0s%-8BcYX3K$eygwywI!E+TJ zrD?48WXIrUp%TMKEb!%C`x~~kxSq2dgMB~2FAip@DG-YY9t|%O1p^?&5XV{}pe@7` z!1*{F88UBr#G(h^2hN2&vK^@cE$^Kdp(qWy88?Rg-53nK%mtnCq8 z8aYECn!!;hULVs-{w>>Zc&&P)k)t&Vjy3c!-&IbL()9G{&QKy>V7LT$2s&2F9~kSq ztPJ(Xn?hp%-*yzQWkl})>4_6l%~6H0*dYF!zAK5e2f_%ZR`agR+ACAZAQ!%Z%fO~M zBm4w8m^^pZM`0^~yP1zcHGwO2d3Vex7u9&~<_O~ehHp;&eMy9vIKf^Ai2?2EU@kdW zJx6!mv!I0;tPX~ddf{i|%DbCDHd*Rc1*Fb#jV3VGU#9=(e#ZGA+#KQ1nfrpbwwsBP z*`0j7TJPZi3^234+-XeZ%1E_N$1AvmNPL#^6ga;K3c*PVhALp$sdH|FeAdyn{W-c5;De{Z)wuZKNS=hq~Si9PlVx!lkBOaDub=bY**Br~Q z64T^*P|SA0!o!+F%?Sv$W>!*8LDcHjVhTOFsK$9wo#V~Q`pkV*i=JnvIB)`NtXZdq zz|NZ|FK(wS>1zt7`IJQ!G<9mdkx*q-eM*kfZu%@_rvH$xMfg7Y0JENY69^~*n@p3B zTVTvoHiKY=hGTKpOig$VVijH363P8j3#SrT3ZpVm15_A_R#@Igfg9pig~kUemYm21 z#$;(LI4!B_-x4oesXR>}evJG{FTlrf%aeijJZ;j!&T7tuo-wR^OBAM+VX}O*G>|k zA(c!FM40{s%TT!Glic68H3ZX@m>(((Rk;_=6k7J)<)_li zi2KEk_i6i=F35$SA9bH)YO+PUsAnqwI#w|;bF{oE?k{Y-oCEG!h@~BSIfp4LIKTvA zh^gi{*w~GMMCJ<#lcKy2GA9(v9QR;j9;8-hhjm>9CG(P%LPD`6fMsE^#3%1n6So(9 z*OC|s9RQA^wj5;^>%%f=@&yG%v`n9^V;A$g>`Rb>PhYqdIS!^P-5M_~5)kT-;r!Qj zr$~H;{#%F{!lCV>Oo|#%4!`U&i@GdnLZY--aVk7mhO^3!Ss$d^lxa%2aV&5szE{T>9&DkaX(7XP;y8S9~a9`UP4Tyk&sc|PVMtC{rgqo`>mlZOLvEaAIo*G zNtU@AY0>jqy9(f^d3g=zp|rs_&j-jBG?YzNTmTx=D8GXu91jKX6L&!tSeSh6K#3@B zD|8huBCkZyHEq5(*1?}|eV zJkeLX>NdpLXct$aSE2Al{DwVVi{`xX=(`!Aanjo^cQ?~G5e<5!>{h;&dg zF`n}8RTlM?W^z^1gJ{_RM3ng4oP!vFG%Zbf=IE#%jyqeo>)_bm_>GGtaUKSKD@R@X z98aO(6j}~bFg*A;R6azQSo#4^wXNj2eS`LB6*oVD@ICza-)+e>2-bNCb*QOOPZ<}i zR_T3ghG_Lv6XhcAMA5Q=H0Lx^2Y3E(7&bOGMmS#!lQj*S(Hg?ZYG_an@?&S~$S4`} zj_kPjzMZ3{9;@;%5{3G{aI^`aWhZZw&fj@YD-~iL`{L|3Bf|U!L-@-M$P!?e(I5BewgMeH&{CANrPBI@1}bT#`xjcSh0S<%bvRs%nGMGznz57869)TSv_ zgI!!6|MGVk@Db=Ej69~FaU5ld%KT2@ezf+xZjSV=_lxnW=A|TgI36X3g>E)a&F_0~ z2&^E9@Jb6qVVVurk3|D$c<$9r8w(#P)$|GPOH7E_`rrE7a`=ex5ibocg?t( z&trJ9#pLNa4GGuo-la+|owEo#77)Cyu=O%=1swuSuP`0}NW>?a^ zXKmrxmvfR!r=&T`o0bj+AnS0`!x1*%uj*&Lp$I}~Sd{w*>A&~k!34d94bxG&SbdI( z(1$nxUcw@v73sneOG4p%7{rqE>VzF&vF3pAq)WcyHXPUrLg(=`e(_>#Z+#NC-*LsH z1T<;>)v2lTtt*#lf5u5T6Vy##Q>(W)OQNHse|A|=CWc;?xm2T@s9B__< zzYyrHqS<1Vr{YtNiu@AdDkz-*?KMLjK*EC(Ip8z%H?-lP_Od7l37{dA9=UAIb!d9# zxHa1|zXU&99*BSHFtYskmf7dX-jgsqY8}-I`~nSc;I*RKG-&z#RQx1%Pd_z-YbW0* z6+~SL0Vg&gL0cUYm)B1)!f8+a&!0O8OoFbby`oZRDt8#K2HCa;Z@0Ju3qVB(s01i- zCr_M+G)yh{BasPN3f;Kh2aZUH0wLc)L7e9ad+jV~9rEe@EC%WV>W*f<+LX7O`e5UJ zJvlAAaZ^Ogh84Z1F%;xGwV9)afc+v4;q4f*lF_*I%~M;Wo~zZpOQLXy5rO#kbs)dB z;YiqF8<2o!6BeD&i1=lS3CA)wJ3y1;$8U-9?JV}T1^n^`l?j{*n&%!E)t@p$YpmQS z0nZPS%9r@jI@{kR+^7^-$gx97h3b3oTBVB?K{Ea1iFOmQW(p zm(mUrH(S-lK`rQo34S&Jnsg4ME$dUd^_{}g_&d- z_+`Q?J3ctKyDav|k>#Pl-FT*LC#2vB zx)$`m(x$@KuR%Jcl#PCnxnHPVY_Su@{=)~7YrJ(0FbNE;tGsa)Q8B{a(1p}L!y74< ztKF~q)PJJ0ZBG!}iE9QSdk3ba2ab}jusPuo@JfuA$Fi}H?BQfML=PjVw$x_T;2|co z2s}Y?1dxD4DWZo`jZA_1#qyRyxbSmCl@MNDux$MXbC9nUMD|n4We9-iaBKdhXc6E!f(L;6r~9f&c31^F<`Dh(H8BwL65K5G z;Z*IMhe5&V8CE&^F$8Mza>Q+tV%7uHXn0%DW5!gE888mOnwj9MvY))MhyiDbh7|{# zn*uRU?dBOuN)eD&7rYxaz<;nNKvDwjyEW!Kf7H7k@DX@61Fj*wx1-T6-{==P-Cayd zDIf({@r+}r0>nIWfCIzNzr5Qd@e9DmE}TSbjp0-H3B{#zAk#F9LKCnDGz&{d^FVk5 zhBuT2xWA=IwG9pnARqKpEdMi;O)8PS1n?v6{B2tZ-vc;CP_3=6wWti@L2rm2C(PXn zAKDDP65WM-zYCH9DC|}SVTVv_eZX!AMS&R<@y(;nj4YM(RuDB?@+`8U7Abx1Jys+0 z(|ex-=lnD!pU5g=H5xj>*wKQ5+OOg#1Bvc5htA1ChJeGxS^$f6o|BKfC)Uy1Uzi{t zK{!`Oj2OdTBT%cfkG$}<6JTh=?*v|c@}rjr?dE*$5B)#0Y0}{qF#9Krg}Lz{x!f8_Qsjhk}zZ^gTPZ0D@ow9H-DBD*}@hAfwvxS7xg&Y-k1NH7gE~(7UMI~#271kfWWZdh;eG=pR?)HlA2cKqX4gsbk%4afoU zKn2%z^lz-TW$`NyHi2WxZ^(al7&zA>n5JyUxCQohq(8Jl_T?(m^b08{FBP`c-9c_E*G4I`)CN@^Tue+x%y; z(GhqUD4_HCtOrz)WZbR_FP+`*z}rVEGvR0wRKrighMN06Krz`B1-Wu4pZjHXZov7X zqL7~p{s_dCx;B(Cyt9kGQW(OQ;7))yS>4_;-TVU^2wA=?cuDdHpc39$_*Vc&n*dCJ zHvWY{Ye$jCzB06cng^ZgL3>lkg?MiRb!b5^%(Tv^JY{4vhW)e>MbM z!FmGYECcfDvX*?W4us^oB_hbM<>EWSjLVkcIM20@0 zjTpNHqn23^Jntaf>ekIqB0{KhK{dUIs8@%X2`F5m4p0lOh!J~Efh+{|*$Zeh%rOL5 z;{oHq86FS92wxP`^*fSg79{iG}*{|iL{#$@SZGqzYXDqJPWv-@Oh7l!zGQc}V{QF- zR@yw%i%Ta3+Q~AE-(127hy;8M*htE9DHu&DBf7ROu5fM(o@EkHUFBu6T}bE{7l2U* zbUt!29=zMkJ})BJjR$VJRz?G(|Eq* zN`Ijw9$NXcL_PqKrYY#m1JNOY4+EdL!b#4V$*L&^dErM-3fCUT}g+{*Q_Sc_% zc7ySdT4b@&*XZF!`Cy@qkHXIa=LwiBT`AEM1aWqL?J^d|E3+T|hZazTqxA**)iwlV zOwehGJK>Ckxg?Nh*QLIW_yQ z5HO*VMS_yENDdXqC>g3q5(Oj}Kt&OiAX###B0~X6RK$RitH=^ma#AEC@YcEA-}?i) z-{>)3ck{y?<02HNPVKYzTyxDiSLS&czpC`16+~^i_Fi7La*=N`H{s1LIDNW6CkmvO z=^6lMzDuAAll61^^5^NoU{x``bJL_8bmW4F+gn)5T0Ws}` z2W(KSw{%%xEx`gB5yyl+@jlAWnV-u3nuQ~Un}+EGI;=Z1qD~7P@p~XCZu0&w*xc+O zFE0dtK2cl%>hGc{`_yWu&eQa3&xUPUN@rdeq;{6#uM&q%fFOa>43WNl(+{u>zn$TG z9eSRusnk>U2X0U|Krx)}=$|rK3!5->xE=)HCH~$FQEc@LFhTuFI|Y|KPjSK}Ou^?h zVW${oMa~6$TMs;sWIm*u6pDETr3o|M{>!7@ZT!=x6h;iMuuo!S3U<%Ese(JEV3r08w_{7>s)U{an3WjuLX$m~dpR&`J z18Ef)`Tzr%HUYmqbzJ?cFi%S`@dMh1Z^^iehKLh?*foM_~;*-2+|(Sls}v z5z&nNZ{Prt4tZT8{sbV;0O+?S>XZvWs}$!5ed#cIjv}xr_RhjnX^1st5CR|y09Y#* zn4gl#%;&H(bgW`@TtSZbXNIs_6>qdK`u5(uB1b@9NYNT-AvS6j>q&~@{_zhe{ni^A z%Co>cQ;K?nKgSBb+@zm-_XCa?*ddmIf(s`%2f$OIH~1#wP1r_n0?G zGPm=`8^DWWrR^RK(u>V-h>Q=LX3A7QuLBV%Bxi+o2!_Mq%;FG7;g*Cnz z#;Bfn5EnQ_5yIm_V3)~cUIvbvwUhh{38*r=U-LRn#FDe8)U|tc7sQ7YVf&D*ztF&+ z$?xoRt9)S<0DYc;Am|{+v%O`aYqikM5H3DGGhbkw4|Is;&OlqhHI0Wo*OF9{@&HP& z^7A-|680v3871R6aSM`L&3}t`&Ird(n|0+zT*aRP+`>Kc!l{&OS`h-oTl#{^iqjQd z>Ya2Z^PmqrGTzs=ey2a+G4czy9A3*{+UIIgmtJ8tan?7o^LGJFo$i9^DNfYs2-IPa zX*@R2H7ED64hpq%r(?J<+J-mvnlF(1Acp2EtCOy$!6!qK;l@u;U|}6_1bt;=eA|$LG^iQ!lneN&!ID+;hT7h6Pw2kF?qjH}S13cKg^o$aOM0Jv){JmQZlbYaV^2w( zhN}(VzGxXr-^!b6J^K8IHsP`RRjmSYdw#)LB+1*Ve0&8gMuuLB&`)TSb}DTxG5gAi z8#Hce!O(rcUlnYJlge^X&D;T6=5%r`&U7jRdmumX<>}1#U?5|xUZRI!I^>I6+k=J@K-$HloWvD!Ay2L z|5Kq_FQ`iEuD`RC6%Al3jOo>#cv8WG>+`u3{=#C8Xrx3$(ahZEc zm^1h5tQgUlJkk@sC`qPXB=6LqZo%<`KS`toD5JHV?=W6{^9SWShCucAGE z^M6H}XzjKp(k&Ke3tCA7a{#nr@6O2((`5>YVZ{2xLP!6W1~WaX_!-vF73Kg!5*uX! z9dc)nwG|U@`_fGp+39!+m%*z;0~%&WT_s}iWZ!eH_&SNJys}5-=T;th1AIX$&HJi# zH!J#P7!98E`gW_XCSihfI5UMa&$<*p_pAw;F2k7y>Z%9(6nq$I%t>S~j(Y9Xd&+Fg5z0Oc3Dcz2jKAUlM3_#d63Jow?QXnHOwJ)`uhtfY z!H%J;+H3+_kBA5JO*m&*T=546X_dl`+aE)lSDscc&W>@qtkk-+Uhf+9$B^76tY6r* zRMCrlV0f=D81tB8>8oQ1^ppx+yT9D9I_+t$GpM01J}F$RGE5`Lj2Xoi>KuJ{9Q8HM zTSVVvOS@T1j1sQ62iP+0nO#`maE;4XBSkY2IXmv(abw668YjI>3BRku7Vee7!NJo%W_ zn5j5s9TReg-6&*cKL1Ak(6P?D4V&e2Y?NS$Y|rAF_Zo>t$#43;8WuKpS3)bcf-XJc zDQ9M4gTh1auWC~z#vkv0AmG}{0oA(03BO2a5OgLrsU&pAm;+339zHlAy83<~YT_q{ zszypg)y!7O=}#_vK_}y(6{cWD!jc^H)7U74{PISgOdpCiX_=eL?ZiP;XBgeZ&;y}m zMFK7YJ3yXj_*k-e3F%84x@tAoLiI>=&As8!7FItYhNoPZJVBw*lRr<%k=v7#3p^k6 zN+{@gU;{g6T~xh#^5~q>*+$~;;WY#6Z1Nm42Ixos`V4{W&@At%#T)3lY>4foEQA+gYljSzgVf$|fnq2}fsc(Y595gYyUnW-A4SccrNOf(t z4OOyWctZE1GiNES_SbQvd>NM?B9b}%bYpcD<1_c-FaGoWpm6LTjfPg56OYvJ?1QsQ2PRh~ULEt5t32Pq zOr$?aL66gnDg*2P3uS=9#cGCeP+zism$M*YJhmvF+3e9C|nz zPl#IHbyL-|j-5XJra5L)sC~vM2|R2cEF$u~(@_P?39m7dUA?HJE5!N5+WBs{15|e# zp0e8uqUCf@TZur&)kJj6mavs(TL2^@Bp}LsM_hRj1?`j>R@3N!M!LZ}{&v*wwG+Vh z2U#x=xnJNLkXxRwN<5h_Q`xJk)d}4X!)YwP*iRNL^)^_tT6G(0_msSgmHue*+Bks- zrNi^7>5jKQYTxv^h?M(|xfOX#r({I2s$VZmWX@qUo_E_WR>ja4-|LynKghj0aB@?P zZdSNJYaQMTh13OMOkSr$1H!-tFq(W$z_?j9;hvVp!=U4pD6%xOayDpk21&DbGn?89jzPDag)IfW2x17=V$m^m{y^& zT6AT1`IYl~62&3P(Dd`#e2gxJ(Vrl~t4-LbYo-w0Mhy#0#Q5T%vIChUyD;%wFo=d) zU#$w?KBJW_Aa6{c8AFJ|3{=Ryd_HLVZs5AWR{?!IdeB}~UIxTSz)6`Hrp=51>54?5 z?!5wK!%R-6%nV=5!*`Z9{&*QooDKPcZm)QtddW|*YiY1XzZ=Nk1<0|W#y>1dVdP;` zg#P)wk6H2e4$z=bBESEL@j*LWmUI*q*pnoyGTk~QNA0m1HAmo#lXR4R`Q`blB(~Lw zr9XW=A0H3r3ZO~5pT3qr>vbmD$i_IVN9`kgHWQ54fhTQi^;-3aLdGw?GAphe__9^! zUvz_UlTW*G`x4lef2)=Eweec@XcKhj6@4hq4K84x_bcI?*<^ygr>w_XV4_BDT^9`y&IIDU5e?Iq! zjvdGc+5wk&y;VV-z~+u9?b-1riWhAB+fHIxEL=B{lrC3+y1dpx+Katxqz`0Ja6uaf zF@d8+fF$7)bsRX94=pe=Zh7@mQv%U5a$>Qzv~U;fUnHO2nLOpSo{MJuYatCu|SSvLf(3)01$U_A(q*!1RZ z8z)gG6Wf@p@FBZ~2>${SntYKixkW(1_f^6mu;{?6yA~BnD&9haZUwFKq+`JO5P07% zy7XOSBgGz?47qLmFD}66!pwZ8Yxb2a+f1nY+oC;HjRu%jm~FTpXrX0JuJ|(g3wrvv zBl$3U5j~E{BW=EJB*$h*NQ*wxHKSR)*KBLpBA91zLW{1oe<$dqaCv3;)2nrtTjL+{ ztj;X0zg68*d0Yy1SK1pZ-P0w;o;_dkUkZdhc&%S!rB`z`=~FVx*m?B+UdNP)g7e|E zeaa7#6IBhjdY9Eq3bmgP?0&(>8+2d|M;>fSR;ac6rkS4 z3^1%bRR%)A=$OHeK7V1iYD#_YrMx`mbVq4O(VqZXaY7@jf;)y?A}wyaBV9F?g|e?I z1FKeL^28`oJ66z(j-<!&ww*nX4I4&8UMcFDKu=^G5~X1cWQfjRfi;$F=~e(tUSzx%fd z8a7_)>h~D~xjhrDlEi+NP4{(N3u%*h${uiLYVWCny8O8GIP~DNSAS@aoHwM|f5b6g zc{&s1|I*f7A?Z1ss)ag}mX3e3N;s#(F0<~%;Eayy#2)v0Y`gWMA-+1DfV>HYqtilP-hY2fLqCza-k@}ZWgHTt` zfVBinly88p9|CRzb@LUT0MumEvgl!m3V6=|y>R#n74%^EcPbw)0r@iikIy67BaCX? zMMgkCV4XWyy>W9F;UtBt-V`4PKP))IyvJME=x_ZJHYrhBd=IpZ>CI-S5SJM(K^K@0Zvqq`oa%wr4{10Zh)u~5q$f1hk}m?I(y$-wf&mGpRfxg%0(KH2C<{P0rJ|RwH2~XwDZmBL z@8xfAf&t691sZEf8X8ZIr4#jl`9;)*ckMvYB3Yp2@^^iAE3^)P0g#+b5UY0wG&#`l zs0AE=V+GF)0d7oUdK^w16KM9>jtAC4C)^Y(2q_F<7gF&`1ywrSK-e^#18rRE{*4UX zfY$&%H4l^D1#MW^^AN>3ht;i9Kfi)FJs7Mrh@h7Kb;vF!kVy3)88G6ro{E|Ds!*Dtc zRu-~%eVj?UmkYofuuabl;X7#5@ZHW;BCr%mneyg&2B+p(U8x3_A1elStQBoQfCjmq z^Ap@3pqGVTEq|~8$pn~fd`{reP9e@3hq+T zyAP71k}8d0y2o#+|vmI9RbU*ZnOZXPGGl8BIiCw zp9e9Nj_@4p_@s@zp7M;aL?S*3{~aC;{$BoA{)>RndRE~E&znxCLw5~E@MtmR(-4g@ zEZ6lhTf@8AR5WyPi3NGql9|*3V~37+PR}V7Sc+j068GWn4Gu443X0!bl_mK}0F!t( zywYGd;c@43BHPy z*w*D|(#jZDzc9M-=+ID9xlDuvzLn4~QD^lX`m8N?B908io9Xe;Hqv7+*$t&SWdgisG+EMt(;O!OTc~RllGPnv^?+T~B_j0^krpjPV zR6ehl+%Y5gg1^_90L=2?7L|e8w#Z_C{AcK06pvW@D z1;LOFSkfe}`meyoATz33RK43yO_y{ZmJ^P$!p!E?64^St@WRMQ4&lro*Qck;W4&(? zaGaT~%u7Bi%rcx*!SoVW(MLUIvKV<$Gt(9G>Fw;GT+6iiY17681Tig+8687x zIe^cWxPU|BRRB&CA`4*Dh~Ef*bRK3l@QffHPw#Z@+?0T>^V?fIF_<__`PFHg!m%AgB{kCAj|v7`pnp9&yzX zE`;TAKWP8`Kd6I#Oq+d@ph)d?!8TQ$$LUAEBeI2q-b;H?cWYcNP)&W}nYKM|Tzyr; zw4}jMa1oUSv0Ss zP_-@Mo#Cx zF6Li(hQETpFldXpV)X0E?e&tNa(mqyuWFq9&6J8Upu;Vcebpy!7nN(ul=VImE3#+qX7F7#mms+xqDQx>$S)m@?I^uSy#P zs(n`8`m}VPed{%Gu7A4s!G#4zzPOUE;)HwS();J6^R)6W+D_cq>DB5#uA2QCl5^tG z`9bb5smyhsIz`PA{o*h&rZBnRR|;q!Zzc=3OL_0) zd*j129yJT8etKyjcs1L~%w2z7UH)9$WQ0@k?{lXU zTc_9t=kA>!iX4KfEcSwKKYAR^*ACvL3ycXYqlmOlt5{(7oPMgsQSIpFC|<<^M}OgT zMN%=jMD!ZF7yiwkpXTD{3P$?r{E*uildz(Lqub;y;pKKX`jCw0cxE z*i6E?QgN29D5ABcB4QSVNyfa9GVdxhQ@B2AV^U|;7ilL0`px+>{QQhL9=#EOd@H7v zD5rLyuM2^`X>(#gEdZ4_dKJ!bOr`;Y8u_3uCLW>{;K)+d%co1Fv!@GeBc}1=`+L8I z`IzSeZ6#otcfzraKT-ng{#85P7?au4-?3(P>^$#U%@XrMvZP=(>!k0+o9`Toe3o^s z8)xTC|1jgflbmu`bDwn}gqLdmGsniwKg_roKaEdcbW?OVr{OHhb1WH55~Fn4S96(u zo`jbP2-bw;j6S??7t23=11;j?a3DG!;<^RqRz^B$p-j);0AQh)@Ejefh z^QiC4y@mdXs!Edl&kc@KANyi#*@Wu!rm)sSgiDiREDNi~SD@KnMAuALD$s`~TzC%( zUbJY|OcAqZo?phLj3o=vod(y|7!YTcea!14FcH4_9FxFPrXGF-F!k}t@k~`?%V2g? z^)bhHD33Ghv|qfYi!~dFMe*GnDO7)g?$Z(11KeiB1tfTgv!tCD_X}5GbaWj; zQPH>x(F-fvLd_Qg_g?)nvvuUP{FH@M-GP)zZC)AgPo(H(O&{kvSI9`vta1ZhX(&*+M0yk^X_ zuL19no`GB=0}w8uTYU<%v|EGfL=*Z4E ze#j^(EA26^+YiJo`Q6~B032g_vY{E>6`X-hOTZ*adz5Ugna%!48eZ2Q+$L0i#r1ICNb>!u6 zH{YoX@;*4tP}E!*lA`VG3+aoAUM5xgRqEeggW^chV>ER2ZV#qAJ}G)b|CJG#v zlCKW*`qG*ZviLfsD7g>VRR=YiIBf$wAU7cUUL_Q96KVk{4>l05T^0cSpv|N23&1nQ zFi@0$G~EUP+43a7>lACF{!y^6LjdfX#7ZqB`0)#5!F-7KwX2SylPI0J7;zzjtQ878 zA9>N7i(RsnT2>|ZNDOXwg#Ic&844^TxTK8?UcfDMNkVeL{y#uW%QhWx*$=sVv@r>t#U-`487)2N~OMoOVEwjV)Iw zSkLMpDHYAkf@p;zf7A{2bZEiDDBgLv_BBq8lvZf%U$l<&&!i>IqVVF0BQ2N6ZtARs zFH=HpyV$XvlFZinK5($5T}CK2dp=OtJQbZnolYB_ujNZxbeu-2oi-?3gxXybGV3=L z)ZCZ`Dvkr;nRc<*jbAuvwczRH?CZ^y2D!b7GvgH^S|tMk&F6LU8j_ zm*W7m*M-^#3&BRPGt|kA`d*1Du8D`toxGGnW)iV@$HD^NW`e63Y8N!D%bNmS9Uoaa zh$H_m#2?TKYpN|iW@(lldE=uksUKE%ZAg0+W-%B{-fj67H!0znO@5}BeI~JCV9HR) z>4Bh`?}MiYgmX8fr=C@m4QR>SPzgE&xc?jPz(IlG09QL~Tf_QydV6p=nQiPA7^rV` zPO&!2=h=6U9bI5(hrK!TR>9xm73!Njg3?~ZWi8`9h1Qp6>j^4x61plfjk~=|8hO)VIgh!hJTrm;b~ zV;D;eg?n57dN+L`CEcKpyaj!?VzOcQW}e z#7n@&rQ>spfh0}<;t7gH$Ze7GXF`qc1%;`H=-FQ-N0gzj2nyAw`=N;Kgt#1f9sKC`1fktZ=|>*KFbk-EaS{zVIS`iB0bXEGpPD~h z(TWr5N9t4EBqS$b59<9nnu;RSNgR^<1|#wCZ)yL1+^xs?8VKV7MIOX(8Unil3OSR9 zD^NU(gAE5XpdeShbNDc-RO{bDK0{4@z^_AAK@u%THTbq+b7)F&fsYILmCbq(y}S%N zpbSg|qI6r~M2^IoGry@OINOfxc3&n2dEn#b5 z1e41lCI?|&T5XWgkU$(>F7|;B0(M1efvGsKhi%j3n-Y;y?vRdFadE)F?3k;Bpl|m? z7mxST&Q1Kt{7Azt@Vs41#ir#~2`Qk81hAZ?mtr=kHmC~-l=KM1#z}nI?5?{&^bj84 zxhBAM2-KC#;depPh?2Lj^b8zXa2HqQv*YZ*p9I7ZG|lRFdJSKK#`@1QE6m3ij12$? zAXpk}>wT>qa)IF8CK^4qgfJQ57aza^uJW{l0$!peaNahj70213*D1|ZWib{|AVq&5D60k04cY4}L}2ivu| z+oYfQsARx2&_3pa)dg^78g%#2PEUn+Kd52hkkq_$9?~=b)!v5b&1|*E5exCjLf>T@C2?M4UP2z8&km(#ICN+IwH7&-2JwcEf8Sp zfPEBa2gkl>-SP|et4zRM%|SGge$0hVU^RE4Vu>^i?OfJsF!K~nUGe}f6tueiwf6bZK_|>^i06Q7=p1Snnn-3xBRf4HT9Pu7{?A~+l_U^vmVzig zU9qC=*N*2EN!J@{u^{`XG$|I)<@COYY;Jpoz^*W?m1@~q^ zN7*G-;9N1%WOiod2dD{|2DVmhB*1R*u^pU2**6LjNZRTe^&gz9V=BPQl>Cpu>}tM_ zt}g>1iyXk_S{x3y;fZ0JPeunrM5C61KnFMQe`6ZiD$SOBk&py(^^v-?vZj&0rn-2m z#%JX_8{l}Q3nmH*Fz1~nIwqKcrPmE6{>Fu1JbDViUy@^zp%w&qV5FPWNTMy5V>1h5 z#|B|@x?j)`)N$}I!q)A4e=F# zz8O!Un-QQD95e|QH|z$<(!s)U&>3&Qj-c9VY}N`NY+`g{PzSrg9%CB0pWUsT&gaq< z3}gR58g*=Ip^1L!uZIuvlecmr^Q{ii_LiKxHCtGPA*Mj&VpPI~W&9WLr%AyhH1IBN zWVs8Z1Cr;9%u`Vo;L`N*pK6o^%h0E3vXP7s_VlV)dr8l=n#E5cUp045Il95fJ_tY% zM7lY>NDvD#MBr6k=Pvls27f?9<@W;(Xud4xs+4togYmC(hcF!9fRjUPbl-fQ_Lh`+ zL-esk0cV*&BS^W2OKl%8KRwP*;n-6TNxO&}B5 z#+EH2F(O96R%7YSUbri;Z-=b^vKCIiG;@HrI)cOdU%G(Xqk$8!lb~N0Lvtx&0W@Z% zAC2=2-WEL1UmJi))0waX^K;6BrOAv(me}kdV2fM!==t1~5edu$9JrgBL8q-a^tj+~ z>v{V_PDRDYgZjbPx}Vj(@K+we7IteQbyn#O_%9)kPpI8z06I23C%&@HArozKd)=_2 zPpps;bpSM0-`p5%m+Ydk_^k*sit>-M>z$`^6G%OUdy9dih10(1pF9%rfMsOVFL6E? z>;++$v(?0RU^gwAw=Viy3qtW1;k}yaag#eHbcfs2(yhl?&~sQxll&Z*@J)B8B?HQ@ z>4C398siIoL(HugMh+3=>OA!*6^r+B-Zt$&e|Bvo;eznD&s zNOulGS>Ah&h#LpF!{!FAoL~r*PNwaGf-^yK27-=y(K@k#P(bdyS_uk)>0J)#NX*W= z6q8beL0rw%15rU`q217M^!|kiKtJllNMZSK^Tu4bEdr9$e+wDVrHW~u0k?VvY<+Q) z;n>aVUKjOYPJD@1fY-!rAXt#znV=CN>x|=ANNtgkRIWPA&o(|F1yClm`aS^;t)l*h zkOs{l_{&B&b;5+icfiovRwMHWpQWXSA4%fEZNr8QZ7j&;Y(=KkjGVZ3CmoK##B}~u z#GEpg3kX~*E8?*)?K<>4t;Crg^KU3jTYmsV_in8&ZJrRC07X zqFNG*gK+K@I7$0*i2|jVt#$;#`fK5#xLyP^%V{^rjbkN1fRw#IK8X{tS;J~AM5V=$ zJ~@^l@q=thV7^2`Cm9B5Ozg+-jK2NSXK8P+EqnU2iddLX9YWgfuG)0PoQ_P0GJ4ik zU0$7=@v7$n*nh_24ls=SQ}?F$`51j0e0|l5w!OH1Q%kIU=+?AymdflUCWa)MEyl6% zvR47Blo9JFY2dj9-ptq=aD*}*UJ<%4>7}mW^=I-P4?stX7))j=D`G@O1SKToJ#_UC zzW7jg4< z(9~EOZGClxI?J=l-$6I1D0{&l>OyE0Bh&vpDV9;dLjn9d$4q0QZ}@&2KCaf=G1W1_ zSHPLTcC#t*wJ-A6dAq#-)6oXO@s`zVo2zBP z+X3>~u*@9J4ZI#`wp!~pI*C~m*f=g86ra@d@&E&*Y%XjGN* zs^s^fhD2A7e_4A`rkr=#%P8FNQpFM5uR-BK-KWOd?H-0fPy6VMs4xv`fujhb^h~V3 zwZt!TWvbMn*lvCR#nG(;G)gXrD{^$_Bi6c@q&M%^oU>G`uE3R z!7E3hN)JJ08@e?Li&DU%x+Lrh5l{(|i5)eVz8AGXukexvRox3Xau;m0W)CyL^kWGC z4PdnijAjXkdb&{_@i-`kykTd`fY4~zYjz-8ycAxVsR3eT8|%=}C5Q6{emNLGDHyG4 zK?nppEDnjIYm|pN`kxUo4>O_Hk9;fuE6rhk0ix4rta}D{6OkY|?a6qMOVZ!$1XK@Ido@Hu0I04((q$i-Lac`2{AD<7*uQ6hsSI}F z)n8*xZ~;C4Bq`MZ1KF%HbO}$%gEqL?^A*TRTj(ooQgOjTDTrh&z)%AkxJx!Kfo3#+ z2vZl18|54E3DUt`QS@K3qc3fT^D-4Sa^T59GXR!rxr2M|-n$2ouiz#SJ=niOa_jIm ze?vPB>X`0`L;&a#Kv4jD387vfhlmK<(sj)RCNcAc%Lg`No7~H^Y|)?Z0fu|HJR^ z|K5lH()EB$iSgL`ziaP*pFtGL;tm{E|G)1=yHRz4{*k1)y;p)g$)Dd#X_|BK?SCtE zgI2KG!?0w5m1Bn{gI+oBWJJc@yHi&`<=i#6z-mFH(p46*8v8`QBMCoz`0{&Urwy}L zLvF%y(AV1cSJpl!9NSWO)ov326O47Lt_QdKGajL(fqSLIx(`vD!mKp-ubMJM>BD@e z|F-||iZd|^g*ud}siutiZ}4WMVZr#NTx|K~6=Ns)? zHh})*K6Y$sdU|?hhHhF`PEJlyk$1+=$49a@oIWuz@!jWNiJ$FcWM!KYUcY{Qq-jj& z!q`5z+8I}I8jEv52M!#7m{jt`(fRp#ZZ58*#6&X-3!z#eoqJyQMvi>Q%*+IIJ+-jl z=I;I~B?UyFcqfO<8_4gICTkZvFOX)?6vd*%F4X~V&7w@YYf*vL2;kh>Hx6)IOmlr z6C~h!CSw34qWD4{z6W#=%phQ;^Y!+Y&^+bW4RtAu znY{D-`SZ`8Kc6N4{{6eZzhCEEd0Cl_umrrMkD+wvm$Oc8hReXec!3fB;(AJa{IwZ7 z7Z;%?A+jA%Fn0)7@3WO|&ER;zkDJ40J- z^qDhfU~yT?)s&Pxi$U`0er-aZJ_z^&e|P!i4pmSEuE7MNKae39v$_8F?_X%ics?%T z;^aieJ@&<%W*NoLTwaHk{6g)YHn@VUf=t3Nz0oe*%9MHhVdhmzTEzP-^r2)TAVOF9%W@a#zkM zhLVo&PVAiE=5BQ;|MKOFCLdhaH=xlw1_!r*W^tE$ML!zBmw0z3~zu zvxd(D@{OlLNfrrm7cW9MbT)KsX@nnpX2r1961lKY zI3L~z1xOS{Y3Yp?!D4UFjnyhde+D@=bsw^HB#4P9j>s{%yT71|#wFQ4kf<6qUFaF0({B{{xXp?w8WFk+!xrJ2W!j z0N!<2y|DN<7`E!Se&`#NF-lqtuhZRz_gz_hq~ZT@))8lHya<6G5DkTlDf#o~kEXCE zdL%9`4(5gyO;1h1Hj|o~I$YgbaSX1qx`=^+fp5?{x}B!&knkpCleB&P>h0r0-IU8p zzO=$sk93~Ayu2b{25sna*MiUrv}5%3^cGB`DOi2|_N66HsU-3?8+-!O)O2BF&feR% zZ-EF7m-a9^e=4_W)X&!!w++>p0f*$I{g}!WOgKZLt03L08s712S0iu-ZFZNsySrOk zTf=5wk%mf;O-X7~Jhc1#I5_SQ1^{Tjzdh#ez^jkse5@S1S2g6RZEimJ{=FI+9bFRw zD>m;XUA9?H^{w^&B+AqWF89ORCm21;uRnf;{BUN#)d}d= zwkJy?Q!I;%idI)v!VUvBuOZ2M_{_-g@NiL4Q9=T;nP&(hzi~2B@zq|7D-)KA=!sK} z{s(45L_|dD!Gi)JsB?>pO#EDlzSh>(!NCeit>G7~Oid5n9HdZKWu$9iE3K%idY~V+ zU}9S8R_a`?z$}DkvH@U_wPqj z>{xqtcD6@H^||~dMPcLtEi&KjLg{Hea5Fj`^he}i(AFzS2vhDJmmIr&{rU)`(WMm3 z2gFi%D)zwo9o;0S&?K|YImMm}jb`5aQ*L{E`*Y52_doykhHOb=@#mb0Wb-60hPVlP z;SH9V5_<2A(^L{%9&6sriJCuGr|l2wi;Ij6ljL~ zNMZA46FM7AIp?$B0{fCHwA1Lj{YYGJ0Vt`l5E={n{J1w?swnoaeZ8%#L>BP%4H^sYR4LvclTx+Rto-iKLXeGqIAqu&{8>cYVaMDrn;V5k;;v` F{|9~4P`v;E diff --git a/packages/twenty-website-new/package.json b/packages/twenty-website-new/package.json index f0eff2953d..42478f69dd 100644 --- a/packages/twenty-website-new/package.json +++ b/packages/twenty-website-new/package.json @@ -22,13 +22,13 @@ "@wyw-in-js/babel-preset": "^0.8.1", "axios": "^1.14.0", "gray-matter": "^4.0.3", - "gsap": "^3.14.2", "next": "16.1.7", "next-with-linaria": "^1.3.0", "react": "19.2.3", "react-dom": "19.2.3", "react-markdown": "^10.1.0", "remark-gfm": "^4.0.1", + "sharp": "^0.33.5", "stripe": "^20.3.1", "three": "^0.183.2", "zod": "^4.1.11" @@ -38,7 +38,6 @@ "@types/react": "^19", "@types/react-dom": "^19", "@types/three": "^0.183.1", - "babel-plugin-react-compiler": "1.0.0", - "sharp": "^0.33.5" + "babel-plugin-react-compiler": "1.0.0" } } diff --git a/packages/twenty-website-new/project.json b/packages/twenty-website-new/project.json index 1b1adda042..1b73738b73 100644 --- a/packages/twenty-website-new/project.json +++ b/packages/twenty-website-new/project.json @@ -33,8 +33,59 @@ "command": "npx next start" } }, - "lint": {}, - "lint:diff-with-main": {}, + "check-boundaries": { + "executor": "nx:run-commands", + "cache": true, + "inputs": [ + "{projectRoot}/src/**/*", + "{projectRoot}/scripts/check-boundaries.mjs" + ], + "options": { + "cwd": "{projectRoot}", + "command": "node scripts/check-boundaries.mjs" + } + }, + "check-section-shape": { + "executor": "nx:run-commands", + "cache": true, + "inputs": [ + "{projectRoot}/src/sections/**/*", + "{projectRoot}/scripts/check-section-shape.mjs" + ], + "options": { + "cwd": "{projectRoot}", + "command": "node scripts/check-section-shape.mjs" + } + }, + "check-lottie-frames": { + "executor": "nx:run-commands", + "cache": true, + "inputs": [ + "{projectRoot}/public/lottie/stepper/stepper.lottie", + "{projectRoot}/src/sections/HomeStepper/utils/home-stepper-lottie-frame-map.ts", + "{projectRoot}/scripts/check-lottie-frames.mjs" + ], + "options": { + "cwd": "{projectRoot}", + "command": "node scripts/check-lottie-frames.mjs" + } + }, + "lint": { + "dependsOn": [ + "check-boundaries", + "check-section-shape", + "check-lottie-frames", + "^build", + "twenty-oxlint-rules:build" + ] + }, + "lint:diff-with-main": { + "dependsOn": [ + "check-boundaries", + "check-section-shape", + "check-lottie-frames" + ] + }, "typecheck": {}, "test": { "executor": "@nx/jest:jest", diff --git a/packages/twenty-website-new/public/illustrations/common/glass-environment.jpg b/packages/twenty-website-new/public/illustrations/common/glass-environment.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0ddd056788a51f943e85510cfb9e40705db8bd43 GIT binary patch literal 180052 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�lLoof8-&-Pwy9(h-AQgTQR}3tjJ-r1o4|!t{XdU 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�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�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 + rel.startsWith('src/') && /\.(ts|tsx|mjs|js|jsx)$/.test(rel), + exempt: (rel) => + rel.startsWith('src/lib/visual-runtime/') || + rel.includes('__tests__') || + rel.endsWith('.d.ts'), + help: [ + 'Use `createSiteWebGlRenderer` from `@/lib/visual-runtime/create-site-webgl-renderer`', + 'instead. The factory enforces the site-wide context cap, attaches the kill', + 'switch (NEXT_PUBLIC_DISABLE_HEAVY_VISUALS), and centralises GPU / power', + 'preference defaults.', + ].join('\n '), + }, +]; + +const SKIP_DIRS = new Set([ + 'node_modules', + '.next', + '.turbo', + 'dist', + 'build', + 'storybook-static', + 'public', + '.git', +]); + +async function* walk(dir) { + const entries = await fs.readdir(dir, { withFileTypes: true }); + for (const entry of entries) { + if (entry.isDirectory()) { + if (SKIP_DIRS.has(entry.name)) continue; + yield* walk(path.join(dir, entry.name)); + } else if (entry.isFile()) { + yield path.join(dir, entry.name); + } + } +} + +function findMatches(contents, pattern, ruleId) { + const matches = []; + const directives = []; + const lines = contents.split('\n'); + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + + const directiveMatch = line.match(ALLOW_DIRECTIVE_REGEX); + if (directiveMatch && directiveMatch[1] === ruleId) { + directives.push({ line: i + 1, ruleId, suppressed: false }); + } + + const m = line.match(pattern); + if (m && m.index != null) { + const prevDirective = directives.find((d) => d.line === i); + const suppressed = prevDirective !== undefined; + if (prevDirective) prevDirective.suppressed = true; + matches.push({ + line: i + 1, + column: m.index + 1, + snippet: line.trim(), + suppressed, + }); + } + } + return { matches, directives }; +} + +async function main() { + const violations = []; + const staleDirectives = []; + + for await (const absPath of walk(SRC)) { + const rel = path.relative(ROOT, absPath).split(path.sep).join('/'); + + for (const rule of RULES) { + if (!rule.appliesTo(rel)) continue; + if (rule.exempt(rel)) continue; + + let contents; + try { + contents = await fs.readFile(absPath, 'utf8'); + } catch { + continue; + } + + const { matches, directives } = findMatches( + contents, + rule.pattern, + rule.id, + ); + for (const m of matches) { + if (m.suppressed) continue; + violations.push({ + rule, + file: rel, + line: m.line, + column: m.column, + snippet: m.snippet, + }); + } + for (const d of directives) { + if (!d.suppressed) { + staleDirectives.push({ rule, file: rel, line: d.line }); + } + } + } + } + + const newViolations = []; + const seenKnown = new Set(); + + for (const v of violations) { + const key = `${v.rule.id}:${v.file}`; + if (KNOWN_VIOLATIONS.has(key)) { + seenKnown.add(key); + } else { + newViolations.push(v); + } + } + + const staleKnown = []; + for (const key of KNOWN_VIOLATIONS) { + if (!seenKnown.has(key)) staleKnown.push(key); + } + + let exitCode = 0; + + if (newViolations.length > 0) { + exitCode = 1; + const byRule = new Map(); + for (const v of newViolations) { + if (!byRule.has(v.rule.id)) byRule.set(v.rule.id, []); + byRule.get(v.rule.id).push(v); + } + + console.error(''); + console.error( + `\u001b[31mcheck-boundaries: ${newViolations.length} new violation(s) found\u001b[0m`, + ); + console.error(''); + + for (const [ruleId, list] of byRule.entries()) { + const rule = list[0].rule; + console.error(`\u001b[1m${ruleId}\u001b[0m — ${rule.description}`); + console.error(''); + for (const v of list) { + console.error(` ${v.file}:${v.line}:${v.column}`); + console.error(` > ${v.snippet}`); + } + console.error(''); + console.error(` help:`); + console.error(` ${rule.help}`); + console.error(''); + } + } + + if (staleKnown.length > 0) { + exitCode = 1; + console.error(''); + console.error( + `\u001b[31mcheck-boundaries: ${staleKnown.length} stale entry/entries in KNOWN_VIOLATIONS\u001b[0m`, + ); + console.error( + ' Remove the following from KNOWN_VIOLATIONS in scripts/check-boundaries.mjs:', + ); + console.error(''); + for (const key of staleKnown) { + console.error(` - ${key}`); + } + console.error(''); + } + + if (staleDirectives.length > 0) { + exitCode = 1; + console.error(''); + console.error( + `\u001b[31mcheck-boundaries: ${staleDirectives.length} stale boundary-allow-next-line directive(s)\u001b[0m`, + ); + console.error( + ' The directive on these lines no longer suppresses any violation. Remove it:', + ); + console.error(''); + for (const d of staleDirectives) { + console.error(` - ${d.file}:${d.line} (${d.rule.id})`); + } + console.error(''); + } + + if (exitCode === 0) { + if (KNOWN_VIOLATIONS.size > 0) { + console.error( + `check-boundaries: OK (${KNOWN_VIOLATIONS.size} grandfathered file-level violation(s) tolerated; drive to zero).`, + ); + } else { + console.error('check-boundaries: OK'); + } + } + + return exitCode; +} + +main() + .then((code) => process.exit(code)) + .catch((err) => { + console.error('check-boundaries: unexpected error'); + console.error(err); + process.exit(2); + }); diff --git a/packages/twenty-website-new/scripts/check-lottie-frames.mjs b/packages/twenty-website-new/scripts/check-lottie-frames.mjs new file mode 100644 index 0000000000..02e56de4ad --- /dev/null +++ b/packages/twenty-website-new/scripts/check-lottie-frames.mjs @@ -0,0 +1,118 @@ +#!/usr/bin/env node +import { execFile } from 'node:child_process'; +import { readFile } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { promisify } from 'node:util'; + +const execFileAsync = promisify(execFile); + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const ROOT = path.resolve(__dirname, '..'); + +const LOTTIE_PATH = path.join( + ROOT, + 'public', + 'lottie', + 'stepper', + 'stepper.lottie', +); +const ANIMATION_ENTRY = 'animations/main.json'; +const FRAME_MAP_PATH = path.join( + ROOT, + 'src', + 'sections', + 'HomeStepper', + 'utils', + 'home-stepper-lottie-frame-map.ts', +); + +const EXPECTED_CONSTANT_REGEX = + /export\s+const\s+HOME_STEPPER_LOTTIE_EXPECTED_TOTAL_FRAMES\s*=\s*(\d+)\s*;/; + +function fail(message) { + // eslint-disable-next-line no-console + console.error(`\n check-lottie-frames: ${message}\n`); + process.exitCode = 1; +} + +async function readExpectedTotalFrames() { + const source = await readFile(FRAME_MAP_PATH, 'utf8'); + const match = source.match(EXPECTED_CONSTANT_REGEX); + if (match === null) { + throw new Error( + `couldn't find HOME_STEPPER_LOTTIE_EXPECTED_TOTAL_FRAMES in ${path.relative(ROOT, FRAME_MAP_PATH)}. ` + + 'Has the constant been renamed? Update both the TS file and the regex in this script.', + ); + } + return Number.parseInt(match[1], 10); +} + +async function readActualTotalFrames() { + let stdout; + try { + const result = await execFileAsync( + 'unzip', + ['-p', LOTTIE_PATH, ANIMATION_ENTRY], + { maxBuffer: 32 * 1024 * 1024, encoding: 'buffer' }, + ); + stdout = result.stdout; + } catch (error) { + if (error?.code === 'ENOENT') { + throw new Error( + '`unzip` binary not found on PATH. Install it (Debian/Ubuntu: `apt install unzip`, macOS ships with it) — ' + + 'this script needs it to read the Lottie animation JSON.', + ); + } + throw new Error( + `failed to extract ${ANIMATION_ENTRY} from ${path.relative(ROOT, LOTTIE_PATH)}: ${error?.message ?? error}`, + ); + } + + let animation; + try { + animation = JSON.parse(stdout.toString('utf8')); + } catch (error) { + throw new Error( + `${ANIMATION_ENTRY} inside the .lottie file is not valid JSON: ${error?.message ?? error}`, + ); + } + + const ip = animation?.ip; + const op = animation?.op; + if (typeof ip !== 'number' || typeof op !== 'number') { + throw new Error( + `${ANIMATION_ENTRY} is missing numeric \`ip\` / \`op\` fields ` + + `(got ip=${JSON.stringify(ip)}, op=${JSON.stringify(op)}). ` + + 'Has the Lottie schema changed?', + ); + } + return Math.floor(op - ip); +} + +async function main() { + const [expected, actual] = await Promise.all([ + readExpectedTotalFrames(), + readActualTotalFrames(), + ]); + + if (expected !== actual) { + fail( + `Lottie totalFrames mismatch — expected ${expected} (per HOME_STEPPER_LOTTIE_EXPECTED_TOTAL_FRAMES), ` + + `got ${actual} from ${path.relative(ROOT, LOTTIE_PATH)}.\n ` + + ' The home-stepper scroll → frame map is keyed to the authored timeline; ' + + 'either:\n 1. revert the Lottie re-export, or\n 2. update HOME_STEPPER_LOTTIE_EXPECTED_TOTAL_FRAMES ' + + 'and the STEP_*_END anchors in home-stepper-lottie-frame-map.ts together.', + ); + return; + } + + // eslint-disable-next-line no-console + console.log( + `check-lottie-frames: OK (stepper.lottie totalFrames = ${actual}).`, + ); +} + +main().catch((error) => { + fail(error?.message ?? String(error)); +}); diff --git a/packages/twenty-website-new/scripts/check-section-shape.mjs b/packages/twenty-website-new/scripts/check-section-shape.mjs new file mode 100644 index 0000000000..ab49bf41a1 --- /dev/null +++ b/packages/twenty-website-new/scripts/check-section-shape.mjs @@ -0,0 +1,202 @@ +#!/usr/bin/env node +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const ROOT = path.resolve(__dirname, '..'); +const SECTIONS_DIR = path.join(ROOT, 'src', 'sections'); + +const SECTIONS_USING_NAMED_SLOTS = new Map([ + ['Marquee', new Set(['Heading'])], + ['TrustedBy', new Set(['Separator', 'Logos', 'ClientCount'])], +]); + +const LEAF_SECTIONS = new Set([ + 'CaseStudy', + 'CaseStudyCatalog', + 'LegalDocument', +]); + +async function listSections() { + const entries = await fs.readdir(SECTIONS_DIR, { withFileTypes: true }); + return entries + .filter((entry) => entry.isDirectory()) + .map((entry) => entry.name) + .sort(); +} + +async function fileExists(absPath) { + try { + await fs.stat(absPath); + return true; + } catch { + return false; + } +} + +async function readFileOrNull(absPath) { + try { + return await fs.readFile(absPath, 'utf8'); + } catch { + return null; + } +} + +async function findBarrel(sectionDir) { + const candidates = [ + path.join(sectionDir, 'components', 'index.ts'), + path.join(sectionDir, 'components', 'index.tsx'), + ]; + for (const candidate of candidates) { + if (await fileExists(candidate)) return candidate; + } + return null; +} + +async function findRoot(sectionDir) { + const candidate = path.join(sectionDir, 'components', 'Root.tsx'); + if (await fileExists(candidate)) return candidate; + return null; +} + +function parseSlotIdentifiers(barrelContents) { + const exportMatch = barrelContents.match( + /export\s+const\s+\w+\s*=\s*\{([^}]+)\}/m, + ); + if (!exportMatch) return null; + const body = exportMatch[1]; + return body + .split(',') + .map((entry) => entry.trim()) + .filter((entry) => entry.length > 0) + .map((entry) => { + const colon = entry.indexOf(':'); + return colon === -1 ? entry : entry.slice(0, colon).trim(); + }); +} + +const TOARRAY_REGEX = /Children\.toArray\s*\(/; + +function stripComments(source) { + let out = source.replace(/\/\*[\s\S]*?\*\//g, ''); + out = out.replace(/(^|[^:])\/\/[^\n]*/g, '$1'); + return out; +} + +async function checkSection(name) { + const sectionDir = path.join(SECTIONS_DIR, name); + const violations = []; + + const barrel = await findBarrel(sectionDir); + if (barrel === null) { + violations.push( + `${name}: missing components/index.{ts,tsx} barrel — every section must expose a single compound export.`, + ); + return violations; + } + + if (LEAF_SECTIONS.has(name)) return violations; + + const root = await findRoot(sectionDir); + if (root === null) { + violations.push( + `${name}: missing components/Root.tsx — every section needs a Root that owns the outer