{"version":3,"file":"Slider.cjs","sources":["../../../../src/components/forms/slider/Slider.tsx"],"sourcesContent":["import { Field } from '@base-ui/react/field'\r\nimport { Slider as BaseSlider } from '@base-ui/react/slider'\r\nimport { memo, type FC, useId } from 'react'\r\n\r\nimport SliderHeader from '@components/forms/slider/components/slider-header/SliderHeader.tsx'\r\nimport SliderTrack from '@components/forms/slider/components/slider-track/SliderTrack.tsx'\r\nimport { SLIDER_STYLES } from '@components/forms/slider/styles/Slider.css.ts'\r\nimport type { SliderProps } from '@components/forms/slider/types'\r\nimport { cn } from '@utils/cn.ts'\r\n\r\n/**\r\n * Range input backed by Base UI Slider with a visible label, helper/error\r\n * text, and design-token `size` and `color` props. Supports both single-value\r\n * and multi-thumb range mode (pass an array for `value`/`defaultValue`).\r\n */\r\nexport const Slider: FC<SliderProps> = memo(({\r\n    label,\r\n    showValue = false,\r\n    helperText,\r\n    error,\r\n    width = '100%',\r\n    size = 'md',\r\n    color = 'primary',\r\n    className,\r\n    ref,\r\n    value,\r\n    defaultValue,\r\n    ...props\r\n}) => {\r\n    const descriptionId = useId()\r\n    const labelId = useId()\r\n    const hasDescription = Boolean(error || helperText)\r\n    const range = Array.isArray(value ?? defaultValue)\r\n\r\n    return (\r\n        <Field.Root invalid={Boolean(error)}>\r\n            <BaseSlider.Root\r\n                ref={ref}\r\n                className={cn(SLIDER_STYLES.root, className)}\r\n                style={{ width }}\r\n                aria-labelledby={label ? labelId : undefined}\r\n                aria-describedby={hasDescription ? descriptionId : undefined}\r\n                value={value}\r\n                defaultValue={defaultValue}\r\n                {...props}\r\n            >\r\n                <SliderHeader\r\n                    label={label}\r\n                    labelId={labelId}\r\n                    showValue={showValue}\r\n                />\r\n                <SliderTrack\r\n                    range={range}\r\n                    size={size}\r\n                    color={color}\r\n                    error={error}\r\n                    descriptionId={hasDescription ? descriptionId : undefined}\r\n                />\r\n                {hasDescription && (\r\n                    <span\r\n                        id={descriptionId}\r\n                        className={error ? SLIDER_STYLES.error : SLIDER_STYLES.helper}\r\n                    >\r\n                        {error ?? helperText}\r\n                    </span>\r\n                )}\r\n            </BaseSlider.Root>\r\n        </Field.Root>\r\n    )\r\n})\r\n\r\nSlider.displayName = 'Slider'\r\n\r\nexport default Slider\r\n"],"names":["Slider","memo","label","showValue","helperText","error","width","size","color","className","ref","value","defaultValue","props","descriptionId","useId","labelId","hasDescription","range","Field","jsxs","BaseSlider","cn","SLIDER_STYLES","jsx","SliderHeader","SliderTrack"],"mappings":"iaAeaA,EAA0BC,EAAAA,KAAK,CAAC,CACzC,MAAAC,EACA,UAAAC,EAAY,GACZ,WAAAC,EACA,MAAAC,EACA,MAAAC,EAAQ,OACR,KAAAC,EAAO,KACP,MAAAC,EAAQ,UACR,UAAAC,EACA,IAAAC,EACA,MAAAC,EACA,aAAAC,EACA,GAAGC,CACP,IAAM,CACF,MAAMC,EAAgBC,EAAAA,MAAA,EAChBC,EAAUD,EAAAA,MAAA,EACVE,EAAiB,GAAQZ,GAASD,GAClCc,EAAQ,MAAM,QAAQP,GAASC,CAAY,EAEjD,aACKO,EAAAA,MAAM,KAAN,CAAW,QAAS,EAAQd,EACzB,SAAAe,EAAAA,KAACC,EAAAA,OAAW,KAAX,CACG,IAAAX,EACA,UAAWY,EAAAA,GAAGC,gBAAc,KAAMd,CAAS,EAC3C,MAAO,CAAE,MAAAH,CAAA,EACT,kBAAiBJ,EAAQc,EAAU,OACnC,mBAAkBC,EAAiBH,EAAgB,OACnD,MAAAH,EACA,aAAAC,EACC,GAAGC,EAEJ,SAAA,CAAAW,EAAAA,IAACC,EAAA,CACG,MAAAvB,EACA,QAAAc,EACA,UAAAb,CAAA,CAAA,EAEJqB,EAAAA,IAACE,EAAA,CACG,MAAAR,EACA,KAAAX,EACA,MAAAC,EACA,MAAAH,EACA,cAAeY,EAAiBH,EAAgB,MAAA,CAAA,EAEnDG,GACGO,EAAAA,IAAC,OAAA,CACG,GAAIV,EACJ,UAAWT,EAAQkB,EAAAA,cAAc,MAAQA,EAAAA,cAAc,OAEtD,SAAAlB,GAASD,CAAA,CAAA,CACd,CAAA,CAAA,EAGZ,CAER,CAAC,EAEDJ,EAAO,YAAc"}