{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "slider",
  "title": "Slider",
  "author": "@fma-ui/ui",
  "description": "A draggable single- or range-value slider, horizontal or vertical — pass an array default/value to get one thumb per value.",
  "dependencies": [
    "cn@^0.4.0",
    "react-aria-components@^1.21.1"
  ],
  "files": [
    {
      "path": "src/core/slider/slider.tsx",
      "content": "import { cn } from \"cn\";\nimport {\n  SliderFill,\n  Slider as SliderPrimitive,\n  type SliderProps as SliderPrimitiveProps,\n  SliderThumb,\n  SliderTrack,\n} from \"react-aria-components\";\n\ntype SliderValue = number | number[];\ntype SliderProps<T extends SliderValue = SliderValue> = Omit<\n  SliderPrimitiveProps<T>,\n  \"className\"\n> & {\n  className?: string;\n};\n\nfunction Slider<T extends SliderValue = SliderValue>({ className, ...props }: SliderProps<T>) {\n  return (\n    <SliderPrimitive\n      className={cn(\n        \"group relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\",\n        className,\n      )}\n      data-slot=\"slider\"\n      {...props}\n    >\n      {({ state }) => {\n        return (\n          <>\n            <SliderTrack\n              data-slot=\"slider-track\"\n              className=\"relative grow overflow-hidden rounded-full bg-muted select-none data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1\"\n            >\n              <SliderFill\n                data-slot=\"slider-range\"\n                className=\"absolute bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n              />\n            </SliderTrack>\n            {state.values.map((_, index) => (\n              <SliderThumb\n                data-slot=\"slider-thumb\"\n                // biome-ignore lint/suspicious/noArrayIndexKey: index IS the thumb's positional identity (also passed as the `index` prop below)\n                key={index}\n                index={index}\n                className=\"relative block size-3 shrink-0 rounded-full border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none group-data-horizontal:top-[50%] group-data-vertical:left-[50%] after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50\"\n              />\n            ))}\n          </>\n        );\n      }}\n    </SliderPrimitive>\n  );\n}\n\nexport { Slider };\n",
      "type": "registry:component",
      "target": "components/fma-ui/slider.tsx"
    }
  ],
  "meta": {
    "status": "stable",
    "source": "shadcn",
    "tags": [
      "forms",
      "input",
      "react-aria"
    ]
  },
  "categories": [
    "forms"
  ],
  "type": "registry:ui"
}