feat: mejoras componentes UI — card variants, kpi_card slots, sparkline colors, bar_chart horizontal radius

- card: variantes default/borderless/ghost con ring condicional
- kpi_card: props unit, action, chart y delta con label/suffix personalizable
- sparkline: prop colors para colores por barra en variant bar
- bar_chart: radius condicional según orientación horizontal/vertical

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-02 15:32:35 +02:00
parent 1aaeec5090
commit aea2131dcb
8 changed files with 125 additions and 32 deletions
+9 -2
View File
@@ -1,17 +1,24 @@
import * as React from "react"
import { cn } from "../core/cn"
type CardVariant = "default" | "borderless" | "ghost"
function Card({
className,
size = "default",
variant = "default",
...props
}: React.ComponentProps<"div"> & { size?: "default" | "sm" }) {
}: React.ComponentProps<"div"> & { size?: "default" | "sm"; variant?: CardVariant }) {
return (
<div
data-slot="card"
data-size={size}
data-variant={variant}
className={cn(
"group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
"group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
variant === "default" && "ring-1 ring-foreground/10",
variant === "borderless" && "ring-0 shadow-none",
variant === "ghost" && "ring-0 shadow-none bg-transparent",
className
)}
{...props}