Internes Project-Management-Tool für ToolCTRL — ergänzend zu Plane (Tickets) und Outline (Doku). Umfasst Puls-Übersicht, Tagesrhythmus (Lock-in + Reflexion), Bereichs-Detail-Views (Entwicklung/Vertrieb/Marketing), Pflicht-Minimum-Check und Blocker-Lifecycle gemäß Projektmanagement-Leitfaden v3.0. Stack: pnpm-Monorepo · Vite + React 18 + Tailwind · Fastify + tRPC v11 + Drizzle ORM · Postgres 16 · Authentik OIDC (Phase 2, Dev-Auto-Login aktiv). Planungs-Artefakte unter _bmad-output/planning-artifacts/. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
34 lines
937 B
TypeScript
34 lines
937 B
TypeScript
import { clsx } from 'clsx';
|
|
import type { HTMLAttributes } from 'react';
|
|
|
|
function Root({ className, ...rest }: HTMLAttributes<HTMLDivElement>) {
|
|
return (
|
|
<div
|
|
className={clsx(
|
|
'bg-[var(--color-surface)] border border-[var(--color-border)] rounded-[var(--radius-lg)] shadow-[var(--shadow-sm)]',
|
|
className,
|
|
)}
|
|
{...rest}
|
|
/>
|
|
);
|
|
}
|
|
|
|
function Header({ className, ...rest }: HTMLAttributes<HTMLDivElement>) {
|
|
return <div className={clsx('px-6 pt-6 pb-3', className)} {...rest} />;
|
|
}
|
|
|
|
function Body({ className, ...rest }: HTMLAttributes<HTMLDivElement>) {
|
|
return <div className={clsx('px-6 py-3', className)} {...rest} />;
|
|
}
|
|
|
|
function Footer({ className, ...rest }: HTMLAttributes<HTMLDivElement>) {
|
|
return (
|
|
<div
|
|
className={clsx('px-6 pt-3 pb-6 border-t border-[var(--color-border)]', className)}
|
|
{...rest}
|
|
/>
|
|
);
|
|
}
|
|
|
|
export const Card = { Root, Header, Body, Footer };
|