feat: add licensing page with AGPL-3.0 and commercial license tiers

This commit is contained in:
ashim-hq
2026-04-23 19:34:25 +08:00
parent d588f5fd93
commit 9a2371053a
3 changed files with 304 additions and 1 deletions
@@ -0,0 +1,40 @@
"use client";
import { ChevronDown } from "lucide-react";
import { useState } from "react";
interface FaqItem {
question: string;
answer: string;
}
function FaqEntry({ item }: { item: FaqItem }) {
const [open, setOpen] = useState(false);
return (
<div className="border-b border-border">
<button
type="button"
onClick={() => setOpen(!open)}
className="flex w-full items-center justify-between py-5 text-left"
>
<span className="text-base font-medium">{item.question}</span>
<ChevronDown
size={20}
className={`shrink-0 text-muted transition-transform duration-200 ${open ? "rotate-180" : ""}`}
/>
</button>
{open && <p className="pb-5 leading-relaxed text-muted">{item.answer}</p>}
</div>
);
}
export function FaqAccordion({ items }: { items: FaqItem[] }) {
return (
<div className="divide-y-0">
{items.map((item) => (
<FaqEntry key={item.question} item={item} />
))}
</div>
);
}
+1 -1
View File
@@ -7,7 +7,7 @@ const links = [
{ label: "Features", href: "#features" },
{ label: "Download", href: "#how-it-works" },
{ label: "API", href: "#api" },
{ label: "Pricing", href: "#enterprise" },
{ label: "Pricing", href: "/licensing" },
{ label: "Docs", href: "https://docs.snapotter.com" },
{ label: "About", href: "#open-source" },
{ label: "Contact", href: "mailto:contact@snapotter.com" },