{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "Slider",
  "dependencies": [
    "@base-ui/react",
    "cn",
    "rescript-base-ui"
  ],
  "files": [
    {
      "path": "registry/base/ui/Slider.res",
      "content": "@@directive(\"'use client'\")\n\n@module(\"cn\")\nexternal cn: (string, option<string>) => string = \"cn\"\n\n@get external unsafeArrayLength: 'a => int = \"length\"\n\n@react.componentWithProps(BaseUi.Slider.Root.props)\nlet make = (props: BaseUi.Slider.Root.props<'value>) => {\n  let value = props.value\n  let defaultValue = props.defaultValue\n  let min = props.min->Option.getOr(0.0)\n  let max = props.max->Option.getOr(100.0)\n  <BaseUi.Slider.Root\n    {...props}\n    min\n    max\n    dataSlot={props.dataSlot->Option.getOr(\"slider\")}\n    thumbAlignment={props.thumbAlignment->Option.getOr(Edge)}\n    className={cn(\"data-horizontal:w-full data-vertical:h-full\", props.className)}\n  >\n    <BaseUi.Slider.Control\n      className=\"data-vertical:min-h-40 relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:w-auto data-vertical:flex-col\"\n    >\n      <BaseUi.Slider.Track\n        dataSlot=\"slider-track\"\n        className=\"bg-muted rounded-full data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1 relative grow overflow-hidden select-none\"\n      >\n        <BaseUi.Slider.Indicator\n          dataSlot=\"slider-range\"\n          className=\"bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n        />\n      </BaseUi.Slider.Track>\n      {Array.fromInitializer(\n        ~length=switch (value, defaultValue) {\n        | (Some(value), _)\n        | (_, Some(value)) =>\n          Array.isArray(value) ? unsafeArrayLength(value) : 1\n        | (None, None) => 2\n        },\n        index =>\n          <BaseUi.Slider.Thumb\n            dataSlot=\"slider-thumb\"\n            key={Int.toString(index)}\n            className=\"border-ring ring-ring/50 relative size-3 rounded-full border bg-white transition-[color,box-shadow] after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 block shrink-0 select-none disabled:pointer-events-none disabled:opacity-50\"\n          />,\n      )->React.array}\n    </BaseUi.Slider.Control>\n  </BaseUi.Slider.Root>\n}\n",
      "type": "registry:file",
      "target": "@ui/Slider.res"
    }
  ],
  "type": "registry:ui"
}