{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "progress",
  "title": "Progress",
  "description": "An accessible inset progress track with a primary fill.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "@neumorphism-ui/utils"
  ],
  "files": [
    {
      "path": "src/components/ui/progress.tsx",
      "content": "\"use client\";\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\";\n\nimport { mergeClassName } from \"@/lib/utils\";\n\nfunction Progress({\n  className,\n  value,\n  min = 0,\n  max = 100,\n  ...props\n}: ProgressPrimitive.Root.Props) {\n  const normalizedMin =\n    typeof min === \"number\" && Number.isFinite(min) ? min : 0;\n  const normalizedMax =\n    typeof max === \"number\" && Number.isFinite(max) && max > normalizedMin\n      ? max\n      : Math.max(normalizedMin + 100, 100);\n  const normalizedValue =\n    typeof value === \"number\" && Number.isFinite(value)\n      ? Math.min(Math.max(value, normalizedMin), normalizedMax)\n      : null;\n\n  return (\n    <ProgressPrimitive.Root\n      data-slot=\"progress\"\n      value={normalizedValue}\n      min={normalizedMin}\n      max={normalizedMax}\n      className={mergeClassName<ProgressPrimitive.Root.State>(\n        \"group/progress relative h-3 w-full overflow-hidden rounded-[var(--neu-radius-control)] border border-[color:var(--neu-edge)] bg-[var(--neu-surface)] [box-shadow:var(--neu-shadow-inset)]\",\n        className,\n      )}\n      {...props}\n    >\n      <ProgressPrimitive.Track\n        data-slot=\"progress-track\"\n        className=\"relative h-full w-full rounded-[inherit]\"\n      >\n        <ProgressPrimitive.Indicator\n          data-slot=\"progress-indicator\"\n          className=\"h-full rounded-[inherit] bg-[var(--primary)] [box-shadow:none] transition-[width] duration-[var(--neu-duration)] motion-reduce:transition-none ease-out group-data-[indeterminate]/progress:w-1/3 group-data-[indeterminate]/progress:animate-pulse motion-reduce:animate-none\"\n        />\n      </ProgressPrimitive.Track>\n    </ProgressPrimitive.Root>\n  );\n}\n\nexport { Progress };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}