{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "p-slider-13",
  "description": "Range slider with inputs",
  "registryDependencies": [
    "@coss/number-field",
    "@coss/slider"
  ],
  "files": [
    {
      "path": "registry/default/particles/p-slider-13.tsx",
      "content": "\"use client\";\n\nimport { useState } from \"react\";\nimport {\n  NumberField,\n  NumberFieldGroup,\n  NumberFieldInput,\n} from \"@/registry/default/ui/number-field\";\nimport { Slider } from \"@/registry/default/ui/slider\";\n\nconst min = 0;\nconst max = 50;\n\nexport default function Particle() {\n  const [values, setValues] = useState([0, 20]);\n\n  const updateValue = (index: number, newValue: number | null) => {\n    const v = newValue ?? min;\n    setValues((prev) => {\n      const next = [...prev];\n      if (index === 0) {\n        // Min value: clamp to not exceed max value\n        next[0] = Math.min(v, prev[1] ?? max);\n      } else {\n        // Max value: clamp to not go below min value\n        next[1] = Math.max(v, prev[0] ?? min);\n      }\n      return next;\n    });\n  };\n\n  return (\n    <div className=\"flex items-center gap-2\">\n      <NumberField\n        aria-label=\"Minimum value\"\n        className=\"w-10\"\n        max={values[1]}\n        min={min}\n        onValueChange={(v) => updateValue(0, v)}\n        render={<NumberFieldGroup />}\n        size=\"sm\"\n        value={values[0]}\n      >\n        <NumberFieldInput />\n      </NumberField>\n      <Slider\n        aria-label=\"Dual range slider\"\n        className=\"flex-1 *:min-w-0!\"\n        max={max}\n        min={min}\n        onValueChange={(v) => setValues(Array.isArray(v) ? [...v] : [v])}\n        value={values}\n      />\n      <NumberField\n        aria-label=\"Maximum value\"\n        className=\"w-10\"\n        max={max}\n        min={values[0]}\n        onValueChange={(v) => updateValue(1, v)}\n        render={<NumberFieldGroup />}\n        size=\"sm\"\n        value={values[1]}\n      >\n        <NumberFieldInput />\n      </NumberField>\n    </div>\n  );\n}\n",
      "type": "registry:block"
    }
  ],
  "meta": {
    "className": "**:data-[slot=preview]:w-full **:data-[slot=preview]:max-w-64"
  },
  "categories": [
    "slider",
    "number field"
  ],
  "type": "registry:block"
}