usage-meter-04
dashboardblocks/usage-meter-04FreeComponent
dashboardblocks publishes no description for this item.
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/usage-meter-04.jsonSource
1'use client'23import { AnimatedNumber } from '@/registry/components/dashboardblocks/animated-number'4import { Icon } from '@/registry/components/dashboardblocks/icon'5import { ProgressBar } from '@/registry/components/dashboardblocks/progress-bar'6import { Trend } from '@/registry/components/dashboardblocks/trend'7import { UsageMeterValue } from '@/registry/components/dashboardblocks/usage-meter'8import { Coins } from 'lucide-react'910import { Card, CardContent, CardTitle } from '@/components/ui/card'1112interface UsageMeter4Props {13 remaining: number14 title: string15 total: number16 trend: number17}1819const exampleProps: UsageMeter4Props = {20 remaining: 45750,21 title: 'Credits Remaining',22 total: 100000,23 trend: -1250,24}2526const UsageMeter4 = (props: UsageMeter4Props) => {27 const { remaining, title, total, trend } = props28 const used = total - remaining29 const percentage = (used / total) * 10030 const daysRemaining = Math.round(remaining / Math.abs(trend))3132 return (33 <Card>34 <CardContent className='space-y-3'>35 <div className='flex items-center justify-between'>36 <div className='flex items-center gap-2'>37 <Icon icon={Coins} size='sm' />38 <CardTitle>{title}</CardTitle>39 </div>40 <Trend41 trend={trend}42 formatter={(value) => `${value > 0 ? '+' : ''}${value.toLocaleString()}/day`}43 />44 </div>45 <div>46 <UsageMeterValue>47 <AnimatedNumber48 value={remaining}49 formatter={(value) => value.toLocaleString()}50 />51 </UsageMeterValue>52 <ProgressBar percentage={100 - percentage} fillClassName='bg-emerald-500' />53 </div>54 <div className='flex items-center justify-between text-sm text-muted-foreground'>55 <span>56 <AnimatedNumber value={used} formatter={(value) => value.toLocaleString()} />{' '}57 used58 </span>59 <span>~{daysRemaining} days remaining</span>60 </div>61 </CardContent>62 </Card>63 )64}6566export { UsageMeter4, exampleProps as usageMeter4ExampleProps, type UsageMeter4Props }
What it pulls in
Other registry items
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 |
