Initialize git, add Apache-2.0 LICENSE, .gitattributes (LF line endings), AGENTS.md (entry points, stack, discovery order, baseline checks), RUNBOOK.md (dev boot, prod deploy with overlay, ingestion, failures, rollback, scaling notes), .env.prod.example with rotated credential placeholders, and dev-only warnings on .env.example. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import * as React from "react";
|
|
import { cn } from "@/lib/utils";
|
|
|
|
export const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<div ref={ref} className={cn("panel", className)} {...props} />
|
|
)
|
|
);
|
|
Card.displayName = "Card";
|
|
|
|
export const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<div ref={ref} className={cn("flex flex-col gap-1 p-5", className)} {...props} />
|
|
)
|
|
);
|
|
CardHeader.displayName = "CardHeader";
|
|
|
|
export const CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
className={cn("text-base font-semibold tracking-tight text-foreground", className)}
|
|
{...props}
|
|
/>
|
|
)
|
|
);
|
|
CardTitle.displayName = "CardTitle";
|
|
|
|
export const CardDescription = React.forwardRef<
|
|
HTMLParagraphElement,
|
|
React.HTMLAttributes<HTMLParagraphElement>
|
|
>(({ className, ...props }, ref) => (
|
|
<p ref={ref} className={cn("text-sm text-muted-foreground", className)} {...props} />
|
|
));
|
|
CardDescription.displayName = "CardDescription";
|
|
|
|
export const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<div ref={ref} className={cn("px-5 pb-5", className)} {...props} />
|
|
)
|
|
);
|
|
CardContent.displayName = "CardContent";
|
|
|
|
export const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
className={cn("flex items-center justify-between gap-2 border-t border-border/60 px-5 py-3", className)}
|
|
{...props}
|
|
/>
|
|
)
|
|
);
|
|
CardFooter.displayName = "CardFooter";
|