Data list
blacksite/data-listFreeComponent
Compact list of label/value rows with optional status badges.
Install it
npx shadcn@latest add https://blacksite.sh/r/data-list.jsonSource
1import * as React from "react";23import { cn } from "@/lib/utils";4import { StatusBadge, type StatusBadgeProps } from "@/registry/blacksite/ui/status-badge";56export interface DataListItem {7 id: string;8 label: React.ReactNode;9 value?: React.ReactNode;10 status?: StatusBadgeProps["status"];11 statusLabel?: string;12}1314interface DataListProps extends React.HTMLAttributes<HTMLDivElement> {15 items: DataListItem[];16 /** Compact rows are 24px, default rows are 28px. */17 density?: "default" | "compact";18 /** Right-align values (typical for KPIs). */19 alignValues?: "left" | "right";20}2122const DataList = React.memo(23 React.forwardRef<HTMLDivElement, DataListProps>(24 ({ className, items, density = "default", alignValues = "right", ...props }, ref) => {25 return (26 <div27 ref={ref}28 className={cn("divide-border/60 flex flex-col divide-y", className)}29 {...props}30 >31 {items.map((item) => (32 <div33 key={item.id}34 className={cn(35 "flex items-center gap-2",36 density === "compact" ? "h-6 text-[11px]" : "h-7 text-xs",37 )}38 >39 <span className="text-foreground-muted flex-1 truncate">{item.label}</span>40 <div41 className={cn(42 "flex shrink-0 items-center gap-2",43 alignValues === "right" ? "justify-end" : "justify-start",44 )}45 >46 {item.value !== undefined && (47 <span className="text-foreground text-mono">{item.value}</span>48 )}49 {item.status && <StatusBadge status={item.status}>{item.statusLabel}</StatusBadge>}50 </div>51 </div>52 ))}53 </div>54 );55 },56 ),57);58DataList.displayName = "DataList";5960export { DataList };
More from blacksite
All 25 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| App headerapp-header | blacksite | Components | Free | no deps | |
| Badgebadge | blacksite | Components | Free | no deps | |
| Bar chartbar-chart | blacksite | Components | Free | no deps | |
| Buttonbutton | blacksite | Components | Free | no deps | |
| Cardcard | blacksite | Components | Free | no deps | |
| Chart tooltipchart-tooltip | blacksite | Components | Free | no deps | |
| Gantt timelinegantt-timeline | blacksite | Components | Free | no deps | |
| Inputinput | blacksite | Components | Free | no deps |
