{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "slider",
  "type": "registry:ui",
  "title": "Slider",
  "description": "A slider component",
  "dependencies": [
    "solid-js",
    "@kobalte/core"
  ],
  "registryDependencies": [
    "https://solid-ui.com/r/label.json"
  ],
  "files": [
    {
      "path": "src/registry/ui/slider.tsx",
      "content": "import type { JSX, ValidComponent } from \"solid-js\"\nimport { splitProps } from \"solid-js\"\n\nimport type { PolymorphicProps } from \"@kobalte/core/polymorphic\"\nimport * as SliderPrimitive from \"@kobalte/core/slider\"\n\nimport { cn } from \"~/lib/utils\"\nimport { Label } from \"~/registry/ui/label\"\n\ntype SliderRootProps<T extends ValidComponent = \"div\"> = SliderPrimitive.SliderRootProps<T> & {\n  class?: string | undefined\n}\n\nconst Slider = <T extends ValidComponent = \"div\">(\n  props: PolymorphicProps<T, SliderRootProps<T>>\n) => {\n  const [local, others] = splitProps(props as SliderRootProps, [\"class\"])\n  return (\n    <SliderPrimitive.Root\n      class={cn(\"relative flex w-full touch-none select-none flex-col items-center\", local.class)}\n      {...others}\n    />\n  )\n}\n\ntype SliderTrackProps<T extends ValidComponent = \"div\"> = SliderPrimitive.SliderTrackProps<T> & {\n  class?: string | undefined\n}\n\nconst SliderTrack = <T extends ValidComponent = \"div\">(\n  props: PolymorphicProps<T, SliderTrackProps<T>>\n) => {\n  const [local, others] = splitProps(props as SliderTrackProps, [\"class\"])\n  return (\n    <SliderPrimitive.Track\n      class={cn(\"relative h-2 w-full grow rounded-full bg-secondary\", local.class)}\n      {...others}\n    />\n  )\n}\n\ntype SliderFillProps<T extends ValidComponent = \"div\"> = SliderPrimitive.SliderFillProps<T> & {\n  class?: string | undefined\n}\n\nconst SliderFill = <T extends ValidComponent = \"div\">(\n  props: PolymorphicProps<T, SliderFillProps<T>>\n) => {\n  const [local, others] = splitProps(props as SliderFillProps, [\"class\"])\n  return (\n    <SliderPrimitive.Fill\n      class={cn(\"absolute h-full rounded-full bg-primary\", local.class)}\n      {...others}\n    />\n  )\n}\n\ntype SliderThumbProps<T extends ValidComponent = \"span\"> = SliderPrimitive.SliderThumbProps<T> & {\n  class?: string | undefined\n  children?: JSX.Element\n}\n\nconst SliderThumb = <T extends ValidComponent = \"span\">(\n  props: PolymorphicProps<T, SliderThumbProps<T>>\n) => {\n  const [local, others] = splitProps(props as SliderThumbProps, [\"class\", \"children\"])\n  return (\n    <SliderPrimitive.Thumb\n      class={cn(\n        \"top-[-6px] block size-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n        local.class\n      )}\n      {...others}\n    >\n      <SliderPrimitive.Input />\n    </SliderPrimitive.Thumb>\n  )\n}\n\nconst SliderLabel = <T extends ValidComponent = \"label\">(\n  props: PolymorphicProps<T, SliderPrimitive.SliderLabelProps<T>>\n) => {\n  return <SliderPrimitive.Label as={Label} {...props} />\n}\n\nconst SliderValueLabel = <T extends ValidComponent = \"label\">(\n  props: PolymorphicProps<T, SliderPrimitive.SliderValueLabelProps<T>>\n) => {\n  return <SliderPrimitive.ValueLabel as={Label} {...props} />\n}\n\nexport { Slider, SliderTrack, SliderFill, SliderThumb, SliderLabel, SliderValueLabel }\n",
      "type": "registry:ui"
    }
  ]
}