{
	"$schema": "https://shadcn-svelte.com/schema/registry-item.json",
	"name": "drawer",
	"title": "Drawer",
	"type": "registry:ui",
	"description": "Kura Drawer component source.",
	"devDependencies": [
		"vaul-svelte@1.0.0-next.7"
	],
	"registryDependencies": [
		"utils"
	],
	"files": [
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: DrawerPrimitive.CloseProps = $props();\n</script>\n\n<DrawerPrimitive.Close\n  bind:ref\n  data-slot=\"drawer-close\"\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": "drawer/drawer-close.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n  import DrawerPortal from './drawer-portal.svelte';\n  import DrawerOverlay from './drawer-overlay.svelte';\n  import { cn } from '$UTILS$.js';\n  import type { ComponentProps } from 'svelte';\n  import type { WithoutChildrenOrChild } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    portalProps,\n    children,\n    ...restProps\n  }: DrawerPrimitive.ContentProps & {\n    portalProps?: WithoutChildrenOrChild<ComponentProps<typeof DrawerPortal>>;\n  } = $props();\n</script>\n\n<DrawerPortal {...portalProps}>\n  <DrawerOverlay />\n  <DrawerPrimitive.Content\n    bind:ref\n    data-slot=\"drawer-content\"\n    class={cn(\n      'fixed z-50 flex h-auto flex-col border-[#222225] bg-[#09090b] text-sm text-zinc-50 shadow-none data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-none data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-none data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-none data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-none data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm group/drawer-content',\n      className\n    )}\n    {...restProps}\n  >\n    <div\n      data-slot=\"drawer-handle\"\n      class=\"mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full bg-[#d0e891] group-data-[vaul-drawer-direction=bottom]/drawer-content:block\"\n    ></div>\n    {@render children?.()}\n  </DrawerPrimitive.Content>\n</DrawerPortal>\n",
			"type": "registry:file",
			"target": "drawer/drawer-content.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: DrawerPrimitive.DescriptionProps = $props();\n</script>\n\n<DrawerPrimitive.Description\n  bind:ref\n  data-slot=\"drawer-description\"\n  class={cn('mt-0.5 text-sm leading-relaxed text-zinc-400', className)}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "drawer/drawer-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=\"drawer-footer\"\n  class={cn('mt-auto flex flex-col gap-2 border-t border-[#222225] p-4', className)}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
			"type": "registry:file",
			"target": "drawer/drawer-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=\"drawer-header\"\n  class={cn(\n    'flex flex-col gap-1 border-b border-[#222225] p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-2 md:text-left',\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
			"type": "registry:file",
			"target": "drawer/drawer-header.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n\n  let {\n    shouldScaleBackground = true,\n    open = $bindable(false),\n    activeSnapPoint = $bindable(null),\n    ...restProps\n  }: DrawerPrimitive.RootProps = $props();\n</script>\n\n<DrawerPrimitive.NestedRoot {shouldScaleBackground} bind:open bind:activeSnapPoint {...restProps} />\n",
			"type": "registry:file",
			"target": "drawer/drawer-nested.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: DrawerPrimitive.OverlayProps = $props();\n</script>\n\n<DrawerPrimitive.Overlay\n  bind:ref\n  data-slot=\"drawer-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 supports-backdrop-filter:backdrop-blur-[2px]',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "drawer/drawer-overlay.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n\n  let { ...restProps }: DrawerPrimitive.PortalProps = $props();\n</script>\n\n<DrawerPrimitive.Portal {...restProps} />\n",
			"type": "registry:file",
			"target": "drawer/drawer-portal.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: DrawerPrimitive.TitleProps = $props();\n</script>\n\n<DrawerPrimitive.Title\n  bind:ref\n  data-slot=\"drawer-title\"\n  class={cn('font-mono text-sm font-semibold uppercase tracking-[0.08em] text-zinc-50', className)}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "drawer/drawer-title.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: DrawerPrimitive.TriggerProps = $props();\n</script>\n\n<DrawerPrimitive.Trigger\n  bind:ref\n  data-slot=\"drawer-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": "drawer/drawer-trigger.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Drawer as DrawerPrimitive } from 'vaul-svelte';\n\n  let {\n    shouldScaleBackground = true,\n    open = $bindable(false),\n    activeSnapPoint = $bindable(null),\n    ...restProps\n  }: DrawerPrimitive.RootProps = $props();\n</script>\n\n<DrawerPrimitive.Root {shouldScaleBackground} bind:open bind:activeSnapPoint {...restProps} />\n",
			"type": "registry:file",
			"target": "drawer/drawer.svelte"
		},
		{
			"content": "import Root from './drawer.svelte';\nimport Content from './drawer-content.svelte';\nimport Description from './drawer-description.svelte';\nimport Overlay from './drawer-overlay.svelte';\nimport Footer from './drawer-footer.svelte';\nimport Header from './drawer-header.svelte';\nimport Title from './drawer-title.svelte';\nimport NestedRoot from './drawer-nested.svelte';\nimport Close from './drawer-close.svelte';\nimport Trigger from './drawer-trigger.svelte';\nimport Portal from './drawer-portal.svelte';\n\nexport {\n  Root,\n  NestedRoot,\n  Content,\n  Description,\n  Overlay,\n  Footer,\n  Header,\n  Title,\n  Trigger,\n  Portal,\n  Close,\n\n  //\n  Root as Drawer,\n  NestedRoot as DrawerNestedRoot,\n  Content as DrawerContent,\n  Description as DrawerDescription,\n  Overlay as DrawerOverlay,\n  Footer as DrawerFooter,\n  Header as DrawerHeader,\n  Title as DrawerTitle,\n  Trigger as DrawerTrigger,\n  Portal as DrawerPortal,\n  Close as DrawerClose\n};\n",
			"type": "registry:file",
			"target": "drawer/index.ts"
		}
	]
}