{ "name": "angle-slider-form-demo", "type": "registry:example", "dependencies": [ "@hookform/resolvers", "react-hook-form", "zod", "sonner" ], "registryDependencies": [ "angle-slider", "button", "form" ], "files": [ { "path": "examples/angle-slider-form-demo.tsx", "type": "registry:example", "content": "\"use client\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport * as z from \"zod\";\nimport {\n AngleSlider,\n AngleSliderRange,\n AngleSliderThumb,\n AngleSliderTrack,\n AngleSliderValue,\n} from \"@/registry/bases/base/ui/angle-slider\";\nimport { Button } from \"@/registry/bases/base/ui/button\";\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/registry/bases/base/ui/form\";\n\nconst formSchema = z.object({\n rotation: z.array(z.number()).length(1),\n range: z.array(z.number()).length(2),\n});\n\ntype FormSchema = z.infer;\n\nexport default function AngleSliderFormDemo() {\n const form = useForm({\n resolver: zodResolver(formSchema),\n defaultValues: {\n rotation: [45],\n range: [90, 270],\n },\n });\n\n const onSubmit = React.useCallback((data: FormSchema) => {\n toast.success(\n
{JSON.stringify(data, null, 2)}
,\n );\n }, []);\n\n const onReset = React.useCallback(() => {\n form.reset();\n }, [form]);\n\n return (\n
\n \n
\n (\n \n Rotation angle\n \n \n \n \n \n \n \n \n \n \n Set the rotation angle in degrees (0-360°)\n \n \n \n )}\n />\n (\n \n Angle range\n \n \n \n \n \n \n \n \n \n \n \n Define a range of angles for the operation\n \n \n \n )}\n />\n
\n
\n \n \n
\n \n \n );\n}\n", "target": "" } ] }