{
	"$schema": "https://shadcn-svelte.com/schema/registry-item.json",
	"name": "menubar",
	"title": "Menubar",
	"type": "registry:ui",
	"description": "Kura Menubar component source.",
	"devDependencies": [
		"bits-ui@^2.18.1",
		"@internationalized/date@^3.12.2",
		"phosphor-svelte@^3.1.0"
	],
	"registryDependencies": [
		"utils"
	],
	"files": [
		{
			"content": "import Root from './menubar.svelte';\nimport Menu from './menubar-menu.svelte';\nimport Sub from './menubar-sub.svelte';\nimport RadioGroup from './menubar-radio-group.svelte';\nimport CheckboxItem from './menubar-checkbox-item.svelte';\nimport Content from './menubar-content.svelte';\nimport Item from './menubar-item.svelte';\nimport Group from './menubar-group.svelte';\nimport RadioItem from './menubar-radio-item.svelte';\nimport Separator from './menubar-separator.svelte';\nimport Shortcut from './menubar-shortcut.svelte';\nimport SubContent from './menubar-sub-content.svelte';\nimport SubTrigger from './menubar-sub-trigger.svelte';\nimport Trigger from './menubar-trigger.svelte';\nimport Label from './menubar-label.svelte';\nimport GroupHeading from './menubar-group-heading.svelte';\nimport Portal from './menubar-portal.svelte';\n\nexport {\n  Root,\n  CheckboxItem,\n  Content,\n  Item,\n  RadioItem,\n  Separator,\n  Shortcut,\n  SubContent,\n  SubTrigger,\n  Trigger,\n  Menu,\n  Group,\n  Sub,\n  RadioGroup,\n  Label,\n  GroupHeading,\n  Portal,\n  //\n  Root as Menubar,\n  CheckboxItem as MenubarCheckboxItem,\n  Content as MenubarContent,\n  Item as MenubarItem,\n  RadioItem as MenubarRadioItem,\n  Separator as MenubarSeparator,\n  Shortcut as MenubarShortcut,\n  SubContent as MenubarSubContent,\n  SubTrigger as MenubarSubTrigger,\n  Trigger as MenubarTrigger,\n  Menu as MenubarMenu,\n  Group as MenubarGroup,\n  Sub as MenubarSub,\n  RadioGroup as MenubarRadioGroup,\n  Label as MenubarLabel,\n  GroupHeading as MenubarGroupHeading,\n  Portal as MenubarPortal\n};\n",
			"type": "registry:file",
			"target": "menubar/index.ts"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn, type WithoutChildrenOrChild } from '$UTILS$.js';\n  import type { Snippet } from 'svelte';\n  import MinusIcon from 'phosphor-svelte/lib/Minus';\n  import CheckIcon from 'phosphor-svelte/lib/Check';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    checked = $bindable(false),\n    indeterminate = $bindable(false),\n    inset,\n    children: childrenProp,\n    ...restProps\n  }: WithoutChildrenOrChild<MenubarPrimitive.CheckboxItemProps> & {\n    inset?: boolean;\n    children?: Snippet;\n  } = $props();\n</script>\n\n<MenubarPrimitive.CheckboxItem\n  bind:ref\n  bind:checked\n  bind:indeterminate\n  data-slot=\"menubar-checkbox-item\"\n  data-inset={inset}\n  class={cn(\n    'relative flex cursor-default items-center gap-2.5 border border-transparent py-2 pr-3 pl-9.5 font-mono text-xs font-medium uppercase tracking-[0.04em] text-zinc-300 outline-hidden select-none focus:border-[#b9d765]/50 focus:bg-[#18181b] focus:text-zinc-50 focus:**:text-[#d0e891] data-[checked=true]:text-[#d0e891] data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n    className\n  )}\n  {...restProps}\n>\n  {#snippet children({ checked: checked, indeterminate: indeterminate })}\n    <span\n      class=\"pointer-events-none absolute left-3 flex size-4 items-center justify-center text-[#d0e891] [&_svg:not([class*='size-'])]:size-4\"\n    >\n      {#if indeterminate}\n        <MinusIcon />\n      {:else if checked}\n        <CheckIcon />\n      {/if}\n    </span>\n    {@render childrenProp?.()}\n  {/snippet}\n</MenubarPrimitive.CheckboxItem>\n",
			"type": "registry:file",
			"target": "menubar/menubar-checkbox-item.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import MenubarPortal from './menubar-portal.svelte';\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    sideOffset = 8,\n    alignOffset = -4,\n    align = 'start',\n    side = 'bottom',\n    portalProps,\n    ...restProps\n  }: MenubarPrimitive.ContentProps & {\n    portalProps?: WithoutChildrenOrChild<ComponentProps<typeof MenubarPortal>>;\n  } = $props();\n</script>\n\n<MenubarPortal {...portalProps}>\n  <MenubarPrimitive.Content\n    bind:ref\n    data-slot=\"menubar-content\"\n    {align}\n    {alignOffset}\n    {side}\n    {sideOffset}\n    class={cn(\n      'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 z-50 min-w-36 origin-(--bits-menubar-content-transform-origin) overflow-hidden border border-[#222225] bg-[#09090b] p-1 text-zinc-50 shadow-none duration-100',\n      className\n    )}\n    {...restProps}\n  />\n</MenubarPortal>\n",
			"type": "registry:file",
			"target": "menubar/menubar-content.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { cn } from '$UTILS$.js';\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import type { ComponentProps } from 'svelte';\n\n  let {\n    ref = $bindable(null),\n    inset,\n    class: className,\n    ...restProps\n  }: ComponentProps<typeof MenubarPrimitive.GroupHeading> & {\n    inset?: boolean;\n  } = $props();\n</script>\n\n<MenubarPrimitive.GroupHeading\n  bind:ref\n  data-slot=\"menubar-group-heading\"\n  data-inset={inset}\n  class={cn(\n    'px-2 py-1.5 font-mono text-xs font-semibold uppercase tracking-[0.08em] text-zinc-400 data-[inset]:ps-8',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "menubar/menubar-group-heading.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: MenubarPrimitive.GroupProps & {\n    inset?: boolean;\n  } = $props();\n</script>\n\n<MenubarPrimitive.Group\n  bind:ref\n  data-slot=\"menubar-group\"\n  class={cn('border-border/60 py-1 not-first:border-t', className)}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "menubar/menubar-group.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    inset = undefined,\n    variant = 'default',\n    ...restProps\n  }: MenubarPrimitive.ItemProps & {\n    inset?: boolean;\n    variant?: 'default' | 'destructive';\n  } = $props();\n</script>\n\n<MenubarPrimitive.Item\n  bind:ref\n  data-slot=\"menubar-item\"\n  data-inset={inset}\n  data-variant={variant}\n  class={cn(\n    \"flex cursor-default items-center gap-2.5 border border-transparent px-3 py-2 font-mono text-xs font-medium uppercase tracking-[0.04em] text-zinc-300 outline-hidden select-none focus:border-[#b9d765]/50 focus:bg-[#18181b] focus:text-zinc-50 data-[variant=destructive]:text-[#f85149] data-[variant=destructive]:focus:bg-[#d1242f]/10 data-[variant=destructive]:focus:text-[#f85149] data-[variant=destructive]:*:[svg]:text-[#f85149]! not-data-[variant=destructive]:focus:**:text-[#d0e891] data-disabled:opacity-50 data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5 group/menubar-item\",\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "menubar/menubar-item.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { cn } from '$UTILS$.js';\n  import { type WithElementRef } from 'bits-ui';\n  import type { HTMLAttributes } from 'svelte/elements';\n\n  let {\n    ref = $bindable(null),\n    inset,\n    children,\n    class: className,\n    ...restProps\n  }: WithElementRef<HTMLAttributes<HTMLElement>> & {\n    inset?: boolean;\n  } = $props();\n</script>\n\n<div\n  bind:this={ref}\n  data-slot=\"menubar-label\"\n  data-inset={inset}\n  class={cn(\n    'px-3.5 py-2 font-mono text-xs font-semibold uppercase tracking-[0.08em] text-zinc-500 data-inset:pl-9.5',\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
			"type": "registry:file",
			"target": "menubar/menubar-label.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n\n  let { ...restProps }: MenubarPrimitive.MenuProps = $props();\n</script>\n\n<MenubarPrimitive.Menu {...restProps} />\n",
			"type": "registry:file",
			"target": "menubar/menubar-menu.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n\n  let { ...restProps }: MenubarPrimitive.PortalProps = $props();\n</script>\n\n<MenubarPrimitive.Portal {...restProps} />\n",
			"type": "registry:file",
			"target": "menubar/menubar-portal.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    value = $bindable(''),\n    class: className,\n    ...restProps\n  }: MenubarPrimitive.RadioGroupProps = $props();\n</script>\n\n<MenubarPrimitive.RadioGroup\n  bind:ref\n  bind:value\n  data-slot=\"menubar-radio-group\"\n  class={cn('border-border/60 py-1 not-first:border-t', className)}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "menubar/menubar-radio-group.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn, type WithoutChild } from '$UTILS$.js';\n  import CheckIcon from 'phosphor-svelte/lib/Check';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    inset,\n    children: childrenProp,\n    ...restProps\n  }: WithoutChild<MenubarPrimitive.RadioItemProps> & {\n    inset?: boolean;\n  } = $props();\n</script>\n\n<MenubarPrimitive.RadioItem\n  bind:ref\n  data-slot=\"menubar-radio-item\"\n  data-inset={inset}\n  class={cn(\n    \"relative flex cursor-default items-center gap-2.5 border border-transparent py-2 pr-3 pl-9.5 font-mono text-xs font-medium uppercase tracking-[0.04em] text-zinc-300 outline-hidden select-none focus:border-[#b9d765]/50 focus:bg-[#18181b] focus:text-zinc-50 focus:**:text-[#d0e891] data-[checked=true]:text-[#d0e891] data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5\",\n    className\n  )}\n  {...restProps}\n>\n  {#snippet children({ checked })}\n    <span\n      class=\"pointer-events-none absolute left-3 flex size-4 items-center justify-center text-[#d0e891] [&_svg:not([class*='size-'])]:size-4\"\n    >\n      {#if checked}\n        <CheckIcon />\n      {/if}\n    </span>\n    {@render childrenProp?.({ checked })}\n  {/snippet}\n</MenubarPrimitive.RadioItem>\n",
			"type": "registry:file",
			"target": "menubar/menubar-radio-item.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: MenubarPrimitive.SeparatorProps = $props();\n</script>\n\n<MenubarPrimitive.Separator\n  bind:ref\n  data-slot=\"menubar-separator\"\n  class={cn('-mx-1.5 my-1.5 h-px bg-[#222225]', className)}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "menubar/menubar-separator.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<HTMLSpanElement>> = $props();\n</script>\n\n<span\n  bind:this={ref}\n  data-slot=\"menubar-shortcut\"\n  class={cn(\n    'ml-auto font-mono text-[11px] uppercase tracking-[0.12em] text-zinc-500 group-focus/menubar-item:text-[#d0e891]',\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n</span>\n",
			"type": "registry:file",
			"target": "menubar/menubar-shortcut.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: MenubarPrimitive.SubContentProps = $props();\n</script>\n\n<MenubarPrimitive.SubContent\n  bind:ref\n  data-slot=\"menubar-sub-content\"\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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 min-w-32 border border-[#222225] bg-[#09090b] p-1.5 text-zinc-50 shadow-none duration-100',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "menubar/menubar-sub-content.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn, type WithoutChild } from '$UTILS$.js';\n  import CaretRightIcon from 'phosphor-svelte/lib/CaretRight';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    inset = undefined,\n    children,\n    ...restProps\n  }: WithoutChild<MenubarPrimitive.SubTriggerProps> & {\n    inset?: boolean;\n  } = $props();\n</script>\n\n<MenubarPrimitive.SubTrigger\n  bind:ref\n  data-slot=\"menubar-sub-trigger\"\n  data-inset={inset}\n  class={cn(\n    \"flex cursor-default items-center gap-2 border border-transparent px-3 py-2 font-mono text-xs font-medium uppercase tracking-[0.04em] text-zinc-300 outline-none select-none focus:border-[#b9d765]/50 focus:bg-[#18181b] focus:text-zinc-50 data-open:border-[#b9d765]/50 data-open:bg-[#18181b] data-open:text-zinc-50 data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5\",\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n  <CaretRightIcon class=\"cn-rtl-flip ml-auto size-4 text-[#d0e891]\" />\n</MenubarPrimitive.SubTrigger>\n",
			"type": "registry:file",
			"target": "menubar/menubar-sub-trigger.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n\n  let { open = $bindable(false), ...restProps }: MenubarPrimitive.SubProps = $props();\n</script>\n\n<MenubarPrimitive.Sub bind:open {...restProps} />\n",
			"type": "registry:file",
			"target": "menubar/menubar-sub.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: MenubarPrimitive.TriggerProps = $props();\n</script>\n\n<MenubarPrimitive.Trigger\n  bind:ref\n  data-slot=\"menubar-trigger\"\n  class={cn(\n    'flex items-center rounded-full px-3 py-1 font-mono text-xs font-medium uppercase tracking-[0.04em] text-zinc-400 outline-hidden select-none transition-colors hover:bg-zinc-50 hover:text-zinc-950 aria-expanded:bg-zinc-50 aria-expanded:text-zinc-950',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "menubar/menubar-trigger.svelte"
		},
		{
			"content": "<script lang=\"ts\">\n  import { Menubar as MenubarPrimitive } from 'bits-ui';\n  import { cn } from '$UTILS$.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: MenubarPrimitive.RootProps = $props();\n</script>\n\n<MenubarPrimitive.Root\n  bind:ref\n  data-slot=\"menubar\"\n  class={cn(\n    'flex h-10 items-center gap-0.5 border border-[#222225] bg-[#09090b] p-1 text-zinc-50 shadow-none',\n    className\n  )}\n  {...restProps}\n/>\n",
			"type": "registry:file",
			"target": "menubar/menubar.svelte"
		}
	]
}