{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "primitives-radix-progress",
  "title": "Radix Progress",
  "description": "Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.",
  "dependencies": [
    "motion",
    "radix-ui"
  ],
  "registryDependencies": [
    "@odysseyui/lib-get-strict-context"
  ],
  "files": [
    {
      "path": "registry/primitives/radix/progress/index.tsx",
      "content": "'use client';\n\nimport * as React from 'react';\nimport { Progress as ProgressPrimitive } from 'radix-ui';\nimport { motion } from 'motion/react';\n\nimport { getStrictContext } from '@/lib/get-strict-context';\n\ntype ProgressContextType = {\n  value: number;\n};\n\nconst [ProgressProvider, useProgress] =\n  getStrictContext<ProgressContextType>('ProgressContext');\n\ntype ProgressProps = React.ComponentProps<typeof ProgressPrimitive.Root>;\n\nfunction Progress(props: ProgressProps) {\n  return (\n    <ProgressProvider value={{ value: props.value ?? 0 }}>\n      <ProgressPrimitive.Root data-slot=\"progress\" {...props} />\n    </ProgressProvider>\n  );\n}\n\nconst MotionProgressIndicator = motion.create(ProgressPrimitive.Indicator);\n\ntype ProgressIndicatorProps = React.ComponentProps<\n  typeof MotionProgressIndicator\n>;\n\nfunction ProgressIndicator({\n  transition = { type: 'spring', stiffness: 100, damping: 30 },\n  ...props\n}: ProgressIndicatorProps) {\n  const { value } = useProgress();\n\n  return (\n    <MotionProgressIndicator\n      data-slot=\"progress-indicator\"\n      animate={{ x: `-${100 - (value || 0)}%` }}\n      transition={transition}\n      {...props}\n    />\n  );\n}\n\nexport {\n  Progress,\n  ProgressIndicator,\n  useProgress,\n  type ProgressProps,\n  type ProgressIndicatorProps,\n  type ProgressContextType,\n};\n",
      "type": "registry:ui",
      "target": "components/odysseyui/primitives/radix/progress.tsx"
    }
  ],
  "type": "registry:ui"
}