{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "mc-alert-dialog",
  "title": "MicroClub Alert Dialog",
  "description": "An alert dialog component for MicroClub UI",
  "dependencies": [
    "@base-ui/react"
  ],
  "files": [
    {
      "path": "registry/ui/mc-alert-dialog.tsx",
      "content": "'use client';\n\nimport * as React from 'react';\nimport { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\n\nimport { cn } from '@/lib/utils';\nimport { McButton } from '@/components/ui/mc-button';\n\nfunction McAlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n  return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction McAlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n  return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction McAlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n  return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />;\n}\n\nfunction McAlertDialogOverlay({ className, ...props }: AlertDialogPrimitive.Backdrop.Props) {\n  return (\n    <AlertDialogPrimitive.Backdrop\n      data-slot=\"alert-dialog-overlay\"\n      className={cn(\n        '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',\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction McAlertDialogContent({\n  className,\n  size = 'default',\n  ...props\n}: AlertDialogPrimitive.Popup.Props & {\n  size?: 'default' | 'sm';\n}) {\n  return (\n    <McAlertDialogPortal>\n      <McAlertDialogOverlay />\n      <AlertDialogPrimitive.Popup\n        data-slot=\"alert-dialog-content\"\n        data-size={size}\n        className={cn(\n          'group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4',\n          'rounded-xl bg-background p-4 ring-1 ring-inset ring-border duration-100 outline-none shadow-[0px_4px_12px_-4px_#00000014] ',\n          'data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in',\n          'data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n          className\n        )}\n        {...props}\n      />\n    </McAlertDialogPortal>\n  );\n}\n\nfunction McAlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n  return (\n    <div\n      data-slot=\"alert-dialog-footer\"\n      className={cn(\n        ' mx-6 mb-6 mt-4 flex flex-col-reverse gap-2   ',\n        'group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 ',\n        'sm:flex-row sm:justify-end',\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction McAlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n  return (\n    <div\n      data-slot=\"alert-dialog-header\"\n      className={cn(\n        'flex flex-col items-center gap-1.5 text-center',\n        // responsive alignment adjustments\n        'sm:group-data-[size=default]/alert-dialog-content:items-start',\n        'sm:group-data-[size=default]/alert-dialog-content:text-left',\n\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction McAlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>) {\n  return (\n    <div\n      data-slot=\"alert-dialog-media\"\n      className={cn(\n        ' inline-flex size-6 items-center justify-center ',\n        \"sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6\",\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction McAlertDialogTitle({\n  className,\n  media,\n  icon,\n  ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title> & {\n  media?: boolean;\n  icon?: React.ReactNode;\n}) {\n  return (\n    <div\n      className={cn(\n        ' sm:flex items-center gap-2.5',\n        'group-data-[size=sm]/alert-dialog-content:flex-col'\n      )}\n    >\n      {media && icon && <McAlertDialogMedia className=\"\">{icon}</McAlertDialogMedia>}\n      <AlertDialogPrimitive.Title\n        data-slot=\"alert-dialog-title\"\n        className={cn(\n          'cn-font-heading font-bold font-dm-sans text-[18px] leading-7  text-foreground ',\n          'sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n          className\n        )}\n        {...props}\n      />\n    </div>\n  );\n}\n\nfunction McAlertDialogDescription({\n  className,\n  ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n  return (\n    <AlertDialogPrimitive.Description\n      data-slot=\"alert-dialog-description\"\n      className={cn(\n        'text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 ',\n        '*:[a]:hover:text-foreground',\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction McAlertDialogAction({ className, ...props }: React.ComponentProps<typeof McButton>) {\n  return <McButton data-slot=\"alert-dialog-action\" className={cn(className)} {...props} />;\n}\n\nfunction McAlertDialogCancel({\n  className,\n  variant = 'secondary',\n  size = 'md',\n  ...props\n}: AlertDialogPrimitive.Close.Props &\n  Pick<React.ComponentProps<typeof McButton>, 'variant' | 'size'>) {\n  return (\n    <AlertDialogPrimitive.Close\n      data-slot=\"alert-dialog-cancel\"\n      className={cn('', className)}\n      render={<McButton variant={variant} size={size} />}\n      {...props}\n    />\n  );\n}\n\nexport {\n  McAlertDialog,\n  McAlertDialogAction,\n  McAlertDialogCancel,\n  McAlertDialogContent,\n  McAlertDialogDescription,\n  McAlertDialogFooter,\n  McAlertDialogHeader,\n  McAlertDialogMedia,\n  McAlertDialogOverlay,\n  McAlertDialogPortal,\n  McAlertDialogTitle,\n  McAlertDialogTrigger,\n};\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}