{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "progress",
  "title": "Progress",
  "description": "Three pixels of track and a light in it. Pass `indeterminate` for a segment that sweeps and leaves.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "@afterglow/theme"
  ],
  "files": [
    {
      "path": "registry/terminal/ui/progress.tsx",
      "content": "\"use client\";\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Progress({\n  className,\n  value,\n  indeterminate = false,\n  cells,\n  ...props\n}: Omit<ProgressPrimitive.Root.Props, \"value\"> & {\n  value?: number | null;\n  indeterminate?: boolean;\n  cells?: number;\n}) {\n  return (\n    <ProgressPrimitive.Root\n      className={cn(\"w-full\", className)}\n      data-slot=\"progress\"\n      value={indeterminate ? null : (value ?? null)}\n      {...props}\n    >\n      <ProgressPrimitive.Track\n        className={cn(\n          \"relative w-full overflow-hidden rounded-none bg-phosphor/10\",\n          cells ? \"h-2\" : \"h-[3px]\"\n        )}\n        data-slot=\"progress-track\"\n        // The blocks are cut out of the track rather than laid over it, so the\n        // fill underneath stays one continuous bar. Only the mask decides where\n        // the gaps fall, which is why the sweep survives being segmented.\n        style={\n          cells\n            ? {\n                maskImage: `repeating-linear-gradient(to right, #000 0 calc(100% / ${cells} - 2px), transparent calc(100% / ${cells} - 2px) calc(100% / ${cells}))`,\n              }\n            : undefined\n        }\n      >\n        {indeterminate ? (\n          <div\n            className=\"absolute inset-y-0 left-0 w-1/3 animate-sweep bg-[linear-gradient(90deg,transparent,var(--phosphor)_35%_65%,transparent)] shadow-glow-progress\"\n            data-slot=\"progress-indicator\"\n          />\n        ) : (\n          <ProgressPrimitive.Indicator\n            className=\"h-full bg-phosphor shadow-glow-progress transition-all duration-300 ease-terminal\"\n            data-slot=\"progress-indicator\"\n          />\n        )}\n      </ProgressPrimitive.Track>\n    </ProgressPrimitive.Root>\n  );\n}\n\nexport { Progress };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}