{
	"$schema": "https://shadcn-svelte.com/schema/registry-item.json",
	"name": "alert-dialog",
	"title": "Alert Dialog",
	"type": "registry:ui",
	"description": "Kura Alert Dialog component source.",
	"devDependencies": [
		"bits-ui@^2.18.1",
		"@internationalized/date@^3.12.2"
	],
	"registryDependencies": [
		"button",
		"utils"
	],
	"files": [
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n  import {\n    buttonVariants,\n    type ButtonVariant,\n    type ButtonSize\n  } from '$UI$/button/index.js';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    variant = 'default',\n    size = 'default',\n    ...restProps\n  }: AlertDialogPrimitive.ActionProps & {\n    variant?: ButtonVariant;\n    size?: ButtonSize;\n  } = $props();\n</script>\n\n<AlertDialogPrimitive.Action\n  bind:ref\n  data-slot=\"alert-dialog-action\"\n  class={cn(buttonVariants({ variant, size }), 'cn-alert-dialog-action rounded-full', className)}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-action.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n  import {\n    buttonVariants,\n    type ButtonVariant,\n    type ButtonSize\n  } from '$UI$/button/index.js';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    variant = 'outline',\n    size = 'default',\n    ...restProps\n  }: AlertDialogPrimitive.CancelProps & {\n    variant?: ButtonVariant;\n    size?: ButtonSize;\n  } = $props();\n</script>\n\n<AlertDialogPrimitive.Cancel\n  bind:ref\n  data-slot=\"alert-dialog-cancel\"\n  class={cn(\n    buttonVariants({ variant, size }),\n    'cn-alert-dialog-cancel rounded-full border-[#27272a]',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-cancel.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n  import AlertDialogPortal from './alert-dialog-portal.svelte';\n  import AlertDialogOverlay from './alert-dialog-overlay.svelte';\n  import { cn, type WithoutChild, type WithoutChildrenOrChild } from '$UTILS$.js';\n  import type { ComponentProps } from 'svelte';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    size = 'default',\n    portalProps,\n    ...restProps\n  }: WithoutChild<AlertDialogPrimitive.ContentProps> & {\n    size?: 'default' | 'sm';\n    portalProps?: WithoutChildrenOrChild<ComponentProps<typeof AlertDialogPortal>>;\n  } = $props();\n</script>\n\n<AlertDialogPortal {...portalProps}>\n  <AlertDialogOverlay />\n  <AlertDialogPrimitive.Content\n    bind:ref\n    data-slot=\"alert-dialog-content\"\n    data-size={size}\n    class={cn(\n      'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 border border-[#222225] bg-[#09090b] p-6 text-sm text-zinc-50 shadow-none outline-none duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-md group/alert-dialog-content',\n      className\n    )}\n    {...restProps}\n  />\n</AlertDialogPortal>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-content.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: AlertDialogPrimitive.DescriptionProps = $props();\n</script>\n\n<AlertDialogPrimitive.Description\n  bind:ref\n  data-slot=\"alert-dialog-description\"\n  class={cn(\n    'mt-0.5 text-sm leading-relaxed text-zinc-400 text-balance md:text-pretty *:[a]:text-[#d0e891] *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-zinc-50',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-description.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { cn, type WithElementRef } from '$UTILS$.js';\n  import type { HTMLAttributes } from 'svelte/elements';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    children,\n    ...restProps\n  }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();\n</script>\n\n<div\n  bind:this={ref}\n  data-slot=\"alert-dialog-footer\"\n  class={cn(\n    'cn-alert-dialog-footer flex flex-col-reverse gap-2 border-t border-[#222225] pt-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-footer.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import type { HTMLAttributes } from 'svelte/elements';\n  import { cn, type WithElementRef } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    children,\n    ...restProps\n  }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();\n</script>\n\n<div\n  bind:this={ref}\n  data-slot=\"alert-dialog-header\"\n  class={cn(\n    'grid grid-rows-[auto_1fr] place-items-center gap-2 border-b border-[#222225] pb-4 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-header.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import type { HTMLAttributes } from 'svelte/elements';\n  import { cn, type WithElementRef } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    children,\n    ...restProps\n  }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();\n</script>\n\n<div\n  bind:this={ref}\n  data-slot=\"alert-dialog-media\"\n  class={cn(\n    \"mb-2 inline-flex size-16 items-center justify-center border border-[#222225] bg-[#18181b] text-[#d0e891] sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-media.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: AlertDialogPrimitive.OverlayProps = $props();\n</script>\n\n<AlertDialogPrimitive.Overlay\n  bind:ref\n  data-slot=\"alert-dialog-overlay\"\n  class={cn(\n    'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-background/80 duration-100 supports-backdrop-filter:backdrop-blur-[2px]',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-overlay.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n\n  let { ...restProps }: AlertDialogPrimitive.PortalProps = $props();\n</script>\n\n<AlertDialogPrimitive.Portal {...restProps} />\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-portal.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: AlertDialogPrimitive.TitleProps = $props();\n</script>\n\n<AlertDialogPrimitive.Title\n  bind:ref\n  data-slot=\"alert-dialog-title\"\n  class={cn(\n    'font-mono text-sm font-semibold uppercase tracking-[0.08em] text-zinc-50 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  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-title.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: AlertDialogPrimitive.TriggerProps = $props();\n</script>\n\n<AlertDialogPrimitive.Trigger\n  bind:ref\n  data-slot=\"alert-dialog-trigger\"\n  class={cn(\n    'outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring/30',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog-trigger.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';\n\n  let { open = $bindable(false), ...restProps }: AlertDialogPrimitive.RootProps = $props();\n</script>\n\n<AlertDialogPrimitive.Root bind:open {...restProps} />\n",
			"type": "registry:file",
			"target": "alert-dialog/alert-dialog.svelte"
		},
		{
			"content": "import Root from './alert-dialog.svelte';\nimport Portal from './alert-dialog-portal.svelte';\nimport Trigger from './alert-dialog-trigger.svelte';\nimport Title from './alert-dialog-title.svelte';\nimport Action from './alert-dialog-action.svelte';\nimport Cancel from './alert-dialog-cancel.svelte';\nimport Footer from './alert-dialog-footer.svelte';\nimport Header from './alert-dialog-header.svelte';\nimport Overlay from './alert-dialog-overlay.svelte';\nimport Content from './alert-dialog-content.svelte';\nimport Description from './alert-dialog-description.svelte';\nimport Media from './alert-dialog-media.svelte';\n\nexport {\n  Root,\n  Title,\n  Action,\n  Cancel,\n  Portal,\n  Footer,\n  Header,\n  Trigger,\n  Overlay,\n  Content,\n  Description,\n  Media,\n  //\n  Root as AlertDialog,\n  Title as AlertDialogTitle,\n  Action as AlertDialogAction,\n  Cancel as AlertDialogCancel,\n  Portal as AlertDialogPortal,\n  Footer as AlertDialogFooter,\n  Header as AlertDialogHeader,\n  Trigger as AlertDialogTrigger,\n  Overlay as AlertDialogOverlay,\n  Content as AlertDialogContent,\n  Description as AlertDialogDescription,\n  Media as AlertDialogMedia\n};\n",
			"type": "registry:file",
			"target": "alert-dialog/index.ts"
		}
	]
}