{"version":3,"file":"progress-root.cjs","sources":["../../../components/progress/progress-root.tsx"],"sourcesContent":["'use client';\n\nimport { Progress as ProgressPrimitive } from '@base-ui/react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type CSSProperties, createContext } from 'react';\nimport styles from './progress.module.css';\nimport { ProgressTrack } from './progress-track';\n\nconst progress = cva(styles.progress, {\n  variants: {\n    variant: {\n      linear: '',\n      circular: styles['progress-variant-circular']\n    }\n  },\n  defaultVariants: {\n    variant: 'linear'\n  }\n});\n\nexport interface ProgressProps\n  extends ProgressPrimitive.Root.Props,\n    VariantProps<typeof progress> {}\n\nexport interface ProgressContextValue {\n  variant: 'linear' | 'circular';\n  value: number | null;\n  percentage: number;\n}\n\nexport const ProgressContext = createContext<ProgressContextValue>({\n  variant: 'linear',\n  value: 0,\n  percentage: 0\n});\n\nexport function ProgressRoot({\n  className,\n  style = {},\n  variant = 'linear',\n  children = <ProgressTrack />,\n  value = 0,\n  min = 0,\n  max = 100,\n  ...props\n}: ProgressProps) {\n  const percentage = value === null ? 0 : ((value - min) * 100) / (max - min);\n\n  return (\n    <ProgressContext\n      value={{ variant: variant ?? 'linear', value, percentage }}\n    >\n      <ProgressPrimitive.Root\n        className={progress({ variant, className })}\n        style={\n          {\n            ...style,\n            '--rs-progress-percentage': percentage\n          } as CSSProperties\n        }\n        value={value}\n        min={min}\n        max={max}\n        data-slot='progress'\n        {...props}\n      >\n        {children}\n      </ProgressPrimitive.Root>\n    </ProgressContext>\n  );\n}\n\nProgressRoot.displayName = 'Progress';\n"],"names":[],"mappings":";;;;;;;;;;AAQA;AACE;AACE;AACE;AACA;AACD;AACF;AACD;AACE;AACD;AACF;AAYM;AACL;AACA;AACA;AACD;AAEe;;AAYd;AAQU;AACA;;AAaZ;AAEA;;;"}