{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "slider",
  "type": "registry:ui",
  "dependencies": [
    "@kobalte/core"
  ],
  "files": [
    {
      "path": "ui/slider.tsx",
      "content": "import type { ValidComponent } from \"solid-js\"\nimport { createMemo, For, mergeProps, 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\"\n\ntype SliderProps<T extends ValidComponent = \"div\"> = SliderPrimitive.SliderRootProps<T> & {\n  class?: string | undefined\n}\n\nconst Slider = <T extends ValidComponent = \"div\">(\n  rawProps: PolymorphicProps<T, SliderProps<T>>\n) => {\n  const props = mergeProps({ minValue: 0, maxValue: 100 }, rawProps)\n  const [local, others] = splitProps(props as SliderProps, [\n    \"class\",\n    \"defaultValue\",\n    \"value\",\n    \"minValue\",\n    \"maxValue\"\n  ])\n\n  const _values = createMemo(\n    () =>\n      Array.isArray(local.value)\n        ? local.value\n        : Array.isArray(local.defaultValue)\n          ? local.defaultValue\n          : [local.minValue, local.maxValue],\n    [local.value, local.defaultValue, local.minValue, local.maxValue]\n  )\n\n  return (\n    <SliderPrimitive.Root\n      class={cn(\n        \"relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col data-[disabled]:opacity-50\",\n        local.class\n      )}\n      data-slot=\"slider\"\n      defaultValue={local.defaultValue}\n      maxValue={local.maxValue}\n      minValue={local.minValue}\n      value={local.value}\n      {...others}\n    >\n      <SliderPrimitive.Track\n        class={cn(\n          \"relative flex grow items-center justify-center rounded-full bg-muted data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1.5\"\n        )}\n        data-slot=\"slider-track\"\n      >\n        <SliderPrimitive.Fill\n          class={cn(\n            \"absolute rounded-full bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n          )}\n          data-slot=\"slider-range\"\n        />\n        <For each={_values()}>\n          {() => (\n            <SliderPrimitive.Thumb\n              class=\"block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] hover:ring-4 focus-visible:outline-hidden focus-visible:ring-4 disabled:pointer-events-none disabled:opacity-50\"\n              data-slot=\"slider-thumb\"\n            >\n              <SliderPrimitive.Input />\n            </SliderPrimitive.Thumb>\n          )}\n        </For>\n      </SliderPrimitive.Track>\n    </SliderPrimitive.Root>\n  )\n}\n\nexport { Slider }\n",
      "type": "registry:ui"
    }
  ]
}