Add privacy-safe product analytics
CI / verify (push) Has been cancelled
CI / publish (push) Has been cancelled

Establish an idempotent analytics pipeline and internal decision dashboard while keeping event metadata allowlisted and account deletion enforceable.
This commit is contained in:
Rocky
2026-08-20 15:20:01 +08:00
parent 231c5040a5
commit 4b465e0e5e
38 changed files with 4275 additions and 80 deletions
@@ -0,0 +1,33 @@
const ranges = [
{ value: "7d", label: "7 天" },
{ value: "30d", label: "30 天" },
{ value: "90d", label: "90 天" },
] as const;
export function RangeControl({
value,
onChange,
}: {
value: string;
onChange: (value: string) => void;
}) {
return (
<div className="inline-flex rounded-xl border border-border bg-surface-muted p-1">
{ranges.map((range) => (
<button
key={range.value}
className={`min-h-8 rounded-lg px-3 text-xs font-semibold transition ${
value === range.value
? "bg-surface text-foreground shadow-sm"
: "text-muted hover:text-foreground"
}`}
onClick={() => onChange(range.value)}
type="button"
aria-pressed={value === range.value}
>
{range.label}
</button>
))}
</div>
);
}