{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "submit-button", "registryDependencies": [ "button", "https://reusables.vercel.app/r/utils.json" ], "files": [ { "path": "registry/reusables/ui/submit-button.tsx", "content": "import { cn } from \"@/lib/utils\"\nimport { Button, ButtonProps } from \"@/components/ui/button\"\n\nimport { Spinner } from \"./spinner\"\n\ntype SpinnerPosition = \"left\" | \"right\"\ntype SpinnerSize = \"default\" | \"sm\" | \"lg\" | \"icon\"\n\ninterface LoadingSpinnerProps {\n size?: SpinnerSize\n className?: string\n hideText?: boolean\n}\n\ninterface SubmitButtonProps extends ButtonProps {\n children: React.ReactNode\n isSubmitting: boolean\n spinnerClassName?: string\n spinnerSize?: SpinnerSize\n position?: SpinnerPosition\n hideText?: boolean\n}\n\nexport function SubmitButton({\n children,\n isSubmitting,\n spinnerClassName,\n spinnerSize,\n position = \"right\",\n hideText = false,\n ...props\n}: SubmitButtonProps) {\n return (\n \n \n {children}\n \n {isSubmitting && (\n \n )}\n \n )\n}\n\nfunction LoadingSpinner({ size, className, hideText }: LoadingSpinnerProps) {\n return (\n \n \n \n )\n}\n", "type": "registry:ui", "target": "components/ui/submit-button.tsx" }, { "path": "registry/reusables/ui/spinner.tsx", "content": "import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Loader } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst spinnerVariants = cva(\"animate-spin text-white dark:text-black\", {\n variants: {\n size: {\n default: \"h-4 w-4\",\n sm: \"h-2 w-2\",\n lg: \"h-6 w-6\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\ninterface SpinnerProps extends VariantProps {\n className?: string\n}\n\nexport const Spinner = ({ size, className }: SpinnerProps) => {\n return \n}\n", "type": "registry:ui", "target": "components/ui/spinner.tsx" } ], "type": "registry:ui" }