{
  "name": "rating-form-demo",
  "type": "registry:example",
  "dependencies": [
    "@hookform/resolvers/zod",
    "react-hook-form",
    "zod",
    "sonner"
  ],
  "registryDependencies": [
    "rating",
    "button",
    "form"
  ],
  "files": [
    {
      "path": "examples/rating-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\";\n\nimport { Button } from \"@/registry/bases/radix/ui/button\";\nimport {\n  Form,\n  FormControl,\n  FormDescription,\n  FormField,\n  FormItem,\n  FormLabel,\n  FormMessage,\n} from \"@/registry/bases/radix/ui/form\";\nimport { Rating, RatingItem } from \"@/registry/bases/radix/ui/rating\";\n\nconst formSchema = z.object({\n  rating: z.number().min(1, {\n    message: \"Please provide a rating.\",\n  }),\n});\n\ntype FormSchema = z.infer<typeof formSchema>;\n\nexport default function RatingFormDemo() {\n  const form = useForm<FormSchema>({\n    resolver: zodResolver(formSchema),\n    defaultValues: {\n      rating: 0,\n    },\n  });\n\n  const onSubmit = React.useCallback((data: FormSchema) => {\n    toast.success(`You rated: ${data.rating} stars`);\n  }, []);\n\n  return (\n    <Form {...form}>\n      <form onSubmit={form.handleSubmit(onSubmit)} className=\"w-2/3 space-y-6\">\n        <FormField\n          control={form.control}\n          name=\"rating\"\n          render={({ field }) => (\n            <FormItem>\n              <FormLabel>Rating</FormLabel>\n              <FormControl>\n                <Rating\n                  value={field.value}\n                  onValueChange={field.onChange}\n                  step={0.5}\n                >\n                  {Array.from({ length: 5 }, (_, i) => (\n                    <RatingItem key={i} />\n                  ))}\n                </Rating>\n              </FormControl>\n              <FormDescription>\n                Rate your experience from 1 to 5 stars.\n              </FormDescription>\n              <FormMessage />\n            </FormItem>\n          )}\n        />\n        <Button type=\"submit\">Submit</Button>\n      </form>\n    </Form>\n  );\n}\n",
      "target": ""
    }
  ]
}