feat: add boards and tasks management endpoints

This commit is contained in:
Abhimanyu Saharan
2026-02-04 02:28:51 +05:30
parent 23faa0865b
commit 1abc8f68f3
170 changed files with 6860 additions and 10706 deletions

View File

@@ -0,0 +1,17 @@
export function BrandMark() {
return (
<div className="flex items-center gap-3">
<div className="grid h-10 w-10 place-items-center rounded-lg border-2 border-gray-200 bg-white text-sm font-bold text-gray-900 shadow-lush">
<span className="font-heading tracking-[0.2em]">
OC
</span>
</div>
<div className="leading-tight">
<div className="font-heading text-sm uppercase tracking-[0.28em] text-gray-600">
OpenClaw
</div>
<div className="text-[11px] font-medium text-gray-500">Mission Control</div>
</div>
</div>
);
}

View File

@@ -0,0 +1,9 @@
import type { ReactNode } from "react";
export function HeroKicker({ children }: { children: ReactNode }) {
return (
<span className="inline-flex items-center rounded-full bg-gray-100 px-4 py-1 text-[11px] font-semibold uppercase tracking-[0.35em] text-gray-600">
{children}
</span>
);
}

View File

@@ -0,0 +1,21 @@
import { Badge } from "@/components/ui/badge";
const STATUS_STYLES: Record<string, "default" | "outline" | "ember"> = {
inbox: "outline",
assigned: "default",
in_progress: "ember",
testing: "outline",
review: "default",
done: "default",
online: "default",
busy: "ember",
offline: "outline",
};
export function StatusPill({ status }: { status: string }) {
return (
<Badge variant={STATUS_STYLES[status] ?? "default"}>
{status.replace("_", " ")}
</Badge>
);
}