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