feat(marketing): add contact form submission and testing setup

- Add contact API endpoint for demo requests and sales enquiries
- Implement functional contact forms on Demo and Pricing pages with honeypot spam protection
- Update footer layout: remove Company section, add contact email
- Update self-hosted FAQ to mention open source with GitHub links
- Add vitest and testing-library dependencies
- Add tests for MarketingLayout and PricingPage components
- Remove placeholder external-auth test file
This commit is contained in:
2026-04-18 00:33:02 +09:30
parent 2baf6cd51a
commit cb62079b4f
12 changed files with 1794 additions and 343 deletions
+4 -12
View File
@@ -125,7 +125,7 @@ return (
{/* Footer */}
<footer className="border-t bg-muted/30">
<div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-12">
<div className="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8">
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-8">
{/* Brand */}
<div className="col-span-2 lg:col-span-1">
<Link to="/" className="flex items-center gap-2.5">
@@ -135,6 +135,9 @@ return (
<p className="mt-4 text-sm text-muted-foreground max-w-xs">
Enterprise identity and access management. Secure by design, simple by choice.
</p>
<p className="mt-3 text-sm text-muted-foreground">
Contact us: <a href="mailto:info@secuird.tech" className="text-foreground hover:underline transition-colors">info@secuird.tech</a>
</p>
</div>
{/* Product */}
@@ -160,17 +163,6 @@ return (
</ul>
</div>
{/* Company */}
<div>
<h3 className="text-sm font-semibold text-foreground mb-3">Company</h3>
<ul className="space-y-2">
<li><a href="#" className="text-sm text-muted-foreground hover:text-foreground transition-colors">About</a></li>
<li><a href="#" className="text-sm text-muted-foreground hover:text-foreground transition-colors">Blog</a></li>
<li><a href="#" className="text-sm text-muted-foreground hover:text-foreground transition-colors">Careers</a></li>
<li><a href="#" className="text-sm text-muted-foreground hover:text-foreground transition-colors">Contact</a></li>
</ul>
</div>
{/* Legal */}
<div>
<h3 className="text-sm font-semibold text-foreground mb-3">Legal</h3>