Dialog
gymnopedies/dialogFreeComponent
Dialog — gymnopédies-themed shadcn primitive.
Install it
npx shadcn@latest add https://gymnopedies.shoota.work/r/dialog.jsonSource
1import * as React from "react"2import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"34import { cn } from "@/lib/utils"5import { Button } from "@/components/ui/button"6import { XIcon } from "lucide-react"78function Dialog({ ...props }: DialogPrimitive.Root.Props) {9 return <DialogPrimitive.Root data-slot="dialog" {...props} />10}1112function DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {13 return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />14}1516function DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {17 return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />18}1920function DialogClose({ ...props }: DialogPrimitive.Close.Props) {21 return <DialogPrimitive.Close data-slot="dialog-close" {...props} />22}2324function DialogOverlay({25 className,26 ...props27}: DialogPrimitive.Backdrop.Props) {28 return (29 <DialogPrimitive.Backdrop30 data-slot="dialog-overlay"31 className={cn(32 "fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",33 className34 )}35 {...props}36 />37 )38}3940function DialogContent({41 className,42 children,43 showCloseButton = true,44 ...props45}: DialogPrimitive.Popup.Props & {46 showCloseButton?: boolean47}) {48 return (49 <DialogPortal>50 <DialogOverlay />51 <DialogPrimitive.Popup52 data-slot="dialog-content"53 className={cn(54 "fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",55 className56 )}57 {...props}58 >59 {children}60 {showCloseButton && (61 <DialogPrimitive.Close62 data-slot="dialog-close"63 render={64 <Button65 variant="ghost"66 className="absolute top-2 right-2"67 size="icon-sm"68 />69 }70 >71 <XIcon72 />73 <span className="sr-only">Close</span>74 </DialogPrimitive.Close>75 )}76 </DialogPrimitive.Popup>77 </DialogPortal>78 )79}8081// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from gymnopedies
All 49 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | gymnopedies | Components | Free | 2 deps | |
| Alertalert | gymnopedies | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | gymnopedies | Components | Free | 1 dep | |
| Articlearticle | gymnopedies | Components | Free | no deps | |
| Aspect Ratioaspect-ratio | gymnopedies | Components | Free | no deps | |
| Avataravatar | gymnopedies | Components | Free | 1 dep | |
| Badgebadge | gymnopedies | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | gymnopedies | Components | Free | 2 deps |
