{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "progress",
  "title": "Progress",
  "author": "SAASTRO <https://saastro.io>",
  "description": "Barra de avance sobre Base UI. `value={null}` es indeterminado.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/ui/progress.tsx",
      "content": "\"use client\";\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\";\n\nimport { cn } from \"@/lib/utils\";\n\n/**\n * `value={null}` es indeterminado en Base UI —no existe el modo aparte de\n * Radix—: la barra se pinta a rayas y no se mueve sola, que es lo honrado\n * cuando no se sabe cuánto falta.\n */\nfunction Progress({\n  className,\n  children,\n  ...props\n}: ProgressPrimitive.Root.Props) {\n  return (\n    <ProgressPrimitive.Root\n      data-slot=\"progress\"\n      className={cn(\"flex w-full flex-col gap-1.5\", className)}\n      {...props}\n    >\n      {children}\n      <ProgressPrimitive.Track\n        data-slot=\"progress-track\"\n        className=\"relative h-1.5 w-full overflow-hidden rounded-full bg-muted\"\n      >\n        <ProgressPrimitive.Indicator\n          data-slot=\"progress-indicator\"\n          className=\"h-full bg-primary transition-all duration-300 ease-out data-[indeterminate]:w-full data-[indeterminate]:bg-transparent data-[indeterminate]:bg-[repeating-linear-gradient(45deg,var(--primary)_0_5px,transparent_5px_10px)] data-[indeterminate]:opacity-30\"\n        />\n      </ProgressPrimitive.Track>\n    </ProgressPrimitive.Root>\n  );\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n  return (\n    <ProgressPrimitive.Label\n      data-slot=\"progress-label\"\n      className={cn(\"text-sm font-medium\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n  return (\n    <ProgressPrimitive.Value\n      data-slot=\"progress-value\"\n      className={cn(\"text-sm tabular-nums text-muted-foreground\", className)}\n      {...props}\n    />\n  );\n}\n\nexport { Progress, ProgressLabel, ProgressValue };\n",
      "type": "registry:ui",
      "target": "@ui/progress.tsx"
    }
  ],
  "meta": {
    "group": "Display",
    "iframeHeight": "240px"
  },
  "docs": "Primitivo sobre Base UI. En Base UI se compone con `render={<a/>}`, no con `asChild`. OJO: `render` NO funciona dentro de un fichero .astro. OJO al SSR: `ProgressValue` formatea con `Intl`, así que **pasa `locale` explícito** — si no, el servidor (Node, en-US) escribe «64%», un navegador es-ES pinta «64 %» y React tira la hidratación con el error #418.",
  "categories": [
    "ui",
    "display"
  ],
  "type": "registry:ui"
}