{
	"$schema": "https://shadcn-svelte.com/schema/registry-item.json",
	"name": "sheet",
	"title": "Sheet",
	"type": "registry:ui",
	"description": "Kura Sheet component source.",
	"devDependencies": [
		"bits-ui@^2.18.1",
		"@internationalized/date@^3.12.2",
		"phosphor-svelte@^3.1.0"
	],
	"registryDependencies": [
		"button",
		"utils"
	],
	"files": [
		{
			"content": "import Root from './sheet.svelte';\nimport Portal from './sheet-portal.svelte';\nimport Trigger from './sheet-trigger.svelte';\nimport Close from './sheet-close.svelte';\nimport Overlay from './sheet-overlay.svelte';\nimport Content from './sheet-content.svelte';\nimport Header from './sheet-header.svelte';\nimport Footer from './sheet-footer.svelte';\nimport Title from './sheet-title.svelte';\nimport Description from './sheet-description.svelte';\n\nexport {\n  Root,\n  Close,\n  Trigger,\n  Portal,\n  Overlay,\n  Content,\n  Header,\n  Footer,\n  Title,\n  Description,\n  //\n  Root as Sheet,\n  Close as SheetClose,\n  Trigger as SheetTrigger,\n  Portal as SheetPortal,\n  Overlay as SheetOverlay,\n  Content as SheetContent,\n  Header as SheetHeader,\n  Footer as SheetFooter,\n  Title as SheetTitle,\n  Description as SheetDescription\n};\n",
			"type": "registry:file",
			"target": "sheet/index.ts"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Dialog as SheetPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: SheetPrimitive.CloseProps = $props();\n</script>\n\n<SheetPrimitive.Close\n  bind:ref\n  data-slot=\"sheet-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": "sheet/sheet-close.svelte"
		},
		{
			"content": "<script lang=\"ts\" module>\n  export type Side = 'top' | 'right' | 'bottom' | 'left';\n</script>\n\n<script lang=\"ts\">\n  import { Dialog as SheetPrimitive } from 'bits-ui';\n  import type { Snippet } from 'svelte';\n  import SheetPortal from './sheet-portal.svelte';\n  import SheetOverlay from './sheet-overlay.svelte';\n  import { Button } from '$UI$/button/index.js';\n  import XIcon from 'phosphor-svelte/lib/X';\n  import { cn, type WithoutChildrenOrChild } from '$UTILS$.js';\n  import type { ComponentProps } from 'svelte';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    side = 'right',\n    showCloseButton = true,\n    portalProps,\n    children,\n    ...restProps\n  }: WithoutChildrenOrChild<SheetPrimitive.ContentProps> & {\n    portalProps?: WithoutChildrenOrChild<ComponentProps<typeof SheetPortal>>;\n    side?: Side;\n    showCloseButton?: boolean;\n    children: Snippet;\n  } = $props();\n</script>\n\n<SheetPortal {...portalProps}>\n  <SheetOverlay />\n  <SheetPrimitive.Content\n    bind:ref\n    data-slot=\"sheet-content\"\n    data-side={side}\n    class={cn(\n      'fixed z-50 flex flex-col border-[#222225] bg-[#09090b] bg-clip-padding text-sm text-zinc-50 shadow-none transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10',\n      className\n    )}\n    {...restProps}\n  >\n    {@render children?.()}\n    {#if showCloseButton}\n      <SheetPrimitive.Close data-slot=\"sheet-close\">\n        {#snippet child({ props })}\n          <Button\n            variant=\"ghost\"\n            class=\"absolute top-4 right-4 rounded-full border border-[#27272a] bg-[#18181b] text-zinc-300 hover:bg-zinc-50 hover:text-zinc-950\"\n            size=\"icon-sm\"\n            {...props}\n          >\n            <XIcon />\n            <span class=\"sr-only\">Close</span>\n          </Button>\n        {/snippet}\n      </SheetPrimitive.Close>\n    {/if}\n  </SheetPrimitive.Content>\n</SheetPortal>\n",
			"type": "registry:file",
			"target": "sheet/sheet-content.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Dialog as SheetPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: SheetPrimitive.DescriptionProps = $props();\n</script>\n\n<SheetPrimitive.Description\n  bind:ref\n  data-slot=\"sheet-description\"\n  class={cn('mt-0.5 text-sm leading-relaxed text-zinc-400', className)}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "sheet/sheet-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=\"sheet-footer\"\n  class={cn('mt-auto flex flex-col gap-2 border-t border-[#222225] p-8', className)}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
			"type": "registry:file",
			"target": "sheet/sheet-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=\"sheet-header\"\n  class={cn('flex flex-col gap-1.5 border-b border-[#222225] p-8', className)}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
			"type": "registry:file",
			"target": "sheet/sheet-header.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Dialog as SheetPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: SheetPrimitive.OverlayProps = $props();\n</script>\n\n<SheetPrimitive.Overlay\n  bind:ref\n  data-slot=\"sheet-overlay\"\n  class={cn(\n    '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": "sheet/sheet-overlay.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Dialog as SheetPrimitive } from 'bits-ui';\n\n  let { ...restProps }: SheetPrimitive.PortalProps = $props();\n</script>\n\n<SheetPrimitive.Portal {...restProps} />\n",
			"type": "registry:file",
			"target": "sheet/sheet-portal.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Dialog as SheetPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: SheetPrimitive.TitleProps = $props();\n</script>\n\n<SheetPrimitive.Title\n  bind:ref\n  data-slot=\"sheet-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": "sheet/sheet-title.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Dialog as SheetPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: SheetPrimitive.TriggerProps = $props();\n</script>\n\n<SheetPrimitive.Trigger\n  bind:ref\n  data-slot=\"sheet-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": "sheet/sheet-trigger.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Dialog as SheetPrimitive } from 'bits-ui';\n\n  let { open = $bindable(false), ...restProps }: SheetPrimitive.RootProps = $props();\n</script>\n\n<SheetPrimitive.Root bind:open {...restProps} />\n",
			"type": "registry:file",
			"target": "sheet/sheet.svelte"
		}
	]
}