{ "version": 3, "sources": ["../../../../../src/lib/ui/components/primitives/Slider.tsx"], "sourcesContent": ["import { Range, Root, Thumb, Track } from '@radix-ui/react-slider'\nimport { useEditor } from '@tldraw/editor'\nimport { memo, useCallback } from 'react'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\n\n/** @internal */\nexport interface SliderProps {\n\tsteps: number\n\tvalue: number | null\n\tlabel: string\n\ttitle: string\n\tonValueChange: (value: number, emphemeral: boolean) => void\n\t'data-testid'?: string\n}\n\n/** @internal */\nexport const Slider = memo(function Slider(props: SliderProps) {\n\tconst { title, steps, value, label, onValueChange } = props\n\tconst editor = useEditor()\n\tconst msg = useTranslation()\n\n\tconst handleValueChange = useCallback(\n\t\t(value: number[]) => {\n\t\t\tonValueChange(value[0], true)\n\t\t},\n\t\t[onValueChange]\n\t)\n\n\tconst handlePointerDown = useCallback(() => {\n\t\teditor.mark('click slider')\n\t}, [editor])\n\n\tconst handlePointerUp = useCallback(() => {\n\t\tif (!value) return\n\t\tonValueChange(value, false)\n\t}, [value, onValueChange])\n\n\treturn (\n\t\t