{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "slider", "dependencies": [ "@radix-ui/react-slider" ], "registryDependencies": [ "https://powui.dev/r/utils.json", "https://powui.dev/r/theme.json" ], "files": [ { "path": "src/components/ui/slider.tsx", "content": "\"use client\";\n\nimport * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type SliderProps = React.ComponentProps & {\n thumbClassName?: string;\n shape?: \"circular\" | \"rectangular\";\n trackClassName?: string;\n rangeClassName?: string;\n thickness?: number | string;\n};\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n thumbClassName,\n shape = \"circular\",\n trackClassName = \"\",\n rangeClassName = \"\",\n thickness = 16,\n style,\n ...props\n}: SliderProps) {\n const thicknessValue =\n typeof thickness === \"number\" ? `${thickness}px` : thickness;\n\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n );\n\n const sliderStyle = {\n ...style,\n \"--slider-thickness\": thicknessValue,\n \"--slider-thumb-size\": thicknessValue,\n \"--slider-thumb-rect-height\": thicknessValue,\n \"--slider-thumb-rect-width\": `calc(${thicknessValue} * 1.5)`,\n } as React.CSSProperties;\n\n return (\n \n \n \n \n {Array.from({ length: _values.length }, (_, index) => (\n \n \n {shape === \"rectangular\" && Array(3)\n .fill(null)\n .map((_, index) => (\n \n ))}\n \n \n ))}\n \n );\n}\n\nexport { Slider };\n", "type": "registry:ui" } ], "type": "registry:ui" }