{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "progress",
  "type": "registry:ui",
  "title": "Progress",
  "description": "Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.",
  "author": "Ahdeetai <https://aditya.is-cool.dev>",
  "registryDependencies": [],
  "dependencies": ["@radix-ui/react-progress", "clsx", "tailwind-merge"],
  "files": [
    {
      "type": "registry:ui",
      "path": "components/ui/progress.tsx",
      "content": "'use client';\n\nimport * as React from 'react';\nimport * as ProgressPrimitive from '@radix-ui/react-progress';\nimport { cn } from '@/lib/utils';\n\ninterface ProgressProps extends React.ComponentProps<\n  typeof ProgressPrimitive.Root\n> {\n  variant?: 'default' | 'slim' | 'outline-solid';\n  indicatorClassName?: string;\n  indicatorStyle?: React.CSSProperties;\n}\n\nfunction Progress({\n  className,\n  value,\n  variant = 'default',\n  indicatorClassName,\n  indicatorStyle,\n  ...props\n}: ProgressProps) {\n  const isSlim = variant === 'slim';\n  const isOutline = variant === 'outline-solid';\n\n  return (\n    <ProgressPrimitive.Root\n      data-slot='progress'\n      className={cn(\n        'bg-primary/20 relative w-full overflow-hidden rounded-full border h-3',\n        isSlim && 'bg-background border-black dark:border-white',\n        isOutline &&\n          'bg-primary/20 relative w-full overflow-hidden rounded-full border h-3 border-black dark:border-white',\n        className,\n      )}\n      {...props}\n    >\n      <ProgressPrimitive.Indicator\n        data-slot='progress-indicator'\n        className={cn(\n          'bg-primary transition-all',\n          isSlim\n            ? 'absolute top-1/2 -translate-y-1/2 h-[60%] rounded-full'\n            : 'h-full',\n          indicatorClassName,\n        )}\n        style={\n          isSlim\n            ? {\n                left: '4px',\n                width: `calc(${value || 0}% - 8px)`,\n                ...indicatorStyle,\n              }\n            : { width: `${value || 0}%`, ...indicatorStyle }\n        }\n      />\n    </ProgressPrimitive.Root>\n  );\n}\n\nexport { Progress };\n"
    },
    {
      "type": "registry:lib",
      "path": "lib/utils.ts",
      "content": "import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}"
    }
  ]
}
