{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"application-application-stats-with-description","type":"registry:block","title":"With Description","files":[{"path":"components/blocks/application/application-stats/with-description.tsx","content":"import { Card, CardContent } from \"@/components/ui/card\";\nimport { ArrowDown, ArrowUp } from \"lucide-react\";\n\nexport default function WithDescription() {\n  return (\n    <div className=\"container mx-auto px-4 py-10 md:px-6 2xl:max-w-[1400px]\">\n      <div className=\"grid gap-4 sm:grid-cols-2 sm:gap-6 lg:grid-cols-4\">\n        {/* Card */}\n        <Card className=\"pt-0\">\n          <CardContent className=\"pt-6\">\n            <div className=\"flex flex-col gap-1\">\n              <p className=\"text-muted-foreground text-xs tracking-wide uppercase\">\n                Revenue\n              </p>\n              <div className=\"flex items-center gap-2\">\n                <h3 className=\"text-xl font-medium sm:text-2xl\">$45,231.89</h3>\n                <span className=\"flex items-center gap-0.5 text-green-700 dark:text-green-400\">\n                  <ArrowUp className=\"h-4 w-4\" />\n                  <span className=\"text-sm\">20.1%</span>\n                </span>\n              </div>\n              <p className=\"text-muted-foreground text-sm\">\n                +20.1% from last month\n              </p>\n            </div>\n          </CardContent>\n        </Card>\n\n        {/* Card */}\n        <Card className=\"pt-0\">\n          <CardContent className=\"pt-6\">\n            <div className=\"flex flex-col gap-1\">\n              <p className=\"text-muted-foreground text-xs tracking-wide uppercase\">\n                Subscriptions\n              </p>\n              <div className=\"flex items-center gap-2\">\n                <h3 className=\"text-xl font-medium sm:text-2xl\">+2350</h3>\n                <span className=\"flex items-center gap-0.5 text-green-700 dark:text-green-400\">\n                  <ArrowUp className=\"h-4 w-4\" />\n                  <span className=\"text-sm\">10.3%</span>\n                </span>\n              </div>\n              <p className=\"text-muted-foreground text-sm\">\n                +180.1% from last month\n              </p>\n            </div>\n          </CardContent>\n        </Card>\n\n        {/* Card */}\n        <Card className=\"pt-0\">\n          <CardContent className=\"pt-6\">\n            <div className=\"flex flex-col gap-1\">\n              <p className=\"text-muted-foreground text-xs tracking-wide uppercase\">\n                Churn Rate\n              </p>\n              <div className=\"flex items-center gap-2\">\n                <h3 className=\"text-xl font-medium sm:text-2xl\">-0.5%</h3>\n                <span className=\"flex items-center gap-0.5 text-red-700 dark:text-red-400\">\n                  <ArrowDown className=\"h-4 w-4\" />\n                  <span className=\"text-sm\">4.5%</span>\n                </span>\n              </div>\n              <p className=\"text-muted-foreground text-sm\">\n                +4.5% from last month\n              </p>\n            </div>\n          </CardContent>\n        </Card>\n\n        {/* Card */}\n        <Card className=\"pt-0\">\n          <CardContent className=\"pt-6\">\n            <div className=\"flex flex-col gap-1\">\n              <p className=\"text-muted-foreground text-xs tracking-wide uppercase\">\n                Active Users\n              </p>\n              <div className=\"flex items-center gap-2\">\n                <h3 className=\"text-xl font-medium sm:text-2xl\">+573</h3>\n                <span className=\"flex items-center gap-0.5 text-green-700 dark:text-green-400\">\n                  <ArrowUp className=\"h-4 w-4\" />\n                  <span className=\"text-sm\">12.5%</span>\n                </span>\n              </div>\n              <p className=\"text-muted-foreground text-sm\">\n                +12.5% from last week\n              </p>\n            </div>\n          </CardContent>\n        </Card>\n      </div>\n    </div>\n  );\n}\n","type":"registry:component","target":"components/blocks/application/application-stats/with-description.tsx"},{"path":"components/ui/card.tsx","content":"import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({\n  className,\n  size = \"default\",\n  ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n  return (\n    <div\n      data-slot=\"card\"\n      data-size={size}\n      className={cn(\n        \"group/card flex flex-col gap-6 overflow-hidden rounded-xl bg-card py-6 text-sm text-card-foreground shadow-xs ring-1 ring-foreground/10 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-header\"\n      className={cn(\n        \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-title\"\n      className={cn(\n        \"font-heading text-base leading-normal font-medium group-data-[size=sm]/card:text-sm\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-description\"\n      className={cn(\"text-sm text-muted-foreground\", className)}\n      {...props}\n    />\n  )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-action\"\n      className={cn(\n        \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-content\"\n      className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n      {...props}\n    />\n  )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-footer\"\n      className={cn(\n        \"flex items-center rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nexport {\n  Card,\n  CardHeader,\n  CardFooter,\n  CardTitle,\n  CardAction,\n  CardDescription,\n  CardContent,\n}\n","type":"registry:ui","target":"components/ui/card.tsx"}],"description":"Stat cards that place a short line of context under each number. Use when a raw figure needs explanation, like a comparison to the prior month.","dependencies":["lucide-react"]}