Chart
dashboardblocks/chartFreeComponent
Chart components.
Live preview
live · rendered by the registry
Rendered by dashboardblocks on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://dashboardblocks.com/r/chart.jsonSource
1'use client'23import {4 Area,5 AreaChart,6 AreaProps,7 Bar,8 BarChart,9 BarProps,10 Line,11 LineChart,12 LineProps,13 ResponsiveContainer,14 Tooltip,15 TooltipContentProps,16} from 'recharts'17import { NameType, ValueType } from 'recharts/types/component/DefaultTooltipContent'1819export type ValueFormatter = (value: number) => string2021const ChartTooltipContent = ({22 payload,23 formatter,24 valueFormatter,25}: TooltipContentProps<ValueType, NameType> & { valueFormatter?: ValueFormatter }) => {26 if (!payload || payload.length === 0) return null2728 return (29 <div className='border-border/50 bg-background grid min-w-32 items-start gap-1.5 rounded-md border px-2.5 py-1.5 text-xs shadow-xl'>30 <span className='font-medium'>{payload?.[0].payload.label}</span>3132 {payload.map((item, index) => {33 const itemColor =34 (item.color as string | undefined) ??35 (item.fill as string | undefined) ??36 'var(--color-foreground)'3738 return (39 <div40 key={41 typeof item.dataKey === 'string' || typeof item.dataKey === 'number'42 ? item.dataKey43 : index44 }45 className='flex items-center gap-1'46 >47 <div48 className='h-2.5 w-2.5 shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)'49 style={50 {51 '--color-bg': itemColor,52 '--color-border': itemColor,53 } as React.CSSProperties54 }55 />56 {valueFormatter57 ? valueFormatter(Number(item.value))58 : formatter59 ? formatter(item.value, item.name, item, index, payload)60 : item.value}61 </div>62 )63 })}64 </div>65 )66}6768export interface TinyBarChartProps {69 bars: BarProps[]70 className?: string71 data: unknown[]72 formatter?: ValueFormatter73 height?: number74}7576export const TinyBarChart = ({77 bars,78 className = '',79 data,80 formatter,81 height = 180,82}: TinyBarChartProps) => {83 const safeData = Array.isArray(data) ? data : []84 const resolvedBars = Array.isArray(bars) && bars.length > 0 ? bars : []8586 return (87 <div className={`w-full ${className}`} style={{ height }}>88 <ResponsiveContainer width='100%' height='100%'>89 <BarChart data={safeData}>90 <Tooltip91 content={(props) => (92 <ChartTooltipContent {...props} valueFormatter={formatter} />93// … truncated
What it pulls in
npm packages
Files it writes
More from dashboardblocks
All 36 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Activity Feedactivity-feed | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-01activity-feed-01 | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-02activity-feed-02 | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-03activity-feed-03 | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-04activity-feed-04 | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-05activity-feed-05 | dashboardblocks | Components | Free | 1 dep | |
| Animated Numberanimated-number | dashboardblocks | Components | Free | no deps | |
| Animated Waveanimated-wave | dashboardblocks | Components | Free | no deps |
