{ "$schema": "https://blode.co/ui/schema/registry-item.json", "name": "circular-progress", "title": "Circular Progress", "author": "Matthew Blode", "description": "A circular indicator that shows the progress of a task.", "files": [ { "path": "ui/circular-progress.tsx", "content": "\"use client\";\n\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface CircularProgressProps extends React.ComponentProps<\"div\"> {\n hideText?: boolean;\n strokeWidth?: number;\n value: number;\n}\n\nconst CircularProgress = ({\n value,\n strokeWidth = 4,\n className,\n hideText,\n ...props\n}: CircularProgressProps) => {\n const percentage = Math.min(Math.max(value, 0), 100);\n const radius = 16;\n const circumference = 2 * Math.PI * radius;\n const strokeDashoffset = circumference - (percentage / 100) * circumference;\n\n return (\n