Modal Dialogs 02
Modal Dialogs 02 é um componente de sobreposição para React e Tailwind CSS, da biblioteca Bund UI, com licença MIT. Copia e cola no teu projeto.
Bund UI
MIT
overlays
O que é
Modal Dialogs 02 é um componente de sobreposição para React e Tailwind CSS, da biblioteca Bund UI, com licença MIT. Copia e cola no teu projeto.
Como usar
Abre o componente no catálogo, carrega em copiar, e cola no teu projeto. O prompt copiado leva o código e as regras para o teu agente o reproduzir sem alterar nada.
Cinco cópias grátis por mês. Sem cartão.
Precisa de
npm i react-hook-form @hookform/resolvers zod lucide-react
Licença
Este componente vem de Bund UI e é redistribuído sob a licença MIT, que permite uso comercial. O aviso de copyright viaja com o código.
Modal Dialogs 02
"use client";
import React from "react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { z } from "zod";
import {
Dialog,
DialogContent,
DialogTrigger,
DialogHeader,
DialogTitle,
DialogDescription
} from "@/components/ui/dialog";
import { Label } from "@/components/ui/label";
import {
InputGroup,
InputGroupAddon,
InputGroupButton,
InputGroupInput
} from "@/components/ui/input-group";
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
import { CopyIcon } from "lucide-react";
const formSchema = z.object({
email: z.email(),
password: z.string().min(8, { message: "Password must be at least 8 characters" })
});
export default function LoginForm() {
const [open, setOpen] = React.useState(true);
const form = useForm<z.infer<typeof formSchema>>({
resolver: zodResolver(formSchema),
defaultValues: {
email: "",
password: ""
}
});
function onSubmit(values: z.infer<typeof formSchema>) {
console.log(values);
}
return (
<div className="flex h-screen w-full items-center justify-center px-4">
<div className="mx-auto flex w-full max-w-sm flex-col items-center gap-8">
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>
<Button variant="outline">Share Link</Button>
</DialogTrigger>
<DialogContent className="sm:max-w-md">
<DialogHeader>
<DialogTitle>Share link</DialogTitle>
<DialogDescription>
Anyone who has this link will be able to view this.
</DialogDescription>
</DialogHeader>
<div className="flex items-center gap-2">
<div className="grid flex-1 gap-2">
<Label htmlFor="link" className="sr-only">
Link
</Label>
<InputGroup>
<InputGroupInput
defaultValue="https://ui.shadcn.com/docs/installation"
readOnly
placeholder="Search..."
/>
<InputGroupAddon align="inline-end">
<Tooltip>
<TooltipTrigger asChild>
<InputGroupButton className="rounded-full" size="icon-xs">
<CopyIcon />
</InputGroupButton>
</TooltipTrigger>
<TooltipContent>Copy to link</TooltipContent>
</Tooltip>
</InputGroupAddon>
</InputGroup>
</div>
</div>
</DialogContent>
</Dialog>
</div>
</div>
);
}