feat: self-serve tier — PR 8/12 — Trial UI (banners, interstitials, upgrade gates)
loading diff…
Stack order: Merge after PR 7 — Sign-In & Auth Broker.
Adds all trial-facing UI components: countdown banners, expired interstitials, enterprise upgrade gates, and CTAs.
| Component | Description |
|---|---|
TrialBanner | Top banner: countdown (7d or less), urgent yellow (3d or less), expired red, hard-locked red |
TrialExpiredInterstitial | Full-page block for soft-lock (with "Continue" escape) and hard-lock states |
UpgradeGate | Blocks enterprise features with lock icon + "Upgrade" CTA |
UpgradeDialog | Dialog with iframe to upgrade request form |
/test-onboarding/trial-components for development previewactive (>7d left) -> countdown (7d or less) -> urgent (3d or less, yellow) -> soft-lock (expired, can dismiss) -> hard-lock (7d after expiry)
| # | PR | Link |
|---|---|---|
| 1 | Foundation | #458 |
| 2 | Core orgId Resolution | #459 |
| 3 | Routers: orgs, audit, onboarding | #460 |
| 4 | Routers: teams, connections, me | #461 |
| 5 | Routers: apps, auth-configs, misc | #462 |
| 6 | Self-Serve Signup Flow | #463 |
| 7 | Sign-In & Auth Broker | #464 |
| 8 | Trial UI | this PR |
| 9 | Enterprise Tier Gates | #466 |
| 10 | Trial Lifecycle | #467 |
| 11 | Proxy Trial Lock | #468 |
| 12 | Tests & Fixtures | #469 |